Blame view

webroot/js/Verifications_dates_materiels.js 7.84 KB
a0fefb3d   Thibaud Ajas   bugfixes suite au...
1
2
3
4
$(document).ready(function () {
	/**
	 * Event Mail change
	 */
a5909c57   Etienne Pallier   bugfix ldap goes ...
5
	/*
a0fefb3d   Thibaud Ajas   bugfixes suite au...
6
7
8
9
10
11
12
13
14
15
16
17
18
19
	$("#nom-responsable").bind("change", function(event) {
		if ($("#nom-responsable").val() == "") {
			$("#email-responsable").val("");
		} else {
			var url = document.URL;
			var reg = new RegExp("(materiels).*$", "g");
			var emailUrl = url.replace(reg, "Users/getLdapEmail/");
			$.ajax({
				url: emailUrl + $("#nom-responsable").val()
			}).done(function(data) {
				$("#email-responsable").val(data)
			});
		}
	});
a5909c57   Etienne Pallier   bugfix ldap goes ...
20
	*/
a0fefb3d   Thibaud Ajas   bugfixes suite au...
21
22
23
24
25
26


	/**
	 * Event calcul date fin de garantie
	 */
	/* On formatte COMME IL FAUT les dates des formulaires */
6d9f05b7   Etienne Pallier   Amelioration gest...
27
	/* (20200410) EP deactivated, works but no more necessary ?
a0fefb3d   Thibaud Ajas   bugfixes suite au...
28
29
30
31
	$('.datepicker').each(function(){
		this.value = this.value.replace(/\//g, "-");
		this.value = twoToFour(this.value);
	});
6d9f05b7   Etienne Pallier   Amelioration gest...
32
	*/
a0fefb3d   Thibaud Ajas   bugfixes suite au...
33
34

	/* Puis si nécessaire on update la date de fin de gurantie au chargement de la page */
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
35
	if ($("#date-fin-garantie")[0].value != "") date_fin_garantie_update();
6d9f05b7   Etienne Pallier   Amelioration gest...
36
37
38
39
40
41
42
43
44
45
46
47
48
	
	/*
	 *  Vérification date réception > date aquisition
	 */
	$("#date-acquisition").change( function (event) { 
			check_date_acq_inf_date_rec(); 
		} 
	); 
	//$("#date-reception").change (function (event) 	{ check_date_acq_inf_date_rec(); } );
	/*
	$("#date-acquisition").blur( function (event) { check_date_acq_inf_date_rec(); } ); 
	$("#date-reception").blur( function (event) { check_date_acq_inf_date_rec(); } );
	 */ 
a0fefb3d   Thibaud Ajas   bugfixes suite au...
49
50

	/* Et enfin les events purs */
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
51
52
	/*
	$("#date-reception").change(
6d9f05b7   Etienne Pallier   Amelioration gest...
53
		function(event) {
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
54
			if(!checkDate(this.value)) {
6d9f05b7   Etienne Pallier   Amelioration gest...
55
56
			    //alert("Les dates doivent être de la forme dd-mm-YYYY");
			    alert("Les dates doivent être de la forme dd/mm/YYYY");
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
57
58
59
60
61
62
63
				event.preventDefault();
			}
			else {
				date_fin_garantie_update(); 
			}
		}
	);
6d9f05b7   Etienne Pallier   Amelioration gest...
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
	*/
	
	$("#date-reception").change( function(event) {
		if ( (this.value =='') || (!checkDate(this)) || (!check_date_acq_inf_date_rec()) ) {
			if (this.value =='') $(this).removeClass('error');
			//$("#duree-garantie")[0].value = "";
			$("#date-fin-garantie")[0].value = "";
			return true;
		}
		date_fin_garantie_update();
	});
	
	$("#duree-garantie").change( function(event) {
		if (this.value =='') 
			$("#date-fin-garantie")[0].value = "";
		else {
			date_fin_garantie_update();
			$("#date-fin-garantie").removeClass('error');
			$("#date-reception").removeClass('error');
		}
		//if ( this.val() != '' && checkDate(this.value) ) {date_fin_garantie_update();}
	});
	//$("#duree-garantie").bind("change", function(event) { date_fin_garantie_update(); });
	//$("#duree-garantie").change( function(event) { date_fin_garantie_update(); } );
a0fefb3d   Thibaud Ajas   bugfixes suite au...
88

6d9f05b7   Etienne Pallier   Amelioration gest...
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
	//$("#unite-duree-garantie").bind("change", function(event) { date_fin_garantie_update(); });
	$("#unite-duree-garantie").change( function(event) {
		date_fin_garantie_update();
	});
	
	$("#date-fin-garantie").change( function(event) {
		if (this.value =='') { 
			// ne pas laisser supprimer la date garantie si elle peut etre calculée
			date_fin_garantie_update();
			return;
		}
		if ( checkDate(this) )
			check_date_rec_inf_date_gar();
		// on a saisi une date manuellement, donc on supprime la durée de garantie choisie avant
		$("#duree-garantie")[0].value = "";
	});

	
	

	
a0fefb3d   Thibaud Ajas   bugfixes suite au...
110
	/**
6d9f05b7   Etienne Pallier   Amelioration gest...
111
112
113
114
	 * On SUBMIT :
	 * A LA VALIDATION (on submit) => on vérifie les dates qui restent encore invalides 
	 * pour éviter de soumettre des dates invalides
	 * (malgré les alertes déjà données ci-dessus !!!)
a0fefb3d   Thibaud Ajas   bugfixes suite au...
115
	 */
6d9f05b7   Etienne Pallier   Amelioration gest...
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
	$(".form").submit( function(event) {
		
		/*
		// 1) On vérifie chaque date
		$('.datepicker').each( function() {
			if ( this.value!="" && !checkDate(this.value) ) {
		    	alert("Les dates doivent être de la forme JJ/MM/AAAA");
		    	this.focus();
				event.preventDefault();
				return;
			}
		});
		*/
		
		// 2) On applique les règles de gestion sur les dates
		if (!check_date_acq_inf_date_rec() || !check_date_rec_inf_date_gar())
			event.preventDefault();
		/*
		// On simule un changement de chaque date pour déclencher les vérifications de cohérence de dates
		$('.datepicker').each( function(){
			if (this.id != "date-fin-garantie") {
				//console.log(this.id);
				$(this).change(); 
			}
		});
		*/
		//event.preventDefault();
	}); // On SUBMIT


	/*
a0fefb3d   Thibaud Ajas   bugfixes suite au...
147
148
149
		s1 = $("#date-acquisition")[0].value;
		s2 = $("#date-reception")[0].value;
		s3 = $("#date-fin-garantie")[0].value;
6d9f05b7   Etienne Pallier   Amelioration gest...
150
151
152
153
		//if ()
		//	alert("Les dates doivent être de la forme dd-mm-YYYY");
		// 	event.preventDefault();
		//}
a0fefb3d   Thibaud Ajas   bugfixes suite au...
154
		
6d9f05b7   Etienne Pallier   Amelioration gest...
155
		$bool = true; // pour faire un "break" si bool = true
a0fefb3d   Thibaud Ajas   bugfixes suite au...
156
		$('.datepicker').each(function(){
6d9f05b7   Etienne Pallier   Amelioration gest...
157
158
159
160
161
			if ($bool==true && this.value != "") {
				//console.log(this.value);
			    if (!checkDate(this.value)) {
			    	$bool = false;
			    	alert("Les dates doivent être de la forme JJ/MM/AAAA");
a0fefb3d   Thibaud Ajas   bugfixes suite au...
162
163
164
165
					event.preventDefault();
			    }
			}
		});
a0fefb3d   Thibaud Ajas   bugfixes suite au...
166
		
6d9f05b7   Etienne Pallier   Amelioration gest...
167
168
169
		d1 = toDate($("#date-acquisition")[0].value); 	// Date de la commande
		d2 = toDate($("#date-reception")[0].value); 	// Date de réception
		d3 = toDate($("#date-fin-garantie")[0].value); 	// Date fin de garantie
a0fefb3d   Thibaud Ajas   bugfixes suite au...
170
		
6d9f05b7   Etienne Pallier   Amelioration gest...
171
172
		check_date_acq_inf_date_rec();
		/S
a0fefb3d   Thibaud Ajas   bugfixes suite au...
173
174
175
176
177
178
		if($("#date-reception")[0].value != undefined){
			if(d1 > d2) {
				alert("Les dates ne correspondent pas, la date de réception doit être supérieure à la date de commande.");
				event.preventDefault();
			}
		}
6d9f05b7   Etienne Pallier   Amelioration gest...
179
		S/
a0fefb3d   Thibaud Ajas   bugfixes suite au...
180

6d9f05b7   Etienne Pallier   Amelioration gest...
181
182
		check_date_rec_inf_date_gar();
		/S
a0fefb3d   Thibaud Ajas   bugfixes suite au...
183
184
185
186
187
188
		if($("#date-reception")[0].value != undefined){
			if(d2 > d3) {
				alert("Les dates ne correspondent pas, la date de fin de garantie doit être supérieure à la date de réception.");
				event.preventDefault();
			}
		}
6d9f05b7   Etienne Pallier   Amelioration gest...
189
190
191
192
193
194
195
196
197
198
199
200
201
		S/
	}); // On SUBMIT
	*/



}); // $(document).ready






