Commit 0154a32b69618ee022d43087846cf7911bc4f935

Authored by Etienne Pallier
1 parent 1628a1bf
Exists in master and in 1 other branch dev

Bugfixed envoi mail sur validation

et supprimé ancienne fonction sendEmail() (remplacée par sendmail())

v4.101.11-3.7.9
@@ -94,10 +94,11 @@ Outre ces changements, voici d'autres changements importants : @@ -94,10 +94,11 @@ Outre ces changements, voici d'autres changements importants :
94 ======= CHANGES ======= 94 ======= CHANGES =======
95 95
96 ------- 96 -------
97 -16/09/2020 v4.101.10-3.7.9 (EP) 97 +16/09/2020 v4.101.11-3.7.9 (EP)
98 - (i) Fixtures de tests simplifiées avec utilisation par défaut du format des champs de la BD de production (inutile de s'embêter à tout redéfinir et à tenir à jour !!!) 98 - (i) Fixtures de tests simplifiées avec utilisation par défaut du format des champs de la BD de production (inutile de s'embêter à tout redéfinir et à tenir à jour !!!)
99 - (i) Corrigé petit bug sur site_id qui valait 2 par défaut (au lieu de null) 99 - (i) Corrigé petit bug sur site_id qui valait 2 par défaut (au lieu de null)
100 - (e) Changé format date cache : + nb jours 100 - (e) Changé format date cache : + nb jours
  101 + - (b) Bugfixed envoi mail sur validation, et supprimé ancienne fonction sendEmail() (remplacée par sendmail())
101 - (b) Bugfixed tests => tous ok 102 - (b) Bugfixed tests => tous ok
102 - (b) Bugfixed recherche générale : on peut maintenant chercher aussi un projet 103 - (b) Bugfixed recherche générale : on peut maintenant chercher aussi un projet
103 - (b) Bugfixed et réactivé test date reception > date achat "mais pas trop" (bug sur php5) 104 - (b) Bugfixed et réactivé test date reception > date achat "mais pas trop" (bug sur php5)
@@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes : @@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes :
43 -------------------------------------------------------------------------------------------- 43 --------------------------------------------------------------------------------------------
44 44
45 Date: 15/09/2020 45 Date: 15/09/2020
46 -Version: 4.101.10-3.7.9 46 +Version: 4.101.11-3.7.9
47 47
48 48
49 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes) 49 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes)
src/Controller/AppController.php
@@ -2388,6 +2388,8 @@ class AppController extends Controller @@ -2388,6 +2388,8 @@ class AppController extends Controller
2388 } 2388 }
2389 } 2389 }
2390 2390
  2391 +
  2392 +
