Bonjour à tous,

je dois faire un script ou plutot une fonction qui permet à partir de montants donnés, et d'un montant saisie (un acompte) de faire une repartition de ce montant.

Par exemple si j'ai le montant p1= 15000 et le montant p2 de 500 et un acompte de 15200 alors p1 deviendra 0 et p2 deviendra 300 (ce qu'il restera) en fait il s'agit d'une repartition, le soucis c'est que j'ai une 20 aine de champs a tester tous identifiés par la lettre p incrémentée d'un numéro.

du coup je me retrouve avec cette fonction à réaliser, mais je m'y perds un peu car cela fait un nombre de conditions infinis, étant donné que l'acompte peut être plus grand que tous les nombres, auquel cas il faut répartir tant que le nombre est > a zero puis passer sur la tranche suivante pour répartir ce qu'il reste.

Enfin pour tester les conditions et le reste, c'est à dire imputer le montant c'est pas un soucis, c'est juste que cela me fait en fait pas mal de conditions car l'acompte peut englober tout ou partie des montants, du coup je me demandais s'il n'existait pas des alternatives plutot que de tester chaque champ?

en php j'aurais fais ça avec une boucle je pense, en javascript je ne sais pas comment procéder.

Par avance merci si vous avez des idée.

Pour l'heure j'ai fais cet ébauche de script mais je me rends compte que je m'y perds dans les conditions.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 <script type="text/javascript">
  function ventilation()
 {
 var montantacompte	= document.getElementById("montantacompte").value;
 var p1				= document.getElementById("p1").value;
 var p2				= document.getElementById("p2").value;	
 var p3				= document.getElementById("p3").value;	
 var p4				= document.getElementById("p4").value;	 
 var p5				= document.getElementById("p5").value;		
 var p7				= document.getElementById("p7").value;	 				
 var p8				= document.getElementById("p8").value;	 
 var p9				= document.getElementById("p9").value;	 
 var p10			= document.getElementById("p10").value;	
 var p11			= document.getElementById("p11").value;	  
 var p12			= document.getElementById("p12").value;	 
 var p13			= document.getElementById("p13").value;
 var m1				= document.getElementById("m1").value;
 var m2				= document.getElementById("m2").value;	
 var m3				= document.getElementById("m3").value;	
 var m4				= document.getElementById("m4").value;	 
 var m5				= document.getElementById("m5").value;		
 var m7				= document.getElementById("m7").value;	 				
 var m8				= document.getElementById("m8").value;	 
 var m9				= document.getElementById("m9").value;	 
 var m10			= document.getElementById("m10").value;	
 var m11			= document.getElementById("m11").value;	  
 var m12			= document.getElementById("m12").value;	 
 var m13			= document.getElementById("m13").value;	 	 
 
 	if(p1>0 &&p1-montantacompte>=0)
	 {
 
		 f1=p1-montantacompte;
		 document.getElementById('p1').value=f1;
		 document.getElementById('o1').value=Math.round(montantacompte*100)/100;
	 }
	 	if(p1>0 &&p1-montantacompte<=(p1+p2))
	 {
		 reste1=montantacompte-p1;
		 impute=p1;
		 impute2=reste1;
		 f1=m1-impute;
		 document.getElementById('p1').value=f1;
		 document.getElementById('o1').value=Math.round(impute*100)/100;
		 document.getElementById('o2').value=Math.round(impute2*100)/100;
 
	 }
 
 }
</script>