|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2006
Messaggi: 123
|
[JavaScript/Ajax] Calcolo Preventivo
Tempo fa trovai questo script in rete modificato in seguito per le mie esigenze.
Il problema però è che è in "formato americano": se immetto un prezzo con la virgola (,00) mi da errore, inoltre mi visualizza i prezzi delimitati dal punto anzicchè la virgola. A suo tempo provai a modificarlo ma non riusciia risolvere. Potete testare lo sript a questo Link Il Codice è: Codice:
<SCRIPT>
function dp(prezzo)
{
string = "" + prezzo;
number = string.length - string.indexOf('.');
if (string.indexOf('.') == -1)
return string + '.00';
if (number == 1)
return string + '00';
if (number == 2)
return string + '0';
if (number > 3)
return string.substring(0,string.length-number+3);
return string;
}
function calculate()
{
document.data.importo1.value = dp((document.data.prezzo1.value)*(document.data.qta1.value))
document.data.importo2.value = dp((document.data.prezzo2.value)*(document.data.qta2.value))
document.data.importo3.value = dp((document.data.prezzo3.value)*(document.data.qta3.value))
document.data.importo4.value = dp((document.data.prezzo4.value)*(document.data.qta4.value))
document.data.importo5.value = dp((document.data.prezzo5.value)*(document.data.qta5.value))
document.data.importo6.value = dp((document.data.prezzo6.value)*(document.data.qta6.value))
document.data.importo7.value = dp((document.data.prezzo7.value)*(document.data.qta7.value))
document.data.importo8.value = dp((document.data.prezzo8.value)*(document.data.qta8.value))
document.data.totaleimponibile.value = dp(eval(document.data.importo1.value) + eval(document.data.importo2.value) + eval(document.data.importo3.value) + eval(document.data.importo4.value) + eval(document.data.importo5.value) + eval(document.data.importo6.value) + eval(document.data.importo7.value) + eval(document.data.importo8.value))
perciva=(document.data.iva.value)
document.data.importoiva.value = dp((document.data.totaleimponibile.value)*(perciva/100))
document.data.totalefattura.value = dp((document.data.totaleimponibile.value)*((1+perciva)/100))
}
</SCRIPT>
</HEAD>
<BODY bgcolor="white" onload="calculate">
<CENTER>
<FORM name="data" action="mailto:" tppabs="mailto:" method="post">
<TABLE cellpadding=2 border=2 cellspacing=2>
<TR>
<TD>qta</TD>
<TD>prezzo</TD>
<TD>importo</TD>
</TR>
<TR>
<TD><INPUT name="qta1" type="text" id="qta1" ONKEYUP="calculate()"></TD>
<TD><INPUT name="prezzo1" type="text" id="prezzo1" ONCHANGE="calculate()"></TD>
<TD><INPUT name="importo1" type="text" id="importo1"></TD>
</TR>
<TR>
<TD><INPUT name="qta2" type="text" id="qta2" ONCHANGE="calculate()"></TD>
<TD><INPUT name="prezzo2" type="text" id="prezzo2" ONCHANGE="calculate()"></TD>
<TD><INPUT name="importo2" type="text" id="importo2"></TD>
</TR>
<TR>
<TD><INPUT name="qta3" type="text" id="qta3" ONCHANGE="calculate()"></TD>
<TD><INPUT name="prezzo3" type="text" id="prezzo3" ONCHANGE="calculate()"></TD>
<TD><INPUT name="importo3" type="text" id="importo3"></TD>
</TR>
<TR>
<TD><INPUT name="qta4" type="text" id="qta4" ONCHANGE="calculate()"></TD>
<TD><INPUT name="prezzo4" type="text" id="prezzo4" ONCHANGE="calculate()"></TD>
<TD><INPUT name="importo4" type="text" id="importo4"></TD>
</TR>
<TR>
<TD><INPUT name="qta5" type="text" id="qta5" ONCHANGE="calculate()"></TD>
<TD><INPUT name="prezzo5" type="text" id="prezzo5" ONCHANGE="calculate()"></TD>
<TD><INPUT name="importo5" type="text" id="importo5"></TD>
</TR>
<TR>
<TD><INPUT name="qta6" type="text" id="qta6" ONCHANGE="calculate()"></TD>
<TD><INPUT name="prezzo6" type="text" id="prezzo6" ONCHANGE="calculate()"></TD>
<TD><INPUT name="importo6" type="text" id="importo6"></TD>
</TR>
<TR>
<TD><INPUT name="qta7" type="text" id="qta7" ONCHANGE="calculate()"></TD>
<TD><INPUT name="prezzo7" type="text" id="prezzo7" ONCHANGE="calculate()"></TD>
<TD><INPUT name="importo7" type="text" id="importo7"></TD>
</TR>
<TR>
<TD><INPUT name="qta8" type="text" id="qta8" ONCHANGE="calculate()"></TD>
<TD><INPUT name="prezzo8" type="text" id="prezzo8" ONCHANGE="calculate()"></TD>
<TD><INPUT name="importo8" type="text" id="importo8"></TD>
</TR>
<TR>
<TD></TD>
<TD>Totale Iimponibile</TD>
<TD><INPUT name="totaleimponibile" type="text" id="totaleimponibile"></TD>
</TR>
<TR>
<TD></TD>
<TD>Iva <input name="iva" type="text" id="importoiva22" value="20" size="6" maxlength="6"></TD>
<TD><INPUT name="importoiva" type="text" id="importoiva"></TD>
</TR>
<TR>
<TD></TD>
<TD> Totale Fattura</TD>
<TD><INPUT name="totalefattura" type="text" id="totalefattura"></TD>
</TR>
</TABLE>
<INPUT type="button" Value="PRESS FIRST to calculate the values" ONCLICK="calculate()"><BR><INPUT type="submit" Value="Then click this to SUBMIT"></form>
</body>
</html>
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Apr 2006
Messaggi: 123
|
Ho creato 2 funzioni, una che fa il replace dlla virgola con il punto e l'altra che fa l'esatto contrario
Codice:
function virg2point(value){
value = value.replace(",",".");
return value;
}
function point2virg(value){
value = value.replace(".",",");
return value;
}
Codice:
document.data.importo1.value = dp((virg2point(document.data.prezzo1.value))*(virg2point(document.data.qta1.value))) lo script semifunzionante è testabile a questo link |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:40.



