a0fefb3d   Thibaud Ajas   bugfixes suite au...
202
203

/**
6d9f05b7   Etienne Pallier   Amelioration gest...
204
205
206
 * ************************
 * 		FONCTIONS
 * ************************
a0fefb3d   Thibaud Ajas   bugfixes suite au...
207
 */
6d9f05b7   Etienne Pallier   Amelioration gest...
208
209
210
211


// (EP 20200410) Vérification date cde <= date réception
function check_date_acq_inf_date_rec() { 
8fe06187   Etienne Pallier   Renforcement impo...
212
	return check_dates_d1_inf_d2("#date-acquisition", "#date-reception", "La date de réception doit être postérieure à la date d'achat"); 
6d9f05b7   Etienne Pallier   Amelioration gest...
213
214
215
216
}

//(EP 20200410) Vérification date rec <= date garantie
function check_date_rec_inf_date_gar() { 
8fe06187   Etienne Pallier   Renforcement impo...
217
	return check_dates_d1_inf_d2("#date-reception", "#date-fin-garantie", "La date de fin de garantie doit être supérieure à la date de livraison"); 
a0fefb3d   Thibaud Ajas   bugfixes suite au...
218
219
}

6d9f05b7   Etienne Pallier   Amelioration gest...
220

a0fefb3d   Thibaud Ajas   bugfixes suite au...
221
/**
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
222
 * Fonction qui passe l'année de deux à quatres chiffres
a0fefb3d   Thibaud Ajas   bugfixes suite au...
223
224
 */
