Пример #1
0
        /// <summary>
        /// Cerca di capire se il file in esame è stato già oggetto di elaborazione, nel qual caso avvisa e restituisce false
        /// </summary>
        /// <param name="Conn"></param>
        /// <param name="M"></param>
        /// <param name="idbank"></param>
        /// <returns></returns>


        public static DatiImportati ImportFileManualeSiopePlus(DataAccess Conn, string fname)
        {
            //if (idbank == null || idbank == DBNull.Value) {
            //    MessageBox.Show("E' necessario selezionare una banca", "Errore");
            //    return null;
            //}
            //Chiamata GET per chiedere il file del Giornale di Cassa

            DatiImportati I      = null;
            string        idbank = null;

            I = import_siopeplus.ImportaFileManuale(Conn, fname, out idbank);
            if (I == null)
            {
                return(null);
            }
            if (GiornaleGiaImportato(Conn, I, idbank))
            {
                I.DatiValidi = false;
            }
            //if (!verificaDoppiaImportazione(Conn, I, idbank)) I.DatiValidi = false;
            if (!I.CalcolaChiaviDocumenti(Conn))
            {
                I.DatiValidi = false;
            }

            return(I);
        }
Пример #2
0
        /// <summary>
        /// Restituisce true se ci sono bollette nel flusso non ancora importate
        /// </summary>
        /// <param name="Conn"></param>
        /// <param name="M"></param>
        /// <returns></returns>
        private static bool verificaDoppiaImportazioneSospesi(DataAccess Conn, DatiImportati M)
        {
            QueryHelper  Q         = Conn.GetQueryHelper();
            CQueryHelper QHC       = new CQueryHelper();
            DataTable    billDebit = Conn.RUN_SELECT("bill", "ybill, nbill, billkind", null,
                                                     Q.AppAnd(Q.CmpEq("ybill", Conn.GetSys("esercizio")),
                                                              Q.CmpEq("billkind", "D")), null, null, true);

            // Verifica presenza sospesi uscita salvati su DB
            foreach (ProvvisorioSpesa R in M.BolletteSpesa)
            {
                string filter = QHC.AppAnd(QHC.CmpEq("ybill", R.y), QHC.CmpEq("nbill", R.nbill));
                if (billDebit.Select(filter).Length == 0)
                {
                    return(true);
                }
            }

            DataTable billCredit = Conn.RUN_SELECT("bill", "ybill, nbill, billkind", null,
                                                   Q.AppAnd(Q.CmpEq("ybill", Conn.GetSys("esercizio")),
                                                            Q.CmpEq("billkind", "C")), null, null, true);

            // Verifica presenza sospesi entrata salvati su DB
            foreach (ProvvisorioEntrata R in M.BolletteEntrata)
            {
                string filter = QHC.AppAnd(QHC.CmpEq("ybill", R.y), QHC.CmpEq("nbill", R.nbill));
                if (billCredit.Select(filter).Length == 0)
                {
                    return(true);
                }
            }

            return(false);
        }
Пример #3
0
        public static DatiImportati[] ImportFileSiopePlus(DataAccess Conn, /*object idbank,*/ DateTime inizio, DateTime fine)
        {
            //if (idbank == null || idbank == DBNull.Value) {
            //    MessageBox.Show("E' necessario selezionare una banca", "Errore");
            //    return null;
            //}
            //Chiamata GET per chiedere il file del Giornale di Cassa
            string errore;
            var    Giornaledicassa = PagoPaService.LeggiGiornaledicassa(Conn, inizio, fine, out errore);

            if (errore != null)
            {
                MessageBox.Show(errore, "Errore");
                ErrorLogger.Logger.logException("Errore - PagoPaService.LeggiGiornaledicassa()[WS OPI]");
                return(null);
            }
            if (Giornaledicassa == null)
            {
                MessageBox.Show("Nessun file ricevuto", "Errore");
                ErrorLogger.Logger.logException("Avviso - Nessun file ricevuto[WS OPI]");
                return(null);
            }
            int nDoc = Giornaledicassa.Length;

            DatiImportati[] allDatiImportati = new DatiImportati[nDoc];
            int             i = 0;

            string idbank = null;

            foreach (Stream Giornale in Giornaledicassa)
            {
                var I = import_siopeplus.ImportaFile(Conn, Giornale, out idbank);//Da valutare un'eventuale condizione
                Giornale.Close();
                Giornale.Dispose();
                if (I == null)
                {
                    return(null);
                }
                if (GiornaleGiaImportato(Conn, I, idbank))
                {
                    I.DatiValidi = false;
                }
                //if (!verificaDoppiaImportazioneNonOpi(Conn, I, idbank)) I.DatiValidi = false;
                if (!I.CalcolaChiaviDocumenti(Conn))
                {
                    I.DatiValidi = false;
                }
                allDatiImportati[i] = I;
                i++;
            }
            return(allDatiImportati);
        }