2391 /** 2393 /**
2392 * Envoi un mail avec un sujet, contenant un message à destination d'une liste de mails, selon l'action effectuée. 2394 * Envoi un mail avec un sujet, contenant un message à destination d'une liste de mails, selon l'action effectuée.
2393 * 2395 *
@@ -2398,16 +2400,17 @@ class AppController extends Controller @@ -2398,16 +2400,17 @@ class AppController extends Controller
2398 * @param $msg : 2400 * @param $msg :
2399 * Message à envoyer. Si $msg n'est pas renseigné, un message par défaut sera généré. 2401 * Message à envoyer. Si $msg n'est pas renseigné, un message par défaut sera généré.
2400 */ 2402 */
  2403 + /* (EP202009) remplacé par sendmail() plus bas
2401 public function sendEmail($entity, $subject=null, $msg=null) 2404 public function sendEmail($entity, $subject=null, $msg=null)
2402 { 2405 {
2403 - /* 2406 + /S
2404 * $_SESSION['Auth']['User'] pour retrouver TOUTES les infos de la session courante (tout est du string) : 2407 * $_SESSION['Auth']['User'] pour retrouver TOUTES les infos de la session courante (tout est du string) :
2405 * nom $_SESSION['Auth']['User']['sn'][0] 2408 * nom $_SESSION['Auth']['User']['sn'][0]
2406 * prenom $_SESSION['Auth']['User']['givenname'][0] 2409 * prenom $_SESSION['Auth']['User']['givenname'][0]
2407 * mail $_SESSION['Auth']['User']['mail'][0] 2410 * mail $_SESSION['Auth']['User']['mail'][0]
2408 * login $_SESSION['Auth']['User']['xxx'][0] /!\ Ce champ est suceptible de changer de nom, dans les tests ce champ est ['cn'][0] 2411 * login $_SESSION['Auth']['User']['xxx'][0] /!\ Ce champ est suceptible de changer de nom, dans les tests ce champ est ['cn'][0]
2409 * mdp $_SESSION['Auth']['User']['userpassword'][0] 2412 * mdp $_SESSION['Auth']['User']['userpassword'][0]
2410 - */ 2413 + S/
2411 $configuration = $this->confLabinvent; 2414 $configuration = $this->confLabinvent;
2412 $action = $this->request->getAttribute('params')['action']; // add or edit or delete or ... 2415 $action = $this->request->getAttribute('params')['action']; // add or edit or delete or ...
2413 2416
@@ -2526,7 +2529,7 @@ class AppController extends Controller @@ -2526,7 +2529,7 @@ class AppController extends Controller
2526 // Cela a été mis en commentaire car de toute façon l'utilisateur va voir un administratif pour faire valider sa fiche, 2529 // Cela a été mis en commentaire car de toute façon l'utilisateur va voir un administratif pour faire valider sa fiche,
2527 // Pas la peine de spam l'administration de mails non plus hein ! 2530 // Pas la peine de spam l'administration de mails non plus hein !
2528 2531
2529 - /* 2532 + /S
2530 * if ($action != 'statusValidated' && $action != 'statusArchived') { 2533 * if ($action != 'statusValidated' && $action != 'statusArchived') {
2531 * $mailsAdmin = TableRegistry::getTableLocator()->get('Users')->find()->select('email') 2534 * $mailsAdmin = TableRegistry::getTableLocator()->get('Users')->find()->select('email')
2532 * ->where(['role =' => 'Administration']) 2535 * ->where(['role =' => 'Administration'])
@@ -2535,7 +2538,7 @@ class AppController extends Controller @@ -2535,7 +2538,7 @@ class AppController extends Controller
2535 * $mailList[sizeof($mailList)] = $mailsAdmin[$i]['email']; 2538 * $mailList[sizeof($mailList)] = $mailsAdmin[$i]['email'];
2536 * } 2539 * }
2537 * } 2540 * }
2538 - */ 2541 + S/
2539 } 2542 }
2540 } // Materiel 2543 } // Materiel
2541 2544
@@ -2547,13 +2550,13 @@ class AppController extends Controller @@ -2547,13 +2550,13 @@ class AppController extends Controller
2547 } else if ($entity instanceof Emprunt) { 2550 } else if ($entity instanceof Emprunt) {
2548 ; 2551 ;
2549 } 2552 }
2550 - /* 2553 + /S
2551 * @todo: 2554 * @todo:
2552 * else if ($entity instanceof Configuration) { 2555 * else if ($entity instanceof Configuration) {
2553 * ; 2556 * ;
2554 * } 2557 * }
2555 * ... etc ... (il faut qu'on soit plus précis) 2558 * ... etc ... (il faut qu'on soit plus précis)
2556 - */ 2559 + S/
2557 2560
2558 // Si l'envoi à la liste spécifiée est activé (et que l'action ne correspond pas à 'printLabelRuban'): 2561 // Si l'envoi à la liste spécifiée est activé (et que l'action ne correspond pas à 'printLabelRuban'):
2559 $specificUsers = []; 2562 $specificUsers = [];
@@ -2605,7 +2608,11 @@ class AppController extends Controller @@ -2605,7 +2608,11 @@ class AppController extends Controller
2605 } 2608 }
2606 return $mailList; 2609 return $mailList;
2607 } 2610 }
  2611 + */
2608 2612
  2613 +
  2614 +
  2615 +
