Commit b2a7a09f authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Rapports d'activité de fin de contrat : aucun avis Dir/UR nécessaire dans le...

Rapports d'activité de fin de contrat : aucun avis Dir/UR nécessaire dans le rapport lui-meme donc on écarte les compléments qui génèreraient une case à cocher permettant de signaler une absence d'avis.
parent e5718ef5
Loading
Loading
Loading
Loading
+26 −5
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ use Application\Filter\IdifyFilterAwareTrait;
use Application\Service\Individu\IndividuServiceAwareTrait;
use Application\Service\Notification\NotifierServiceAwareTrait;
use Application\Service\Validation\ValidationServiceAwareTrait;
use Closure;
use Doctrine\ORM\NoResultException;
use Laminas\Http\Response;
use RapportActivite\Entity\Db\RapportActivite;
@@ -20,6 +21,7 @@ use RapportActivite\Service\RapportActiviteServiceAwareTrait;
use RapportActivite\Service\Validation\RapportActiviteValidationServiceAwareTrait;
use UnicaenApp\Exception\RuntimeException;
use UnicaenAvis\Entity\Db\Avis;
use UnicaenAvis\Entity\Db\AvisTypeValeurComplem;
use UnicaenAvis\Form\AvisForm;

class RapportActiviteAvisController extends AbstractController
@@ -90,6 +92,9 @@ class RapportActiviteAvisController extends AbstractController
        $avis = new Avis();
        $avis->setAvisType($avisTypeDispo);

        if ($filter = $this->getAvisTypeValeurComplemsFilter($rapportActivite)) {
            $this->form->setAvisTypeValeurComplemsFilter($filter);
        }
        $this->form->bind($avis);
        $this->form->setAttribute('action', $this->url()->fromRoute(
            'rapport-activite/avis/ajouter', [], ['query' => $this->params()->fromQuery()], true
@@ -127,6 +132,22 @@ class RapportActiviteAvisController extends AbstractController
        ];
    }

    public function getAvisTypeValeurComplemsFilter(RapportActivite $rapportActivite): ?Closure
    {
        if (! $rapportActivite->estFinContrat()) {
            return null;
        }

        // Rapports de fin de contrat : aucun avis Dir/UR attendu donc on écarte les compléments qui génèreraient une
        // case à cocher permettant de signaler une absence d'avis.
        return function (AvisTypeValeurComplem $avisTypeValeurComplem) {
            return !in_array($avisTypeValeurComplem->getCode(), [
                RapportActiviteAvis::AVIS_RAPPORT_ACTIVITE_GEST__AVIS_RAPPORT_ACTIVITE_VALEUR_INCOMPLET__MANQUE_AVIS_DIRECTION_THESE,
                RapportActiviteAvis::AVIS_RAPPORT_ACTIVITE_GEST__AVIS_RAPPORT_ACTIVITE_VALEUR_INCOMPLET__MANQUE_AVIS_DIRECTION_UR,
            ]);
        };
    }

    public function modifierAction()
    {
        $rapportActiviteAvis = $this->requestedRapportAvis();
+1 −1
Original line number Diff line number Diff line
@@ -123,7 +123,7 @@ class RapportActivite implements ResourceInterface, HistoriqueAwareInterface
    /**
     * @return bool
     */
    public function estFinal(): bool
    public function estFinContrat(): bool
    {
        return $this->estFinal;
    }
+6 −0
Original line number Diff line number Diff line
@@ -27,6 +27,12 @@ class RapportActiviteAvis implements HistoriqueAwareInterface, ResourceInterface
    const AVIS_VALEUR__CODE__AVIS_RAPPORT_ACTIVITE_VALEUR_POSITIF = 'AVIS_RAPPORT_ACTIVITE_VALEUR_POSITIF';
    const AVIS_VALEUR__CODE__AVIS_RAPPORT_ACTIVITE_VALEUR_NEGATIF = 'AVIS_RAPPORT_ACTIVITE_VALEUR_NEGATIF';

    // Codes des compléments, issus de "UNICAEN_AVIS_TYPE_VALEUR_COMPLEM.CODE" :
    const AVIS_RAPPORT_ACTIVITE_GEST__AVIS_RAPPORT_ACTIVITE_VALEUR_INCOMPLET__MANQUE_AVIS_DIRECTION_THESE =
        'AVIS_RAPPORT_ACTIVITE_GEST__AVIS_RAPPORT_ACTIVITE_VALEUR_INCOMPLET__MANQUE_AVIS_DIRECTION_THESE';
    const AVIS_RAPPORT_ACTIVITE_GEST__AVIS_RAPPORT_ACTIVITE_VALEUR_INCOMPLET__MANQUE_AVIS_DIRECTION_UR =
        'AVIS_RAPPORT_ACTIVITE_GEST__AVIS_RAPPORT_ACTIVITE_VALEUR_INCOMPLET__MANQUE_AVIS_DIRECTION_UR';

    /**
     * @var integer
     */
+1 −1
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ class RapportActiviteNomFichierFormatter extends AbstractNomFichierFormatter
    protected function type(): string
    {
        if ($this->rapport->getTypeRapport()->estRapportActivite()) {
            return $this->rapport->getTypeRapport()->getCode() . ($this->rapport->estFinal() ? '_FINCONTRAT' : '_ANNUEL');
            return $this->rapport->getTypeRapport()->getCode() . ($this->rapport->estFinContrat() ? '_FINCONTRAT' : '_ANNUEL');
        } else {
            return $this->rapport->getTypeRapport()->getCode();
        }
+3 −3
Original line number Diff line number Diff line
@@ -72,10 +72,10 @@ class RapportActiviteTeleversementRule implements RuleInterface
    public function setRapportsTeleverses(array $rapportsTeleverses): self
    {
        $this->rapportsTeleversesAnnuels = array_filter($rapportsTeleverses, function(RapportActivite $rapport) {
            return $rapport->estFinal() === false;
            return $rapport->estFinContrat() === false;
        });
        $this->rapportsTeleversesFinContrat = array_filter($rapportsTeleverses, function(RapportActivite $rapport) {
            return $rapport->estFinal() === true;
            return $rapport->estFinContrat() === true;
        });

        return $this;
@@ -163,7 +163,7 @@ class RapportActiviteTeleversementRule implements RuleInterface

    public function canTeleverserRapport(RapportActivite $rapport): bool
    {
        if ($rapport->estFinal()) {
        if ($rapport->estFinContrat()) {
            return $this->canTeleverserRapportFinContratForAnneeUniv($rapport->getAnneeUniv());
        } else {
            return $this->canTeleverserRapportAnnuelForAnneeUniv($rapport->getAnneeUniv());
Loading