info('Start CallCloseAPI...'); ini_set('max_execution_time', Config::get('arrays.PHPTimeOutCL')); ini_set('max_input_time', Config::get('arrays.PHPTimeOutCL')); ini_set('default_socket_timeout', Config::get('arrays.PHPTimeOutCL')); ini_set('memory_limit', '1024M'); try { $this->info('>>> Run GS1 Label creation Command...'); Log::channel('LabelCron')->info(">>> Run GS1 Label creation Command..."); # Get the Calling User $userId = $this->argument('user'); $SHUSER = isset($userId) ? $userId : (m3_user() !== '' ? Str::upper(trim(m3_user())) : 'TWOSHIP'); $this->info('User: '.$SHUSER); # Get Manifest Array $GSArray1 = $this->option('gsarray'); $GSArray = json_decode($GSArray1, true); // dump($GSArray); # MAK : Used for debug only $GSArray = ["Macpkr"=> "55555","Recipient_Address1"=>"9571 Pan American DR", "Recipient_Address2"=>"C/O AEE Solar","Recipient_City"=>"El Paso", "Recipient_CompanyName"=>"SNAPRACK EL PASO PRODUCTION","Recipient_CountryCode"=>"US","Recipient_PostalCode"=>"79927","Recipient_State"=>"TX", "Sender_Address1"=>"6800 Arnold Miller Pkwy","Sender_Address2"=>"","Sender_City"=>"Solon", "Sender_CompanyName"=>"Erico International","Sender_Country"=>"US","Sender_PostalCode"=>"44139","Sender_State"=>"OH", "CarrierName"=>"R&L Carriers","trackingno"=>"306539838","BOLnumber"=>"693103848064454","ShipmentPONumber"=>"4523039092", "PackagesArray"=> ["package 1" , "package 2"] ]; 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(); $R428US = isset($ICM428M->R428US) ? $ICM428M->R428US : ''; # User $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 = '0'; $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; foreach ($GSArray['PackagesArray'] as $key => $value) { $table_style = $packageNum < $packageCount ? ' style="page-break-after: always;" ' : ''; if (Cache::has('GS1SEQUENCE')) { $GS1SEQUENCE = Cache::get('GS1SEQUENCE'); $GS1SEQUENCE++; $GS1SEQUENCEID = str_pad($GS1SEQUENCE, $total_length, "0", STR_PAD_LEFT); } # Box Number Not Found Get it from DB else{ $GS1SEQUENCE = 1; $GS1SEQUENCEID = str_pad($GS1SEQUENCE, $total_length, "0", STR_PAD_LEFT); } Cache::forever('GS1SEQUENCE', $GS1SEQUENCEID); $this->info(">>> GS1 sequence Id: ".$GS1SEQUENCEID); $gs1_128_bc_1 = '00' .$packageType . $manufactID . $GS1SEQUENCEID; # Calculate Check Digit $digits = str_split($gs1_128_bc_1); $sum = 0; $length = count($digits); # Loop through each digit starting from the right for ($i = 0; $i < $length; $i++) { $digit = $digits[$length - $i - 1]; # Assign a weight of 3 or 1 alternately $weight = ($i % 2 == 0) ? 3 : 1; # Add the product of the digit and its weight to the sum $sum += $digit * $weight; } # Calculate the remainder when sum is divided by 10 $remainder = $sum % 10; # If remainder is 0, check digit is 0; otherwise, subtract remainder from 10 $checkDigit = ($remainder == 0) ? 0 : 10 - $remainder; $gs1_128_bc = $gs1_128_bc_1 . $checkDigit; $gs1_128_bc_desc = '(00)' .$packageType . $manufactID . $GS1SEQUENCEID .$checkDigit; $data = [ 'ship_to' => $GSArray["Recipient_CompanyName"].'|
FROM: ' . $data['from'] . ' |
SHIP TO: ' . $data['ship_to'] . ' |
||
|
' . $data['ship_to_desc'] . ' |
Carrier: '.$GSArray["CarrierName"].' PRO #: '.$GSArray["ShipmentPONumber"].' B/L #: '.$GSArray["BOLnumber"].' |
||
|
PURCHASE ORDER: '.$GSArray["Macpkr"].' Vendor: ' . $manufactID . ' |
Pallet # : '.$packageNum.' of '.$packageCount.' | ||
|
' . $data['serial_shipping_container'] . ' |
|||