Commit 7b381e28fbfff04e0c411e288d29da43726213de

Authored by Etienne Pallier
1 parent 6b84d623
Exists in master and in 1 other branch dev

date fin garantie : orange quand < 1 an, rouge quand expirée (et mieux

calculée qu'avant)

v5.2.27-3.7.9
CHANGELOG
... ... @@ -377,9 +377,6 @@ Par contre, ok avec FPDF
377 377  
378 378 *) Créer une page qui liste les gestionnaires
379 379  
380   - *) Stats de connexion
381   - - le tri des autres colonnes ne marche plus
382   -
383 380 *)
384 381 Rendre modifiable la config via page web "Gérer les champs obligatoires"
385 382 - OFF_nom_du_champ : 'libellé'
... ... @@ -398,11 +395,6 @@ Par contre, ok avec FPDF
398 395 - numéro inventaire (hidden par défaut pour l'édition)
399 396 - ...
400 397  
401   - *) Terminer la vue index générique :
402   - - AppController->index_generic()
403   - - Template/Common/indexgen.ctp
404   -
405   -
406 398 *) => update matos lifecycle diag
407 399  
408 400 *) Vincent :
... ... @@ -508,17 +500,6 @@ Warning (2): Cannot modify header information - headers already sent by (output
508 500 TODO :
509 501  
510 502  
511   -- resp_credit non modifiable ??? (sur inventirap.irap)
512   - - (b) bugfix champ "responsable crédit" non enregistré (modif perdue) !!!
513   - + valider fiche hyp2
514   -
515   -- ProjetsController minimaliste, doit juste étendre AppController avec un minimum de changement
516   -
517   -- projets/index generic
518   -- emprunts/index generic
519   -- stats/index generic
520   -- users/index generic
521   -
522 503 - add_or_edit() générique
523 504  
524 505 - fusionner elem/button_add_edit et MyHelper echoActionButton...
... ... @@ -532,19 +513,38 @@ TODO :
532 513  
533 514 - gérer les liens url automatiquement dans champ description (rendre cliquable)
534 515  
535   -- saisir pweb2 + extension garantie (bc+fact+bl)
536 516  
537   -- date en orange quand garantie PRESQUE finie (< 1 an), rouge quand finie
538 517  
539   -- un champ obligatoire VIDE doit pouvoir être renseigné !
540 518  
541 519 - améliorer affichage tableau stats :
542 520 - 4415 matos en tout sur index, mais 4406 seulement dans stats
543 521  
544 522  
  523 +
  524 +
  525 +
  526 + - un champ OBLIGATOIRE mais VIDE doit pouvoir être renseigné !
  527 +
  528 +
  529 + *) Stats de connexion
  530 + - le tri des autres colonnes ne marche plus
  531 +
  532 + - saisir pweb2 + extension garantie (bc+fact+bl)
  533 +
  534 +- ProjetsController minimaliste, doit juste étendre AppController avec un minimum de changement
  535 +
  536 +- projets/index generic
  537 +- emprunts/index generic
  538 +- stats/index generic
  539 +- users/index generic
  540 +
545 541 ======= CHANGES =======
546 542  
547 543 -------
  544 +10/11/2021 v5.2.27-3.7.9
  545 + - (e) date fin garantie : date en orange quand < 1 an, rouge quand expirée (et mieux calculée qu'avant)
  546 +
  547 +-------
548 548 10/11/2021 v5.2.26-3.7.9
549 549 - (e) amélioration affichage tableau stats (plus joli et lisible)
550 550 - (i) viré les 2 sudo à la fin de db-update
... ...
README.md
... ... @@ -53,7 +53,7 @@ Logiciel testé et validé sur les configurations suivantes :
53 53 --------------------------------------------------------------------------------------------
54 54  
55 55 Date: 10/11/2021
56   -Version: v5.2.26-3.7.9
  56 +Version: v5.2.27-3.7.9
57 57  
58 58  
59 59 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes)
... ...
src/Template/Element/materiels_list.ctp
1 1 <?php
2 2 use Cake\I18n\Time;
3 3 use Cake\I18n\Date;
  4 +use Cake\I18n\FrozenDate;
