M3 Integration fixes

This commit is contained in:
Mark Gregory
2026-09-21 13:33:05 +01:00
parent 3521e47ef0
commit 66aeefbba5
23 changed files with 674 additions and 691 deletions
@@ -454,7 +454,7 @@ class CloseShipment extends Controller
$contentLabel = '';
$docTypes = ['ContentLabel', 'CarrierLabel'];
foreach ($docTypes as $key => $value) {
foreach ($docTypes as $value) {
switch ($value) {
case 'CarrierLabel':
$dOCTYPE = 'CarrierLabel';
+25 -26
View File
@@ -18,37 +18,36 @@ class PdfStorage extends Controller
public function PdfStorageAPI(Request $request): JsonResponse
{
$this->configureTimeouts();
$context = $this->requestContext($request);
if ($context === null) {
return $this->errorResponse('No URL Parameters Sent', self::ZERO_PAD, '', '', '');
}
$result = $this->errorResponse('No URL Parameters Sent', self::ZERO_PAD, '', '', '');
} else {
try {
$this->logRequest($context);
$cacheKey = $this->buildCacheKey($context);
$pdfFileName = (string) Config::get('arrays.PdfPath') . $context['FILENAME'] . '.pdf';
$error = $this->validateStorageRequest($pdfFileName, $cacheKey);
try {
$this->logRequest($context);
$cacheKey = $this->buildCacheKey($context);
$pdfFileName = (string) Config::get('arrays.PdfPath') . $context['FILENAME'] . '.pdf';
$error = $this->validateStorageRequest($pdfFileName, $cacheKey);
if ($error !== null) {
return $this->errorResponse($error, $context['DELIVERYNO'], $context['DOCNUM'], $context['COMPANY'], $context['WHS']);
if ($error !== null) {
$result = $this->errorResponse($error, $context['DELIVERYNO'], $context['DOCNUM'], $context['COMPANY'], $context['WHS']);
} else {
Cache::forever($cacheKey, base64_encode(File::get($pdfFileName)));
$this->logResult($context, 'PDF File converted to Base64 and Saved to Cache.Key: ' . $cacheKey);
$result = response()->json(['code' => '200', 'status' => 'Success', 'cacheKey' => $cacheKey]);
}
} catch (\Throwable $exception) {
$message = 'An Error Occured - ' . substr($exception->getMessage(), 0, 300);
$this->safeLog($context, $message, true);
$result = response()->json([
'code' => '405',
'status' => 'error',
'message' => 'Catched Error: ' . $exception->getMessage(),
]);
}
Cache::forever($cacheKey, base64_encode(File::get($pdfFileName)));
$this->logResult($context, 'PDF File converted to Base64 and Saved to Cache.Key: ' . $cacheKey);
return response()->json(['code' => '200', 'status' => 'Success', 'cacheKey' => $cacheKey]);
} catch (\Throwable $exception) {
$message = 'An Error Occured - ' . substr($exception->getMessage(), 0, 300);
$this->safeLog($context, $message, true);
return response()->json([
'code' => '405',
'status' => 'error',
'message' => 'Catched Error: ' . $exception->getMessage(),
]);
}
return $result;
}
private function configureTimeouts(): void
+23 -24
View File
@@ -28,33 +28,32 @@ class TwoShipAPIs extends Controller
if ($params === []) {
$this->log($macpkr ?: '000000', $co, $whs, $user, 'X', 'No URL Parameters Sent');
$result = response()->json(['code' => '405', 'status' => 'Error', 'message' => 'No URL Parameters Sent']);
} else {
try {
$this->logRequest($macpkr, $co, $whs, $user);
$orders = $this->aggregationOrders($macpkr, $co, $whs);
$response = $this->callTwoShip($orders);
$error = $this->responseError($response);
return response()->json(['code' => '405', 'status' => 'Error', 'message' => 'No URL Parameters Sent']);
}
try {
$this->logRequest($macpkr, $co, $whs, $user);
$orders = $this->aggregationOrders($macpkr, $co, $whs);
$response = $this->callTwoShip($orders);
$error = $this->responseError($response);
if ($error !== '') {
$this->log($macpkr, $co, $whs, $user, 'X', $response->status() . '-' . $error);
return response()->json(['code' => '405', 'status' => 'error', 'message' => 'Status: ' . $response->status() . '-' . $error]);
if ($error !== '') {
$this->log($macpkr, $co, $whs, $user, 'X', $response->status() . '-' . $error);
$result = response()->json(['code' => '405', 'status' => 'error', 'message' => 'Status: ' . $response->status() . '-' . $error]);
} else {
$this->log($macpkr, $co, $whs, $user, '', $response->body());
$this->markAggregationComplete($orders, $co, $whs);
$result = response()->json(['code' => '200', 'status' => 'Success']);
}
} catch (\Throwable $th) {
$message = str_contains($th->getMessage(), 'cURL error')
? 'Curl Error: Communication with 2Ship Timed Out.'
: '2Ship communication failed.';
$this->log($macpkr, $co, $whs, $user, 'X', $message);
$result = response()->json(['code' => '405', 'status' => 'error', 'message' => $message]);
}
$this->log($macpkr, $co, $whs, $user, '', $response->body());
$this->markAggregationComplete($orders, $co, $whs);
return response()->json(['code' => '200', 'status' => 'Success']);
} catch (\Throwable $th) {
$message = str_contains($th->getMessage(), 'cURL error')
? 'Curl Error: Communication with 2Ship Timed Out.'
: '2Ship communication failed.';
$this->log($macpkr, $co, $whs, $user, 'X', $message);
return response()->json(['code' => '405', 'status' => 'error', 'message' => $message]);
}
return $result;
}
private function configureTimeouts(): void
@@ -16,31 +16,31 @@ class M3CallCloseAPIController extends Controller
{
self::configureTimeouts();
$params = self::validatedParams($request);
$response = null;
if ($params === null) {
Log::channel('dailyCron')->error('Manifest CloseAPI: Manifest, company and warehouse must be defined.');
return self::errorResponse('Manifest CloseAPI: Manifest, company and warehouse must be defined.');
}
try {
$records = self::findOpenManifestRecords($params);
if ($records->isEmpty()) {
Log::channel('dailyCron')->info('Manifest CloseAPI: No records found in ICM705M1.');
return self::errorResponse('Manifest CloseAPI: No records found in ICM705M1.');
$response = self::errorResponse('Manifest CloseAPI: Manifest, company and warehouse must be defined.');
} else {
try {
$records = self::findOpenManifestRecords($params);
if ($records->isEmpty()) {
Log::channel('dailyCron')->info('Manifest CloseAPI: No records found in ICM705M1.');
$response = self::errorResponse('Manifest CloseAPI: No records found in ICM705M1.');
} else {
$response = self::submitManifest($records->first(), $params['SHUSER']);
}
} catch (\Throwable $exception) {
Log::error($exception);
$response = response()->json([
'code' => '500',
'status' => 'Error',
'message' => 'Manifest Closing failed unexpectedly.',
], 500);
}
return self::submitManifest($records->first(), $params['SHUSER']);
} catch (\Throwable $exception) {
Log::error($exception);
return response()->json([
'code' => '500',
'status' => 'Error',
'message' => 'Manifest Closing failed unexpectedly.',
], 500);
}
return $response;
}
private static function configureTimeouts(): void