Пример #4
0
        // Cerca di capire se il file in esame è stato già oggetto di elaborazione verificando che non esista una riga
        // in bankimport con Data ultimo mandato > della Data ultimo mandato presente nel flusso
        // OR Data ultima reversale  > della Data ultima reversale presente nel flusso
        // OR Data ultimo provvisorio di entrata/uscita > della Data ultimo provvisorio di entrata/uscita  presente nel flusso
        private static bool verificaDoppiaImportazioneSolodate(DataAccess Conn, DatiImportati M, object idbank,
                                                               DateTime lastbillexpense, DateTime lastbillincome, DateTime lastpayment, DateTime lastproceeds)
        {
            QueryHelper QHS   = Conn.GetQueryHelper();
            string      cond2 = "";

            if (M.Mandati.Count > 0)
            {
                cond2 = QHS.AppAnd(
                    QHS.CmpEq("idbank", idbank), QHS.CmpGt("lastpayment", lastpayment));
            }
            if (M.Reversali.Count > 0)
            {
                if (cond2 == "")
                {
                    cond2 = QHS.AppAnd(QHS.CmpEq("idbank", idbank), QHS.CmpGt("lastproceeds", lastproceeds));
                }
                cond2 = GetData.MergeWithOperator(cond2, QHS.AppAnd(
                                                      QHS.CmpEq("idbank", idbank), QHS.CmpGt("lastproceeds", lastproceeds)), "OR");
            }
            if (M.BolletteSpesa.Count > 0)
            {
                if (cond2 == "")
                {
                    cond2 = QHS.AppAnd(
                        QHS.CmpEq("idbank", idbank), QHS.CmpGt("lastbillincome", lastbillincome));
                }
                else
                {
                    cond2 = GetData.MergeWithOperator(cond2, QHS.AppAnd(
                                                          QHS.CmpEq("idbank", idbank), QHS.CmpGt("lastbillincome", lastbillincome)), "OR");
                }
            }
            if (M.EsitiBolletteEntrata.Count > 0)
            {
                if (cond2 == "")
                {
                    cond2 = QHS.AppAnd(
                        QHS.CmpEq("idbank", idbank), QHS.CmpGt("lastbillexpense", lastbillexpense));
                }
                else
                {
                    cond2 = GetData.MergeWithOperator(cond2, QHS.AppAnd(
                                                          QHS.CmpEq("idbank", idbank), QHS.CmpGt("lastbillexpense", lastbillexpense)), "OR");
                }
            }
            if (Conn.RUN_SELECT_COUNT("bankimport", cond2, false) > 0)
            {
                return(false);
            }
            return(true);
        }
Пример #5
0
        /// Cerca di capire se il file in esame è stato già oggetto di elaborazione, nel qual caso avvisa e restituisce false
        /// </summary>
        /// <param name="Conn"></param>
        /// <param name="M"></param>
        /// <param name="idbank"></param>
        /// <returns></returns>
        private static bool GiornaleGiaImportato(DataAccess Conn, DatiImportati M, object idbank)
        {
            QueryHelper QHS = Conn.GetQueryHelper();
            string      identificativo_flusso_BT = M.identificativo_flusso_BT;

            if (identificativo_flusso_BT == null)
            {
                MessageBox.Show(
                    "Il flusso non ha l'identificativo, non è possibile importarlo.",
                    "Errore");
                return(true);
            }
            //GDC-2019011720190117185938720#001#001
            //GDC - 2019 01 17 2019 01 17 185938720#001#001
            string datainizio = identificativo_flusso_BT.Substring(4, 8);
            string datafine   = identificativo_flusso_BT.Substring(13, 8);

            //Non serve, essendo il formato AAAAMMDD possiamo confrontare direttamente le stringhe
            //DateTime datainizioDt = CalcolaData(datainizio);
            //DateTime datafineDt = CalcolaData(datafine);

            string cond = QHS.AppAnd(
                //QHS.CmpEq("idbank", idbank),
                QHS.CmpEq("ayear", Conn.GetEsercizio()),
                QHS.CmpEq("identificativo_flusso_BT", identificativo_flusso_BT));

            //    QHS.IsNotNull("identificativo_flusso_BT"),
            //    QHS.DoPar(QHS.AppOr(
            //        QHS.Between("substring(identificativo_flusso_bt,5,8)",datainizio, datafine),
            //        QHS.Between("substring(identificativo_flusso_bt, 14,8)", datainizio, datafine)))

            //);

            if (Conn.RUN_SELECT_COUNT("bankimport", cond, false) > 0)
            {
                MessageBox.Show(
                    "Il file selezionato è stato già IN PASSATO importato nel db. Operazione non consentita(flusso_BT)." + identificativo_flusso_BT,
                    "Errore");
                return(true);
            }

            return(false);
        }
