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);
            }

            errmess = CalcolaPartitaIva.controllaPartitaIva(R["p_iva"].ToString());
            if (errmess != null)
            {
                errfield = "p_iva";
                return(false);
            }

            // La data di inizio può assumere valore null solo se nella tabella ho una sola riga
            // e di quella riga la data fine è valorizzata
            if (R["start"] == DBNull.Value)
            {
                if (SourceRow == null)
                {
                    return(true);
                }
                int righePresenti = SourceRow.Table.Rows.Count;
                if ((righePresenti == 1) && (R["stop"] != DBNull.Value))
                {
                    return(true);
                }
                errmess  = "Inserire la data di inizio validità della partita IVA";
                errfield = "start";
                return(false);
            }

            return(true);
        }
Exemplo n.º 2
0
        private void btnDocElaborati_Click(object sender, EventArgs e)
        {
            if (!DatiValidi())
            {
                return;
            }
            int esercizio = (int)HelpForm.GetObjectFromString(typeof(int),
                                                              txtEsercizio.Text.ToString(), "x.y.year");
            var trimestre = cmbTrimestre.SelectedValue;
            var mese      = cmbMese.SelectedValue;

            if (CfgFn.GetNoNullInt32(trimestre) == -1)
            {
                trimestre = null;
            }
            if (CfgFn.GetNoNullInt32(mese) == -1)
            {
                mese = null;
            }
            object kind;

            if (rdbA.Checked)
            {
                kind = "A";
            }
            else
            {
                kind = "V";
            }
            DataSet Out = Conn.CallSP("exp_esterometro_dati", new object[] { esercizio, trimestre, mese, kind }, false, 6000);

            if (Out == null)
            {
                return;
            }
            DataTable tFatture   = Out.Tables[0];
            int       CountError = 0;

            foreach (DataRow rFattura in tFatture.Select())
            {
                if (rFattura["comuneAnagrafica"].ToString() == "")
                {
                    rFattura["error"] = "Manca il Comune dell'Anagrafica.";
                    CountError++;
                }
                if (rFattura["Tipodocumento"].ToString() == "")
                {
                    rFattura["error"] = "Manca l'indicazione del Tipodocumento.";
                    CountError++;
                }

                if ((rFattura["IdFiscaleIvaCodiceAnagrafica"].ToString() == "") && (rFattura["CFAnagrafica"].ToString() == ""))
                {
                    rFattura["error"] = rFattura["error"].ToString() + "Indicare la p.iva o il CF dell'Anagrafica.";
                    CountError++;
                }
                if ((CfgFn.GetNoNullDecimal(rFattura["AliquotaIVA"]) == 0) && (rFattura["Natura"].ToString() == ""))
                {
                    rFattura["error"] = rFattura["error"].ToString() + "Per le aliquote 0, va indicata la Natura.";
                    CountError++;
                }
                if (rFattura["IdFiscaleIvaPaeseAnagrafica"].ToString() == "IT")
                {
                    string errorePIVA = CalcolaPartitaIva.controllaPartitaIva(rFattura["IdFiscaleIvaCodiceAnagrafica"].ToString());
                    if (errorePIVA != null)
                    {
                        rFattura["error"] = rFattura["error"].ToString() + "La Partita IVA inserita non è valida.";
                        CountError++;
                    }
                }
                if (rFattura["indirizzoAnagrafica"].ToString() == "")
                {
                    rFattura["error"] = "Manca un indirizzo valido per l'Anagrafica.";
                    CountError++;
                }
                //Per gli ExtraUE se le prime due cifre del CF estero sono diverse dal codice ISO della nazione, indicata nell'indirizzo di residenza, comunica la differenza.
                if ((rFattura["codresidenza"].ToString() == "X") && (rFattura["IdFiscaleIvaPaeseAnagrafica"].ToString() != rFattura["nazioneAnagrafica"].ToString()))
                {
                    rFattura["error"] = rFattura["error"].ToString() + "Anagrafica ExtraUE:i primi due caratteri del CF estero sono diversi dal codice ISO della nazione indicata nell'indirizzo.";
                    CountError++;
                }
            }

            if (CountError > 0)
            {
                MessageBox.Show(
                    "Sono stati riscontrati errori nei dati che causeranno lo scarto del file.\nGli errori sono riportati nell'ultima colonna.",
                    "Avviso", MessageBoxButtons.OK);
                //foreach (DataRow rFattura in tFatture.Select(QHC.CmpEq("error",""))) {
                //    rFattura.Delete();
                //}
                //tFatture.AcceptChanges();
            }

            if (tFatture != null)
            {
                Excel_Click(sender, e, tFatture);
            }
        }