Commit b7506a22 authored by joriot221's avatar joriot221
Browse files

Mise en place autovalidation Contrat projet (Non fonctionnel)

parent 852eb918
Loading
Loading
Loading
Loading
+13 −1
Changes for module/Application/src/Controller/ContratController.php: 13 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');
    }


@@ -151,6 +154,8 @@ class ContratController extends AbstractController
        /* @var $intervenant Intervenant */
        $structure = $this->getEvent()->getParam('structure');
        /* @var $structure Structure */
        $projetContrat = $this->getEvent()->getParam('projetContrat');
        /* @var $projetContrat boolean */

        if (!$intervenant) {
            throw new \LogicException('L\'intervenant n\'est pas précisé');
@@ -167,8 +172,15 @@ class ContratController extends AbstractController
        } else {
            try {
                $this->getProcessusContrat()->enregistrer($contrat);
                if (!$projetContrat) {
                    $this->getProcessusContrat()->valider($contrat);
                }
                $this->updateTableauxBord($contrat->getIntervenant());
                if (!$projetContrat) {
                    $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));
            }
+13 −11
Changes for module/Application/view/application/contrat/index.phtml: 13 added lines, 11 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' ?>
                                   href="<?= $this->url('contrat/creer', ['intervenant' => $intervenant->getId(), 'structure' => $structure->getId(), 'contratProjet' => $contratProjet]); ?>">
                                    <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(), 'contratProjet' => $contratProjet]); ?>">
                                    <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; ?>