Commit dc758e13 authored by joriot221's avatar joriot221
Browse files

Test suppression plutot que devalidation contrat si ContratDirect

parent 8b66d7ae
Loading
Loading
Loading
Loading
+12 −3
Changes for module/Application/src/Assertion/ContratAssertion.php: 12 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -5,10 +5,11 @@ namespace Application\Assertion;
use Application\Acl\Role;
use Application\Entity\Db\Contrat;
use Application\Entity\Db\Intervenant;
use Application\Entity\Db\Parametre;
use Application\Entity\Db\Structure;
use Application\Entity\Db\WfEtape;
use Application\Provider\Privilege\Privileges;

use Application\Service\Traits\ParametresServiceAwareTrait;
// sous réserve que vous utilisiez les privilèges d'UnicaenAuth et que vous ayez généré votre fournisseur
use Application\Service\Traits\WorkflowServiceAwareTrait;
use UnicaenAuth\Assertion\AbstractAssertion;
@@ -22,6 +23,8 @@ use Laminas\Permissions\Acl\Resource\ResourceInterface;
 */
class ContratAssertion extends AbstractAssertion
{
    use ParametresServiceAwareTrait;

    const PRIV_LISTER_FICHIERS   = 'contrat-lister-fichiers';
    const PRIV_SUPPRIMER_FICHIER = 'contrat-supprimer-fichier';
    const PRIV_AJOUTER_FICHIER   = 'contrat-ajouter-fichier';
@@ -181,9 +184,12 @@ class ContratAssertion extends AbstractAssertion
            $devalid = true;
        }

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

        return $this->asserts([
            $this->assertRole($contrat),
            $contrat->getValidation(),
            $contrat->getValidation() && !$contratDirect,
            !$contrat->getDateRetourSigne(),
            $devalid,
        ]);
@@ -193,9 +199,12 @@ class ContratAssertion extends AbstractAssertion

    protected function assertSuppression(Contrat $contrat)
    {
        $contratDirectResult = $this->getServiceParametres()->get('contrat_projet');
        $contratDirect       = ($contratDirectResult == Parametre::CONTRAT_PROJET);

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

+7 −0
Changes for module/Application/src/Controller/ContratController.php: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -177,6 +177,7 @@ class ContratController extends AbstractController
                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éé.');
@@ -213,6 +214,11 @@ class ContratController extends AbstractController

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

                }
                $this->getProcessusContrat()->supprimer($contrat);
                $this->updateTableauxBord($contrat->getIntervenant());
                $this->flashMessenger()->addSuccessMessage("Suppression $contratToString effectuée avec succès.");
@@ -283,6 +289,7 @@ class ContratController extends AbstractController
        if ($this->isAllowed($contrat, Privileges::CONTRAT_DEVALIDATION)) {
            if ($this->getRequest()->isPost()) {
                try {

                    $this->getProcessusContrat()->devalider($contrat);
                    $this->updateTableauxBord($contrat->getIntervenant());

+2 −2
Changes for module/Application/src/Form/ParametresForm.php: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -589,8 +589,8 @@ class ParametresForm extends AbstractForm
            'options'    => [
                'label'         => 'Activé la fonctionnalité projet de contrat',
                'value_options' => [
                    'desactive'               => 'Le contrat est crée directement',
                    PARAMETRE::CONTRAT_PROJET => 'Un projet de contrat doit être validé pour devenir un contrat',
                    PARAMETRE::CONTRAT_PROJET => 'Le contrat est crée directement',
                    'desactive'               => 'Un projet de contrat doit être validé pour devenir un contrat',
                ],
            ],
            'attributes' => [
+3 −1
Changes for module/Application/view/application/contrat/index.phtml: 3 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -104,7 +104,9 @@ $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]) ?>
            <?= $this->partial('application/contrat/partial/contrat', ['contrat' => $contrat, 'services' => $services['contractualises'][$contrat->getId()], 'emailIntervenant' => $emailIntervenant, 'contratProjet' => $contratProjet]);
            ?>


        <?php endforeach; ?>
    </div>