diff --git a/.gitignore b/.gitignore index 90038562..bd8a680c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ /sql/ /pem/ /migration/ +/kml/ ###< symfony/framework-bundle ### *.swp diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml index a11fab53..d912927a 100644 --- a/config/packages/twig.yaml +++ b/config/packages/twig.yaml @@ -4,3 +4,5 @@ twig: strict_variables: '%kernel.debug%' globals: gmaps_api_key: "%env(GMAPS_API_KEY)%" + mqtt_host: "%env(MQTT_WS_HOST)%" + mqtt_port: "%env(MQTT_WS_PORT)%" diff --git a/config/routes/job_order.yaml b/config/routes/job_order.yaml index be379be8..139b208f 100644 --- a/config/routes/job_order.yaml +++ b/config/routes/job_order.yaml @@ -195,3 +195,9 @@ jo_onestep_edit_submit: path: /job-order/onestep/{id}/edit controller: App\Controller\JobOrderController::oneStepEditSubmit methods: [POST] + +jo_ajax_popup: + path: /job-order/{id}/popup + controller: App\Controller\JobOrderController::popupInfo + methods: [GET] + diff --git a/config/routes/rider.yaml b/config/routes/rider.yaml index 61a4522e..70ddd91d 100644 --- a/config/routes/rider.yaml +++ b/config/routes/rider.yaml @@ -36,3 +36,8 @@ rider_delete: path: /riders/{id} controller: App\Controller\RiderController::destroy methods: [DELETE] + +rider_ajax_popup: + path: /riders/{id}/popup + controller: App\Controller\RiderController::popupInfo + methods: [GET] diff --git a/config/services.yaml b/config/services.yaml index ef6e13e4..4249102e 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -160,8 +160,8 @@ services: App\Service\InvoiceGenerator\CMBInvoiceGenerator: ~ # invoice generator interface - #App\Service\InvoiceGeneratorInterface: "@App\\Service\\InvoiceGenerator\\CMBInvoiceGenerator" - App\Service\InvoiceGeneratorInterface: "@App\\Service\\InvoiceGenerator\\ResqInvoiceGenerator" + App\Service\InvoiceGeneratorInterface: "@App\\Service\\InvoiceGenerator\\CMBInvoiceGenerator" + #App\Service\InvoiceGeneratorInterface: "@App\\Service\\InvoiceGenerator\\ResqInvoiceGenerator" # job order generator #App\Service\JobOrderHandler\ResqJobOrderHandler: diff --git a/src/Controller/CustomerController.php b/src/Controller/CustomerController.php index 5c15bfaa..7421fec0 100644 --- a/src/Controller/CustomerController.php +++ b/src/Controller/CustomerController.php @@ -5,6 +5,9 @@ namespace App\Controller; use App\Ramcar\CrudException; use App\Service\CustomerHandlerInterface; +use App\Entity\Customer; + +use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index d678c95d..3a3e5173 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -29,6 +29,8 @@ class HomeController extends Controller public function getRiderLocations(EntityManagerInterface $em, RiderTracker $rider_tracker) { + // TODO: get active riders from cache + // TODO: get active JOs from cache // get all riders $riders = $em->getRepository(Rider::class)->findAll(); diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index 4a5a7bf3..039ea37d 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -8,6 +8,7 @@ use App\Ramcar\InvoiceCriteria; use App\Entity\CustomerVehicle; use App\Entity\Promo; use App\Entity\Battery; +use App\Entity\JobOrder; use App\Service\InvoiceGeneratorInterface; use App\Service\JobOrderHandlerInterface; @@ -20,6 +21,8 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; + use Catalyst\MenuBundle\Annotation\Menu; class JobOrderController extends Controller @@ -908,4 +911,15 @@ class JobOrderController extends Controller 'success' => 'Changes have been saved!' ]); } + + /** + * @ParamConverter("jo", class="App\Entity\JobOrder") + */ + public function popupInfo(JobOrder $jo) + { + if ($jo == null) + return new Response('No job order data'); + + return $this->render('job-order/popup.html.twig', [ 'jo' => $jo ]); + } } diff --git a/src/Controller/RAPIController.php b/src/Controller/RAPIController.php index bb9ba225..c5d629c8 100644 --- a/src/Controller/RAPIController.php +++ b/src/Controller/RAPIController.php @@ -280,7 +280,8 @@ class RAPIController extends Controller // data $data = [ - 'hub' => $hub_data + 'hub' => $hub_data, + 'rider_id' => $rider_id, ]; $res->setData($data); diff --git a/src/Controller/RiderController.php b/src/Controller/RiderController.php index a62eebd1..838b558b 100644 --- a/src/Controller/RiderController.php +++ b/src/Controller/RiderController.php @@ -10,6 +10,7 @@ use App\Entity\User; use App\Service\FileUploader; use Doctrine\ORM\Query; +use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface; @@ -500,4 +501,13 @@ class RiderController extends Controller ->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%'); } } + + public function popupInfo(EntityManagerInterface $em, $id) + { + $rider = $em->getRepository(Rider::class)->find($id); + if ($rider == null) + return new Response('No rider data'); + + return $this->render('rider/popup.html.twig', [ 'rider' => $rider ]); + } } diff --git a/templates/home.html.twig b/templates/home.html.twig index c6b95597..f55fe863 100644 --- a/templates/home.html.twig +++ b/templates/home.html.twig @@ -10,21 +10,114 @@ {% endblock %} + {% block scripts %} -{{ include('map/' ~ map_js_file) }} + + +{{ include('map/' ~ map_js_file) }} + + + {% endblock %} - diff --git a/templates/job-order/popup.html.twig b/templates/job-order/popup.html.twig new file mode 100644 index 00000000..509c7296 --- /dev/null +++ b/templates/job-order/popup.html.twig @@ -0,0 +1,8 @@ +{% set cust = jo.getCustomer %} +{% set cv = jo.getCustomerVehicle %} +{{ cust.getNameDisplay }}
+{{ cv.getPlateNumber }}
+Job Order #{{ jo.getID }}
+{{ jo.getServiceTypeName }}
+{{ jo.getStatusText }} + diff --git a/templates/map/initOpenStreetMap.js b/templates/map/initOpenStreetMap.js index 59a8ebcf..358b91d4 100644 --- a/templates/map/initOpenStreetMap.js +++ b/templates/map/initOpenStreetMap.js @@ -5,7 +5,10 @@ diff --git a/templates/rider/popup.html.twig b/templates/rider/popup.html.twig new file mode 100644 index 00000000..8807d6c7 --- /dev/null +++ b/templates/rider/popup.html.twig @@ -0,0 +1,13 @@ +{{ rider.getFullName }} +{% set jo = rider.getActiveJobOrder %} +{% if jo is not null %} +{% set cust = jo.getCustomer %} +{% set cv = jo.getCustomerVehicle %} +
+Job Order #{{ jo.getID }}
+{{ jo.getServiceTypeName }}
+{{ jo.getStatusText }}

