• User Attivo

    script preventivo javascript

    salve navigando in rete ho trovato questo script preventivo ho provato a modificarlo aggiungendo le voci pulizia cassonetti e funziona ma ho inserito anche i prodotti lo script non conteggia il prodotto chiedo aiuto allego lo script completo

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

    <script>
    var valorePianiEdifico = 24;
    var valoreCassonetti = 2;
    var valoreNomeprodotto = 1;
    var addizionalePresenzaAscensore = 2;
    var valoreMqGiardino = 3;
    var valoreMqUffici = 2;
    var moltiplicatoreOperai = 1.34;

    $(function() {
    $('#container select').change(function() { calcolaPreventivo(); });
    $('#container input').keyup(function() { calcolaPreventivo(); });
    calcolaPreventivo();
    });

    function calcolaPreventivo() {

    var preventivo = 0;
    addizionaleAscensore = $('#container .ascensore').val()=='si'?0:addizionalePresenzaAscensore;
    
    
    
    preventivo += $('#container .pianiEdificio').val()*(valorePianiEdifico+addizionaleAscensore);
    
    preventivo += $('#container .Cassonetti').val()*(valoreCassonetti);
    
     preventivo += $('#container .Nomeprodotto').val()*(valoreNomeprodotto);
    
    
    if($('#container .giardino').val()=='si') {
        $('#container .colGiardino').show();
        preventivo +=  $('#container .mqGiardino').val()*valoreMqGiardino;
    } else { $('#container .colGiardino').hide();  $('#container .mqGiardino').val(0); }
    
    preventivo +=  $('#container .mqUffici').val()*valoreMqUffici;
    preventivo = parseInt(preventivo*($('#container .nOperai').val()==1?1:moltiplicatoreOperai));
    
    $('#container .risultato').html("Spesa totale: <span class='bold'>"+preventivo+",00</span> ?");
    

    }
    </script>

    <style>
    #container {
    margin: auto;
    width: 500px;
    background-color: #blue;
    font-family: Calibri;
    border: 1px solid orange;
    border-radius: 25px;
    padding: 0px 0px 0px 0px;
    text-align: center;
    }

    width: 100%;
    height: 6%;
    background-color: #yellow;
    white-space: nowrap;
    font-size: 0px;
    }
    .col span {
    font-size: 15px;
    width: 50%;
    display: inline-block;
    background-color: #red;
    }

    display: none;
    }

    font-weight: bold;
    width: auto;
    }
    </style>

    <div id='container'>
    <h2>ESEMPIO PREVENTIVO</h2>
    <div class='col'>
    <span>Piani edificio</span>
    <span>
    <select class='pianiEdificio'>
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
    <option value='4'>4</option>
    <option value='5'>5</option>
    <option value='6'>6</option>
    <option value='7'>7</option>
    <option value='8'>8</option>
    <option value='9'>9</option>
    </select>
    </span>
    </div>
    <div>
    <div class='col'>
    <span>Numero cassonetti ama</span>
    <span>
    <select class='Cassonetti'>
    <option value='0'>0</option>
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
    <option value='4'>4</option>
    <option value='5'>5</option>
    <option value='6'>6</option>
    <option value='7'>7</option>
    <option value='8'>8</option>
    <option value='9'>9</option>
    </select>
    </span>
    </div>
    <div class='col'>
    <span>Prodotti</span>
    <span>
    <select class='Nomeprodotto'>
    <option value='Seleziona prodotto'>Seleziona prodotto</option>
    <option value='Mig'>Mig</option>
    <option value='Funball'>Funball</option>
    <option value='Altro'>Altro</option>
    </select>
    </span>
    </div>
    <div class='col'>
    <span>Ascensore?</span>
    <span>
    <select class='ascensore'>
    <option value='no'>No</option>
    <option value='si'>Si</option>
    </select>
    </span>
    </div>
    <div class='col'>
    <span>Giardino?</span>
    <span>
    <select class='giardino'>
    <option value='no'>No</option>
    <option value='si'>Si</option>
    </select>
    </span>
    </div>
    <div class='col colGiardino'>
    <span>Mq. giardino</span>
    <span>
    <input class='mqGiardino'>
    </span>
    </div>
    <div class='col'>
    <span>Mq. uffici</span>
    <span>
    <input class='mqUffici'>
    </span>
    </div>
    <div class='col'>
    <span>N. Operai</span>
    <span>
    <select class='nOperai'>
    <option value='1'>1</option>
    <option value='2'>2</option>
    </select>
    </span>
    </div>
    </div>
    <div class='col'>
    <span></span>
    <span class='risultato'></span>
    </div>
    </div>


  • User Attivo

    spiegami che dovrebbe fare 😄


  • User Attivo

    ciao :d lo script calcola il preventivo per la pulizia del condominio : tot piani ascensore si o no numero pulizia cassonetti differenziata ama tipo di prodotto per il lavaggio scala giardino se si quanti mq e tot operai 🙂


  • User

    Ciao , nella function calcolapreventivo ci sono due variabili che hanno degli spazi : controlla "addizionalePresenzaAsce nsore" e poi "addizio naleAscensore" poi nella riga che ti ho evidenziato in rosso tu stai cercando di calcolare dei numeri moltiplicandoliper un testo, quindi il risultato sarà sempre (Nan) che significa Not a Number , non potrà mai essere un numero .

    function calcolaPreventivo() {

    var preventivo = 0;
    addizionaleAscensore = $('#container .ascensore').val()=='si'?0:addizionalePresenzaAsce nsore;

    preventivo += $('#container .pianiEdificio').val()*(valorePianiEdifico+addizio naleAscensore);

    preventivo += $('#container .Cassonetti').val()*(valoreCassonetti);

    preventivo += $('#container .Nomeprodotto').val()*(valoreNomeprodotto);

    Ciao!!


  • User Attivo

    giorno grazie 🙂


  • User Attivo

    come dovrei fare in modo che calcola il testo ? attendo risposta grazie 🙂


  • User

    Scusami, spiegati meglio, in che senso ? come vedi, nel calcolo va in errore perchè esegue una moltiplicazione con un testo, per esempio "mig * 4" , e questo non ha molto senso, quindi prova a spiegare quale sarebbe il calcolo che dovrebbe eseguire lo script


  • User Attivo

    ok arigrazie