all()); # Get the Calling User $SHUSER = m3_user() !== '' ? Str::upper(m3_user()) : 'WebUser'; # Set SHSOURCE $SHSOURCE = 'TransferAPIURL'; $M3Errors = ''; # Get URL PARAMS $urlParams = count($request->all()) > 0 ? $request->all() : ''; $DIVI = isset($urlParams["COMPANY"]) ? $urlParams["COMPANY"] : ''; $WHS = isset($urlParams["WHS"]) ? $urlParams["WHS"] : ''; try { if ($urlParams != '') { $PART = isset($urlParams["PART"]) ? $urlParams["PART"] : ''; $LOCATIONFROM = isset($urlParams["LOCATIONFROM"]) ? $urlParams["LOCATIONFROM"] : ''; $LOCATIONTO = isset($urlParams["LOCATIONTO"]) ? $urlParams["LOCATIONTO"] : ''; $QUANTITY = isset($urlParams["QUANTITY"]) ? $urlParams["QUANTITY"] : ''; $ORDERCATEGORY = isset($urlParams["ORDERCATEGORY"]) ? $urlParams["ORDERCATEGORY"] : ''; $LOTNUMBER = isset($urlParams["LOTNUMBER"]) ? $urlParams["LOTNUMBER"] : ""; $CONUMBER = isset($urlParams["CONUMBER"]) ? $urlParams["CONUMBER"] : ''; $COLINENO = isset($urlParams["COLINENO"]) ? $urlParams["COLINENO"] : ''; $DELIVERYNO = isset($urlParams["DELIVERYNO"]) ? $urlParams["DELIVERYNO"] : '000000'; $PICKLISTSUFFIX = isset($urlParams["PICKLISTSUFFIX"]) ? $urlParams["PICKLISTSUFFIX"] : ''; $ENDFLAG = isset($urlParams["ENDFLAG"]) ? $urlParams["ENDFLAG"] : ''; $TYPE = isset($urlParams["TYPE"]) ? $urlParams["TYPE"] : ''; $COLINESUFFIX = isset($urlParams["COLINESUFFIX"]) ? $urlParams["COLINESUFFIX"] : ''; # TYPE : # DeliveryNote # S15 # CloseShipment # COCharge # Replenishment # Move # ORDERCATEGORY : Order Category # 1 = Material to manufacturing order # 3 = Customer Order # 4 = Requisition Order # 5 = Distribution Order # 9 = Move order $DELIVERYNO = isset($DELIVERYNO) ? $DELIVERYNO : '000000'; $TRANSTYPE = isset($urlParams["TRANSTYPE"]) ? $urlParams["TRANSTYPE"] : ''; # R for Retry $SHDT = isset($urlParams["SHDT"]) ? $urlParams["SHDT"] : ''; $SHTIME = isset($urlParams["SHTIME"]) ? $urlParams["SHTIME"] : ''; $SHTYPE = isset($urlParams["SHTYPE"]) ? $urlParams["SHTYPE"] : ''; # Retry Transfer if ($TRANSTYPE == 'R') { # $t = strtotime($SHTIME); # $SHTIMEHM = date('H:i',$t); # dd($SHTIMEHM); # Get the record that contain the payload $ICM699MS = DB::connection(config('m3.connection', 'pgsql'))->table('icm699m') ->select('SHDATA') ->where('SHMACPKR', $DELIVERYNO) ->where('SHDT', $SHDT) ->where('SHTIME', $SHTIME) # ->whereRaw("VARCHAR_FORMAT (TIMESTAMP (CURRENT DATE) + MIDNIGHT_SECONDS (SHTIME) SECONDS, 'HH24:MI') = ?", [$SHTIMEHM]) ->where('SHCO', $DIVI) ->where('SHWHS', $WHS) ->where('SHSOURCE', $SHSOURCE) ->where('SHERROR', 'X') ->where('SHTYPE', $SHTYPE) ->first(); // dump($ICM699MS->SHDATA); # Read The substring from SHDATA after M3-JSN-out $word = 'M3-JSN-out'; $SHDATA = isset($ICM699MS->SHDATA) ? $ICM699MS->SHDATA : ''; $SHDATAJSON = ""; $position = strpos($SHDATA, $word); # Also Read CommTCP_read $word2 = 'url:http://127.0.0.1:10005/api/TransferAPIURL?'; $SHDATA2 = isset($ICM699MS->SHDATA) ? $ICM699MS->SHDATA : ''; $position2 = strpos($SHDATA2, $word2); if ($position !== false) { $SHDATAJSON = substr($SHDATA, $position + strlen($word)); } else if ($position2 !== false) { $SHDATAJSONS = substr($SHDATA2, $position2 + strlen($word2)); $SHDATAJSONA = []; parse_str($SHDATAJSONS, $SHDATAJSONA); $SHDATAJSON = json_encode($SHDATAJSONA); } # Find the position of the opening and closing curly braces $startPos = strpos($SHDATAJSON, '{'); $endPos = strrpos($SHDATAJSON, '}'); # Extract the substring within the curly braces $SHDATAJSON = substr($SHDATAJSON, $startPos, $endPos - $startPos + 1); // dd($SHDATAJSON); $JSONTR = $SHDATAJSON != '' ? json_decode($SHDATAJSON) : ''; // dd($JSONTR); if ($JSONTR != '') { $PART = isset($JSONTR->PART) ? $JSONTR->PART : ''; $LOCATIONFROM = isset($JSONTR->LOCATIONFROM) ? $JSONTR->LOCATIONFROM : ''; $LOCATIONTO = isset($JSONTR->LOCATIONTO) ? $JSONTR->LOCATIONTO : ''; $QUANTITY = isset($JSONTR->QUANTITY) ? $JSONTR->QUANTITY : ''; $ORDERCATEGORY = isset($JSONTR->ORDERCATEGORY) ? $JSONTR->ORDERCATEGORY : ''; $LOTNUMBER = isset($JSONTR->LOTNUMBER) ? $JSONTR->LOTNUMBER : ""; $CONUMBER = isset($JSONTR->CONUMBER) ? $JSONTR->CONUMBER : ''; $COLINENO = isset($JSONTR->COLINENO) ? $JSONTR->COLINENO : ''; $DELIVERYNO = isset($JSONTR->DELIVERYNO) ? $JSONTR->DELIVERYNO : '000000'; $PICKLISTSUFFIX = isset($JSONTR->PICKLISTSUFFIX) ? $JSONTR->PICKLISTSUFFIX : ''; $ENDFLAG = isset($JSONTR->ENDFLAG) ? $JSONTR->ENDFLAG : ''; $TYPE = isset($JSONTR->TYPE) ? $JSONTR->TYPE : ''; $COLINESUFFIX = isset($JSONTR->COLINESUFFIX) ? $JSONTR->COLINESUFFIX : ''; } // dd($JSONTR); # Set SHERROR to Z in ICM699M $ICM699MU = DB::connection(config('m3.connection', 'pgsql'))->table('icm699m') ->where('SHMACPKR', $DELIVERYNO) ->where('SHDT', $SHDT) ->where('SHTIME', $SHTIME) ->where('SHCO', $DIVI) ->where('SHWHS', $WHS) ->where('SHSOURCE', $SHSOURCE) ->where('SHERROR', 'X') ->where('SHTYPE', $SHTYPE) ->update(["SHERROR" => "Z", "SHACKUSER" => $SHUSER, "SHACKDATE" => date('Y-m-d'), "SHACKTIME" => date('H:i:s')]); } # Part Exists : proceed if ($PART != '') { # Read from ICM688M2 # Get Parts And Lots from ICM688M2 $ICM688M2SLTMP = DB::connection(config('m3.connection', 'pgsql'))->table('icm688m2') ->select('A5BRADLN', 'A5PKSFX', 'A5PLANT', 'A5SENTPKR') ->distinct() ->where('A5CO', $DIVI) ->where('A5WHS', $WHS) ->where('A5MACPKR', $DELIVERYNO); # Get Pack Lines if ($COLINENO != '') { $ICM688M2SLTMP->where('A5PKLN', $COLINENO); } $ICM688M2SL = $ICM688M2SLTMP->first(); // dd($ICM688M2SL->A5BRADLN); $A5BRADLINE = isset($ICM688M2SL->A5BRADLN) ? $ICM688M2SL->A5BRADLN : ''; $COLINESUFFIX = isset($ICM688M2SL->A5PKSFX) ? $ICM688M2SL->A5PKSFX : ''; # Case 551 : $COLINESUFFIX $A5PLANT = isset($ICM688M2SL->A5PLANT) ? $ICM688M2SL->A5PLANT : ''; $A5SENTPKR = isset($ICM688M2SL->A5SENTPKR) ? $ICM688M2SL->A5SENTPKR : ''; $JSONIN = json_encode([ "DIVI" => $DIVI, "WHS" => $WHS, "PART" => $PART, "LOCATIONFROM" => $LOCATIONFROM, "LOCATIONTO" => $LOCATIONTO, "QUANTITY" => $QUANTITY, "ORDERCATEGORY" => $ORDERCATEGORY, "LOTNUMBER" => $LOTNUMBER, "CONUMBER" => $CONUMBER, "COLINENO" => $COLINENO, "DELIVERYNO" => $DELIVERYNO, "PICKLISTSUFFIX" => $PICKLISTSUFFIX, "ENDFLAG" => $ENDFLAG, "TYPE" => $TYPE, "COLINESUFFIX" => $COLINESUFFIX, ], JSON_UNESCAPED_SLASHES); $JSON = json_encode([ "DIVI" => $DIVI, "WHS" => $WHS, "PART" => $PART, "LOCATIONFROM" => $LOCATIONFROM, "LOCATIONTO" => $LOCATIONTO, "QUANTITY" => $QUANTITY, "ORDERCATEGORY" => $ORDERCATEGORY, "LOTNUMBER" => $LOTNUMBER, "CONUMBER" => $CONUMBER, "COLINENO" => $A5BRADLINE, "DELIVERYNO" => $DELIVERYNO, "PICKLISTSUFFIX" => $PICKLISTSUFFIX, "ENDFLAG" => $ENDFLAG, "TYPE" => $TYPE, "COLINESUFFIX" => $COLINESUFFIX, ], JSON_UNESCAPED_SLASHES); // dd($JSON); # Write JSON Params to Logs Out $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => '', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Req-out', 'SHDATA' => $JSON, 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); # Get Token $tokenResponse = Helper::checkReceiveTokenV2(); $tokenData = $tokenResponse->getData(); if ($tokenData->code == '200') { $IonToken = isset($tokenData->token) ? $tokenData->token : ''; } else { $SHDATA = isset($tokenData->message) ? $tokenData->message : ''; # Write to Logs : Error $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => '', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Res-out', 'SHDATA' => $SHDATA, 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); return $tokenResponse; } # Call ionapi with Params $endPointURL = env('ENDPOINTURL') . 'APIFLOWS/Sentinel/TransferAPI?ionapiRespStyle=sync'; $token = $IonToken; $response = Http::withHeaders([ 'accept' => 'application/json', 'Content-Type' => 'application/json' ]) ->withToken($token) ->withBody($JSON, 'application/json') ->timeout(Config::get('arrays.curlTimeOut')) ->post($endPointURL); $responseStatusCode = $response->getStatusCode(); $M3SessionId = $response->hasHeader('x-transaction-id') ? "-sessionID:" . $response->header('x-transaction-id') : '-sessionID'; $M3ResponseTimeTmp = $response->hasHeader('x-response-time') ? ltrim($response->header('x-response-time'), "-") : '0'; $M3ResponseTimeTmp2 = floatval($M3ResponseTimeTmp) / 1000; //$M3ResponseTimeTmp / 1000; $dateTime = new DateTime(); $dateTime->setTimestamp($M3ResponseTimeTmp2); // dump( $dateTime->format('d/m/Y H:i:s.v') ); $M3ResponseTime = $M3ResponseTimeTmp != '' ? '-M3ResponseTime:' . $dateTime->format('d/m/Y H:i:s.v') : '-M3ResponseTime'; // dump($M3ResponseTime); $transferStats = $response->transferStats; $M3transferTime = $transferStats->getTransferTime() != null ? "-M3transferTime:" . $transferStats->getTransferTime() : "-M3transferTime"; // dd($M3transferTime); if ($responseStatusCode == '200') { $responseContents = json_decode($response->getBody()->getContents()); $responseResult = $responseContents->result; $M3JSONResponse = json_encode($responseContents); # Check M3 Response for Errors $M3Errors = Helper::checkM3Errors($responseResult); } else { $M3JSONResponse = ''; $M3Errors = 'Error: No Response from M3'; } if ($M3Errors == '') { # Write to Logs Out : Success $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => '', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Res-out', 'SHDATA' => $responseStatusCode . 'TYPE :' . $TYPE . ' Order Category: ' . $ORDERCATEGORY . '-' . $M3JSONResponse . $M3SessionId . $M3ResponseTime . $M3transferTime, 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); # Log to ICM799M $ICM799MINS = DB::connection(config('m3.connection', 'pgsql'))->table('icm799m') ->insert(["IMDIV" => $DIVI, "IMPLANT" => $A5PLANT, "IMWHS" => $WHS, "IMSENTPKR" => $A5SENTPKR, "IMDELNO" => $DELIVERYNO, "IMORDER" => $CONUMBER, "IMLINE" => $COLINENO, "IMBRADLN" => $A5BRADLINE, "IMSUFFIX" => $PICKLISTSUFFIX, "IMPART" => $PART, "IMLOT" => $LOTNUMBER, "IMQTY" => $QUANTITY, "IMFRLOC" => $LOCATIONFROM, "IMTOLOC" => $LOCATIONTO, "IMDATE" => date('Ymd'), "IMTIME" => date('His') ]); return response()->json([ 'code' => $responseStatusCode, 'status' => 'Success' ]); } else { # Write to Logs Out : Failed $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => 'X', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Res-out', 'SHDATA' => $responseStatusCode . '-' . $M3Errors . '-TYPE:' . $TYPE . ' Order Category: ' . $ORDERCATEGORY . '-' . $M3JSONResponse . 'M3-JSN-out' . $JSONIN . $M3SessionId . $M3ResponseTime . $M3transferTime, 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); return response()->json([ 'code' => '206', 'status' => 'Error', 'message' => $responseStatusCode . '-' . $M3Errors . '- TYPE :' . $TYPE . ' Order Category: ' . $ORDERCATEGORY . '-' . $M3JSONResponse ]); } } # Part Does not Exist : Failure else { # Return Error return response()->json([ 'code' => '405', 'status' => 'Error', 'message' => 'Json Payload Not Valid, possible cause: Retry butto was clicked by another user.' ]); } } else { # Write to Logs Out : Error $DELIVERYNO = isset($DELIVERYNO) ? $DELIVERYNO : '000000'; $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => 'X', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Res-out', 'SHDATA' => 'No URL Parameters Sent', 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); # Return Error return response()->json([ 'code' => '405', 'status' => 'Error', 'message' => 'No URL Parameters Sent' ]); } } catch (\Throwable $th) { // Log::error($th); $getCurlErrors = str_contains($th->getMessage(), 'cURL error'); if ($getCurlErrors) { # Write to Logs Out : Failed $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => 'X', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Res-out', 'SHDATA' => 'Curl Error: Communication with M3 Timed Out' . ' M3-JSN-out' . $JSONIN, 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); return response()->json([ 'code' => '405', 'status' => 'error', 'message' => 'Curl Error: Communication with M3 Timed Out.' ]); } else { # Write to Logs Out : Error $DELIVERYNO = isset($DELIVERYNO) ? $DELIVERYNO : '000000'; $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => 'X', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Err-out', 'SHDATA' => 'An Error Occured - ' . substr($th, 0, 300), 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); Log::error($th); return response()->json([ 'code' => '405', 'status' => 'error', 'message' => 'Uncaught Error' ]); } } } # End TransferAPIURL # UpdateShipmentNumber : with URL PARAMS public function UpdateShipmentNumber(Request $request) { ini_set('max_execution_time', Config::get('arrays.PHPTimeOut')); ini_set('max_input_time', Config::get('arrays.PHPTimeOut')); ini_set('default_socket_timeout', Config::get('arrays.PHPTimeOut')); // dd($request->all()); # Get the Calling User $SHUSER = m3_user() !== '' ? Str::upper(m3_user()) : 'WebUser'; # Set SHSOURCE $SHSOURCE = 'UpdateShipmentNumber'; $M3Errors = ''; # Get URL PARAMS $urlParams = count($request->all()) > 0 ? $request->all() : ''; $DIVI = isset($urlParams["COMPANY"]) ? $urlParams["COMPANY"] : ''; $WHS = isset($urlParams["WHS"]) ? $urlParams["WHS"] : ''; $PLANT = isset($urlParams["PLANT"]) ? $urlParams["PLANT"] : ''; // dump($urlParams); try { if ($urlParams != '') { $A4SPR15A01 = isset($urlParams["A4SPR15A01"]) ? $urlParams["A4SPR15A01"] : ''; $DELIVERYNO = isset($urlParams["DELIVERYNO"]) ? $urlParams["DELIVERYNO"] : ''; $TYPE = 'UpdateShipmentNumber'; $allMacpkrs = []; // dd($A4SPR15A01); if ($A4SPR15A01 != '') { # Read from ICM688M1 $ICM688M1SLTMP = DB::connection(config('m3.connection', 'pgsql'))->table('icm688m1') ->select('A4MACPKR') ->where('A4CO', $DIVI) ->where('A4WHS', $WHS) ->where('A4PLANT', $PLANT) ->where('A4SPR15A01', $A4SPR15A01); # Get Macpikers also if sent as Parameter if ($DELIVERYNO != '') { $ICM688M1SLTMP->where('A4MACPKR', $DELIVERYNO); } $ICM688M1SL = $ICM688M1SLTMP->get(); # Loop ICM688M1 to get all A4MACPKR foreach ($ICM688M1SL as $key => $ICM688M1) { $allMacpkrs[] = $ICM688M1->A4MACPKR; } } # A4SPR15A01 Exists : proceed if ($A4SPR15A01 != '' && count($allMacpkrs)>0) { $JSON = json_encode([ "DIVI" => $DIVI, "WHS" => $WHS, "ShipmentNumber" => [ "Number" => $A4SPR15A01, "DeliveryNumbers" => $allMacpkrs ], "TYPE" => $TYPE, "ENDFLAG" => "", ], JSON_UNESCAPED_SLASHES); // dd($JSON); # Write JSON Params to Logs Out $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => '', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Req-out', 'SHDATA' => $JSON, 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); # Get Token $tokenResponse = Helper::checkReceiveTokenV2(); $tokenData = $tokenResponse->getData(); if ($tokenData->code == '200') { $IonToken = isset($tokenData->token) ? $tokenData->token : ''; } else { $SHDATA = isset($tokenData->message) ? $tokenData->message : ''; # Write to Logs : Error $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => '', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Res-out', 'SHDATA' => $SHDATA, 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); return $tokenResponse; } # Call ionapi with Params $endPointURL = env('ENDPOINTURL') . 'APIFLOWS/Sentinel/TransferAPI?ionapiRespStyle=sync'; $token = $IonToken; $response = Http::withHeaders([ 'accept' => 'application/json', 'Content-Type' => 'application/json' ]) ->withToken($token) ->withBody($JSON, 'application/json') ->timeout(Config::get('arrays.curlTimeOut')) ->post($endPointURL); $responseStatusCode = $response->getStatusCode(); $M3SessionId = $response->hasHeader('x-transaction-id') ? "-sessionID:" . $response->header('x-transaction-id') : '-sessionID'; $M3ResponseTimeTmp = $response->hasHeader('x-response-time') ? ltrim($response->header('x-response-time'), "-") : '0'; $M3ResponseTimeTmp2 = floatval($M3ResponseTimeTmp) / 1000; //$M3ResponseTimeTmp / 1000; $dateTime = new DateTime(); $dateTime->setTimestamp($M3ResponseTimeTmp2); $M3ResponseTime = $M3ResponseTimeTmp != '' ? '-M3ResponseTime:' . $dateTime->format('d/m/Y H:i:s.v') : '-M3ResponseTime'; $transferStats = $response->transferStats; $M3transferTime = $transferStats->getTransferTime() != null ? "-M3transferTime:" . $transferStats->getTransferTime() : "-M3transferTime"; if ($responseStatusCode == '200') { $responseContents = json_decode($response->getBody()->getContents()); $responseResult = $responseContents->result; $M3JSONResponse = json_encode($responseContents); # Check M3 Response for Errors $M3Errors = Helper::checkM3Errors($responseResult); } else { $M3JSONResponse = ''; $M3Errors = 'Error: No Response from M3'; } if ($M3Errors == '') { # Write to Logs Out : Success $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => '', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Res-out', 'SHDATA' => $responseStatusCode . 'TYPE :' . $TYPE . '-' . $M3JSONResponse . $M3SessionId . $M3ResponseTime . $M3transferTime, 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); return response()->json([ 'code' => $responseStatusCode, 'status' => 'Success' ]); } else { # Write to Logs Out : Failed $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => 'X', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Res-out', 'SHDATA' => $responseStatusCode . '-' . $M3Errors . '-TYPE:' . $TYPE . '-' . $M3JSONResponse . 'M3-JSN-out' . $JSON . $M3SessionId . $M3ResponseTime . $M3transferTime, 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); return response()->json([ 'code' => '206', 'status' => 'Error', 'message' => $responseStatusCode . '-' . $M3Errors . '- TYPE :' . $TYPE . '-' . $M3JSONResponse ]); } } # A4SPR15A01 Does not Exist : Failure else { # Return Error return response()->json([ 'code' => '405', 'status' => 'Error', 'message' => 'Json Payload Not Valid, missing Parameter or no Macpicker # found.' ]); } } else { # Write to Logs Out : Error $DELIVERYNO = isset($DELIVERYNO) ? $DELIVERYNO : '000000'; $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => 'X', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Res-out', 'SHDATA' => 'No URL Parameters Sent', 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); # Return Error return response()->json([ 'code' => '405', 'status' => 'Error', 'message' => 'No URL Parameters Sent' ]); } } catch (\Throwable $th) { // Log::error($th); $getCurlErrors = str_contains($th->getMessage(), 'cURL error'); if ($getCurlErrors) { # Write to Logs Out : Failed $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => 'X', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Res-out', 'SHDATA' => 'Curl Error: Communication with M3 Timed Out' . ' M3-JSN-out' . $JSON, 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); return response()->json([ 'code' => '405', 'status' => 'error', 'message' => 'Curl Error: Communication with M3 Timed Out.' ]); } else { # Write to Logs Out : Error $DELIVERYNO = isset($DELIVERYNO) ? $DELIVERYNO : '000000'; $data = ['SHMACPKR' => $DELIVERYNO, 'SHDT' => date('Y-m-d'), 'SHTIME' => date('H:i:s'), 'SHERROR' => 'X', 'SHINTBOX' => '', 'SHTYPE' => 'M3-Err-out', 'SHDATA' => 'An Error Occured - ' . substr($th, 0, 300), 'SHUSER' => $SHUSER, 'SHSOURCE' => $SHSOURCE, 'SHCO' => $DIVI, 'SHWHS' => $WHS ]; Helper::logToICM699M($data); Log::error($th); return response()->json([ 'code' => '405', 'status' => 'error', 'message' => 'Uncaught Error' ]); } } } # End UpdateShipmentNumber }