Commit 727b4dd08f270214b2d77e4c22474d0c88bbf620

Authored by mimelhaine
2 parents defaf950 5b54a286

Merge branch 'master' into dev

Conflicts:
	src/Controller/AppController.php
	src/Controller/DocumentsController.php
	src/Model/Table/DocumentsTable.php
	src/Template/Documents/edit.ctp
	src/Template/Layout/Formules/add.ctp
	src/Template/Layout/Formules/edit.ctp
	src/Template/Layout/Formules/index.ctp
	src/Template/Layout/Formules/view.ctp
	src/Template/Materiels/index.ctp
	src/Template/Pages/tools_menu_sm.ctp
	src/Template/Suivis/add.ctp
	src/Template/Suivis/view.ctp
README-LABINVENT.md
@@ -47,20 +47,9 @@ Logiciel testé et validé sur les configurations suivantes : @@ -47,20 +47,9 @@ Logiciel testé et validé sur les configurations suivantes :
47 47
48 VERSION ACTUELLE 48 VERSION ACTUELLE
49 49
50 -Date: 23/01/2018  
51 -Version: 2.8.0.7  
52 - Nombreux bugfixes :  
53 - - phase installation, structure BD, ...  
54 - - Export des matériels :  
55 - - Num cde : vide !!!  
56 - - autres champs vides : Fournisseur - Etop - num serie - Nom utilisateur  
57 - - Fiche PDF du matériel: plusieurs champs manquants  
58 - - Bug affichage résultat recherche (contenu ne correspond pas aux colonnes, et certains contenus sont absents!!)  
59 - - Listes export : supprimer champ id  
60 - - Bug étiquette : organisme ne s'affiche plus  
61 - - Bug doc admission  
62 -  
63 -ATTENTION : Mise à jour de la base de données requise (cf database/update) 50 +Date: 02/02/2018
  51 +Version: 2.8.1.0
  52 + Modif format étiquette
64 53
65 Version majeure en cours (2.8): https://projects.irap.omp.eu/versions/162 54 Version majeure en cours (2.8): https://projects.irap.omp.eu/versions/162
66 55
src/Controller/AppController.php
@@ -1387,3 +1387,4 @@ class AppController extends Controller @@ -1387,3 +1387,4 @@ class AppController extends Controller
1387 return $mailList; 1387 return $mailList;
1388 } 1388 }
1389 } 1389 }
  1390 +
src/Controller/DocumentsController.php 100644 → 100755
@@ -635,6 +635,8 @@ class DocumentsController extends AppController @@ -635,6 +635,8 @@ class DocumentsController extends AppController
635 $this->set(compact('suivi', 'unite', 'fiche', 'symbole', 'mesures')); 635 $this->set(compact('suivi', 'unite', 'fiche', 'symbole', 'mesures'));
636 $this->set('fpdf', new FPDF('P', 'mm', 'A4')); 636 $this->set('fpdf', new FPDF('P', 'mm', 'A4'));
637 } 637 }
  638 +
  639 +
