diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 6d286ead..6c080a6d 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -31,6 +31,7 @@ use App\Ramcar\AutoAssignStatus; use App\Ramcar\WarrantySource; use App\Ramcar\HubCriteria; use App\Ramcar\CustomerSource; +use App\Ramcar\DeliveryStatus; use App\Service\InvoiceGeneratorInterface; use App\Service\RisingTideGateway; @@ -2947,6 +2948,7 @@ class APIController extends Controller implements LoggedController $jo->setRider($assigned_rider); $jo->setStatus(JOStatus::ASSIGNED); $jo->setStatusAutoAssign(AutoAssignStatus::HUB_AND_RIDER_ASSIGNED); + $jo->setDeliveryStatus(DeliveryStatus::RIDER_ASSIGN); $assigned_rider->setAvailable(false); diff --git a/src/Controller/CAPI/RiderController.php b/src/Controller/CAPI/RiderController.php index b66b20c6..e779bd35 100644 --- a/src/Controller/CAPI/RiderController.php +++ b/src/Controller/CAPI/RiderController.php @@ -373,6 +373,7 @@ class RiderController extends APIController 'has_warranty_doc' => false, 'flag_coolant' => $jo->hasCoolant(), 'has_motolite' => $cv->hasMotoliteBattery(), + 'delivery_status' => $jo->getDeliveryStatus(), ] ]; } diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index 9fdc2424..fcbe5ddc 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -359,6 +359,12 @@ class JobOrder */ protected $no_trade_in_reason; + // delivery status of the job order + /** + * @ORM\Column(type="string", length=30, nullable=true) + */ + protected $delivery_status; + public function __construct() { $this->date_create = new DateTime(); @@ -1032,4 +1038,16 @@ class JobOrder { return $this->no_trade_in_reason; } + + public function setDeliveryStatus($delivery_status) + { + $this->delivery_status = $delivery_status; + return $this; + } + + public function getDeliveryStatus() + { + return $this->delivery_status; + } + } diff --git a/src/Ramcar/DeliveryStatus.php b/src/Ramcar/DeliveryStatus.php new file mode 100644 index 00000000..7d464444 --- /dev/null +++ b/src/Ramcar/DeliveryStatus.php @@ -0,0 +1,41 @@ + 'Assigned Rider', + 'requeue' => 'Requeue', + 'accept' => 'Rider Accept', + 'arrive' => 'Rider Arrive', + 'rider_edit' => 'Rider Edit', + 'rider_depart_hub' => 'Rider Depart Hub', + 'rider_arrive_hub_pre_jo' => 'Rider Arrive Hub Pre JO', + 'rider_depart_hub_pre_jo' => 'Rider Depart Hub Pre JO', + 'rider_start' => 'Rider Start', + 'rider_end' => 'Rider End', + 'rider_arrive_hub_post_jo' => 'Rider Arrive Hub Post JO', + 'rider_depart_hub_post_jo' => 'Rider Depart Hub Post JO', + 'rider_arrive_hub' => 'Rider Arrive Hub', + 'cancelled' => 'Cancelled', + 'fulfilled' => 'Fulfilled', + ]; +} + diff --git a/src/Ramcar/JOEventType.php b/src/Ramcar/JOEventType.php index e530679d..3413f660 100644 --- a/src/Ramcar/JOEventType.php +++ b/src/Ramcar/JOEventType.php @@ -34,5 +34,13 @@ class JOEventType extends NameValue 'accept' => 'Rider Accept', 'arrive' => 'Rider Arrive', 'rider_edit' => 'Rider Edit', + 'rider_depart_hub' => 'Rider Depart Hub', + 'rider_arrive_hub_pre_jo' => 'Rider Arrive Hub Pre JO', + 'rider_depart_hub_pre_jo' => 'Rider Depart Hub Pre JO', + 'rider_start' => 'Rider Start', + 'rider_end' => 'Rider End', + 'rider_arrive_hub_post_jo' => 'Rider Arrive Hub Post JO', + 'rider_depart_hub_post_jo' => 'Rider Depart Hub Post JO', + 'rider_arrive_hub' => 'Rider Arrive Hub', ]; } diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 82261c4d..c0aa528b 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -43,6 +43,7 @@ use App\Ramcar\NoTradeInReason; use App\Ramcar\WillingToWaitContent; use App\Ramcar\WarrantySource; use App\Ramcar\HubCriteria; +use App\Ramcar\DeliveryStatus; use App\Service\InvoiceGeneratorInterface; use App\Service\JobOrderHandlerInterface; @@ -932,7 +933,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setLandmark($req->request->get('landmark')) ->setWillWait($req->request->get('flag_willing_to_wait')) ->setReasonNotWait($reason) - ->setNotWaitingNotes($more_reason); + ->setNotWaitingNotes($more_reason) + ->setDeliveryStatus(DeliveryStatus::RIDER_ASSIGN); if ($user != null) { @@ -1028,7 +1030,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setLandmark($req->request->get('landmark')) ->setWillWait($req->request->get('flag_willing_to_wait')) ->setReasonNotWait($reason) - ->setNotWaitingNotes($more_reason); + ->setNotWaitingNotes($more_reason) + ->setDeliveryStatus(DeliveryStatus::FULFILLED); // validate $errors = $this->validator->validate($obj); @@ -1143,7 +1146,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $cancel_reason = $req->request->get('cancel_reason'); error_log($cancel_reason); - $obj->cancel($cancel_reason); + $obj->cancel($cancel_reason) + ->setDeliveryStatus(DeliveryStatus::CANCELLED); // the event $event = new JOEvent(); @@ -1484,7 +1488,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setLandmark($req->request->get('landmark')) ->setWillWait($req->request->get('flag_willing_to_wait')) ->setReasonNotWait($reason) - ->setNotWaitingNotes($more_reason); + ->setNotWaitingNotes($more_reason) + ->setDeliveryStatus(DeliveryStatus::RIDER_ASSIGN); if ($user != null) {