From 716f263e6be65d83ddeea64d7413aef16e3b7884 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 10 Feb 2020 08:13:36 +0000 Subject: [PATCH] Make editable the new fields in JO form. #324 --- .../CustomerHandler/ResqCustomerHandler.php | 4 + .../JobOrderHandler/ResqJobOrderHandler.php | 20 +++- templates/job-order/form.html.twig | 91 ++++++++++++------- 3 files changed, 80 insertions(+), 35 deletions(-) diff --git a/src/Service/CustomerHandler/ResqCustomerHandler.php b/src/Service/CustomerHandler/ResqCustomerHandler.php index f0e77ebe..2a612a81 100644 --- a/src/Service/CustomerHandler/ResqCustomerHandler.php +++ b/src/Service/CustomerHandler/ResqCustomerHandler.php @@ -514,6 +514,10 @@ class ResqCustomerHandler implements CustomerHandlerInterface 'phone_landline' => $customer->getPhoneLandline(), 'phone_office' => $customer->getPhoneOffice(), 'phone_fax' => $customer->getPhoneFax(), + 'email' => $customer->getEmail(), + 'flag_dpa_consent' => $customer->isDpaConsent(), + 'flag_promo_sms' => $customer->isPromoSms(), + 'flag_promo_email' => $customer->isPromoEmail(), ], 'vehicle' => [ 'id' => $vehicle->getID(), diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 497b6599..43e213f7 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -24,6 +24,7 @@ use App\Entity\Promo; use App\Entity\Rider; use App\Entity\JORejection; use App\Entity\Warranty; +use App\Entity\Customer; use App\Ramcar\InvoiceCriteria; use App\Ramcar\ServiceType; @@ -280,6 +281,22 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $jo = new JobOrder(); } + // find customer + $cust_id = $req->request->get('cid'); + $customer = $em->getRepository(Customer::class)->find($cust_id); + if (empty($customer)) + { + $error_array['customer_vehicle'] = 'Invalid customer specified.'; + } + else + { + // get email, dpa_consent, promo_sms, and promo_email, if set + $customer->setEmail($req->request->get('customer_email')) + ->setPromoSms($req->request->get('flag_promo_sms') ? true : false) + ->setPromoEmail($req->request->get('flag_promo_email') ? true : false) + ->setDpaConsent($req->request->get('flag_dpa_consent') ? true : false); + } + // check if lat and lng are provided if (empty($req->request->get('coord_lng')) || empty($req->request->get('coord_lat'))) { $error_array['coordinates'] = 'No map coordinates provided. Please click on a location on the map.'; @@ -365,8 +382,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // check if errors are found if (empty($error_array)) { - // validated, no error. save the job order + // validated, no error. save the job order and customer $em->persist($jo); + $em->persist($customer); // the event $event = new JOEvent(); diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index 2ad82c91..f2f57dbb 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -46,6 +46,7 @@
+
{% if ftags.vehicle_dropdown %} @@ -149,8 +150,9 @@
- + +
@@ -342,14 +344,16 @@
@@ -357,8 +361,8 @@
- - + +
@@ -1178,44 +1182,59 @@ $(function() { // get info for this customer vehicle $.ajax({ - method: "GET", - url: "{{ url('customer_vehicle_info') }}", - data: { id: data.id } - }).done(function(response) { - vdata = response.data; + method: "GET", + url: "{{ url('customer_vehicle_info') }}", + data: { id: data.id } + }).done(function(response) { + vdata = response.data; - // reset vehicle fields - resetVehicleFields(); + // reset vehicle fields + resetVehicleFields(); - // reset invoice fields - $("#btn-reset-invoice").click(); + // reset invoice fields + $("#btn-reset-invoice").click(); - // get compatible batteries - $("#invoice-bmfg").change(); + // get compatible batteries + $("#invoice-bmfg").change(); - // set form fields - $("[data-vehicle-field='1']").prop('placeholder', ''); - $("#customer-first-name").val(vdata.customer.first_name); - $("#customer-last-name").val(vdata.customer.last_name); + // set form fields + $("[data-vehicle-field='1']").prop('placeholder', ''); + $("#customer-first-name").val(vdata.customer.first_name); + $("#customer-last-name").val(vdata.customer.last_name); $("#customer-phone-mobile").val(vdata.customer.phone_mobile); $("#customer-phone-landline").val(vdata.customer.phone_landline); $("#customer-phone-office").val(vdata.customer.phone_office); $("#customer-phone-fax").val(vdata.customer.phone_fax); - $("#customer-customer-notes").val(vdata.customer.customer_notes); - $("#vmfg").val(vdata.vehicle.mfg_name); - $("#vehicle-make").val(vdata.vehicle.make); - $("#vehicle-year").val(vdata.vehicle.model_year); - $("#vehicle-color").val(vdata.vehicle.color); + $("#customer-customer-notes").val(vdata.customer.customer_notes); + $("#customer-email").val(vdata.customer.email); + $("#vmfg").val(vdata.vehicle.mfg_name); + $("#vehicle-make").val(vdata.vehicle.make); + $("#vehicle-year").val(vdata.vehicle.model_year); + $("#vehicle-color").val(vdata.vehicle.color); $("#vehicle-plate").val(vdata.vehicle.plate_number); - if (typeof vdata.battery !== 'undefined') { - $("#current-battery").val(vdata.battery.mfg_name + " " + vdata.battery.model_name + " " + vdata.battery.size_name + " (" + vdata.battery.prod_code + ")"); - $("#warranty-code").val(vdata.battery.warranty_code); - $("#warranty-expiration").val(vdata.battery.warranty_expiration); - } else { - $("#current-battery, #warranty-code, #warranty-expiration").val("No current battery").css('color', '#f4516c'); - } - }) + // checkboxes + if (vdata.customer.flag_dpa_consent === true) { + $("#flag-dpa-consent").prop("checked", true); + } + if (vdata.customer.flag_promo_sms === true) { + $("#flag-promo-sms").prop("checked", true); + } + if (vdata.customer.flag_promo_email === true) { + $("#flag-promo-email").prop("checked", true); + } + + // set hidden customer id + $("#cid").val(vdata.customer.id); + + if (typeof vdata.battery !== 'undefined') { + $("#current-battery").val(vdata.battery.mfg_name + " " + vdata.battery.model_name + " " + vdata.battery.size_name + " (" + vdata.battery.prod_code + ")"); + $("#warranty-code").val(vdata.battery.warranty_code); + $("#warranty-expiration").val(vdata.battery.warranty_expiration); + } else { + $("#current-battery, #warranty-code, #warranty-expiration").val("No current battery").css('color', '#f4516c'); + } + }) }).focus(); {% endif %} @@ -1243,6 +1262,10 @@ $(function() { // reset all vehicle info form fields function resetVehicleFields() { $("[data-vehicle-field='1']").val("").css('color', '').prop('placeholder', 'Select a vehicle first'); + + $("#flag-dpa-consent").prop("checked", false); + $("#flag-promo-sms").prop("checked", false); + $("#flag-promo-email").prop("checked", false); } // datepicker