Commit 72650af8 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Nouvelles notifications de l'avancement de campagne

parent ac617730
Loading
Loading
Loading
Loading
+50 −3
Original line number Diff line number Diff line
@@ -4,10 +4,10 @@ Version 3.2.0 (05/05/2023)
Évolution
---

- Changement du système de gestion des supérieures et autorités hiérarchique (nouveau menu dans le menu gestion)
- Changement du système de gestion des supérieures et autorités hiérarchiques (nouveau menu dans le menu gestion)
- Amélioration du code lié aux chaînes hiérarchiques
- Changement de mise en forme des pages de structures pour améliorer les temps de réponse

- Nouvelles notifications vers les supérieur·es et autorités pour l'avancement des campagnes d'entretien professionnel

Modification de la base de données
---
@@ -85,6 +85,46 @@ create index agent_superieur_superieur_id_index
drop table agent_complement;
drop table complement;

-- ------------------------------------------------------------------------------------------------
-- Nouveau template pour l'avancement des campagnes d'entretien professionnel 
-- ------------------------------------------------------------------------------------------------

INSERT INTO unicaen_renderer_template (code, description, document_type, document_sujet, document_corps, document_css, namespace) 
VALUES (
        'NOTIFICATION_RAPPEL_CAMPAGNE_AUTORITE', 
        '<p>Mail envoyé au autorité pour l''avancement de la campagne</p>', 
        'mail', 
        'Avancement de la campagne d''entretien professionnel VAR[CAMPAGNE#annee]', 
        e'<p><strong>Université de Caen Normandie</strong><br /><strong>Direction des Ressources Humaines</strong></p>
<p><span style="text-decoration: underline;">Objet :</span> état d\'avancement de la campagne d\'entretien professionnel VAR[CAMPAGNE#annee] en tant qu\'autorité</p>
<p>Bonjour,</p>
<p>Vous recevez ce courrier électronique concernant l\'avancement du ou des entretiens professionnels de la campagne VAR[CAMPAGNE#annee] dont vous avez la responsabilité. Attention cette campagne sera clôturée le VAR[CAMPAGNE#fin].</p>
<p>###A REMPLACER###</p>
<p>Pour gérer vos entretiens professionnels vous pouvez vous rendre dans EMC2 : VAR[URL#App]</p>
<p>Cordialement,<br />Le bureau de gestion des personnels BIATSS<br />Le bureau Conseil Carrière Compétences</p>', 
        null, 
        'EntretienProfessionnel\Provider\Template'
);
INSERT INTO unicaen_renderer_template (code, description, document_type, document_sujet, document_corps, document_css, namespace) 
VALUES (
        'NOTIFICATION_RAPPEL_CAMPAGNE_SUPERIEUR', 
        '<p>Mail envoyé au supérieurs pour l''avancement de la campagne</p>', 
        'mail', 
        'Avancement de la campagne d''entretien professionnel VAR[CAMPAGNE#annee]', 
        e'<p><strong>Université de Caen Normandie</strong><br /><strong>Direction des Ressources Humaines</strong></p>
<p><span style="text-decoration: underline;">Objet :</span> état d\'avancement de la campagne d\'entretien professionnel VAR[CAMPAGNE#annee] en tant que supérieur·e</p>
<p>Bonjour,</p>
<p>Vous recevez ce courrier électronique concernant l\'avancement du ou des entretiens professionnels de la campagne VAR[CAMPAGNE#annee] dont vous avez la responsabilité. Attention cette campagne sera clôturée le VAR[CAMPAGNE#fin].</p>
<p>###A REMPLACER###</p>
<p>Pour gérer vos entretiens professionnels vous pouvez vous rendre dans EMC2 : VAR[URL#App]</p>
<p>Cordialement,<br />Le bureau de gestion des personnels BIATSS<br />Le bureau Conseil Carrière Compétences</p>
<p> </p>', 
        null, 
        'EntretienProfessionnel\Provider\Template'
);

-- effacement template non utilisée
delete from unicaen_renderer_template where code = 'NOTIFICATION_RAPPEL_CAMPAGNE';

```

@@ -93,5 +133,12 @@ Evolution des librairies

Nouvelle version de unicaen/pdf 5.0.2
```bash
composer upgrade unicaen/pdf
composer require unicaen/pdf 5.0.2
```

ou réinstalle des libraires 
```bash
rm -fr vendor
rm -fr composer.lock
composer install
```
+0 −1
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ class EntretienProfessionnelController extends AbstractActionController

    use EntretienProfessionnelFormAwareTrait;


    public function indexAction() : ViewModel
    {
        $params  = $this->params()->fromQuery();
+2 −1
Original line number Diff line number Diff line
@@ -17,7 +17,8 @@ class MailTemplates {
    const ENTRETIEN_VALIDATION_2_OBSERVATION_TRANSMISSION = 'ENTRETIEN_VALIDATION_2-OBSERVATION_TRANSMISSION';
    const ENTRETIEN_VALIDATION_3_HIERARCHIE = 'ENTRETIEN_VALIDATION_3-HIERARCHIE';

    const RAPPEL_CAMPAGNE_AVANCEMENT = 'NOTIFICATION_RAPPEL_CAMPAGNE';
    const RAPPEL_CAMPAGNE_AVANCEMENT_AUTORITE = 'NOTIFICATION_RAPPEL_CAMPAGNE_AUTORITE';
    const RAPPEL_CAMPAGNE_AVANCEMENT_SUPERIEUR = 'NOTIFICATION_RAPPEL_CAMPAGNE_SUPERIEUR';
    const RAPPEL_ENTRETIEN_AGENT = 'NOTIFICATION_RAPPEL_ENTRETIEN';

}
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -507,4 +507,5 @@ class EntretienProfessionnelService {
        }
        return $dictionnaire;
    }

}
+24 −17
Original line number Diff line number Diff line
@@ -2,7 +2,8 @@

namespace EntretienProfessionnel\Service\Evenement;

use Application\Service\Agent\AgentServiceAwareTrait;
use Application\Service\AgentAutorite\AgentAutoriteServiceAwareTrait;
use Application\Service\AgentSuperieur\AgentSuperieurServiceAwareTrait;
use DateInterval;
use DateTime;
use EntretienProfessionnel\Entity\Db\Campagne;
@@ -16,7 +17,8 @@ use UnicaenEvenement\Entity\Db\Evenement;
use UnicaenEvenement\Service\Evenement\EvenementService;

class RappelCampagneAvancementService extends EvenementService {
    use AgentServiceAwareTrait;
    use AgentAutoriteServiceAwareTrait;
    use AgentSuperieurServiceAwareTrait;
    use CampagneServiceAwareTrait;
    use NotificationServiceAwareTrait;
    use StructureServiceAwareTrait;
@@ -50,30 +52,35 @@ class RappelCampagneAvancementService extends EvenementService {
    {
        $parametres = json_decode($evenement->getParametres(), true);
        $campagne = $this->getCampagneService()->getCampagne($parametres['campagne']);
        $structures = $this->getStructureService()->getStructures();

        $message = "";

        // AUTORITES
        $message .= "<strong>Expédition vers les autorités hiérarchiques</strong><br>";
        try {
            foreach ($structures as $structure) {
                if ($structure->getId() === '96') {
                    $structures = $this->getStructureService()->getStructuresFilles($structure);
                    $structures[] = $structure;
                    $agents = $this->getAgentService()->getAgentsByStructures($structures);
                    if (!empty($agents)) {
                        if (!empty($structure->getResponsables())) {
                            $this->getNotificationService()->triggerRappelCampagne($campagne, $structure);
                            $message .= "Notification faites vers " . $structure->getLibelleLong() . "<br/>\n";
                        } else {
                            $message .= "<span style='color:darkred;'>Pas de responsable pour le structure " . $structure->getLibelleLong() . "</span><br/>\n";
                        }
            $autorites = $this->getAgentAutoriteService()->getAgentsAutorites(false, $campagne->getDateDebut());
            foreach ($autorites as $autorite) {
                $this->getNotificationService()->triggerRappelCampagneAutorite($campagne, $autorite->getAutorite());
                $message .= "Notification faites vers " . $autorite->getAutorite()->getDenomination() . "<br/>\n";
            }
        } catch(Exception $e) {
            $evenement->setLog($message . $e->getMessage());
            return Etat::ECHEC;
        }

        // SUPERIEURS
        $message .= "<strong>Expédition vers les supérieurs hiérarchiques</strong><br>";
        try {
            $superieurs = $this->getAgentSuperieurService()->getAgentsSuperieurs(false, $campagne->getDateDebut());
            foreach ($superieurs as $superieur) {
                $this->getNotificationService()->triggerRappelCampagneSuperieur($campagne, $superieur->getSuperieur());
                $message .= "Notification faites vers " . $superieur->getSuperieur()->getDenomination() . "<br/>\n";
            }
        } catch(Exception $e) {
            $evenement->setLog($message . $e->getMessage());
            return Etat::ECHEC;
        }

        $evenement->setLog($message);
        $this->update($evenement);
        return Etat::SUCCES;
Loading