Merge branch 'dillon/34.8b-yd-api-bug-fix' into vapor/development

This commit is contained in:
Dillon Ngo
2024-11-12 12:18:29 +08:00
@@ -70,40 +70,50 @@ class FetchContainersUpdatesYdPortalV3Processor
Log::info('YDContainerUpdates order ' . json_encode($packingList->owner));
$unstuffingDate = null;
$delayDate = null;
$delayETADate = null;
$delayETDDate = null;
$checkShipSailDate = null;
$checkShipArrivalDate = null;
foreach ($trackingRows as $trackingRow) {
if($trackingRow->eta){
if(!$delayDate){
$delayDate = Carbon::parse($trackingRow->eta);
if(!$delayETADate){
$delayETADate = Carbon::parse($trackingRow->eta);
}
if(Carbon::parse($trackingRow->eta) > $delayDate){
$delayDate = Carbon::parse($trackingRow->eta);
if(Carbon::parse($trackingRow->eta) > $delayETADate){
$delayETADate = Carbon::parse($trackingRow->eta);
}
}
if($trackingRow->etd){
if(!$delayETDDate){
$delayETDDate = Carbon::parse($trackingRow->etd);
}
if(Carbon::parse($trackingRow->etd) > $delayETDDate){
$delayETDDate = Carbon::parse($trackingRow->etd);
}
}
}
foreach ($trackingRows as $trackingRow) {
if ($trackingRow->tracking === '到港') {
Log::info('YDContainerUpdates - 到港 delayDate ' . $delayDate);
Log::info('YDContainerUpdates - 到港 delayDate ' . $delayETADate);
Log::info('YDContainerUpdates - 到港 $trackingRow->tracking_time ' . $trackingRow->tracking_time);
$delayDate = Carbon::parse($trackingRow->tracking_time);
$delayETADate = Carbon::parse($trackingRow->tracking_time);
$checkShipArrivalDate = Carbon::parse($trackingRow->tracking_time);
}
if ($trackingRow->tracking === '已开船') {
Log::info('YDContainerUpdates - 已开船 delayDate ' . $delayDate);
if(!$delayDate){
Log::info('YDContainerUpdates - 已开船 delayDate ' . $delayETADate);
if(!$delayETADate){
Log::info('YDContainerUpdates - 已开船 $trackingRow->tracking_time add 5 days ' . $trackingRow->tracking_time);
$delayDate = Carbon::parse($trackingRow->tracking_time)->addDays('5');
$delayETADate = Carbon::parse($trackingRow->tracking_time)->addDays('5');
}
$checkShipSailDate = Carbon::parse($trackingRow->tracking_time);
}
if ($trackingRow->tracking === '货物已进目的港仓库') {
Log::info('YDContainerUpdates - 货物已进目的港仓库 delayDate ' . $delayDate);
Log::info('YDContainerUpdates - 货物已进目的港仓库 delayDate ' . $delayETADate);
$unstuffingDate = Carbon::parse($trackingRow->tracking_time);
}
}
@@ -130,15 +140,19 @@ class FetchContainersUpdatesYdPortalV3Processor
}
}
if($delayDate){
Log::info('YDContainerUpdates delayDate ' . $delayDate);
if($delayETADate){
Log::info('YDContainerUpdates delayDate ' . $delayETADate);
$transport = $container->transports()->first();
Log::info('YDContainerUpdates transport ' . json_encode($transport));
if(!$transport->schedules()->whereDate('eta', '>=', $delayDate)->first()) { //If no record
if(!$transport->schedules()->whereDate('eta', '>=', $delayETADate)->first()) { //If no record
$etd = $transport->schedules()->where('status', '=', ApprovalStatus::APPROVED)->first()->etd;
if($delayETDDate > Carbon::parse($etd)){
$etd = $delayETDDate;
Log::info('YDContainerUpdates new etd');
}
Log::info('YDContainerUpdates etd ' . json_encode($etd));
$transport->schedules()->update(['status' => ApprovalStatus::EXPIRED]);
$this->createsSchedule->execute($transport, new ScheduleObject($etd, $delayDate, ApprovalStatus::APPROVED));
$this->createsSchedule->execute($transport, new ScheduleObject($etd, $delayETADate, ApprovalStatus::APPROVED));
foreach ($container->packingLists as $packingList){
if(!($packingList->owner instanceof Order)) continue;
$user = $packingList->owner->companyModule->employees()->first();