Exemplo n.º 1
0
        public override bool IsValid(DataRow R, out string errmess, out string errfield)
        {
            if (!base.IsValid(R, out errmess, out errfield))
            {
                return(false);
            }

            // Se il codice fiscale è un aziendale non ci sono controlli da fare sulla validità dello stesso
            if (R["cf"].ToString().Length == 11)
            {
                return(true);
            }
            CalcolaCodiceFiscale.CheckCF(R["cf"].ToString(), out errmess);
            if (errmess != "")
            {
                errfield = "cf";
                return(false);
            }

            return(true);
        }
Exemplo 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 cf = R["cf"].ToString().Trim();

            if (cf == "")
            {
                errmess  = "Inserire il codice fiscale";
                errfield = "cf";
                return(false);
            }
            CalcolaCodiceFiscale.CheckCF(cf, out errmess);
            if (errmess != "")
            {
                errfield = "cf";
                return(false);
            }
            errmess = null;
            return(true);
        }
Exemplo 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);
            }
            decimal imponibilePrevidenziale = CfgFn.GetNoNullDecimal(R["taxablepension"]);

            if (imponibilePrevidenziale < 0)
            {
                errmess  = "L'imponibile Previdenziale non può essere negativo";
                errfield = "taxablepension";
                return(false);
            }
            decimal imponibileFiscaleLordo = CfgFn.GetNoNullDecimal(R["taxablegross"]);

            if (imponibileFiscaleLordo < 0)
            {
                errmess  = "L'imponibile Fiscale Lordo non può essere negativo";
                errfield = "taxablenet";
                return(false);
            }
            if (imponibilePrevidenziale < imponibileFiscaleLordo)
            {
                errmess  = "L'imponibile previdenziale deve essere maggiore o uguale all'imponibile fiscale lordo";
                errfield = "imponibilefiscalelordo";
                return(false);
            }

            if (R["cfotherdeputy"].ToString().Trim() == "")
            {
                errmess  = "Attenzione! Bisogna specificare il codice fiscale del sostituto";
                errfield = "cfotherdeputy";
                return(false);
            }

            string errori;
            int    lunghezzaCF = R["cfotherdeputy"].ToString().Length;

            if ((lunghezzaCF != 11) && (lunghezzaCF != 16))
            {
                errmess  = "La lunghezza del Codice Fiscale è errata, essa deve essere di 11 o 16 caratteri";
                errfield = "cfotherdeputy";
                return(false);
            }

            if (lunghezzaCF == 16)
            {
                CalcolaCodiceFiscale.CheckCF(R["cfotherdeputy"].ToString().ToUpper(), out errori);
                if (errori != "")
                {
                    errmess  = "Nel codice fiscale inserito compaiono i seguenti errori:\n\r " + errori;
                    errfield = "cfotherdeputy";
                    return(false);
                }
            }

            // Il controllo lo faccio sul DBNull in quanto se metto ZERO volutamente devo specificare la regione fiscale
            if (((R["regionaltaxapplied"] != DBNull.Value) || (R["suspendedregionaltax"] != DBNull.Value)) &&
                (R["idfiscaltaxregion"] == DBNull.Value))
            {
                errmess  = "Bisogna specificare la regione fiscale alla quale si è versata l'addizionale regionale";
                errfield = "idfiscaltaxregion";
                return(false);
            }

            // Il controllo lo faccio sul DBNull in quanto se metto ZERO volutamente devo specificare la regione fiscale
            if (((R["citytax_account"] != DBNull.Value) || (R["citytaxapplied"] != DBNull.Value) ||
                 (R["suspendedcitytax"] != DBNull.Value)) &&
                (R["idcity"] == DBNull.Value))
            {
                errmess  = "Bisogna specificare il comune al quale si è versata l'addizionale comunale e/o l'acconto";
                errfield = "idcity";
                return(false);
            }

            return(true);
        }
Exemplo n.º 4
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);
        }
Exemplo n.º 5
0
        private void button4_Click(object sender, System.EventArgs e)
        {
            if (Meta.IsEmpty)
            {
                return;
            }
            string errori;

            string idgeo;
            bool   ok = Meta.GetFormData(true);

            CalcolaCodiceFiscale.CheckCF(txtCF.Text, out errori);
            if (errori != "")
            {
                errori = "Nel codice fiscale inserito compaiono i seguenti errori:\n\r " + errori;
                MessageBox.Show(this, errori, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            DataRow R             = DS.parasubcontractfamily.Rows[0];
            string  codicefiscale = R["cf"].ToString().ToUpper();

            codicefiscale = CalcolaCodiceFiscale.normalizza(codicefiscale);

            chkEstero.Checked = (codicefiscale[11] == 'Z');
            string sesso       = InfoDaCodiceFiscale.Sesso(codicefiscale);
            object datanascita = InfoDaCodiceFiscale.DataNascita(Meta.Conn, codicefiscale);

            if (sesso != null)
            {
                R["gender"] = sesso;
            }
            if (datanascita != null)
            {
                R["birthdate"] = datanascita;
            }
            if (!chkEstero.Checked)
            {
                string idcomune = InfoDaCodiceFiscale.Comune(Meta.Conn, codicefiscale);
                if ((idcomune != null) && (idcomune != ""))
                {
                    R["idcitybirth"] = idcomune;
                    idgeo            = idcomune;
                }
                else
                {
                    MessageBox.Show(this, "Impossibile ricavare il comune dal codice '" + codicefiscale.Substring(11, 4) + "'", "Elaborazione del codice fiscale",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            else
            {
                string idnazione = InfoDaCodiceFiscale.Nazione(Meta.Conn, codicefiscale);
                if ((idnazione != null) && (idnazione != ""))
                {
                    R["idnation"] = idnazione;
                    idgeo         = idnazione;
                }
                else
                {
                    MessageBox.Show(this, "Impossibile ricavare lo stato estero dal codice '" + codicefiscale.Substring(11, 4) + "'", "Elaborazione del codice fiscale",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            Meta.FreshForm(true);
        }
Exemplo n.º 6
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);
        }