Пример #6
0
        /// <summary>
        /// Cerca di capire se il file in esame è stato già oggetto di elaborazione, nel qual caso avvisa e restituisce false
        /// </summary>
        /// <param name="dataGrid1"></param>
        /// <param name="txtInizioElaborazione"></param>
        /// <param name="txtFineElaborazione"></param>
        /// <returns></returns>
        private static bool verificaDoppiaImportazioneNonOpi(DataAccess Conn, DatiImportati M, object idbank)
        {
            QueryHelper QHS                    = Conn.GetQueryHelper();
            DateTime    lastpayment            = new DateTime(1900, 1, 1);
            DateTime    lastproceeds           = new DateTime(1900, 1, 1);
            DateTime    lastbillincome         = new DateTime(1900, 1, 1);
            DateTime    lastbillexpense        = new DateTime(1900, 1, 1);
            decimal     totalpayment           = 0;
            decimal     totalproceeds          = 0;
            decimal     totalbillincome_plus   = 0;
            decimal     totalbillincome_minus  = 0;
            decimal     totalbillexpense_plus  = 0;
            decimal     totalbillexpense_minus = 0;

            foreach (RigaMandato R in M.Mandati)
            {
                totalpayment += R.amount;
                if (R.transactiondate == DBNull.Value)
                {
                    continue;
                }
                if (lastpayment < (DateTime)R.transactiondate)
                {
                    lastpayment = (DateTime)R.transactiondate;
                }
            }
            foreach (RigaReversale R in M.Reversali)
            {
                totalproceeds += R.amount;
                if (R.transactiondate == DBNull.Value)
                {
                    continue;
                }
                if (lastproceeds < (DateTime)R.transactiondate)
                {
                    lastproceeds = (DateTime)R.transactiondate;
                }
            }
            foreach (ProvvisorioEntrata R in M.BolletteEntrata)
            {
                totalbillincome_plus  += R.amount > 0 ? R.amount : 0;
                totalbillincome_minus += R.amount < 0 ? -R.amount : 0;
                if (R.data == DBNull.Value)
                {
                    continue;
                }
                if (lastbillincome < (DateTime)R.data)
                {
                    lastbillincome = (DateTime)R.data;
                }
            }
            foreach (ProvvisorioSpesa R in M.BolletteSpesa)
            {
                totalbillexpense_plus  += R.amount > 0 ? R.amount : 0;
                totalbillexpense_minus += R.amount < 0 ? -R.amount : 0;
                if (R.data == DBNull.Value)
                {
                    continue;
                }
                if (lastbillexpense < (DateTime)R.data)
                {
                    lastbillexpense = (DateTime)R.data;
                }
            }

            string cond = QHS.AppAnd(
                QHS.CmpEq("idbank", idbank), QHS.CmpEq("ayear", Conn.GetEsercizio()),
                QHS.CmpEq("lastpayment", lastpayment), QHS.CmpEq("lastproceeds", lastproceeds),
                QHS.CmpEq("lastbillincome", lastbillincome), QHS.CmpEq("lastbillexpense", lastbillexpense),
                QHS.CmpEq("totalpayment", totalpayment), QHS.CmpEq("totalproceeds", totalproceeds),
                QHS.CmpEq("totalbillincome_plus", totalbillincome_plus), QHS.CmpEq("totalbillincome_minus", totalbillincome_minus),
                QHS.CmpEq("totalbillexpense_plus", totalbillexpense_plus), QHS.CmpEq("totalbillexpense_minus", totalbillexpense_minus)
                );

            if (Conn.RUN_SELECT_COUNT("bankimport", cond, false) > 0)
            {
                if (M.Mandati.Count == 0 && M.Reversali.Count == 0)
                {
                    if (verificaDoppiaImportazioneSospesi(Conn, M))  //caso speciale solo bollette
                    {
                        return(true);
                    }
                }
                MessageBox.Show(
                    "Il file selezionato è stato già IN PASSATO importato nel db. Operazione non consentita.",
                    "Errore");
                return(false);
            }

            //if (!verificaDoppiaImportazioneSolodate(Conn, M,idbank, lastbillexpense, lastbillincome, lastpayment, lastproceeds)) {
            //    MessageBox.Show("Il file selezionato è stato già IN PASSATO importato nel db. Operazione non consentita.", "Errore");
            //    return false;
            //}

            return(true);
        }
