Files
WMS/Modules/M3/Http/Controllers/PendingClosureController.php
2026-09-21 13:25:44 +01:00

115 lines
4.9 KiB
PHP
Executable File

<?php
// 732
namespace Modules\M3\Http\Controllers;
use DB;
use Symfony\Component\HttpFoundation\Request;
class PendingClosureController extends Controller
{
public static function index(Request $request)
{
// Get Users from ICM428M
$iCM428M = DB::connection(config('m3.connection', 'pgsql'))->table('icm428m')
->select('R428US', 'R428CO', 'R428WH', 'R428PL')
->where('R428US', '=', strtoupper(m3User()))
->first();
$user = $iCM428M->R428US;
$co = $iCM428M->R428CO;
$whs = $iCM428M->R428WH;
$plant = $iCM428M->R428PL;
// ICM705M1 Statement
$sqlstmt = "select APMANIFEST,APDOCKDOOR,APCARRIER,APTRUCKIDT,APSPARE1,APLDSTRU,APLDSTRD,APLDSTRT,
APLDCLOU,APLDCLOD,APLDCLOT,APCO,APWHS,APPLT,APSPARE2,APLDCLOZ
from ICM705M1
where APSPARE2 in ('','P') and APCO='$co' and APWHS='$whs' and APPLT='$plant'";
$iCM705M1 = DB::connection(config('m3.connection', 'pgsql'))->select($sqlstmt);
$iCM698Ma = [];
$iCM699Ma = [];
foreach ($iCM705M1 as $val) {
$sqlstmt1 = "select LGUSER,LGCONFDT,LGCONFTM
from ICM698M
where LGCO='$val->APCO' and LGWHS='$val->APWHS'and LGURL='op605api.php'
and LGRESPONSE like 'Close of Sentinel Manifest%'
and LGRESPONSE like '%' || right('000000000' || '$val->APMANIFEST',9) || '%'";
$iCM698M = DB::connection(config('m3.connection', 'pgsql'))->select($sqlstmt1);
$iCM698Ma[$val->APMANIFEST]['TMSUSER'] = '';
$iCM698Ma[$val->APMANIFEST]['TMSDATE'] = '';
$iCM698Ma[$val->APMANIFEST]['TMSTIME'] = '';
foreach ($iCM698M as $val2) {
$iCM698Ma[$val->APMANIFEST]['TMSUSER'] = $val2->LGUSER;
$iCM698Ma[$val->APMANIFEST]['TMSDATE'] = $val2->LGCONFDT;
$iCM698Ma[$val->APMANIFEST]['TMSTIME'] = $val2->LGCONFTM;
}
$iCM699MSel1 = "select SHMACPKR,SHDT,SHTIME from ICM699M
WHERE SHMACPKR='$val->APMANIFEST' AND SHCO='$co' AND SHWHS='$whs'
AND SHSOURCE='CloseShipmentCoChargeAPI' AND SHERROR='' AND SHTYPE='M3-Req-out' limit 1";
$iCM699MSel = DB::connection(config('m3.connection', 'pgsql'))->select($iCM699MSel1);
foreach ($iCM699MSel as $val2) {
$iCM699Ma[$val2->SHMACPKR]['SHDT'] = $val2->SHDT;
$iCM699Ma[$val2->SHMACPKR]['SHTIME'] = $val2->SHTIME;
}
}
$sqlstmt = "select count(*) as COUNT1 from ICM699M
where SHCO='$co' and SHWHS='$whs' and SHTYPE like '%M3%' and SHERROR='X'
and SHSOURCE='CloseShipmentCoChargeAPI'";
$iCM699M = DB::connection(config('m3.connection', 'pgsql'))->select($sqlstmt);
// Get Unprocessed Orders
$unprocessedArr = [];
$sqlstmt3 = "WITH TEMPFILE AS (
SELECT A4MACPKR,A4SPKRFUD,(SELECT AYAPRF1551 FROM ICM695M1 WHERE AYMACPKR=A4MACPKR AND AYSLWHS='$whs' FETCH FIRST 1 ROWS ONLY) AS MF FROM ICM688M1
WHERE A4PICKSTS='B' AND A4WHS='$whs' ORDER BY A4SPKRFUD
)
SELECT APMANIFEST,APSPARE2 FROM ICM705M1 WHERE APMANIFEST IN (SELECT DISTINCT MF FROM TEMPFILE) AND APSPARE2='X' AND APWHS='$whs' ";
// AND APSPARE2!=''
// dump($sqlstmt3);
$uproccessedOrders = DB::connection(config('m3.connection', 'pgsql'))->select($sqlstmt3);
foreach ($uproccessedOrders as $UproccessedOrder) {
$unprocessedArr[] = '<a class="btn btn-link mb-1" target="_blank" href="' . url('MFOrders', ['id' => trim($UproccessedOrder->APMANIFEST)]) . '"> ' .
trim($UproccessedOrder->APMANIFEST) . '</a>';
}
return view(
'm3::liberty-theme.pages.pendingClosure',
['ICM705M1' => $iCM705M1, 'ICM698Ma' => $iCM698Ma, 'ICM699M' => $iCM699M, 'user' => $user, 'request' => $request, 'unprocessedArr' => $unprocessedArr, 'ICM699Ma' => $iCM699Ma],
);
}
public static function allowRetry(Request $request)
{
// Get URL PARAMS
$urlParams = count($request->all()) > 0 ? $request->all() : '';
$mANIFEST = isset($urlParams['MANIFEST']) ? $urlParams['MANIFEST'] : '';
$aPCO = isset($urlParams['APCO']) ? $urlParams['APCO'] : '';
$aPWHS = isset($urlParams['APWHS']) ? $urlParams['APWHS'] : '';
try {
DB::connection(config('m3.connection', 'pgsql'))->table('icm705m1')
->where('APCO', $aPCO)
->where('APWHS', $aPWHS)
->where('APMANIFEST', '=', $mANIFEST)
->update(['APSPARE2' => '']);
return response()->json([
'code' => '200',
'status' => 'Success',
'message' => 'Manifest Closing submitted',
]);
} catch (\Throwable $th) {
report($th);
}
}
}