2609 // Fonction d'envoi de mails 2616 // Fonction d'envoi de mails
2610 private function sendEmailTo($subject, $msg, $mail, $config) 2617 private function sendEmailTo($subject, $msg, $mail, $config)
2611 { 2618 {
@@ -2696,7 +2703,7 @@ class AppController extends Controller @@ -2696,7 +2703,7 @@ class AppController extends Controller
2696 * @param $msg : 2703 * @param $msg :
2697 * Message à envoyer. Si $msg n'est pas renseigné, un message par défaut sera généré. 2704 * Message à envoyer. Si $msg n'est pas renseigné, un message par défaut sera généré.
2698 */ 2705 */
2699 - public function sendmail($entity, $mode, $subject = null, $msg = null) 2706 + public function sendmail($entity, $mode=3, $subject = null, $msg = null)
2700 { 2707 {
2701 2708
2702 //$this->myDebug("photo send mail"); 2709 //$this->myDebug("photo send mail");
@@ -3003,26 +3010,32 @@ class AppController extends Controller @@ -3003,26 +3010,32 @@ class AppController extends Controller
3003 $role =$role .'en tant que ' .'Utilisateur'; 3010 $role =$role .'en tant que ' .'Utilisateur';
3004 //} 3011 //}
3005 */ 3012 */
3006 - if ($entity != null && !in_array($action, ['delete','statusValidated','statusCreated'])) {  
3007 - $message .= "\n\nVeuillez vérifier et compléter si besoin la fiche correspondante.";  
3008 - $message .= "\n\nVous recevez ce message " . $role; 3013 + //if ($entity != null && !in_array($action, ['delete','statusValidated','statusCreated'])) {
  3014 + if ($entity != null) {
  3015 + if (!in_array($action, ['delete']))
  3016 + $message .= "\n\nVeuillez vérifier et compléter si besoin la fiche correspondante.";
  3017 + $message .= "\n\nVous recevez ce message " . $role;
3009 //en fonction du mode à l'appel, on utilise un envoi de mail différent 3018 //en fonction du mode à l'appel, on utilise un envoi de mail différent
3010 switch($mode) { 3019 switch($mode) {
3011 - //si le mode 1 est sélectionné c'est un envoi de mail avec ajout d'une photo  
3012 - //explique le document qui a été ajouté, et le met en pièce jointe 3020 +
  3021 + //si le mode 1 est sélectionné c'est un envoi de mail avec ajout d'une photo
  3022 + //explique le document qui a été ajouté, et le met en pièce jointe
3013 case 1 : 3023 case 1 :
3014 $this->sendEmailImgTo("$subject", $message, $mail, $configuration, $nomFic); 3024 $this->sendEmailImgTo("$subject", $message, $mail, $configuration, $nomFic);
3015 break; 3025 break;
3016 - //si le mode 2 est sélectionné c'est un envoi de mail avec ajout d'un document  
3017 - //à personnaliser 3026 +
  3027 + //si le mode 2 est sélectionné c'est un envoi de mail avec ajout d'un document
  3028 + //à personnaliser
3018 case 2 : 3029 case 2 :
3019 $this->sendEmailPJTo("$subject", $message, $mail, $configuration, $nomFic); 3030 $this->sendEmailPJTo("$subject", $message, $mail, $configuration, $nomFic);
3020 break; 3031 break;
3021 - //si le mode defaut est sélectionné c'est un simple envoi de mail  
3022 - //récapitule une action (mieux pour les add...) 3032 +
  3033 + //si le mode defaut est sélectionné c'est un simple envoi de mail
  3034 + //récapitule une action (mieux pour les add...)
3023 default : 3035 default :
3024 $this->sendEmailTo("$subject", $message, $mail, $configuration); 3036 $this->sendEmailTo("$subject", $message, $mail, $configuration);
3025 break; 3037 break;
  3038 +
3026 } // switch 3039 } // switch
3027 } 3040 }
3028 } //foreach ($mailList as $mail) 3041 } //foreach ($mailList as $mail)
src/Controller/MaterielsController.php
@@ -1670,7 +1670,9 @@ class MaterielsController extends AppController { @@ -1670,7 +1670,9 @@ class MaterielsController extends AppController {
1670 */ 1670 */
1671 $this->Flash->success(__("Le matériel a bien été $verb")); 1671 $this->Flash->success(__("Le matériel a bien été $verb"));
1672 if ($IS_ADD) { 1672 if ($IS_ADD) {
1673 - $this->sendEmail($materiel); 1673 + //(EP202009)
  1674 + //$this->sendEmail($materiel);
  1675 + $this->sendmail($materiel);
1674 $id = $materiel->id; 1676 $id = $materiel->id;
1675 } 1677 }
1676 //$this->dlog("Materiel $verb = '$materiel->designation' (id=$id)"); 1678 //$this->dlog("Materiel $verb = '$materiel->designation' (id=$id)");
@@ -2162,7 +2164,10 @@ class MaterielsController extends AppController { @@ -2162,7 +2164,10 @@ class MaterielsController extends AppController {
2162 if ($this->Materiels->delete($materiel)) { 2164 if ($this->Materiels->delete($materiel)) {
2163 $this->Flash->success(__('Le matériel a bien été supprimé')); 2165 $this->Flash->success(__('Le matériel a bien été supprimé'));
2164 $this->ilog("Materiel $verb = '$materiel' (id=$id)"); 2166 $this->ilog("Materiel $verb = '$materiel' (id=$id)");
2165 - $this->sendEmail($materiel); 2167 + //(EP202009)
  2168 + //$this->sendEmail($materiel);
  2169 + $this->sendmail($materiel);
  2170 +
2166 } else 2171 } else
2167 $this->Flash->error(__('Le matériel n\'a pas pu être supprimé')); 2172 $this->Flash->error(__('Le matériel n\'a pas pu être supprimé'));
2168 return $this->redirect([ 2173 return $this->redirect([
@@ -2287,6 +2292,7 @@ class MaterielsController extends AppController { @@ -2287,6 +2292,7 @@ class MaterielsController extends AppController {
2287 2292
2288 } // VALIDATED 2293 } // VALIDATED
2289 2294
  2295 +
2290 // SAVE 2296 // SAVE
2291 $success = False; 2297 $success = False;
2292 // - SAVE KO 2298 // - SAVE KO
@@ -2304,7 +2310,11 @@ class MaterielsController extends AppController { @@ -2304,7 +2310,11 @@ class MaterielsController extends AppController {
2304 //évite le double envoi car il y a un envoi de mail a la fonction add et à l'état created 2310 //évite le double envoi car il y a un envoi de mail a la fonction add et à l'état created
2305 //évite les envois succcessifs si qqn fait une erreur sur la fiche, valide la fiche, et dévalide pour remodifier 2311 //évite les envois succcessifs si qqn fait une erreur sur la fiche, valide la fiche, et dévalide pour remodifier
2306 //if ($newStatus == 'ARCHIVED' || $newStatus == 'TOBEARCHIVED') { 2312 //if ($newStatus == 'ARCHIVED' || $newStatus == 'TOBEARCHIVED') {
2307 - if (in_array($newStatus,['ARCHIVED','TOBEARCHIVED','VALIDATED'])) $this->sendmail($materiel,3); 2313 + if (in_array($newStatus, [
  2314 + //'CREATED', // Pour Création ET Dé-validation
  2315 + 'ARCHIVED','TOBEARCHIVED','VALIDATED'])
  2316 + )
  2317 + $this->sendmail($materiel,3);
2308 } // SAVE OK 2318 } // SAVE OK
2309 2319
2310 if (! $onlyOneMateriel) 2320 if (! $onlyOneMateriel)
@@ -3500,7 +3510,9 @@ class MaterielsController extends AppController { @@ -3500,7 +3510,9 @@ class MaterielsController extends AppController {
3500 // Envoi email seulement si etiquette posée 3510 // Envoi email seulement si etiquette posée
3501 if ($printed) { 3511 if ($printed) {
3502 // $this->sendEmailToManagement($id); 3512 // $this->sendEmailToManagement($id);
3503 - $this->sendEmail($materiel); 3513 + //(EP202009)
  3514 + //$this->sendEmail($materiel);
  3515 + $this->sendmail($materiel);
3504 } 3516 }
3505 } else { 3517 } else {
3506 //debug("save KO"); 3518 //debug("save KO");
@@ -3545,7 +3557,10 @@ class MaterielsController extends AppController { @@ -3545,7 +3557,10 @@ class MaterielsController extends AppController {
3545 //$this->OLD_printLabel('ruban', $id, $from); 3557 //$this->OLD_printLabel('ruban', $id, $from);
3546 // (EP 202006) NEW METHODE => nécessite le template Materiels/xml/print_label_ruban.ctp 3558 // (EP 202006) NEW METHODE => nécessite le template Materiels/xml/print_label_ruban.ctp
3547 $this->printLabel('ruban', $id, $from); 3559 $this->printLabel('ruban', $id, $from);
3548 - $this->sendEmail($this->Materiels->get($id)); 3560 + //(EP202009)
  3561 + //$this->sendEmail($this->Materiels->get($id));
  3562 + $this->sendmail($this->Materiels->get($id));
  3563 +
3549 } 3564 }
3550 3565
3551 /** 3566 /**