Commit d94cdb12 authored by joriot221's avatar joriot221
Browse files

Merge branch 'FJ_Contrat_sans_projet' into FJ_param_date_sans_contrat

parents 0f347709 7075607d
Loading
Loading
Loading
Loading
+6 −0
Changes for data/parametres.php: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -228,4 +228,10 @@ Cordialement,
        "VALEUR"      => "active",
        "DESCRIPTION" => "Permettre la création d'avenants au contrat",
    ],

    /* Contrat */
    "contrat_projet"                => [
        "VALEUR"      => "active",
        "DESCRIPTION" => "Permettre la création d'un contrat sans passé par le projet",
    ],
];
 No newline at end of file
+14 −1
Changes for module/Application/src/Controller/ContratController.php: 14 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -139,7 +139,10 @@ class ContratController extends AbstractController
        $avenantResult = $this->getServiceParametres()->get('avenant');
        $avenant       = ($avenantResult == Parametre::AVENANT);

        return compact('title', 'intervenant', 'contrats', 'services', 'emailIntervenant', 'avenant');
        $contratProjetResult = $this->getServiceParametres()->get('contrat_projet');
        $contratProjet       = ($contratProjetResult == Parametre::CONTRAT_PROJET);

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


@@ -152,6 +155,9 @@ class ContratController extends AbstractController
        $structure = $this->getEvent()->getParam('structure');
        /* @var $structure Structure */

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

        if (!$intervenant) {
            throw new \LogicException('L\'intervenant n\'est pas précisé');
        }
@@ -167,8 +173,15 @@ class ContratController extends AbstractController
        } else {
            try {
                $this->getProcessusContrat()->enregistrer($contrat);
                if ($contratProjet) {
                    $this->getProcessusContrat()->valider($contrat);
                }
                $this->updateTableauxBord($contrat->getIntervenant());
                if ($contratProjet) {
                    $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éé.');
                }
            } catch (\Exception $e) {
                $this->flashMessenger()->addErrorMessage($this->translate($e));
            }
+1 −0
Changes for module/Application/src/Entity/Db/Parametre.php: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ class Parametre implements HistoriqueAwareInterface
    const CONTRAT_FRANCHI_DATE_RETOUR = 'date-retour';

    const AVENANT        = 'avenant';
    const CONTRAT_PROJET = 'contrat_projet';

    use HistoriqueAwareTrait;

+16 −0
Changes for module/Application/src/Form/ParametresForm.php: 16 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -582,6 +582,22 @@ class ParametresForm extends AbstractForm
                'data-size' => 20,
            ],
        ]);

        $this->add([
            'type'       => 'Select',
            'name'       => 'contrat_projet',
            'options'    => [
                'label' => 'Possibilité de créer un contrat sans passer par le projet',
                'value_options' => [
                    PARAMETRE::CONTRAT_PROJET => 'Le contrat peut être crée sans passer par le projet',
                    'desactive'               => 'Fonctionnalité désactivée',
                ],
            ],
            'attributes' => [
                'class'     => 'selectpicker',
                'data-size' => 20,
            ],
        ]);
    }


+12 −10
Changes for module/Application/view/application/contrat/index.phtml: 12 added lines, 10 removed lines.
Original line number Diff line number Diff line
@@ -8,6 +8,8 @@ use Application\Provider\Privilege\Privileges;
 * @var $title             string
 * @var $intervenant       \Application\Entity\Db\Intervenant
 * @var $contrats          \Application\Entity\Db\Contrat[]
 * @var $avenant           boolean
 * @var $contratProjet     boolean
 */

$hasContrat = false;
@@ -64,18 +66,19 @@ $this->messenger() ?>
                <tr>
                    <td><?= $structure ?></td>
                    <td>
                        <?php if ($canCreer): ?>

                        <?php if ($canCreer):
                            if ($contratProjet):?>
                                <a class="btn btn-primary"
                                   href="<?= $this->url('contrat/creer', ['intervenant' => $intervenant->getId(), 'structure' => $structure->getId()]); ?>">
                                    <i class="fas fa-file"></i> Créer un


                                    projet <?= $hasContrat ? 'd\'avenant' : 'de contrat' ?>
                                    <i class="fas fa-file"></i> Créer un <?= $hasContrat ? 'avenant' : 'contrat' ?>
                                </a>


                        <?php else:
                            <?php else: ?>
                                <a class="btn btn-primary"
                                   href="<?= $this->url('contrat/creer', ['intervenant' => $intervenant->getId(), 'structure' => $structure->getId()]); ?>">
                                    <i class="fas fa-file"></i> Créer un projet <?= $hasContrat ? 'd\'avenant' : 'de contrat' ?>
                                </a>
                            <?php endif;
                        else:
                            echo $this->feuilleDeRoute($intervenant)->renderWhyNonAtteignable(\Application\Entity\Db\WfEtape::CODE_CONTRAT, $structure);
                        endif; ?>
                        <p>
@@ -101,7 +104,6 @@ $this->messenger() ?>
    <div class="well">
        <h2>Contrats et avenants</h2>
        <?php foreach ($contrats as $contrat): ?>

            <?= $this->partial('application/contrat/partial/contrat', ['contrat' => $contrat, 'services' => $services['contractualises'][$contrat->getId()], 'emailIntervenant' => $emailIntervenant]) ?>

        <?php endforeach; ?>
Loading