Ragazzi buonasera,
sto avendo problemi perchè non riesco proprio a fare in modo che i valori inseriti negli input vengano formattati in 1.234.567,89 anzichè in 1234567,89.
Se ci provo poi il javascript non mi esegue più i calcoli.
Avete idee?
Grazie
codice:<tbody class="small"> <tr> <td>RICAVI</td> <td><input type="number" name="ricavi2023" class="input-value"></td> <td><input type="number" name="ricavi2022" class="input-value"></td> </tr> <tr> <td>+ VAR. RIMANENZE SEMIL. E PRODOTTI</td> <td><input type="number" name="var_riman2023" class="input-value"></td> <td><input type="number" name="var_riman2022" class="input-value"></td> </tr> <tr> <td>+ VAR. VAR. LAV IN CORSO</td> <td><input type="number" name="var_lavcors2023" class="input-value"></td> <td><input type="number" name="var_lavcors2022" class="input-value"></td> </tr> <tr> <td>+ INCREM. IMM. PER LAVORI INTERNI</td> <td><input type="number" name="var_incrlavint2023" class="input-value"></td> <td><input type="number" name="var_incrlavint2022" class="input-value"></td> </tr> <tr> <td>+ ALTRI RICAVI E PROVENTI</td> <td><input type="number" name="var_altriricav2023" class="input-value"></td> <td><input type="number" name="var_altriricav2022" class="input-value"></td> </tr> <tr></tr> <tr> <td>= VALORE DELLA PRODUZIONE</td> <td><input type="number" name="var_valprod2023" class="input-value" readonly></td> <td><input type="number" name="var_valprod2022" class="input-value" readonly></td> </tr> <tr> <td>-COSTI MATERIE PRIME</td> <td><input type="number" name="var_matprim2023" class="input-value"></td> <td><input type="number" name="var_matprim2022" class="input-value"></td> </tr> <tr> <td>- SPESE PER SERVIZI</td> <td><input type="number" name="var_spserv2023" class="input-value"></td> <td><input type="number" name="var_spserv2022" class="input-value"></td> </tr> <tr> <td>- SPESE GODIMENTO BENI TERZI</td> <td><input type="number" name="var_spgodtrz2023" class="input-value"></td> <td><input type="number" name="var_spgodtrz2022" class="input-value"></td> </tr> <tr> <td>- VARIAZIONE DELLE RIMANENZE</td> <td><input type="number" name="var_varrim2023" class="input-value"></td> <td><input type="number" name="var_varrim2022" class="input-value"></td> </tr> <tr> <td>- COSTO DEL PERSONALE</td> <td><input type="number" name="var_pers2023" class="input-value"></td> <td><input type="number" name="var_pers2022" class="input-value"></td> </tr> <tr> <td>- ONERI DIVERSI DI GESTIONE</td> <td><input type="number" name="var_ondiv2023" class="input-value"></td> <td><input type="number" name="var_ondiv2022" class="input-value"></td> </tr> <tr> <td>= MARGINE OPERATIVO LORDO (MOL/EBITDA)</td> <td><input type="number" name="var_mol2023" class="input-value" readonly></td> <td><input type="number" name="var_mol2022" class="input-value" readonly></td> </tr> <tr><td></td></tr> <tr> <td>UTILE DI ESERCIZIO</td> <td><input type="number" name="var_utile2023" class="input-value"></td> <td><input type="number" name="var_utile2022" class="input-value"></td> </tr> <tr><td></td></tr> <tr> <td>PATRIMONIO NETTO</td> <td><input type="number" name="var_patr2023" class="input-value"></td> <td><input type="number" name="var_patr2022" class="input-value"></td> </tr> <tr><td><br></td></tr> <tr> <th></th> <th>2023</th> </tr> <tr> <td>IMPOSTE CORRENTI</td> <td><input type="number" name="var_impcorr2023" class="input-value"></td> </tr> <tr> <td>INTERESSI ED ONERI FINANZIARI</td> <td><input type="number" name="var_intonfin2023" class="input-value"></td> </tr> <tr><td><br></td></tr> <tr> <td>DEBITI VERSO BANCHE</td> <td><input type="number" name="var_dbbnc2023" class="input-value"></td> </tr> <tr> <td>OBBLIGAZIONI</td> <td><input type="number" name="var_obb2023" class="input-value"></td> </tr> <tr> <td>DEBITI VERSO ALTRI FINANZIATORI</td> <td><input type="number" name="var_altrifin2023" class="input-value"></td> </tr> <tr> <td>DEBITI VERSO SOCI</td> <td><input type="number" name="var_dbsoc2023" class="input-value"></td> </tr> <tr> <td>DISPONIBILITA' LIQUIDE</td> <td><input type="number" name="var_displiq2023" class="input-value"></td> </tr> <!-- Altre righe come sopra --> </tbody> </table> <table class="table table-bordered table-striped"> <tr> <th>MOL (EBITDA)</th> <td><input type="number" name="mol_ebitda" class="input-value" readonly></td> <th>PFN</th> <td><input type="number" name="pfn" class="input-value" readonly></td> </tr> <tr><td></td></tr> <tr> <th>DSCR INIZIALE</th> <td><input type="number" name="dscr_iniz" class="input-value" readonly></td> <th>DSCR FINALE</th> <td><input type="number" name="dscr_fin" class="input-value" readonly></td> <th>PFN/MOL</th> <td><input type="number" name="pfn_mol" class="input-value"readonly></td> </tr> </table> <table class="table table-bordered table-striped"> <tr> <th>IMPORTO MASSIMO DELLA RICHIESTA</th> <td><input type="number" name="imp_max" class="input-value" readonly></td> </tr> </table> <script> document.addEventListener('DOMContentLoaded', function() { const inputs = document.querySelectorAll('.input-value'); inputs.forEach(input => { input.addEventListener('input', calculateValues); }); function calculateValues(targetDSCR = 0.85) { // Recupera i valori dai campi di input const ricavi2023 = parseFloat(document.querySelector('[name="ricavi2023"]').value) || 0; const varRiman2023 = parseFloat(document.querySelector('[name="var_riman2023"]').value) || 0; const varLavcors2023 = parseFloat(document.querySelector('[name="var_lavcors2023"]').value) || 0; const varIncrlavint2023 = parseFloat(document.querySelector('[name="var_incrlavint2023"]').value) || 0; const varAltriricav2023 = parseFloat(document.querySelector('[name="var_altriricav2023"]').value) || 0; // Calcolo Valore della Produzione const valoreProduzione2023 = ricavi2023 + varRiman2023 + varLavcors2023 + varIncrlavint2023 + varAltriricav2023; document.querySelector('[name="var_valprod2023"]').value = valoreProduzione2023.toFixed(2); // Calcolo Margine Operativo Lordo (MOL/EBITDA) const varMatprim2023 = parseFloat(document.querySelector('[name="var_matprim2023"]').value) || 0; const varSpserv2023 = parseFloat(document.querySelector('[name="var_spserv2023"]').value) || 0; const varSpgodtrz2023 = parseFloat(document.querySelector('[name="var_spgodtrz2023"]').value) || 0; const varVarrim2023 = parseFloat(document.querySelector('[name="var_varrim2023"]').value) || 0; const varPers2023 = parseFloat(document.querySelector('[name="var_pers2023"]').value) || 0; const varondiv2023 = parseFloat(document.querySelector('[name="var_ondiv2023"]').value) || 0; const mol2023 = valoreProduzione2023 - (varMatprim2023 + varSpserv2023 + varSpgodtrz2023 + varVarrim2023 + varPers2023 + varondiv2023); document.querySelector('[name="var_mol2023"]').value = mol2023.toFixed(2); document.querySelector('[name="mol_ebitda"]').value = mol2023.toFixed(2); // Calcolo PFN const varDbbnc2023 = parseFloat(document.querySelector('[name="var_dbbnc2023"]').value) || 0; const varobb2023 = parseFloat(document.querySelector('[name="var_obb2023"]').value) || 0; const varaltrifin2023 = parseFloat(document.querySelector('[name="var_altrifin2023"]').value) || 0; const varDbsoc2023 = parseFloat(document.querySelector('[name="var_dbsoc2023"]').value) || 0; const varDispliq2023 = parseFloat(document.querySelector('[name="var_displiq2023"]').value) || 0; const pfn2023 = varDbbnc2023 + varobb2023 + varaltrifin2023 + varDbsoc2023 - varDispliq2023; document.querySelector('[name="pfn"]').value = pfn2023.toFixed(2); // Calcolo PFN/MOL const pfnMol2023 = mol2023 !== 0 ? (pfn2023 / mol2023) : 0; document.querySelector('[name="pfn_mol"]').value = pfnMol2023.toFixed(2); // Calcolo importomassimorichiesta const imposteCorrenti2023 = parseFloat(document.querySelector('[name="var_impcorr2023"]').value) || 0; const interessiOneriFinanziari2023 = parseFloat(document.querySelector('[name="var_intonfin2023"]').value) || 0; const f3_b21 = mol2023 - imposteCorrenti2023; console.log("f3-b21:", f3_b21); const zeroottantacinqueXB22 = 0.85 * interessiOneriFinanziari2023; console.log("zeroottantacinqueXB22:", zeroottantacinqueXB22); const f3_b21_meno_zeroottantacinqueXB22 = f3_b21 - zeroottantacinqueXB22; console.log("f3_b21_meno_zeroottantacinqueXB22:", f3_b21_meno_zeroottantacinqueXB22); const f3_b21_meno_zeroottantacinqueXB22_per5 = f3_b21_meno_zeroottantacinqueXB22 * 5; console.log("f3_b21_meno_zeroottantacinqueXB22_per5:", f3_b21_meno_zeroottantacinqueXB22_per5); const f3_b21_meno_zeroottantacinqueXB22_per5_diviso085 = f3_b21_meno_zeroottantacinqueXB22_per5 / 0.85; console.log("f3_b21_meno_zeroottantacinqueXB22_per5_diviso085:", f3_b21_meno_zeroottantacinqueXB22_per5_diviso085); const B24_B25_B26_B27_menoB28 = varDbbnc2023 + varobb2023 + varaltrifin2023 + varDbsoc2023 - varDispliq2023; console.log("B24_B25_B26_B27_menoB28:", B24_B25_B26_B27_menoB28); // Assegna il calcolo a importoMassimoRichiesta senza dichiararla nuovamente let importoMassimoRichiesta = f3_b21_meno_zeroottantacinqueXB22_per5_diviso085 - B24_B25_B26_B27_menoB28; document.querySelector('[name="imp_max"]').value = importoMassimoRichiesta.toFixed(2); // Calcolo DSCR iniziale const B24_B25_B26_B27_menoB28_diviso5 = B24_B25_B26_B27_menoB28 / 5; const B24_B25_B26_B27_menoB28_diviso5_B22 = B24_B25_B26_B27_menoB28_diviso5 + interessiOneriFinanziari2023; const dscriniz = f3_b21 / B24_B25_B26_B27_menoB28_diviso5_B22; document.querySelector('[name="dscr_iniz"]').value = dscriniz.toFixed(2); // Calcolo DSCR finale const B24_B25_B26_B27_F10_menoB28_diviso5 = (B24_B25_B26_B27_menoB28 + importoMassimoRichiesta) / 5; const B24_B25_B26_B27_F10_menoB28_diviso5_B22 = B24_B25_B26_B27_F10_menoB28_diviso5 + interessiOneriFinanziari2023; const dscrfin = f3_b21 / B24_B25_B26_B27_F10_menoB28_diviso5_B22; document.querySelector('[name="dscr_fin"]').value = dscrfin.toFixed(2); } // Esegui calcolo iniziale con DSCR target di 0.85 calculateValues(0.85); }); </script>

Rispondi quotando