Move warranty creation from JO to event listener. #331

This commit is contained in:
Korina Cordero 2020-02-20 07:01:41 +00:00
parent ffae746a02
commit c6217e2f76
2 changed files with 62 additions and 39 deletions

View file

@ -5,65 +5,87 @@ namespace App\EventListener;
use Doctrine\Common\Persistence\Event\LifecycleEventArgs; use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
use App\Entity\JobOrder; use App\Entity\JobOrder;
use App\Entity\Warranty;
use App\Service\WarrantyHandler; use App\Service\WarrantyHandler;
use App\Service\JobOrderHandlerInterface;
use App\Ramcar\JOStatus;
class JobOrderStatusListener class JobOrderStatusListener
{ {
public function __construct(WarrantyHandler $wh) protected $wh;
protected $jo_handler;
public function __construct(WarrantyHandler $wh, JobOrderHandlerInterface $jo_handler)
{ {
$this->wh = $wh; $this->wh = $wh;
$this->jo_handler = $jo_handler;
} }
// when a JO is updated
public function postUpdate(JobOrder $jo, LifecycleEventArgs $args) public function postUpdate(JobOrder $jo, LifecycleEventArgs $args)
{ {
$status = $jo->getStatus(); $status = $jo->getStatus();
if ($status == JOStatus::FULFILLED) if ($status == JOStatus::FULFILLED)
{ {
error_log('hello!'); $this->createWarrantyFromJO($jo);
// create warranty }
/* }
if ($this->checkIfNewBattery($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; $batt_list = array();
$warranty_class = $jo->getWarrantyClass(); $invoice = $jo->getInvoice();
$first_name = $jo->getCustomer()->getFirstName(); if (!empty($invoice))
$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(); // get battery
$invoice = $jo->getInvoice(); $invoice_items = $invoice->getItems();
if (!empty($invoice)) foreach ($invoice_items as $item)
{ {
// get battery $battery = $item->getBattery();
$invoice_items = $invoice->getItems(); if ($battery != null)
foreach ($invoice_items as $item)
{ {
$battery = $item->getBattery(); $batt_list[] = $item->getBattery();
if ($battery != null)
{
$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);
}
}
} }
} }

View file

@ -937,6 +937,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
// call rider assignment handler's fulfillJobOrder // call rider assignment handler's fulfillJobOrder
$this->rah->fulfillJobOrder($obj, $image_url, $rider); $this->rah->fulfillJobOrder($obj, $image_url, $rider);
/*
// create the warranty if new battery only // create the warranty if new battery only
if ($this->checkIfNewBattery($obj)) 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); $this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class);
} }
} } */
// validated! save the entity // validated! save the entity
$em->flush(); $em->flush();
@ -2605,7 +2606,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
$cust_vehicle->setWarrantyCode($req->request->get('warranty_code')); $cust_vehicle->setWarrantyCode($req->request->get('warranty_code'));
$em->persist($cust_vehicle); $em->persist($cust_vehicle);
/*
// create the warranty if new battery only // create the warranty if new battery only
if ($this->checkIfNewBattery($jo)) 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); $this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class);
} }
} } */
$em->flush(); $em->flush();
} }