m3 Security Fixes

This commit is contained in:
Mark Gregory
2026-09-16 17:16:25 +01:00
parent d68687f062
commit 8f37245e13
64 changed files with 4247 additions and 4426 deletions
@@ -2,28 +2,25 @@
namespace Modules\M3\Http\Controllers;
use Modules\M3\Http\Controllers\Controller;
use DB;
use Config;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
// use Modules\M3\Models\ICM709M;
//
class GetContentsController extends Controller
{
public function processShipment(Request $request)
{
# Get Mackpkr from Request
// Get Mackpkr from Request
$macpacPicker = isset($request->MACPKR) ? trim($request->MACPKR) : '';
# ESN1
# $macpacPicker='888568'; // LTL example
# $macpacPicker='894337'; // another LTL example with smaller orders, therefore pallets are more mixed
# $macpacPicker='1225311'; // parcel example
# ESN2
# $macpacPicker='748101'; // LTL example
// ESN1
// $macpacPicker='888568'; // LTL example
// $macpacPicker='894337'; // another LTL example with smaller orders, therefore pallets are more mixed
// $macpacPicker='1225311'; // parcel example
// ESN2
// $macpacPicker='748101'; // LTL example
try {
$icm704mArray = $this->buildNMFCCodesArray();
@@ -33,25 +30,25 @@ class GetContentsController extends Controller
return response()->json(['error' => "Picker {$macpacPicker} was not found in ICM688M1"]);
}
# Get Packages
// Get Packages
$packages = $this->getPackagesData($shipmentData['macpkr_list']);
# Add NMFC to Packages
// Add NMFC to Packages
$packagesWithNMFC = $this->addNMFCDataToPackages($packages, $macpacPicker, $icm704mArray);
# Get Commodities
// Get Commodities
$commodities = $this->getCommoditiesData(
$shipmentData['company'],
$shipmentData['warehouse'],
$macpacPicker,
$packages['package_595m1'],
$icm704mArray
$icm704mArray,
);
return response()->json([
'error' => '',
'shipmentData' => $shipmentData,
'packages' => $packagesWithNMFC,
'commodities' => $commodities
'commodities' => $commodities,
]);
} catch (\Exception $e) {
@@ -70,8 +67,8 @@ class GetContentsController extends Controller
'LTLClassId' => number_format(trim($row->AOFCID), 1),
'NMFCItem' => trim($row->AONMIT),
'NMFCSub' => trim($row->AONMSB),
'SkidDescription' => trim($row->AOSKDE)
]
'SkidDescription' => trim($row->AOSKDE),
],
];
})->all();
@@ -79,7 +76,8 @@ class GetContentsController extends Controller
protected function getShipmentData($macpacPicker)
{
$result = DB::select("
$result = DB::select(
'
SELECT
SUM(A4TPCKWGHT) as total_weight,
A4MACPKR, A4SHSHA1, A4SHSHA2, A4SHSHCI, A4SHSHNM,
@@ -93,8 +91,8 @@ class GetContentsController extends Controller
A4SHSHCT, A4SHSHZP, A4SHSHST, A4ONO, A4RLNO, A4SHNO,
A4STCN, A4CO, A4WHS, A4SHIPVIA, A4SLCO, A4SLWHS,
A4CATPID, A42SSVCCOD, A4CARRIER, A4SHPAGGCD,
A4SALESLOC, A4SHCSPO, A4OFSTRM, A4SCAC, A4PLANT",
[$macpacPicker]
A4SALESLOC, A4SHCSPO, A4OFSTRM, A4SCAC, A4PLANT',
[$macpacPicker],
);
if (empty($result)) {
@@ -121,13 +119,14 @@ class GetContentsController extends Controller
'macpkr_list' => $macpacPicker,
'shipment_list' => "'" . trim($row->A4ONO) . "'",
'po_list' => "'" . trim($row->A4SHCSPO) . "'",
'order_list' => "'" . trim($row->A4ONO) . "'"
'order_list' => "'" . trim($row->A4ONO) . "'",
];
}
protected function getPackagesData($macpkrList)
{
$results = DB::select("
$results = DB::select(
'
SELECT
AYINTBOX,
MAX(AYHEIGHT) as height,
@@ -137,8 +136,8 @@ class GetContentsController extends Controller
FROM ICM695M1
WHERE AYMACPKR IN (?)
GROUP BY AYINTBOX
ORDER BY AYINTBOX",
[$macpkrList]
ORDER BY AYINTBOX',
[$macpkrList],
);
$packages = [];
@@ -154,7 +153,7 @@ class GetContentsController extends Controller
'HEIGHT' => $row->HEIGHT,
'WIDTH' => $row->WIDTH,
'DEPTH' => $row->DEPTH,
'WEIGHT' => $row->WEIGHT
'WEIGHT' => $row->WEIGHT,
];
$packages[] = [
@@ -165,7 +164,7 @@ class GetContentsController extends Controller
'LicencePlate' => $internalBox,
'Reference1' => $internalBox,
'WeightType' => 0,
'DimensionType' => 0
'DimensionType' => 0,
];
$packagesGS1Array[] = $internalBox;
@@ -174,13 +173,14 @@ class GetContentsController extends Controller
return [
'packages' => $packages,
'package_595m1' => $package595m1,
'packagesGS1Array' => $packagesGS1Array
'packagesGS1Array' => $packagesGS1Array,
];
}
protected function addNMFCDataToPackages($packages, $macpkrList, $icm704mArray)
{
$nmfcResults = DB::select("
$nmfcResults = DB::select(
'
WITH tempfile AS (
SELECT
(SELECT A5WBFRCT FROM ICM688M2
@@ -193,8 +193,8 @@ class GetContentsController extends Controller
SELECT azintbox, MIN(WBFRCT) as MIN_WBFRCT
FROM tempfile
GROUP BY azintbox
ORDER BY 1",
[$macpkrList, $macpkrList]
ORDER BY 1',
[$macpkrList, $macpkrList],
);
foreach ($nmfcResults as $index => $row) {
@@ -208,7 +208,8 @@ class GetContentsController extends Controller
protected function getCommoditiesData($company, $warehouse, $macpkrList, $package595m1, $icm704mArray)
{
$results = DB::select("
$results = DB::select(
'
WITH tempfile1 AS (
SELECT
A5PART,
@@ -238,8 +239,8 @@ class GetContentsController extends Controller
A5WBFRCT, HAZARDOUS, A5SLUNPR
FROM tempfile1
LEFT JOIN tempfile2 ON AZPART = A5PART
ORDER BY A5PART",
[$company, $warehouse, $macpkrList, $company, $warehouse, $macpkrList]
ORDER BY A5PART',
[$company, $warehouse, $macpkrList, $company, $warehouse, $macpkrList],
);
$commodities = [];
@@ -257,7 +258,7 @@ class GetContentsController extends Controller
$nmfcData = $icm704mArray[$wbfrct] ?? [
'LTLClassId' => '50',
'NMFCItem' => '93490',
'NMFCSub' => ''
'NMFCSub' => '',
];
$commodities[] = [
@@ -273,14 +274,14 @@ class GetContentsController extends Controller
'NMFCItem' => $nmfcData['NMFCItem'],
'NMFCSub' => $nmfcData['NMFCSub'],
'DangerousGoodsInfo' => [
'ContainsDangerousGoods' => trim($row->HAZARDOUS) === 'H4.1'
'ContainsDangerousGoods' => trim($row->HAZARDOUS) === 'H4.1',
],
'QuantityAssignment' => [
[
'PackageIndex' => $package595m1[trim($row->AZINTBOX)]['INDEX'],
'Quantity' => (float) $row->AZPACKED
]
]
'Quantity' => (float) $row->AZPACKED,
],
],
];
} else {
$quantityIndex++;
@@ -288,7 +289,7 @@ class GetContentsController extends Controller
$commodities[$index]['Quantity'] += (float) $row->AZPACKED;
$commodities[$index]['QuantityAssignment'][] = [
'PackageIndex' => $package595m1[trim($row->AZINTBOX)]['INDEX'],
'Quantity' => (float) $row->AZPACKED
'Quantity' => (float) $row->AZPACKED,
];
}
@@ -297,6 +298,4 @@ class GetContentsController extends Controller
return $commodities;
}
}