src/Controller/ApiController.php line 218

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Cab;
  4. use App\Entity\Pbareme;
  5. use App\Entity\PNiveau;
  6. use App\Entity\PDossier;
  7. use App\Entity\UsModule;
  8. use App\Entity\LContract;
  9. use App\Entity\Tbulletin;
  10. use App\Entity\UsOperation;
  11. use App\Entity\UsSousModule;
  12. use App\Entity\PdureeContract;
  13. use App\Entity\PnatureContract;
  14. use App\Entity\NatureSalarieCab;
  15. use App\Entity\PNaturesalarieCab;
  16. use App\Entity\NatureSalarieContrat;
  17. use Doctrine\Persistence\ManagerRegistry;
  18. use Symfony\Component\HttpFoundation\Response;
  19. use Symfony\Component\Routing\Annotation\Route;
  20. use Symfony\Component\HttpFoundation\JsonResponse;
  21. use Proxies\__CG__\App\Entity\Pbareme as EntityPbareme;
  22. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  23. #[Route('/api')]
  24. class ApiController extends AbstractController
  25. {
  26.     private $em;
  27.     public function __construct(ManagerRegistry $doctrine)
  28.     {
  29.         $this->em $doctrine->getManager();
  30.         
  31.     }
  32.     #[Route('/api_getnaturesalarietype/{natureCab}'name'api_getnaturesalarietype'options: ['expose' => true])]
  33.     public function api_getnaturesalarietype(PNaturesalarieCab $natureCab)
  34.     {        
  35.         $types self::dropdown($natureCab->getDets(),'nature type');
  36.         $contrats self::dropdown($natureCab->getNature(),'nature contrat');
  37.         $niveaux $this->em->getRepository(PNiveau::class)->findAllNiveauByNatureCab($natureCab);
  38.         $niveaux self::dropdown($niveaux,'profile');
  39.         return new JsonResponse(['types' => $types'contrats' => $contrats'niveaux' => $niveaux]);
  40.     }
  41.     #[Route('/api_getbareme/{niveau}/{natureCab}'name'api_getbareme'options: ['expose' => true])]
  42.     public function api_getbaremeprofile(PNiveau $niveauPNaturesalarieCab $natureCab)
  43.     {        
  44.         $baremes $this->em->getRepository(PBareme::class)->findBy(['natureCab' => $natureCab'niveau' => $niveau]);
  45.         $baremes self::dropdownBareme($baremes,'bareme');
  46.         return new JsonResponse($baremes);
  47.     }
  48.   
  49.     #[Route('/api_getdureecontrat/{natureContrat}'name'api_getdureecontrat'options: ['expose' => true])]
  50.     public function api_getdureecontrat(PnatureContract $natureContrat)
  51.     {        
  52.         $dureeContrats self::dropdown_dure($natureContrat->getPdureeContracts(),'dureĆ© contrat');
  53.         return new JsonResponse($dureeContrats);
  54.     }
  55.     #[Route('/api_getbareme_contract/{natureContrat}'name'api_getbareme_contract'options: ['expose' => true])]
  56.     public function api_getbareme_contract($natureContrat)
  57.     {        
  58.         // $baremes = self::dropdown_bareme($this->em->getRepository(Pbareme::class)->findBy(['designation' => $natureContrat,'Profil' => $profil]),'Choix Bareme');
  59.         // $baremes = self::dropdown_bareme($this->em->getRepository(Pbareme::class)->findBy(['designation' => $natureContrat,'Profil' => $profil]),'Choix Bareme');
  60.         $queryBuilder $this->em->createQueryBuilder()
  61.         ->select('p.id,p.netapayer,p.bareme, p.Profil as profil')
  62.         ->from(Pbareme::class, 'p')
  63.         ->innerJoin('p.naturecontrat''n')
  64.         ->Where('n.naturecontrat = :naturecontract')
  65.         ->andWhere('p.active = 1')
  66.         ->andWhere('p.classe = :classe or p.classe IS NULL')
  67.         ->setParameter('naturecontract'$natureContrat)
  68.         ->setParameter('classe'"Classe 1");
  69.         $results $queryBuilder->getQuery()->getResult();
  70.         $baremes self::dropdown_bareme($results,'Choix Bareme');
  71.         
  72.         return new JsonResponse($baremes);
  73.     }
  74.     static function dropdown_dure($objects,$choix)
  75.     {
  76.         $data "<option selected value=''>Choix ".$choix."</option>";
  77.         foreach ($objects as $object) {
  78.             $data .="<option value=".$object->getId()." >".$object->getNbrMois()." mois .</option>";
  79.          }
  80.          return $data;
  81.     }
  82.     static function dropdown($objects,$choix)
  83.     {
  84.         $data "<option selected value=''>Choix ".$choix."</option>";
  85.         foreach ($objects as $object) {
  86.             $data .="<option value=".$object->getId()." >".$object->getDesignation()."</option>";
  87.          }
  88.          return $data;
  89.     }
  90.     static function dropdownBareme($objects,$choix)
  91.     {
  92.         $data "<option selected value=''>Choix ".$choix."</option>";
  93.         foreach ($objects as $object) {
  94.             $data .="<option data-paye=".$object->getNetAPayer()." value=".$object->getId().">".$object->getBareme()."</option>";
  95.          
  96.         }
  97.          return $data;
  98.     }
  99.     static function dropdown_bareme($objects,$choix)
  100.     {
  101.         $data "<option data-attr=''s selected value=''>".$choix."</option>";
  102.         foreach ($objects as $object) {
  103.             $data .="<option data-attr=".$object['netapayer']." value=".$object['id'].">".$object['bareme']." (" .$object['profil']. ")</option>";
  104.          
  105.         }
  106.          return $data;
  107.     }
  108.     public function check($user$link$em$request) {
  109.         if($request->getSession()->get("modules") == null or $request->getSession()->get("dossier") == null){
  110.             return $this->redirectToRoute('app_site');            
  111.         }
  112.         if(in_array('ROLE_ADMIN'$user->getRoles())) {
  113.             $operations $em->getRepository(UsOperation::class)->findAllBySousModule($link);
  114.             return $operations;
  115.         }
  116.         $dossier $request->getSession()->get('dossier');
  117.         $operations $em->getRepository(UsOperation::class)->getOperationByLinkSousModule($user$link$dossier);
  118.         return $operations;
  119.     }
  120.     public function getBordereauPrixTotal($borederau) {
  121.         $montant 0;
  122.         if($borederau->getType() == 'regularisation') {
  123.             foreach ($borederau->getActiveBulletins() as $key => $bulletin) {
  124.                 $montant += $this->em->getRepository(Tbulletin::class)->getNetRegularisation($bulletin->getId());
  125.             }
  126.         } else {
  127.             foreach ($borederau->getActiveBulletins() as $key => $bulletin) {
  128.                 $montant += $this->em->getRepository(Tbulletin::class)->getNetAPayeByDevise($bulletin->getId());
  129.             }
  130.         }
  131.         return round($montant2);
  132.     }
  133.     #[Route('/cab'name'api_cab'options: ['expose' => true])]
  134.     public function api_cab()
  135.     {        
  136.         // dd(ini_get('max_execution_time'));
  137.         $data = [];
  138.         $cabs $this->em->getRepository(Cab::class)->findBy(['flag1' => 0]);
  139.         foreach ($cabs as $key => $cab) {
  140.             $dets = [];
  141.             foreach ($cab->getDets() as $key => $det) {
  142.                 $personnels = [];
  143.                 
  144.                 foreach ($det->getDets() as $key => $detTechnique) {
  145.                     array_push($personnels, [
  146.                         'quantite' => $detTechnique->getQuantite(),
  147.                         'prixUnitaire' => $detTechnique->getPrixUnitaire(),
  148.                         'article' => $detTechnique->getArticle(),
  149.                         'swift' => $detTechnique->getSwift(),
  150.                         'banque' => $detTechnique->getBanque(),
  151.                         'adresse' => $detTechnique->getAdresse(),
  152.                         'observation' => $detTechnique->getObservation() ?? '',
  153.                     ]);
  154.                 }
  155.                 array_push($dets, [
  156.                     'rassembleurId' => $det->getRassembleurId(),
  157.                     'descriptionRassembleur' => $det->getDescriptionRassembleur(),
  158.                     'montantInitialRassembleur' => $det->getMontantInitialRassembleur(),
  159.                     'montantInitialRassembleurMad' => $det->getMontantMad(),
  160.                     'quantiteRassembleur' => $det->getQuantiteRassembleur(),
  161.                     'compteComptable' => $det->getCompteComptable(),
  162.                     'sens' => $det->getSens(),
  163.                     'details' => $personnels
  164.                 ]);
  165.             }
  166.             array_push($data, [
  167.                 'id' => $cab->getId(),
  168.                 'naturePieceId' => $cab->getNaturePiece()->getId(),
  169.                 'typePiece' => $cab->getTypePiece(),
  170.                 'dateOperation' => date_format($cab->getDateOperation(), 'Y-m-d H:i:s'),
  171.                 'autreInformation' => $cab->getAutreInformation(),
  172.                 'typePaiement' => $cab->getTypePaiement(),
  173.                 'idSite' => $cab->getIdSite(),
  174.                 'descriptionSite' => $cab->getDescriptionSite(),
  175.                 'montantInitial' => $cab->getMontantInitial(),
  176.                 'descriptionPiece' => $cab->getDescriptionPiece(),
  177.                 'idTierPiece' => $cab->getIdTierPiece(),
  178.                 'devise' => $cab->getDevise(),
  179.                 'designiationPiece' => $cab->getDesigniationPiece(),
  180.                 'uniqueId' => $cab->getUniqueId(),
  181.                 'details' => $dets
  182.             ]);
  183.         }
  184.         
  185.         // dd($data[0]);
  186.         return new JsonResponse($data);
  187.     }
  188.     #[Route('/cab/{cab}'name'api_cab_flag'options: ['expose' => true])]
  189.     public function api_cab_flag(Cab $cab)
  190.     {
  191.         $cab->setFlag1(1);
  192.         $this->em->flush();
  193.         return new Response('ok');
  194.     }
  195. }