Commit 592c0054 authored by joriot221's avatar joriot221
Browse files

Possibilité date retour sans contrat

Suppression de contrat + projet quand option contrat direct
refactor contratProjet en contratDirect
parent 42c12361
Loading
Loading
Loading
Loading
+1 −1
Changes for data/parametres.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -229,7 +229,7 @@ Cordialement,
        "DESCRIPTION" => "Permettre la création d'avenants au contrat",
    ],

    "contrat_projet" => [
    "contrat_direct" => [
        "VALEUR"      => "desactive",
        "DESCRIPTION" => "Permettre la création d'un contrat sans passé par le projet",
    ],
+12 −5
Changes for module/Application/src/Assertion/ContratAssertion.php: 12 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -184,8 +184,8 @@ class ContratAssertion extends AbstractAssertion
            $devalid = true;
        }

        $contratDirectResult = $this->getServiceParametres()->get('contrat_projet');
        $contratDirect       = ($contratDirectResult == Parametre::CONTRAT_PROJET);
        $contratDirectResult = $this->getServiceParametres()->get('contrat_direct');
        $contratDirect       = ($contratDirectResult == Parametre::CONTRAT_DIRECT);

        return $this->asserts([
            $this->assertRole($contrat),
@@ -199,12 +199,19 @@ class ContratAssertion extends AbstractAssertion

    protected function assertSuppression(Contrat $contrat)
    {
        $contratDirectResult = $this->getServiceParametres()->get('contrat_projet');
        $contratDirect       = ($contratDirectResult == Parametre::CONTRAT_PROJET);
        if (!$contrat->estUnAvenant()) {
            $devalid = $contrat->getIntervenant()->getContrat()->count() == 1; // on ne peut supprimer un contrat que si aucun avenant n'existe
        } else {
            $devalid = true;
        }

        $contratDirectResult = $this->getServiceParametres()->get('contrat_direct');
        $contratDirect       = ($contratDirectResult == Parametre::CONTRAT_DIRECT);

        return $this->asserts([
            $this->assertRole($contrat),
            !$contrat->getValidation() || $contratDirect,
            !$contrat->getValidation() || ($contratDirect && $devalid),
            !$contrat->getDateRetourSigne(),
        ]);
    }

+16 −12
Changes for module/Application/src/Controller/ContratController.php: 16 added lines, 12 removed lines.
Original line number Diff line number Diff line
@@ -139,11 +139,11 @@ class ContratController extends AbstractController
        $avenantResult = $this->getServiceParametres()->get('avenant');
        $avenant       = ($avenantResult == Parametre::AVENANT);

        $contratProjetResult = $this->getServiceParametres()->get('contrat_projet');
        $contratProjet       = ($contratProjetResult == Parametre::CONTRAT_PROJET);
        $contratDirectResult = $this->getServiceParametres()->get('contrat_direct');
        $contratDirect       = ($contratDirectResult == Parametre::CONTRAT_DIRECT);


        return compact('title', 'intervenant', 'contrats', 'services', 'emailIntervenant', 'avenant', 'contratProjet');
        return compact('title', 'intervenant', 'contrats', 'services', 'emailIntervenant', 'avenant', 'contratDirect');
    }


@@ -156,8 +156,8 @@ class ContratController extends AbstractController
        $structure = $this->getEvent()->getParam('structure');
        /* @var $structure Structure */

        $contratProjetResult = $this->getServiceParametres()->get('contrat_projet');
        $contratProjet       = ($contratProjetResult == Parametre::CONTRAT_PROJET);
        $contratDirectResult = $this->getServiceParametres()->get('contrat_direct');
        $contratDirect       = ($contratDirectResult == Parametre::CONTRAT_DIRECT);

        if (!$intervenant) {
            throw new \LogicException('L\'intervenant n\'est pas précisé');
@@ -174,12 +174,12 @@ class ContratController extends AbstractController
        } else {
            try {
                $this->getProcessusContrat()->enregistrer($contrat);
                if ($contratProjet) {
                if ($contratDirect) {
                    $this->getProcessusContrat()->valider($contrat);
                }

                $this->updateTableauxBord($contrat->getIntervenant());
                if ($contratProjet) {
                if ($contratDirect) {
                    $this->flashMessenger()->addSuccessMessage(($contrat->estUnAvenant() ? 'L\'avenant' : 'Le contrat') . ' a bien été créé.');
                } else {
                    $this->flashMessenger()->addSuccessMessage('Le projet ' . ($contrat->estUnAvenant() ? 'd\'avenant' : 'de contrat') . ' a bien été créé.');
@@ -214,10 +214,10 @@ class ContratController extends AbstractController

        if ($this->getRequest()->isPost()) {
            try {
                $contratProjetResult = $this->getServiceParametres()->get('contrat_projet');
                $contratProjet       = ($contratProjetResult == Parametre::CONTRAT_PROJET);
                if ($contratProjet) {

                $contratDirectResult = $this->getServiceParametres()->get('contrat_direct');
                $contratDirect       = ($contratDirectResult == Parametre::CONTRAT_DIRECT);
                if ($contratDirect && $contrat->getValidation()) {
                    $this->getProcessusContrat()->devalider($contrat);
                }
                $this->getProcessusContrat()->supprimer($contrat);
                $this->updateTableauxBord($contrat->getIntervenant());
@@ -332,7 +332,11 @@ class ContratController extends AbstractController
            throw new UnAuthorizedException('Vous n\'avez pas les droits requis pour saisir la date de retour du contrat signé.');
        }
        $canSaisieDateSigne = true;
        if ($contrat->getDateRetourSigne() != null || $contrat->getFichier()->count() > 0) {

        $contratDateSansFichierResult = $this->getServiceParametres()->get('contrat_date');
        $contratDateSansFichier       = ($contratDateSansFichierResult == Parametre::CONTRAT_DATE);

        if ($contrat->getDateRetourSigne() != null || $contrat->getFichier()->count() > 0 || $contratDateSansFichier) {
            $form->bindRequestSave($contrat, $this->getRequest(), function () use ($contrat, $contratToString) {

                $this->getServiceContrat()->save($contrat);
+1 −1
Changes for module/Application/src/Entity/Db/Parametre.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ class Parametre implements HistoriqueAwareInterface
    const CONTRAT_FRANCHI_DATE_RETOUR = 'date-retour';

    const AVENANT        = 'avenant';
    const CONTRAT_PROJET = 'contrat_projet';
    const CONTRAT_DIRECT = 'contrat_direct';
    const CONTRAT_DATE   = 'contrat_date';

    use HistoriqueAwareTrait;
+3 −3
Changes for module/Application/src/Form/ParametresForm.php: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -585,11 +585,11 @@ class ParametresForm extends AbstractForm

        $this->add([
            'type'       => 'Select',
            'name'       => 'contrat_projet',
            'name'       => 'contrat_direct',
            'options'    => [
                'label'         => 'Activé la fonctionnalité projet de contrat',
                'label'         => 'Création de contrat sans passer par un projet',
                'value_options' => [
                    PARAMETRE::CONTRAT_PROJET => 'Le contrat est crée directement',
                    PARAMETRE::CONTRAT_DIRECT => 'Le contrat est crée directement',
                    'desactive'               => 'Un projet de contrat doit être validé pour devenir un contrat',
                ],
            ],
Loading