diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index 6309dc6d..744d8d98 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -346,6 +346,12 @@ class JobOrder */ protected $reasons_not_waiting; + // reason for not trading in battery + /** + * @ORM\Column(type="string", length=80, nullable=true) + */ + protected $no_trade_in_reason; + public function __construct() { $this->date_create = new DateTime(); @@ -997,4 +1003,15 @@ class JobOrder { return $this->reasons_not_waiting; } + + public function setNoTradeInReason($reason) + { + $this->no_trade_in_reason = $reason; + return $this; + } + + public function getNoTradeInReason() + { + return $this->no_trade_in_reason; + } } diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 5e8eb2be..cf556136 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -38,6 +38,7 @@ use App\Ramcar\TransactionOrigin; use App\Ramcar\FacilitatedType; use App\Ramcar\JORejectionReason; use App\Ramcar\CustomerNotWaitReason; +use App\Ramcar\NoTradeInReason; use App\Service\InvoiceGeneratorInterface; use App\Service\JobOrderHandlerInterface; @@ -332,6 +333,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface else $reason = $req->request->get('no_wait_reason'); + // check if trade in + $is_trade_in = $req->request->get('invoice_trade_in_type'); + $no_trade_in_reason = ''; + if (empty($is_trade_in)) + { + $no_trade_in_reason = $req->request->get('no_trade_in_reason'); + + if (empty($no_trade_in_reason)) + $error_array['no_trade_in_reason'] = 'No trade in reason required.'; + } + // TODO: check status before saving since JO might already // have a status that needs to be retained @@ -363,7 +375,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason); + ->setReasonsNotWait($reason) + ->setNoTradeInReason($no_trade_in_reason); // check if user is null, meaning call to create came from API if ($user != null) @@ -465,6 +478,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface else $reason = $req->request->get('no_wait_reason'); + // check if trade in + $is_trade_in = $req->request->get('invoice_trade_in_type'); + $no_trade_in_reason = ''; + if (empty($is_trade_in)) + { + $no_trade_in_reason = $req->request->get('no_trade_in_reason'); + + if (empty($no_trade_in_reason)) + $error_array['no_trade_in_reason'] = 'No trade in reason required.'; + } + if (empty($error_array)) { // get current user @@ -491,7 +515,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason); + ->setReasonsNotWait($reason) + ->setNoTradeInReason($no_trade_in_reason); // did they change invoice? $invoice_items = $req->request->get('invoice_items', []); @@ -837,6 +862,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface else $reason = $req->request->get('no_wait_reason'); + // check if trade in + $is_trade_in = $req->request->get('invoice_trade_in_type'); + $no_trade_in_reason = ''; + if (empty($is_trade_in)) + { + $no_trade_in_reason = $req->request->get('no_trade_in_reason'); + + if (empty($no_trade_in_reason)) + $error_array['no_trade_in_reason'] = 'No trade in reason required.'; + } + if (empty($error_array)) { // coordinates $point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); @@ -854,7 +890,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setDeliveryAddress($req->request->get('delivery_address')) ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason); + ->setReasonsNotWait($reason) + ->setNoTradeInReason($no_trade_in_reason); // validate $errors = $this->validator->validate($obj); @@ -2555,6 +2592,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['facilitated_hubs'] = $fac_hubs; $params['sources'] = TransactionOrigin::getCollection(); $params['no_wait_reasons'] = CustomerNotWaitReason::getCollection(); + $params['no_trade_in_reasons'] = NoTradeInReason::getCollection(); } protected function initFormTags(&$params) diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index 535af27d..10d138eb 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -308,6 +308,7 @@
+