diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 0eb148c5..f16668d3 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -1057,6 +1057,9 @@ class APIController extends Controller implements LoggedController $hub_criteria = new HubCriteria(); $hub_criteria->setPoint($jo->getCoordinates()); + // set subscription flag + $hub_criteria->setSubscription($jo->getSubscription() !== null); + // get distance limit for mobile from env $dotenv = new Dotenv(); $dotenv->loadEnv(__DIR__.'/../../.env'); @@ -3002,6 +3005,9 @@ class APIController extends Controller implements LoggedController $hub_criteria = new HubCriteria(); $hub_criteria->setPoint($jo->getCoordinates()); + // set subscription flag + $hub_criteria->setSubscription($jo->getSubscription() !== null); + // get distance limit for mobile from env // get value of hub_filter_enable from env $dotenv = new Dotenv(); diff --git a/src/Controller/CustomerAppAPI/JobOrderController.php b/src/Controller/CustomerAppAPI/JobOrderController.php index 8764759b..484b6b0a 100644 --- a/src/Controller/CustomerAppAPI/JobOrderController.php +++ b/src/Controller/CustomerAppAPI/JobOrderController.php @@ -757,7 +757,8 @@ class JobOrderController extends ApiController ->setJoOrigin($jo->getSource()) ->setCustomerClass($cust->getCustomerClassification()) ->setOrderDate($jo->getDateCreate()) - ->setServiceType($jo->getServiceType()); + ->setServiceType($jo->getServiceType()) + ->setSubscription($jo->getSubscription() !== null); // get distance limit for mobile from env // get value of hub_filter_enable from env @@ -1201,6 +1202,9 @@ class JobOrderController extends ApiController $hub_criteria = new HubCriteria(); $hub_criteria->setPoint($jo->getCoordinates()); + // set subscription flag + $hub_criteria->setSubscription($jo->getSubscription() !== null); + // get distance limit for mobile from env $limit_distance = $_ENV['CUST_DISTANCE_LIMIT']; diff --git a/src/Controller/TAPI/JobOrderController.php b/src/Controller/TAPI/JobOrderController.php index cedf0320..d9f0e4f5 100644 --- a/src/Controller/TAPI/JobOrderController.php +++ b/src/Controller/TAPI/JobOrderController.php @@ -192,6 +192,9 @@ class JobOrderController extends ApiController $hub_criteria = new HubCriteria(); $hub_criteria->setPoint($jo->getCoordinates()); + // set subscription flag + $hub_criteria->setSubscription($jo->getSubscription() !== null); + // get distance limit for mobile from env // get value of hub_filter_enable from env $dotenv = new Dotenv(); diff --git a/src/Ramcar/HubCriteria.php b/src/Ramcar/HubCriteria.php index 3f7668d5..18d03617 100644 --- a/src/Ramcar/HubCriteria.php +++ b/src/Ramcar/HubCriteria.php @@ -23,8 +23,9 @@ class HubCriteria protected $customer_id; // customer id 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 + protected $service_type; // service type of JO + protected $jo_origin; // origin of JO + protected $flag_subscription; // flag if subscription or not public function __construct() { @@ -45,6 +46,7 @@ class HubCriteria $this->order_date = new DateTime(); $this->service_type = null; $this->jo_origin = null; + $this->flag_subscription = false; } public function setPoint(Point $point) @@ -235,5 +237,16 @@ class HubCriteria { return $this->jo_origin; } + + public function setSubscription($flag_subscription = true) + { + $this->flag_subscription = $flag_subscription; + return $this; + } + + public function isSubscription() + { + return $this->flag_subscription; + } } diff --git a/src/Service/HubFilter/Filters/JoTypeHubFilter.php b/src/Service/HubFilter/Filters/JoTypeHubFilter.php index 01ed733f..c6c71f6f 100644 --- a/src/Service/HubFilter/Filters/JoTypeHubFilter.php +++ b/src/Service/HubFilter/Filters/JoTypeHubFilter.php @@ -12,6 +12,7 @@ class JoTypeHubFilter extends BaseHubFilter implements HubFilterInterface public function getRequestedParams() : array { return [ + 'flag_subscription', 'flag_emergency', 'jo_type', ]; @@ -21,6 +22,9 @@ class JoTypeHubFilter extends BaseHubFilter implements HubFilterInterface { if ($params['flag_emergency']) return $hubs; + + if ($params['flag_subscription']) + return $hubs; if (empty($params['jo_type'])) return $hubs; diff --git a/src/Service/HubFilter/Filters/PaymentMethodHubFilter.php b/src/Service/HubFilter/Filters/PaymentMethodHubFilter.php index 8af6705b..4a435ee6 100644 --- a/src/Service/HubFilter/Filters/PaymentMethodHubFilter.php +++ b/src/Service/HubFilter/Filters/PaymentMethodHubFilter.php @@ -12,6 +12,7 @@ class PaymentMethodHubFilter extends BaseHubFilter implements HubFilterInterface public function getRequestedParams() : array { return [ + 'flag_subscription', 'flag_emergency', 'payment_method', ]; @@ -22,6 +23,9 @@ class PaymentMethodHubFilter extends BaseHubFilter implements HubFilterInterface if ($params['flag_emergency']) return $hubs; + if ($params['flag_subscription']) + return $hubs; + if (empty($params['payment_method'])) return $hubs; diff --git a/src/Service/HubSelector.php b/src/Service/HubSelector.php index 6207248d..cb63d620 100644 --- a/src/Service/HubSelector.php +++ b/src/Service/HubSelector.php @@ -68,6 +68,7 @@ class HubSelector $jo_origin = $criteria->getJoOrigin(); $customer_id = $criteria->getCustomerId(); $customer_class = $criteria->getCustomerClass(); + $flag_subscription = $criteria->isSubscription(); // needed for JORejection records and SMS notifs $order_date = $criteria->getOrderDate(); @@ -95,6 +96,7 @@ class HubSelector 'payment_method' => $payment_method, 'flag_riders_check' => $flag_riders_check, 'flag_round_robin' => $flag_round_robin, + 'flag_subscription' => $flag_subscription, ]; // loop through all enabled filters diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index a688a7ba..96b0c244 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -2576,6 +2576,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $long = $obj->getCoordinates()->getLongitude(); $lat = $obj->getCoordinates()->getLatitude(); + // set subscription flag + $hub_criteria->setSubscription($obj->getSubscription() !== null); + // set result limit and location and date_time $hub_criteria->setPoint($obj->getCoordinates()) ->setDateTime($obj->getDateSchedule()) @@ -2953,6 +2956,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $long = $obj->getCoordinates()->getLongitude(); $lat = $obj->getCoordinates()->getLatitude(); + // set subscription flag + $hub_criteria->setSubscription($obj->getSubscription() !== null); + $hub_criteria->setPoint($obj->getCoordinates()) ->setDateTime($obj->getDateSchedule()) ->setLimitResults(50);