Example #1
0
        }  //tworzenie zapisu KB ( bez niepotrzebnych zapytań do bazy)

        public static int ZwrocNumerNr(Rejestr rejestr)
        {
            int NumerNr = 0;

            if (czyIstniejeRaport(rejestr.Data, rejestr.Nazwa, rejestr) == true)
            {
                string            provider         = ConfigurationManager.AppSettings["provider"];
                string            connectionString = ConfigurationManager.AppSettings["connectionString"];
                DbProviderFactory factory          = DbProviderFactories.GetFactory(provider); //to pozwala na słanie zapytań do bazy danych
                using (DbConnection connection = factory.CreateConnection())
                {
                    if (connection == null)
                    {
                        Form1.log.Debug("Connection Error");
                        Console.ReadLine();
                        return(0);
                    }
                    connection.ConnectionString = connectionString;
                    connection.Open();
                    DbCommand command = factory.CreateCommand();
                    if (command == null)
                    {
                        Form1.log.Debug("Connection Error");
                        Console.ReadLine();
                        return(0);
                    }
                    command.Connection  = connection;
                    command.CommandText = "Select TOP(1) [BRp_NumerNr],[BRp_NumerString],[BRp_DataDok],[BRp_DataZam]From [CDN_Firma_Demo].[CDN].[BnkRaporty] where [BRp_NumerString] LIKE '%" + rejestr.Numer + "%' AND [BRp_DataDok] = '" + rejestr.Data.ToString("yyyy-MM-dd") + " 00:00:00.000'";//.ToString("yyyy-mm-dd") + ""; // +" Where BRp_DataDok = "+ data;

                    using (DbDataReader dataReader = command.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            Object SqlNumerNr   = dataReader["BRp_NumerNr"];
                            int    ParseNumerNr = (int)SqlNumerNr;
                            NumerNr = ParseNumerNr;
                        }
                    }
                }
            }
            else
            {
                NowyRaport(rejestr);
                ZwrocNumerNr(rejestr);
            }
            return(NumerNr);
        }// funkcja zwrada numer raportu bankowego
Example #2
0
        }// funkcja zwrada numer raportu bankowego

        public static int ZwrocID(Rejestr rejestr)
        {
            int ID = 1;

            string            provider         = ConfigurationManager.AppSettings["provider"];
            string            connectionString = ConfigurationManager.AppSettings["connectionString"];
            DbProviderFactory factory          = DbProviderFactories.GetFactory(provider); //to pozwala na słanie zapytań do bazy danych

            using (DbConnection connection = factory.CreateConnection())
            {
                if (connection == null)
                {
                    Debug.WriteLine("Connection Error");
                    Console.ReadLine();
                    return(0);
                }
                connection.ConnectionString = connectionString;
                connection.Open();
                DbCommand command = factory.CreateCommand();
                if (command == null)
                {
                    Debug.WriteLine("Command Error");
                    Console.ReadLine();
                    return(0);
                }
                command.Connection  = connection;
                command.CommandText = "Select TOP(1) [BRp_BRaID],[BRp_NumerNr],[BRp_NumerString],[BRp_DataDok],[BRp_DataZam],[BRp_Zamkniety],[BRp_NumerPelny] From [CDN_Firma_Demo].[CDN].[BnkRaporty] where [BRp_NumerString] LIKE '%" + rejestr.Numer + "%' "; // +" Where BRp_DataDok = "+ data;

                using (DbDataReader dataReader = command.ExecuteReader())
                {
                    while (dataReader.Read())
                    {
                        Object SqlId   = dataReader["BRp_BRaID"];
                        int    ParseID = (int)SqlId;
                        ID = ParseID;
                    }
                }
                return(ID);
            }
        } //funkcja zwtara id rejestru, potrzebne do utworzenia nowego raportu
