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