Bonjour alors voici je suis en train de faire un bon de commande mais je n'arrive pas à résoudre un petit pb :
Je voudrais choisir entre deux taux de tva et que le calcul s'effectue en fonction de ce taux.
Voici mon code JS
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 function calculTotal(letter) { var Quantite = parseFloat(document.getElementById("Quantite" + letter).value); var Prix = parseFloat(document.getElementById("Prix" + letter).value); if (Quantite != "" && Prix != "") { document.getElementById("Total" + letter).value = Quantite * Prix; } calculMontant(); } function test_champ(champ) { expr_reg = /^\d*$/ ; // Ci-dessus : expression régulière qui match 0,1 ou plusieurs chiffres ; // de cette façon on vérifie que l'utilisateur entre bien un nombre entier if ( expr_reg.test(champ.value) ) { // c'est bien un nombre entier calcul_form() ; } else { // ce n'est pas un nombre entier alert ("Ce n'est par un nombre entier !") ; document.form1.elements[champ.name].value = "" ; // on efface la valeur entrée erronée calcul_form() ; } } function calculMontant() { var TotalA = parseFloat(document.getElementById("TotalA").value); var TotalB = parseFloat(document.getElementById("TotalB").value); var TotalC = parseFloat(document.getElementById("TotalC").value); var TotalD = parseFloat(document.getElementById("TotalD").value); var TotalE = parseFloat(document.getElementById("TotalE").value); var TotalF = parseFloat(document.getElementById("TotalF").value); var TotalG = parseFloat(document.getElementById("TotalG").value); var TotalH = parseFloat(document.getElementById("TotalH").value); var TotalI = parseFloat(document.getElementById("TotalI").value); var TotalJ = parseFloat(document.getElementById("TotalJ").value); var TotalK = parseFloat(document.getElementById("TotalK").value); var Total = TotalA + TotalB + TotalC + TotalD + TotalE + TotalF + TotalG + TotalH + TotalI + TotalJ + TotalK ; document.getElementById("montant").value = Total; document.getElementById("TVA").value = Total * 0.196; document.getElementById("TTC").value = Total + Total * 0.196; } function champ_verrouille(champ,valeur) { // Remarque : en HTML 4.0, il existe un attribut "read-only" pour la // balise <INPUT TYPE=text> qui interdira de modifier un champ // mais ce que je fais ci-dessous est beaucoup plus sûr !!! // alert ("Ce champ de peut pas être modifié !") ; document.form1.elements[champ.name].value = valeur ; // on remet "valeur" initiale dans champ } function soumettre_form() { if ( document.forms.form1.total.value == 0 ) { alert ("Vous n'avez rien commandé !\n => commande non soumise") ; return false ; } else { // Les 2 lignes ci-dessous devraient être activées pour réellement passer le form. à script CGI // document.form1.method = "POST" ; // document.form1.action = ; document.write ("<H3 ALIGN=center>Commande passée\n pour un montant de " + document.forms.form1.total.value + " Frs</H3>") ; document.close () ; return true ; } }
Et voici le code html qui lui correspond :
Code html : 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175 <BODY BGCOLOR="white" > <table width="100%"> <!--utilisation d'un tableau qui occupera toute la page--> <tr> <td> <table width="100%" align="center" border=1> <tr> <td align="center"> VILLE DE <BR> 1, rue Pasteur<BR> BP9<BR> Tel : 0321645570<BR> Fax : 0321645583<BR> Mel : <BR> Mel : <BR> </td> <td align="center"> <FORM id="form_commande"> Nom du fournisseur : <INPUT TYPE="text" NAME="nom" VALUE="" SIZE="20" MAXLENGth="20"> <BR> Adresse du fournisseur : <INPUT TYPE="text" NAME="nom" VALUE="" SIZE="20" MAXLENGTH="20"> <BR> Ville : <INPUT TYPE="text" NAME="nom" VALUE="" SIZE="20" MAXLENGTH="20"> <BR> FAX : <INPUT TYPE="text" NAME="nom" VALUE="" SIZE="20" MAXLENGTH="20"> <BR> LIEU DE LIVRAISON <SELECT NAME="LIEU" <OPTION VALUE="st">Service technique <OPTION SELECTED VALUE="m">Mairie <OPTION VALUE="elc">Education Loisirs et Citoyenneté </SELECT> </td> <td align="center"> <?php echo "Date du jour : ".date("d-m-Y")."<br>"; //affiche la date du jour d'utilisation du serveur par le client ?> <BR>Action</BR> <INPUT TYPE="checkbox" NAME="Livraison"> Livraison <INPUT TYPE="checkbox" NAME="Retrait"> Retrait <INPUT TYPE="checkbox" NAME="Autre"> Autre <INPUT TYPE="checkbox" NAME="Transmission" CHECKED> Transmettre au fournisseur </td> <tr> <td colspan=4 align="center"> Ne seront reconnus par le Ville de Divion que les services faits en exécution dun bon de commande régulier dûment numéroté, visé et signé par le responsable achat </td> </tr> <TABLE width="100%" BORDER="1" CELLSPACING="0" BGCOLOR="#FFFFAA" > <TR BGCOLOR="#CCCCCC"> <TH WIDTH=70%><B>Réference fournisseur et désignation</B> <TH >Quantité <TH>Prix unitaire <TH>Prix total HT </TR> <TH><INPUT TYPE="text" size="75"> <TH><INPUT TYPE="text" id="QuantiteA" NAME="QuantiteA" SIZE="3" MAXLENGTH="4" onchange="calculTotal('A')" onkeyup="calculTotal('A')" value="0" > <TH><INPUT TYPE="text" id="PrixA" NAME="PrixA" SIZE="8" MAXLENGTH="4" type="hidden" onchange="calculTotal('A')" onkeyup="calculTotal('A')" value="0" > <TH><input name="TotalA" type="text" id="TotalA" onchange="calculMontant()" value="0" /> <TR BGCOLOR="#CCCCCC"> <TH><INPUT TYPE="text" size="75"> <TH><INPUT TYPE="text" id="QuantiteB" NAME="QuantiteB" SIZE="3" MAXLENGTH="4" onchange="calculTotal('B')" onkeyup="calculTotal('B')" value="0" > <TH><INPUT TYPE="text" id="PrixB" NAME="PrixB" SIZE="8" MAXLENGTH="4" type="hidden" onchange="calculTotal('B')" onkeyup="calculTotal('B')" value="0" > <TH><input name="TotalB" type="text" id="TotalB" onchange="calculMontant()" value="0" /> <TR BGCOLOR="#CCCCCC"> <TH><INPUT TYPE="text" size="75"> <TH><INPUT TYPE="text" id="QuantiteC" NAME="QuantiteC" SIZE="3" MAXLENGTH="4" onchange="calculTotal('C')" onkeyup="calculTotal('C')" value="0" > <TH><INPUT TYPE="text" id="PrixC" NAME="PrixC" SIZE="8" MAXLENGTH="4" type="hidden" onchange="calculTotal('C')" onkeyup="calculTotal('C')" value="0" > <TH><input name="TotalC" type="text" id="TotalC" onchange="calculMontant()" value="0" /> <TR BGCOLOR="#CCCCCC"> <TH><INPUT TYPE="text" size="75"> <TH><INPUT TYPE="text" id="QuantiteD" NAME="QuantiteD" SIZE="3" MAXLENGTH="4" onchange="calculTotal('D')" onkeyup="calculTotal('D')" value="0" > <TH><INPUT TYPE="text" id="PrixD" NAME="PrixD" SIZE="8" MAXLENGTH="4" type="hidden" onchange="calculTotal('D')" onkeyup="calculTotal('D')" value="0" > <TH><input name="TotalD" type="text" id="TotalD" onchange="calculMontant()" value="0" /> <TR BGCOLOR="#CCCCCC"> <TH><INPUT TYPE="text" size="75"> <TH><INPUT TYPE="text" id="QuantiteE" NAME="QuantiteE" SIZE="3" MAXLENGTH="4" onchange="calculTotal('E')" onkeyup="calculTotal('E')" value="0" > <TH><INPUT TYPE="text" id="PrixE" NAME="PrixE" SIZE="8" MAXLENGTH="4" type="hidden" onchange="calculTotal('E')" onkeyup="calculTotal('E')" value="0" > <TH><input name="TotalE" type="text" id="TotalE" onchange="calculMontant()" value="0" /> <TR BGCOLOR="#CCCCCC"> <TH><INPUT TYPE="text" size="75"> <TH><INPUT TYPE="text" id="QuantiteF" NAME="QuantiteF" SIZE="3" MAXLENGTH="4" onchange="calculTotal('F')" onkeyup="calculTotal('F')" value="0" > <TH><INPUT TYPE="text" id="PrixF" NAME="PrixF" SIZE="8" MAXLENGTH="4" type="hidden" onchange="calculTotal('F')" onkeyup="calculTotal('F')" value="0" > <TH><input name="TotalF" type="text" id="TotalF" onchange="calculMontant()" value="0" /> <TR BGCOLOR="#CCCCCC"> <TH><INPUT TYPE="text" size="75"> <TH><INPUT TYPE="text" id="QuantiteG" NAME="QuantiteG" SIZE="3" MAXLENGTH="4" onchange="calculTotal('G')" onkeyup="calculTotal('G')" value="0" > <TH><INPUT TYPE="text" id="PrixG" NAME="PrixG" SIZE="8" MAXLENGTH="4" type="hidden" onchange="calculTotal('G')" onkeyup="calculTotal('G')" value="0" > <TH><input name="TotalG" type="text" id="TotalG" onchange="calculMontant()" value="0" /> <TR BGCOLOR="#CCCCCC"> <TH><INPUT TYPE="text" size="75"> <TH><INPUT TYPE="text" id="QuantiteH" NAME="QuantiteH" SIZE="3" MAXLENGTH="4" onchange="calculTotal('H')" onkeyup="calculTotal('H')" value="0" > <TH><INPUT TYPE="text" id="PrixH" NAME="PrixH" SIZE="8" MAXLENGTH="4" type="hidden" onchange="calculTotal('H')" onkeyup="calculTotal('H')" value="0" > <TH><input name="TotalH" type="text" id="TotalH" onchange="calculMontant()" value="0" /> <TR BGCOLOR="#CCCCCC"> <TH><INPUT TYPE="text" size="75"> <TH><INPUT TYPE="text" id="QuantiteI" NAME="QuantiteI" SIZE="3" MAXLENGTH="4" onchange="calculTotal('I')" onkeyup="calculTotal('I')" value="0" > <TH><INPUT TYPE="text" id="PrixI" NAME="PrixI" SIZE="8" MAXLENGTH="4" type="hidden" onchange="calculTotal('I')" onkeyup="calculTotal('I')" value="0" > <TH><input name="TotalI" type="text" id="TotalI" onchange="calculMontant()" value="0" /> <TR BGCOLOR="#CCCCCC"> <TH><INPUT TYPE="text" size="75"> <TH><INPUT TYPE="text" id="QuantiteJ" NAME="QuantiteJ" SIZE="3" MAXLENGTH="4" onchange="calculTotal('J')" onkeyup="calculTotal('J')" value="0" > <TH><INPUT TYPE="text" id="PrixJ" NAME="PrixJ" SIZE="8" MAXLENGTH="4" type="hidden" onchange="calculTotal('J')" onkeyup="calculTotal('J')" value="0" > <TH><input name="TotalJ" type="text" id="TotalJ" onchange="calculMontant()" value="0" /> <TR BGCOLOR="#CCCCCC"> <TH><INPUT TYPE="text" size="75"> <TH><INPUT TYPE="text" id="QuantiteK" NAME="QuantiteK" SIZE="3" MAXLENGTH="4" onchange="calculTotal('K')" onkeyup="calculTotal('K')" value="0" > <TH><INPUT TYPE="text" id="PrixK" NAME="PrixK" SIZE="8" MAXLENGTH="4" type="hidden" onchange="calculTotal('K')" onkeyup="calculTotal('K')" value="0" > <TH><input name="TotalK" type="text" id="TotalK" onchange="calculMontant()" value="0" /> <tr> <td> </td> <td> </td> <td><strong>Total Montant</strong></td> <td><strong> <input type="text" name="montant" id="montant" onClick="calculMontant()" value="0" /> </strong></td> </tr> <tr> <td> </td> <td> </td> <td>Dont TVA 19,6%</td> <td><input type="text" name="TVA" id="TVA" value="0" /></td> </tr> <tr> <td> </td> <td> </td> <td>Total TTC</td> <td><input type="text" name="TTC" id="TTC" value="0" /></td> </tr> </tbody> </table> </fieldset> <p> <label> <input type="submit" name="envoyer" id="envoyer" value="Envoyer" /> </label> </p> </form> </BODY>
De plus je pense que ce code peut être optimisé si jamais vous avez des idées je suis preneur.
Cordialement
Cheg
Partager