638 640
639 /* 641 /*
640 * Envoi de mail - cette fonction sera appelée si l'on clique sur le bouton envelloppe d'un document sur la page vue d'un matériel 642 * Envoi de mail - cette fonction sera appelée si l'on clique sur le bouton envelloppe d'un document sur la page vue d'un matériel
@@ -682,6 +684,5 @@ class DocumentsController extends AppController @@ -682,6 +684,5 @@ class DocumentsController extends AppController
682 $document->suivi_id 684 $document->suivi_id
683 ]); 685 ]);
684 } 686 }
685 -  
686 } 687 }
687 } 688 }
src/Model/Table/DocumentsTable.php
@@ -71,12 +71,11 @@ class DocumentsTable extends AppTable @@ -71,12 +71,11 @@ class DocumentsTable extends AppTable
71 71
72 $validator->allowEmpty('suivi_id'); 72 $validator->allowEmpty('suivi_id');
73 73
74 - //le nom du doc ne doit pas contenir de termes non alphanumérique, cela crée des problèmes pour les dl  
75 $validator->add('nom', 'alphaNumeric', [ 74 $validator->add('nom', 'alphaNumeric', [
76 - 'rule' => 'alphaNumeric',  
77 - 'message' => __('Le nom du document ne doit contenir que des chiffres et des lettres.'),  
78 - ]);  
79 - 75 + 'rule' => 'alphaNumeric',
  76 + 'message' => __('Le nom du document ne doit contenir que des chiffres et des lettres.'),
  77 + ]);
  78 +
80 return $validator; 79 return $validator;
81 } 80 }
82 81
@@ -204,10 +203,8 @@ class DocumentsTable extends AppTable @@ -204,10 +203,8 @@ class DocumentsTable extends AppTable
204 } 203 }
205 $nom=$id."_".$entity->get('nom')."_".$entity->get('id'). '.' . $extension; 204 $nom=$id."_".$entity->get('nom')."_".$entity->get('id'). '.' . $extension;
206 if ($entity->get('photo')) { 205 if ($entity->get('photo')) {
207 - //move_uploaded_file($file['tmp_name'], 'img' . DS . 'photos' . DS . $entity->get('id') . '.' . $extension);  
208 move_uploaded_file($file['tmp_name'], 'img' . DS . 'photos' . DS . $nom ); 206 move_uploaded_file($file['tmp_name'], 'img' . DS . 'photos' . DS . $nom );
209 } else { 207 } else {
210 - //move_uploaded_file($file['tmp_name'], 'files' . DS . $entity->get('id') . '.' . $extension);  
211 move_uploaded_file($file['tmp_name'], 'files' . DS . $nom ); 208 move_uploaded_file($file['tmp_name'], 'files' . DS . $nom );
212 } 209 }
213 } 210 }
src/Template/Documents/edit.ctp
@@ -25,6 +25,7 @@ @@ -25,6 +25,7 @@
25 } 25 }
26 26
27 //On met le nom du doc en read only vu qu'il apparait dans le nom du fichier sur le serveur 27 //On met le nom du doc en read only vu qu'il apparait dans le nom du fichier sur le serveur
  28 +
28 //et une opération pour remodifier ces fichiers peut être lourd en complexité 29 //et une opération pour remodifier ces fichiers peut être lourd en complexité
29 echo $this->Form->input('nom', ['readonly' => true]); 30 echo $this->Form->input('nom', ['readonly' => true]);
30 31
src/Template/Materiels/index.ctp
@@ -200,8 +200,6 @@ if (in_array($materiel->status, [ @@ -200,8 +200,6 @@ if (in_array($materiel->status, [
200 $materiel ->nom_responsable 200 $materiel ->nom_responsable
201 ]))) ||($role == 'Responsable' && ((isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id) || (isset($priviledgedUser->groupe_thematique_id) && $priviledgedUser->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id)))) { 201 ]))) ||($role == 'Responsable' && ((isset($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id) || (isset($priviledgedUser->groupe_thematique_id) && $priviledgedUser->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id)))) {
202 ?> 202 ?>
203 -  
204 -  
205 <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $materiel->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> 203 <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $materiel->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?>
206 <?php } endif; ?> 204 <?php } endif; ?>
207 205
src/Template/Suivis/add.ctp
@@ -131,6 +131,8 @@ echo $this-&gt;element(&#39;menu_form&#39;, [ @@ -131,6 +131,8 @@ echo $this-&gt;element(&#39;menu_form&#39;, [
131 document.getElementById('typedemesure').innerHTML = ""; 131 document.getElementById('typedemesure').innerHTML = "";
132 $('#listes').hide(); 132 $('#listes').hide();
133 } 133 }
  134 + //gère l'affichage dynamique après choix du type de suivi
  135 +
134 if( domaineId == "Panne"){ 136 if( domaineId == "Panne"){
135 document.getElementById('frequence').innerHTML = ""; 137 document.getElementById('frequence').innerHTML = "";
136 $("#frequence").hide(); 138 $("#frequence").hide();
webroot/js/Verifications_dates_materiels.js
@@ -22,20 +22,46 @@ $(document).ready(function () { @@ -22,20 +22,46 @@ $(document).ready(function () {
22 * Event calcul date fin de garantie 22 * Event calcul date fin de garantie
23 */ 23 */
24 /* On formatte COMME IL FAUT les dates des formulaires */ 24 /* On formatte COMME IL FAUT les dates des formulaires */
  25 + /* EP deactivated, works but no more necessary ?*/