+{{ cust.getNameDisplay }}
+{{ cv.getPlateNumber }} +{% endif %} + diff --git a/translations/messages.en.yaml b/translations/messages.en.yaml index c0fb8ca1..04ebdc42 100644 --- a/translations/messages.en.yaml +++ b/translations/messages.en.yaml @@ -1,27 +1,29 @@ # text -title_login: Motolite Res-Q | Login -block_title: Motolite Res-Q +title_login: Res-Q for CMB | Login +block_title: Res-Q for CMB control_panel_sign_in: Sign-in to Control Panel -alt_image_logo_login: Res-Q -alt_image_dashboard: Motolite -copyright: Motolite Res-Q +alt_image_logo_login: Res-Q for CMB +alt_image_dashboard: Res-Q for CMB +copyright: Res-Q for CMB battery_size_tradein_brand: Trade-in Motolite battery_size_tradein_premium: Trade-in Premium battery_size_tradein_other: Trade-in Other add_cust_vehicle_battery_info: This vehicle is using a Motolite battery -jo_title_pdf: Motolite Res-Q Job Order -country_code_prefix: '+63' -delivery_instructions_label: Delivery Instructions +jo_title_pdf: Res-Q for CMB Job Order +country_code_prefix: '+60' +delivery_instructions_label: 'Delivery Instructions - CarFix Job Order No.' # images -image_logo_login: /assets/images/logo-resq.png -icon_login: /assets/demo/default/media/img/logo/favicon.ico -icon_base_32x32: /assets/images/favicon/favicon-32x32.png -icon_base_16x16: /assets/images/favicon/favicon-16x16.png -image_dashboard: /assets/images/logo-motolite.png -image_jo_pdf: /public/assets/images/logo-resq.png +image_logo_login: /assets/images/black-text-logo-01.png +icon_login: /assets/images/battery-assist-bm-logo-32x32.png +icon_base_32x32: /assets/images/black-text-logo-01-32x32.png +icon_base_16x16: /assets/images/black-text-logo-01-16x16.png +image_dashboard: /assets/images/century_logo.png +image_jo_pdf: /public/assets/images/black-text-logo-01-115x115.png # default point for maps default_lat: 14.6091 default_long: 121.0223 -default_region: ph +#default_lat: 3.084216 +#default_long: 101.6129996 +default_region: my