<?php
// src/Controller/EntrepriseController.php
namespace App\Controller;
use App\Entity\AppUser;
use App\Entity\CodePromo;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\HttpKernel\KernelInterface;
use Spipu\Html2Pdf\Html2Pdf;
/**
* @Route("/{_locale}/affiliation")
*/
class AffiliationController extends AbstractController
{
private $kernel;
public function __construct(KernelInterface $kernel)
{
$this->kernel = $kernel;
}
/**
* @Route("/acceuil", name="affiliation_accueil")
* @return \Symfony\Component\HttpFoundation\Response
*/
public function accueilAction(Request $request)
{
$em = $this->getDoctrine()
->getManager();
$user = $this->getUser();
$codePromo = $em->getRepository(CodePromo::class)
->findOneBy(
array(
'user' => $user
)
);
$intervalleDeDate = $this->intervalleSemaine(date('Y-m-d'));
$dateDebut = new \DateTime($intervalleDeDate['debut']);
$dateDebut->setTime(0, 0);
$dateFin = new \DateTime($intervalleDeDate['fin']);
$dateFin->setTime(23, 59);
$intervalleMois = $this->intervalleMois(date('Y-m-d'));
$startMonth = $intervalleMois['debut'];
$endMonth = $intervalleMois['fin'];
$startYear = date('Y-01-01');
$endYear = date('Y-12-31');
return $this->render('affiliation/accueil.html.twig', [
'codePromo' => $codePromo,
'dateDebut' => $dateDebut,
'dateFin' => $dateFin,
'startMonth' => $startMonth,
'endMonth' => $endMonth,
'startYear' => $startYear,
'endYear' => $endYear,
]);
}
function intervalleMois($datestr)
{
date_default_timezone_set (date_default_timezone_get());
$dt = strtotime ($datestr);
return array (
"debut" => date ('Y-m-d', strtotime ('first day of this month', $dt)),
"fin" => date ('Y-m-d', strtotime ('last day of this month', $dt))
);
}
function intervalleSemaine($datestr) {
date_default_timezone_set (date_default_timezone_get());
$dt = strtotime ($datestr);
return array (
"debut" => date ('N', $dt) == 1 ? date ('Y-m-d', $dt) : date ('Y-m-d', strtotime ('last monday', $dt)),
"fin" => date('N', $dt) == 7 ? date ('Y-m-d', $dt) : date ('Y-m-d', strtotime ('next sunday', $dt))
);
}
}