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 @@