diff --git a/src/EventListener/JobOrderStatusListener.php b/src/EventListener/JobOrderStatusListener.php index 6e746fd2..8c3c9f45 100644 --- a/src/EventListener/JobOrderStatusListener.php +++ b/src/EventListener/JobOrderStatusListener.php @@ -5,65 +5,87 @@ namespace App\EventListener; use Doctrine\Common\Persistence\Event\LifecycleEventArgs; use App\Entity\JobOrder; +use App\Entity\Warranty; use App\Service\WarrantyHandler; +use App\Service\JobOrderHandlerInterface; + +use App\Ramcar\JOStatus; class JobOrderStatusListener { - public function __construct(WarrantyHandler $wh) + protected $wh; + protected $jo_handler; + + public function __construct(WarrantyHandler $wh, JobOrderHandlerInterface $jo_handler) { $this->wh = $wh; + $this->jo_handler = $jo_handler; } + // when a JO is updated public function postUpdate(JobOrder $jo, LifecycleEventArgs $args) { $status = $jo->getStatus(); if ($status == JOStatus::FULFILLED) { - error_log('hello!'); - // create warranty - /* - if ($this->checkIfNewBattery($jo)) + $this->createWarrantyFromJO($jo); + } + } + + // when a new job order comes in and status is already fulfilled + public function postPersist(JobOrder $jo, LifecycleEventArgs $args) + { + $status = $jo->getStatus(); + + if ($status == JOStatus::FULFILLED) + { + $this->createWarrantyFromJO($jo); + } + } + + protected function createWarrantyFromJO(JobOrder $jo) + { + // create warranty + if ($this->jo_handler->checkIfNewBattery($jo)) + { + $serial = null; + $warranty_class = $jo->getWarrantyClass(); + $first_name = $jo->getCustomer()->getFirstName(); + $last_name = $jo->getCustomer()->getLastName(); + $mobile_number = $jo->getCustomer()->getPhoneMobile(); + + // check if date fulfilled is null + if ($jo->getDateFulfill() == null) + $date_purchase = $jo->getDateCreate(); + else + $date_purchase = $jo->getDateFulfill(); + + // validate plate number + // $plate_number = $this->wh->cleanPlateNumber($jo->getCustomerVehicle()->getPlateNumber()); + $plate_number = Warranty::cleanPlateNumber($jo->getCustomerVehicle()->getPlateNumber()); + if ($plate_number != false) { - $serial = null; - $warranty_class = $jo->getWarrantyClass(); - $first_name = $jo->getCustomer()->getFirstName(); - $last_name = $jo->getCustomer()->getLastName(); - $mobile_number = $jo->getCustomer()->getPhoneMobile(); - - // check if date fulfilled is null - if ($jo->getDateFulfill() == null) - $date_purchase = $jo->getDateCreate(); - else - $date_purchase = $jo->getDateFulfill(); - - // validate plate number - // $plate_number = $this->wh->cleanPlateNumber($jo->getCustomerVehicle()->getPlateNumber()); - $plate_number = Warranty::cleanPlateNumber($jo->getCustomerVehicle()->getPlateNumber()); - if ($plate_number != false) + $batt_list = array(); + $invoice = $jo->getInvoice(); + if (!empty($invoice)) { - $batt_list = array(); - $invoice = $jo->getInvoice(); - if (!empty($invoice)) + // get battery + $invoice_items = $invoice->getItems(); + foreach ($invoice_items as $item) { - // get battery - $invoice_items = $invoice->getItems(); - foreach ($invoice_items as $item) + $battery = $item->getBattery(); + if ($battery != null) { - $battery = $item->getBattery(); - if ($battery != null) - { - $batt_list[] = $item->getBattery(); - } + $batt_list[] = $item->getBattery(); } } - - $this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class); } - } */ - } + $this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class); + } + } } } diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 80e4158e..a3a81276 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -937,6 +937,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // call rider assignment handler's fulfillJobOrder $this->rah->fulfillJobOrder($obj, $image_url, $rider); + /* // create the warranty if new battery only if ($this->checkIfNewBattery($obj)) { @@ -979,7 +980,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class); } - } + } */ // validated! save the entity $em->flush(); @@ -2605,7 +2606,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $cust_vehicle->setWarrantyCode($req->request->get('warranty_code')); $em->persist($cust_vehicle); - + /* // create the warranty if new battery only if ($this->checkIfNewBattery($jo)) { @@ -2648,7 +2649,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class); } - } + } */ $em->flush(); }