} //tworzenie zapisu KB public static void ImportZPliku(Rejestr rejestr) { //int numerNr = NumerNr; try { //tablica lini z pliku string[] lines = File.ReadAllLines(@"C:\Banki\" + rejestr.Numer + @"\" + rejestr.Data.Year + @"\" + rejestr.DataWpisana + @"\" + rejestr.PelnaNazwa); //string[] lines = File.ReadAllLines(@"C:\Banki\1572\2020\03.2020\1572_02032020"); //ilość zapisów do wykonania int iloscZapisow = 0; int iloscLinii = 0; int dlugoscZapisu; foreach (string line in lines) { if (line.Contains("4:")) { iloscZapisow++; } iloscLinii++; } //Obliczenie długośći jednego zapisuKB dlugoscZapisu = iloscLinii / iloscZapisow; //tworzymy tablice obiektów Zapis[] zapisy = new Zapis[iloscZapisow]; //Debug.WriteLine("Ilość lini: " + iloscZapisow); //int ktoryZapis = 0; // do obiektów int aktualnaLinia = 0; int koniecPetli = dlugoscZapisu; int KtoryZapisOpis = 1; for (int j = 0; j < iloscZapisow; j++) //Petla zmieniająca zapis { Zapis zapis = new Zapis(); //Debug.WriteLine("*******" + KtoryZapisOpis + "******"); for (int i = aktualnaLinia; i < koniecPetli; i++) //pętla poszczególnych linii { //Debug.WriteLine(lines[i]); // sprawdzanie if (lines[i].Contains(":25:")) { //Debug.WriteLine("***"+lines[i].Substring(7,26)); zapis.Konto = lines[i].Substring(7, 26); } if (lines[i].Contains(":28:")) { //Debug.WriteLine("***"+lines[i].Substring(9)); zapis.Data = (DateTime.Parse(lines[i].Substring(9))); } if (lines[i].Contains(":60F:")) { //Debug.WriteLine("***" + lines[i].Substring(15)); if (lines[i].Substring(15) == "0,00") { //Debug.WriteLine("***" + lines[i + 1].Substring(15)); zapis.Wartosc = decimal.Parse(lines[i + 1].Substring(15)); zapis.Symbol = 1; } else { zapis.Wartosc = decimal.Parse(lines[i].Substring(15)); zapis.Symbol = -1; } } if (lines[i].Contains("^20")) { //Debug.WriteLine("opis: "+lines[i].Substring(3)); zapis.Opis = lines[i].Substring(3); } zapisy[j] = zapis; } aktualnaLinia = aktualnaLinia + dlugoscZapisu; koniecPetli = aktualnaLinia + dlugoscZapisu; KtoryZapisOpis++; } Debug.WriteLine("OBIEKTY"); foreach (Zapis zapis in zapisy) { try { //Debug.WriteLine(zapis.Konto); } catch (Exception e) { Debug.WriteLine(e.Message); } try { //Debug.WriteLine(zapis.Data); } catch (Exception e) { Debug.WriteLine(e.Message); } try { //Debug.WriteLine(zapis.Wartosc); } catch (Exception e) { Debug.WriteLine(e.Message); } try { //Debug.WriteLine(zapis.Symbol); } catch (Exception e) { Debug.WriteLine(e.Message); } try { //Debug.WriteLine(zapis.Opis); } catch (Exception e) { Debug.WriteLine(e.Message); } //Zapis do Optimy!!! //ZapisKB(zapis, rejestr); ZapisKB(zapis, rejestr); } } catch (Exception e) { Debug.WriteLine("Plik nie został znalezniony" + e.Message); } } //Parsowanie danych z pliku.
} //Parsowanie danych z pliku. public static void ZapisKB(Zapis zapis, Rejestr rejestr) { try { CDNBase.AdoSession oSession = OptimaCOM.oLogin.CreateSession(); var rZapis = oSession.CreateObject("CDN.ZapisyKB").AddNew(); var rNumerator = rZapis.Numerator; // //try //{ // var rDokDef = oSession.CreateObject("CDN.DefinicjeDokumentow").Item("DDf_DDfID = 5");//.Item("DDf_Symbol=''"); //seria // rNumerator.DefinicjaDokumentu = rDokDef; // //Debug.WriteLine("Definicja dokumentu UDANA!"); //} //catch(Exception e) //{ // /Program.log.Debug("Błąd podczas tworzenia definicji dokumentu: "+e.Message); //} //DefinicjeDokumentów //try //{ //var rRachunek = oSession.CreateObject("CDN.Rachunki").Item("Bra_Symbol= '" + rejestr.Nazwa+ "'"); //Rejestr //rZapis.Rachunek = rRachunek; // //Debug.WriteLine("pomyślne ustawienie rachunku"); //} //catch(Exception e) //{ // //Program.log.Debug("Błąd podczas ustawiania rachunku" + Environment.NewLine+e.Message); //} // Ustawienie rachunku try { if (czyIstniejeRaport(rejestr.Data, rejestr.Numer, rejestr) == false) { NowyRaport(rejestr); Debug.WriteLine("NowyRaport() ZapisKB()......................................................................"); } ; int NumerNr = ZwrocNumerNr(rejestr); //moge to wrzucic jako parametr do funkcji... int wywolasc gdzies przed wywolanie tej funkcji Debug.WriteLine("NumerNr() ZapisKB()......................................................NIEPOTRZEBNE ZAPYTANIA DO BAZY..."); var rRaport = oSession.CreateObject("CDN.RaportyKB").Item("BRp_NumerPelny = '" + "RKB/" + NumerNr + "/" + rejestr.Data.Year + "/" + rejestr.Nazwa + "'"); //Debug.WriteLine("pomyślne dodanie Numeru"); rZapis.RaportKB = rRaport; rZapis.DataDok = rejestr.Data; //z ta data byl problem !!!!! rZapis.Kwota = zapis.Wartosc; //rZapis.NumerObcy = zapis.Konto; rZapis.Opis = zapis.Opis; // Debug.WriteLine("pomyślne dodanie danych bloku: RaportKB, DataDok, Kwota"); // var rSeria = oSession.CreateObject("OP_KASBOLib.ZapisKB").Item("Seria1 = KASA"); } catch (Exception e) { Debug.WriteLine("Błąd podczas ustawiania raportu: " + e.Message); } //RaportKB, Data, Kwota, NUMER OBCY !!! rZapis.DefinicjaDokumentu = rNumerator.DefinicjaDokumentu; rZapis.Kierunek = zapis.Symbol; //nie wiem czemu 2 //rZapis.Seria = "KASA"; //OP_KASBOLib.ZapisKB zapis = oSession.CreateObject(OP_KASBOLib.ZapisKB) try { var rKontrahent = oSession.CreateObject("CDN.Kontrahenci").Item("Knt_KOD = '" + "!NIEOKREŚLONY!" + "'"); rZapis.Podmiot = rKontrahent; //Debug.WriteLine("Kontrahent: POMYŚLNIE"); } catch (Exception e) { Debug.WriteLine("Kontrahent NIE POMYŚLNIE... " + e.Message); } //Kontrahent oSession.Save(); //Debug.WriteLine("sesja udana"); } catch (Exception e) { Debug.WriteLine("Błąd tworzenia sesji: " + e.Message); } } //tworzenie zapisu KB
} // Tworzenie nowego raportu dla podanego rejestru public static void ZapisKB(int numerNr, Zapis zapis, Rejestr rejestr) { int NumerNr = numerNr; // NumerNr jest potrzebny, ponieważ w przypadku braku raportu, wywoływana jest metoda NowyRaport() która przyjmuje NumerNr jako parametr try { CDNBase.AdoSession oSession = OptimaCOM.oLogin.CreateSession(); var rZapis = oSession.CreateObject("CDN.ZapisyKB").AddNew(); var rNumerator = rZapis.Numerator; // try { var rDokDef = oSession.CreateObject("CDN.DefinicjeDokumentow").Item("DDf_DDfID = 5"); rNumerator.DefinicjaDokumentu = rDokDef; } catch (Exception e) { Form1.log.Debug("Błąd podczas tworzenia definicji dokumentu: " + e.Message); } try { var rRachunek = oSession.CreateObject("CDN.Rachunki").Item("Bra_Symbol = '" + rejestr.Nazwa + "'"); //Rejestr//musi byc BRa_Symbol bo Akronimy mogą mieć inną długość rZapis.Rachunek = rRachunek; //Debug.WriteLine("pomyślne ustawienie rachunku"); } catch (Exception e) { Form1.log.Debug("Błąd podczas ustawiania rachunku: " + Environment.NewLine + e.Message); } // Ustawienie rachunku try { if (czyIstniejeRaport(rejestr.Data, rejestr.Numer, rejestr) == false) { NowyRaport(rejestr); ZapisKB(NumerNr, zapis, rejestr); Debug.WriteLine("NowyRaport() ZapisKB()......................................................................"); } ; var rRaport = oSession.CreateObject("CDN.RaportyKB").Item("BRp_NumerPelny = '" + "RKB/" + NumerNr + "/" + rejestr.Data.Year + "/" + rejestr.Nazwa + "'"); rZapis.RaportKB = rRaport; rZapis.DataDok = rejestr.Data; rZapis.Kwota = zapis.Wartosc; rZapis.Opis = zapis.Opis; } catch (Exception e) { Debug.WriteLine("Błąd podczas ustawiania raportu: " + e.Message); } //RaportKB, Data, Kwota, NUMER OBCY !!! rZapis.DefinicjaDokumentu = rNumerator.DefinicjaDokumentu; rZapis.Kierunek = zapis.Symbol; try { var rKontrahent = oSession.CreateObject("CDN.Kontrahenci").Item("Knt_KOD = '" + "!NIEOKREŚLONY!" + "'"); rZapis.Podmiot = rKontrahent; } catch (Exception e) { Debug.WriteLine("Kontrahent nie dodany pomyślnie: " + e.Message); Form1.log.Debug("Kontrahent nie dodany pomyślnie: " + e.Message); } //Kontrahent oSession.Save(); //Debug.WriteLine("sesja udana"); } catch (Exception e) { Debug.WriteLine("Błąd tworzenia sesji: " + e.Message); } } //tworzenie zapisu KB ( bez niepotrzebnych zapytań do bazy)
public static void ImportZPliku(int NumerNr, Rejestr rejestr) { int numerNr = NumerNr; try { //tablica lini z pliku string[] lines = File.ReadAllLines(Properties.Settings.Default.Katalog_z_wyciagami + rejestr.Numer + @"\" + rejestr.Data.Year + @"\" + rejestr.DataWpisana + @"\" + rejestr.PelnaNazwa); //string[] lines = File.ReadAllLines(@"C:\Banki\1572\2020\03.2020\1572_02032020"); //ilość zapisów do wykonania int iloscZapisow = 0; int iloscLinii = 0; int dlugoscZapisu; foreach (string line in lines) { if (line.Contains("4:")) { iloscZapisow++; } iloscLinii++; } //Obliczenie długośći jednego zapisuKB dlugoscZapisu = iloscLinii / iloscZapisow; //tworzymy tablice obiektów Zapis[] zapisy = new Zapis[iloscZapisow]; //Debug.WriteLine("Ilość lini: " + iloscZapisow); //int ktoryZapis = 0; // do obiektów int aktualnaLinia = 0; int koniecPetli = dlugoscZapisu; int KtoryZapisOpis = 1; for (int j = 0; j < iloscZapisow; j++) //Petla zmieniająca zapis { Zapis zapis = new Zapis(); //Debug.WriteLine("*******" + KtoryZapisOpis + "******"); for (int i = aktualnaLinia; i < koniecPetli; i++) //pętla poszczególnych linii { //Debug.WriteLine(lines[i]); // sprawdzanie if (lines[i].Contains(":25:")) { //Debug.WriteLine("***"+lines[i].Substring(7,26)); zapis.Konto = lines[i].Substring(7, 26); } if (lines[i].Contains(":28:")) { //Debug.WriteLine("***"+lines[i].Substring(9)); zapis.Data = (DateTime.Parse(lines[i].Substring(9))); } if (lines[i].Contains(":60F:")) { //Debug.WriteLine("***" + lines[i].Substring(15)); if (lines[i].Substring(15) == "0,00") { //Debug.WriteLine("***" + lines[i + 1].Substring(15)); zapis.Wartosc = decimal.Parse(lines[i + 1].Substring(15)); zapis.Symbol = 1; } else { zapis.Wartosc = decimal.Parse(lines[i].Substring(15)); zapis.Symbol = -1; } } if (lines[i].Contains("^20")) { //Debug.WriteLine("opis: "+lines[i].Substring(3)); zapis.Opis = lines[i].Substring(3); //string s1 = EncodingDoWindows1250(lines[i].Substring(3)); //string s2 = ZamianaPolskiegoZnaku(s1); //zapis.Opis = ZamianaPolskiegoZnaku(lines[i].Substring(3)); } zapisy[j] = zapis; } aktualnaLinia = aktualnaLinia + dlugoscZapisu; koniecPetli = aktualnaLinia + dlugoscZapisu; KtoryZapisOpis++; } try { foreach (Zapis zapis in zapisy) { try { //Debug.WriteLine(zapis.Konto); } catch (Exception e) { Debug.WriteLine(e.Message); } try { //Debug.WriteLine(zapis.Data); } catch (Exception e) { Debug.WriteLine(e.Message); } try { //Debug.WriteLine(zapis.Wartosc); } catch (Exception e) { Debug.WriteLine(e.Message); } try { //Debug.WriteLine(zapis.Symbol); } catch (Exception e) { Debug.WriteLine(e.Message); } try { //Debug.WriteLine(zapis.Opis); } catch (Exception e) { Debug.WriteLine(e.Message); } //Zapis do Optimy!!! ZapisKB(numerNr, zapis, rejestr); } Form1.log.Debug("Poprawny zapis rejestrów do Raportu: RKB/" + NumerNr + "/" + rejestr.Data.Year.ToString() + "/" + rejestr.Numer); Debug.WriteLine("Poprawny zapis rejestrów do Raportu: RKB/" + NumerNr + "/" + rejestr.Data.Year.ToString() + "/" + rejestr.Numer); } catch (Exception e) { Form1.log.Error("Niepoprawny zapis rejestrów do Raportu: RKB/" + NumerNr + "/" + rejestr.Data.Year.ToString() + "/" + rejestr.Numer + ", " + e.Message); Debug.WriteLine("Niepoprawny zapis rejestrów do Raportu: RKB/" + NumerNr + "/" + rejestr.Data.Year.ToString() + "/" + rejestr.Numer + ", " + e.Message); } // zapisywanie zapisówKB } catch (Exception e) { Form1.log.Error("Plik nie został znalezniony" + e.Message); Debug.WriteLine("Plik nie został znalezniony" + e.Message); } } //Parsowanie danych z pliku.
} // funkcja zwraca listę rejestrów ... lacznie z tymi w których nie ma pliku ...UWAGA!!! rejestry są brane jeżeli folder (MM.yyyy) istnieje. public static void ImportZPlikuKonversja(int NumerNr, Rejestr rejestr) { int numerNr = NumerNr; //numer pobierany z bazy danych tabelaCDN.BnkRaporty try { Encoding e = Encoding.GetEncoding(1250); // to JEST potrzebne do dobrego Kodowania //Dzięki temu tekts nie jest parsowany jako string, więc wyświetla "Ł" var lines = File.ReadAllLines(Properties.Settings.Default.Katalog_z_wyciagami + rejestr.Numer + @"\" + rejestr.Data.Year + @"\" + rejestr.DataWpisana + @"\" + rejestr.PelnaNazwa, e); int iloscZapisow = 0; //ilość zapisów do zapisania int iloscLinii = 0; //ilość lini w ogóle int dlugoscZapisu; //ilość lini w każdym zapisie foreach (var line in lines) // obliczanie ilości zapisów { if (line.Contains("4:")) { iloscZapisow++; } iloscLinii++; } //Obliczenie długośći jednego zapisuKB dlugoscZapisu = iloscLinii / iloscZapisow; //tworzymy tablice obiektów Zapis[] zapisy = new Zapis[iloscZapisow]; int aktualnaLinia = 0; //aktualna linia całoego pliku int koniecPetli = dlugoscZapisu; //musi być osobna zmienna ponieważ jest zmieniana, i ustawiana od nowa po przebiegu wewnętrznej pętli int KtoryZapisOpis = 1; for (int j = 0; j < iloscZapisow; j++) //Petla zmieniająca tablicę obiektów Zapis { Zapis zapis = new Zapis(); for (int i = aktualnaLinia; i < koniecPetli; i++) //pętla poszczególnych linii { //Debug.WriteLine(lines[i]); // sprawdzanie if (lines[i].Contains(":25:")) { //Debug.WriteLine("***"+lines[i].Substring(7,26)); zapis.Konto = lines[i].Substring(7, 26); } if (lines[i].Contains(":28:")) { //Debug.WriteLine("***"+lines[i].Substring(9)); zapis.Data = (DateTime.Parse(lines[i].Substring(9))); } if (lines[i].Contains(":60F:")) { //Debug.WriteLine("***" + lines[i].Substring(15)); if (lines[i].Substring(15) == "0,00") { //Debug.WriteLine("***" + lines[i + 1].Substring(15)); zapis.Wartosc = decimal.Parse(lines[i + 1].Substring(15)); zapis.Symbol = 1; } else { zapis.Wartosc = decimal.Parse(lines[i].Substring(15)); zapis.Symbol = -1; } } if (lines[i].Contains("^20")) { //Debug.WriteLine("opis: "+lines[i].Substring(3)); zapis.Opis = lines[i].Substring(3); //string s1 = EncodingDoWindows1250(lines[i].Substring(3)); //string s2 = ZamianaPolskiegoZnaku(s1); //zapis.Opis = ZamianaPolskiegoZnaku(lines[i].Substring(3)); } zapisy[j] = zapis; } aktualnaLinia = aktualnaLinia + dlugoscZapisu; koniecPetli = aktualnaLinia + dlugoscZapisu; KtoryZapisOpis++; } try { foreach (Zapis zapis in zapisy) //Import zapisó do optimy { ZapisKB(numerNr, zapis, rejestr); } Form1.log.Debug("Poprawny zapis rejestrów do Raportu: RKB/" + NumerNr + "/" + rejestr.Data.Year.ToString() + "/" + rejestr.Numer); Debug.WriteLine("Poprawny zapis rejestrów do Raportu: RKB/" + NumerNr + "/" + rejestr.Data.Year.ToString() + "/" + rejestr.Numer); } catch (Exception ex) { Form1.log.Error("Niepoprawny zapis rejestrów do Raportu: RKB/" + NumerNr + "/" + rejestr.Data.Year.ToString() + "/" + rejestr.Numer + ", " + ex.Message); Debug.WriteLine("Niepoprawny zapis rejestrów do Raportu: RKB/" + NumerNr + "/" + rejestr.Data.Year.ToString() + "/" + rejestr.Numer + ", " + ex.Message); } // zapisywanie zapisówKB } catch (Exception e) { Form1.log.Error("Plik nie został znalezniony" + e.Message); Debug.WriteLine("Plik nie został znalezniony" + e.Message); } } //Parsowanie danych z pliku.