<?php
namespace App\Controller;
use App\Entity\Products;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
class StatController extends AbstractController
{
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
/**
* @Route("/stat", name="manage_stat")
*/
public function index(Request $request): Response
{
$this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
$pointsOfSale =null;
$debut = $request->get("debut");
$fin = $request->get("fin");
if($debut != null && $fin != null){
$dateDebut = \DateTime::createFromFormat('Y-m-d\TH:i', $debut);
$dateFin = \DateTime::createFromFormat('Y-m-d\TH:i', $fin);
}else{
$dateNow = new \DateTime();
$anneeUsed = $dateNow;
$annee= $anneeUsed->format("Y");
$mois= $anneeUsed->format("m");
$dateDebutText ="$annee-$mois-01 00:00:00";
$dateDebut = \DateTime::createFromFormat('Y-m-d H:i:s', $dateDebutText);
$dateFin = \DateTime::createFromFormat('Y-m-d H:i:s', $dateDebutText)->modify('+1 month');
}
$allPointOfSales = $this->em->getRepository('App\Entity\PointsOfSale')->findAll();
$listIdPointOfSale =[];
foreach($allPointOfSales as $pointOfSale){
$listIdPointOfSale[]= $pointOfSale->getIdCashmag();
}
//\DateTime::createFromFormat('Y-m-d H:i:s', $dateDebutText)->modify('+1 month')->modify('-1 seconds');
$allPointOfSalesCA = $this->em->getRepository('App\Entity\Tickets')->totalCAByPointOfSaleAndDate($listIdPointOfSale,$dateDebut->format('Y-m-d H:i:s') ,$dateFin->format('Y-m-d H:i:s'));
$totalCaDeLaPeriode = 0;
$pointDeVenteName = [];
$ArrayCA = [];
$nbrVente = [];
foreach($allPointOfSalesCA as $ca){
$pointDeVenteName[] = $ca["name"];
$ArrayCA[] = $ca["ca"];
$nbrVente[] = $ca["number"];
$totalCaDeLaPeriode = $totalCaDeLaPeriode + (float)$ca['ca'];
}
return $this->render('default/stat.html.twig', [
'allPointOfSales' => $allPointOfSales,
'pointsOfSale' => $pointsOfSale,
'allPointOfSalesCA' => $allPointOfSalesCA,
'dateDebut'=> $dateDebut->getTimestamp(),
'dateFin'=> $dateFin->getTimestamp(),
'totalCaDeLaPeriode' => $totalCaDeLaPeriode,
'pointDeVenteName'=> $pointDeVenteName,
'ArrayCA'=> $ArrayCA,
'nbrVente'=> $nbrVente
]);
}
}