WIP: Resolve "Refactor warranty system" #1182
8 changed files with 139 additions and 28 deletions
|
|
@ -227,3 +227,14 @@ services:
|
|||
$redis_prov: "@App\\Service\\RedisClientProvider"
|
||||
$loc_key: "%env(LOCATION_RIDER_ACTIVE_KEY)%"
|
||||
$status_key: "%env(STATUS_RIDER_KEY)%"
|
||||
|
||||
App\EventListener\JobOrderStatusListener:
|
||||
arguments:
|
||||
$wh: "@App\\Service\\WarrantyHandler"
|
||||
tags:
|
||||
- name: 'doctrine.orm.entity_listener'
|
||||
event: 'postUpdate'
|
||||
entity: 'App\Entity\JobOrder'
|
||||
- name: 'doctrine.orm.entity_listener'
|
||||
event: 'postPersist'
|
||||
entity: 'App\Entity\JobOrder'
|
||||
|
|
|
|||
|
|
@ -226,3 +226,15 @@ services:
|
|||
$redis_prov: "@App\\Service\\RedisClientProvider"
|
||||
$loc_key: "%env(LOCATION_RIDER_ACTIVE_KEY)%"
|
||||
$status_key: "%env(STATUS_RIDER_KEY)%"
|
||||
|
||||
App\EventListener\JobOrderStatusListener:
|
||||
arguments:
|
||||
$wh: "@App\\Service\\WarrantyHandler"
|
||||
tags:
|
||||
- name: 'doctrine.orm.entity_listener'
|
||||
event: 'postUpdate'
|
||||
entity: 'App\Entity\JobOrder'
|
||||
- name: 'doctrine.orm.entity_listener'
|
||||
event: 'postPersist'
|
||||
entity: 'App\Entity\JobOrder'
|
||||
|
||||
|
|
|
|||
|
|
@ -247,3 +247,14 @@ services:
|
|||
$redis_prov: "@App\\Service\\RedisClientProvider"
|
||||
$loc_key: "%env(LOCATION_RIDER_ACTIVE_KEY)%"
|
||||
$status_key: "%env(STATUS_RIDER_KEY)%"
|
||||
|
||||
App\EventListener\JobOrderStatusListener:
|
||||
arguments:
|
||||
$wh: "@App\\Service\\WarrantyHandler"
|
||||
tags:
|
||||
- name: 'doctrine.orm.entity_listener'
|
||||
event: 'postUpdate'
|
||||
entity: 'App\Entity\JobOrder'
|
||||
- name: 'doctrine.orm.entity_listener'
|
||||
event: 'postPersist'
|
||||
entity: 'App\Entity\JobOrder'
|
||||
|
|
|
|||
91
src/EventListener/JobOrderStatusListener.php
Normal file
91
src/EventListener/JobOrderStatusListener.php
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
<?php
|
||||
|
||||
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
|
||||
{
|
||||
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)
|
||||
{
|
||||
$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)
|
||||
{
|
||||
$batt_list = array();
|
||||
$invoice = $jo->getInvoice();
|
||||
if (!empty($invoice))
|
||||
{
|
||||
// get battery
|
||||
$invoice_items = $invoice->getItems();
|
||||
foreach ($invoice_items as $item)
|
||||
{
|
||||
$battery = $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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -24,7 +24,6 @@ use App\Entity\Hub;
|
|||
use App\Entity\Promo;
|
||||
use App\Entity\Rider;
|
||||
use App\Entity\JORejection;
|
||||
use App\Entity\Warranty;
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\ServiceCharge;
|
||||
|
||||
|
|
@ -44,7 +43,6 @@ use App\Service\InvoiceGeneratorInterface;
|
|||
use App\Service\JobOrderHandlerInterface;
|
||||
use App\Service\RiderAssignmentHandlerInterface;
|
||||
use App\Service\CustomerHandlerInterface;
|
||||
use App\Service\WarrantyHandler;
|
||||
use App\Service\MQTTClient;
|
||||
use App\Service\APNSClient;
|
||||
use App\Service\MapTools;
|
||||
|
|
@ -67,7 +65,6 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
|||
protected $translator;
|
||||
protected $rah;
|
||||
protected $country_code;
|
||||
protected $wh;
|
||||
protected $cust_handler;
|
||||
|
||||
protected $template_hash;
|
||||
|
|
@ -75,8 +72,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
|||
public function __construct(Security $security, EntityManagerInterface $em,
|
||||
InvoiceGeneratorInterface $ic, ValidatorInterface $validator,
|
||||
TranslatorInterface $translator, RiderAssignmentHandlerInterface $rah,
|
||||
string $country_code, WarrantyHandler $wh,
|
||||
CustomerHandlerInterface $cust_handler)
|
||||
string $country_code, CustomerHandlerInterface $cust_handler)
|
||||
{
|
||||
$this->em = $em;
|
||||
$this->ic = $ic;
|
||||
|
|
@ -85,7 +81,6 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
|||
$this->translator = $translator;
|
||||
$this->rah = $rah;
|
||||
$this->country_code = $country_code;
|
||||
$this->wh = $wh;
|
||||
$this->cust_handler = $cust_handler;
|
||||
|
||||
$this->loadTemplates();
|
||||
|
|
@ -937,6 +932,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 +975,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 +2601,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 +2644,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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ use App\Entity\Hub;
|
|||
use App\Entity\Promo;
|
||||
use App\Entity\Rider;
|
||||
use App\Entity\JORejection;
|
||||
use App\Entity\Warranty;
|
||||
use App\Entity\Customer;
|
||||
|
||||
use App\Ramcar\InvoiceCriteria;
|
||||
|
|
@ -41,7 +40,6 @@ use App\Ramcar\JORejectionReason;
|
|||
use App\Service\InvoiceGeneratorInterface;
|
||||
use App\Service\JobOrderHandlerInterface;
|
||||
use App\Service\RiderAssignmentHandlerInterface;
|
||||
use App\Service\WarrantyHandler;
|
||||
use App\Service\MQTTClient;
|
||||
use App\Service\APNSClient;
|
||||
use App\Service\MapTools;
|
||||
|
|
@ -64,14 +62,13 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
protected $translator;
|
||||
protected $rah;
|
||||
protected $country_code;
|
||||
protected $wh;
|
||||
|
||||
protected $template_hash;
|
||||
|
||||
public function __construct(Security $security, EntityManagerInterface $em,
|
||||
InvoiceGeneratorInterface $ic, ValidatorInterface $validator,
|
||||
TranslatorInterface $translator, RiderAssignmentHandlerInterface $rah,
|
||||
string $country_code, WarrantyHandler $wh)
|
||||
string $country_code)
|
||||
{
|
||||
$this->em = $em;
|
||||
$this->ic = $ic;
|
||||
|
|
@ -80,7 +77,6 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
$this->translator = $translator;
|
||||
$this->rah = $rah;
|
||||
$this->country_code = $country_code;
|
||||
$this->wh = $wh;
|
||||
|
||||
$this->loadTemplates();
|
||||
}
|
||||
|
|
@ -715,6 +711,7 @@ class ResqJobOrderHandler 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))
|
||||
{
|
||||
|
|
@ -753,7 +750,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
|
||||
$this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class);
|
||||
}
|
||||
}
|
||||
} */
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ use App\Service\RiderAPIHandlerInterface;
|
|||
use App\Service\RedisClientProvider;
|
||||
use App\Service\RiderCache;
|
||||
use App\Service\MQTTClient;
|
||||
use App\Service\WarrantyHandler;
|
||||
use App\Service\JobOrderHandlerInterface;
|
||||
use App\Service\InvoiceGeneratorInterface;
|
||||
|
||||
|
|
@ -30,7 +29,6 @@ use App\Entity\Promo;
|
|||
use App\Entity\Battery;
|
||||
use App\Entity\BatteryModel;
|
||||
use App\Entity\BatterySize;
|
||||
use App\Entity\Warranty;
|
||||
|
||||
use DateTime;
|
||||
|
||||
|
|
@ -42,7 +40,6 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
|
|||
protected $rcache;
|
||||
protected $country_code;
|
||||
protected $mclient;
|
||||
protected $wh;
|
||||
protected $jo_handler;
|
||||
protected $ic;
|
||||
protected $session;
|
||||
|
|
@ -50,8 +47,7 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
|
|||
public function __construct(EntityManagerInterface $em, RedisClientProvider $redis,
|
||||
EncoderFactoryInterface $ef, RiderCache $rcache,
|
||||
string $country_code, MQTTClient $mclient,
|
||||
WarrantyHandler $wh, JobOrderHandlerInterface $jo_handler,
|
||||
InvoiceGeneratorInterface $ic)
|
||||
JobOrderHandlerInterface $jo_handler, InvoiceGeneratorInterface $ic)
|
||||
{
|
||||
$this->em = $em;
|
||||
$this->redis = $redis;
|
||||
|
|
@ -59,7 +55,6 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
|
|||
$this->rcache = $rcache;
|
||||
$this->country_code = $country_code;
|
||||
$this->mclient = $mclient;
|
||||
$this->wh = $wh;
|
||||
$this->jo_handler = $jo_handler;
|
||||
$this->ic = $ic;
|
||||
|
||||
|
|
@ -523,6 +518,7 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
|
|||
|
||||
$this->em->flush();
|
||||
|
||||
/*
|
||||
// create warranty
|
||||
if($this->jo_handler->checkIfNewBattery($jo))
|
||||
{
|
||||
|
|
@ -561,7 +557,7 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
|
|||
|
||||
$this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class);
|
||||
}
|
||||
}
|
||||
} */
|
||||
|
||||
// send mqtt event (fulfilled)
|
||||
$rider = $this->session->getRider();
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ use App\Service\RiderAPIHandlerInterface;
|
|||
use App\Service\RedisClientProvider;
|
||||
use App\Service\RiderCache;
|
||||
use App\Service\MQTTClient;
|
||||
use App\Service\WarrantyHandler;
|
||||
use App\Service\JobOrderHandlerInterface;
|
||||
use App\Service\InvoiceGeneratorInterface;
|
||||
|
||||
|
|
@ -41,7 +40,6 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
|||
protected $rcache;
|
||||
protected $country_code;
|
||||
protected $mclient;
|
||||
protected $wh;
|
||||
protected $jo_handler;
|
||||
protected $ic;
|
||||
protected $session;
|
||||
|
|
@ -49,8 +47,7 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
|||
public function __construct(EntityManagerInterface $em, RedisClientProvider $redis,
|
||||
EncoderFactoryInterface $ef, RiderCache $rcache,
|
||||
string $country_code, MQTTClient $mclient,
|
||||
WarrantyHandler $wh, JobOrderHandlerInterface $jo_handler,
|
||||
InvoiceGeneratorInterface $ic)
|
||||
JobOrderHandlerInterface $jo_handler, InvoiceGeneratorInterface $ic)
|
||||
{
|
||||
$this->em = $em;
|
||||
$this->redis = $redis;
|
||||
|
|
@ -58,7 +55,6 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
|||
$this->rcache = $rcache;
|
||||
$this->country_code = $country_code;
|
||||
$this->mclient = $mclient;
|
||||
$this->wh = $wh;
|
||||
$this->jo_handler = $jo_handler;
|
||||
$this->ic = $ic;
|
||||
|
||||
|
|
@ -522,6 +518,7 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
|||
|
||||
$this->em->flush();
|
||||
|
||||
/*
|
||||
// create warranty
|
||||
if($this->jo_handler->checkIfNewBattery($jo))
|
||||
{
|
||||
|
|
@ -556,7 +553,7 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
|||
}
|
||||
|
||||
$this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class);
|
||||
}
|
||||
} */
|
||||
|
||||
// send mqtt event (fulfilled)
|
||||
$rider = $this->session->getRider();
|
||||
|
|
|
|||
Loading…
Reference in a new issue