Blame view

webroot/js/Verifications_dates_materiels.js 5.08 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 */
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
27
	/* 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);
	});
a0fefb3d   Thibaud Ajas   bugfixes suite au...
32
33

	/* Puis si nécessaire on update la date de fin de gurantie au chargement de la page */
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
34
	if ($("#date-fin-garantie")[0].value != "") date_fin_garantie_update();
a0fefb3d   Thibaud Ajas   bugfixes suite au...
35
36

	/* Et enfin les events purs */
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
	/*
	$("#date-reception").change(
		function(event) { date_fin_garantie_update(); }
	);
	*/
	$("#date-reception").change(
		function(event) { 
			if(!checkDate(this.value)) {
			    	alert("Les dates doivent être de la forme dd-mm-YYYY");
				event.preventDefault();
			}
			else {
				date_fin_garantie_update(); 
			}
		}
	);
	$("#duree-garantie").bind("change", function(event) { date_fin_garantie_update(); });
	$("#unite-duree-garantie").bind("change", function(event) { date_fin_garantie_update(); });
	/*$("#date-fin-garantie").bind("change", function(event) { $("#duree-garantie")[0].value = "" });*/
	$("#date-fin-garantie").change(
			function(event) { 
				if(!checkDate(this.value)) {
				    	alert("Les dates doivent être de la forme dd-mm-YYYY");
					event.preventDefault();
				}
				else {
					$("#duree-garantie")[0].value = ""; 
				}
			}
		);
a0fefb3d   Thibaud Ajas   bugfixes suite au...
67
68
69
70
71
72
73
74
75
76
77
78
79

	/**
	 * Event - à la validation, on vérifie les dates
	 */
	$( ".form" ).submit(function( event ) {
		s1 = $("#date-acquisition")[0].value;
		s2 = $("#date-reception")[0].value;
		s3 = $("#date-fin-garantie")[0].value;
// 		if () {
// 			alert("Les dates doivent être de la forme dd-mm-YYYY");
// 			event.preventDefault();
// 		}
		
34695ff4   Etienne Pallier   Bugfix saisie dat...
80
		/* EP deactivated, works but no more necessary
a0fefb3d   Thibaud Ajas   bugfixes suite au...
81
82
83
84
85
86
87
88
89
90
91
		$bool = false;
		$('.datepicker').each(function(){
			if(this.value != "" && $bool == false) {
				console.log(this.value);
			    if(!checkDate(this.value)){
			    	$bool = true;
			    	alert("Les dates doivent être de la forme dd-mm-YYYY");
					event.preventDefault();
			    }
			}
		});
34695ff4   Etienne Pallier   Bugfix saisie dat...
92
		*/
a0fefb3d   Thibaud Ajas   bugfixes suite au...
93
94
95
96
97
		
		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 */
		
34695ff4   Etienne Pallier   Bugfix saisie dat...
98
		/* EP deactivated, works but no more necessary
a0fefb3d   Thibaud Ajas   bugfixes suite au...
99
100
101
102
103
104
		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();
			}
		}
34695ff4   Etienne Pallier   Bugfix saisie dat...
105
		*/
a0fefb3d   Thibaud Ajas   bugfixes suite au...
106
107
108
109
110
111
112
113

		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();
			}
		}
		
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
114
	}); /* On SUBMIT */
a0fefb3d   Thibaud Ajas   bugfixes suite au...
115
116
117
118
119
120
});

/**
 * Fonction qui vérifie que la date en parametre soit bien au format dd-mm-YYYY ou d-m-YYYY
 */
function checkDate(str) {
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
121
122
  //return str.match(/^(\d{1,2})-(\d{1,2})-(\d{4})$/);
  return str.match(/^(\d{2})-(\d{2})-(\d{4})$/);
a0fefb3d   Thibaud Ajas   bugfixes suite au...
123
124
125
}

/**
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
126
 * Fonction qui passe l'année de deux à quatres chiffres
a0fefb3d   Thibaud Ajas   bugfixes suite au...
127
128
129
130
131
132
133
134
135
136
137
138
139
 */
function twoToFour(str) {
	if (str.match(/^(\d{1,2})-(\d{1,2})-(\d{2})$/)) {
		tabStr = str.split("-");
		tabStr[2] = "20"+tabStr[2];
		str = tabStr[0]+"-"+tabStr[1]+"-"+tabStr[2];
	}
	return str;
}

/**
* Fonction de mise à jour de la date de fin de guarantie
*/
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
140
function date_fin_garantie_update() {
a0fefb3d   Thibaud Ajas   bugfixes suite au...
141
	if ($("#date-reception").val() != "" && $("#duree-garantie").val() != "") {
cda3b8ff   Etienne Pallier   Bugfix saisie dat...
142
143
144
145
146
147
148
149
150
151
		/* EP added this : 
		$('.datepicker').each(function(){
			this.value = this.value.replace(/\//g, "-");
			this.value = twoToFour(this.value);
		});
		*/
		$("#date-reception").each(function(){
			this.value = twoToFour(this.value);
		});
		
a0fefb3d   Thibaud Ajas   bugfixes suite au...
152
153
154
155
156
157
158
159
160
161
162
163
164
165
		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) {
			$("#date-fin-garantie").val(data)
		});
	}
}

/**
* 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...
166
/* (EP 20200407 moved to webroot/js/script.js
a0fefb3d   Thibaud Ajas   bugfixes suite au...
167
168
169
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...
170
	/S 	new Date(YYYY, mm+1, dd, 12, 00, 00)
a0fefb3d   Thibaud Ajas   bugfixes suite au...
171
172
173
		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...
174
175
176
	S/
}
*/