diff --git a/Modules/M3/Http/Controllers/FillBOL2Controller.php b/Modules/M3/Http/Controllers/FillBOL2Controller.php
index 00d7433a..a7fddcec 100755
--- a/Modules/M3/Http/Controllers/FillBOL2Controller.php
+++ b/Modules/M3/Http/Controllers/FillBOL2Controller.php
@@ -39,6 +39,14 @@ class FillBOL2Controller extends Controller
}
private function bolData(Request $request, Request $bOL): array
+ {
+ return array_merge(
+ $this->bolPrimaryData($request, $bOL),
+ $this->bolRemainingData()
+ );
+ }
+
+ private function bolPrimaryData(Request $request, Request $bOL): array
{
return [
'bol_number' => $request->input('BOL_number') ?? '1234567890',
@@ -138,7 +146,13 @@ Line 5',
'LNITEMCLAS17' => '',
'TYPEANDESCPTN.17' => '',
'PKGTYPECOUNT17' => '',
- 'LNITEMWT16' => '',
+ ];
+ }
+
+ private function bolRemainingData(): array
+ {
+ return [
+'LNITEMWT16' => '',
'CLASSORATE16' => '',
'LNITEMCLAS16' => '',
'TYPEANDESCPTN.16' => '',
@@ -225,7 +239,7 @@ Line 5',
'BILLTOADDR' => '',
'NUMDROPS' => '',
+
];
}
-
}
diff --git a/Modules/M3/Http/Controllers/FillBOLController.php b/Modules/M3/Http/Controllers/FillBOLController.php
index c6d29ce8..7b9c467c 100755
--- a/Modules/M3/Http/Controllers/FillBOLController.php
+++ b/Modules/M3/Http/Controllers/FillBOLController.php
@@ -55,6 +55,14 @@ class FillBOLController extends Controller
}
private static function bolFormData(Request $bOL): array
+ {
+ return array_merge(
+ self::bolPrimaryFields($bOL),
+ self::bolRemainingFields()
+ );
+ }
+
+ private static function bolPrimaryFields(Request $bOL): array
{
return [
'DTESHIPED.1' => date('d/m/Y'),
@@ -125,7 +133,13 @@ class FillBOLController extends Controller
'LNITEMCLAS17' => '',
'TYPEANDESCPTN.17' => '',
'PKGTYPECOUNT17' => '',
- 'LNITEMWT16' => '',
+ ];
+ }
+
+ private static function bolRemainingFields(): array
+ {
+ return [
+'LNITEMWT16' => '',
'CLASSORATE16' => '',
'LNITEMCLAS16' => '',
'TYPEANDESCPTN.16' => '',
@@ -212,7 +226,7 @@ class FillBOLController extends Controller
'BILLTOADDR' => '',
'NUMDROPS' => '',
+
];
}
-
}
diff --git a/Modules/M3/Http/Controllers/UtilitiesController.php b/Modules/M3/Http/Controllers/UtilitiesController.php
index 02f9d08c..ce8d385c 100755
--- a/Modules/M3/Http/Controllers/UtilitiesController.php
+++ b/Modules/M3/Http/Controllers/UtilitiesController.php
@@ -155,211 +155,218 @@ class UtilitiesController extends Controller
try {
Log::channel('LabelCron')->info('>>> Run GS1 Label creation Command...');
-
- // Get the Calling User
- // $userId = 'TWOSHIP';
- // $sHUSER = isset($userId) ? $userId : (m3_user() !== '' ? Str::upper(trim(m3_user())) : '');
-
- // Get Manifest Array
$gSArray = $request->query();
+ $sHUSER = trim((string) ($gSArray['User'] ?? ''));
+ $gS1FileNameNoRoot = '';
- $sHUSER = isset($gSArray['User']) ? trim($gSArray['User']) : '';
-
- if ($sHUSER != '') {
- // Get User CO & WH from Table ICM428M
- $iCM428M = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m')
- ->select('R428US', 'R428CO', 'R428WH', 'R428PL')
- ->where('R428US', '=', $sHUSER)
- ->first();
-
- $cOMPANY = isset($iCM428M->R428CO) ? $iCM428M->R428CO : ''; // Company
- $pLANT = isset($iCM428M->R428PL) ? $iCM428M->R428PL : ''; // Plant
- $wHS = isset($iCM428M->R428WH) ? $iCM428M->R428WH : ''; // WareHouse
-
- $macpkr = $gSArray['Macpkr'];
- $packageType = trim($gSArray['packageType']); // 1 => Pallet , 0 => Carton
- $packageTypeDesc = $packageType == 1 ? 'Pallet' : 'Carton';
- $manufactID = '0826528'; // MAK : get ID from Nvent and save to Config File
- $total_length = 9;
-
- $html = '
-
-
-
-
- ';
-
- // Get number of Pallets
- $packageCount = count($gSArray['PackagesArray']);
- $packageNum = 1;
-
- // Get GS1 Label MAX ID from ICM695M3 :
- $gS1SEQUENCESel = DB::connection(config('m3.connection', 'pgsql'))->table('icm695m3')->max('ID');
- $gS1SEQUENCE = isset($gS1SEQUENCESel) ? $gS1SEQUENCESel : 0;
-
- // Loop PackagesArray : Build Table for PDF and Insert to ICM695m3
- foreach ($gSArray['PackagesArray'] as $value) {
- $table_style = $packageNum < $packageCount ? ' style="page-break-after: always;" ' : '';
-
- $a2INTBOX = trim($value);
-
- $gS1SEQUENCE++;
- $gS1SEQUENCEID = str_pad($gS1SEQUENCE, $total_length, '0', STR_PAD_LEFT);
- // Build GS1 18 Digits Code
- $gs1_128_bc_1 = '00' . $packageType . $manufactID . $gS1SEQUENCEID;
-
- $checkDigit = self::gs1CheckDigit($gs1_128_bc_1);
-
- // SSCC 18 Digits Code
- $gs1_128_bc = $gs1_128_bc_1 . $checkDigit;
-
- $gs1_128_bc_desc = '(00)' . $packageType . $manufactID . $gS1SEQUENCEID . $checkDigit;
-
- $data = [
- 'ship_to' => $gSArray['Recipient_CompanyName'] . '
' . $gSArray['Recipient_Address1'] . '
' .
- $gSArray['Recipient_City'] . ',' . $gSArray['Recipient_State']
- . '
' . $gSArray['Recipient_PostalCode'],
- 'from' => $gSArray['Sender_CompanyName'] . '
' . $gSArray['Sender_Address1'] . '
' .
- $gSArray['Sender_City'] . ',' . $gSArray['Sender_State']
- . '
' . $gSArray['Sender_PostalCode'],
- 'ship_to_lbl' => '420' . $gSArray['Recipient_PostalCode'],
- 'ship_to_desc' => '(420)' . $gSArray['Recipient_PostalCode'],
- 'pro' => '190071217845706', // MAK : Check missing info with Brad
- 'item_number' => '10000B',
- 'upc' => '098506095310',
- 'quantity' => '1',
- 'serial_shipping_container' => $gs1_128_bc_desc,
- ];
-
- // Initialize barcode generator
- $generator = new BarcodeGeneratorPNG;
-
- // Generate barcodes
- $shipToPostalCodeBarcode = $generator->getBarcode($data['ship_to_lbl'], $generator::TYPE_CODE_128);
- $serialShippingContainerBarcode = $generator->getBarcode($data['serial_shipping_container'], $generator::TYPE_CODE_128, 2, 50);
-
- // HTML content for the label
- $html .= '
-
-
-
- FROM: ' . $data['from'] . '
- |
-
- SHIP TO: ' . $data['ship_to'] . '
- |
-
-
-
-
- ' . $data['ship_to_desc'] . '
- |
-
- Carrier: ' . $gSArray['CarrierName'] . '
- PRO #: ' . $gSArray['trackingno'] . '
- B/L #: ' . $gSArray['BOLnumber'] . '
- Ref : ' . $a2INTBOX . '
- |
-
-
-
- PURCHASE ORDER: ' . $gSArray['ShipmentPONumber'] . '
- Vendor: ' . $manufactID . '
- |
-
-
- |
- ' . $packageTypeDesc . ' # : ' . $packageNum . ' of ' . $packageCount . '
- |
-
-
-
-  . ')
- ' . $data['serial_shipping_container'] . '
- |
-
-
';
-
- $packageNum++;
-
- // Insert new Record to ICM695M3 $gs1_128_bc
- DB::connection(config('m3.connection', 'pgsql'))->table('icm695m3')
- ->insert(['A2CO' => $cOMPANY, 'A2WHS' => $wHS, 'A2PLANT' => $pLANT, 'A2MACPKR' => $macpkr, 'A2GS1LABEL' => $gs1_128_bc, 'A2INTBOX' => $a2INTBOX]);
-
- Log::channel('LabelCron')->info('<<< GS1-128...End of Label Creation for Mackpkr: ' . $macpkr);
- }
-
- $html .= ' ';
-
- ob_start();
-
- // Initialize Dompdf
- $dompdf = new Dompdf;
- $dompdf->loadHtml($html);
- $dompdf->setPaper('a6', 'portrait');
- // Render the HTML as PDF
- $dompdf->render();
-
- // Output the generated PDF to Browser
- // $dompdf->stream();
-
- $pdfContent = $dompdf->output();
-
- $labelsPath = Config::get('arrays.PdfPath'); // '/www/sentm3live/htdocs/labels/';
- // Put the PDF in labels/CarrierLabel
- $gSFolder = 'GSLabel';
-
- $carrierFileName = $gSFolder . '_' . $macpkr . '_' . $cOMPANY . '_' . $wHS . '_' . $a2INTBOX;
- // LTL
- // if ($packageType=='1') {
- // $carrierFileName = $gSFolder.'_'.$macpkr.'_'.$cOMPANY.'_'.$wHS;
- // }
- // # small Packs
- // else{
- // $carrierFileName = $gSFolder.'_'.$macpkr.'_'.$cOMPANY.'_'.$wHS.'_'.$a2INTBOX;
- // }
-
- $gS1FileName = $labelsPath . $gSFolder . '/' . $carrierFileName . '.pdf';
- $gS1FileNameNoRoot = $gSFolder . '/' . $carrierFileName;
- file_put_contents($gS1FileName, $pdfContent);
- ob_end_clean();
+ if ($sHUSER !== '') {
+ $gS1FileNameNoRoot = self::generateGS128ForUser($gSArray, $sHUSER);
}
- // # Insert new Record to ICM695M3 $gs1_128_bc
- // DB::connection(config('m3.connection', 'pgsql'))->table('icm695m3')
- // ->insert(['A2CO'=> $cOMPANY,'A2WHS'=> $wHS,'A2MACPKR'=> $macpkr,'A2GS1LABEL'=> $gs1_128_bc]);
-
return json_encode(['result' => 'success', 'GS1File' => $gS1FileNameNoRoot]);
-
} catch (\Throwable $th) {
Log::channel('LabelCron')->error($th);
return json_encode(['result' => 'error', 'GS1File' => $th]);
-
}
}
+ private static function generateGS128ForUser(array $gSArray, string $sHUSER): string
+ {
+ // Get User CO & WH from Table ICM428M
+ $iCM428M = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m')
+ ->select('R428US', 'R428CO', 'R428WH', 'R428PL')
+ ->where('R428US', '=', $sHUSER)
+ ->first();
+
+ $cOMPANY = isset($iCM428M->R428CO) ? $iCM428M->R428CO : ''; // Company
+ $pLANT = isset($iCM428M->R428PL) ? $iCM428M->R428PL : ''; // Plant
+ $wHS = isset($iCM428M->R428WH) ? $iCM428M->R428WH : ''; // WareHouse
+
+ $macpkr = $gSArray['Macpkr'];
+ $packageType = trim($gSArray['packageType']); // 1 => Pallet , 0 => Carton
+ $packageTypeDesc = $packageType == 1 ? 'Pallet' : 'Carton';
+ $manufactID = '0826528'; // MAK : get ID from Nvent and save to Config File
+ $total_length = 9;
+
+ $html = '
+
+
+
+
+ ';
+
+ // Get number of Pallets
+ $packageCount = count($gSArray['PackagesArray']);
+ $packageNum = 1;
+
+ // Get GS1 Label MAX ID from ICM695M3 :
+ $gS1SEQUENCESel = DB::connection(config('m3.connection', 'pgsql'))->table('icm695m3')->max('ID');
+ $gS1SEQUENCE = isset($gS1SEQUENCESel) ? $gS1SEQUENCESel : 0;
+
+ // Loop PackagesArray : Build Table for PDF and Insert to ICM695m3
+ foreach ($gSArray['PackagesArray'] as $value) {
+ $table_style = $packageNum < $packageCount ? ' style="page-break-after: always;" ' : '';
+
+ $a2INTBOX = trim($value);
+
+ $gS1SEQUENCE++;
+ $gS1SEQUENCEID = str_pad($gS1SEQUENCE, $total_length, '0', STR_PAD_LEFT);
+ // Build GS1 18 Digits Code
+ $gs1_128_bc_1 = '00' . $packageType . $manufactID . $gS1SEQUENCEID;
+
+ $checkDigit = self::gs1CheckDigit($gs1_128_bc_1);
+
+ // SSCC 18 Digits Code
+ $gs1_128_bc = $gs1_128_bc_1 . $checkDigit;
+
+ $gs1_128_bc_desc = '(00)' . $packageType . $manufactID . $gS1SEQUENCEID . $checkDigit;
+
+ $data = [
+ 'ship_to' => $gSArray['Recipient_CompanyName'] . '
' . $gSArray['Recipient_Address1'] . '
' .
+ $gSArray['Recipient_City'] . ',' . $gSArray['Recipient_State']
+ . '
' . $gSArray['Recipient_PostalCode'],
+ 'from' => $gSArray['Sender_CompanyName'] . '
' . $gSArray['Sender_Address1'] . '
' .
+ $gSArray['Sender_City'] . ',' . $gSArray['Sender_State']
+ . '
' . $gSArray['Sender_PostalCode'],
+ 'ship_to_lbl' => '420' . $gSArray['Recipient_PostalCode'],
+ 'ship_to_desc' => '(420)' . $gSArray['Recipient_PostalCode'],
+ 'pro' => '190071217845706', // MAK : Check missing info with Brad
+ 'item_number' => '10000B',
+ 'upc' => '098506095310',
+ 'quantity' => '1',
+ 'serial_shipping_container' => $gs1_128_bc_desc,
+ ];
+
+ // Initialize barcode generator
+ $generator = new BarcodeGeneratorPNG;
+
+ // Generate barcodes
+ $shipToPostalCodeBarcode = $generator->getBarcode($data['ship_to_lbl'], $generator::TYPE_CODE_128);
+ $serialShippingContainerBarcode = $generator->getBarcode($data['serial_shipping_container'], $generator::TYPE_CODE_128, 2, 50);
+
+ // HTML content for the label
+ $html .= self::gs128LabelHtml(
+ $data, $gSArray, $a2INTBOX, $manufactID, $packageTypeDesc,
+ $packageNum, $packageCount, $table_style,
+ $shipToPostalCodeBarcode, $serialShippingContainerBarcode
+ );
+
+ $packageNum++;
+
+ // Insert new Record to ICM695M3 $gs1_128_bc
+ DB::connection(config('m3.connection', 'pgsql'))->table('icm695m3')
+ ->insert(['A2CO' => $cOMPANY, 'A2WHS' => $wHS, 'A2PLANT' => $pLANT, 'A2MACPKR' => $macpkr, 'A2GS1LABEL' => $gs1_128_bc, 'A2INTBOX' => $a2INTBOX]);
+
+ Log::channel('LabelCron')->info('<<< GS1-128...End of Label Creation for Mackpkr: ' . $macpkr);
+ }
+
+ $html .= ' ';
+
+ ob_start();
+
+ // Initialize Dompdf
+ $dompdf = new Dompdf;
+ $dompdf->loadHtml($html);
+ $dompdf->setPaper('a6', 'portrait');
+ // Render the HTML as PDF
+ $dompdf->render();
+
+ // Output the generated PDF to Browser
+ // $dompdf->stream();
+
+ $pdfContent = $dompdf->output();
+
+ $labelsPath = Config::get('arrays.PdfPath'); // '/www/sentm3live/htdocs/labels/';
+ // Put the PDF in labels/CarrierLabel
+ $gSFolder = 'GSLabel';
+
+ $carrierFileName = $gSFolder . '_' . $macpkr . '_' . $cOMPANY . '_' . $wHS . '_' . $a2INTBOX;
+ // LTL
+ // if ($packageType=='1') {
+ // $carrierFileName = $gSFolder.'_'.$macpkr.'_'.$cOMPANY.'_'.$wHS;
+ // }
+ // # small Packs
+ // else{
+ // $carrierFileName = $gSFolder.'_'.$macpkr.'_'.$cOMPANY.'_'.$wHS.'_'.$a2INTBOX;
+ // }
+
+ $gS1FileName = $labelsPath . $gSFolder . '/' . $carrierFileName . '.pdf';
+ $gS1FileNameNoRoot = $gSFolder . '/' . $carrierFileName;
+ file_put_contents($gS1FileName, $pdfContent);
+ ob_end_clean();
+
+ return $gS1FileNameNoRoot;
+ }
+
+ private static function gs128LabelHtml(
+ array $data, array $gSArray, string $a2INTBOX, string $manufactID,
+ string $packageTypeDesc, int $packageNum, int $packageCount, string $table_style,
+ string $shipToPostalCodeBarcode, string $serialShippingContainerBarcode
+ ): string {
+ return '
+
+
+
+ FROM: ' . $data['from'] . '
+ |
+
+ SHIP TO: ' . $data['ship_to'] . '
+ |
+
+
+
+
+ ' . $data['ship_to_desc'] . '
+ |
+
+ Carrier: ' . $gSArray['CarrierName'] . '
+ PRO #: ' . $gSArray['trackingno'] . '
+ B/L #: ' . $gSArray['BOLnumber'] . '
+ Ref : ' . $a2INTBOX . '
+ |
+
+
+
+ PURCHASE ORDER: ' . $gSArray['ShipmentPONumber'] . '
+ Vendor: ' . $manufactID . '
+ |
+
+
+ |
+ ' . $packageTypeDesc . ' # : ' . $packageNum . ' of ' . $packageCount . '
+ |
+
+
+
+  . ')
+ ' . $data['serial_shipping_container'] . '
+ |
+
+
';
+ }
+
private static function gs1CheckDigit(string $value): int
{
$digits = str_split($value);
diff --git a/resources/css/wms-dashboard.css b/resources/css/wms-dashboard.css
index 7891a69f..61bf5079 100644
--- a/resources/css/wms-dashboard.css
+++ b/resources/css/wms-dashboard.css
@@ -102,7 +102,7 @@
align-items: center;
background: linear-gradient(135deg, rgba(15, 118, 110, 0.14), rgba(37, 99, 235, 0.12));
border-radius: 18px;
- color: #00100f;
+ color: #000000;
display: flex;
font-size: 1.35rem;
height: 56px;
diff --git a/resources/views/layouts/partials/topbar.blade.php b/resources/views/layouts/partials/topbar.blade.php
index c5fc0ea6..eb16c120 100755
--- a/resources/views/layouts/partials/topbar.blade.php
+++ b/resources/views/layouts/partials/topbar.blade.php
@@ -4,10 +4,12 @@
$isPlatformAdmin = $user !== null
&& method_exists($user, 'isMpbaPlatformAdmin')
&& $user->isMpbaPlatformAdmin();
+
$dashboardRoute = Route::has('platform.dashboard') && $isPlatformAdmin
? 'platform.dashboard'
: (Route::has('dashboard') ? 'dashboard' : null);
@endphp
+