diff --git a/config/routes/rider.yaml b/config/routes/rider.yaml index 16a56993..1934a1b1 100644 --- a/config/routes/rider.yaml +++ b/config/routes/rider.yaml @@ -46,3 +46,13 @@ rider_active_jo: path: /riders/{id}/activejo/{jo_id} controller: App\Controller\RiderController::riderActiveJO methods: [GET] + +rider_priority_up_jo: + path: /riders/{id}/priority_up/{jo_id} + controller: App\Controller\RiderController::priorityUpJO + methods: [GET] + +rider_priority_down_jo: + path: /riders/{id}/priority_down/{jo_id} + controller: App\Controller\RiderController::priorityDownJO + methods: [GET] diff --git a/src/Controller/RiderController.php b/src/Controller/RiderController.php index ace84582..184a649d 100644 --- a/src/Controller/RiderController.php +++ b/src/Controller/RiderController.php @@ -534,6 +534,51 @@ class RiderController extends Controller $mclient->sendRiderEvent($jo, $payload); + return $this->redirecttoRoute('rider_update', ['id' => $rider->getID()]); + } + + /** + * @ParamConverter("rider", class="App\Entity\Rider") + * @ParamConverter("jo", class="App\Entity\JobOrder", options={"id": "jo_id"}) + */ + public function priorityUpJO(EntityManagerInterface $em, Rider $rider, JobOrder $jo) + { + error_log("HERE"); + error_log($rider->getID()); + error_log($jo->getID()); + + $jos = $rider->getOpenJobOrders(); + + $old_prio = $jo->getPriority(); + $new_prio = $old_prio - 1; + $jo->setPriority($new_prio); + + foreach ($jos as $rider_jo) + { + // check if it's the same + if ($rider_jo->getID() == $jo->getID()) + continue; + + // if priority is the same as old priority, move it down + if ($new_prio == $rider_jo->getPriority()) + $rider_jo->setPriority($rider_jo->getPriority() + 1); + } + + $em->flush(); + + return $this->redirecttoRoute('rider_update', ['id' => $rider->getID()]); + } + + /** + * @ParamConverter("rider", class="App\Entity\Rider") + * @ParamConverter("jo", class="App\Entity\JobOrder", options={"id": "jo_id"}) + */ + public function priorityDownJO(EntityManagerInterface $em, Rider $rider, JobOrder $jo) + { + error_log("HERE"); + error_log($rider->getID()); + error_log($jo->getID()); + return $this->redirecttoRoute('rider_update', ['id' => $rider->getID()]); } } diff --git a/src/Entity/Rider.php b/src/Entity/Rider.php index 53731475..c588cc77 100644 --- a/src/Entity/Rider.php +++ b/src/Entity/Rider.php @@ -61,6 +61,7 @@ class Rider // job orders that the rider has done /** * @ORM\OneToMany(targetEntity="JobOrder", mappedBy="rider") + * @ORM\OrderBy({"priority" = "ASC"}) */ protected $job_orders; diff --git a/templates/rider/form.html.twig b/templates/rider/form.html.twig index a9b0264c..c1c52708 100644 --- a/templates/rider/form.html.twig +++ b/templates/rider/form.html.twig @@ -180,6 +180,16 @@