25 $('.datepicker').each(function(){ 26 $('.datepicker').each(function(){
26 this.value = this.value.replace(/\//g, "-"); 27 this.value = this.value.replace(/\//g, "-");
27 this.value = twoToFour(this.value); 28 this.value = twoToFour(this.value);
28 }); 29 });
29 -  
30 30
31 /* Puis si nécessaire on update la date de fin de gurantie au chargement de la page */ 31 /* Puis si nécessaire on update la date de fin de gurantie au chargement de la page */
32 - if ($("#date-fin-garantie")[0].value != "") dateUpdate(); 32 + if ($("#date-fin-garantie")[0].value != "") date_fin_garantie_update();
33 33
34 /* Et enfin les events purs */ 34 /* Et enfin les events purs */
35 - $("#date-reception").change( function(event) { dateUpdate(); });  
36 - $("#duree-garantie").bind("change", function(event) { dateUpdate(); });  
37 - $("#unite-duree-garantie").bind("change", function(event) { dateUpdate(); });  
38 - $("#date-fin-garantie").bind("change", function(event) { $("#duree-garantie")[0].value = "" }); 35 + /*
  36 + $("#date-reception").change(
  37 + function(event) { date_fin_garantie_update(); }
  38 + );
  39 + */
  40 + $("#date-reception").change(
  41 + function(event) {
  42 + if(!checkDate(this.value)) {
  43 + alert("Les dates doivent être de la forme dd-mm-YYYY");
  44 + event.preventDefault();
  45 + }
  46 + else {
  47 + date_fin_garantie_update();
  48 + }
  49 + }
  50 + );
  51 + $("#duree-garantie").bind("change", function(event) { date_fin_garantie_update(); });
  52 + $("#unite-duree-garantie").bind("change", function(event) { date_fin_garantie_update(); });
  53 + /*$("#date-fin-garantie").bind("change", function(event) { $("#duree-garantie")[0].value = "" });*/
  54 + $("#date-fin-garantie").change(
  55 + function(event) {
  56 + if(!checkDate(this.value)) {
  57 + alert("Les dates doivent être de la forme dd-mm-YYYY");
  58 + event.preventDefault();
  59 + }
  60 + else {
  61 + $("#duree-garantie")[0].value = "";
  62 + }
  63 + }
  64 + );
39 65
40 /** 66 /**
41 * Event - à la validation, on vérifie les dates 67 * Event - à la validation, on vérifie les dates
@@ -49,6 +75,7 @@ $(document).ready(function () { @@ -49,6 +75,7 @@ $(document).ready(function () {
49 // event.preventDefault(); 75 // event.preventDefault();
50 // } 76 // }
51 77
  78 + /* EP deactivated, works but no more necessary
52 $bool = false; 79 $bool = false;
53 $('.datepicker').each(function(){ 80 $('.datepicker').each(function(){
54 if(this.value != "" && $bool == false) { 81 if(this.value != "" && $bool == false) {
@@ -60,17 +87,20 @@ $(document).ready(function () { @@ -60,17 +87,20 @@ $(document).ready(function () {
60 } 87 }
61 } 88 }
62 }); 89 });
  90 + */
63 91
64 d1 = toDate($("#date-acquisition")[0].value); /* Date de la commande */ 92 d1 = toDate($("#date-acquisition")[0].value); /* Date de la commande */
65 d2 = toDate($("#date-reception")[0].value); /* Date de réception */ 93 d2 = toDate($("#date-reception")[0].value); /* Date de réception */
66 d3 = toDate($("#date-fin-garantie")[0].value); /* Date fin de garantie */ 94 d3 = toDate($("#date-fin-garantie")[0].value); /* Date fin de garantie */
67 95
  96 + /* EP deactivated, works but no more necessary
68 if($("#date-reception")[0].value != undefined){ 97 if($("#date-reception")[0].value != undefined){
69 if(d1 > d2) { 98 if(d1 > d2) {
70 alert("Les dates ne correspondent pas, la date de réception doit être supérieure à la date de commande."); 99 alert("Les dates ne correspondent pas, la date de réception doit être supérieure à la date de commande.");
71 event.preventDefault(); 100 event.preventDefault();
72 } 101 }
73 } 102 }
  103 + */
74 104
75 if($("#date-reception")[0].value != undefined){ 105 if($("#date-reception")[0].value != undefined){
76 if(d2 > d3) { 106 if(d2 > d3) {
@@ -79,18 +109,19 @@ $(document).ready(function () { @@ -79,18 +109,19 @@ $(document).ready(function () {
79 } 109 }
80 } 110 }
81 111
82 - }); 112 + }); /* On SUBMIT */
83 }); 113 });
84 114
85 /** 115 /**
86 * Fonction qui vérifie que la date en parametre soit bien au format dd-mm-YYYY ou d-m-YYYY 116 * Fonction qui vérifie que la date en parametre soit bien au format dd-mm-YYYY ou d-m-YYYY
87 */ 117 */
88 function checkDate(str) { 118 function checkDate(str) {
89 - return str.match(/^(\d{1,2})-(\d{1,2})-(\d{4})$/); 119 + //return str.match(/^(\d{1,2})-(\d{1,2})-(\d{4})$/);
  120 + return str.match(/^(\d{2})-(\d{2})-(\d{4})$/);
90 } 121 }
91 122
92 /** 123 /**
93 - * Fonction qui passe l'années de deux à quatres chiffres 124 + * Fonction qui passe l'année de deux à quatres chiffres
94 */ 125 */
95 function twoToFour(str) { 126 function twoToFour(str) {
96 if (str.match(/^(\d{1,2})-(\d{1,2})-(\d{2})$/)) { 127 if (str.match(/^(\d{1,2})-(\d{1,2})-(\d{2})$/)) {
@@ -104,8 +135,18 @@ function twoToFour(str) { @@ -104,8 +135,18 @@ function twoToFour(str) {
104 /** 135 /**
105 * Fonction de mise à jour de la date de fin de guarantie 136 * Fonction de mise à jour de la date de fin de guarantie
106 */ 137 */
107 -function dateUpdate() { 138 +function date_fin_garantie_update() {
108 if ($("#date-reception").val() != "" && $("#duree-garantie").val() != "") { 139 if ($("#date-reception").val() != "" && $("#duree-garantie").val() != "") {
  140 + /* EP added this :
  141 + $('.datepicker').each(function(){
  142 + this.value = this.value.replace(/\//g, "-");
  143 + this.value = twoToFour(this.value);
  144 + });
  145 + */
  146 + $("#date-reception").each(function(){
  147 + this.value = twoToFour(this.value);
  148 + });
  149 +
109 var url = document.URL; 150 var url = document.URL;
110 var reg = new RegExp("(materiels).*$", "g"); 151 var reg = new RegExp("(materiels).*$", "g");
111 var dateUrl = url.replace(reg, "Materiels/getDateGarantie/"); 152 var dateUrl = url.replace(reg, "Materiels/getDateGarantie/");