/* SCRIPT ******************************************************* bollettino_versamento.js | v1.1.0 Obiettivo Fornire un insieme di funzioni per la gestione del bollettino di versamento Revisioni 05.05.2008: Modifiche per detrazione statale PG080030 (Imprimis) [v1.1.0] 14.04.2003: Internazionalizzazione (Enrico Sodacci) [v1.1.0] 10.05.2002: Passaggio in staging (Alessio Mazzieri) [v1.1.0] 24.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ /* FUNZIONE ***************************************************************** verificaForm | v1.0.0 Obiettivo Verificare la validità del FORM prima della sottomissione Parametri IN [formAF] Riferimento all'oggetto FORM da controllare Risultato TRUE se il form contiene dati validi, FALSE altrimenti (oltre alla visualizzazione di una finestra di dettaglio dell'errore ed alla focalizzazione del campo mancante) Revisioni 24.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function verificaForm(formAF) { if (!moduloCompleto(formAF)) { return false; } //RDV-1014 /* if (formAF.anno.value=='2008'){ alert('SERVIZIO TEMPORANEAMENTE NON DISPONIBILE, A CAUSA DI ADEGUAMENTI NORMATIVI IN CORSO'); return false; } */ if (!formAF.bollettinoRavvedimento.checked ) { if ( formAF.prezzo.value == "" ) { formAF.prezzo.value = calcolaTotale(formAF); } //if (formAF.prezzo.value != calcolaTotale(formAF)) { if (formAF.prezzo.value != calcolaTotale(formAF) && formAF.arrotondamento.value!='SI'){ if(!confirm("Importo calcolato diverso da quello in pagamento.\nContinuare?\n(se si risponde annulla premere il pulsante calcola\nper aggiornare l'importo in pagamento)")) { return false; } else { scriviTotale(formAF); } } } else { if(formAF.prezzo.value=='000') { alert("Nessun importo da pagare!"); return false; } if (parseInt(formAF.prezzo.value) <= parseInt(calcolaTotale(formAF))) { alert("Con Ravvedimento Operoso l'Importo Totale dev'essere maggiore degli importi di dettaglio"); return false; } } if ( formAF.prezzo.value <= 0 ) { alert("Nessun importo da pagare!"); return false; } if ( formAF.prezzo.value < 258 ) { alert("Importo minimo del bollettino: 2,58 €"); return false; } // QF FL070170 //if(formAF.prezzoDecimali.value <= '49') // formAF.prezzoDecimali.value = '00'; /* if(formAF.prezzoDecimali.value > '49') { formAF.prezzoIntero.value = parseFloat(formAF.prezzoIntero.value) + 1; formAF.prezzoDecimali.value = '00'; } */ if(parseInt(formAF.anno.value) < 2008) { if(formAF.arrotondamento.value != 'SI') { apporeturn= confirm("Ai sensi del comma 166 L.27/12/2006 l'importo totale da pagare può essere arrotondato all'Euro per difetto se la frazione è inferiore a 49 centesimi, per eccesso superiore a detto importo (es. 140,49 si arrotonda a 140,00; 140,50 si arrotonda a 141,00); Qualora voglia usufruire dell'arrotondamento prema il pulsante Annulla e modifichi l'importo totale del bollettino altrimenti prema OK e proceda al pagamento!"); if(!apporeturn) { formAF.arrotondamento.value = 'SI'; return false; } else { formAF.arrotondamento.value = 'NO'; return true; } } } } /* Quaresima 23/03/2005 modifica per abilitare o disabilitare il pulsante calcola se ceccato ravvedimento */ function abi_dis_calcola(formAF) { if (!formAF.bollettinoRavvedimento.checked ) { formAF.calcola.disabled = false; } else { formAF.calcola.disabled = true; } } /* FUNZIONE *************************************************************** moduloCompleto | v1.0.0 Obiettivo Verificare se i campi sensibili del bollettino sono stati riempiti correttamente Parametri IN [formAF] Riferimento all'oggetto FORM da controllare Risultato TRUE se i campi sono stati verificati con successo, FALSE altrimenti Revisioni 05.05.2008: Modifiche per detrazione statale PG080030 (Imprimis) [v1.1.0] 24.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function moduloCompleto(formAF) { var campiVuoti = false; var primoCampo = ""; var msg = ""; var numeroFabbricati = 0; /* Conteggio numero fabbricati minimo */ if (!isNaN(formAF.importo3.value) && formAF.importo3.value>0 ) { numeroFabbricati++; } if (!isNaN(formAF.importo4.value) && formAF.importo4.value>0) { numeroFabbricati++; } if (!isNaN(formAF.importo3.value) && formAF.importo3.value=="000" && formAF.detrazione.value!="000" ) { numeroFabbricati++; } /* Controllo prezzo bollettino vuoto */ if (isNaN(formAF.prezzo.value)) { campiVuoti = true; primoCampo = "formAF.prezzoIntero"; msg = "Importo non valido!"; } /* Controllo dati anagrafici esecutore */ if (campoVuoto(formAF.utenteCognome) || campoVuoto(formAF.utenteDomicilio) || campoVuoto(formAF.utenteIndirizzo)) { campiVuoti = true; if (primoCampo=="") { if (formAF.utenteCognome.value=="") { primoCampo = "formAF.utenteCognome"; } else { if (formAF.utenteDomicilio.value=="") { primoCampo = "formAF.utenteDomicilio"; } else { primoCampo = "formAF.utenteIndirizzo"; } } } msg += (msg!=""?"\n":"")+"Completare i dati relativi alla persona che compie il versamento!" } /* Controllo codice fiscale minimo e conversione in lettere maiuscole */ formAF.utenteCF.value=formAF.utenteCF.value.replace(/\s/g,"").toUpperCase() if ((formAF.utenteCF.value=="") || ((formAF.utenteCF.value.length!=11) && (formAF.utenteCF.value.length!=16))) { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.utenteCF":primoCampo); msg += (msg!=""?"\n":"")+"Completare i dati relativi al codice fiscale!" } else { var tipo = (formAF.utenteNome.value.replace(/\s/g,"")==""?"pi":"cf"); if(!verificaCF(formAF.utenteCF.value, tipo)) { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.utenteCF":primoCampo); msg += (msg!=""?"\n":"")+"I dati relativi al Codice Fiscale non sono validi !\nATTENZIONE: nel caso di un'azienda non si deve specificare il campo nome, ma solo la ragione sociale." } } /* Controllo numero fabbricati */ if (isNaN(formAF.numeroFabbricati.value) && (numeroFabbricati>0)) { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.numeroFabbricati":primoCampo); msg += (msg!=""?"\n":"")+"Specificare il numero di fabbricati !" } else { if ((formAF.importo3.value!="000")&&(formAF.importo1.value=="000")&&(formAF.importo2.value=="000")&&(formAF.importo4.value=="000")) { if (((formAF.numeroFabbricati.value!=numeroFabbricati) && (formAF.numeroFabbricati.value!=(numeroFabbricati+1))) && numeroFabbricati>0 ) { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.numeroFabbricati":primoCampo); msg += (msg!=""?"\n":"")+"Il numero di fabbricati è almeno " + numeroFabbricati + " !" } } else { if ((formAF.numeroFabbricati.value0 ) { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.numeroFabbricati":primoCampo); msg += (msg!=""?"\n":"")+"Il numero di fabbricati deve essere almeno " + numeroFabbricati + " !" } } if ((formAF.numeroFabbricati.value>0) && (formAF.importo3.value=="000" || isNaN(formAF.importo3.value)) && (formAF.importo4.value=="000" || isNaN(formAF.importo4.value))) { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.importo3Intero":primoCampo); msg += (msg!=""?"\n":"")+"Devi specificare l'importo dei fabbricati o dell'abitazione principale!" } if ((formAF.numeroFabbricati.value>2) && !(formAF.importo3.value=="000" || isNaN(formAF.importo3.value)) && (formAF.importo4.value=="000" || isNaN(formAF.importo4.value))) { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.importo4Intero":primoCampo); msg += (msg!=""?"\n":"")+"Devi specificare altri fabbricati nel dettaglio !" } } /* Controllo importi e detrazioni */ /* if(formAF.detrazione.value!="000" && formAF.importo3.value=="000") { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.importo3Intero":primoCampo); msg += (msg!=""?"\n":"")+"E' stata inserita la detrazione ma non l'importo dell'abitazione principale!" } */ if(formAF.detrazione.value=="000" && formAF.importo3.value!="000") { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.detrazioneIntero":primoCampo); msg += (msg!=""?"\n":"")+"E' stato inserito l'importo dell'abitazione principale ma non la detrazione!" } /* Controllo anno */ if (formAF.anno.options[formAF.anno.selectedIndex].value=="") { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.anno":primoCampo); msg += (msg!=""?"\n":"")+"Specificare l'anno!" } else { /* Inizio PG080030 * 2008-05-05 Imprimis * inseriti controlli su detrazione statale * DA FARE inserire nuovi messaggi di errore */ /* la detrazione statale non vale per gli anni antecedenti al 2008 */ if(formAF.detrazioneStatale.value!="000") { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.detrazioneStataleIntero":primoCampo); msg += (msg!=""?"\n":"")+ "I dati relativi alla Detrazione statale non è corretta." } if(parseInt(formAF.anno.value) >= 2099) { /* come era fatto sopra per la detrazione comunale e' stato eliminato il controllo sull'abitazione principale */ /* la detrazione statale vale solo per le abitazioni principali */ /* if(formAF.detrazioneStatale.value!="000" && formAF.importo3.value=="000") { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.detrazioneStataleIntero":primoCampo); msg += (msg!=""?"\n":"")+"E' stata inserita la detrazione statale ma non l'importo dell'abitazione principale!" } */ /* la detrazione statale vale solo se insieme alla detrazione comunale */ if(formAF.detrazioneStatale.value!="000" && formAF.detrazione.value=="000") { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.detrazioneStataleIntero":primoCampo); msg += (msg!=""?"\n":"")+"E' stata inserita la detrazione statale e non è stata inserita la detrazione comunale!" } /* se abitazione principale allora deve esserci la detrazione statale */ if(formAF.detrazioneStatale.value=="000" && formAF.importo3.value!="000") { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.detrazioneStataleIntero":primoCampo); msg += (msg!=""?"\n":"")+"E' stato inserito l'importo dell'abitazione principale ma non la detrazione statale!" } /* l'importo deve essere <= 200,00 € */ var impdet = Number(formAF.detrazioneStatale.value); if(impdet > 20000) { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.detrazioneStataleIntero":primoCampo); msg += (msg!=""?"\n":"")+"Importo massimo della detrazione statale: 200,00 €" } } /* Fine PG080030 */ if(formAF.anno.options[formAF.anno.selectedIndex].value>((new Date()).getFullYear()+1)) { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.anno":primoCampo); msg += (msg!=""?"\n":"")+"Verificare l'anno!" } } /* Controllo acconto o saldo */ if (!(formAF.tipoPagamentoAcconto.checked || formAF.tipoPagamentoSaldo.checked)) { campiVuoti = true; primoCampo = (primoCampo==""?"formAF.tipoPagamentoAcconto":primoCampo); msg += (msg!=""?"\n":"")+"Selezionare almeno una opzione fra Acconto e Saldo." } /* Visualizzazione finestre di allarme, focalizzazione su primo campo */ if (campiVuoti) { alert(msg); if (!eval(primoCampo).disabled) { eval(primoCampo).focus() if (primoCampo != "formAF.anno") { eval(primoCampo).select() } } } return !campiVuoti; } /* FUNZIONE ***************************************************************** scriviTotale | v1.0.0 Obiettivo Calcolare il totale del bollettino e scriverlo sul bollettino stesso Parametri IN [formAF] Riferimento all'oggetto FORM da controllare Risultato Totale del bollettino calcolato come somma degli importi e impostazione sul bollettino Revisioni 29.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function scriviTotale (formAF) { formAF.prezzo.value = calcolaTotale(formAF) formAF.prezzoIntero.value = formAF.prezzo.value.substr(0, formAF.prezzo.value.length - 2) formAF.prezzoDecimali.value = formAF.prezzo.value.substr(formAF.prezzo.value.length - 2, 2) } /* FUNZIONE **************************************************************** calcolaTotale | v1.0.0 Obiettivo Calcolare il totale del bollettino Parametri IN [formAF] Riferimento all'oggetto FORM da controllare Risultato Totale del bollettino calcolato come somma degli importi Revisioni 29.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function calcolaTotale (formAF) { totaleBollettino = new Number(0); for (iB = 1; iB <= 4; totaleBollettino += Number((eval("formAF.importo" + iB++)).value)); if ( totaleBollettino != 0 ) { if(parseInt(formAF.anno.value) >= 2008) { restodec = totaleBollettino % 100; if (restodec > 49) { totaleBollettino = totaleBollettino - restodec + 100; } else { totaleBollettino = totaleBollettino - restodec; } } return String(totaleBollettino); } else { return "000" } } function submitForm(formAF) { var ret= verificaForm(formAF); if (ret) { formAF.onsubmit=''; formAF.action='../pagonet/tools/bollettini_aggiunta.asp'; formAF.submit(); } } /* FUNZIONE *************************************************************** attivaDetrazioneStatale| v1.1.0 Obiettivo Attivare o meno i campi della detrazione statale Parametri IN [formAF] Riferimento all'oggetto FORM da controllare Risultato TRUE Revisioni **************************************************************************************************/ function attivaDetrazioneStatale(formAF) { //alert(parseInt(formAF.anno.value) ); if (parseInt(formAF.anno.value) >= 2099 ) { formAF.detrazioneStataleIntero.readOnly = false; formAF.detrazioneStataleDecimali.readOnly = false; formAF.detrazioneStataleIntero.style.background= "#FFF"; formAF.detrazioneStataleDecimali.style.background= "#FFF"; } else { formAF.detrazioneStatale.value = "000" formAF.detrazioneStataleIntero.value = "0"; formAF.detrazioneStataleDecimali.value = "00"; formAF.detrazioneStataleIntero.readOnly = "readOnly"; formAF.detrazioneStataleDecimali.readOnly = "readOnly"; formAF.detrazioneStataleIntero.style.background= "#CCC"; formAF.detrazioneStataleDecimali.style.background= "#CCC"; } }