Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }