From 858849a764a2ef709faa31ce989a788a1a0cea37 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 1 Jul 2020 02:12:08 +0000 Subject: [PATCH 01/18] Made customer notes non-mandatory. #434 --- src/Service/JobOrderHandler/CMBJobOrderHandler.php | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 83188826..46c8455a 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -443,11 +443,6 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // check if new customer if ($req->request->get('new_customer', false)) { - if (empty($req->request->get('customer_notes'))) - { - $error_array['customer_notes'] = 'Customer notes cannot be null.'; - } - // validate mobile phone $valid_mobile = $this->cust_handler->validateMobileNumber($req->request->get('phone_mobile')); if (!($valid_mobile)) @@ -2533,11 +2528,6 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // check if new customer if ($req->request->get('new_customer', false)) { - if (empty($req->request->get('customer_notes'))) - { - $error_array['customer_notes'] = 'Customer notes cannot be null.'; - } - // validate mobile phone $valid_mobile = $this->cust_handler->validateMobileNumber($req->request->get('phone_mobile')); if (!($valid_mobile)) From b4d1cd344d08319268c5e95ad1a1ed9f5d665b37 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 1 Jul 2020 02:20:57 +0000 Subject: [PATCH 02/18] Add E-Wallet as mode of payment. #434 --- src/Ramcar/CMBModeOfPayment.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Ramcar/CMBModeOfPayment.php b/src/Ramcar/CMBModeOfPayment.php index 7d0a4ec2..63bb9a2d 100644 --- a/src/Ramcar/CMBModeOfPayment.php +++ b/src/Ramcar/CMBModeOfPayment.php @@ -9,6 +9,7 @@ class CMBModeOfPayment extends NameValue const LAZADA = 'lazada'; const CREDIT_CARD = 'credit_card'; const ONLINE_TRANSFER = 'online_transfer'; + const E_WALLET = 'e_wallet'; const COLLECTION = [ 'cash' => 'Cash', @@ -16,5 +17,6 @@ class CMBModeOfPayment extends NameValue 'lazada' => 'Lazada', 'credit_card' => 'Credit Card', 'online_transfer' => 'Online Transfer', + 'e_wallet' => 'E-Wallet', ]; } From 1c076228c6bb92e0735206a72d7f3e1fac09c878 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 1 Jul 2020 02:35:12 +0000 Subject: [PATCH 03/18] Add Whatsapp to the list for transaction origin. #434 --- src/Ramcar/CMBTransactionOrigin.php | 25 +++++++++++++++++++ .../JobOrderHandler/CMBJobOrderHandler.php | 10 ++++---- 2 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 src/Ramcar/CMBTransactionOrigin.php diff --git a/src/Ramcar/CMBTransactionOrigin.php b/src/Ramcar/CMBTransactionOrigin.php new file mode 100644 index 00000000..7ea6a02a --- /dev/null +++ b/src/Ramcar/CMBTransactionOrigin.php @@ -0,0 +1,25 @@ + 'Hotline', + 'online' => 'Online', + 'facebook' => 'Facebook', + 'vip' => 'VIP', + 'mobile_app' => 'Mobile App', + 'walk_in' => 'Walk-in', + 'whatsapp' => 'Whatsapp', + ]; +} diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 46c8455a..7c02bac1 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -36,7 +36,7 @@ use App\Ramcar\JOStatus; use App\Ramcar\CMBWarrantyClass; use App\Ramcar\DiscountApply; use App\Ramcar\CMBModeOfPayment; -use App\Ramcar\TransactionOrigin; +use App\Ramcar\CMBTransactionOrigin; use App\Ramcar\FacilitatedType; use App\Ramcar\JORejectionReason; @@ -194,7 +194,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $row['status'] = $statuses[$orow->getStatus()]; $row['flag_advance'] = $orow->isAdvanceOrder(); $row['plate_number'] = $orow->getCustomerVehicle()->getPlateNumber(); - $row['is_mobile'] = $orow->getSource() == TransactionOrigin::MOBILE_APP; + $row['is_mobile'] = $orow->getSource() == CMBTransactionOrigin::MOBILE_APP; $row['car_model'] = $car_model; $row['rider_name'] = $rider_name; $row['rider_plate_number'] = $rider_plate_number; @@ -1658,7 +1658,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // get template to display // check transaction origin if walkin - if ($obj->getSource() == TransactionOrigin::WALK_IN) + if ($obj->getSource() == CMBTransactionOrigin::WALK_IN) $params['template'] = $this->getTwigTemplate('jo_walkin_form'); else $params['template'] = $this->getTwigTemplate('jo_onestep_form'); @@ -2822,7 +2822,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['trade_in_types'] = CMBTradeInType::getCollection(); $params['facilitated_types'] = FacilitatedType::getCollection(); $params['facilitated_hubs'] = $fac_hubs; - $params['sources'] = TransactionOrigin::getCollection(); + $params['sources'] = CMBTransactionOrigin::getCollection(); } protected function initFormTags(&$params) @@ -3108,7 +3108,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface throw new NotFoundHttpException('The item does not exist'); // check transaction origin - if ($jo->getSource() == TransactionOrigin::WALK_IN) + if ($jo->getSource() == CMBTransactionOrigin::WALK_IN) return 'jo_walkin_edit_form'; else return 'jo_onestep_edit_form'; From e8923c8faf1c3adce3b3a97f00506e596776ea7e Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 1 Jul 2020 02:55:48 +0000 Subject: [PATCH 04/18] Add checking for odometer maximum value. #434 --- src/Service/RiderAPIHandler/CMBRiderAPIHandler.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php index d0bbcdb5..25b13034 100644 --- a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php +++ b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php @@ -1534,6 +1534,15 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface $odometer_reading = $req->request->get('odometer'); + if ($odometer_reading > 999999) + { + $data = [ + 'title' => 'Failed Set Odometer', + 'error' => 'Odometer cannot be more than 6 figures.', + ]; + return $data; + } + $jo->addMeta('odometer', $odometer_reading); $this->em->flush(); From 1b9441a9ee203fea2f0a2c932af7a163148961cc Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 1 Jul 2020 09:08:04 +0000 Subject: [PATCH 05/18] Hide the promo/employee id field from both onestep and walkin forms. #434 --- templates/job-order/cmb.form.onestep.html.twig | 2 ++ templates/job-order/cmb.form.walkin.html.twig | 2 ++ 2 files changed, 4 insertions(+) diff --git a/templates/job-order/cmb.form.onestep.html.twig b/templates/job-order/cmb.form.onestep.html.twig index 3fb94720..13d28e5b 100644 --- a/templates/job-order/cmb.form.onestep.html.twig +++ b/templates/job-order/cmb.form.onestep.html.twig @@ -644,11 +644,13 @@ +
diff --git a/templates/job-order/cmb.form.walkin.html.twig b/templates/job-order/cmb.form.walkin.html.twig index 4fe7f5b2..80409b06 100644 --- a/templates/job-order/cmb.form.walkin.html.twig +++ b/templates/job-order/cmb.form.walkin.html.twig @@ -392,11 +392,13 @@
+
From ada02f46a7fe04f014af2d84d222fd9e02c39255 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 1 Jul 2020 09:17:34 +0000 Subject: [PATCH 06/18] Comment saving of promo information. #434 --- src/Service/JobOrderHandler/CMBJobOrderHandler.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 7c02bac1..556fdfbd 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -350,7 +350,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface ->setTier2Notes($req->request->get('tier2_notes')) ->setDeliveryAddress($req->request->get('delivery_address')) ->setORName($req->request->get('or_name')) - ->setPromoDetail($req->request->get('promo_detail')) + //->setPromoDetail($req->request->get('promo_detail')) ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')); @@ -599,7 +599,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface ->setTier2Notes($req->request->get('tier2_notes')) ->setDeliveryAddress($req->request->get('delivery_address')) ->setORName($req->request->get('or_name')) - ->setPromoDetail($req->request->get('promo_detail')) + //->setPromoDetail($req->request->get('promo_detail')) ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')) ->setHub($hub) @@ -2629,8 +2629,8 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // get discount and set to meta $discount = $req->request->get('invoice_discount'); - // check if discount is greater than 50 or negative number - if (($discount > 50) || ($discount < 0)) + // check if discount is greater than 60 or negative number + if (($discount > 60) || ($discount < 0)) $error_array['invoice_discount'] = 'Invalid discount specified'; if (empty($error_array)) @@ -2650,7 +2650,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface ->setTier1Notes($req->request->get('tier1_notes')) ->setTier2Notes($req->request->get('tier2_notes')) ->setORName($req->request->get('or_name')) - ->setPromoDetail($req->request->get('promo_detail')) + //->setPromoDetail($req->request->get('promo_detail')) ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')) ->setDeliveryAddress('Walk-in') From 2cf55420377b9bd93a1a3cd1d886fa750fed74f7 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 1 Jul 2020 09:21:41 +0000 Subject: [PATCH 07/18] Adjust max value for discount to 60. #434 --- templates/job-order/cmb.form.onestep.html.twig | 4 ++-- templates/job-order/cmb.form.walkin.html.twig | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/templates/job-order/cmb.form.onestep.html.twig b/templates/job-order/cmb.form.onestep.html.twig index 13d28e5b..3a52b019 100644 --- a/templates/job-order/cmb.form.onestep.html.twig +++ b/templates/job-order/cmb.form.onestep.html.twig @@ -656,10 +656,10 @@
{% if ftags.invoice_edit %} - + {% else %} - + {% endif %}
diff --git a/templates/job-order/cmb.form.walkin.html.twig b/templates/job-order/cmb.form.walkin.html.twig index 80409b06..35ef6053 100644 --- a/templates/job-order/cmb.form.walkin.html.twig +++ b/templates/job-order/cmb.form.walkin.html.twig @@ -404,10 +404,10 @@
{% if ftags.invoice_edit %} - + {% else %} - + {% endif %}
From 473e7a8e51a31b6409c90dcacf46dcb271884a37 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 1 Jul 2020 09:40:01 +0000 Subject: [PATCH 08/18] Return list of years for model year until current year. #434 --- src/Service/CustomerHandler/CMBCustomerHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Service/CustomerHandler/CMBCustomerHandler.php b/src/Service/CustomerHandler/CMBCustomerHandler.php index 49f07044..242ee284 100644 --- a/src/Service/CustomerHandler/CMBCustomerHandler.php +++ b/src/Service/CustomerHandler/CMBCustomerHandler.php @@ -594,7 +594,7 @@ class CMBCustomerHandler implements CustomerHandlerInterface protected function generateYearOptions() { $start_year = 1950; - return range($start_year, date("Y") + 1); + return range($start_year, date("Y")); } From 9bb8380ca4a7342f203dd58c966bd91221072d26 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Thu, 2 Jul 2020 02:59:23 +0000 Subject: [PATCH 09/18] Add 45 minutes to date_schedule. #434 --- .../JobOrderHandler/CMBJobOrderHandler.php | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 556fdfbd..dbcef5b9 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -1442,7 +1442,16 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface public function initializeOneStepForm() { - $params['obj'] = new JobOrder(); + $new_jo = new JobOrder(); + + // set time schedule + $date_schedule = new DateTime(); + + // add 45 minutes to time + $date_schedule->add(new DateInterval('PT45M')); + $new_jo->setDateSchedule($date_schedule); + + $params['obj'] = $new_jo; $params['mode'] = 'onestep'; $params['jo_service_charges'] = []; @@ -2498,7 +2507,16 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface public function initializeWalkinForm() { - $params['obj'] = new JobOrder(); + $new_jo = new JobOrder(); + + // set time schedule + $date_schedule = new DateTime(); + + // add 45 minutes to time + $date_schedule->add(new DateInterval('PT45M')); + $new_jo->setDateSchedule($date_schedule); + + $params['obj'] = $new_jo; $params['mode'] = 'walk-in'; $this->fillDropdownParameters($params); From 6e07e24e93e22bfa71655afd671c77765751710d Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Thu, 2 Jul 2020 11:53:14 +0000 Subject: [PATCH 10/18] Made discount a dropdown. #434 --- .../JobOrderHandler/CMBJobOrderHandler.php | 12 +++++ .../job-order/cmb.form.onestep.html.twig | 50 +++++++++++++++++-- templates/job-order/cmb.form.walkin.html.twig | 22 +++++++- 3 files changed, 77 insertions(+), 7 deletions(-) diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index dbcef5b9..2bbb614d 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -1454,6 +1454,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['obj'] = $new_jo; $params['mode'] = 'onestep'; $params['jo_service_charges'] = []; + $params['discounts'] = $this->generateDiscountOptions(); $this->fillDropdownParameters($params); $this->fillFormTags($params); @@ -1474,6 +1475,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['mode'] = 'onestep-edit'; $params['cvid'] = $obj->getCustomerVehicle()->getID(); $params['vid'] = $obj->getCustomerVehicle()->getVehicle()->getID(); + $params['discounts'] = $this->generateDiscountOptions(); // get service charges $sc_array = []; @@ -1504,6 +1506,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // get images if any $jo_extra = $obj->getJOExtra(); $pic_array = []; + $params['signature'] = null; if ($jo_extra != null) { $b_speed_img = $jo_extra->getBeforeSpeedImageFilename(); @@ -1605,6 +1608,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['mode'] = 'open_edit'; $params['cvid'] = $jo->getCustomerVehicle()->getID(); $params['vid'] = $jo->getCustomerVehicle()->getVehicle()->getID(); + $params['discounts'] = $this->generateDiscountOptions(); $this->fillDropdownParameters($params); $this->fillFormTags($params); @@ -2518,6 +2522,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['obj'] = $new_jo; $params['mode'] = 'walk-in'; + $params['discounts'] = $this->generateDiscountOptions(); $this->fillDropdownParameters($params); $this->fillFormTags($params); @@ -2803,6 +2808,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['mode'] = 'walk-in-edit'; $params['cvid'] = $obj->getCustomerVehicle()->getID(); $params['vid'] = $obj->getCustomerVehicle()->getVehicle()->getID(); + $params['discounts'] = $this->generateDiscountOptions(); $this->fillDropdownParameters($params); $this->fillFormTags($params); @@ -3131,4 +3137,10 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface else return 'jo_onestep_edit_form'; } + + protected function generateDiscountOptions() + { + $discount_start = 0; + return range($discount_start, 60); + } } diff --git a/templates/job-order/cmb.form.onestep.html.twig b/templates/job-order/cmb.form.onestep.html.twig index 3a52b019..92a13711 100644 --- a/templates/job-order/cmb.form.onestep.html.twig +++ b/templates/job-order/cmb.form.onestep.html.twig @@ -278,7 +278,7 @@
- + @@ -288,7 +288,7 @@
- + @@ -656,10 +656,28 @@
{% if ftags.invoice_edit %} - + {% else %} - + {% endif %}
@@ -1162,6 +1180,28 @@ $(function() { return false; } + // check date schedule if it's earlier + // if so, show an alert to let user know + var date_time = $('#date-schedule-date').val() + ' ' + $('#date-schedule-time').val() + var date_schedule = new Date(date_time); + var current_date = new Date(); + + if (date_schedule < current_date) + { + //swal({ + // title: 'Warning!', + // text: 'Schedule date and time is after today\'s date and time. Continue submission?', + // type: 'warning', + // showCancelButton: true, + //}).then(function(isConfirm) { + // if (isConfirm) { + // return true; + // } else { + // return false; + // } + //}); + } + form_in_process = true; var form = $(this); @@ -1542,7 +1582,7 @@ $(function() { // update invoice when promo is changed $("#invoice-discount").change(function() { - generateInvoice(); + generateInvoice(); }); // trigger update when service type is changed diff --git a/templates/job-order/cmb.form.walkin.html.twig b/templates/job-order/cmb.form.walkin.html.twig index 35ef6053..81de36c1 100644 --- a/templates/job-order/cmb.form.walkin.html.twig +++ b/templates/job-order/cmb.form.walkin.html.twig @@ -404,10 +404,28 @@
{% if ftags.invoice_edit %} - + {% else %} - + {% endif %}
From c3487358f1bc4a88ade6895d44e417f1476fdfb5 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 3 Jul 2020 07:29:47 +0000 Subject: [PATCH 11/18] Autopopulate the OR Name field with the customer name. #434 --- .../JobOrderHandler/CMBJobOrderHandler.php | 15 ++++++++------- templates/job-order/cmb.form.onestep.html.twig | 17 ++++++++++++----- templates/job-order/cmb.form.walkin.html.twig | 12 +++++++++--- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 2bbb614d..c45bd787 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -350,7 +350,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface ->setTier2Notes($req->request->get('tier2_notes')) ->setDeliveryAddress($req->request->get('delivery_address')) ->setORName($req->request->get('or_name')) - //->setPromoDetail($req->request->get('promo_detail')) + ->setPromoDetail($req->request->get('promo_detail', '')) ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')); @@ -554,11 +554,12 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface } // get discount and set to meta - $discount = $req->request->get('invoice_discount', []); - - // check if discount is greater than 50 or negative number - if (($discount > 50) || ($discount < 0)) + $discount = $req->request->get('invoice_discount'); + + if (($discount > 60) || ($discount < 0)) + { $error_array['invoice_discount'] = 'Invalid discount specified'; + } // get list of service charges $service_charges = $req->request->get('service_charges', []); @@ -599,7 +600,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface ->setTier2Notes($req->request->get('tier2_notes')) ->setDeliveryAddress($req->request->get('delivery_address')) ->setORName($req->request->get('or_name')) - //->setPromoDetail($req->request->get('promo_detail')) + ->setPromoDetail($req->request->get('promo_detail', '')) ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')) ->setHub($hub) @@ -2673,7 +2674,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface ->setTier1Notes($req->request->get('tier1_notes')) ->setTier2Notes($req->request->get('tier2_notes')) ->setORName($req->request->get('or_name')) - //->setPromoDetail($req->request->get('promo_detail')) + ->setPromoDetail($req->request->get('promo_detail', '')) ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')) ->setDeliveryAddress('Walk-in') diff --git a/templates/job-order/cmb.form.onestep.html.twig b/templates/job-order/cmb.form.onestep.html.twig index 92a13711..83e866c5 100644 --- a/templates/job-order/cmb.form.onestep.html.twig +++ b/templates/job-order/cmb.form.onestep.html.twig @@ -644,13 +644,11 @@
-
@@ -660,7 +658,7 @@ {% for discount in discounts %} {% if obj.getInvoice %} - + {% else %} {% endif %} @@ -672,12 +670,13 @@ {% for discount in discounts %} {% if obj.getInvoice %} - + {% else %} {% endif %} {% endfor %} + {% endif %}
@@ -1359,6 +1358,7 @@ $(function() { } else { $("#current-battery, #warranty-expiration").val("No current battery").css('color', '#f4516c'); } + $("#or_name").val(vdata.customer.first_name + ' ' + vdata.customer.last_name); }) }).focus(); {% endif %} @@ -1582,6 +1582,7 @@ $(function() { // update invoice when promo is changed $("#invoice-discount").change(function() { + console.log('discount ' + $("#invoice-discount").val()); generateInvoice(); }); @@ -1926,6 +1927,12 @@ $(function() { generateInvoice(); }); + $("#customer-first-name, #customer-last-name").change(function() { + // autopopulate OR name with customer name + var cust_name = $("#customer-first-name").val() + ' ' + $("#customer-last-name").val(); + $("#or_name").val(cust_name); + }); + }); {% endblock %} diff --git a/templates/job-order/cmb.form.walkin.html.twig b/templates/job-order/cmb.form.walkin.html.twig index 81de36c1..63fe6b82 100644 --- a/templates/job-order/cmb.form.walkin.html.twig +++ b/templates/job-order/cmb.form.walkin.html.twig @@ -392,13 +392,11 @@
-
@@ -741,6 +739,8 @@ var vdata = false; } else { $("#current-battery, #warranty-expiration").val("No current battery").css('color', '#f4516c'); } + + $("#or_name").val(vdata.customer.first_name + ' ' + vdata.customer.last_name); }) }).focus(); {% endif %} @@ -1107,6 +1107,12 @@ var vdata = false; }); }); }); + + $("#customer-first-name, #customer-last-name").change(function() { + // autopopulate OR name with customer name + var cust_name = $("#customer-first-name").val() + ' ' + $("#customer-last-name").val(); + $("#or_name").val(cust_name); + }); }); {% endblock %} From 27f37de489afbcd98157a3eef068ee084524e921 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 3 Jul 2020 08:14:12 +0000 Subject: [PATCH 12/18] Fix discount issues. #434 --- src/Controller/JobOrderController.php | 5 ++++- src/Service/InvoiceGenerator/CMBInvoiceGenerator.php | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index cb84e113..58650d47 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -764,7 +764,10 @@ class JobOrderController extends Controller // use invoice object values in a json friendly array $invoice = [ - 'discount' => number_format($iobj->getDiscount(), 2), + // TODO: CMB needs to have no decimal places for discount. + // Resq requires the two decimal places since discount is computed. + //'discount' => number_format($iobj->getDiscount(), 2), + 'discount' => number_format($iobj->getDiscount(), 0), 'trade_in' => number_format($iobj->getTradeIn(), 2), // TODO: computations not done yet for this on invoice creator 'price' => number_format($iobj->getVATExclusivePrice(), 2), 'vat' => number_format($iobj->getVAT(), 2), diff --git a/src/Service/InvoiceGenerator/CMBInvoiceGenerator.php b/src/Service/InvoiceGenerator/CMBInvoiceGenerator.php index 534600fb..c0425f31 100644 --- a/src/Service/InvoiceGenerator/CMBInvoiceGenerator.php +++ b/src/Service/InvoiceGenerator/CMBInvoiceGenerator.php @@ -270,7 +270,7 @@ class CMBInvoiceGenerator implements InvoiceGeneratorInterface } // check if discount is greater than 50 or negative number - if (($discount > 50) || ($discount < 0)) + if (($discount > 60) || ($discount < 0)) return 'Invalid discount specified'; $criteria->setDiscount($discount); From 3de8b8762f458f01f20281d6223e2f8e5883964a Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 6 Jul 2020 07:51:26 +0000 Subject: [PATCH 13/18] Add checking if scheduled date and time are before the current date and time. #434 --- .../JobOrderHandler/CMBJobOrderHandler.php | 2 + .../job-order/cmb.form.onestep.html.twig | 64 ++++++++++++------- templates/job-order/cmb.form.walkin.html.twig | 46 ++++++++++++- 3 files changed, 88 insertions(+), 24 deletions(-) diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index c45bd787..43e21a0e 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -1456,6 +1456,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['mode'] = 'onestep'; $params['jo_service_charges'] = []; $params['discounts'] = $this->generateDiscountOptions(); + $params['current_date'] = new DateTime(); $this->fillDropdownParameters($params); $this->fillFormTags($params); @@ -2524,6 +2525,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['obj'] = $new_jo; $params['mode'] = 'walk-in'; $params['discounts'] = $this->generateDiscountOptions(); + $params['current_date'] = new DateTime(); $this->fillDropdownParameters($params); $this->fillFormTags($params); diff --git a/templates/job-order/cmb.form.onestep.html.twig b/templates/job-order/cmb.form.onestep.html.twig index 83e866c5..35846621 100644 --- a/templates/job-order/cmb.form.onestep.html.twig +++ b/templates/job-order/cmb.form.onestep.html.twig @@ -1174,33 +1174,12 @@ $(function() { {% endif %} $("#row-form").submit(function(e) { + e.preventDefault(); if (form_in_process) { alert("Cannot submit form twice. First submission still in progress."); return false; } - // check date schedule if it's earlier - // if so, show an alert to let user know - var date_time = $('#date-schedule-date').val() + ' ' + $('#date-schedule-time').val() - var date_schedule = new Date(date_time); - var current_date = new Date(); - - if (date_schedule < current_date) - { - //swal({ - // title: 'Warning!', - // text: 'Schedule date and time is after today\'s date and time. Continue submission?', - // type: 'warning', - // showCancelButton: true, - //}).then(function(isConfirm) { - // if (isConfirm) { - // return true; - // } else { - // return false; - // } - //}); - } - form_in_process = true; var form = $(this); @@ -1933,6 +1912,47 @@ $(function() { $("#or_name").val(cust_name); }); + $('.dp').on('changeDate', function() { + // check date schedule if it's earlier + // if so, show an alert to let user know + var date_time = $('#date-schedule-date').val() + ' ' + $('#date-schedule-time').val() + var date_schedule = new Date(date_time); + var current_date = new Date('{{ current_date|date('Y-m-d g:i A') }}'); + + // check if date is earlier than current + if (date_schedule < current_date) + { + swal({ + title: 'Warning!', + text: 'Schedule date and time is before today\'s date and time.', + type: 'warning', + }); + } + }); + + $('.tp').on('changeTime.timepicker', function(e) { + // set the schedule time what the user selects + $('#date-schedule-time').val(e.time.value); + }); + + $('.tp').on('hide.timepicker', function(e) { + // check time schedule along with date if it's earlier than current date + var date_time = $('#date-schedule-date').val() + ' ' + $('#date-schedule-time').val() + var date_schedule = new Date(date_time); + var current_date = new Date('{{ current_date|date('Y-m-d g:i A') }}'); + + // check if date is earlier than current + if (date_schedule < current_date) + { + swal({ + title: 'Warning!', + text: 'Schedule date and time is before today\'s date and time.', + type: 'warning', + }); + } + + }); + }); {% endblock %} diff --git a/templates/job-order/cmb.form.walkin.html.twig b/templates/job-order/cmb.form.walkin.html.twig index 63fe6b82..9c34a357 100644 --- a/templates/job-order/cmb.form.walkin.html.twig +++ b/templates/job-order/cmb.form.walkin.html.twig @@ -278,7 +278,7 @@
- + @@ -288,7 +288,7 @@
- + @@ -1113,6 +1113,48 @@ var vdata = false; var cust_name = $("#customer-first-name").val() + ' ' + $("#customer-last-name").val(); $("#or_name").val(cust_name); }); + + $('.dp').on('changeDate', function() { + // check date schedule if it's earlier + // if so, show an alert to let user know + var date_time = $('#date-schedule-date').val() + ' ' + $('#date-schedule-time').val() + var date_schedule = new Date(date_time); + var current_date = new Date('{{ current_date|date('Y-m-d g:i A') }}'); + + // check if date is earlier than current + if (date_schedule < current_date) + { + swal({ + title: 'Warning!', + text: 'Schedule date and time is before today\'s date and time.', + type: 'warning', + }); + } + }); + + $('.tp').on('changeTime.timepicker', function(e) { + // set the schedule time what the user selects + $('#date-schedule-time').val(e.time.value); + }); + + $('.tp').on('hide.timepicker', function(e) { + // check time schedule along with date if it's earlier than current date + var date_time = $('#date-schedule-date').val() + ' ' + $('#date-schedule-time').val() + var date_schedule = new Date(date_time); + var current_date = new Date('{{ current_date|date('Y-m-d g:i A') }}'); + + // check if date is earlier than current + if (date_schedule < current_date) + { + swal({ + title: 'Warning!', + text: 'Schedule date and time is before today\'s date and time.', + type: 'warning', + }); + } + + }); + }); {% endblock %} From 9c2c1e5895f54190db0585533297d538ce061885 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 6 Jul 2020 09:10:33 +0000 Subject: [PATCH 14/18] Remove before pictures from job order. Also remove uploadArrive endpoint. #434 --- config/routes/cmb_rider_api.yaml | 5 - src/Controller/CMBRAPIController.php | 9 - src/Entity/JOExtra.php | 76 -------- .../JobOrderHandler/CMBJobOrderHandler.php | 16 +- .../RiderAPIHandler/CMBRiderAPIHandler.php | 184 ------------------ .../job-order/cmb.form.onestep.html.twig | 41 +--- 6 files changed, 3 insertions(+), 328 deletions(-) diff --git a/config/routes/cmb_rider_api.yaml b/config/routes/cmb_rider_api.yaml index 93f65d1a..805d898d 100644 --- a/config/routes/cmb_rider_api.yaml +++ b/config/routes/cmb_rider_api.yaml @@ -125,11 +125,6 @@ cmb_rapi_jo_odometer: controller: App\Controller\CMBRAPIController::setOdometer methods: [POST] -cmb_rapi_jo_arrive_photos_upload: - path: /cmbrapi/uploadarrivephotos - controller: App\Controller\CMBRAPIController::uploadArrivePhotos - methods: [POST] - cmb_rapi_jo_finish_photos_upload: path: /cmbrapi/uploadfinishphotos controller: App\Controller\CMBRAPIController::uploadFinishPhotos diff --git a/src/Controller/CMBRAPIController.php b/src/Controller/CMBRAPIController.php index efdd0177..6ddf842e 100644 --- a/src/Controller/CMBRAPIController.php +++ b/src/Controller/CMBRAPIController.php @@ -239,15 +239,6 @@ class CMBRAPIController extends Controller return $res->getReturnResponse(); } - public function uploadArrivePhotos(Request $req, RiderAPIHandlerInterface $rapi_handler) - { - $data = $rapi_handler->uploadArrivePhotos($req); - - $res = $this->generateResultFromHandler($data); - - return $res->getReturnResponse(); - } - public function uploadFinishPhotos(Request $req, RiderAPIHandlerInterface $rapi_handler) { $data = $rapi_handler->uploadFinishPhotos($req); diff --git a/src/Entity/JOExtra.php b/src/Entity/JOExtra.php index b93b1e25..12974b33 100644 --- a/src/Entity/JOExtra.php +++ b/src/Entity/JOExtra.php @@ -19,21 +19,6 @@ class JOExtra */ protected $id; - /** - * @ORM\Column(type="string", nullable=true) - */ - protected $before_speed_image_filename; - - /** - * @ORM\Column(type="string", nullable=true) - */ - protected $before_plate_num_image_filename; - - /** - * @ORM\Column(type="string", nullable=true) - */ - protected $before_batt_image_filename; - /** * @ORM\Column(type="string", nullable=true) */ @@ -49,11 +34,6 @@ class JOExtra */ protected $after_batt_image_filename; - /** - * @ORM\Column(type="array", nullable=true) - */ - protected $before_other_images; - /** * @ORM\Column(type="array", nullable=true) */ @@ -67,7 +47,6 @@ class JOExtra public function __construct() { - $this->before_other_images = new ArrayCollection(); $this->after_other_images = new ArrayCollection(); } @@ -76,38 +55,6 @@ class JOExtra return $this->id; } - public function setBeforeSpeedImageFilename($image_filename) - { - $this->before_speed_image_filename = $image_filename; - return $this; - } - - public function getBeforeSpeedImageFilename() - { - return $this->before_speed_image_filename; - } - - public function setBeforePlateNumImageFilename($image_filename) - { - $this->before_plate_num_image_filename = $image_filename; - return $this; - } - - public function getBeforePlateNumImageFilename() - { - return $this->before_plate_num_image_filename; - } - - public function setBeforeBattImageFilename($image_filename) - { - $this->before_batt_image_filename = $image_filename; - return $this; - } - - public function getBeforeBattImageFilename() - { - return $this->before_batt_image_filename; - } public function setAfterSpeedImageFilename($image_filename) { $this->after_speed_image_filename = $image_filename; @@ -141,29 +88,6 @@ class JOExtra return $this->after_batt_image_filename; } - public function getBeforeOtherImages() - { - return $this->before_other_images; - } - - public function setBeforeOtherImages(array $images) - { - $this->before_other_images = new ArrayCollection(); - - foreach ($images as $image_filename) - { - $this->before_other_images->add($image_filename); - } - - return $this; - } - - public function clearBeforeOtherImages() - { - $this->before_other_images = new ArrayCollection(); - return $this; - } - public function getAfterOtherImages() { return $this->after_other_images; diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 43e21a0e..0ae32a73 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -1478,6 +1478,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['cvid'] = $obj->getCustomerVehicle()->getID(); $params['vid'] = $obj->getCustomerVehicle()->getVehicle()->getID(); $params['discounts'] = $this->generateDiscountOptions(); + $params['current_date'] = new DateTime(); // get service charges $sc_array = []; @@ -1511,35 +1512,21 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['signature'] = null; if ($jo_extra != null) { - $b_speed_img = $jo_extra->getBeforeSpeedImageFilename(); $a_speed_img = $jo_extra->getAfterSpeedImageFilename(); - $b_plate_img = $jo_extra->getBeforePlateNumImageFilename(); $a_plate_img = $jo_extra->getAfterPlateNumImageFilename(); - $b_batt_img = $jo_extra->getBeforeBattImageFilename(); $a_batt_img = $jo_extra->getAfterBattImageFilename(); - $b_other_images = $jo_extra->getBeforeOtherImages(); $a_other_images = $jo_extra->getAfterOtherImages(); $cust_signature = $jo_extra->getCustomerSignature(); - if ($b_speed_img != null) - $pic_array['before_speed_img'] = $b_speed_img; if ($a_speed_img != null) $pic_array['after_speed_img'] = $a_speed_img; - if ($b_plate_img != null) - $pic_array['before_plate_img'] = $b_plate_img; if ($a_plate_img != null) $pic_array['after_plate_img'] = $a_plate_img; - if ($b_batt_img != null) - $pic_array['before_batt_img'] = $b_batt_img; if ($a_batt_img != null) $pic_array['after_batt_img'] = $a_batt_img; - foreach($b_other_images as $b_img) - { - $pic_array['b_other_images'][] = $b_img; - } foreach ($a_other_images as $a_img) { $pic_array['a_other_images'][] = $a_img; @@ -2812,6 +2799,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['cvid'] = $obj->getCustomerVehicle()->getID(); $params['vid'] = $obj->getCustomerVehicle()->getVehicle()->getID(); $params['discounts'] = $this->generateDiscountOptions(); + $params['current_date'] = new DateTime(); $this->fillDropdownParameters($params); $this->fillFormTags($params); diff --git a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php index 25b13034..bd723ab4 100644 --- a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php +++ b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php @@ -666,13 +666,6 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface if ($odo <= 0) $odo = 0; - // get before images - $before_images = [ - 'speedometer' => null, - 'plate_number' => null, - 'battery' => null, - 'others' => [], - ]; $after_images = [ 'speedometer' => null, 'plate_number' => null, @@ -682,19 +675,6 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface $jo_extra = $jo->getJOExtra(); if ($jo_extra != null) { - // before images - $before_images['speedometer'] = $this->getURLExtraImage($req, $jo_extra->getBeforeSpeedImageFilename()); - $before_images['plate_number'] = $this->getURLExtraImage($req, $jo_extra->getBeforePlateNumImageFilename()); - $before_images['battery'] = $this->getURLExtraImage($req, $jo_extra->getBeforeBattImageFilename()); - - // other images - $other_images = []; - foreach ($jo_extra->getBeforeOtherImages() as $others) - { - $other_images[] = $this->getURLExtraImage($req, $others); - } - $before_images['others'] = $other_images; - // after images $after_images['speedometer'] = $this->getURLExtraImage($req, $jo_extra->getAfterSpeedImageFilename()); $after_images['plate_number'] = $this->getURLExtraImage($req, $jo_extra->getAfterPlateNumImageFilename()); @@ -764,7 +744,6 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface 'odometer' => $odo, // images - 'arrive_photos' => $before_images, 'finish_photos' => $after_images, // customer email @@ -1576,169 +1555,6 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface return $new_filename; } - public function uploadArrivePhotos(Request $req) - { - $required_params = [ - 'jo_id', - ]; - $data = $this->checkActiveJO($req, $required_params, $jo); - if (isset($data['error'])) - { - $data['title'] = 'Failed Upload Arrive Photos'; - return $data; - } - - $dest = $this->upload_dir; - - $speed_img_file = $req->files->get('speedometer_img'); - $batt_img_file = $req->files->get('battery_img'); - $plate_num_img_file = $req->files->get('plate_number_img'); - $other_img_files[]= $req->files->get('other_images'); - - if ((empty($speed_img_file)) && - (empty($batt_img_file)) && - (empty($plate_num_img_file))) - { - $data = [ - 'title' => 'Failed Upload Arrive Photos', - 'error' => 'No image files received.' - ]; - return $data; - } - else - { - $new_speed_filename = ''; - $new_batt_filename = ''; - $new_plate_num_filename = ''; - $other_filenames = []; - - if (!empty($speed_img_file)) - { - // save speedometer file - $orig_speed_filename = pathinfo($speed_img_file->getClientOriginalName(), PATHINFO_FILENAME); - $new_speed_filename = uniqid() . '-'. $orig_speed_filename . '.' . $speed_img_file->guessClientExtension(); - - try - { - $speed_img_file->move($dest, $new_speed_filename); - } - catch (FileException $e) - { - $data = [ - 'error' => 'Error saving image files.' - ]; - return $data; - } - } - if (!empty($batt_img_file)) - { - // save battery file - $orig_batt_filename = pathinfo($batt_img_file->getClientOriginalName(), PATHINFO_FILENAME); - $new_batt_filename = uniqid() . '-' . $orig_batt_filename . '.' . $batt_img_file->guessClientExtension(); - - try - { - $batt_img_file->move($dest, $new_batt_filename); - } - catch (FileException $e) - { - $data = [ - 'error' => 'Error saving image files.' - ]; - return $data; - } - } - if (!empty($plate_num_img_file)) - { - // save plate number file - $orig_plate_num_filename = pathinfo($plate_num_img_file->getClientOriginalName(), PATHINFO_FILENAME); - $new_plate_num_filename = uniqid() . '-' . $orig_plate_num_filename . '.' . $plate_num_img_file->guessClientExtension(); - - try - { - $plate_num_img_file->move($dest, $new_plate_num_filename); - } - catch (FileException $e) - { - $data = [ - 'error' => 'Error saving image files.' - ]; - return $data; - } - } - - foreach ($other_img_files as $other_img_file) - { - if (!(empty($other_img_file))) - { - foreach($other_img_file as $other_img) - { - $orig_other_filename = pathinfo($other_img->getClientOriginalName(), PATHINFO_FILENAME); - $new_other_filename = uniqid() . '-'. $orig_other_filename . '.' . $other_img->guessClientExtension(); - - $other_filenames[] = $new_other_filename; - - try - { - $other_img->move($dest, $new_other_filename); - } - catch (FileException $e) - { - $data = [ - 'error' => 'Error saving image files.' - ]; - return $data; - } - } - } - } - - $jo_extra = $jo->getJOExtra(); - if ($jo_extra == null) - { - // create JOExtra entity - $jo_extra = new JOExtra(); - - $jo_extra->setBeforeSpeedImageFilename($new_speed_filename); - $jo_extra->setBeforeBattImageFilename($new_batt_filename); - $jo_extra->setBeforePlateNumImageFilename($new_plate_num_filename); - - if (empty($other_filenames)) - { - $jo_extra->clearBeforeOtherImages(); - } - else - { - $jo_extra->setBeforeOtherImages($other_filenames); - } - - $jo->setJOExtra($jo_extra); - - $this->em->persist($jo_extra); - } - else - { - $jo_extra->setBeforeSpeedImageFilename($new_speed_filename); - $jo_extra->setBeforeBattImageFilename($new_batt_filename); - $jo_extra->setBeforePlateNumImageFilename($new_plate_num_filename); - - if (empty($other_filenames)) - { - $jo_extra->clearBeforeOtherImages(); - - } - else - { - $jo_extra->setBeforeOtherImages($other_filenames); - } - } - - $this->em->flush(); - } - - return $data; - } - public function uploadFinishPhotos(Request $req) { $required_params = [ diff --git a/templates/job-order/cmb.form.onestep.html.twig b/templates/job-order/cmb.form.onestep.html.twig index 35846621..60fb87c4 100644 --- a/templates/job-order/cmb.form.onestep.html.twig +++ b/templates/job-order/cmb.form.onestep.html.twig @@ -511,48 +511,9 @@
-
+
-
-
- -
- {% for key, picture in jo_pictures %} - {% if key == 'before_speed_img' %} -
- -
-
- {% endif %} - {% if key == 'before_plate_img' %} -
- -
-
- {% endif %} - {% if key == 'before_batt_img' %} -
- -
-
- {% endif %} - {% endfor %} -
-
-
- -
- {% for key, picture in jo_pictures %} - {% if key == 'b_other_images' %} - {% for pic in jo_pictures['b_other_images'] %} -
-
-
- {% endfor %} - {% endif %} - {% endfor %} -
From 3fcb3d31b5d2063fdce5a696932f40aead7be34e Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Tue, 7 Jul 2020 07:34:43 +0000 Subject: [PATCH 15/18] Limit customer vehicles to 2 per customer. #434 --- templates/customer/cmb.form.html.twig | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/templates/customer/cmb.form.html.twig b/templates/customer/cmb.form.html.twig index e417f3bb..c979b7d7 100644 --- a/templates/customer/cmb.form.html.twig +++ b/templates/customer/cmb.form.html.twig @@ -663,9 +663,18 @@ // display create vehicle form $("#add-vehicle").click(function() { - $("#vehicle-form").data('mode', 'create'); - $("#vehicle-form-title").html("Add Vehicle"); - $("#vehicle-form-modal").modal('show'); + // check if there are already 2 vehicles in list + if (vehicleRows.length == 2) + { + swal({ + text: 'Customer is limited to only 2 vehicles..', + type: 'info', + }); + } else { + $("#vehicle-form").data('mode', 'create'); + $("#vehicle-form-title").html("Add Vehicle"); + $("#vehicle-form-modal").modal('show'); + } }); // find vehicle row by index From a448177a1c7daa8743602d3c58b680556cd31976 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 8 Jul 2020 04:21:17 +0000 Subject: [PATCH 16/18] Made the model year field a dropdown. #434 --- src/Service/JobOrderHandler/CMBJobOrderHandler.php | 13 +++++++++---- templates/job-order/cmb.form.onestep.html.twig | 11 ++++++++++- templates/job-order/cmb.form.walkin.html.twig | 11 ++++++++++- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 0ae32a73..30fa965f 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -1455,7 +1455,6 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['obj'] = $new_jo; $params['mode'] = 'onestep'; $params['jo_service_charges'] = []; - $params['discounts'] = $this->generateDiscountOptions(); $params['current_date'] = new DateTime(); $this->fillDropdownParameters($params); @@ -1477,7 +1476,6 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['mode'] = 'onestep-edit'; $params['cvid'] = $obj->getCustomerVehicle()->getID(); $params['vid'] = $obj->getCustomerVehicle()->getVehicle()->getID(); - $params['discounts'] = $this->generateDiscountOptions(); $params['current_date'] = new DateTime(); // get service charges @@ -1597,7 +1595,6 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['mode'] = 'open_edit'; $params['cvid'] = $jo->getCustomerVehicle()->getID(); $params['vid'] = $jo->getCustomerVehicle()->getVehicle()->getID(); - $params['discounts'] = $this->generateDiscountOptions(); $this->fillDropdownParameters($params); $this->fillFormTags($params); @@ -2798,7 +2795,6 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['mode'] = 'walk-in-edit'; $params['cvid'] = $obj->getCustomerVehicle()->getID(); $params['vid'] = $obj->getCustomerVehicle()->getVehicle()->getID(); - $params['discounts'] = $this->generateDiscountOptions(); $params['current_date'] = new DateTime(); $this->fillDropdownParameters($params); @@ -2838,6 +2834,9 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $params['facilitated_types'] = FacilitatedType::getCollection(); $params['facilitated_hubs'] = $fac_hubs; $params['sources'] = CMBTransactionOrigin::getCollection(); + + $params['model_years'] = $this->generateYearOptions(); + $params['discounts'] = $this->generateDiscountOptions(); } protected function initFormTags(&$params) @@ -3134,4 +3133,10 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $discount_start = 0; return range($discount_start, 60); } + + protected function generateYearOptions() + { + $start_year = 1950; + return range($start_year, date("Y")); + } } diff --git a/templates/job-order/cmb.form.onestep.html.twig b/templates/job-order/cmb.form.onestep.html.twig index 60fb87c4..6e53cf9e 100644 --- a/templates/job-order/cmb.form.onestep.html.twig +++ b/templates/job-order/cmb.form.onestep.html.twig @@ -178,7 +178,16 @@
- +
diff --git a/templates/job-order/cmb.form.walkin.html.twig b/templates/job-order/cmb.form.walkin.html.twig index 9c34a357..58b52900 100644 --- a/templates/job-order/cmb.form.walkin.html.twig +++ b/templates/job-order/cmb.form.walkin.html.twig @@ -178,7 +178,16 @@
- +
From c82a7a388d55a9870ba5b6d419b8c88766d154ce Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 8 Jul 2020 09:12:35 +0000 Subject: [PATCH 17/18] Modify checking for JO reassignment. #434 --- src/Service/JobOrderHandler/CMBJobOrderHandler.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 30fa965f..34c48a2b 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -432,7 +432,8 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface } else { - $old_rider = $jo->getRider(); + //$old_rider = $jo->getRider(); + $old_jo_status = $jo->getStatus(); } // check if lat and lng are provided @@ -668,8 +669,10 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $em->flush(); // check if JO has been reassigned - if ($old_rider != $rider) + //if ($old_rider != $rider) + if ($old_jo_status != $jo->getStatus()) { + //error_log('JO has been reassigned'); // TODO: refactor later $channel = 'rider/' . $rider->getID() . '/events'; $payload = [ From 7d19cfa1ebb64adaa41ed392bc181fd45ff15cf2 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 8 Jul 2020 10:41:28 +0000 Subject: [PATCH 18/18] Fix bug when assigning rider to JO. #434 --- src/Service/JobOrderHandler/CMBJobOrderHandler.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 34c48a2b..1a3a6487 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -424,7 +424,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $em = $this->em; $jo = $em->getRepository(JobOrder::class)->find($id); - $old_rider = null; + $old_jo_status = null; if (empty($jo)) { // new job order @@ -672,7 +672,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface //if ($old_rider != $rider) if ($old_jo_status != $jo->getStatus()) { - //error_log('JO has been reassigned'); + error_log('JO has been reassigned'); // TODO: refactor later $channel = 'rider/' . $rider->getID() . '/events'; $payload = [