4 5  
5 6 // - Variables passées à l'appel de cet élément : $this->element('materiels_list', [...]);
6 7  
... ... @@ -276,10 +277,16 @@ $displayActionButtonsForMateriel = function($materiel, $statuses_color, $usernam
276 277  
277 278 <?php
278 279 // Pour changer la couleur du nom du matos si la garantie est passée
  280 + $today = new FrozenDate();
  281 + $next_year_same_day = new FrozenDate('+1 year');
  282 + //debug("today $today");
  283 + //debug($next_year_same_day);
  284 + /*
279 285 $time = Time::now(); // On récupère la date et l'heure actuelles
280 286 $today = new date("$time->year-$time->month-$time->day"); // On extrait la date pour la vérification de fin de garantie
281 287 //$today = $today->format('Ydm'); // On formatte la date initialement en 31-12-2000 (par exemple) en un format qui pourra etre comparé : 20001231
282 288 $today = $today->format('Ymd'); // On formatte la date initialement en 31-12-2000 (par exemple) en un format qui pourra etre comparé : 20001231
  289 + */
283 290  
284 291 // BOUCLE SUR CHAQUE MATERIEL, ligne par ligne
285 292 //$mc = new MaterielsController();
... ... @@ -290,14 +297,20 @@ $displayActionButtonsForMateriel = function($materiel, $statuses_color, $usernam
290 297 <?php
291 298 // Date fin garantie ?
292 299 $date_color = '';
293   - if ($materiel->date_fin_garantie !== NULL) {
294   - //debug("today $today");
  300 + $date_fin_gar = $materiel->date_fin_garantie;
  301 + if ($date_fin_gar !== NULL) {
  302 + // expirée ?
  303 + //if ($date_fin_gar <= $today) $date_color = 'style="color: #FF0000"';
  304 + if ($date_fin_gar <= $today) $date_color = 'style="color: red"';
  305 + // dans moins d'1 an ?
  306 + elseif ($date_fin_gar <= $next_year_same_day) $date_color = 'style="color: orange"';
  307 + /*
295 308 $timeFin = new time($materiel->date_fin_garantie);
296   - $dateFin = new date("$timeFin->year-$timeFin->month-$timeFin->day");
  309 + $date_fin_gar = new date("$timeFin->year-$timeFin->month-$timeFin->day");
297 310 //$dateFin = $dateFin->format('Ydm');
298   - $dateFin = $dateFin->format('Ymd');
299   - //debug("datefin $dateFin");
300   - if ($today>=$dateFin) $date_color = 'style="color: #FF0000"';
  311 + $date_fin_gar = $dateFin->format('Ymd');
  312 + debug("datefin $date_fin_gar");
  313 + */
301 314 //debug("couleur $date_color");
302 315 }
303 316  
... ...
src/Template/Materiels/add_edit.ctp
... ... @@ -1177,7 +1177,7 @@ if (isset($cpMateriel)) {
1177 1177 // EDIT only
1178 1178 //'disabled' => $DISABLED,
1179 1179 //'disabled' => $READONLY || ( $IS_ADD ? false : $this->MyHelper->isReadonlyField($f, $readonlyFields) ),
1180   - 'disabled' => $this->MyHelper->isReadonlyField($f, $readonlyFields),
  1180 + 'disabled' => $this->MyHelper->isReadonlyField($f, $readonlyFields) && !empty($entity->$f),
1181 1181 'placeholder' => 'Si plusieurs, séparer avec virgule'
1182 1182 ]);
1183 1183  
... ...
src/Template/Materiels/index.ctp
... ... @@ -525,7 +525,7 @@ $displayLegend = function() {
525 525 <i style='color:black'>noir=livré (validé)</i> ;"
526 526 //<i style='color:red'>rouge=à sortir</i> ;
527 527 ." <i style='color:blue'>bleu=archivé</i> ;
528   - (couleur date rouge = <i style='color:red'>fin garantie</i>)
  528 + (couleur date : <i style='color:red'>rouge=fin garantie</i>, <i style='color:orange'>orange=< 1 an</i>)
529 529 </i></p>";
530 530 };
531 531  
... ...
src/Template/Materiels/view.ctp
1 1 <?php
2   -use Cake\I18n\Time;
3   -use Cake\I18n\Date;
4   -use Cake\ORM\TableRegistry;
  2 +#use Cake\I18n\Time;
  3 +#use Cake\I18n\Date;
  4 +#use Cake\ORM\TableRegistry;
  5 +use Cake\I18n\FrozenDate;
  6 +
5 7  
6 8 // (EP 18/5/19)
7 9 // --- Elements set by Controller for this view ---
... ... @@ -619,24 +621,14 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN
619 621 <th style="width: 250px;"></th>
620 622 <th></th>
621 623 </tr>
622   - <?php
623   - // Pour changer la couleur de la date de garantie si elle est passée - Ajout par Thibault Ajas le 02/05/2017
624   - $time = Time::now(); // On récupère la date et l'heure actuelles
625   - $today = new date("$time->year-$time->month-$time->day"); // On extrait la date pour la vérification de fin de garantie
626   - $today = $today->format('Ymd'); // On formatte la date initialement en 31-12-2000 en un format qui pourra etre comparé : 20001231
627   -
628   - if ($entity->date_fin_garantie !== NULL) {
629   - $timeFin = new time($entity->date_fin_garantie);
630   - $dateFin = new date("$timeFin->year-$timeFin->month-$timeFin->day");
631   - $dateFin = $dateFin->format('Ymd');
632   - }
633 624  
  625 + <?php
634 626 //$style_red = 'style="color: #FF0000"';
635 627 $style_red = 'style="color: red"';
  628 + $style_orange = 'style="color: orange"';
636 629 $style_green = 'style="color: green"';
637 630 $style_black = 'style="color: black"';
638   - $style = (isset($dateFin) && $today>=$dateFin) ? $style_red : '';
639   -
  631 +
640 632 /*
641 633 $type = "";
642 634 if (h($entity->materiel_administratif) == 1 && h($entity->materiel_technique) == 1)
... ... @@ -712,7 +704,39 @@ $CAN_PRINT_LABEL = $IS_VALIDATED &amp;&amp; $configuration-&gt;hasPrinter &amp;&amp; $USER_IS_ADMIN
712 704 if (! empty(h($entity->duree_garntie))) {
713 705 $displayElement(__('Duree garantie'), h($entity->duree_garantie) . ' ' . h($entity->unite_duree_garantie));
714 706 }
715   - $displayElement(__('Date fin de garantie'), h($entity->date_fin_garantie), $style);
  707 +
  708 + // - Date fin garantie : passée ?
  709 + // Pour changer la couleur de la date de garantie si elle est passée
  710 + $date_fin_gar = $entity->date_fin_garantie;
  711 + $style_color = '';
  712 + $comment = '';
  713 + if ($date_fin_gar !== NULL) {
  714 + $today = new FrozenDate();
  715 + $next_year_same_day = new FrozenDate('+1 year');
  716 + //debug($next_year_same_day);
  717 + /*
  718 + $time = Time::now(); // On récupère la date et l'heure actuelles
  719 + $today = new date("$time->year-$time->month-$time->day"); // On extrait la date pour la vérification de fin de garantie
  720 + $today = $today->format('Ymd'); // On formatte la date initialement en 31-12-2000 en un format qui pourra etre comparé : 20001231
  721 + */
  722 + // expirée ?
  723 + if ($date_fin_gar <= $today) {
  724 + $style_color = $style_red;
  725 + $comment = ' (expirée)';
  726 + }
  727 + // dans moins d'1 an ?
  728 + elseif ($date_fin_gar <= $next_year_same_day) {
  729 + $style_color = $style_orange;
  730 + $comment = " (dans moins d'1 an)";
  731 + }
  732 + /*
  733 + $timeFin = new time($entity->date_fin_garantie);
  734 + $dateFin = new date("$timeFin->year-$timeFin->month-$timeFin->day");
  735 + $dateFin = $dateFin->format('Ymd');
  736 + */
  737 + }
  738 + $displayElement(__('Date fin de garantie'), h($entity->date_fin_garantie).$comment, $style_color);
  739 +
716 740  
717 741 //$displayElement(__('Statut'), h($entity->status));
718 742 $displayElement(__('Statut'), h($entity->getNiceStatus($entity->status)));
... ...
src/View/Helper/MyHelperHelper.php
... ... @@ -64,6 +64,8 @@ class MyHelperHelper extends Helper {
64 64 $empty=null, $default=null, $type=null, $class=null, $placeholder=null, $value=null
65 65 ) {
66 66  
  67 + $fieldValue = $this->_View->viewVars['entity']->$fieldName;
  68 +
67 69 $options = [
68 70 //'type' => 'text',
69 71 //'label' => $label ? $label : $this->getLabelForFieldName($fieldName),
... ... @@ -86,7 +88,10 @@ class MyHelperHelper extends Helper {
86 88 //'default' => $designations,
87 89 //'default' => $designations->toArray(),
88 90 // EDIT only
89   - 'disabled' => $IS_ADD ? false : $this->isReadonlyField($fieldName, $readonlyFields)
  91 +
  92 + // disabled ssi EDIT && readonly && pas vide (jamais disabled si mode ADD)
  93 + 'disabled' => !$IS_ADD && $this->isReadonlyField($fieldName, $readonlyFields) && !empty($fieldValue)
  94 + //'disabled' => $IS_ADD ? false : $this->isReadonlyField($fieldName, $readonlyFields) && !empty($this->Form->getData($fieldName))
90 95 ];
91 96 //if (!is_null($default)) $options['default'] = $default;
92 97 if (!is_null($value)) $options['value'] = $value;
... ...