<?php
namespace App\Controller;
use App\Entity\Personne;
use App\Entity\User;
use App\Form\CalculCommissionFormType;
use App\Form\UserFormType;
use App\Repository\ArticleRepository;
use App\Repository\AvanceCommissionRepository;
use App\Repository\CategorieCommissionRepository;
use App\Repository\DistributeurRepository;
use App\Repository\PeriodeRepository;
use App\Repository\PersonneRepository;
use App\Repository\PointDeVenteRepository;
use App\Repository\PrimeDistributeurRepository;
use App\Repository\PrimeRepository;
use App\Repository\RapportActiviteRepository;
use App\Repository\RegimeRepository;
use App\Repository\TauxCommissionRepository;
use App\Repository\UserRepository;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Logging\DebugStack;
use Doctrine\DBAL\Query;
use Doctrine\ORM\Cache\QueryCache;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasher;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Uid\Uuid;
class BackendController extends AbstractController
{
public function __construct(
private readonly DistributeurRepository $distributeurRepository,
private readonly ArticleRepository $articleRepository,
private readonly PointDeVenteRepository $pointDeVenteRepository,
private readonly PeriodeRepository $periodeRepository,
)
{
}
#[Route('/', name: 'app_backend')]
public function index(): Response
{
$countDist = count($this->distributeurRepository->findAll());
$countArticle = count($this->articleRepository->findAll());
$countPdv = count($this->pointDeVenteRepository->findAll());
$countPeriode = count($this->periodeRepository->findAll());
$form = $this->createForm(CalculCommissionFormType::class);
return $this->render('index.html.twig',[
'countDist' => $countDist,
'countArticle' => $countArticle,
'countPdv' => $countPdv,
'countPeriode' => $countPeriode,
'form' => $form->createView(),
]);
}
#[Route('/ajax-notification', name: 'app_notification_ajax')]
public function notification(Session $session): Response
{
$key = $session->getFlashBag()->peek('notif');
$notifs = $key;
$response = new JsonResponse($notifs);
$session->getFlashBag()->clear();
return $response;
}
#[Route('/delete-rapport-octobre', name: 'app_delete_rapport_octobre')]
public function deleterapport(
RapportActiviteRepository $repository,
PeriodeRepository $periodeRepository,
EntityManagerInterface $entityManager
): Response
{
$periode = $periodeRepository->findOneBy(['intitule'=>'Octobre 2022']);
$rapportOctobre = $repository->findBy(['period'=>$periode]);
foreach ($rapportOctobre as $item){
$entityManager->remove($item);
}
$entityManager->flush();
return new JsonResponse(['Status'=>'Ok']);
}
/*
#[Route('/add-uuid', name: 'app_test_add_uuid')]
public function adduuid(
ArticleRepository $articleRepository,
AvanceCommissionRepository $avanceCommissionRepository,
CategorieCommissionRepository $categorieCommissionRepository,
DistributeurRepository $distributeurRepository,
PeriodeRepository $periodeRepository,
PointDeVenteRepository $pointDeVenteRepository,
PrimeDistributeurRepository $primeDistributeur,
PrimeRepository $prime,
RegimeRepository $regime,
TauxCommissionRepository $tauxCommission,
UserRepository $userRepository,
EntityManagerInterface $em,
): Response
{
$repositories = [
$articleRepository,
$avanceCommissionRepository,
$categorieCommissionRepository,
$distributeurRepository,
$periodeRepository,
$pointDeVenteRepository,
$primeDistributeur,
$prime,
$regime,
$tauxCommission,
$userRepository
];
//$em->getClassMetadata()
foreach ($repositories as $repository){
$items = $repository->findAll();
foreach ($items as $item){
$metadata = $em->getClassMetadata($item::class);
if($metadata->hasField('updatedAt')){
$item->currentUser = $this->getUser()->getUserIdentifier();
}
//$item->currentUser = $this->getUser()->getUserIdentifier();
if (!$item->getUuid()){
$item->setUuid(Uuid::v1()->toBase58());
}
}
}
$em->flush();
return new JsonResponse(['Status'=>'Ok']);
}
*/
}