From 782a0493fc069dbdb2b3e221a57709cda2e54577 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 12 Jul 2021 04:25:14 +0000 Subject: [PATCH] Break down requestJobOrder into smaller functions. #591 --- src/Controller/ResqAPI/JobOrderController.php | 26 ++++++++++++------- .../InvoiceGenerator/ResqInvoiceGenerator.php | 4 ++- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/Controller/ResqAPI/JobOrderController.php b/src/Controller/ResqAPI/JobOrderController.php index e22bd13b..1aa4b0fc 100644 --- a/src/Controller/ResqAPI/JobOrderController.php +++ b/src/Controller/ResqAPI/JobOrderController.php @@ -21,6 +21,7 @@ use App\Ramcar\TransactionOrigin; use App\Ramcar\TradeInType; use App\Ramcar\JOEventType; use App\Ramcar\HubCriteria; +use App\Ramcar\ModeOfPayment; use App\Service\InvoiceGeneratorInterface; use App\Service\RisingTideGateway; @@ -41,9 +42,12 @@ use App\Entity\CustomerVehicle; use App\Entity\Promo; use App\Entity\Battery; use App\Entity\JOEvent; +use App\Entity\Customer; use Catalyst\APIBundle\Access\Generator as ACLGenerator; +use DateTime; + class JobOrderController extends APIController { protected $acl_gen; @@ -87,7 +91,7 @@ class JobOrderController extends APIController return new APIResponse(false, 'No mobile user found.'); // validate request - $msg = $this->validateJORequest($req); + $msg = $this->validateJORequest($req, $geo); if ($msg) return new APIResponse(false, $msg); @@ -113,13 +117,13 @@ class JobOrderController extends APIController // set hub criteria details $hub_criteria = new HubCriteria(); - $this->setHubCriteria($em, $hub_geofence, $hub_criteria, $jo); + $this->setHubCriteria($em, $hub_geofence, $hub_criteria, $jo, $req); // find nearest hubs $nearest_hubs = $hub_select->find($hub_criteria); if (!empty($nearest_hubs)) - $this->assignRider($nearest_hubs, $jo, $hub_filter_logger); + $this->assignRider($nearest_hubs, $jo, $hub_filter_logger, $hub_dist); $em->persist($jo); $em->persist($invoice); @@ -154,7 +158,7 @@ class JobOrderController extends APIController 'invoice' => $invoice_data ]; - $this->removeCustomerTag($jo, $cv, $promo_logger, $mobile_user->getID()); + $this->removeCustomerTag($jo, $jo->getCustomerVehicle(), $promo_logger, $mobile_user->getID()); return new APIResponse(true, 'Job order creatd', $data); } @@ -1403,9 +1407,11 @@ class JobOrderController extends APIController return $time_selected; } - protected function validateJORequest(Request $req) + protected function validateJORequest(Request $req, GeofenceTracker $geo) { // geofence + $long = $req->request->get('long'); + $lat = $req->request->get('lat'); $is_covered = $geo->isCovered($long, $lat); if (!$is_covered) { @@ -1507,7 +1513,7 @@ class JobOrderController extends APIController $batt = $em->getRepository(Battery::class)->find($batt_id); if ($batt == null) { - $msg = 'Invalid battery id'); + $msg = 'Invalid battery id'; return $msg; } } @@ -1521,6 +1527,7 @@ class JobOrderController extends APIController // check trade-in // only allow motolite, other, none + $trade_in = $req->request->get('trade_in'); switch ($trade_in) { case TradeInType::MOTOLITE: @@ -1538,7 +1545,7 @@ class JobOrderController extends APIController } protected function setHubCriteria(EntityManagerInterface $em, HubFilteringGeoChecker $hub_geofence, - HubCriteria $hub_criteria, JobOrder $jo) + HubCriteria $hub_criteria, JobOrder $jo, Request $req) { $hub_criteria->setPoint($jo->getCoordinates()); $long = $jo->getCoordinates()->getLongitude(); @@ -1569,7 +1576,8 @@ class JobOrderController extends APIController } } - protected function assignRider($nearest_hubs, JobOrder $jo, HubFilterLogger $hub_filter_logger) + protected function assignRider($nearest_hubs, JobOrder $jo, HubFilterLogger $hub_filter_logger, + HubDistributor $hub_dist) { // try to assin rider // go through the hub list, find the nearest hub @@ -1615,7 +1623,7 @@ class JobOrderController extends APIController else { // log hub into hub_filter_log - $hub_filter_logger->logFilteredHub($nearest_hub['hub'], 'no_available_rider'); + $hub_filter_logger->logFilteredHub($nearest_hub['hub'], 'no_available_rider', $jo->getID(), $jo->getCustomer()->getID()); // continue to go through list to find hub with an available rider } } diff --git a/src/Service/InvoiceGenerator/ResqInvoiceGenerator.php b/src/Service/InvoiceGenerator/ResqInvoiceGenerator.php index 47d8728e..d3e3e4cc 100644 --- a/src/Service/InvoiceGenerator/ResqInvoiceGenerator.php +++ b/src/Service/InvoiceGenerator/ResqInvoiceGenerator.php @@ -123,7 +123,9 @@ class ResqInvoiceGenerator implements InvoiceGeneratorInterface // get current user $user = $this->security->getUser(); - if ($user != null) + // check if user is User or APIUser + //if ($user != null) + if ($user instanceof User) { $invoice->setCreatedBy($user); }