diff --git a/config/acl.yaml b/config/acl.yaml index fb623290..838d46dd 100644 --- a/config/acl.yaml +++ b/config/acl.yaml @@ -258,14 +258,6 @@ access_keys: label: Edit - id: joborder.cancel label: Cancel - - id: jo_onestep.form - label: One-step Process - - id: jo_onestep.edit - label: One-step Process Edit - - id: jo_walkin.form - label: Walk-in - - id: jo_walkin.edit - label: Walk-in Edit - id: jo_autoassign.test label: Autoassign Test - id: jo_hub.list diff --git a/config/cmb.menu.yaml b/config/cmb.menu.yaml deleted file mode 100644 index 9f28b315..00000000 --- a/config/cmb.menu.yaml +++ /dev/null @@ -1,179 +0,0 @@ -main_menu: - - id: home - acl: dashboard.menu - label: Dashboard - icon: flaticon-line-graph - - id: user - acl: user.menu - label: User - icon: flaticon-users - - id: user_list - acl: user.list - label: Users - parent: user - - id: role_list - acl: role.list - label: Roles - parent: user - - - id: apiuser - acl: apiuser.menu - label: API User - icon: flaticon-users - - id: api_user_list - acl: apiuser.list - label: API Users - parent: apiuser - - id: api_role_list - acl: apirole.list - label: API Roles - parent: apiuser - - - id: logistics - acl: logistics.menu - label: Logistics - icon: fa fa-truck - - id: rider_list - acl: rider.list - label: Riders - parent: logistics - - id: service_charge_list - acl: service_charge.list - label: Service Charges - parent: logistics - - - id: battery - acl: battery.menu - label: Battery - icon: fa fa-battery-3 - - id: battery_list - acl: battery.list - label: Batteries - parent: battery - - id: bmfg_list - acl: bmfg.list - label: Manufacturers - parent: battery - - id: bmodel_list - acl: bmodel.list - label: Models - parent: battery - - id: bsize_list - acl: bsize.list - label: Sizes - parent: battery - - id: promo_list - acl: promo.list - label: Promos - parent: battery - - - id: vehicle - acl: vehicle.menu - label: Vehicle - icon: fa fa-car - - id: vehicle_list - acl: vehicle.list - label: Vehicles - parent: vehicle - - id: vmfg_list - acl: vmfg.list - label: Manufacturers - parent: vehicle - - - id: location - acl: location.menu - label: Location - icon: fa fa-home - - id: outlet_list - acl: outlet.menu - label: Outlet - parent: location - - id: hub_list - acl: hub.menu - label: Hub - parent: location - - id: geofence_list - acl: geofence.menu - label: Geofence - parent: location - - - - id: joborder - acl: joborder.menu - label: Job Order - icon: flaticon-calendar-3 - - id: jo_onestep_form - acl: jo_onestep.form - label: One-step Process - parent: joborder - - id: jo_walkin_form - acl: jo_walkin.form - label: Walk-in - parent: joborder - - id: jo_open - acl: jo_open.list - label: Open - parent: joborder - - id: jo_all - acl: jo_all.list - label: View All - parent: joborder - - - id: support - acl: support.menu - label: Customer Support - icon: flaticon-support - - id: customer_list - acl: customer.list - label: Customers - parent: support - - id: ticket_list - acl: ticket.list - label: Tickets - parent: support - - id: general_search - acl: general.search - label: Search - parent: support - - id: warranty_search - acl: warranty.search - label: Customer Battery Search - parent: support - - id: privacy_policy_list - acl: privacy_policy.list - label: Privacy Policy - parent: support - - id: warranty_list - acl: warranty.list - label: Warranty - parent: support - - id: warranty_upload - acl: warranty.upload - label: Warranty Upload - parent: support - - id: static_content_list - acl: static_content.list - label: Static Content - parent: support - - - id: service - acl: service.menu - label: Other Services - icon: flaticon-squares - - id: service_list - acl: service.list - label: Services - parent: service - - - id: partner - acl: partner.menu - label: Partners - icon: flaticon-network - - id: partner_list - acl: partner.list - label: Partners - parent: partner - - id: review_list - acl: review.list - label: Reviews - parent: partner diff --git a/config/cmb.services.yaml b/config/cmb.services.yaml deleted file mode 100644 index 5f24e525..00000000 --- a/config/cmb.services.yaml +++ /dev/null @@ -1,235 +0,0 @@ -# Put parameters here that don't need to change on each machine where the app is deployed -# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration -parameters: - map_default: - latitude: 14.6091 - longitude: 121.0223 - image_upload_directory: '%kernel.project_dir%/public/uploads' - job_order_refresh_interval: 300000 - api_acl_file: 'api_acl.yaml' - api_access_key: 'api_access_keys' - app_acl_file: 'acl.yaml' - app_access_key: 'access_keys' - cvu_brand_id: "%env(CVU_BRAND_ID)%" - country_code: "%env(COUNTRY_CODE)%" - -services: - # default configuration for services in *this* file - _defaults: - autowire: true # Automatically injects dependencies in your services. - autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. - public: false # Allows optimizing the container by removing unused services; this also means - # fetching services directly from the container via $container->get() won't work. - # The best practice is to be explicit about your dependencies anyway. - - # makes classes in src/ available to be used as services - # this creates a service per class whose id is the fully-qualified class name - App\: - resource: '../src/*' - exclude: '../src/{Entity,Migrations,Tests,Menu,Access}' - - # controllers are imported separately to make sure services can be injected - # as action arguments even if you don't extend any base controller class - App\Controller\: - resource: '../src/Controller' - tags: ['controller.service_arguments'] - - # add more service definitions when explicit configuration is needed - # please note that last definitions always *replace* previous ones - App\Menu\Generator: - arguments: - $router: "@router.default" - $cache_dir: "%kernel.cache_dir%" - $config_dir: "%kernel.root_dir%/../config" - - Catalyst\AuthBundle\Service\ACLGenerator: - arguments: - $router: "@router.default" - $cache_dir: "%kernel.cache_dir%" - $config_dir: "%kernel.root_dir%/../config" - $acl_file: "%app_acl_file%" - - Catalyst\AuthBundle\Service\ACLVoter: - arguments: - $user_class: "App\\Entity\\User" - tags: ['security.voter'] - - Catalyst\AuthBundle\Service\UserChecker: - - App\Service\FileUploader: - arguments: - $target_dir: '%image_upload_directory%' - - App\Service\MapTools: - arguments: - $em: "@doctrine.orm.entity_manager" - $gmaps_api_key: "%env(GMAPS_API_KEY)%" - $cust_dist_limit: "%env(CUST_DISTANCE_LIMIT)%" - - App\Service\RisingTideGateway: - arguments: - $em: "@doctrine.orm.entity_manager" - $user: "%env(RT_USER)%" - $pass: "%env(RT_PASS)%" - $usage_type: "%env(RT_USAGE_TYPE)%" - $shortcode: "%env(RT_SHORTCODE)%" - - App\Service\MQTTClient: - arguments: - $redis_client: "@App\\Service\\RedisClientProvider" - $key: "mqtt_events" - - App\Service\APNSClient: - arguments: - $redis_client: "@App\\Service\\RedisClientProvider" - - App\Service\RedisClientProvider: - arguments: - $scheme: "%env(REDIS_CLIENT_SCHEME)%" - $host: "%env(REDIS_CLIENT_HOST)%" - $port: "%env(REDIS_CLIENT_PORT)%" - $password: "%env(REDIS_CLIENT_PASSWORD)%" - - App\Service\GeofenceTracker: - arguments: - $geofence_flag: "%env(GEOFENCE_ENABLE)%" - - App\Service\WarrantyHandler: - arguments: - $em: "@doctrine.orm.entity_manager" - - App\Command\SetCustomerPrivacyPolicyCommand: - arguments: - $policy_promo: "%env(POLICY_PROMO)%" - $policy_third_party: "%env(POLICY_THIRD_PARTY)%" - $policy_mobile: "%env(POLICY_MOBILE)%" - - App\Command\CreateCustomerFromWarrantyCommand: - arguments: - $cvu_mfg_id: "%env(CVU_MFG_ID)%" - $cvu_brand_id: "%env(CVU_BRAND_ID)%" - - # rider tracker service - App\Service\RiderTracker: - arguments: - $redis_client: "@App\\Service\\RedisClientProvider" - - Catalyst\APIBundle\Security\APIKeyUserProvider: - arguments: - $em: "@doctrine.orm.entity_manager" - - Catalyst\APIBundle\Security\APIKeyAuthenticator: - arguments: - $em: "@doctrine.orm.entity_manager" - - Catalyst\APIBundle\Command\UserCreateCommand: - arguments: - $em: "@doctrine.orm.entity_manager" - tags: ['console.command'] - - Catalyst\APIBundle\Command\TestCommand: - tags: ['console.command'] - - Catalyst\APIBundle\Command\TestAPICommand: - tags: ['console.command'] - - Catalyst\APIBundle\Access\Voter: - arguments: - $acl_gen: "@Catalyst\\APIBundle\\Access\\Generator" - $user_class: "Catalyst\\APIBundle\\Entity\\User" - tags: ['security.voter'] - - Catalyst\APIBundle\Access\Generator: - arguments: - $router: "@router.default" - $cache_dir: "%kernel.cache_dir%" - $config_dir: "%kernel.root_dir%/../config" - $acl_file: "%api_acl_file%" - - Catalyst\MenuBundle\Menu\Generator: - arguments: - $router: "@router.default" - $cache_dir: "%kernel.cache_dir%" - $config_dir: "%kernel.root_dir%/../config" - - Catalyst\MenuBundle\Listener\MenuAnnotationListener: - arguments: - $menu_name: "main_menu" - tags: - - { name: kernel.event_listener, event: kernel.controller, method: onKernelController } - - # invoice generator - App\Service\InvoiceGenerator\CMBInvoiceGenerator: ~ - - # invoice generator interface - App\Service\InvoiceGeneratorInterface: "@App\\Service\\InvoiceGenerator\\CMBInvoiceGenerator" - - # job order generator - App\Service\JobOrderHandler\CMBJobOrderHandler: - arguments: - $country_code: "%env(COUNTRY_CODE)%" - - #job order generator interface - App\Service\JobOrderHandlerInterface: "@App\\Service\\JobOrderHandler\\CMBJobOrderHandler" - - # customer generator - App\Service\CustomerHandler\CMBCustomerHandler: - arguments: - $country_code: "%env(COUNTRY_CODE)%" - - # customer generator interface - App\Service\CustomerHandlerInterface: "@App\\Service\\CustomerHandler\\CMBCustomerHandler" - - # rider assignment - App\Service\RiderAssignmentHandler\CMBRiderAssignmentHandler: ~ - - # rider assignment interface - App\Service\RiderAssignmentHandlerInterface: "@App\\Service\\RiderAssignmentHandler\\CMBRiderAssignmentHandler" - - # rider API service - App\Service\RiderAPIHandler\CMBRiderAPIHandler: - arguments: - $country_code: "%env(COUNTRY_CODE)%" - - # rider API interface - App\Service\RiderAPIHandlerInterface: "@App\\Service\\RiderAPIHandler\\CMBRiderAPIHandler" - - # map manager - #App\Service\GISManager\Bing: ~ - App\Service\GISManager\OpenStreet: ~ - #App\Service\GISManager\Google: ~ - - #App\Service\GISManagerInterface: "@App\\Service\\GISManager\\Bing" - App\Service\GISManagerInterface: "@App\\Service\\GISManager\\OpenStreet" - #App\Service\GISManagerInterface: "@App\\Service\\GISManager\\Google" - - App\EventListener\JobOrderActiveCacheListener: - arguments: - $jo_cache: "@App\\Service\\JobOrderCache" - $mqtt: "@App\\Service\\MQTTClient" - tags: - - name: 'doctrine.orm.entity_listener' - event: 'postUpdate' - entity: 'App\Entity\JobOrder' - - name: 'doctrine.orm.entity_listener' - event: 'postRemove' - entity: 'App\Entity\JobOrder' - - name: 'doctrine.orm.entity_listener' - event: 'postPersist' - entity: 'App\Entity\JobOrder' - - App\Service\JobOrderCache: - arguments: - $redis_prov: "@App\\Service\\RedisClientProvider" - $active_jo_key: "%env(LOCATION_JO_ACTIVE_KEY)%" - - App\Service\RiderCache: - arguments: - $redis_prov: "@App\\Service\\RedisClientProvider" - $loc_key: "%env(LOCATION_RIDER_ACTIVE_KEY)%" - $status_key: "%env(STATUS_RIDER_KEY)%" - - # API logging - App\EventSubscriber\LogSubscriber: - arguments: - $api_log_flag: "%env(API_LOGGING)%" diff --git a/config/routes/job_order.yaml b/config/routes/job_order.yaml index 6ea3a3c5..a67620d6 100644 --- a/config/routes/job_order.yaml +++ b/config/routes/job_order.yaml @@ -176,26 +176,6 @@ jo_reject_hub: controller: App\Controller\JobOrderController::rejectHubSubmit methods: [POST] -jo_onestep_form: - path: /job-order/onestep - controller: App\Controller\JobOrderController::oneStepForm - methods: [GET] - -jo_onestep_submit: - path: /job-order/onestep - controller: App\Controller\JobOrderController::oneStepSubmit - methods: [POST] - -jo_onestep_edit_form: - path: /job-order/onestep/{id}/edit - controller: App\Controller\JobOrderController::oneStepEditForm - methods: [GET] - -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 @@ -206,26 +186,6 @@ jo_tracker: controller: App\Controller\JobOrderController::tracker methods: [GET] -jo_walkin_form: - path: /job-order/walk-in - controller: App\Controller\JobOrderController::walkInForm - methods: [GET] - -jo_walkin_submit: - path: /job-order/walk-in - controller: App\Controller\JobOrderController::walkInSubmit - methods: [POST] - -jo_walkin_edit_form: - path: /job-order/walk-in/{id} - controller: App\Controller\JobOrderController::walkInEditForm - methods: [GET] - -jo_walkin_edit_submit: - path: /job-order/walk-in/{id} - controller: App\Controller\JobOrderController::walkInEditSubmit - methods: [POST] - jo_autoassign: path: /job-order/autoassign controller: App\Controller\JobOrderController::autoAssignForm diff --git a/src/Controller/CustomerController.php b/src/Controller/CustomerController.php index e15e050d..a8f1da4a 100644 --- a/src/Controller/CustomerController.php +++ b/src/Controller/CustomerController.php @@ -182,9 +182,7 @@ class CustomerController extends Controller public function getCustomerVehicles(Request $req, CustomerHandlerInterface $cust_handler) { - if (!(($this->isGranted('jo_onestep.form')) || - ($this->isGranted('jo_walkin.form')) || - ($this->isGranted('jo_in.list')))) + if (!($this->isGranted('jo_in.list'))) { $exception = $this->createAccessDeniedException('No access.'); throw $exception; diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index fbab3cb2..acc302fe 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -4,7 +4,6 @@ namespace App\Controller; use App\Ramcar\JOStatus; use App\Ramcar\InvoiceCriteria; -use App\Ramcar\CMBServiceType; use App\Ramcar\ServiceType; use App\Ramcar\JOCancelReasons; @@ -291,13 +290,11 @@ class JobOrderController extends Controller $rows[$key]['meta']['reassign_rider_url'] = $this->generateUrl('jo_open_rider_form', ['id' => $jo_id]); // $rows[$key]['meta']['edit_url'] = $this->generateUrl('jo_open_edit_form', ['id' => $jo_id]); $rows[$key]['meta']['edit_url'] = $this->generateUrl($jo_handler->getEditRoute($jo_id, $tier_params['edit_route']), ['id' => $jo_id]); - $rows[$key]['meta']['onestep_edit_url'] = $this->generateUrl('jo_onestep_edit_form', ['id' => $jo_id]); } else { // $rows[$key]['meta']['update_url'] = $this->generateUrl($tier_params['edit_route'], ['id' => $jo_id]); $rows[$key]['meta']['update_url'] = $this->generateUrl($jo_handler->getEditRoute($jo_id, $tier_params['edit_route']), ['id' => $jo_id]); - $rows[$key]['meta']['onestep_edit_url'] = $this->generateUrl('jo_onestep_edit_form', ['id' => $jo_id]); $rows[$key]['meta']['pdf_url'] = $this->generateUrl('jo_pdf_form', ['id' => $jo_id]); } @@ -853,95 +850,6 @@ class JobOrderController extends Controller ]); } - /** - * @Menu(selected="jo_onestep_form") - */ - public function oneStepForm(EntityManagerInterface $em, JobOrderHandlerInterface $jo_handler, GISManagerInterface $gis) - { - $this->denyAccessUnlessGranted('jo_onestep.form', null, 'No access.'); - - $params = $jo_handler->initializeOneStepForm(); - $params['submit_url'] = $this->generateUrl('jo_onestep_submit'); - $params['return_url'] = $this->generateUrl('jo_onestep_form'); - $params['map_js_file'] = $gis->getJSJOFile(); - $params['vmfgs'] = $em->getRepository(VehicleManufacturer::class)->findAll(); - $params['vmakes'] = $em->getRepository(Vehicle::class)->findAll(); - - $template = $params['template']; - - // response - return $this->render($template, $params); - } - - public function oneStepSubmit(Request $req, JobOrderHandlerInterface $jo_handler) - { - $this->denyAccessUnlessGranted('jo_onestep.form', null, 'No access.'); - - // initialize error list - $error_array = []; - $id = -1; - $error_array = $jo_handler->processOneStepJobOrder($req, $id); - - // check if any errors were found - if (!empty($error_array)) { - // return validation failure response - return $this->json([ - 'success' => false, - 'errors' => $error_array - ], 422); - } - - - // return successful response - return $this->json([ - 'success' => 'Changes have been saved!' - ]); - } - - /** - * @Menu(selected="jo_onestep_edit_form") - */ - public function oneStepEditForm($id, EntityManagerInterface $em, JobOrderHandlerInterface $jo_handler, - GISManagerInterface $gis, MapTools $map_tools) - { - $this->denyAccessUnlessGranted('jo_onestep.edit', null, 'No access.'); - - $params = $jo_handler->initializeOneStepEditForm($id, $map_tools); - $params['submit_url'] = $this->generateUrl('jo_onestep_edit_submit', ['id' => $id]); - $params['return_url'] = $this->generateUrl('jo_open'); - $params['map_js_file'] = $gis->getJSJOFile(); - $params['vmfgs'] = $em->getRepository(VehicleManufacturer::class)->findAll(); - $params['vmakes'] = $em->getRepository(Vehicle::class)->findAll(); - - $template = $params['template']; - - // response - return $this->render($template, $params); - } - - public function oneStepEditSubmit(Request $req, JobOrderHandlerInterface $jo_handler, $id) - { - $this->denyAccessUnlessGranted('jo_onestep.edit', null, 'No access.'); - - $error_array = []; - $error_array = $jo_handler->processOneStepJobOrder($req, $id); - - // check if any errors were found - if (!empty($error_array)) { - // return validation failure response - return $this->json([ - 'success' => false, - 'errors' => $error_array - ], 422); - } - - - // return successful response - return $this->json([ - 'success' => 'Changes have been saved!' - ]); - } - /** * @ParamConverter("jo", class="App\Entity\JobOrder") */ @@ -978,99 +886,12 @@ class JobOrderController extends Controller $params['jo'] = $jo; $params['rider'] = $rider; $params['rider_pos'] = $rider_tracker->getRiderLocation($rider->getID()); - $params['service_type'] = CMBServiceType::getName($jo->getServiceType()); + $params['service_type'] = ServiceType::getName($jo->getServiceType()); $params['map_js_file'] = $gis_manager->getJSInitFile(); return $this->render('job-order/tracker.html.twig', $params); } - /** - * @Menu(selected="jo_walkin_form") - */ - public function walkInForm(EntityManagerInterface $em, JobOrderHandlerInterface $jo_handler) - { - $this->denyAccessUnlessGranted('jo_walkin.form', null, 'No access.'); - - $params = $jo_handler->initializeWalkinForm(); - $params['submit_url'] = $this->generateUrl('jo_walkin_submit'); - $params['return_url'] = $this->generateUrl('jo_walkin_form'); - $params['vmfgs'] = $em->getRepository(VehicleManufacturer::class)->findAll(); - $params['vmakes'] = $em->getRepository(Vehicle::class)->findAll(); - $params['hubs'] = $em->getRepository(Hub::class)->findAll(); - - $template = $params['template']; - - // response - return $this->render($template, $params); - } - - public function walkInSubmit(Request $req, JobOrderHandlerInterface $jo_handler) - { - $this->denyAccessUnlessGranted('jo_walkin.form', null, 'No access.'); - - // initialize error list - $error_array = []; - $id = -1; - $error_array = $jo_handler->processWalkinJobOrder($req, $id); - - // check if any errors were found - if (!empty($error_array)) { - // return validation failure response - return $this->json([ - 'success' => false, - 'errors' => $error_array - ], 422); - } - - // return successful response - return $this->json([ - 'success' => 'Changes have been saved!' - ]); - } - - /** - * @Menu(selected="jo_walkin_edit_form") - */ - public function walkInEditForm($id, EntityManagerInterface $em, JobOrderHandlerInterface $jo_handler) - { - $this->denyAccessUnlessGranted('jo_walkin.edit', null, 'No access.'); - - $params = $jo_handler->initializeWalkinEditForm($id); - $params['submit_url'] = $this->generateUrl('jo_walkin_edit_submit', ['id' => $id]); - $params['return_url'] = $this->generateUrl('jo_open'); - $params['vmfgs'] = $em->getRepository(VehicleManufacturer::class)->findAll(); - $params['vmakes'] = $em->getRepository(Vehicle::class)->findAll(); - $params['hubs'] = $em->getRepository(Hub::class)->findAll(); - - $template = $params['template']; - - // response - return $this->render($template, $params); - } - - public function walkInEditSubmit(Request $req, JobOrderHandlerInterface $jo_handler, $id) - { - $this->denyAccessUnlessGranted('jo_walkin.edit', null, 'No access.'); - - $error_array = []; - $error_array = $jo_handler->processWalkinJobOrder($req, $id); - - // check if any errors were found - if (!empty($error_array)) { - // return validation failure response - return $this->json([ - 'success' => false, - 'errors' => $error_array - ], 422); - } - - - // return successful response - return $this->json([ - 'success' => 'Changes have been saved!' - ]); - } - /** * @Menu(selected="jo_hub_view") */ diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 971f6903..6785ab0e 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -1517,157 +1517,6 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface } - // CMB code - public function processOneStepJobOrder(Request $req, $id) - { - // initialize error list - $error_array = []; - - $em = $this->em; - - $jo = $em->getRepository(JobOrder::class)->find($id); - if (empty($jo)) - { - // new job order - $jo = new JobOrder(); - } - - // 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.'; - } - - // check if customer vehicle is set - if (empty($req->request->get('customer_vehicle'))) { - $error_array['customer_vehicle'] = 'No vehicle selected.'; - } else { - // get customer vehicle - $cust_vehicle = $em->getRepository(CustomerVehicle::class)->find($req->request->get('customer_vehicle')); - - if (empty($cust_vehicle)) { - $error_array['customer_vehicle'] = 'Invalid vehicle specified.'; - } - } - - // check if hub AND rider is selected - if ((empty($req->request->get('hub_id'))) && - (empty($req->request->get('rider_id')))) { - $error_array['hub'] = 'No hub selected.'; - } else { - if (empty($req->request->get('rider_id'))) { - $error_array['rider'] = 'No rider selected.'; - } else { - // get hub - $hub = $em->getRepository(Hub::class)->find($req->request->get('hub_id')); - - if (empty($hub)) { - $error_array['hub'] = 'Invalid hub specified.'; - } else { - // get rider - $rider = $em->getRepository(Rider::class)->find($req->request->get('rider_id')); - - if (empty($rider)) { - $error_array['rider'] = 'Invalid rider specified.'; - } - } - } - } - - if (empty($error_array)) - { - // get current user - $user = $this->security->getUser(); - - // coordinates - $point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); - - $stype = $req->request->get('service_type'); - - // set and save values - $jo->setDateSchedule(DateTime::createFromFormat("d M Y h:i A", $req->request->get('date_schedule_date') . " " . $req->request->get('date_schedule_time'))) - ->setCoordinates($point) - ->setAdvanceOrder($req->request->get('flag_advance') ?? false) - ->setServiceType($stype) - ->setWarrantyClass($req->request->get('warranty_class')) - ->setCustomer($cust_vehicle->getCustomer()) - ->setCustomerVehicle($cust_vehicle) - ->setSource($req->request->get('source')) - ->setStatus(JOStatus::ASSIGNED) - ->setDeliveryInstructions($req->request->get('delivery_instructions')) - ->setTier1Notes($req->request->get('tier1_notes')) - ->setTier2Notes($req->request->get('tier2_notes')) - ->setDeliveryAddress($req->request->get('delivery_address')) - ->setORName($req->request->get('or_name')) - ->setPromoDetail($req->request->get('promo_detail')) - ->setModeOfPayment($req->request->get('mode_of_payment')) - ->setLandmark($req->request->get('landmark')) - ->setHub($hub) - ->setRider($rider); - - // check if user is null, meaning call to create came from API - if ($user != null) - { - $jo->setCreatedBy($user); - } - - // check if reference JO is set and validate - if (!empty($req->request->get('ref_jo'))) { - // get reference JO - $ref_jo = $em->getRepository(JobOrder::class)->find($req->request->get('ref_jo')); - - if (empty($ref_jo)) { - $error_array['ref_jo'] = 'Invalid reference job order specified.'; - } else { - $jo->setReferenceJO($ref_jo); - } - } - - // call service to generate job order and invoice - $invoice_items = $req->request->get('invoice_items', []); - $promo_id = $req->request->get('invoice_promo'); - $invoice_change = $req->request->get('invoice_change', 0); - - // check if invoice changed - if ($invoice_change) - { - $this->ic->generateInvoiceCriteria($jo, $promo_id, $invoice_items, $error_array); - } - - // validate - $errors = $this->validator->validate($jo); - - // add errors to list - foreach ($errors as $error) { - $error_array[$error->getPropertyPath()] = $error->getMessage(); - } - - // check if errors are found - if (empty($error_array)) - { - // validated, no error. save the job order - $em->persist($jo); - - // the event - $event = new JOEvent(); - $event->setDateHappen(new DateTime()) - ->setTypeID(JOEventType::CREATE) - ->setJobOrder($jo); - - if ($user != null) - { - $event->setUser($user); - } - - $em->persist($event); - $em->flush(); - } - } - - return $error_array; - - } - - // initialize incoming job order form public function initializeIncomingForm() { @@ -1684,83 +1533,6 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface return $params; } - // CMB code - public function initializeOneStepForm() - { - $params['obj'] = new JobOrder(); - $params['mode'] = 'onestep'; - - $this->fillDropdownParameters($params); - $this->fillFormTags($params); - - // get template to display - $params['template'] = $this->getTwigTemplate('jo_onestep'); - - // return params - return $params; - } - - // CMB code - public function initializeOneStepEditForm($id, $map_tools) - { - $em = $this->em; - $obj = $em->getRepository(JobOrder::class)->find($id); - - $params['obj'] = $obj; - $params['mode'] = 'onestep-edit'; - $params['cvid'] = $obj->getCustomerVehicle()->getID(); - $params['vid'] = $obj->getCustomerVehicle()->getVehicle()->getID(); - - $this->fillDropdownParameters($params); - $this->fillFormTags($params); - - // get the hubs - // TODO: move this snippet to a function - $hubs = $map_tools->getClosestHubs($obj->getCoordinates(), 50, date("H:i:s")); - - $params['hubs'] = []; - - // format duration and distance into friendly time - foreach ($hubs as $hub) { - // duration - $seconds = $hub['duration']; - - if (!empty($seconds) && $seconds > 0) { - $hours = floor($seconds / 3600); - $minutes = ceil(($seconds / 60) % 60); - - $hub['duration'] = ($hours > 0 ? number_format($hours) . " hr" . ($hours > 1 ? "s" : '') . ($minutes > 0 ? ", " : '') : '') . ($minutes > 0 ? number_format($minutes) . " min" . ($minutes > 1 ? "s" : '') : ''); - } else { - $hub['duration'] = false; - } - - // distance - $meters = $hub['distance']; - - if (!empty($meters) && $meters > 0) { - $hub['distance'] = round($meters / 1000) . " km"; - } else { - $hub['distance'] = false; - } - - // counters - $hub['rider_count'] = count($hub['hub']->getAvailableRiders()); - $hub['jo_count'] = count($hub['hub']->getForAssignmentJobOrders()); - - // check for rejection - $hub['flag_rejected'] = false; - $hub_id = $hub['hub']->getID(); - - $params['hubs'][] = $hub; - } - - - // get template to display - $params['template'] = $this->getTwigTemplate('jo_onestep_edit_form'); - - return $params; - } - // initialize open edit job order form public function initializeOpenEditForm($id) { @@ -2916,17 +2688,6 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['ftags']['invoice_edit'] = true; $params['ftags']['preset_vehicle'] = true; break; - case 'onestep': - $params['ftags']['vehicle_dropdown'] = true; - $params['ftags']['set_map_coordinate'] = false; - $params['ftags']['invoice_edit'] = true; - $params['ftags']['ticket_table'] = false; - $params['ftags']['cancel_button'] = false; - break; - case 'onestep-edit': - $params['ftags']['invoice_edit'] = true; - $params['ftags']['preset_vehicle'] = true; - break; } } diff --git a/src/Service/JobOrderHandlerInterface.php b/src/Service/JobOrderHandlerInterface.php index cff06242..77aa7cf0 100644 --- a/src/Service/JobOrderHandlerInterface.php +++ b/src/Service/JobOrderHandlerInterface.php @@ -25,9 +25,6 @@ interface JobOrderHandlerInterface // generate job order public function generateJobOrder(Request $req, int $id); - // process one step job order - public function processOneStepJobOrder(Request $req, int $id); - // dispatch job order public function dispatchJobOrder(Request $req, int $id, MQTTClient $mclient); @@ -82,12 +79,6 @@ interface JobOrderHandlerInterface // initialize rider form public function initializeRiderForm(int $id); - // initialize one step form - public function initializeOneStepForm(); - - // initialize one step edit form - public function initializeOneStepEditForm(int $id, MapTools $map_tools); - // generate pdf form for job order public function generatePDFForm(Request $req, int $id, string $proj_path);