diff --git a/app/Classes/Modules/PackingLists/Processors/V3/FetchContainersUpdatesYdPortalV3Processor.php b/app/Classes/Modules/PackingLists/Processors/V3/FetchContainersUpdatesYdPortalV3Processor.php index bba9ca01..44a5ab8c 100644 --- a/app/Classes/Modules/PackingLists/Processors/V3/FetchContainersUpdatesYdPortalV3Processor.php +++ b/app/Classes/Modules/PackingLists/Processors/V3/FetchContainersUpdatesYdPortalV3Processor.php @@ -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();