src/Controller/Admin/DashboardController.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\DeliveryStatus;
  4. use App\Repository\RibRepository;
  5. use App\Repository\CustomerRepository;
  6. use App\Repository\DeliveryRepository;
  7. use App\Repository\DocumentRepository;
  8. use App\Repository\DeliveryManRepository;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  12. use App\Repository\Variables\DelivererDocumentStatusRepository;
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. /**
  15. * @Route("/admin", name="admin_")
  16. * @Security("is_granted('ROLE_ADMIN')")
  17. */
  18. class DashboardController extends AbstractController
  19. {
  20. /**
  21. * @Route("/dashboard", name="index")
  22. *
  23. * @return Response
  24. */
  25. public function index(DeliveryManRepository $deliveryManRepository, CustomerRepository $customerRepository, DeliveryRepository $deliveryRepository): Response
  26. {
  27. $user = $this->getUser();
  28. $deliveries = $deliveryRepository->getCountTodaysDeliveries(DeliveryStatus::IN_PROGRESS);
  29. $totalTTC = $deliveryRepository->getCountTodaysDeliveriesTotalTTC(DeliveryStatus::DELIVERED);
  30. $customers = $customerRepository->getAllCount();
  31. $deliveryMen = $deliveryManRepository->getCountByIsActive(true);
  32. return $this->render('admin/dashboard.html.twig', [
  33. 'user' => $user,
  34. 'deliveries' => $deliveries,
  35. 'totalTTC' => $totalTTC,
  36. 'customers' => $customers,
  37. 'deliveryMen' => $deliveryMen,
  38. ]);
  39. }
  40. /**
  41. * @Route("/checkDocuments", name="check_documents")
  42. *
  43. * @return Response
  44. */
  45. public function checkDocuments(RibRepository $ribRepository, DelivererDocumentStatusRepository $delivererDocumentStatusRepository, DocumentRepository $documentRepository): Response
  46. {
  47. $documentList = array();
  48. $ribList = array();
  49. $documentsStatus = $delivererDocumentStatusRepository->findAll();
  50. foreach ($documentsStatus as $documentStatus)
  51. {
  52. $documentList[$documentStatus->getId()] = array();
  53. $ribList[$documentStatus->getId()] = array();
  54. }
  55. $documents = $documentRepository->getOrderedByDocumentStatus();
  56. foreach ($documents as $document)
  57. {
  58. array_push($documentList[$document->getDocumentStatus()->getId()],$document);
  59. }
  60. $ribs = $ribRepository->getOrderedByRibStatus();
  61. foreach ($ribs as $rib)
  62. {
  63. if ($rib->getRibStatus()) {
  64. array_push($ribList[$rib->getRibStatus()->getId()], $rib);
  65. }
  66. }
  67. return $this->render('admin/checkDocuments.html.twig', [
  68. 'documentsStatus' => $documentsStatus,
  69. 'documentList' => $documentList,
  70. 'ribList' => $ribList,
  71. ]);
  72. }
  73. }