<?php
namespace App\Controller\Admin;
use App\Entity\DeliveryStatus;
use App\Repository\RibRepository;
use App\Repository\CustomerRepository;
use App\Repository\DeliveryRepository;
use App\Repository\DocumentRepository;
use App\Repository\DeliveryManRepository;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use App\Repository\Variables\DelivererDocumentStatusRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
/**
* @Route("/admin", name="admin_")
* @Security("is_granted('ROLE_ADMIN')")
*/
class DashboardController extends AbstractController
{
/**
* @Route("/dashboard", name="index")
*
* @return Response
*/
public function index(DeliveryManRepository $deliveryManRepository, CustomerRepository $customerRepository, DeliveryRepository $deliveryRepository): Response
{
$user = $this->getUser();
$deliveries = $deliveryRepository->getCountTodaysDeliveries(DeliveryStatus::IN_PROGRESS);
$totalTTC = $deliveryRepository->getCountTodaysDeliveriesTotalTTC(DeliveryStatus::DELIVERED);
$customers = $customerRepository->getAllCount();
$deliveryMen = $deliveryManRepository->getCountByIsActive(true);
return $this->render('admin/dashboard.html.twig', [
'user' => $user,
'deliveries' => $deliveries,
'totalTTC' => $totalTTC,
'customers' => $customers,
'deliveryMen' => $deliveryMen,
]);
}
/**
* @Route("/checkDocuments", name="check_documents")
*
* @return Response
*/
public function checkDocuments(RibRepository $ribRepository, DelivererDocumentStatusRepository $delivererDocumentStatusRepository, DocumentRepository $documentRepository): Response
{
$documentList = array();
$ribList = array();
$documentsStatus = $delivererDocumentStatusRepository->findAll();
foreach ($documentsStatus as $documentStatus)
{
$documentList[$documentStatus->getId()] = array();
$ribList[$documentStatus->getId()] = array();
}
$documents = $documentRepository->getOrderedByDocumentStatus();
foreach ($documents as $document)
{
array_push($documentList[$document->getDocumentStatus()->getId()],$document);
}
$ribs = $ribRepository->getOrderedByRibStatus();
foreach ($ribs as $rib)
{
if ($rib->getRibStatus()) {
array_push($ribList[$rib->getRibStatus()->getId()], $rib);
}
}
return $this->render('admin/checkDocuments.html.twig', [
'documentsStatus' => $documentsStatus,
'documentList' => $documentList,
'ribList' => $ribList,
]);
}
}