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
CHANGES.txt
... ... @@ -94,10 +94,11 @@ Outre ces changements, voici d'autres changements importants :
94 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 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 99 - (i) Corrigé petit bug sur site_id qui valait 2 par défaut (au lieu de null)
100 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 102 - (b) Bugfixed tests => tous ok
102 103 - (b) Bugfixed recherche générale : on peut maintenant chercher aussi un projet
103 104 - (b) Bugfixed et réactivé test date reception > date achat "mais pas trop" (bug sur php5)
... ...
README.md
... ... @@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes :
43 43 --------------------------------------------------------------------------------------------
44 44  
45 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 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 2388 }
2389 2389 }
2390 2390  
  2391 +
  2392 +
2391 2393 /**
2392 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 2400 * @param $msg :
2399 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 2404 public function sendEmail($entity, $subject=null, $msg=null)
2402 2405 {
2403   - /*
  2406 + /S
2404 2407 * $_SESSION['Auth']['User'] pour retrouver TOUTES les infos de la session courante (tout est du string) :
2405 2408 * nom $_SESSION['Auth']['User']['sn'][0]
2406 2409 * prenom $_SESSION['Auth']['User']['givenname'][0]
2407 2410 * mail $_SESSION['Auth']['User']['mail'][0]
2408 2411 * login $_SESSION['Auth']['User']['xxx'][0] /!\ Ce champ est suceptible de changer de nom, dans les tests ce champ est ['cn'][0]
2409 2412 * mdp $_SESSION['Auth']['User']['userpassword'][0]
2410   - */
  2413 + S/
2411 2414 $configuration = $this->confLabinvent;
2412 2415 $action = $this->request->getAttribute('params')['action']; // add or edit or delete or ...
2413 2416  
... ... @@ -2526,7 +2529,7 @@ class AppController extends Controller
2526 2529 // Cela a été mis en commentaire car de toute façon l'utilisateur va voir un administratif pour faire valider sa fiche,
2527 2530 // Pas la peine de spam l'administration de mails non plus hein !
2528 2531  
2529   - /*
  2532 + /S
2530 2533 * if ($action != 'statusValidated' && $action != 'statusArchived') {
2531 2534 * $mailsAdmin = TableRegistry::getTableLocator()->get('Users')->find()->select('email')
2532 2535 * ->where(['role =' => 'Administration'])
... ... @@ -2535,7 +2538,7 @@ class AppController extends Controller
2535 2538 * $mailList[sizeof($mailList)] = $mailsAdmin[$i]['email'];
2536 2539 * }
2537 2540 * }
2538   - */
  2541 + S/
2539 2542 }
2540 2543 } // Materiel
2541 2544  
... ... @@ -2547,13 +2550,13 @@ class AppController extends Controller
2547 2550 } else if ($entity instanceof Emprunt) {
2548 2551 ;
2549 2552 }
2550   - /*
  2553 + /S
2551 2554 * @todo:
2552 2555 * else if ($entity instanceof Configuration) {
2553 2556 * ;
2554 2557 * }
2555 2558 * ... etc ... (il faut qu'on soit plus précis)
2556   - */
  2559 + S/
2557 2560  
2558 2561 // Si l'envoi à la liste spécifiée est activé (et que l'action ne correspond pas à 'printLabelRuban'):
2559 2562 $specificUsers = [];
... ... @@ -2605,7 +2608,11 @@ class AppController extends Controller
2605 2608 }
2606 2609 return $mailList;
2607 2610 }
  2611 + */
2608 2612  
  2613 +
  2614 +
  2615 +
2609 2616 // Fonction d'envoi de mails
2610 2617 private function sendEmailTo($subject, $msg, $mail, $config)
2611 2618 {
... ... @@ -2696,7 +2703,7 @@ class AppController extends Controller
2696 2703 * @param $msg :
2697 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 2709 //$this->myDebug("photo send mail");
... ... @@ -3003,26 +3010,32 @@ class AppController extends Controller
3003 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 3018 //en fonction du mode à l'appel, on utilise un envoi de mail différent
3010 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 3023 case 1 :
3014 3024 $this->sendEmailImgTo("$subject", $message, $mail, $configuration, $nomFic);
3015 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 3029 case 2 :
3019 3030 $this->sendEmailPJTo("$subject", $message, $mail, $configuration, $nomFic);
3020 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 3035 default :
3024 3036 $this->sendEmailTo("$subject", $message, $mail, $configuration);
3025 3037 break;
  3038 +
3026 3039 } // switch
3027 3040 }
3028 3041 } //foreach ($mailList as $mail)
... ...
src/Controller/MaterielsController.php
... ... @@ -1670,7 +1670,9 @@ class MaterielsController extends AppController {
1670 1670 */
1671 1671 $this->Flash->success(__("Le matériel a bien été $verb"));
1672 1672 if ($IS_ADD) {
1673   - $this->sendEmail($materiel);
  1673 + //(EP202009)
  1674 + //$this->sendEmail($materiel);
  1675 + $this->sendmail($materiel);
1674 1676 $id = $materiel->id;
1675 1677 }
1676 1678 //$this->dlog("Materiel $verb = '$materiel->designation' (id=$id)");
... ... @@ -2162,7 +2164,10 @@ class MaterielsController extends AppController {
2162 2164 if ($this->Materiels->delete($materiel)) {
2163 2165 $this->Flash->success(__('Le matériel a bien été supprimé'));
2164 2166 $this->ilog("Materiel $verb = '$materiel' (id=$id)");
2165   - $this->sendEmail($materiel);
  2167 + //(EP202009)
  2168 + //$this->sendEmail($materiel);
  2169 + $this->sendmail($materiel);
  2170 +
2166 2171 } else
2167 2172 $this->Flash->error(__('Le matériel n\'a pas pu être supprimé'));
2168 2173 return $this->redirect([
... ... @@ -2287,6 +2292,7 @@ class MaterielsController extends AppController {
2287 2292  
2288 2293 } // VALIDATED
2289 2294  
  2295 +
2290 2296 // SAVE
2291 2297 $success = False;
2292 2298 // - SAVE KO
... ... @@ -2304,7 +2310,11 @@ class MaterielsController extends AppController {
2304 2310 //évite le double envoi car il y a un envoi de mail a la fonction add et à l'état created
2305 2311 //évite les envois succcessifs si qqn fait une erreur sur la fiche, valide la fiche, et dévalide pour remodifier
2306 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 2318 } // SAVE OK
2309 2319  
2310 2320 if (! $onlyOneMateriel)
... ... @@ -3500,7 +3510,9 @@ class MaterielsController extends AppController {
3500 3510 // Envoi email seulement si etiquette posée
3501 3511 if ($printed) {
3502 3512 // $this->sendEmailToManagement($id);
3503   - $this->sendEmail($materiel);
  3513 + //(EP202009)
  3514 + //$this->sendEmail($materiel);
  3515 + $this->sendmail($materiel);
3504 3516 }
3505 3517 } else {
3506 3518 //debug("save KO");
... ... @@ -3545,7 +3557,10 @@ class MaterielsController extends AppController {
3545 3557 //$this->OLD_printLabel('ruban', $id, $from);
3546 3558 // (EP 202006) NEW METHODE => nécessite le template Materiels/xml/print_label_ruban.ctp
3547 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 /**
... ...