function twoToFour(str) {
6d9f05b7   Etienne Pallier   Amelioration gest...
225
226
227
228
229
230
	// (20200410 version dd-mm-yy => remplacée par dd/mm/yy)
	//var sep = '-';
	var sep = '/';
	//if (str.match(/^(\d{1,2})-(\d{1,2})-(\d{2})$/)) {
	if (str.match(/^(\d{1,2})\/(\d{1,2})\/(\d{2})$/)) {
		tabStr = str.split(sep);
a0fefb3d   Thibaud Ajas   bugfixes suite au...
231
		tabStr[2] = "20"+tabStr[2];
6d9f05b7   Etienne Pallier   Amelioration gest...
232
		str = tabStr[0]+sep+tabStr[1]+sep+tabStr[2];
a0fefb3d   Thibaud Ajas   bugfixes suite au...
233
234
235
236
237
238
239
	}
	return str;
}

/**
* Fonction de mise à jour de la date de fin de guarantie
*/
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
240
function date_fin_garantie_update() {
6d9f05b7   Etienne Pallier   Amelioration gest...
241
242
	//if ($("#date-reception").val() != "" && $("#duree-garantie").val() != "") {
	if ($("#date-reception").value != "" && $("#duree-garantie").value != "") {
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
243
244
245
246
247
248
		/* EP added this : 
		$('.datepicker').each(function(){
			this.value = this.value.replace(/\//g, "-");
			this.value = twoToFour(this.value);
		});
		*/
6d9f05b7   Etienne Pallier   Amelioration gest...
249
		/*
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
250
251
252
		$("#date-reception").each(function(){
			this.value = twoToFour(this.value);
		});
6d9f05b7   Etienne Pallier   Amelioration gest...
253
		*/
a0fefb3d   Thibaud Ajas   bugfixes suite au...
254
255
256
257
258
259
		var url = document.URL;
		var reg = new RegExp("(materiels).*$", "g");
		var dateUrl = url.replace(reg, "Materiels/getDateGarantie/");
		$.ajax({
			url: dateUrl + $("#date-reception").val() + "/" + $("#duree-garantie").val() + "/" + $("#unite-duree-garantie").val()
		}).done(function(data) {
8fe06187   Etienne Pallier   Renforcement impo...
260
			$("#date-fin-garantie").val(data.trim())
a0fefb3d   Thibaud Ajas   bugfixes suite au...
261
262
263
264
265
266
267
		});
	}
}

/**
* Fonction qui transforme la chaine de format dd-mm-YYYY en date js pour pouvoir être comparée par la suite
*/
de42b839   Etienne Pallier   Amelioration Suiv...
268
/* (EP 20200407 moved to webroot/js/script.js
a0fefb3d   Thibaud Ajas   bugfixes suite au...
269
270
271
function toDate(str) {
	var DateString = str.split("-");
	return new Date(parseInt(DateString[2]), parseInt(DateString[1]) + 1, parseInt(DateString[0]), 12, 00, 00);
de42b839   Etienne Pallier   Amelioration Suiv...
272
	/S 	new Date(YYYY, mm+1, dd, 12, 00, 00)
a0fefb3d   Thibaud Ajas   bugfixes suite au...
273
274
275
		Le +1 du mois est nécessaire car les mois commencent à 0 en JS
		les 3 derniers chiffres ne sont pas nécessaires, mais si on les retire ça bug uniquement sous firefox (il est plus strict que chrome paar exemple)
		et la date devient du grand n'importe quoi 
de42b839   Etienne Pallier   Amelioration Suiv...
276
277
278
	S/
}
*/