Пример #7
0
        public static DatiImportati ImportFile(DataAccess Conn, string fname, object idbank)
        {
            if (idbank == null || idbank == DBNull.Value)
            {
                MessageBox.Show("E' necessario selezionare una banca", "Errore");
                return(null);
            }
            DatiImportati I   = null;
            List <string> abi = new List <string>();

            abi.AddRange(new string[] { "05696", "03067", "03111", "01030",
                                        "02008", "05372", "01010", "08661", "01010",
                                        "06065", "03069", "05262", "08553", "03019", "05216", "03599" });
            if (!abi.Contains(idbank.ToString()))
            {
                MessageBox.Show("La banca selezionata non è al momento gestita dall'applicazione", "Errore");
                return(null);
            }

            if (idbank.ToString() == "05696")
            {
                I = import_sondrio.ImportaFile(Conn, fname);
            }
            if ((idbank.ToString() == "03067") || (idbank.ToString() == "03111"))
            {
                I = import_carime.ImportaFile(Conn, fname);                                                                  //Carime / Ubi Banca
            }
            if (idbank.ToString() == "01030")
            {
                I = import_mps.ImportaFile(Conn, fname);                               // DA RIMUOVERE
            }
            if (idbank.ToString() == "02008")
            {
                I = import_unicredit.ImportaFile(Conn, fname);
            }
            if (idbank.ToString() == "05372")
            {
                I = import_bpcassinate.ImportaFile(Conn, fname);
            }
            //if (idbank.ToString() == "08661") I = import_bccirpina.ImportaFile(Conn, fname);
            if (idbank.ToString() == "01010")
            {
                I = import_intesasanpaolo.ImportaFile(Conn, fname);                                // Banco di Napoli
            }
            //if (idbank.ToString() == "06065") I = import_intesasanpaolo.ImportaFile(Conn, fname);  // IntesaSanPaolo
            if (idbank.ToString() == "03069")
            {
                I = import_intesasanpaolo.ImportaFile(Conn, fname);                                // IntesaSanPaolo
            }
            if (idbank.ToString() == "05262")
            {
                I = import_bppugliese.ImportaFile(Conn, fname);                                // Banca Popolare Pugliese
            }
            //if (idbank.ToString() == "05262") I =  import_bppugliese_2.ImportaFile(Conn, fname);  // Banca Popolare Pugliese
            if ((idbank.ToString() == "08553") || (idbank.ToString() == "03599"))
            {
                I = import_bccflumeri.ImportaFile(Conn, fname);                                                                    // Banca Credito Cooperativo Flumeri
            }
            if (idbank.ToString() == "03019")
            {
                I = import_creditosiciliano.ImportaFile(Conn, fname);                                // Credito Siciliano
            }
            if (idbank.ToString() == "05216")
            {
                I = import_creditosiciliano.ImportaFile(Conn, fname);                                // Credito Valtellinese
            }
            //if (idbank.ToString() == "01030") I = import_mps_abi36.ImportaFile(Conn, fname); //Monte dei Paschi di Siena ABI 36
            if (I == null)
            {
                return(null);
            }
            if (!verificaDoppiaImportazioneNonOpi(Conn, I, idbank))
            {
                I.DatiValidi = false;
            }
            if (!I.CalcolaChiaviDocumenti(Conn))
            {
                I.DatiValidi = false;
            }
            return(I);
        }