updates to M3 module

This commit is contained in:
Mark Gregory
2026-09-16 14:28:17 +01:00
parent 3410ab85fe
commit d1a83c9b09
164 changed files with 45562 additions and 273 deletions
+98
View File
@@ -0,0 +1,98 @@
<?php
// M3 now uses Core's PostgreSQL connection. No per-user DB credentials are required.
return [
#'nonWorkingHourCode' => ['73,85,89,90,91,92,86,99'],
'autorefresh_all' => ['00:15'],
'autorefresh_notall' => ['00:15'],
'payrollCodes' => ['33,49,75,94,98,102,171'],
'min_work_hours_for_break' => ['4'],
'ignore_picks_that_last_longer_than_this_many_hours' => ['8'],
'env_ports' => ['test'=>'10004','live'=>'10005'],
'hold_code_array' => ['A'=>'Admin Hold',
'C'=>'AR Past Due',
'D'=>'Over Credit Limit',
'E'=>'Over Order Limit',
'F'=>'Address Check Fail',
'Q'=>'Quote Hold',
'H'=>'A/R Cust Hold',
'I'=>'EDI Hold',
'P'=>'EDI Price Hold',
'Z'=>'Haz Hold',
'X'=>'CID Hold',
'W'=>'Web Hold',
'T'=>'Duplicate Hold'],
'user_array' => '', //$user_array,
'misc' => [
'discountCarrierRateForCustomerPriceLTL'=>0.00, # This is the percent off list that we want to charge customers
'discountCarrierRateForCustomerPriceParcel'=>0.00, # This is the percent off list that we want to charge customers - to use in ship confirm
],
'transxTypes' =>[
'ICM710E' => 'Splitting delivery orders',
'ICM710E13' => 'Pre-Splitting interco delivery orders',
'ICM710E12' => 'Pre-Splitting customer delivery orders',
'M3InventoryReportListURL' => 'Retrieve inventory on hand',
'M3InventoryReportReplen' => 'Retrieve Replenishments',
'M3ReceiverAPI' => 'Post Splitting delivery orders',
'PdfStorageAPI' => 'PDF document storage',
'PackSyst4tray' => 'Change of qty picked after picking',
'CloseShipmentCoChargeAPI' => 'Closing delivery orders',
'TransferAPIURL' => 'Move goods to Pack/Dock locations',
'OP705API' => 'Closing a manifest',
'CloseShipmentCoChargeAPIMfest' => 'Batch closing for M3 manifests at night',
'M3-General' => 'General - contact MPBA',
'UpdateShipmentNumber' => 'Update Shipment Number',
],
'curlTimeOut' => 30,
'PHPTimeOut' => 600,
'PHPTimeOutCL'=> 1000,
'maxRecDL' => 20000,
'maxRecCL' => 55000,
'BadChars' => ['–','\t','\n','\u20134807','\u20131','\u201333','\u2013671' ,'Ÿ','á', 'é', 'í', 'ó' ,'ú','“','”'],
'PdfPath' => env('M3_LABELS_PATH', storage_path('app/m3/labels') . DIRECTORY_SEPARATOR), # Warning : The path for PDF storage is shared by all Instances and should not be altered
'DUMMYPDF' => '',
'uom_size' => ['110-142-303'=>'mm',
'110-143-321'=>'mm',
'110-143-322'=>'in'], # unit of mesure for boxes lengths mm or in
'uom_wt' => ['110-142-303'=>'kg',
'110-143-321'=>'kg',
'110-143-322'=>'lbs'], # unit of mesure for boxes weight kg or lbs
#STATUS ARRAY FOR ICM688M1
'status_ICM688M1_array' => [
"P"=>"Pending error checking by splitting (OP510E2)",
"H"=>"Hold as error found (OP510E3)",
"L"=>"Ready to pick",
"I"=>"In picking",
"F"=>"In packing",
"X"=>"Cancelled",
"C"=>"Packed",
"B"=>"Loaded",
"a"=>"Manually removed from Sentinel ship confirm screen",
"A"=>"ShipConfirmed" ],
'whsePerf_targets' => [
'all_notes'=>'90', 'all_dollars'=>'85', 'all_weight'=>'90',
'ltl_notes'=>'90', 'ltl_dollars'=>'95', 'ltl_weight'=>'99',
'parcel_notes'=>'90', 'parcel_dollars'=>'75', 'parcel_weight'=>'80'
],
'2Ship' => [
# 2Ship WS_Key
# live $TwoShip_Key="FED945D1-5DC7-415E-BDAB-16347E7C1304";
# test $TwoShip_Key="45027F2A-EDA6-4C16-8AD4-9BC70CE94AB8";
'TwoShip_Key' => "45027F2A-EDA6-4C16-8AD4-9BC70CE94AB8",
'end_point' =>"https://euroapi.2ship.com/api/",
'hold_update' =>"UpdateOnHoldOrder_V1",
],
];
+40
View File
@@ -0,0 +1,40 @@
<?php
# PayRollCodes are the keys (left) to read LBPF, lines per hours (right)
return [
'lph_per_code_array' => ['16'=>'30',
'33'=>'12',
'49'=>'25',
'66'=>'60',
'75'=>'15',
'94'=>'40',
'98'=>'8',
'102'=>'10',
'171'=>'17'
]
];
# '75'=>'26',
# '75'=>'23',
# '33'=>'13', #2025-08-04
# Found in BLDPERFST rpg pgm in EWRPGSRC / EWSRCTST
# PICKING stats
# when a5sentview in ('7','9') then 33
# when a5sentview = 5 then 49
# when a5sentview = 12 then 98
# when a5sentview in ('2','10') then 75
# when a5sentview in ('1','3','4','11') then 94
# when a5sentview = 8 then 102
# when a5sentview = 6 then 171
# else 999
# PACKING stats
# case when (select AYTYPE from ICM695M1
# where AYINTBOX=AZINTBOX
# and AYSENTPKR=AZSENTPKR FETCH FIRST ROW ONLY)
# in ('','BX') then '16' else '66' end as AYTYPE,
?>
+3 -2
View File
@@ -2,6 +2,7 @@
return [
'name' => 'M3',
'features' => [
],
'connection' => env('M3_DB_CONNECTION', env('DB_CONNECTION', 'pgsql')),
'labels_path' => env('M3_LABELS_PATH', storage_path('app/m3/labels')),
'closing_orders_path' => env('M3_CLOSING_ORDERS_PATH', storage_path('app/m3/closing-orders')),
];