private void button3_Click(object sender, System.EventArgs e) { string cognome; string nome; string sesso; DateTime datanascita; string codicelocalita; string tipogeo; bool IsValid; string errori; string CF; Meta.GetFormData(true); codicelocalita = ""; tipogeo = ""; if (DS.parasubcontractfamily.Rows[0]["surname"] == DBNull.Value) { return; } cognome = DS.parasubcontractfamily.Rows[0]["surname"].ToString(); if (DS.parasubcontractfamily.Rows[0]["forename"] == DBNull.Value) { return; } nome = DS.parasubcontractfamily.Rows[0]["forename"].ToString(); if (DS.parasubcontractfamily.Rows[0]["gender"] == DBNull.Value) { return; } sesso = DS.parasubcontractfamily.Rows[0]["gender"].ToString(); if (DS.parasubcontractfamily.Rows[0]["birthdate"] == DBNull.Value) { return; } datanascita = (DateTime)DS.parasubcontractfamily.Rows[0]["birthdate"]; if (DS.parasubcontractfamily.Rows[0]["flagforeign"] == DBNull.Value) { return; } if (DS.parasubcontractfamily.Rows[0]["flagforeign"].ToString() == "N") { if (DS.parasubcontractfamily.Rows[0]["idcitybirth"] != DBNull.Value) { codicelocalita = DS.parasubcontractfamily.Rows[0]["idcitybirth"].ToString(); tipogeo = "C"; } } if (DS.parasubcontractfamily.Rows[0]["flagforeign"].ToString() == "S") { if (DS.parasubcontractfamily.Rows[0]["idnation"] != DBNull.Value) { codicelocalita = DS.parasubcontractfamily.Rows[0]["idnation"].ToString(); tipogeo = "N"; } } CF = CalcolaCodiceFiscale.Make(Meta.Conn, nome, cognome, datanascita, codicelocalita, sesso, tipogeo, out IsValid, out errori); if (IsValid) { txtCF.Text = CF; } else { MessageBox.Show("Sono stati riscontrati i seguenti errori " + "durante il calcolo del codice fiscale:\r\r" + errori, "Calcolo Codice Fiscale", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
public override bool IsValid(DataRow R, out string errmess, out string errfield) { if (!base.IsValid(R, out errmess, out errfield)) { return(false); } string errori; if ((R["forename"] == DBNull.Value) || (R["forename"].ToString() == "")) { errmess = "Inserire il Nome del familiare"; errfield = "forename"; return(false); } if ((R["surname"] == DBNull.Value) || (R["surname"].ToString() == "")) { errmess = "Inserire il Cognome del familiare"; errfield = "surname"; return(false); } if (R["birthdate"] == DBNull.Value) { errmess = "Inserire la Data di Nascita del familiare"; errfield = "birthdate"; return(false); } if (R["gender"] == DBNull.Value) { errmess = "Inserire il Sesso del familiare"; errfield = "gender"; return(false); } string TipoGeo = ""; int idgeo = 0; if (R["flagforeign"] == DBNull.Value) { errmess = null; errfield = null; return(false); } if (R["flagforeign"].ToString() == "S") { TipoGeo = "N"; idgeo = CfgFn.GetNoNullInt32(R["idnation"]); if (idgeo <= 0) { errmess = "Manca lo stato estero di nascita"; errfield = "idnation"; return(false); } } if (R["flagforeign"].ToString() == "N") { TipoGeo = "C"; idgeo = CfgFn.GetNoNullInt32(R["idcitybirth"]); if (idgeo <= 0) { errmess = "Manca il comune di nascita"; errfield = "idnation"; return(false); } } if (R["cf"] == DBNull.Value) { errmess = "CF Mancante"; errfield = "cf"; return(false); } CalcolaCodiceFiscale.CheckCF(R["cf"].ToString(), out errori); if (errori != "") { errmess = errori = "Nel codice fiscale inserito compaiono i seguenti errori:\n\r " + errori; errfield = "cf"; return(false); } string codicefiscalecalcolato; bool isValid; string errCF; string cfNormal = CalcolaCodiceFiscale.normalizza(R["cf"].ToString().ToUpper()); // Se arrivo a questo punto del codice vuol dire che i dati presenti nel dataset sono quantomeno diversi da null codicefiscalecalcolato = CalcolaCodiceFiscale.Make(this.Conn, R["forename"].ToString(), R["surname"].ToString(), (DateTime)R["birthdate"], idgeo.ToString(), R["gender"].ToString(), TipoGeo, out isValid, out errCF); if (cfNormal.Substring(0, 15) != codicefiscalecalcolato.Substring(0, 15)) { errmess = "Dati anagrafici errati!"; errfield = "cf"; if (cfNormal.Substring(0, 3) != codicefiscalecalcolato.Substring(0, 3)) { errmess += "\r\nCF non coerente con il cognome"; } if (cfNormal.Substring(3, 3) != codicefiscalecalcolato.Substring(3, 3)) { errmess += "\r\nCF non coerente con il nome"; } if (cfNormal.Substring(6, 2) != codicefiscalecalcolato.Substring(6, 2)) { errmess += "\r\nCF non coerente con l'anno di nascita"; } if (cfNormal.Substring(8, 1) != codicefiscalecalcolato.Substring(8, 1)) { errmess += "\r\nCF non coerente con il mese di nascita"; } int g1 = Convert.ToInt32(cfNormal.Substring(9, 2)); int g2 = Convert.ToInt32(codicefiscalecalcolato.Substring(9, 2)); string s1 = "M"; string s2 = "M"; if (g1 > 40) { s1 = "F"; g1 -= 40; } if (g2 > 40) { s2 = "F"; g2 -= 40; } if (g1 != g2) { errmess += "\r\nCF non coerente con il giorno di nascita"; } if (s1 != s2) { errmess += "\r\nCF non coerente con il sesso"; } if (cfNormal.Substring(11, 4) != codicefiscalecalcolato.Substring(11, 4)) { errmess += "\r\nCF non coerente con il comune o la nazione di nascita"; } return(false); } decimal perc = 1; if (R["appliancepercentage"] != DBNull.Value) { perc = (decimal)R["appliancepercentage"]; } if ((R["flagdependent"].ToString().ToUpper() == "S") && (perc == 0)) { errmess = "Se il familiare risulta a carico la percentuale di applicazione deve essere diversa da zero"; errfield = "appliancepercentage"; return(false); } return(true); }
public override bool IsValid(DataRow R, out string errmess, out string errfield) { if (!base.IsValid(R, out errmess, out errfield)) { return(false); } if (CfgFn.GetNoNullDecimal(R["amount"]) <= 0) { errmess = "L'importo non può essere nullo, negativo o uguale a zero"; errfield = "amount"; return(false); } if (R["flaghuman"].ToString().ToUpper() == "S") { if (R["surname"] == DBNull.Value) { errmess = "Inserire il Cognome"; errfield = "surname"; return(false); } if (R["forename"] == DBNull.Value) { errmess = "Inserire il Nome"; errfield = "forename"; return(false); } if (R["birthdate"] == DBNull.Value) { errmess = "Inserire la data di nascita"; errfield = "birthdate"; return(false); } if (R["gender"] == DBNull.Value) { errmess = "Inserire il sesso"; errfield = "gender"; return(false); } if ((CfgFn.GetNoNullInt32(R["idcity"]) == 0) && (CfgFn.GetNoNullInt32(R["idnation"]) == 0)) { errmess = "Inserire la città di nascita o lo stato estero di nascita"; errfield = "idcity"; return(false); } if (R["cap"] == DBNull.Value) { errmess = "Inserire il C.A.P."; errfield = "cap"; return(false); } if (R["address"] == DBNull.Value) { errmess = "Inserire l'indirizzo"; errfield = "address"; return(false); } if (R["location"] == DBNull.Value) { errmess = "Inserire la località"; errfield = "location"; return(false); } if (R["province"] == DBNull.Value) { errmess = "Inserire la sigla della provincia"; errfield = "province"; return(false); } // Controlli sul codice fiscale if (R["cf"] == DBNull.Value) { errmess = "Inserire il codice fiscale"; errfield = "cf"; return(false); } string errori; CalcolaCodiceFiscale.CheckCF(R["cf"].ToString(), out errori); if (errori != "") { errmess = errori = "Nel codice fiscale inserito compaiono i seguenti errori:\n\r " + errori; errfield = "cf"; return(false); } string codicefiscalecalcolato; bool isValid; string errCF; int idgeo; string TipoGeo; // Se sono arrivato in questo punto vuol dire che idcity o idnation sono valorizzati if (CfgFn.GetNoNullInt32(R["idcity"]) > 0) { idgeo = CfgFn.GetNoNullInt32(R["idcity"]); TipoGeo = "C"; } else { idgeo = CfgFn.GetNoNullInt32(R["idnation"]); TipoGeo = "N"; } string cfNormal = CalcolaCodiceFiscale.normalizza(R["cf"].ToString().ToUpper()); // Se arrivo a questo punto del codice vuol dire che i dati presenti nel dataset sono quantomeno diversi da null codicefiscalecalcolato = CalcolaCodiceFiscale.Make(this.Conn, R["forename"].ToString(), R["surname"].ToString(), (DateTime)R["birthdate"], idgeo.ToString(), R["gender"].ToString(), TipoGeo, out isValid, out errCF); if (cfNormal != codicefiscalecalcolato) { errmess = "Dati anagrafici errati!"; errfield = "cf"; if (cfNormal.Substring(0, 3) != codicefiscalecalcolato.Substring(0, 3)) { errmess += "\r\nCF non coerente con il cognome"; } if (cfNormal.Substring(3, 3) != codicefiscalecalcolato.Substring(3, 3)) { errmess += "\r\nCF non coerente con il nome"; } if (cfNormal.Substring(6, 2) != codicefiscalecalcolato.Substring(6, 2)) { errmess += "\r\nCF non coerente con l'anno di nascita"; } if (cfNormal.Substring(8, 1) != codicefiscalecalcolato.Substring(8, 1)) { errmess += "\r\nCF non coerente con il mese di nascita"; } int g1 = Convert.ToInt32(cfNormal.Substring(9, 2)); int g2 = Convert.ToInt32(codicefiscalecalcolato.Substring(9, 2)); string s1 = "M"; string s2 = "M"; if (g1 > 40) { s1 = "F"; g1 -= 40; } if (g2 > 40) { s2 = "F"; g2 -= 40; } if (g1 != g2) { errmess += "\r\nCF non coerente con il giorno di nascita"; } if (s1 != s2) { errmess += "\r\nCF non coerente con il sesso"; } if (cfNormal.Substring(11, 4) != codicefiscalecalcolato.Substring(11, 4)) { errmess += "\r\nCF non coerente con il comune o la nazione di nascita"; } return(false); } } else //E' un'azienda { if (R["title"] == DBNull.Value) { errmess = "Inserire la denominazione"; errfield = "title"; return(false); } if ((R["p_iva"] == DBNull.Value) && (R["cf"] == DBNull.Value)) { errmess = "Inserire la Partita IVA o il Codice Fiscale"; errfield = "p_iva"; return(false); } } if ((R["abi"] != DBNull.Value) && (R["abi"].ToString().Length < 5)) { errmess = "Il codice A.B.I. deve essere composto da 5 numeri"; errfield = "abi"; return(false); } if ((R["cab"] != DBNull.Value) && (R["cab"].ToString().Length < 5)) { errmess = "Il codice C.A.B. deve essere composto da 5 numeri"; errfield = "cab"; return(false); } if (CfgFn.GetNoNullInt32(R["paymethodcode"]) == 0) { errmess = "Deve essere scelta una modalità di pagamento"; errfield = "paymethodcode"; return(false); } return(true); }