Commit 11455340d13aa58601b2ca2b46c862d59424f74c
1 parent
fd6ade95
Exists in
master
and in
1 other branch
Envoi mails lors de commande et livraison (bugfixes et améliorations)
- Lors de la commande => Envoi mail (Commande) au gestionnaire - Lors de la livraison => Envoi mail au créateur de la fiche matériel (Acheteur) => v5.1.4-3.7.9
Showing
5 changed files
with
70 additions
and
46 deletions
Show diff stats
CHANGELOG
... | ... | @@ -347,6 +347,7 @@ Commencer à implémenter le nouveau workflow v5 : |
347 | 347 | - Champs obligatoires LOT 0 : |
348 | 348 | - ... |
349 | 349 | - Champs obligatoires LOT 1 (en commande, demande d'achat faite au SG) : |
350 | + - fournisseur !!! | |
350 | 351 | - ... |
351 | 352 | - Champs obligatoires LOT 2 (livré) : |
352 | 353 | - ... |
... | ... | @@ -402,7 +403,10 @@ Commencer à implémenter le nouveau workflow v5 : |
402 | 403 | |
403 | 404 | ======= CHANGES ======= |
404 | 405 | |
405 | - - (i) Lors de livraison => Envoi mail au créateur de la fiche matériel et à l'utilisateur du matériel | |
406 | +------- | |
407 | +09/09/2021 v5.1.4-3.7.9 | |
408 | + - (i) Lors de la commande => Envoi mail (Commande) au gestionnaire | |
409 | + - (i) Lors de la livraison => Envoi mail au créateur de la fiche matériel (Acheteur) | |
406 | 410 | |
407 | 411 | ------- |
408 | 412 | 09/09/2021 v5.1.3-3.7.9 | ... | ... |
README.md
config/app_labinvent_mandatory_fields.default.yml
... | ... | @@ -98,7 +98,8 @@ MANDATORY_FIELDS_LOT1: |
98 | 98 | #TODO: a remettre ? avec "je ne sais pas" |
99 | 99 | gestionnaire_id: 'Gestionnaire de référence' |
100 | 100 | |
101 | - #'fournisseur' | |
101 | + # Fournisseur | |
102 | + fournisseur_id: 'Fournisseur' | |
102 | 103 | |
103 | 104 | # Utilisé par la Gestion pour remplir le champ eotp |
104 | 105 | budgets: 'Budgets' | ... | ... |
src/Controller/AppController.php
... | ... | @@ -3217,7 +3217,7 @@ class AppController extends Controller |
3217 | 3217 | //$this->log("$url fait par $user ($role). $msg", 'debug'); |
3218 | 3218 | //Log::write('info', "$url fait par $user ($role). $msg"); |
3219 | 3219 | $msg = "$url fait par $user ($role) - $msg\n"; |
3220 | - $DEBUG && debug($msg); | |
3220 | + $DEBUG && debug("1 - LOG MESSAGE :\n\n". $msg); | |
3221 | 3221 | (!$DEBUG) && $this->log($msg, 'info'); |
3222 | 3222 | |
3223 | 3223 | /* Autres formes possibles |
... | ... | @@ -3765,13 +3765,13 @@ class AppController extends Controller |
3765 | 3765 | |
3766 | 3766 | |
3767 | 3767 | /* |
3768 | - * 4.A - CRÉATION DU MAIL (sujet et body) | |
3768 | + * 4.1 - CRÉATION DU MAIL (sujet et body) | |
3769 | 3769 | * |
3770 | 3770 | * On détermine le message et le sujet du mail en fonction de l'action effectuee |
3771 | 3771 | * |
3772 | 3772 | */ |
3773 | 3773 | |
3774 | - // (1) Sujet : <Action passive> d'un(e) <entité> | |
3774 | + // 4.1.1 - Sujet : <Action passive> d'un(e) <entité> | |
3775 | 3775 | |
3776 | 3776 | //$subject = $subject ? $subject : "{$action_attrs['noun']} $article_dun$entity_type"; |
3777 | 3777 | //$subject = $subject ? $subject : "{$action_attrs['noun']} $article_dun$entity_nice_type_name"; |
... | ... | @@ -3781,9 +3781,11 @@ class AppController extends Controller |
3781 | 3781 | $subject .= $entity_nice_type_name; |
3782 | 3782 | if ($IS_ENTITY_OTHER) $subject .= '(s)'; |
3783 | 3783 | } |
3784 | - $DEBUG && debug($subject); | |
3784 | + //debug($action); | |
3785 | + if ($action=='statusValidated') $subject .= ' (= matériel LIVRÉ)'; | |
3786 | + //$DEBUG && debug($subject); | |
3785 | 3787 | |
3786 | - // (2) Message (body) : | |
3788 | + // 4.1.2 - Message (body) : | |
3787 | 3789 | |
3788 | 3790 | // - a) TOUS : "User a fait telle action (+url)" |
3789 | 3791 | // Par défaut |
... | ... | @@ -3852,37 +3854,42 @@ class AppController extends Controller |
3852 | 3854 | |
3853 | 3855 | } // Entité Materiel ou associée |
3854 | 3856 | |
3855 | - // - (3a) Commande de matériel : commentaire spécial pour le gestionnaire | |
3856 | - //sdebug($action); | |
3857 | - if ($action=='statusTobeordered') { | |
3858 | - $msg_mail .= "\n\n"; | |
3859 | - $msg_mail .= "\n\nMERCI DE BIEN VOULOIR PASSER COMMANDE DE CE MATÉRIEL"; | |
3860 | - $msg_mail .= " (un devis a normalement été joint par l'acheteur à la fiche matériel - url ci-dessus)."; | |
3861 | - $msg_mail .= "\n\n"; | |
3862 | - } | |
3863 | - | |
3864 | - // - (3b) Matos only (sauf delete, dévalidé, TBA et archive) : "Veuillez vérifier la fiche matériel..." | |
3865 | - $actions_no_need_to_be_checked = ['view', 'index', 'delete', 'statusCreated', 'statusTobearchived', 'statusArchived']; | |
3857 | + // - 4.1.3 - Matos only (sauf delete, dévalidé, TBA et archive) : "Veuillez vérifier la fiche matériel..." | |
3858 | + $actions_no_need_to_be_checked = ['view', 'index', 'delete', 'statusCreated', 'statusTobeordered', 'statusTobearchived', 'statusArchived']; | |
3866 | 3859 | if ( $IS_ENTITY_MATERIEL && !in_array($action,$actions_no_need_to_be_checked) ) |
3867 | 3860 | $msg_mail .= "\n\nVeuillez vérifier et compléter si besoin la fiche correspondante."; |
3861 | + | |
3862 | + // - 4.1.4 - Commande de matériel : commentaire spécial pour le gestionnaire | |
3863 | + // Mail spécifique pour le Gestionnaire | |
3864 | + $msg_mail_gestionnaire = $msg_mail; // clone (php7) | |
3865 | + if ($action=='statusTobeordered') { | |
3866 | + $msg_mail_gestionnaire .= "\n\n"; | |
3867 | + $msg_mail_gestionnaire .= "\n\nMERCI DE BIEN VOULOIR PASSER COMMANDE DE CE MATÉRIEL"; | |
3868 | + $msg_mail_gestionnaire .= " (un devis a normalement été joint par l'acheteur à la fiche matériel - url ci-dessus)."; | |
3869 | + $msg_mail_gestionnaire .= "\n\n"; | |
3870 | + } | |
3868 | 3871 | |
3869 | - // - (4) TOUS : "Vous recevez ce message car... (raison)" | |
3872 | + // - 4.1.5 - FOOTER (tous) : "Vous recevez ce message car... (raison)" | |
3870 | 3873 | //if ($entity) { |
3871 | - $msg_mail .= "\n\nVous recevez ce message car"; | |
3872 | - $raison = " vous êtes concerné(e) par cette action effectuée sur l'inventaire des matériels du laboratoire"; | |
3873 | - if ($action == 'mailDevis') | |
3874 | - $raison .= "\n\n(vous êtes le gestionnaire de référence du matériel)"; | |
3875 | - else | |
3876 | - $raison .= "\n\n(vous êtes l'utilisateur du matériel, ou bien le gestionnaire, ou encore le responsable thématique, métier ou projet)"; | |
3877 | - if ($action != 'mailDevis') | |
3878 | - $raison .= "\n\n(ou alors, vous êtes dans la liste mail spécifique gérée via la page de configuration du logiciel LabInvent)."; | |
3879 | - $msg_mail .= $raison; | |
3874 | + $msg_footer = "\n\nVous recevez ce message car"; | |
3875 | + $raison = " vous êtes concerné(e) par cette action effectuée sur l'inventaire des matériels du laboratoire"; | |
3876 | + if ($action == 'mailDevis') | |
3877 | + $raison .= "\n\n(vous êtes le gestionnaire de référence du matériel)"; | |
3878 | + else | |
3879 | + $raison .= "\n\n(vous êtes l'utilisateur du matériel, ou bien le gestionnaire, ou encore le responsable thématique, métier ou projet)"; | |
3880 | + if ($action != 'mailDevis') | |
3881 | + $raison .= "\n\n(ou alors, vous êtes dans la liste mail spécifique gérée via la page de configuration du logiciel LabInvent)."; | |
3882 | + $msg_footer .= $raison; | |
3880 | 3883 | //} |
3881 | - $DEBUG && debug($msg_mail); | |
3884 | + | |
3885 | + $msg_mail .= $msg_footer; | |
3886 | + $msg_mail_gestionnaire .= $msg_footer; | |
3887 | + | |
3888 | + //$DEBUG && debug($msg_mail); | |
3882 | 3889 | |
3883 | 3890 | |
3884 | 3891 | /* |
3885 | - * 4.B - DESTINATAIRES du mail | |
3892 | + * 4.2 - DESTINATAIRES du mail | |
3886 | 3893 | * |
3887 | 3894 | * On construit la liste des destinataires |
3888 | 3895 | * |
... | ... | @@ -3891,14 +3898,17 @@ class AppController extends Controller |
3891 | 3898 | $mailList = []; |
3892 | 3899 | |
3893 | 3900 | /* |
3894 | - * a) Envoi général (uniquement pour les entités liées à un matériel) | |
3901 | + * 4.2.1 - Envoi général (uniquement pour les entités liées à un matériel) | |
3895 | 3902 | * |
3896 | 3903 | * Si l'envoi général est activé, on ajoute les mails des personnes concernées : |
3897 | - * - (1) le proprio (l'utilisateur) du matériel (sauf s'il est l'acteur de l'action) | |
3898 | - * - (2) le gestionnaire de référence du matos | |
3899 | - * - (3) les responsables métier (mais pas thématique) | |
3904 | + * - (1) C - le Créateur de la fiche matériel (l'Acheteur ou le "Proprio" du matériel) | |
3905 | + * - (2) G(R) - le Gestionnaire de Référence du matos | |
3906 | + * - (3) R - les Responsables métier (mais pas thématique) | |
3900 | 3907 | * - (TODO:) les responsables projet (scientifique et chef projet) |
3901 | 3908 | * - (TODO:) les responsables de pôle (PIME par exemple pour l'IRAP) |
3909 | + * | |
3910 | + * Bien sûr on n'envoie pas de mail à l'ACTEUR de l'action (quelqu'il soit) car il est déjà au courant... | |
3911 | + * | |
3902 | 3912 | */ |
3903 | 3913 | |
3904 | 3914 | // ssi Envoi général activé |
... | ... | @@ -3906,12 +3916,12 @@ class AppController extends Controller |
3906 | 3916 | |
3907 | 3917 | if (!$IS_ENTITY_OTHER) { |
3908 | 3918 | |
3909 | - // - (1) Ajout de l'utilisateur du matériel | |
3919 | + // - (1) C - Ajout du Créateur de la fiche (l'Acheteur, le "Propriétaire" du matériel) | |
3910 | 3920 | //if ($this->userName != $materiel->nom_responsable) $mailList[0] = $materiel->email_responsable; |
3911 | 3921 | //if ($this->userName == $materiel->nom_responsable) |
3912 | 3922 | $mailList[] = $materiel->email_responsable; |
3913 | 3923 | |
3914 | - // - (2) Ajout du Gestionnaire de référence du matos (s'il y en a un) | |
3924 | + // - (2) G(R) - Ajout du Gestionnaire de Référence du matos (s'il y en a un) | |
3915 | 3925 | if ($materiel->gestionnaire_id) { |
3916 | 3926 | $gestionnaire_ref_email = TableRegistry::getTableLocator()->get('Users')->get($materiel->gestionnaire_id)->email; |
3917 | 3927 | $mailList[] = $gestionnaire_ref_email; |
... | ... | @@ -3928,7 +3938,7 @@ class AppController extends Controller |
3928 | 3938 | //->toArray(); |
3929 | 3939 | */ |
3930 | 3940 | |
3931 | - // - (3) Ajout des Responsables de groupe métier (ou thématique) | |
3941 | + // - (3) R - Ajout des Responsables de groupe métier (ou thématique) | |
3932 | 3942 | /* |
3933 | 3943 | $mailsRespMetier = []; |
3934 | 3944 | $mailRespThematique = []; |
... | ... | @@ -3979,7 +3989,7 @@ class AppController extends Controller |
3979 | 3989 | |
3980 | 3990 | |
3981 | 3991 | /* |
3982 | - * b) Envoi à la liste spécifique | |
3992 | + * 4.2.2 - Ajout de la liste spécifique dans la liste des destinataires (mailList) | |
3983 | 3993 | * |
3984 | 3994 | * Si l'envoi à la liste spécifique est activé, |
3985 | 3995 | * on ajoute simplement TOUS les mails de cette liste, |
... | ... | @@ -4007,7 +4017,7 @@ class AppController extends Controller |
4007 | 4017 | |
4008 | 4018 | |
4009 | 4019 | /* |
4010 | - * c) NETTOYAGE | |
4020 | + * 4.2.3 - NETTOYAGE de la mailList | |
4011 | 4021 | * On nettoie la liste des destinataires en supprimant : |
4012 | 4022 | * - (1) les doublons éventuels |
4013 | 4023 | * - (2) l'auteur de l'action (puisqu'il est déjà au courant) |
... | ... | @@ -4034,10 +4044,15 @@ class AppController extends Controller |
4034 | 4044 | if ($found !== false) unset($mailList[$found]); |
4035 | 4045 | // Eventuellement, pour renuméroter (supprime les indices manquants) |
4036 | 4046 | sort($mailList); |
4047 | + | |
4048 | + $DEBUG && debug("\n\n\n2 - EMAILS :\n\n"); | |
4049 | + $DEBUG && debug("Liste destinataires :"); | |
4050 | + $DEBUG && debug($mailList); | |
4051 | + | |
4037 | 4052 | |
4038 | 4053 | |
4039 | 4054 | /* |
4040 | - * 4.C - ENVOI DU MAIL | |
4055 | + * 4.3 - ENVOI DU MAIL à la liste | |
4041 | 4056 | * |
4042 | 4057 | * Enfin, on envoie le mail à toute la liste des destinataires |
4043 | 4058 | */ |
... | ... | @@ -4052,7 +4067,13 @@ class AppController extends Controller |
4052 | 4067 | //if ($mail == $_SESSION['Auth']['User']['mail'][0]) |
4053 | 4068 | //continue; |
4054 | 4069 | //$message = $msg; // Sisi, cette variable $message est utile, m'enfin vous pouvez toujours essayer de la supprimer ..... Et pensez à regarder le contenu de vos mails !!! Sinon ca fait une tumeur |
4055 | - $message = $msg_mail; | |
4070 | + //$message = $msg_mail; | |
4071 | + $message = ($email_addr == $gestionnaire_ref_email) ? $msg_mail_gestionnaire : $msg_mail; | |
4072 | + if ($DEBUG) { | |
4073 | + debug("\n\n- Message to $email_addr :\n\n"); | |
4074 | + debug("Sujet : $subject"); | |
4075 | + debug($message); | |
4076 | + } | |
4056 | 4077 | |
4057 | 4078 | // Si action 'mailDevis', on ajoute le nom du fichier attaché |
4058 | 4079 | if ($action == 'mailDevis') { |
... | ... | @@ -4080,9 +4101,7 @@ class AppController extends Controller |
4080 | 4101 | ////} // entity not null |
4081 | 4102 | |
4082 | 4103 | } //foreach ($mailList as $mail) |
4083 | - $DEBUG && debug("Liste destinataires :"); | |
4084 | - $DEBUG && debug($mailList); | |
4085 | - //$DEBUG && exit; | |
4104 | + $DEBUG && exit; | |
4086 | 4105 | |
4087 | 4106 | return $mailList; |
4088 | 4107 | ... | ... |
src/Model/Entity/Materiel.php
... | ... | @@ -162,7 +162,7 @@ class Materiel extends Entity { |
162 | 162 | //if ($this->is_created) return 'À VALIDER'; |
163 | 163 | if ($this->is_created) return 'CRÉÉ - à valider'; |
164 | 164 | if ($this->is_tobeordered) return 'EN COMMANDE - à valider'; |
165 | - if ($this->is_validated) return 'VALIDÉ'; | |
165 | + if ($this->is_validated) return 'VALIDÉ - livré'; | |
166 | 166 | if ($this->is_tobearchived) return 'À SORTIR'; |
167 | 167 | //if ($this->is_archived) |
168 | 168 | return 'ARCHIVÉ'; | ... | ... |