<?php
namespace App\Controller\Api;
use App\Entity\PFcy;
use App\Entity\PDossier;
use App\Entity\Pemploye;
use App\Entity\LContract;
use App\Entity\PnatureContract;
use App\Entity\TypRemuneration;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
#[Route('/api/assiduite')]
class AssiduiteController extends AbstractController
{
private $em;
public function __construct(ManagerRegistry $doctrine)
{
$this->em = $doctrine->getManager();
}
#[Route('/employe/{id}', name: 'api_assiduite_employe')]
public function employe($id)
{
$employe=$this->em->createQueryBuilder()
->select('employe.id,employe.code,employe.nom,employe.prenom,employe.cin,employe.active')
->from(Pemploye::class, 'employe')
->where($id = 0 ? '1 = 1' : 'employe.id > '.$id)
->getQuery()
->getResult();
return new JsonResponse($employe);
}
#[Route('/site/{id}', name: 'api_assiduite_site')]
public function site($id)
{
$dossier=$this->em->createQueryBuilder()
->select('dossier.id,dossier.code,dossier.designation,dossier.abreviation,dossier.active,dossier.groupement,das.id as das_id')
->from(PDossier::class, 'dossier')
->innerJoin('dossier.fcy', 'das')
->where($id = 0 ? '1 = 1' : 'dossier.id > '.$id)
->getQuery()
->getResult();
return new JsonResponse($dossier);
}
#[Route('/das/{id}', name: 'api_assiduite_das')]
public function das($id)
{
$das=$this->em->createQueryBuilder()
->select('das.id,das.fcy0 as abreviation,das.fcy0Libelle as designation')
->from(PFcy::class, 'das')
->where($id = 0 ? '1 = 1' : 'das.id > '.$id)
->getQuery()
->getResult();
return new JsonResponse($das);
}
#[Route('/contrat/{id}', name: 'api_assiduite_contrat')]
public function contrat($id)
{
$contract=$this->em->createQueryBuilder()
->select('contract.id,contract.code, fnct.Designation as fonction,employe.id as employe_id,contract.active,dos.id as site_id,nature_contrat.id as nature_contrat_id ')
->from(LContract::class, 'contract')
->innerJoin('contract.employe', 'employe')
->innerJoin('contract.pnatureContract', 'nature_contrat')
->leftJoin('contract.dossier', 'dos')
->leftJoin('contract.fonction', 'fnct')
->where($id = 0 ? '1 = 1' : 'contract.id > '.$id)
->OrderBy('contract.id','ASC')
->getQuery()
->getResult();
// dd($contract);
return new JsonResponse($contract);
}
#[Route('/nature_contrat/{id}', name: 'api_assiduite_nature_contrat')]
public function nature_contrat($id)
{
$natureContract=$this->em->createQueryBuilder()
->select('nature_contrat.id,nature_contrat.designation,nature_contrat.Abreviation,nature_contrat.active,type.id as type_remuneration_id')
->from(PnatureContract::class, 'nature_contrat')
->innerJoin('nature_contrat.type', 'type')
->where($id = 0 ? '1 = 1' : 'nature_contrat.id > '.$id)
->OrderBy('nature_contrat.id','ASC')
->getQuery()
->getResult();
return new JsonResponse($natureContract);
}
#[Route('/type_remuneration/{id}', name: 'api_assiduite_type_remuneration')]
public function type_remuneration($id)
{
$type=$this->em->createQueryBuilder()
->select('type.id,type.designation,type.abreviation')
->from(TypRemuneration::class, 'type')
->where($id = 0 ? '1 = 1' : 'type.id > '.$id)
->OrderBy('type.id','ASC')
->getQuery()
->getResult();
return new JsonResponse($type);
}
}