Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Piccolo aiuto per calcolare gli sconti

    Ciao a tutti ho recuperato questo script per calcolare percentuali di sconto ma vorrei che qualcuno di voi mi aiutasse a fare in modo che quando l'utente inserisce il numero di confezioni, automaticamente lo stesso numero venisse inserito anche nel campo percentuale sconto; questo perchè la politica di sconto che pratichiamo è 5% per 5 confezioni, 10% per 10 confezioni etc.

    Grazie a chi mi aiuterà..


    -----

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

    <html>
    <head>
    <title>esempio</title>

    <script>
    <!--
    function setTotSco (qta, importo, sco) {

    var qta = qta.value;
    var importo = importo.value;
    var sconto = sco.value;
    //alert ("tipo di sconto= " + sco.name + "sc.= " + sco.value);

    /* ****************************************
    ******************
    L'IF serve a capire che tipo di sconto è stato
    selezionato: percentuale o assoluto.
    A seconda del caso fa il calcolo adeguato e per comodità
    azzera l'altro tipo di sconto
    ****************************************
    ***************** */

    if (sco.name == "sconto") {
    var tot = ((importo*qta)-sconto);
    document.forms[0].persconto.value = "";
    } else {
    var tot = (importo*qta*(100-sconto)/100);
    document.forms[0].sconto.value = "";
    }
    //alert("totale scontato= " + tot);

    /* ****************************************
    **********************
    Limitiamo ad un massimo di 2 cifre decimali qualsiasi risultato
    sia stato ottenuto dai calcoli precedenti che ne abbia di più
    ****************************************
    *********************** */

    tot = Math.round(tot*100)/100;
    //alert("totale arrotondato max 2 decimali= " + tot);

    /* ****************************************
    **********************
    Per motivi di rappresentazione della valuta, ci occorre avere
    un totale con sempre 2 decimali.
    Facciamo delle ipotesi e concateniamo tanti zeri quanti ne
    mancano per avere un importo con 2 decimali.
    Es.(tot == Math.floor(tot)) ? tot + '.00' : - prima ipotesi
    se la parte intera della variabile tot (Math.floor(tot)) è = a
    tot allora tot sarà stampato come tot+.00 ...
    altrimenti seconda ipotesi.. etc.
    ****************************************
    ********************** */

    tot = (tot == Math.floor(tot)) ? tot + '.00' : ((tot*10 == Math.floor(tot*10)) ? tot + '0' : tot);
    //alert("totale con 2 dec. fissi= " + tot);

    /* Assegnazione del totale finale al campo della form relativo */

    document.forms[0].totale.value = tot;
    }
    //-->
    </script>
    </head>

    <body>
    <div align="center">

    <table width="402" cellpadding="4" cellspacing="1" bgcolor="#c0c0c0">
    <tr>
    <td colspan="4" class="title" bgcolor="#ffcc00">
    <div align="left">
    <font size="1" color="#555555" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Calcola autonomamente lo sconto chepratichiamo alle aziende che acquistano pi&ugrave; confezioni dello stesso articolo.

    La procedura &egrave; semplice, basta inserire l'importo di una singola confezione dell'articolo di tuo interesse, il numero di confezioni che vuoi acquistare e otterrai l'importo scontato (iva e trasporto esclusi).</font></div>
    </td>
    </tr>
    <form action="" name="pippo" id="pippo">
    <tr>
    <th bgcolor="#dddddd"><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Importo</font></th>
    <th bgcolor="#dddddd"><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Qt&agrave; Conf.</font></th>
    <th bgcolor="#dddddd"><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Sconto%</font></th>
    <th bgcolor="#dddddd"><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Totale scontato</font></th>
    </tr>
    <tr>
    <td bgcolor="#ffcc00">
    <div align="center">
    <input type="text" name="importo" id="importo" size="15" maxlength="15" class="importo"></div>
    </td>
    <td bgcolor="#ffcc00">
    <div align="center">
    <input type="text" name="qta" id="qta" size="4" maxlength="4"
    class="importo"></div>
    </td>
    <td bgcolor="#ffcc00">
    <div align="center">
    <input type="text" name="persconto" id="persconto" size="3" maxlength="3"
    onchange="setTotSco(qta, importo, this);"><input type="hidden" name="sconto" id="sconto" value="0" size="15" maxlength="15"
    onchange="setTotSco(qta, importo, this);" class="importo"></div>
    </td>
    <td bgcolor="#ffcc00">
    <div align="center">
    <input type="text" name="totale" id="totale" size="15" maxlength="15"
    class="importo"></div>
    </td>
    </tr>
    </form>
    </table>
    </div>
    </body>
    </html>


    ----

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259

    Re: Piccolo aiuto per calcolare gli sconti

    Originariamente inviato da yes
    politica di sconto che pratichiamo è 5% per 5 confezioni, 10% per 10 confezioni etc.

    100 confezioni le prendo gratis?

  3. #3

    ;-)

    Ottimo argomento , ma sai non volevo chiedere tutto insieme, infatti se si potesse limitare la scelta al max al 15 % sarebbe perfetto!!

    Confido in voi tutti...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    sono stanco...


    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    
    <html> 
    <head> 
    <title>esempio</title> 
    
    <script> 
    <!-- 
    function setTotSco (qta, importo, sco) { 
    
    var qta = qta.value; 
    var importo = importo.value; 
    var sconto = sco.value; 
    //alert ("tipo di sconto= " + sco.name + "sc.= " + sco.value); 
    
    /* ****************************************
    
    ****************** 
    L'IF serve a capire che tipo di sconto è stato 
    selezionato: percentuale o assoluto. 
    A seconda del caso fa il calcolo adeguato e per comodità 
    azzera l'altro tipo di sconto 
    ****************************************
    
    ***************** */ 
    
    if (sco.name == "sconto") { 
    var tot = ((importo*qta)-sconto); 
    document.forms[0].persconto.value = ""; 
    } else { 
    var tot = (importo*qta*(100-sconto)/100); 
    document.forms[0].sconto.value = ""; 
    } 
    //alert("totale scontato= " + tot); 
    
    /* ****************************************
    
    ********************** 
    Limitiamo ad un massimo di 2 cifre decimali qualsiasi risultato 
    sia stato ottenuto dai calcoli precedenti che ne abbia di più 
    ****************************************
    
    *********************** */ 
    
    tot = Math.round(tot*100)/100; 
    //alert("totale arrotondato max 2 decimali= " + tot); 
    
    /* ****************************************
    
    ********************** 
    Per motivi di rappresentazione della valuta, ci occorre avere 
    un totale con sempre 2 decimali. 
    Facciamo delle ipotesi e concateniamo tanti zeri quanti ne 
    mancano per avere un importo con 2 decimali. 
    Es.(tot == Math.floor(tot)) ? tot + '.00' : - prima ipotesi 
    se la parte intera della variabile tot (Math.floor(tot)) è = a 
    tot allora tot sarà stampato come tot+.00 ... 
    altrimenti seconda ipotesi.. etc. 
    ****************************************
    
    ********************** */ 
    
    tot = (tot == Math.floor(tot)) ? tot + '.00' : ((tot*10 == Math.floor(tot*10)) ? tot + '0' : tot); 
    //alert("totale con 2 dec. fissi= " + tot); 
    
    /* Assegnazione del totale finale al campo della form relativo */ 
    document.forms[0].persconto.value=qta<16?qta:"15"
    document.forms[0].totale.value = tot; 
    } 
    //--> 
    </script> 
    </head> 
    
    <body> 
    <div align="center"> 
    
    <table width="402" cellpadding="4" cellspacing="1" bgcolor="#c0c0c0"> 
    <tr> 
    <td colspan="4" class="title" bgcolor="#ffcc00"> 
    <div align="left"> 
    <font size="1" color="#555555" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Calcola autonomamente lo sconto chepratichiamo alle aziende che acquistano più confezioni dello stesso articolo.
     
    La procedura è semplice, basta inserire l'importo di una singola confezione dell'articolo di tuo interesse, il numero di confezioni che vuoi acquistare e otterrai l'importo scontato (iva e trasporto esclusi).</font></div> 
    </td> 
    </tr> 
    <form action="" name="pippo" id="pippo"> 
    <tr> 
    <th bgcolor="#dddddd"><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Importo</font></th> 
    <th bgcolor="#dddddd"><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Qtà Conf.</font></th> 
    <th bgcolor="#dddddd"><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Sconto%</font></th> 
    <th bgcolor="#dddddd"><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Totale scontato</font></th> 
    </tr> 
    <tr> 
    <td bgcolor="#ffcc00"> 
    <div align="center"> 
    <input type="text" name="importo" id="importo" size="15" maxlength="15" class="importo"></div> 
    </td> 
    <td bgcolor="#ffcc00"> 
    <div align="center"> 
    <input type="text" name="qta" id="qta" size="4" maxlength="4" 
    class="importo" onChange="setTotSco(this, importo, persconto)"></div> 
    </td> 
    <td bgcolor="#ffcc00"> 
    <div align="center"> 
    <input type="text" name="persconto" id="persconto" size="3" maxlength="3" 
    onchange="setTotSco(qta, importo, this);"><input type="hidden" name="sconto" id="sconto" value="0" size="15" maxlength="15" 
    onchange="setTotSco(qta, importo, this);" class="importo"></div> 
    </td> 
    <td bgcolor="#ffcc00"> 
    <div align="center"> 
    <input type="text" name="totale" id="totale" size="15" maxlength="15" 
    class="importo"></div> 
    </td> 
    </tr> 
    </form> 
    </table> 
    </div> 
    </body> 
    </html>
    provalo :-)

  5. #5
    Caro Dennis, grazie innanzitutto del tuo tempo,
    ho provato lo script ed è un po' instabile ma non per le tue modifiche credo... instabile nel senso che se non fai un click nel campo sconto (anche ora che grazie a te gli arriva la percentuale automaticamente) lo script non funge, inoltre a volta calcola in maniera esatta a volte sbaglia, esempio:

    costo 100 qtà 5 sconto 5 = a volte calcola il totale come 450 invece di 475


    Lo so che sei stanco ma se potessi ......

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    Originariamente inviato da yes
    Caro Dennis, grazie innanzitutto del tuo tempo,
    ho provato lo script ed è un po' instabile ma non per le tue modifiche credo... instabile nel senso che se non fai un click nel campo sconto (anche ora che grazie a te gli arriva la percentuale automaticamente) lo script non funge, inoltre a volta calcola in maniera esatta a volte sbaglia, esempio:

    costo 100 qtà 5 sconto 5 = a volte calcola il totale come 450 invece di 475


    Lo so che sei stanco ma se potessi ......

    ci sei adesso?

    facciamo così, spiegami bene lo script cosa deve fare e quando, che lo rifacciamo da 0... amo fare così

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    vabbè... io lo ho provato a fare... dimmi se ti piace

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    
    <html> 
    <head> 
    <title>esempio</title> 
    
    <script> 
    function dennis(){
    f=document.form1
    sconto=(f.quantita.value<16?f.quantita.value:"15")
    if(f.importo.value=="" || f.quantita.value==""){
    alert('Compila sia l\'importo singolo che la quantità');
    return false;
    }
    else{
    f.sconto.value=sconto
    f.totale.value=(f.importo.value*f.quantita.value)/100*(100-sconto)
    }
    }
    
    </script> 
    </head> 
    
    <body> 
    <form name="form1">
    Importo singolo :<input type="text" name="importo">
    Numero di conf. <input type="text" size="3" name="quantita">
    Sconto <input type="text" name="sconto" size="2" disabled>
    Prezzo totale scontato <input type="text" name="totale" disabled>
    <input type="button" value="calcola" onClick="dennis()">
    </form>
    </body> 
    </html>

  8. #8
    Hi Dannis,

    ho provato il tuo script (bontà tua) ma almeno a me non funge, nel senso che non calcola niente e' praticamente morto.

    Credo, inoltre che si potrebbe considerare di fare il campo sconto come hidden tanto non si deve scrivere niente dentro.

    speranzoso attendo ...

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    allora nn avevo capito bene... prova questo

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    
    <html> 
    <head> 
    <title>esempio</title> 
    
    <script> 
    function dennis(){
    f=document.form1
    sconto=(f.quantita.value<16?f.quantita.value:"15")
    if(f.importo.value=="" || f.quantita.value==""){
    alert("Compila sia l'importo singolo che la quantità");
    return false;
    }
    else{
    f.totale.value=(f.importo.value*f.quantita.value)/100*(100-sconto)
    }
    }
    
    </script> 
    </head> 
    
    <body> 
    <form name="form1">
    Importo singolo :<input type="text" name="importo">
    Numero di conf. <input type="text" size="3" name="quantita" onBlur="dennis()">
    <input type="hidden" name="sconto" size="2" disabled>
    Prezzo totale scontato <input type="text" name="totale" disabled>
    </form>
    </body> 
    </html>
    (mi aveva tolto un backslash nell'altro... o forse me lo ero dimenticato...)

  10. #10
    Dannis che dire , grazie 1000 funge .. una bellezza!!!

    perdona l'ignoranza ma è possibile anche formattare il totale tipo 500,00 ?????

    grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.