Laravel Vapor - YD API integration code rewrite to fix eta/etd

This commit is contained in:
Dillon Ngo
2024-11-13 10:54:17 +08:00
parent d2f6f4e8a1
commit 22aac2df04
@@ -141,7 +141,7 @@ class FetchContainersUpdatesYdPortalV3Processor
}
if($delayETADate){
Log::info('YDContainerUpdates delayDate ' . $delayETADate);
Log::info('YDContainerUpdates delayETADate ' . $delayETADate);
$transport = $container->transports()->first();
Log::info('YDContainerUpdates transport ' . json_encode($transport));
if(!$transport->schedules()->whereDate('eta', '>=', $delayETADate)->first()) { //If no record
@@ -162,7 +162,28 @@ class FetchContainersUpdatesYdPortalV3Processor
}
}
else{
Log::info('YDContainerUpdates NO DELAY');
Log::info('YDContainerUpdates NO DELAY (ETA)');
}
}
else if($delayETDDate){
//Runs when delayETDDate is available but NOT delayETADate
Log::info('YDContainerUpdates delayETDDate ' . $delayETDDate);
$transport = $container->transports()->first();
Log::info('YDContainerUpdates transport ' . json_encode($transport));
if(!$transport->schedules()->whereDate('etd', '>=', $delayETDDate)->first()) { //If no record
$eta = $delayETDDate->copy()->addDays(5);
$transport->schedules()->update(['status' => ApprovalStatus::EXPIRED]);
$this->createsSchedule->execute($transport, new ScheduleObject($delayETDDate, $eta, ApprovalStatus::APPROVED));
foreach ($container->packingLists as $packingList){
if(!($packingList->owner instanceof Order)) continue;
$user = $packingList->owner->companyModule->employees()->first();
if(app()->environment(['production'])) {
$user->notify(new ShipmentRescheduleEmail($user, $packingList));
}
}
}
else{
Log::info('YDContainerUpdates NO DELAY (ETD)');
}
}