diff --git a/src/Controller/HubController.php b/src/Controller/HubController.php index 5c8adb04..edc6e599 100644 --- a/src/Controller/HubController.php +++ b/src/Controller/HubController.php @@ -152,8 +152,9 @@ class HubController extends Controller ->setTimeClose($time_close) ->setCoordinates($point) ->setBranchCode($req->request->get('branch_code', '')) - ->setStatusOpen($req->request->get('status_open') ?? false) - ->setRiderSlots($req->request->get('rider_slots', 0)); + ->setStatusOpen($req->request->get('status_open', false)) + ->setRiderSlots($req->request->get('rider_slots', 0)) + ->setHubViewFlag($req->request->get('flag_hub_view', false)); } protected function setQueryFilters($datatable, QueryBuilder $query) diff --git a/src/Entity/Hub.php b/src/Entity/Hub.php index 9edcb88a..0b1769b2 100644 --- a/src/Entity/Hub.php +++ b/src/Entity/Hub.php @@ -62,6 +62,12 @@ class Hub */ protected $rider_slots; + // flag to see if hub will be displayed in Hub View + /** + * @ORM\Column(type="boolean") + */ + protected $flag_hub_view; + public function __construct() { $this->time_open = new DateTime(); @@ -69,6 +75,7 @@ class Hub $this->riders = new ArrayCollection(); $this->outlets = new ArrayCollection(); $this->status_open = true; + $this->flag_hub_view = false; } public function getRiders() @@ -167,4 +174,16 @@ class Hub return $this->rider_slots; } + public function setHubViewFlag($flag_hub_view = true) + { + $this->flag_hub_view = $flag_hub_view; + return $this; + } + + public function isHubView() + { + return $this->flag_hub_view; + } + + } diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index b6971ce1..6a44b954 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -2342,7 +2342,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['riders'] = $this->em->getRepository(Rider::class)->findAll(); // get hubs for dropdown - $params['hubs'] = $this->em->getRepository(Hub::class)->findAll(); + $params['hubs'] = $this->em->getRepository(Hub::class)->findBy(['flag_hub_view' => true]); return $params; } @@ -2575,7 +2575,13 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $rows_route = 'jo_hub_view_rows'; $edit_route = 'jo_hub_view_form'; $unlock_route = ''; - $jo_status = ''; + $jo_status = [ + JOStatus::PENDING, + JOStatus::RIDER_ASSIGN, + JOStatus::ASSIGNED, + JOStatus::IN_PROGRESS, + JOStatus::IN_TRANSIT, + ]; break; default: throw new AccessDeniedHttpException('No access.'); @@ -2724,6 +2730,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->andWhere('h.id = :hub_id') ->setParameter('hub_id', $datatable['query']['hub']); } + else + { + $query->innerJoin('q.hub', 'h') + ->andWhere('h.flag_hub_view = :flag_hub_view') + ->setParameter('flag_hub_view', true); + } $c_date = new DateTime(); $start_curr_date = $c_date->format('Y-m-d') . ' ' . '00:00:00'; @@ -2734,8 +2746,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $query->andWhere('q.date_schedule >= :start_current_date') ->andWhere('q.date_schedule <= :end_current_date') + ->andWhere('q.status IN (:statuses)') ->setParameter('start_current_date', $start_current_date) - ->setParameter('end_current_date', $end_current_date); + ->setParameter('end_current_date', $end_current_date) + ->setParameter('statuses', $status, Connection::PARAM_STR_ARRAY); break; default: $query->where('q.status = :status') diff --git a/templates/hub/form.html.twig b/templates/hub/form.html.twig index b47b546d..d7101260 100644 --- a/templates/hub/form.html.twig +++ b/templates/hub/form.html.twig @@ -132,6 +132,15 @@
+