Arf !
Tu l'as appelé opbjp1 dans les param et j'ai copié/collé bêtement![]()
Arf !
Tu l'as appelé opbjp1 dans les param et j'ai copié/collé bêtement![]()
Non ca s'est bon je m'en suis rendu compte aussi....
mais maintenant je me bat avec objprix has no properties.......
La condition que je te parle est if valeur = "1", ou je pense ne pas en avoir besoin vu qu'il prend la valeur du value.
Si ton input p1 correspond bien (cf. 2 post au-dessus), c'est que l'id est peut-être dupliqué (ou que tu l'as appelé pI => "i" maj.), bref, vérifie ça car il n'y a pas de raison qu'il ait "moins de propriété" que les 2 autres
Pas pour rien que j'ai tout virer
A+
Merci ca commence a venir je pense.....
Alors voila la fonction
function calcul(obj, objp1, objp2, objprix)
{
var pu = parseFloat(objp1.value);
var qt = parseFloat(objp2.value);
var tva = Math.round(pu * parseFloat(obj.value, 10) * 100) / 100;
var ttc = pu + tva;
objprix.value = ttc * qt ;
}
La fonction de calcul :
function calcul_form() {
// le with ci-dessous permet d'abréger "document.forms.form1.p1.value" en "p1.value"
with (document.forms.form1) {
p1.value = parseInt(q1.value, 10)* parseFloat(pu1.value, 10) ;
p2.value = parseInt(q2.value, 10)* parseFloat(pu2.value, 10) ;
p3.value = q3.value * pu3.value ;
total.value = p1.value *1 + p2.value *1 + p3.value *1 ;
// Ai mis les *1 ci-dessus afin que les + fassent une somme arithmétique
// et non pas une concaténation de chaînes de caractères
}
Et enfin le code HTML :
<TH><INPUT TYPE="text" size="75">
<TH><INPUT TYPE="text" id="pu1" NAME="pu1" SIZE="3" MAXLENGTH="4" >
<TH><INPUT TYPE="text" id="q1" NAME="q1" SIZE="3" MAXLENGTH="4" onBlur="test_champ(this)">
<TH><INPUT TYPE="text" id="p1" NAME="p1" SIZE="8" MAXLENGTH="4" >
<TH><select name="valeur" onchange="calcul(this, document.getElementById('pu1'), document.getElementById('q1'), document.getElementById('objp1') )">
<option value="#">TVA Appliquée</option>
<option value="0.196">TVA à 19.6 %</option>
<option value="0.055">TVA à 5.5 %</option>
<TH><input name="tva" type="text" value="" maxlength="15" SIZE="5" />
<TH><input name="ttc" type="text" value="" maxlength="15" SIZE="5"/>
<TR BGCOLOR="#CCCCCC">
<TH><INPUT TYPE="text" size="75">
<TH><INPUT TYPE="text" id="pu2" NAME="pu2" SIZE="3" MAXLENGTH="4" >
<TH><INPUT TYPE="text" id="q2" NAME="q2" SIZE="3" MAXLENGTH="4" onBlur="test_champ(this)">
<TH><INPUT TYPE="text" id="p2" NAME="p2" SIZE="8" MAXLENGTH="4" >
<TH><select name="valeur" onchange="calcul(this, document.getElementById('pu2'), document.getElementById('q2'), document.getElementById('objp2') )">
<option value="#">TVA Appliquée</option>
<option value="0.196">TVA à 19.6 %</option>
<option value="0.055">TVA à 5.5 %</option>
<TH><input name="tva" type="text" value="" maxlength="15" SIZE="5" />
<TH><input name="ttc" type="text" value="" maxlength="15" SIZE="5"/>
Visiblement, tu multiplie 2 fois par la quantité : je l'avais fais dans la fonction calcul()et tu le refais dans calcul_form()
Code : Sélectionner tout - Visualiser dans une fenêtre à part objprix.value = ttc*qt;Y en a certainement un de trop
Code : Sélectionner tout - Visualiser dans une fenêtre à part p1.value = parseInt(q1.value, 10)* parseFloat(pu1.value, 10) ;
A+
Donc le calcul form ne sert plus a rien??????
p1.value = parseInt(q1.value, 10)* parseFloat(pu1.value, 10) ;
Il me sert a calculer le prix total des objets c'est a dire:
p1 = prix total sur une référence
q1 = quantité de cette reference
pu1 = prix unitaire de cette reference.
Ne pense tu pas qu'on s'embrouille selon les termes......
Ou plus précisement c'est moi qui t'embrouille l'esprit....![]()
On va le faire en français
Si c'est pour calculer, pour chaque article, le prix TTC * la quantité, c'est déjà fait dans calcul().
Dans calcul_form(), logiquement, il te reste à calculer le total de la facture, c'est à dire la somme de tous les prix calculés par calcul()
C'est bon comme ça ?
A+
C'est pas tout a fait ça :
Donc :
1) Je rentre l'intitulé de l'article
2) Je rentre le prix unitair HT
3) Je rentre la quantité
4) Calcul du prix total HT
5) Choisis le taux de tva selon un select ( 5.5 ou 19.6)
6) Taux appliqué sur le prix total (4)
7) Prix total + TVA
Voila j'espère avoir été clair, on peut mieu se comprendre maintenant......![]()
Ca ne fait rien........ lorsque j'enleve l'appel a form1
Oups excuse moi
Ca me calcule mais je n'est pas la tva....![]()
Donc ca me calcul lprix unitaire * quantité donc le prix total HT![]()
Tu parles bien de cette fonction
Mercifunction calcul_form() {
// le with ci-dessous permet d'abréger "document.forms.form1.p1.value" en "p1.value"
with (document.forms.form1) {
p1.value = parseInt(q1.value, 10)* parseFloat(pu1.value, 10) ;
p2.value = parseInt(q2.value, 10)* parseFloat(pu2.value, 10) ;
p3.value = q3.value * pu3.value ;
total.value = p1.value *1 + p2.value *1 + p3.value *1 ;
// Ai mis les *1 ci-dessus afin que les + fassent une somme arithmétique
// et non pas une concaténation de chaînes de caractères
}
Non, puisque je t'ai demandé de virer l'appel, pour voir ...
Ca donne quoi, ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function calcul(obj, objp1, objp2, objprix) { var pu = parseFloat(objp1.value); var qt = parseFloat(objp2.value); var tva = Math.round(pu * parseFloat(obj.value, 10) * 100) / 100; alert(tva); var ttc = pu + tva; objprix.value = ttc * qt ; }
Pour le total global, ça sera sûrementEDIT : mais pas sur le onload du <body>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function calcul_form() { with (document.forms.form1) { total.value = p1.value *1 + p2.value *1 + p3.value *1 ; } }
A+
... et à demain, parce que là je vais pas tarder![]()
Bonjour:
ME donne la TVA mais sur le prix unitaire hors moi je la veux sur le prix total HT.function calcul(obj, objp1, objp2, objprix)
{
var pu = parseFloat(objp1.value);
var qt = parseFloat(objp2.value);
var tva = Math.round(pu * parseFloat(obj.value, 10) * 100) / 100;
alert(tva);
var ttc = pu + tva;
objprix.value = ttc * qt ;
}
Merci
Et concernant le calcul form() je le charge a quel moment.
Merci
Partager