diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 1aa00065..e1054e9f 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -31,7 +31,7 @@ use App\Entity\ServiceCharge; use App\Ramcar\InvoiceCriteria; use App\Ramcar\CMBServiceType; use App\Ramcar\CMBTradeInType; -use App\Ramcar\JOEventType; +use App\Ramcar\CMBJOEventType; use App\Ramcar\JOStatus; use App\Ramcar\CMBWarrantyClass; use App\Ramcar\DiscountApply; @@ -177,13 +177,26 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // get rider information $rider_name = ''; $rider_plate_number = ''; + $rider_id = ''; $rider = $orow->getRider(); if (!empty($rider)) { + $rider_id = $rider->getID(); $rider_name = $rider->getFullName(); $rider_plate_number = $rider->getPlateNumber(); } + // get time when JO was started by rider + $start_event_type = CMBJOEventType::RIDER_START; + $date_start = ''; + $start_results = $this->em->getRepository(JOEvent::class)->findby(['type_id' => $start_event_type, 'rider' => $rider_id, 'job_order' => $orow->getID()], ['date_happen' => 'DESC']); + if ($start_results != null) + { + $jo_event = current($start_results); + $date_start = $jo_event->getDateHappen()->format('d M Y g:i A'); + } + + // add row data $row['id'] = $orow->getID(); $row['customer_name'] = $orow->getCustomer()->getFirstName() . ' ' . $orow->getCustomer()->getLastName(); @@ -198,6 +211,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $row['car_model'] = $car_model; $row['rider_name'] = $rider_name; $row['rider_plate_number'] = $rider_plate_number; + $row['date_start'] = $date_start; $processor = $orow->getProcessedBy(); if ($processor == null) @@ -400,7 +414,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // the event $event = new JOEvent(); $event->setDateHappen(new DateTime()) - ->setTypeID(JOEventType::CREATE) + ->setTypeID(CMBJOEventType::CREATE) ->setJobOrder($jo); if ($user != null) @@ -610,6 +624,9 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $jo->addMeta('discount', $discount); $jo->addMeta('service_charges', $service_charges); + // TODO: what happens if hub and rider are changed + // and JO is already in_transit or in_progress? + // retain old jo status if it's an update JO if ($old_jo_status != null) $jo->setStatus($old_jo_status); @@ -662,7 +679,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // the event $event = new JOEvent(); $event->setDateHappen(new DateTime()) - ->setTypeID(JOEventType::CREATE) + ->setTypeID(CMBJOEventType::CREATE) ->setJobOrder($jo); if ($user != null) @@ -801,7 +818,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // the event $event = new JOEvent(); $event->setDateHappen(new DateTime()) - ->setTypeID(JOEventType::HUB_ASSIGN) + ->setTypeID(CMBJOEventType::HUB_ASSIGN) ->setJobOrder($obj); if ($user != null) @@ -900,7 +917,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // the event $event = new JOEvent(); $event->setDateHappen(new DateTime()) - ->setTypeID(JOEventType::RIDER_ASSIGN) + ->setTypeID(CMBJOEventType::RIDER_ASSIGN) ->setJobOrder($obj); if ($user != null) @@ -971,7 +988,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // the event $event = new JOEvent(); $event->setDateHappen(new DateTime()) - ->setTypeID(JOEventType::FULFILL) + ->setTypeID(CMBJOEventType::FULFILL) ->setJobOrder($obj); // get current user @@ -1069,7 +1086,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // the event $event = new JOEvent(); $event->setDateHappen(new DateTime()) - ->setTypeID(JOEventType::CANCEL) + ->setTypeID(CMBJOEventType::CANCEL) ->setJobOrder($obj); // get current user @@ -1179,7 +1196,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // add event $event = new JOEvent(); $event->setDateHappen(new DateTime()) - ->setTypeID(JOEventType::HUB_ASSIGN) + ->setTypeID(CMBJOEventType::HUB_ASSIGN) ->setJobOrder($obj); if ($user != null) @@ -1379,7 +1396,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // add event $event = new JOEvent(); $event->setDateHappen(new DateTime()) - ->setTypeID(JOEventType::RIDER_ASSIGN) + ->setTypeID(CMBJOEventType::RIDER_ASSIGN) ->setJobOrder($obj); if ($user != null) @@ -2730,7 +2747,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // the event $event = new JOEvent(); $event->setDateHappen(new DateTime()) - ->setTypeID(JOEventType::CREATE) + ->setTypeID(CMBJOEventType::CREATE) ->setJobOrder($jo); if ($user != null) diff --git a/templates/job-order/cmb.list.all.html.twig b/templates/job-order/cmb.list.all.html.twig index ae0cc4c7..c45d3e73 100644 --- a/templates/job-order/cmb.list.all.html.twig +++ b/templates/job-order/cmb.list.all.html.twig @@ -132,6 +132,10 @@ field: 'type', title: 'Schedule' }, + { + field: 'date_start', + title: 'Start Date' + }, { field: 'date_schedule', title: 'Scheduled Date' diff --git a/templates/job-order/cmb.list.open.html.twig b/templates/job-order/cmb.list.open.html.twig index f7b96452..4fa85c70 100644 --- a/templates/job-order/cmb.list.open.html.twig +++ b/templates/job-order/cmb.list.open.html.twig @@ -131,6 +131,10 @@ field: 'type', title: 'Schedule' }, + { + field: 'date_start', + title: 'Start Date' + }, { field: 'date_schedule', title: 'Scheduled Date'