Example #3
0
        public static void NowyRaport(Rejestr rejestr)
        {
            var RachunekID = ZwrocID(rejestr);

            try
            {
                CDNBase.AdoSession oSession = OptimaCOM.oLogin.CreateSession();
                var rRaport = oSession.CreateObject("CDN.RaportyKB").AddNew();

                var rRejestr = oSession.CreateObject("CDN.Rachunki").Item("BRa_BRaID=" + RachunekID); // zeby metoda działała, w bazie danych musi być przynajmniej jeden raport !!!
                rRaport.Rachunek = rRejestr;
                rRaport.DataOtw  = rejestr.Data;
                rRaport.DataZam  = rejestr.Data;

                oSession.Save();
                Form1.log.Debug("Dodawanie Raportu zakończone powodzeniem!");     //Wcześniejszy raport nie ma ustalonej daty zamknięcia.
                Debug.WriteLine("Dodawanie Raportu zakończone powodzeniem!");     //Wcześniejszy raport nie ma ustalonej daty zamknięcia.
            }
            catch (Exception e)
            {
                Form1.log.Error("Błąd tworzenia sesji podczas dodawania RAPORTU: " + Environment.NewLine + e.Message); //Błąd tworzenia sesji podczas dodawania RAPORTUWcześniejszy raport nie ma ustalonej daty zamknięcia.
                Debug.WriteLine("Błąd tworzenia sesji podczas dodawania RAPORTU: " + Environment.NewLine + e.Message);
            }
        } // Tworzenie nowego raportu dla podanego rejestru
Example #4
0
        }  //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.
Example #5
0
        } //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
Example #6
0
        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.
Example #7
0
        } // 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)
Example #8
0
        } //Parsowanie danych z pliku.

        public static bool czyIstniejeRaport(DateTime data, string Numer, Rejestr rejestr)
        {
            //Łączenie z bazą danych
            string            provider         = ConfigurationManager.AppSettings["provider"];
            string            connectionString = ConfigurationManager.AppSettings["connectionString"];
            DbProviderFactory factory          = DbProviderFactories.GetFactory(provider); //to pozwala na słanie zapytań do bazy danych

            using (DbConnection connection = factory.CreateConnection())
            {
                if (connection == null)
                {
                    Form1.log.Error("Connection Error");
                    Debug.WriteLine("Connection Error");
                    Console.ReadLine();
                    return(false);
                }
                connection.ConnectionString = connectionString;
                connection.Open();
                DbCommand command = factory.CreateCommand();
                if (command == null)
                {
                    Form1.log.Error("Commant Error");
                    Debug.WriteLine("Command Error");
                    Console.ReadLine();
                    return(false);
                }
                command.Connection  = connection;
                command.CommandText = "Select * From [CDN_Firma_Demo].[CDN].[BnkRaporty]";

                List <Raport> raporty = new List <Raport>();

                using (DbDataReader dataReader = command.ExecuteReader())
                {
                    DateTime dataS;
                    while (dataReader.Read()) // zapełniamy listę raportów obiektami Raport
                    {
                        string dataOtw = dataReader["BRp_DataDok"].ToString();
                        dataS = DateTime.Parse(dataOtw.Substring(0, 10));

                        raporty.Add(new Raport
                        {
                            NazwaRejestru = dataReader["BRp_NumerPelny"].ToString(),
                            DataOtwarcia  = dataS
                        });
                    }
                } // zapełnienie listy wszystkich raportów z daty

                //Filtrowanie listy raportów po numerze rejestru i Dacie otwarcia, by sprawdzić czy istnieje konkretny raport
                var rap = from Raport in raporty
                          where Raport.NazwaRejestru.Contains(Numer) && Raport.DataOtwarcia == data
                          select Raport;
                if (rap.Any())
                {
                    return(true);
                }
                else //Jeżeli raport nie istnieje tworzymy Nowy Raport
                {
                    Debug.WriteLine("Brak Raportu. Raport jest tworzony.");
                    Form1.log.Debug("Brak Raportu.");
                    try
                    {
                        NowyRaport(rejestr); //jeżeli nie ma raportu, raport jest tworzony od razu i zwracana jest wartosć true
                        return(true);
                    }
                    catch (Exception e)
                    {
                        Debug.WriteLine("Raport nie mógł zostać utworzony: " + e.Message);
                        Form1.log.Error("Raport nie mógł zostać utworzony: " + e.Message);
                    }
                    return(false);
                } //tworzenie nowego raportu - return true / catch exeption return false
            }
        }
Example #9
0
        } // 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.