Commit e8df084b authored by Florian Joriot's avatar Florian Joriot
Browse files

correction passage en dql du tbl service contrat

parent 57420f60
Loading
Loading
Loading
Loading
Loading
+2 −2
Changes for module/Contrat/src/Controller/ContratController.php: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -175,7 +175,7 @@ class ContratController extends AbstractController
            throw new LogicException('L\'intervenant n\'est pas précisé');
        }

        $volumeHorairesCreation = $this->getServiceTblContrat()->getVolumeContratByUuid($uuid);
        $volumeHorairesCreation = $this->getServiceTblContrat()->getInformationContratByUuid($uuid);
        $contrat = new Contrat();
        $contrat = $this->getProcessusContrat()->creer($contrat, $volumeHorairesCreation);

@@ -263,7 +263,7 @@ class ContratController extends AbstractController
            return new MessengerViewModel;
        }

        $volumeHorairesContrat = $this->getServiceTblContrat()->getVolumeContratByContratId($contrat->getId());
        $volumeHorairesContrat = $this->getServiceTblContrat()->getInformationContratById($contrat->getId());
        $contrat = $this->getProcessusContrat()->creer($contrat, $volumeHorairesContrat);

        if ($this->getRequest()->isPost()) {
+11 −18
Changes for module/Contrat/src/Processus/ContratProcessus.php: 11 added lines, 18 removed lines.
Original line number Diff line number Diff line
@@ -134,32 +134,24 @@ class ContratProcessus extends AbstractProcessus
     *
     * @return Contrat
     */
    public function creer(Contrat $contrat, $volumeHoraire): Contrat
    public function creer(Contrat $contrat, TblContrat $informationContrat): Contrat
    {
        $intervenant = $this->getServiceIntervenant()->get($volumeHoraire['intervenant_id']);
        $contrat->setIntervenant($intervenant);

        $structure = $this->getServiceStructure()->get($volumeHoraire['structure_id']);
        $contrat->setStructure($structure);
        $contrat->setIntervenant($informationContrat->getIntervenant());

        try {
            $dateDebut = $volumeHoraire['date_debut'] ? new \DateTime($volumeHoraire['date_debut']) : null;
        $contrat->setStructure($informationContrat->getStructure());

        $dateDebut = $informationContrat->getDateDebut();

        } catch (\Exception $e) {
            $dateDebut = null;
        }
        $contrat->setDebutValidite($dateDebut);

        try {
            $dateFin = $volumeHoraire['date_fin'] ? new \DateTime($volumeHoraire['date_fin']) : null;
        } catch (\Exception $e) {
            $dateFin = null;
        }
        $dateFin = $informationContrat->getDateFin();

        $contrat->setFinValidite($dateFin);

        $contrat->setTypeContrat($this->getServiceTypeContrat()->get($volumeHoraire['type_contrat_id']));
        $contrat->setNumeroAvenant($volumeHoraire['numero_avenant']);
        $contratParent = $this->getServiceContrat()->get($volumeHoraire['contrat_parent_id']);
        $contrat->setTypeContrat($informationContrat->getTypeContrat());
        $contrat->setNumeroAvenant($informationContrat->getNumeroAvenant());
        $contratParent = $informationContrat->getContratParent();
        $contrat->setContrat($contratParent);

        return $contrat;
@@ -332,6 +324,7 @@ class ContratProcessus extends AbstractProcessus
    }



    /**
     * Requalification d'un contrat en avenant ou d'un avenant en contrat
     *
+40 −49
Changes for module/Contrat/src/Service/TblContratService.php: 40 added lines, 49 removed lines.
Original line number Diff line number Diff line
@@ -2,13 +2,11 @@

namespace Contrat\Service;


use Application\Service\AbstractEntityService;
use Contrat\Entity\Db\TblContrat;
use Intervenant\Entity\Db\Intervenant;
use RuntimeException;


/**
 * Description of TblContratService
 *
@@ -69,27 +67,22 @@ class TblContratService extends AbstractEntityService



    public function getVolumeContratByUuid(string $uuid): ?array
    public function getVolumeTotalCreationContratByUuid(string $uuid): ?array
    {
        $em = $this->getEntityManager();

        $sql = 'SELECT uuid, 
                       contrat_id,
                       numero_avenant,
                       intervenant_id,
                       structure_id,
                       validation_id,
                       total_hetd,
                       type_contrat_id,
                       contrat_parent_id,
                       date_debut,date_fin
                FROM tbl_contrat tblc
        $dql = 'SELECT tblc.totalGlobalHetd, tblc.uuid, i.id AS intervenantId, s.id AS structureId, MIN(tblc.dateDebut) AS dateDebut, MAX(tblc.dateFin) AS dateFin, cp.id AS contratParentId, tc.code AS typeContratCode
        FROM ' . TblContrat::class . ' tblc
        JOIN tblc.typeContrat tc
        JOIN tblc.intervenant i
        LEFT JOIN tblc.structure s
        LEFT JOIN tblc.contratParent cp
        WHERE tblc.uuid = :uuid
        AND tblc.actif = 1
                  AND volume_horaire_index = 0';
        GROUP BY tblc.uuid, i.id, s.id, cp.id, tc.code';


        $query = $em->createQuery($sql)
        $query = $em->createQuery($dql)
            ->setParameter('uuid', $uuid);

        return $query->getOneOrNullResult();
@@ -97,66 +90,64 @@ class TblContratService extends AbstractEntityService



    public function getTotalHetdIntervenant(string $uuid, ?string $contratParentId): ?array
    public function getStructureContractualise(Intervenant $intervenant)
    {
        $em = $this->getEntityManager();

        $sql = 'SELECT SUM(hetd) as hetdTotal
                FROM tbl_contrat tblc_all 
                WHERE (tblc_all.contrat_id = :contratParentId 
                OR tblc_all.contrat_parent_id = :contratParentId)
                AND (tblc_all.contrat_id IS NOT NULL OR tblc_all.uuid = :uuid)';

        $dql = 'SELECT s.id FROM ' . TblContrat::class . ' tblc 
        JOIN tblc.structure s
        WHERE tblc.intervenant = :intervenant AND tblc.actif = 1 AND tblc.contrat IS NOT NULL';

        $query = $em->createQuery($sql)
            ->setParameter('uuid', $uuid);
        $query = $em->createQuery($dql)
            ->setParameter('intervenant', $intervenant);
        return $query->getResult();

        $result = $query->getOneOrNullResult();
        return $result['hetdTotal'];

    }



    public function getStructureContractualise(Intervenant $intervenant)
    public function getInformationContratByUuid(mixed $uuid): TblContrat
    {
        $em = $this->getEntityManager();

        $dql = 'SELECT s.id FROM ' . TblContrat::class . ' tblc 
        JOIN tblc.structure s
        WHERE tblc.intervenant = :intervenant AND tblc.actif = 1 AND tblc.contrat IS NOT NULL';
        $dql = 'SELECT tblc
        FROM ' . TblContrat::class . ' tblc
        JOIN tblc.typeContrat tc
        JOIN tblc.intervenant i
        LEFT JOIN tblc.structure s
        LEFT JOIN tblc.contratParent cp
        WHERE tblc.uuid = :uuid
        AND tblc.actif = 1
        AND tblc.volumeHoraireIndex = 0';


        $query = $em->createQuery($dql)
            ->setParameter('intervenant', $intervenant);
        return $query->getResult();
            ->setParameter('uuid', $uuid);

        return $query->getOneOrNullResult();

    }



    public function getVolumeContratByContratId(int $contratId)
    public function getInformationContratById(int $id): TblContrat
    {
        $em = $this->getEntityManager();

        $sql = 'SELECT uuid, 
                       contrat_id,
                       numero_avenant,
                       intervenant_id,
                       structure_id,
                       validation_id,
                       total_hetd,
                       type_contrat_id,
                       contrat_parent_id,
                       date_debut,date_fin
                FROM tbl_contrat tblc
                WHERE tblc.uuid = :contratId
        $dql = 'SELECT tblc
        FROM ' . TblContrat::class . ' tblc
        JOIN tblc.typeContrat tc
        JOIN tblc.intervenant i
        LEFT JOIN tblc.structure s
        LEFT JOIN tblc.contratParent cp
        WHERE tblc.uuid = :uuid
        AND tblc.actif = 1
                  AND volume_horaire_index = 0';
        AND tblc.volumeHoraireIndex = 0';


        $query = $em->createQuery($sql)
            ->setParameter('contratId', $contratId);
        $query = $em->createQuery($dql)
            ->setParameter('id', $id);

        return $query->getOneOrNullResult();
    }