<?php
namespace App\Controller;
use App\Entity\Livraisons;
use App\Form\Typeabonnement;
use App\Form\LivraisonsType;
use App\Repository\LivraisonsRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use App\Service\InfobipService;
class HomeController extends AbstractController
{
private $infobipService;
public function __construct(InfobipService $infobipService)
{
$this->infobipService = $infobipService;
}
#[Route('/send-whatsapp', name: 'send_whatsapp')]
public function sendWhatsAppMessage(): Response
{
$to = '+221774271878'; // Remplace par le numéro du destinataire
$message = 'Hello, this is a test message from Infobip API!';
$response = $this->infobipService->sendMessage($to, $message);
return new Response('Message sent! Response: ' . $response->getContent());
}
/**
* @Route("/", name="home")
*/
public function index(Request $request): Response
{
$livraison = new Livraisons();
$form = $this->createForm(LivraisonsType::class, $livraison);
$form->handleRequest($request);
$now = new \DateTime();
$liv_hours = $now->modify('+2 hours'); // Adds 2 hours
return $this->render('home/index.html.twig', [
'form' => $form->createView(),
'liv_hours' => $liv_hours,
]);
}
#[Route('/cgi', name: 'app_cgi_index', methods: ['GET'])]
public function cgi(): Response
{
return $this->render('home/cgi.html.twig');
}
#[Route('/aboutus', name: 'app_aboutus_index', methods: ['GET'])]
public function aboutus(): Response
{
return $this->render('home/aboutus.html.twig');
}
#[Route('/tarification', name: 'app_tarification_index', methods: ['GET'])]
public function tarification(): Response
{
return $this->render('home/tarification.html.twig');
}
#[Route('/services', name: 'app_services_index', methods: ['GET'])]
public function services(): Response
{
return $this->render('home/services.html.twig');
}
#[Route('/programmefidelite', name: 'app_programmefidelite_index', methods: ['GET'])]
public function programmefidelite(): Response
{
return $this->render('home/programmefidelite.html.twig');
}
#[Route('/dashboardold', name: 'app_dashboard_indexold', methods: ['GET'])]
public function dashboardold(LivraisonsRepository $livraisonRepository): Response
{
// KPIs
$totalLivraisons = $livraisonRepository->count([]);
// $livraisonsEnCours = $livraisonRepository->count(['statut' => 'en cours']);
// $livraisonsTerminees = $livraisonRepository->count(['statut' => 'livrée']);
// $revenuTotal = $livraisonRepository->getTotalRevenue(); // Méthode personnalisée
return $this->render('dashboard/index.html.twig', [
'totalLivraisons' => $totalLivraisons,
'livraisonsEnCours' => 0, //$livraisonsEnCours,
'livraisonsTerminees' => 0, //$livraisonsTerminees,
'revenuTotal' => 0, //$revenuTotal,
]);
}
#[Route('/dashboard', name: 'app_dashboard_index')]
public function dashboard(LivraisonsRepository $livraisonRepository): Response
{
$livraisonsJour = $livraisonRepository->findToday();
$livraisonsSemaine = $livraisonRepository->findThisWeek();
$livraisonsMois = $livraisonRepository->findThisMonth();
$livraisonsencours = $livraisonRepository->findEnAttente();
$totalLivraisons = $livraisonRepository->count([]);
$nombrelivraisonsparzone = $livraisonRepository->getNombreLivraisonsParZone();
return $this->render('dashboard/index.html.twig', [
'totalLivraisons' => $totalLivraisons,
'livraisonsJour' => $livraisonsJour,
'livraisonsSemaine' => $livraisonsSemaine,
'livraisonsMois' => $livraisonsMois,
'livraisonsencours' => $livraisonsencours,
'nombrelivraisonsparzone' => $nombrelivraisonsparzone,
'caJour' => $livraisonRepository->getChiffreAffaireGroupedBy('day'),
'caSemaine' => $livraisonRepository->getChiffreAffaireGroupedBy('week'),
'caMois' => $livraisonRepository->getChiffreAffaireGroupedBy('month'),
]);
}
}