From 7ae9fe4e2d567bc17b06140690d21d8ef3ebd796 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Sat, 9 Feb 2019 21:44:35 +0800 Subject: [PATCH 1/2] Add facilitated by dropdowns for job order form #181 --- src/Controller/JobOrderController.php | 11 +++++++++++ src/Entity/JobOrder.php | 13 +++++++++++++ src/Ramcar/FacilitatedType.php | 16 ++++++++++++++++ templates/job-order/form.html.twig | 23 +++++++++++++++++++++++ templates/job-order/form.pdf.html.twig | 11 +++++++++++ 5 files changed, 74 insertions(+) create mode 100644 src/Ramcar/FacilitatedType.php diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index 0e0e6d8e..d38b35bc 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -13,6 +13,7 @@ use App\Ramcar\InvoiceStatus; use App\Ramcar\ModeOfPayment; use App\Ramcar\TransactionOrigin; use App\Ramcar\JOEventType; +use App\Ramcar\FacilitatedType; use App\Entity\JobOrder; use App\Entity\BatteryManufacturer; @@ -137,6 +138,14 @@ class JobOrderController extends BaseController // $params['customers'] = $em->getRepository(Customer::class)->findAll(); $params['promos'] = $em->getRepository(Promo::class)->findAll(); + // list of hubs + $hubs = $em->getRepository(Hub::class)->findBy([], ['name' => 'ASC']); + $fac_hubs = []; + foreach ($hubs as $hub) + { + $fac_hubs[$hub->getID()] = $hub->getName() . ' - ' . $hub->getBranch(); + } + // name values $params['service_types'] = ServiceType::getCollection(); $params['warranty_classes'] = WarrantyClass::getCollection(); @@ -144,6 +153,8 @@ class JobOrderController extends BaseController $params['statuses'] = JOStatus::getCollection(); $params['discount_apply'] = DiscountApply::getCollection(); $params['trade_in_types'] = TradeInType::getCollection(); + $params['facilitated_types'] = FacilitatedType::getCollection(); + $params['facilitated_hubs'] = $fac_hubs; $params['sources'] = TransactionOrigin::getCollection(); } diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index 412473c8..c0c07115 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -249,6 +249,19 @@ class JobOrder */ protected $flag_coolant; + // facilitated by hub, non-hub, annex + /** + * @ORM\Column(type="string", length=8, nullable=true) + */ + protected $facilitated_type; + + // the location that facilitated the job order + /** + * @ORM\ManyToOne(targetEntity="Hub", inversedBy="job_orders") + * @ORM\JoinColumn(name="facilitated_hub_id", referencedColumnName="id", nullable=true) + */ + protected $facilitated_by; + public function __construct() { $this->date_create = new DateTime(); diff --git a/src/Ramcar/FacilitatedType.php b/src/Ramcar/FacilitatedType.php new file mode 100644 index 00000000..6735d460 --- /dev/null +++ b/src/Ramcar/FacilitatedType.php @@ -0,0 +1,16 @@ + 'Hub', + 'non-hub' => 'Non-Hub', + 'annex' => 'Annex', + ]; +} diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index f566ab00..1cc759ef 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -517,6 +517,29 @@ {% if mode in ['update-processing', 'update-reassign-hub'] %}
+
+
+ + +
+
+ + +
+
+
+
+

Nearest Hubs diff --git a/templates/job-order/form.pdf.html.twig b/templates/job-order/form.pdf.html.twig index d301def1..9944a44c 100644 --- a/templates/job-order/form.pdf.html.twig +++ b/templates/job-order/form.pdf.html.twig @@ -401,6 +401,17 @@ {% if mode in ['update-processing', 'update-reassign-hub'] %}
+
+
+ + +
+

Nearest Hubs From e2ccf1bbc14a3210f951a36c24481e5ff5008376 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Sun, 10 Feb 2019 20:48:46 +0800 Subject: [PATCH 2/2] Add functionality to save facilitated by fields #181 --- src/Controller/JobOrderController.php | 23 +++++++++++++++++++++++ src/Entity/JobOrder.php | 21 +++++++++++++++++++++ templates/job-order/form.html.twig | 4 ++-- 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index d38b35bc..6641e247 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -997,6 +997,27 @@ class JobOrderController extends BaseController } } + // check facilitated type + $fac_type = $req->request->get('facilitated_type'); + if (!empty($fac_type)) + { + if (!FacilitatedType::validate($fac_type)) + $fac_type = null; + } + else + $fac_type = null; + + // check facilitated by + $fac_by_id = $req->request->get('facilitated_by'); + $fac_by = null; + if (!empty($fac_by_id)) + { + $fac_by = $em->getRepository(Hub::class)->find($fac_by_id); + if (empty($fac_by)) + $fac_by = null; + } + + if (empty($error_array)) { // coordinates @@ -1014,6 +1035,8 @@ class JobOrderController extends BaseController ->setTier1Notes($req->request->get('tier1_notes')) ->setTier2Notes($req->request->get('tier2_notes')) ->setDeliveryAddress($req->request->get('delivery_address')) + ->setFacilitatedType($fac_type) + ->setFacilitatedBy($fac_by) ->setHub($hub); // validate diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index c0c07115..ee401c82 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -755,4 +755,25 @@ class JobOrder return false; } + public function setFacilitatedType($type = null) + { + $this->facilitated_type = $type; + return $this; + } + + public function getFacilitatedType() + { + return $this->facilitated_type; + } + + public function setFacilitatedBy(Hub $hub = null) + { + $this->facilitated_by = $hub; + return $this; + } + + public function getFacilitatedBy() + { + return $this->facilitated_by; + } } diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index 1cc759ef..e7d7972c 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -520,7 +520,7 @@
- {% for key, type in facilitated_types %} @@ -529,7 +529,7 @@
- {% for key, name in facilitated_hubs %}