diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index 0278405a..8711c988 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -415,6 +415,13 @@ class JobOrder */ protected $emergency_type; + // new ownership type + /** + * @ORM\ManyToOne(targetEntity="OwnershipType", inversedBy="job_orders") + * @ORM\JoinColumn(name="ownership_type_id", referencedColumnName="id", nullable=true) + */ + protected $ownership_type; + public function __construct() { $this->date_create = new DateTime(); @@ -1182,4 +1189,14 @@ class JobOrder return $this->emergency_type; } + public function setOwnershipType(OwnershipType $ownership_type = null) + { + $this->ownership_type = $ownership_type; + return $this; + } + + public function getOwnershipType() + { + return $this->ownership_type; + } } diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index a5487311..5f88b057 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -27,6 +27,7 @@ use App\Entity\Warranty; use App\Entity\Customer; use App\Entity\CustomerTag; use App\Entity\EmergencyType; +use App\Entity\OwnershipType; use App\Ramcar\InvoiceCriteria; use App\Ramcar\ServiceType; @@ -445,6 +446,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $etype_id = $req->request->get('emergency_type', 0); $etype = $em->getRepository(EmergencyType::class)->find($etype_id); + // get ownership type if any + $ownertype_id = $req->request->get('ownership_type', 0); + $owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id); + // TODO: check status before saving since JO might already // have a status that needs to be retained @@ -483,7 +488,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setInitialConcernNotes($initial_concern_notes) ->setCallerClassification($caller_class) ->setGender($gender) - ->setEmergencyType($etype); + ->setEmergencyType($etype) + ->setOwnershipType($owner_type); // check if user is null, meaning call to create came from API if ($user != null) @@ -700,6 +706,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $etype_id = $req->request->get('emergency_type', 0); $etype = $em->getRepository(EmergencyType::class)->find($etype_id); + // get ownership type if any + $ownertype_id = $req->request->get('ownership_type', 0); + $owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id); + if (empty($error_array)) { // get current user @@ -733,7 +743,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setInitialConcernNotes($initial_concern_notes) ->setCallerClassification($caller_class) ->setGender($gender) - ->setEmergencyType($etype); + ->setEmergencyType($etype) + ->setOwnershipType($owner_type); // did they change invoice? $invoice_items = $req->request->get('invoice_items', []); @@ -901,6 +912,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $etype_id = $req->request->get('emergency_type', 0); $etype = $em->getRepository(EmergencyType::class)->find($etype_id); + // get ownership type if any + $ownertype_id = $req->request->get('ownership_type', 0); + $owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id); + if (empty($error_array)) { // coordinates @@ -931,7 +946,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setInitialConcernNotes($initial_concern_notes) ->setGender($gender) ->setCallerClassification($caller_class) - ->setEmergencyType($etype); + ->setEmergencyType($etype) + ->setOwnershipType($owner_type); // validate $errors = $this->validator->validate($obj); @@ -1045,6 +1061,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $etype_id = $req->request->get('emergency_type', 0); $etype = $em->getRepository(EmergencyType::class)->find($etype_id); + // get ownership type if any + $ownertype_id = $req->request->get('ownership_type', 0); + $owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id); + // get current user $user = $this->security->getUser(); @@ -1077,7 +1097,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setInitialConcernNotes($initial_concern_notes) ->setCallerClassification($caller_class) ->setGender($gender) - ->setEmergencyType($etype); + ->setEmergencyType($etype) + ->setOwnershipType($owner_type); if ($user != null) { @@ -1180,6 +1201,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $etype_id = $req->request->get('emergency_type', 0); $etype = $em->getRepository(EmergencyType::class)->find($etype_id); + // get ownership type if any + $ownertype_id = $req->request->get('ownership_type', 0); + $owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id); + if (empty($error_array)) { // coordinates $point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); @@ -1206,7 +1231,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setInitialConcernNotes($initial_concern_notes) ->setGender($gender) ->setCallerClassification($caller_class) - ->setEmergencyType($etype); + ->setEmergencyType($etype) + ->setOwnershipType($owner_type); // validate $errors = $this->validator->validate($obj); @@ -1429,6 +1455,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $etype_id = $req->request->get('emergency_type', 0); $etype = $em->getRepository(EmergencyType::class)->find($etype_id); + // get ownership type if any + $ownertype_id = $req->request->get('ownership_type', 0); + $owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id); + // get previously assigned hub, if any $old_hub = $obj->getHub(); @@ -1486,6 +1516,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setGender($gender) ->setCallerClassification($caller_class) ->setEmergencyType($etype) + ->setOwnershipType($owner_type) ->clearRider(); if ($user != null) @@ -1704,6 +1735,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $etype_id = $req->request->get('emergency_type', 0); $etype = $em->getRepository(EmergencyType::class)->find($etype_id); + // get ownership type if any + $ownertype_id = $req->request->get('ownership_type', 0); + $owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id); + if (empty($error_array)) { // rider mqtt event // NOTE: need to send this before saving because rider will be cleared @@ -1755,7 +1790,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setInitialConcernNotes($initial_concern_notes) ->setGender($gender) ->setCallerClassification($caller_class) - ->setEmergencyType($etype); + ->setEmergencyType($etype) + ->setOwnershipType($owner_type); if ($user != null) { @@ -3254,6 +3290,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface } $params['emergency_types'] = $emergency_types; + // list of ownership types + $owner_types = $em->getRepository(OwnershipType::class)->findBy([]); + $ownership_types = []; + foreach ($owner_types as $ownership_type) + { + $ownership_types[$ownership_type->getID()] = $ownership_type->getName(); + } + $params['ownership_types'] = $ownership_types; + // list of hubs $hubs = $em->getRepository(Hub::class)->findBy([], ['name' => 'ASC']); $fac_hubs = []; diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index b98b27bf..e57f8114 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -517,6 +517,22 @@
+