Commit 7b381e28fbfff04e0c411e288d29da43726213de
1 parent
6b84d623
Exists in
master
and in
1 other branch
date fin garantie : orange quand < 1 an, rouge quand expirée (et mieux
calculée qu'avant) v5.2.27-3.7.9
Showing
7 changed files
with
91 additions
and
49 deletions
Show diff stats
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 && $configuration->hasPrinter && $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 && $configuration->hasPrinter && $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; | ... | ... |