From a10f58e4258eca00e3cd7caa446ac3cda26d1ada Mon Sep 17 00:00:00 2001 From: Ramon Gutierrez Date: Thu, 4 Jul 2024 12:57:27 +0800 Subject: [PATCH] Add filtering for JOs with VIP transaction origin #800 --- .../CustomerAppAPI/JobOrderController.php | 1 + src/Controller/JobOrderController.php | 2 +- src/Ramcar/HubCriteria.php | 13 +++++++++++++ .../HubFilter/Filters/InventoryHubFilter.php | 5 ++++- src/Service/HubSelector.php | 2 ++ src/Service/JobOrderHandler/ResqJobOrderHandler.php | 2 ++ 6 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/Controller/CustomerAppAPI/JobOrderController.php b/src/Controller/CustomerAppAPI/JobOrderController.php index a6fc8baa..4f5c95ae 100644 --- a/src/Controller/CustomerAppAPI/JobOrderController.php +++ b/src/Controller/CustomerAppAPI/JobOrderController.php @@ -733,6 +733,7 @@ class JobOrderController extends ApiController // set job order info $hub_criteria->setJobOrderId($jo->getID()) ->setJoType($jo->getServiceType()) + ->setJoOrigin($jo->getSource()) ->setCustomerClass($cust->getCustomerClassification()) ->setOrderDate($jo->getDateCreate()) ->setServiceType($jo->getServiceType()); diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index 17c62a45..29ef66d5 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -761,7 +761,7 @@ class JobOrderController extends Controller $lat = $req->request->get('coord_lat', 0); $price_tier = 0; - if (($lng != 0) && ($lat != 0)) + if (!empty($lng) && !empty($lat)) { $coordinates = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); $price_tier = $pt_manager->getPriceTier($coordinates); diff --git a/src/Ramcar/HubCriteria.php b/src/Ramcar/HubCriteria.php index 6dff2743..3f7668d5 100644 --- a/src/Ramcar/HubCriteria.php +++ b/src/Ramcar/HubCriteria.php @@ -24,6 +24,7 @@ class HubCriteria protected $customer_class; // customer class protected $order_date; // date JO was created protected $service_type; // service type of JO + protected $jo_origin; // origin of JO public function __construct() { @@ -43,6 +44,7 @@ class HubCriteria $this->customer_class = null; $this->order_date = new DateTime(); $this->service_type = null; + $this->jo_origin = null; } public function setPoint(Point $point) @@ -222,5 +224,16 @@ class HubCriteria { return $this->service_type; } + + public function setJoOrigin($jo_origin) + { + $this->jo_origin = $jo_origin; + return $this; + } + + public function getJoOrigin() + { + return $this->jo_origin; + } } diff --git a/src/Service/HubFilter/Filters/InventoryHubFilter.php b/src/Service/HubFilter/Filters/InventoryHubFilter.php index b01b7ff0..d7526d0f 100644 --- a/src/Service/HubFilter/Filters/InventoryHubFilter.php +++ b/src/Service/HubFilter/Filters/InventoryHubFilter.php @@ -15,6 +15,7 @@ use App\Service\InventoryManager; use App\Service\HubFilterLogger; use App\Service\RisingTideGateway; use App\Entity\Battery; +use App\Ramcar\TransactionOrigin; class InventoryHubFilter extends BaseHubFilter implements HubFilterInterface { @@ -33,6 +34,7 @@ class InventoryHubFilter extends BaseHubFilter implements HubFilterInterface 'flag_inventory_check', 'customer_class', 'jo_type', + 'jo_origin', 'order_date', 'service_type', 'items', @@ -48,7 +50,8 @@ class InventoryHubFilter extends BaseHubFilter implements HubFilterInterface } // check customer class - if (!empty($params['customer_class']) && $params['customer_class'] == CustomerClassification::VIP) { + if ((!empty($params['customer_class']) && $params['customer_class'] == CustomerClassification::VIP) || + $params['jo_origin'] === TransactionOrigin::VIP) { error_log("INVENTORY CHECK " . $this->getJOID() . ": VIP CLASS"); return $hubs; } diff --git a/src/Service/HubSelector.php b/src/Service/HubSelector.php index 89265c66..e706cc84 100644 --- a/src/Service/HubSelector.php +++ b/src/Service/HubSelector.php @@ -67,6 +67,7 @@ class HubSelector $flag_emergency = $criteria->isEmergency(); $flag_round_robin = $criteria->isRoundRobin(); $jo_id = $criteria->getJobOrderId(); + $jo_origin = $criteria->getJoOrigin(); $customer_id = $criteria->getCustomerId(); $customer_class = $criteria->getCustomerClass(); @@ -87,6 +88,7 @@ class HubSelector 'flag_inventory_check' => $flag_inventory_check, 'customer_class' => $customer_class, 'jo_type' => $jo_type, + 'jo_origin' => $jo_origin, 'order_date' => $order_date, 'service_type' => $service_type, 'items' => $items, diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 025239b7..6c8c979f 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -2594,6 +2594,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $customer_id = $obj->getCustomer()->getID(); $hub_criteria->setJobOrderId($jo_id) + ->setJoOrigin($obj->getSource()) ->setCustomerId($customer_id); $hubs = $hub_selector->find($hub_criteria); @@ -2941,6 +2942,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $customer_id = $cust->getID(); $hub_criteria->setJobOrderId($jo_id) + ->setJoOrigin($obj->getSource()) ->setCustomerId($customer_id); $hubs = $hub_selector->find($hub_criteria);