From f03d2bf7ef7dd98684167e69997d5e2f5fcbf3b0 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Tue, 14 Feb 2023 03:12:24 +0000 Subject: [PATCH] Set third party source when creating JO from third party. #737 --- catalyst/api-bundle/Entity/User.php | 2 +- src/Controller/TAPI/JobOrderController.php | 7 ++++++- src/Entity/JobOrder.php | 20 ++++++++++++++++++++ src/Entity/JobOrderSource.php | 12 ++++++++++++ 4 files changed, 39 insertions(+), 2 deletions(-) diff --git a/catalyst/api-bundle/Entity/User.php b/catalyst/api-bundle/Entity/User.php index ccdc4b09..d2cd7557 100644 --- a/catalyst/api-bundle/Entity/User.php +++ b/catalyst/api-bundle/Entity/User.php @@ -68,7 +68,7 @@ class User extends BaseUser // third party job order source linked to api_user /** * @ORM\ManyToOne(targetEntity="App\Entity\JobOrderSource", inversedBy="api_users") - * @ORM\JoinColumn(name="source_id", referencedColumnName="id") + * @ORM\JoinColumn(name="source_id", referencedColumnName="id", nullable=true) */ protected $source; diff --git a/src/Controller/TAPI/JobOrderController.php b/src/Controller/TAPI/JobOrderController.php index e70928f8..306b224b 100644 --- a/src/Controller/TAPI/JobOrderController.php +++ b/src/Controller/TAPI/JobOrderController.php @@ -112,6 +112,10 @@ class JobOrderController extends APIController // geofence $is_covered = $geo->isCovered($data['long'], $data['lat']); + // get the api_user + $api_user = $this->getUser(); + $jo_source = $api_user->getSource(); + if (!$is_covered) { // TODO: put geofence error message in config file somewhere @@ -133,7 +137,8 @@ class JobOrderController extends APIController ->setModeOfPayment($data['payment_mode']) ->setAdvanceOrder($data['is_advance_order']) ->setStatusAutoAssign(AutoAssignStatus::NOT_ASSIGNED) - ->setLandmark($data['landmark']); + ->setLandmark($data['landmark']) + ->setJOSource($jo_source); $jo->setCustomer($data['customer']); $jo->setCustomerVehicle($data['customer_vehicle']); diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index f9783568..9e7a3101 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -422,6 +422,13 @@ class JobOrder */ protected $ownership_type; + // third party jo source linked to job order + /** + * @ORM\ManyToOne(targetEntity="App\Entity\JobOrderSource", inversedBy="job_orders") + * @ORM\JoinColumn(name="job_order_source_id", referencedColumnName="id", nullable=true) + */ + protected $jo_source; + public function __construct() { $this->date_create = new DateTime(); @@ -446,6 +453,8 @@ class JobOrder $this->phone_mobile = ''; $this->will_wait = WillingToWaitContent::WILLING_TO_WAIT; + + $this->jo_source = null; } public function getID() @@ -1199,4 +1208,15 @@ class JobOrder { return $this->ownership_type; } + + public function setJOSource($jo_source = null) + { + $this->jo_source = $jo_source; + return $this; + } + + public function getJOSource() + { + return $this->jo_source; + } } diff --git a/src/Entity/JobOrderSource.php b/src/Entity/JobOrderSource.php index 6137bf09..c93344e3 100644 --- a/src/Entity/JobOrderSource.php +++ b/src/Entity/JobOrderSource.php @@ -47,6 +47,12 @@ class JobOrderSource */ protected $api_users; + // one job order source can be associated to many job orders + /** + * @ORM\OneToMany(targetEntity="JobOrder", mappedBy="jo_source") + */ + protected $job_orders; + public function __construct() { $this->code = ''; @@ -54,6 +60,7 @@ class JobOrderSource $this->callback_url = ''; $this->api_users = new ArrayCollection(); + $this->job_orders = new ArrayCollection(); } public function getID() @@ -98,5 +105,10 @@ class JobOrderSource { return $this->api_users; } + + public function getJobOrders() + { + return $this->job_orders; + } }