Commit 85934cd9 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Ajout d'une notification vers le responsable de l'EP lorsque l'agent valide l'EP

parent 2cb26dd6
Loading
Loading
Loading
Loading
+10 −0
Changes for documentation/release/3.2.5.md: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -6,11 +6,21 @@ Version 3.2.5 (XX/XX/2023)
- Modification de Unicaen/Aide (css)
- Filtrage de la liste des agents pour les supérieur·es et les autorités comme pour les responsables de structures
- Réordonnancement des colonnes du VH des entretiens professionnels sous forme tabulaire
- Ajout d'une notification vers le responsable de l'EP lorsque l'agent valide l'EP

Modification en BD
---

```postgresql
-- nouveau template 
INSERT INTO public.unicaen_renderer_template (code, description, document_type, document_sujet, document_corps, document_css, namespace) 
VALUES (
'ENTRETIEN_VALIDATION_4-AGENT', null, 'mail', 
'VAR[AGENT#Denomination] vient de valider son entretien professionnel', 
e'<p>Bonjour,</p>
<p>VAR[AGENT#Denomination] vient de valider son entretien professionnel pour la campagne VAR[CAMPAGNE#annee].<br />Ceci, clôt son entretien professionnel.</p>
<p>Bonne journée,<br />L\'application VAR[EMC2#appname]</p>', 
null, 'EntretienProfessionnel\Provider\Template');
```

Evolution des librairies 
+2 −0
Changes for module/EntretienProfessionnel/src/EntretienProfessionnel/Controller/EntretienProfessionnelController.php: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -352,6 +352,8 @@ class EntretienProfessionnelController extends AbstractActionController
                    case EntretienProfessionnelValidations::VALIDATION_AGENT :
                        $entretien->setEtat($this->getEtatService()->getEtatByCode(EntretienProfessionnelEtats::ENTRETIEN_VALIDATION_AGENT));
                        $this->getEntretienProfessionnelService()->update($entretien);

                        $this->getNotificationService()->triggerValidationAgent($entretien);
                        break;
                }
            }
+1 −0
Changes for module/EntretienProfessionnel/src/EntretienProfessionnel/Provider/Template/MailTemplates.php: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ class MailTemplates {
    const ENTRETIEN_VALIDATION_2_PAS_D_OBSERVATION = 'ENTRETIEN_VALIDATION_2-PAS_D_OBSERVATION';
    const ENTRETIEN_VALIDATION_2_OBSERVATION_TRANSMISSION = 'ENTRETIEN_VALIDATION_2-OBSERVATION_TRANSMISSION';
    const ENTRETIEN_VALIDATION_3_HIERARCHIE = 'ENTRETIEN_VALIDATION_3-HIERARCHIE';
    const ENTRETIEN_VALIDATION_4_AGENT = 'ENTRETIEN_VALIDATION_4-AGENT';

    const RAPPEL_CAMPAGNE_AVANCEMENT_AUTORITE = 'NOTIFICATION_RAPPEL_CAMPAGNE_AUTORITE';
    const RAPPEL_CAMPAGNE_AVANCEMENT_SUPERIEUR = 'NOTIFICATION_RAPPEL_CAMPAGNE_SUPERIEUR';
+12 −0
Changes for module/EntretienProfessionnel/src/EntretienProfessionnel/Service/Notification/NotificationService.php: 12 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -226,6 +226,18 @@ class NotificationService {
        return $mail;
    }

    public function triggerValidationAgent(EntretienProfessionnel $entretien) : Mail
    {
        $this->getUrlService()->setVariables(['entretien' => $entretien]);
        $vars = ['agent' => $entretien->getAgent(), 'campagne' => $entretien->getCampagne(), 'entretien' => $entretien, 'UrlService' => $this->getUrlService()];
        $rendu = $this->getRenduService()->generateRenduByTemplateCode(MailTemplates::ENTRETIEN_VALIDATION_4_AGENT, $vars);
        $mail = $this->getMailService()->sendMail($this->getEmailResponsable($entretien), $rendu->getSujet(), $rendu->getCorps());
        $mail->setMotsClefs([$entretien->generateTag(), $rendu->getTemplate()->generateTag()]);
        $this->getMailService()->update($mail);

        return $mail;
    }

    public function triggerRappelEntretien(?EntretienProfessionnel $entretien) : Mail
    {
        $vars = ['campagne' => $entretien->getCampagne(), 'entretien' => $entretien, 'agent' => $entretien->getAgent(), 'UrlService' => $this->getUrlService()];