Exemplo n.º 1
0
        public void TworzenieDokumentu()
        {
            new Soneta.Start.Loader()
            {
                WithExtensions = true
            }.Load();
            //using (Session session = BusApplication.Instance["Firma demo"].Login(false, "Administrator", "").CreateSession(false, false))
            using (Session session = Session.Login.CreateSession(false, false))
            {
                CRMModule  cm    = CRMModule.GetInstance((ISessionable)session);
                CoreModule corem = CoreModule.GetInstance((ISessionable)session);

                using (ITransaction transaction = session.Logout(true))
                {
                    Date today = Date.Today;
                    int  num1  = 1;
                    for (int i = 24204; i <= 1000000; ++i)
                    {
                        string numerdodatkowy = Convert.ToString(i);
                        if (corem.DokEwidencja.WgDodatkowego[numerdodatkowy].IsEmpty)
                        {
                            num1 = i;
                            break;
                        }
                    }

                    int idOstatniejFaktury         = int.Parse(this.IleFaktur());
                    int idFaktury                  = num1;
                    int idOstatniejFakturyZZakresu = 0;
                    int idPierwszejFakturyZZakresu = 0;

                    for (int i = 24204; i <= idOstatniejFaktury; ++i)
                    {
                        TraceInfo.WriteProgress("id: " + i);
                        Faktura faktura1     = new Faktura(i);
                        Date    date         = faktura1.DataFaktury;
                        Date    zakresOdDnia = Convert.ToDateTime("01.02.2021");
                        Date    zakresDoDnia = Convert.ToDateTime("01.03.2021");
                        if (date == zakresOdDnia)
                        {
                            idPierwszejFakturyZZakresu = i;
                            break;
                        }
                    }

                    for (int i = idPierwszejFakturyZZakresu; i <= idOstatniejFaktury; ++i)
                    {
                        TraceInfo.WriteProgress("id: " + i);
                        Faktura faktura1     = new Faktura(i);
                        Date    date         = faktura1.DataFaktury;
                        Date    zakresOdDnia = Convert.ToDateTime("01.02.2021");
                        Date    zakresDoDnia = Convert.ToDateTime("01.03.2021");
                        if (date == zakresDoDnia)
                        {
                            idOstatniejFakturyZZakresu = --i;
                            break;
                        }
                    }

                    idFaktury = idPierwszejFakturyZZakresu;
                    int progressBar = idOstatniejFakturyZZakresu - idPierwszejFakturyZZakresu;
                    int j           = 0;

                    for (int index = idPierwszejFakturyZZakresu; index <= idOstatniejFakturyZZakresu; ++index)
                    {
                        string numerdodatkowy = Convert.ToString(index);


                        TraceInfo.SetProgressBar(j / idOstatniejFaktury); /// ProgressBar
                        j++;

                        TraceInfo.WriteProgress("FV: " + numerdodatkowy);


                        if (corem.DokEwidencja.WgDodatkowego[numerdodatkowy].IsEmpty)
                        {
                            Faktura  faktura  = new Faktura(index);
                            Customer customer = null;
                            try
                            {
                                customer = new Customer(new Zamowienie(faktura.IdOrder).IdCustomer);
                            }
                            catch (Exception e)
                            {
                            }

                            string idFakturyPresta = Convert.ToString(index);
                            ///string numerFakturyPresta = faktura.Number.ToString(this.fmt);

                            string numerFakturyPresta = idFaktury.ToString(this.fmt);

                            SprzedazEwidencja sprzedazEwidencja = new SprzedazEwidencja();
                            corem.DokEwidencja.AddRow((Row)sprzedazEwidencja);
                            DefinicjaDokumentu definicjaDokumentu = corem.DefDokumentow.WgSymbolu["SPT"]; /// Pobieranie serii dokumentu już ustawionego np: FVS itp ...

                            sprzedazEwidencja.Definicja = definicjaDokumentu;



                            //sprzedazEwidencja.DomyślnaKasa.SposobZaplaty.Typ = Soneta.Kasa.TypySposobowZaplaty.Przelew;

                            string kod = "!INCYDENTALNY";
                            if (customer != null)
                            {
                                if (customer.Imie != null || customer.Nazwisko != null)
                                {
                                    kod = customer.Imie + " " + customer.Nazwisko;
                                }
                            }

                            if (kod.Length >= 19)
                            {
                                kod = kod.Remove(17);
                            }

                            Kontrahent kontrahent      = cm.Kontrahenci.WgKodu[kod];
                            Kontrahent kontrahentFirma = (Kontrahent)null;

                            if (customer != null)
                            {
                                if (customer.Nip != "" && customer.Nip != null)
                                {
                                    kontrahentFirma = cm.Kontrahenci.WgNIP[customer.Nip].FirstOrDefault <Kontrahent>();
                                }
                            }

                            if (kontrahentFirma == null)
                            {
                                if (kontrahent == null)
                                {
                                    if (customer.Nip != "")
                                    {
                                        Kontrahent kontrahentNowy = new Kontrahent();
                                        cm.Kontrahenci.AddRow((Row)kontrahentNowy);
                                        //string str3 = kod.Length >= 17 ? customer.Company : customer.Company.Remove(17);
                                        if (kod.Length >= 19)
                                        {
                                            kod = kod.Remove(17);
                                        }
                                        kontrahentNowy.Kod        = kod;
                                        kontrahentNowy.Nazwa      = customer.Company;
                                        kontrahentNowy.NIP        = customer.Nip;
                                        sprzedazEwidencja.Podmiot = (IPodmiot)kontrahentNowy;
                                    }
                                    else
                                    {
                                        Kontrahent kontrahentNowy = new Kontrahent();
                                        cm.Kontrahenci.AddRow((Row)kontrahentNowy);
                                        if (kod.Length >= 19)
                                        {
                                            kod = kod.Remove(17);
                                        }
                                        kontrahentNowy.Kod        = kod;
                                        kontrahentNowy.Nazwa      = kod;
                                        sprzedazEwidencja.Podmiot = (IPodmiot)kontrahentNowy;
                                    }
                                }
                                else
                                {
                                    sprzedazEwidencja.Podmiot = (IPodmiot)kontrahent;
                                }
                            }
                            else
                            {
                                sprzedazEwidencja.Podmiot = (IPodmiot)kontrahentFirma;
                            }


                            sprzedazEwidencja.DataDokumentu  = faktura.DataFaktury;
                            sprzedazEwidencja.DataEwidencji  = today;
                            sprzedazEwidencja.DataWplywu     = today;
                            sprzedazEwidencja.NumerDokumentu = "#FV" + numerFakturyPresta + "/" + Convert.ToString(faktura.DataFaktury.Year);

                            sprzedazEwidencja.NumerDodatkowy = idFakturyPresta;
                            //sprzedazEwidencja.Wartosc = (Soneta.Types.Currency)faktura.WartoscBrutto;

                            sprzedazEwidencja.PodlegaVAT = true;
                            //sprzedazEwidencja.DataZaewidencjonowania = faktura.DataFaktury;
                            //sprzedazEwidencja.Wartosc = faktura.WartoscBrutto;
                            //sprzedazEwidencja.NagEwidencjiVAT.Ewidencja.Wartosc = faktura.WartoscBrutto;
                            sprzedazEwidencja.NagEwidencjiVAT.Ewidencja.Wartosc      = faktura.WartoscBrutto;
                            sprzedazEwidencja.NagEwidencjiVAT.DataZaewidencjonowania = faktura.DataFaktury;


                            sprzedazEwidencja.Stan = StanEwidencji.Bufor;

                            transaction.CommitUI();
                            ++num1;
                            ++idFaktury;
                        }
                    }
                }
                session.Save();
            }
        }