Calcolo iva javascript

di il
6 risposte

Calcolo iva javascript

Buongiorno io ho un piccolo problema con il calcolo dell iva, il totImp lo riesco a calcolare ma l iva no, non so cosa sbaglio nell if qualcuno mi potrebbe aiutare grazie mille. Il codice è questo:


function aggiungi(){

var q = parseFloat(document.getElementsByName("quantità")[0].value);
var p = parseFloat(document.getElementsByName("prezzo")[0].value);
var s = parseFloat(document.getElementsByName("sconto")[0].value);
var i = parseFloat(document.getElementsByName("IVA")[0].value);

var totImp;
var tot;

totImp= q * p ;
totImp= totImp - (totImp* s/100);

if(i == "4%"){

tot = totImp * i / 100 ;

}else

if(i == "10%"){

tot = totImp * i / 100;

}else

if(i == "22%"){

tot = totImp * i / 100;
}


totImp= totImp.toFixed(2);
document.getElementById("txt").value = totImp + tot;

}

6 Risposte

  • Re: Calcolo iva javascript

    Allscars91 ha scritto:


    ho un piccolo problema con il calcolo dell iva, il totImp lo riesco a calcolare ma l iva no, non so cosa sbaglio nell if
    Direi che ci sono diverse problematiche.

    Innanzitutto, nei vari rami dell'istruzione if() l'operazione è la stessa, quindi non è chiaro qual è il senso di utilizzare quegli if(): se è per discriminare il calcolo in base all'aliquota, tale espressione non potrà essere sempre uguale per tutti i casi, altrimenti il valore sarà il medesimo.

    Oltre a questo, l'if() non è nemmeno necessario visto che la variabile "i" (nome pessimo da cambiare) che contiene l'imponibile viene usato direttamente (e giustamente) nell'espressione: se la formula è la stessa in tutti i casi, e se questa giustamente dipende dal valore dell'aliquota inserito direttamente nella formula, perché discriminare con degli if() soprattutto se la formula è la stessa, come detto prima.

    Infine, nella formula stai usando la variabile "i" con l'aliquota direttamente nel calcolo: non potrà mai funzionare se "i" contiene una stringa, come in questo caso, ma deve essere convertita in un valore numerico così come hai fatto per tutti gli altri valori in gioco, e chiaramente dovrai convertire il solo numero (senza la parte "%") altrimenti otterrai un errore o un valore non valido.

    Riguarda tutto il codice e scrivi la logica tenendo conto di quanto rilevato.

    Ciao!
  • Re: Calcolo iva javascript

    Perfetto grazie mille dell aiuto. Ora riguardo bene.
  • Re: Calcolo iva javascript

    Buongiorno ho questo codice:

    $(document).ready(function(){
    $('.aggiungi').click(function(){


    $tot_imp = $('#quantita').val() * $('#prezzo').val();
    $tot_imp = $tot_imp - ($tot_imp* $('#sconto').val()/100);
    $totIva= $tot_imp * $('#iva').val()/ 100;
    $tot= $totIva + $tot_imp;
    $('#txt').val($tot.toFixed(2));
    $('#imp').val($tot_imp.toFixed(2));
    $('#t_iva').val($totIva.toFixed(2));
    $('#totale').val($tot.toFixed(2));

    var newel = $('.sinistra:last').clone(true);
    $(newel).insertAfter(".sinistra:last");


    });

    });

    ad ogni click mi copia la riga quantita prezzo sconto iva, io per ogni click dovrei avere il nuovo totale inserendo i nuovi dati ma non saprei come fare qualcuno mi puo aiutare o dare qualche suggerimento.
    Grazie mille in anticipo per l aiuto.
  • Re: Calcolo iva javascript

    In riferimento al discorso javascript , ti invio questo piccolo esempio che spero ti sia d'aiuto, ciao.
    
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            #formCalc {
                display: flex;
                flex-direction: column;
                width: 300px;
            }
    
            #formCalc input,
            select {
                margin-bottom: 15px;
            }
    
            #reportView {
                border: 1px solid gray;
                padding: 10px;
                margin: 15px 0;
                border-radius: 10px;
                width: 300px;
            }
    
            .totale {
                color: red;
            }
        </style>
    </head>
    
    <body>
    
        <form id="formCalc">
            <label for="imponibile">imponibile</label>
            <input type="number" name="imponibile" id="imponibile" value="100">
            <label for="qta">qta</label>
            <input type="number" name="qta" id="qta" min="1" max="20" value="1">
    
            <label for="iva">iva</label>
            <select name="iva" id="iva">
                <option value="22" selected>22%</option>
                <option value="10">10%</option>
                <option value="04">04%</option>
            </select>
    
            <label for="sconto">sconto %</label>
            <input type="number" name="sconto" id="sconto" value="0">
            <button type="button" id="calcola">Calcola</button>
        </form>
    
        <div id="reportView"></div>
    
        <script>
            const formCalc = document.getElementById('formCalc'),
                calcola = document.getElementById('calcola'),
                reportView = document.getElementById('reportView')
    
            const imponibileInput = document.getElementById('imponibile'),
                qtaInput = document.getElementById('qta'),
                ivaInput = document.getElementById('iva'),
                scontoInput = document.getElementById('sconto')
    
            function calcTotale(imponibile, qta, iva, sconto) {
    
                const scontoCalc = (imponibile * qta * sconto) / 100
                const imponibileCalc = (imponibile * qta) - scontoCalc
                const ivaCalc = (iva * imponibileCalc) / 100
                const totale = imponibileCalc + ivaCalc
    
                return {
                    imponibile,
                    qta,
                    iva,
                    sconto,
                    totale: {
                        imponibileCalc: imponibileCalc.toFixed(2),
                        ivaCalc: ivaCalc.toFixed(2),
                        scontoCalc: scontoCalc.toFixed(2),
                        totale: totale.toFixed(2)
                    }
                }
            }
    
            function fattura() {
                const reportData = calcTotale(
                    imponibileInput.value,
                    qtaInput.value,
                    ivaInput.value,
                    scontoInput.value
                )
    
                for (let key in reportData) {
                    if (key === 'totale') {
                        reportView.innerHTML = `
                            <h1>Report Fattura</h1>
                            <h2>Imponibile   : €${reportData[key].imponibileCalc}</h2>
                            <h2>Iva          : €${reportData[key].ivaCalc}</h2>
                            <h2>Sconto       : €${reportData[key].scontoCalc}</h2>
                            <hr>
                            <h2 class="totale">Totale       : €${reportData[key].totale}</h2>
                            `
                    }
                }
            }
    
            calcola.addEventListener('click', fattura)
            formCalc.addEventListener('input', (e) => {
                if (isNaN(parseFloat(e.target.value))) {
                    e.target.value = null
                    return
                }
            })
    
        </script>
    </body>
    
    </html>
    
  • Re: Calcolo iva javascript

    Allscars91 ha scritto:


    Buongiorno ho questo codice
    Innanzitutto, devi formattare il codice sorgente che incolli sul forum con l'apposito pulsante </>, altrimenti non si capisce nulla.

    Allscars91 ha scritto:


    $tot_imp = $('#quantita').val() * $('#prezzo').val();
    Continui a fare calcoli e operazioni senza convertire ciò che ottieni con val(), che è una stringa, in un valore numerico.

    Prima di iniziare a programmare con JavaScript, le basi del linguaggio le dovresti conoscere, e inoltre dovresti familiarizzare con i Developer Tools (tasto F12 del browser) e imparare a usare il debugger per eseguire il codice passo per passo, visualizzando i valori delle variabili e controllando l'andamento del programma.

    Andando alla cieca, avrai un problema dopo l'altro e sarà impossibile giungere alla conclusione dei lavori agevolmente.

    Ciao!
  • Re: Calcolo iva javascript

    Grazie mille a tutti per l aiuto.
Devi accedere o registrarti per scrivere nel forum
6 risposte