Move warranty creation from JO to event listener. #331
This commit is contained in:
parent
ffae746a02
commit
c6217e2f76
2 changed files with 62 additions and 39 deletions
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue