Exemple #1
0
        private Kontrahent GenerujKontrahenta()
        {
            ParsowanieDanych(out FormaZaplaty forma, out Status status, out int terminZaplaty);
            var kontrahent = new Kontrahent()
            {
                Nazwa                 = textBoxNazwa.Text,
                NazwaSkrocona         = textBoxNazwaSkr.Text,
                Nip                   = textBoxNip.Text,
                Regon                 = textBoxRegon.Text,
                Telefon               = textBoxTelefon.Text,
                Email                 = textBoxEMail.Text,
                AdresSiedziby         = new Adres(textBoxMiejscowosc1.Text, textBoxUlica1.Text, textBoxNrD1.Text, textBoxNrM1.Text, textBoxKodP1.Text),
                AdresKorespondencyjny = new Adres(textBoxMiejscowosc2.Text, textBoxUlica2.Text, textBoxNrD2.Text, textBoxNrM2.Text, textBoxKodP2.Text),
                KontoBankowe          = new KontoBankowe(textBoxNazwaBanku.Text, textBoxNrKonta.Text),
                TerminZaplaty         = terminZaplaty,
                FormaZaplaty          = forma,
                Status                = status
            };

            if (!checkBoxAdresKor.Checked)
            {
                kontrahent.AdresKorespondencyjny = kontrahent.AdresSiedziby;
            }
            return(kontrahent);
        }
Exemple #2
0
 private void UzupelnijKontrolki(Kontrahent kontrahent)
 {
     textBoxNazwa.Text         = kontrahent.Nazwa;
     textBoxNazwaSkr.Text      = kontrahent.NazwaSkrocona;
     textBoxNip.Text           = kontrahent.Nip;
     textBoxRegon.Text         = kontrahent.Regon;
     textBoxTelefon.Text       = kontrahent.Telefon;
     textBoxEMail.Text         = kontrahent.Email;
     textBoxTermin.Text        = kontrahent.TerminZaplaty.ToString();
     comboBoxFormaZaplaty.Text = "" + kontrahent.FormaZaplaty;
     comboBoxStatus.Text       = "" + kontrahent.Status;
     if (kontrahent.KontoBankowe != null)
     {
         textBoxNazwaBanku.Text = kontrahent.KontoBankowe.Nazwa;
         textBoxNrKonta.Text    = kontrahent.KontoBankowe.Numer;
     }
     if (kontrahent.AdresSiedziby != null)
     {
         textBoxUlica1.Text       = kontrahent.AdresSiedziby.Ulica;
         textBoxNrD1.Text         = kontrahent.AdresSiedziby.NrDomu;
         textBoxNrM1.Text         = kontrahent.AdresSiedziby.NrMieszkania;
         textBoxKodP1.Text        = kontrahent.AdresSiedziby.KodPocztowy;
         textBoxMiejscowosc1.Text = kontrahent.AdresSiedziby.Miejscowosc;
     }
     if (kontrahent.AdresKorespondencyjny != null)
     {
         textBoxUlica2.Text       = kontrahent.AdresKorespondencyjny.Ulica;
         textBoxNrD2.Text         = kontrahent.AdresKorespondencyjny.NrDomu;
         textBoxNrM2.Text         = kontrahent.AdresKorespondencyjny.NrMieszkania;
         textBoxKodP2.Text        = kontrahent.AdresKorespondencyjny.KodPocztowy;
         textBoxMiejscowosc2.Text = kontrahent.AdresKorespondencyjny.Miejscowosc;
     }
 }
Exemple #3
0
        public static MvcHtmlString AdresKontrahenta(this HtmlHelper html, Kontrahent kontrahent)
        {
            string Adres = String.Format(
                "{0}<br />{1} {2} ul. {3} {4}{5}{6}",
                kontrahent.NazwaKontrahenta,
                kontrahent.KodPocztowy,
                kontrahent.Miejscowosc,
                kontrahent.Ulica,
                kontrahent.NumerDomu,
                (!String.IsNullOrEmpty(kontrahent.NumerDomu) && !String.IsNullOrEmpty(kontrahent.NumerLokalu) ? "/" : " "),
                kontrahent.NumerLokalu
                );

            if (kontrahent.KontrahentNadrzedny != null)
            {
                Adres = String.Format("{0}<br />{1}",
                                      String.Format(
                                          "{0}<br />{1} {2} ul. {3} {4}{5}{6}",
                                          kontrahent.KontrahentNadrzedny.NazwaKontrahenta,
                                          kontrahent.KontrahentNadrzedny.KodPocztowy,
                                          kontrahent.KontrahentNadrzedny.Miejscowosc,
                                          kontrahent.KontrahentNadrzedny.Ulica,
                                          kontrahent.KontrahentNadrzedny.NumerDomu,
                                          (!String.IsNullOrEmpty(kontrahent.KontrahentNadrzedny.NumerDomu) && !String.IsNullOrEmpty(kontrahent.KontrahentNadrzedny.NumerLokalu) ? "/" : " "),
                                          kontrahent.KontrahentNadrzedny.NumerLokalu
                                          ),
                                      Adres
                                      );
            }

            return(MvcHtmlString.Create(Adres));
        }
        public void GenerujWplate()
        {
            KasaModule kasaModule = KasaModule.GetInstance(Session);
            CRMModule  CRMModule  = CRMModule.GetInstance(Session);

            Kontrahent kontrahent = CRMModule.Kontrahenci.WgKodu.GetNext();

            if (kontrahent == null)
            {
                throw new InvalidOperationException("Nieznaleziono żadnego kontrahenta.");
            }

            using (ITransaction t = Session.Logout(true))
            {
                foreach (var raport in Raporty)
                {
                    DokumentWplata wpłata = new DokumentWplata(raport);
                    kasaModule.DokumentyKasowe.AddRow(wpłata);
                    if (!wpłata.IsReadOnlyData())
                    {
                        wpłata.Data = Date.Today;
                    }
                    wpłata.Zaplata.Podmiot = kontrahent;
                    wpłata.Zaplata.Kwota   = new Currency(100.0m, "PLN");
                    wpłata.Zaplata.Opis    = "Wpłata do kasy";
                    wpłata.Zatwierdzony    = true;
                }
                t.Commit();
            }
        }
Exemple #5
0
        public async Task <IActionResult> Edit(int id, [Bind("IdKontrahent,Firma,Nazwa,NIP,Regon,Wlasciciel,Ulica,Kod,Miasto,Telefon,EMail,Typ,Aktywny")] Kontrahent kontrahent)
        {
            var currentuser = await _userManager.GetUserAsync(HttpContext.User);

            var firma = _context.Firmy.FirstOrDefault(f => f.UserId == currentuser.Id);

            if (id != kontrahent.IdKontrahent)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    kontrahent.Firma = firma;
                    _context.Update(kontrahent);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!KontrahentExists(kontrahent.IdKontrahent))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View(kontrahent));
        }
Exemple #6
0
        public void GenerowanieKontrahenta(Context context)
        {
            // Do kontrahentów wystarczy uzyskać moduł CRM, w którym
            // znajduje się odpowiednia kolekcja
            CRMModule module = CRMModule.GetInstance(Session);

            // Następnie przeba otworzyć transakcję biznesową (nie bazodanową) do edycji
            using (ITransaction tran = Session.Logout(true))
            {
                // Tworzymy nowy, pusty obiekt kontrahenta
                Kontrahent kontrahent = new Kontrahent();

                // Następnie dodajemy pusty obiekt kontrahenta do tabeli
                module.Kontrahenci.AddRow(kontrahent);

                // Inicjujemy wymagane pole kod kontrahenta na podaną wartość.
                // Pole jest unikalne w bazie danych, wieć jeżeli kontranhent
                // o zadanym kodzie już istnienie w bazie danych, to podczas podstawiania
                // wartości do property zostanie wygenerowany wyjątek.
                kontrahent.Kod = Params.Kod;

                // Inicjujemy nazwę kontrahenta. To pole nie jest już unikalne.
                kontrahent.Nazwa = "Nazwa " + Params.Kod;

                // Inicjujemy pozostałe pola, które chcemy zainicjować
                kontrahent.NIP               = "123-45-67-890";
                kontrahent.Adres.Ulica       = "Szara";
                kontrahent.Adres.NrDomu      = "12";
                kontrahent.Adres.NrLokalu    = "34";
                kontrahent.Adres.Miejscowosc = "Kraków";

                // Zatwierdzamy transakcję biznesową
                tran.Commit();
            }
        }
Exemple #7
0
        private void kontrahentEnovaSelect_ValueChanged(object sender, EventArgs e)
        {
            var kontrahent = Kontrahent.GetKontrahent(DbContext, (Enova.API.CRM.Kontrahent)kontrahentEnovaSelect.SelectedItem);

            if (kontrahent != null)
            {
                Zwrot.Kontrahent = kontrahent;
            }
        }
Exemple #8
0
 public PozycjeDokHan this[Kontrahent kontrahent]
 {
     get
     {
         return(new PozycjeDokHan()
         {
             BaseQuery = GetQuery(Table.BaseQuery.Where(p => p.Dokument.Kontrahent.ID == kontrahent.ID))
         });
     }
 }
Exemple #9
0
 public Zwroty this[Kontrahent kontrahent]
 {
     get
     {
         if (kontrahent == null)
         {
             return(new Zwroty(this.GetQuery(BaseQuery)));
         }
         return(new Zwroty(this.GetQuery(BaseQuery.Where(z => z.Kontrahent.CzyAgent == false && z.Kontrahent.ID == kontrahent.ID))));
     }
 }
Exemple #10
0
        private void DodajKontrahentaDoBazy(Kontrahent kontrahent)
        {
            var status = _polaczenie.DodajKontrahenta(kontrahent);

            if (status > 0)
            {
                MessageBox.Show("Pomyślnie dodano kontrahenta.");
            }
            else
            {
                MessageBox.Show("Błąd przy dodawaniu kontrahenta.");
            }
        }
 public static KontrahentDto FromEnova(Kontrahent kontrahent)
 {
     return(new KontrahentDto
     {
         Id = kontrahent.ID,
         Guid = kontrahent.Guid,
         Kod = kontrahent.Kod,
         Nazwa = kontrahent.Nazwa,
         NIP = kontrahent.NIP,
         Blokada = kontrahent.Blokada,
         BlokadaSprzedazy = kontrahent.BlokadaSprzedazy
     });
 }
Exemple #12
0
            public static View <RozrachunekIdx> ByKontrahent(Session session, Kontrahent kontrahent, FromTo dataFromTo, FromTo rozliczenieFromTo)
            {
                var view = new View <RozrachunekIdx>(GetModule(session).RozrachunkiIdx.WgPodmiot(kontrahent).CreateView());

                if (dataFromTo != null)
                {
                    view.And("Data >= '" + dataFromTo.From + "' AND Data <= '" + dataFromTo.To + "'");
                }
                if (rozliczenieFromTo != null)
                {
                    view.And("DataRozliczenia >= '" + rozliczenieFromTo.From + "' AND DataRozliczenia <= '" + rozliczenieFromTo.To + "'");
                }
                return(view);
            }
 private void kontrahentEnovaSelect_ValueChanged(object sender, EventArgs e)
 {
     kontrahent = Kontrahent.GetKontrahent(Enova.Business.Old.Core.ContextManager.WebContext, (Enova.API.CRM.Kontrahent)kontrahentEnovaSelect.SelectedItem);
     if (Kontrahent != null)
     {
         int?defaultStatusDopPrzj = Enova.Business.Old.Core.ContextManager.WebContext.GetConfigInt("ZWROT_STATUS_DOPIERO_PRZYJEDZIE");
         if (defaultStatusDopPrzj != null)
         {
             WebContext dc = this.Kontrahent.DbContext != null ? (WebContext)this.Kontrahent.DbContext : Enova.Business.Old.Core.ContextManager.WebContext;
             if (dc.Zwroty.Any(z => z.KontrahentID == this.Kontrahent.ID && z.OstatniStatusID == defaultStatusDopPrzj.Value))
             {
                 BAL.Forms.FormManager.Alert("!!! UWAGA !!! - DLA TEGO KONTRAHENTA ISTNIEJE ZWROT Z USTAWIONYM STATUSEM \"DOPIERO PRZYJEDZIE\"");
             }
         }
     }
 }
Exemple #14
0
        public ActionResult Dodaj(FormCollection collection)
        {
            var Model = new Kontrahent();

            try
            {
                Model.IdFirmy = KancelariaSettings.IdFirmy(User.Identity.Name);

                if (collection["CheckCzyVatowiec"] != null && collection["CheckCzyVatowiec"].ToString() == "on")
                {
                    Model.CzyVatowiec = true;
                }
                else
                {
                    Model.CzyVatowiec = false;
                }

                UpdateModel(Model);

                if (Model.IsValid && ModelState.IsValid)
                {
                    KontrahenciRepository.Dodaj(Model);
                    KontrahenciRepository.Save();

                    TempData["Message"] = "Dodano kontrahenta";

                    return(RedirectToAction("Kartoteka"));
                }
                else
                {
                    foreach (var rule in Model.GetRuleViolations())
                    {
                        ModelState.AddModelError(rule.PropertyName, rule.ErrorMessage);
                    }

                    return(View(Model));
                }
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("Dodawanie faktur zakupu\n{0}", ex);

                ViewBag.ErrorMessage = String.Format("Nie powiodło się dodawnie kontrahenta\n{0}", ex.Message);

                return(View(Model));
            }
        }
Exemple #15
0
 public static string ByRozchodKontrahent(string filter, Kontrahent kontrahent, string przedstawiciel)
 {
     if (kontrahent != null || !string.IsNullOrEmpty(przedstawiciel))
     {
         filter = getFilter(filter);;
         if (kontrahent != null)
         {
             filter += "RozchodKontrahent = " + kontrahent.ID;
         }
         else
         {
             filter += "RozchodKontrahent.Features.[przedstawiciel = '" + przedstawiciel + "'";
         }
         return(filter);
     }
     return(filter);
 }
Exemple #16
0
        public async Task <IActionResult> Create([Bind("IdKontrahent,Firma,Nazwa,NIP,Regon,Wlasciciel,Ulica,Kod,Miasto,Telefon,EMail,Typ,Aktywny")] Kontrahent kontrahent)
        {
            if (ModelState.IsValid)
            {
                var currentuser = await _userManager.GetUserAsync(HttpContext.User);

                var firma = _context.Firmy.FirstOrDefault(f => f.UserId == currentuser.Id);

                kontrahent.Firma = firma;

                _context.Add(kontrahent);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(kontrahent));
        }
Exemple #17
0
        /*
         * public API.IEnovaService EnovaService
         * {
         *  get
         *  {
         *      if (this.enovaService == null)
         *          this.enovaService = API.EnovaServiceAttribute.EnovaService;
         *      return this.enovaService;
         *  }
         * }
         */

        /*
         * public API.Business.ISession EnovaSession
         * {
         *  get
         *  {
         *      if (this.enovaSession == null)
         *          this.enovaSession = this.EnovaService.CreateSession();
         *      return this.enovaSession;
         *  }
         * }
         */

        #endregion

        #region Methods

        public AnalizaZwrotu(Session session, DB.Web.Zwrot zwrot, DateTime?analizujOd = null)
        {
            this.session    = session;
            this.zwrot      = zwrot;
            this.analizujOd = analizujOd;
            this.kontrahent = this.CRMModule.Kontrahenci[this.zwrot.Kontrahent.Guid.Value];

            /*
             * var defFV = HandelModule.DefDokHandlowych.FakturaSprzedaży;
             * DateTime dateFrom = this.Zwrot.DataDodania.Date.AddDays(-OkresAnalizy);
             * this.pozycjeDokHan = HandelModule.PozycjeDokHan.WgStanuDokHan[StanDokumentuHandlowego.Zatwierdzony].WgDefDokHan[defFV].WgDaty[AnalizujOd].WgKontrahenta[this.kontrahent];
             * this.initPozycje();
             * this.initDokumenty();
             * this.analizujIlosci();
             * this.cleanDokumenty();
             * this.Pozycje.Renumeruj();
             */
            this.Analizuj();
        }
Exemple #18
0
        public async Task <Guid> Handle(KontrahentCreateCommand request, CancellationToken cancellationToken)
        {
            var kontrahent = new Kontrahent
            {
                Id           = Guid.NewGuid(),
                DaneAdresowe = new DaneAdresowe
                {
                    Miejscowosc = request.Model.DaneAdresowe.Miejscowosc,
                    Ulica       = request.Model.DaneAdresowe.Ulica,
                    KodPocztowy = request.Model.DaneAdresowe.KodPocztowy
                },
                Nazwa              = request.Model.Nazwa,
                Nip                = request.Model.Nip,
                Skrot              = request.Model.Skrot,
                TypKontrahenta     = request.Model.TypKontrahenta,
                PrzedsiebiorstwoId = request.PrzedsiebiorstwoId
            };

            return(await _kontrahentRepository.Save(kontrahent));
        }
Exemple #19
0
        private void createBtn_Click(object sender, EventArgs e)
        {
            Kontrahent kontrahent = new Kontrahent();

            kontrahent.Imie      = imieText.Text;
            kontrahent.Nazwisko  = nazwiskoText.Text;
            kontrahent.NIP       = nipText.Text;
            kontrahent.Ulica     = ulicaText.Text;
            kontrahent.Nr_ulicy  = nrUlicyText.Text;
            kontrahent.Nr_lokalu = nrLokaluText.Text;
            kontrahent.Telefon   = telefonText.Text;
            kontrahent.Create_kontrahent();

            imieText.Text     = "";
            nazwiskoText.Text = "";
            nipText.Text      = "";
            ulicaText.Text    = "";
            nrUlicyText.Text  = "";
            nrLokaluText.Text = "";
            telefonText.Text  = "";
        }
Exemple #20
0
        public async Task <Guid> Save(Kontrahent kontrahent)
        {
            var sql = "insert into Kontrahent (Id, Nip, Nazwa, Skrot, TypKontrahenta, Ulica, Miejscowosc, KodPocztowy, PrzedsiebiorstwoId) " +
                      "VALUES  (@Id, @Nip, @Nazwa, @Skrot, @TypKontrahenta, @Ulica, @Miejscowosc, @KodPocztowy, @PrzedsiebiorstwoId)";

            using (var conn = _dbConnectionSource.GetConnection())
            {
                await conn.ExecuteAsync(sql, new
                {
                    Id                 = kontrahent.Id,
                    Nip                = kontrahent.Nip,
                    Nazwa              = kontrahent.Nazwa,
                    Skrot              = kontrahent.Skrot,
                    TypKontrahenta     = (int)kontrahent.TypKontrahenta,
                    Ulica              = kontrahent.DaneAdresowe.Ulica,
                    Miejscowosc        = kontrahent.DaneAdresowe.Miejscowosc,
                    KodPocztowy        = kontrahent.DaneAdresowe.KodPocztowy,
                    PrzedsiebiorstwoId = kontrahent.PrzedsiebiorstwoId
                });

                return(kontrahent.Id);
            }
        }
Exemple #21
0
        public async Task <IHttpActionResult> GetPriceForCustomer(Guid productGuid, Guid customerGuid)
        {
            using (Session session = EnovaClient.Login.CreateSession(true, false))
            {
                TowaryModule tm         = TowaryModule.GetInstance(session);
                CRMModule    cm         = CRMModule.GetInstance(session);
                Towar        towar      = tm.Towary[productGuid];
                Kontrahent   kontrahent = cm.Kontrahenci[customerGuid];

                var worker = new CenyKontrahentaWorker();
                worker.Towar         = towar;
                worker.Kontrahent    = kontrahent;
                worker.DefinicjaCeny = tm.DefinicjeCen["Hurtowa"];

                return(Ok(new ProductPriceInfo
                {
                    ProductGuid = productGuid,
                    CustomerGuid = customerGuid,
                    Price = (decimal)worker.NettoPrzedRabatem.Value,
                    Rebate = worker.Rabat
                }));
            }
        }
        public void GenerujPrzyjecieMagazynowe(Context context)
        {
            // Metoda tworzy nowy dokument PZ2 wypełniając go przykładowymi
            // pozycjami

            // Rozpoczęcie tworzenia dokumentu (w ogóle operacji na logice
            // biznesowej) polega na utworzeniu obiektu sesji (Session),
            // w którym będą odbywać się poszczególne operacje.
            // Pierwszy parametr określa, czy sesja jest tylko do odczytu
            // danych, drugi parametr, czy sesja będzie modyfikować ustawienia
            // konfiguracyjne (tj. definicje dokumentów, jednostki,
            // definicje cen, itp). Standardowo obydwa parametry dajemy false.
            using (Session session = context.Login.CreateSession(false, false))
            {
                // Po utworzeniu sesji dobrze jest sobie przygotować odpowiednie
                // zmienne reprezentujące poszczególne moduły programu w tej sesji.
                // Wystarczy przygotwać tylko te moduły, które będą nam potrzebne.
                HandelModule   handelModule   = HandelModule.GetInstance(session);
                TowaryModule   towaryModule   = TowaryModule.GetInstance(session);
                MagazynyModule magazynyModule = MagazynyModule.GetInstance(session);
                CRMModule      CRMModule      = CRMModule.GetInstance(session);

                // Wszystkie operacje wykonujemy w transakcji sesji, którą należy
                // na początku otworzyć. W transakcji możemy wskazać czy będą
                // robione zmiany w danych.
                using (ITransaction tran = session.Logout(true))
                {
                    // Następnie należy utworzyć nowy obiekt reprezentujący dokument
                    // handlowy (nagłówek dokumentu)
                    DokumentHandlowy dokument = new DokumentHandlowy();

                    // Nowy dokument nalezy również związać z definicją dokumentu
                    // handlowego. W tym przypadku wyszukujemy definicje wyszukujemy
                    // wg jej symbolu "PZ 2".
                    DefDokHandlowego definicja = handelModule.DefDokHandlowych.WgSymbolu["PZ 2"];
                    if (definicja == null)
                    {
                        throw new InvalidOperationException("Nieznaleziona definicja dokumentu PZ 2.");
                    }
                    dokument.Definicja = definicja;

                    // Dokument należy też przypisać do magazynu, do którego będzie
                    // przyjmowany towar. Poniżej przypisywany jest standardowy
                    // magazyn programu "Firma".
                    dokument.Magazyn = magazynyModule.Magazyny.Firma;

                    // Ale można wyszukać magazyn np wg symbolu
                    // dokument.Magazyn = mm.Magazyny.WgSymbol["MAG1"];

                    // Oraz dodajemy nowo utworzony dokument do aktualnej sesji
                    handelModule.DokHandlowe.AddRow(dokument);

                    // Przyjęcie magazynowe PZ 2 wymaga również przypisania kontrahenta,
                    // od którego towaru jest przyjmowany.
                    // Przykład prezentuje przypisanie dokumentowi kontrahenta
                    // o kodzie "ABC".
                    Kontrahent kontrahent = CRMModule.Kontrahenci.WgKodu["ABC"];
                    if (kontrahent == null)
                    {
                        throw new InvalidOperationException("Nieznaleziony kontrahent o kodzie ABC.");
                    }
                    dokument.Kontrahent = kontrahent;

                    // W kartotece towarów wyszukać towar. Przykład poniżej
                    // prezentuje wyszukanie towaru wg kodu EAN "2000000000022".
                    // Ponieważ w kartotece może znajdować się wiele towarów o tym
                    // samym kodzie, wybrany zostanie pierwszy z nich.
                    Towar towar = towaryModule.Towary.WgEAN["2000000000954"].GetNext();
                    if (towar != null)
                    {
                        // Utworzyć nową transakcję dla każdej pozycji osobno
                        using (var tranPozycji = session.Logout(true))
                        {
                            // Utworzyć nowy obiekt pozycji dokumentu handlowego, który
                            // zostanie dodany do sesji
                            PozycjaDokHandlowego pozycja = new PozycjaDokHandlowego(dokument);
                            handelModule.PozycjeDokHan.AddRow(pozycja);

                            // Przypisać towar do nowo utworzonej pozycji dokumentu, czyli
                            // wskazać, który towar ma być przyjęty do magazynu
                            pozycja.Towar = towar;

                            // W pozycji dokumentu należy jeszcze wprowadzić ilość
                            // towaru przyjmowanego na magazyn. Ilość reprezentowana jest
                            // przez liczbę 10 będącą wartością ilości (pierwszy parametr)
                            // oraz jednostkę opisującą tę ilość (drugi parametr). Jeżeli
                            // jednostka jest null, to przyjmowana jest jednostka z
                            // karty towarowej.
                            // Poniżej znajduje się również wykomentowany przykład, w
                            // którym w sposób jawny jest wskazanie na jednostkę w metrach.
                            pozycja.Ilosc = new Quantity(10, null);
                            // pozycja.Ilosc = new Quantity(10, "m");

                            // Pozycji dokumentu należy również przypisać cenę w jakiej
                            // będzie on wprowadzany do magazynu (cena zakupu).
                            // Poniżej przypisywana jest cena w PLN. Dlatego nie jest
                            // wyspecyfikowany drugi parametr określający walutę ceny.
                            pozycja.Cena = new DoubleCy(12.34);

                            // Poszczególnym pozycją można przypisać również dodatkowe
                            // cechy, które zależne są od konfiguracji programu. Przykład
                            // pokazuje jak ustawić cechę z numerem beli.
                            //
                            // pozycja.Features["Numer beli"] = "123456";

                            // Na każdej pozycji dokumentu należy zatwierdzić osobną
                            // transakcję metodą CommitUI
                            tranPozycji.CommitUI();
                        }
                    }

                    // Dokumentowi podobnie jak pozycji dokumentu również można
                    // przypisać dodatkowe cechy zależne od konfiguracji programu.
                    // Przykład pokazuje jak ustawić cechę z lokalizacją.
                    //
                    // dokument.Features["Lokalizacja"] = "AB/12";

                    // Po dokonaniu wszystkich operacji na dokumencie można ten
                    // dokument wprowadzić (zatwierdzić), co powoduje zabezpieczenie
                    // przed przypadkową edycją tego dokumentu oraz przeniesienie go
                    // do ewidencji dokumentów księgowych.
                    dokument.Stan = StanDokumentuHandlowego.Zatwierdzony;

                    // Wszystkie operacje zostały poprawnie zakończone i zapewne
                    // chcemy zatwierdzić transakcję sesji.
                    tran.Commit();
                }

                // Powyższe operacje były wykonywane na sesji, czyli w pamięci.
                // Teraz należy rezultat prac zapisać do bazy danych.
                session.Save();
            }

            // I to wszystko. Dokument PZ znajduje się w bazie.
        }
Exemple #23
0
        private void SzukajCommandExecute()
        {
            var listaZobowiazanINaleznosciFiltrowana = listaZobowiazanINaleznosciAll
                                                       .Where(d => d.TerminPlatnosci <= DataWymagalnosci);

            if (WybranaFirma != null)
            {
                listaZobowiazanINaleznosciFiltrowana = listaZobowiazanINaleznosciAll
                                                       .Where(f => f.IdFirma == WybranaFirma.IDFirma);
            }
            if (Kontrahent != null)
            {
                listaZobowiazanINaleznosciFiltrowana = listaZobowiazanINaleznosciAll
                                                       .Where(e => e.Kontrahent.ToLower().Contains(Kontrahent.ToLower()));
            }

            SeparujListeNaleznosciIZobowiazan(listaZobowiazanINaleznosciFiltrowana);

            Podsumuj();
        }
Exemple #24
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();
            }
        }
Exemple #25
0
        public IHttpActionResult Post(DokumentHandlowySaveDataRequestDto request)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    DokumentHandlowy dokumentHandlowy = null;

                    using (Session session = EnovaClient.Login.CreateSession(false, false))
                    {
                        HandelModule   hm = HandelModule.GetInstance(session);
                        CRMModule      cm = CRMModule.GetInstance(session);
                        MagazynyModule mm = MagazynyModule.GetInstance(session);
                        TowaryModule   tm = TowaryModule.GetInstance(session);
                        KasaModule     km = KasaModule.GetInstance(session);

                        using (ITransaction t = session.Logout(true))
                        {
                            dokumentHandlowy = new DokumentHandlowy();
                            var definicja = hm.DefDokHandlowych[request.DefinicjaGuid];
                            dokumentHandlowy.Definicja = definicja;

                            var magazyn = request.MagazynGuid.HasValue ? mm.Magazyny[request.MagazynGuid.Value] : mm.Magazyny.Firma;
                            dokumentHandlowy.Magazyn = magazyn;

                            hm.DokHandlowe.AddRow(dokumentHandlowy);

                            request.Features?.Foreach((feature) =>
                            {
                                dokumentHandlowy.Features[feature.Name] = feature.Value;
                            });

                            Kontrahent kontrahent = cm.Kontrahenci[request.KontrahentGuid];
                            dokumentHandlowy.Kontrahent = kontrahent;

                            foreach (var pozDto in request.Pozycje)
                            {
                                Towar towar = tm.Towary[pozDto.TowarGuid];
                                PozycjaDokHandlowego pozycja = new PozycjaDokHandlowego(dokumentHandlowy);
                                hm.PozycjeDokHan.AddRow(pozycja);

                                pozycja.Towar = towar;
                                pozycja.Ilosc = new Quantity(pozDto.Ilosc);
                                if (pozDto.CenaNetto.HasValue)
                                {
                                    pozycja.Cena = new Soneta.Types.DoubleCy(pozDto.CenaNetto.Value);
                                }
                                if (pozDto.Rabat.HasValue)
                                {
                                    pozycja.Rabat = new Percent(pozDto.Rabat.Value / 100M);
                                }
                            }

                            session.Events.Invoke();

                            if (request.Platnosci?.Any() ?? false)
                            {
                                var naleznosc      = (Naleznosc)dokumentHandlowy.Platnosci.GetNext();
                                var pozostalaKwota = naleznosc.Kwota;

                                request.Platnosci?.Foreach((platnoscDto) =>
                                {
                                    if (naleznosc == null)
                                    {
                                        naleznosc = new Naleznosc(dokumentHandlowy);
                                        km.Platnosci.AddRow(naleznosc);
                                    }

                                    if (platnoscDto.SposobZaplaty.HasValue)
                                    {
                                        switch (platnoscDto.SposobZaplaty.Value)
                                        {
                                        case SposobZaplatyDto.Gotowka:
                                            naleznosc.SposobZaplaty = km.SposobyZaplaty.Gotówka;
                                            break;

                                        case SposobZaplatyDto.Przelew:
                                            naleznosc.SposobZaplaty = km.SposobyZaplaty.Przelew;
                                            break;
                                        }
                                    }

                                    if (platnoscDto.Kwota.HasValue)
                                    {
                                        naleznosc.Kwota = platnoscDto.Kwota.Value;
                                        pozostalaKwota -= platnoscDto.Kwota.Value;
                                    }
                                    else
                                    {
                                        naleznosc.Kwota = pozostalaKwota;
                                        pozostalaKwota  = 0;
                                    }

                                    if (platnoscDto.TerminDni.HasValue)
                                    {
                                        naleznosc.TerminDni = platnoscDto.TerminDni.Value;
                                    }

                                    if (naleznosc.SposobZaplaty == km.SposobyZaplaty.Gotówka && naleznosc.TerminDni == 0)
                                    {
                                        RaportESP raport = ((Kasa)naleznosc.EwidencjaSP).NowyRaport(dokumentHandlowy, dokumentHandlowy.Data);
                                        Wplata wplata    = new Wplata(dokumentHandlowy, raport);
                                        km.Zaplaty.AddRow(wplata);
                                        wplata.Podmiot       = dokumentHandlowy.Kontrahent;
                                        wplata.SposobZaplaty = naleznosc.SposobZaplaty;
                                        wplata.Opis          = "?";
                                        wplata.Kwota         = naleznosc.Kwota;
                                    }

                                    naleznosc = null;
                                });
                            }

                            session.Events.Invoke();

                            dokumentHandlowy.Stan = StanDokumentuHandlowego.Zatwierdzony;
                            t.Commit();
                        }

                        session.Save();
                    }

                    return(Ok(new ResponseDto(dokumentHandlowy)));
                }
                catch (FeatureRequiredVerifier ex)
                {
                    return(BadRequest(ex.Description));
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.ToString()));
                }
            }
            return(BadRequest(ModelState));
        }
 public void Dodaj(Kontrahent kontrahent)
 {
     db.Kontrahents.InsertOnSubmit(kontrahent);
 }
        public void GenerujFakture()
        {
            HandelModule   handelModule  = HandelModule.GetInstance(Session);
            TowaryModule   towaryModule  = TowaryModule.GetInstance(Session);
            MagazynyModule magazynyModue = MagazynyModule.GetInstance(Session);
            CRMModule      CRMModule     = CRMModule.GetInstance(Session);
            KasaModule     kasaModule    = KasaModule.GetInstance(Session);

            using (ITransaction tran = Session.Logout(true))
            {
                DokumentHandlowy dokument = new DokumentHandlowy();
                dokument.Definicja = handelModule.DefDokHandlowych.FakturaSprzedaży;
                dokument.Magazyn   = magazynyModue.Magazyny.Firma;

                handelModule.DokHandlowe.AddRow(dokument);

                Kontrahent kontrahent = CRMModule.Kontrahenci.WgKodu["ABC"];
                if (kontrahent == null)
                {
                    throw new InvalidOperationException("Nieznaleziony kontrahent o kodzie ABC.");
                }
                dokument.Kontrahent = kontrahent;

                Towar towar = towaryModule.Towary.WgKodu["MONTAZ"];
                if (towar != null)
                {
                    using (var tranPozycji = Session.Logout(true))
                    {
                        PozycjaDokHandlowego pozycja = new PozycjaDokHandlowego(dokument);
                        handelModule.PozycjeDokHan.AddRow(pozycja);
                        pozycja.Towar = towar;
                        pozycja.Ilosc = new Quantity(10, null);
                        pozycja.Cena  = new DoubleCy(12.34);

                        tranPozycji.CommitUI();
                    }
                }

                // Modyfikacja płatności
                // Standradowo dokument ma wygenerowaną przez system jedną płatność. Zmienimy w niej
                // sposób zapłaty, domyślną ewidencję oraz termin płatności.
                // Jeżeli chcemy mieć więcej niż jedną płatność, to zmniejszamy kwotę w instniejącej
                // i dodajemy kolejne płatności aż do zrównoważenia kwoty płatności i dokumentu.
                // Dodatkowo, jeżeli generujemy płatność gotówkową, to dodamy do niej informację
                // o zapłacieniu i odpowiedni wpis na raport kasowy (musi być założony i niezatwierdzony).

                // Wymuszamy przeliczenie zdarzeń. W przeciwnym razie sumy mogą być nieaktualne.
                // Normalnie robi to za nas UI.
                Session.Events.Invoke();

                Naleznosc gotowka = null;
                Naleznosc przelew = null;
                // Pobieramy isntniejacą płatność. System zrobił na pewno jedną (o ile wartość
                // dokumentu jest różna od zera).
                // Możemy też płatność usunąć i odtworzyć dokładnie tak samo jak to jest
                // robione z dodatkową płatnością.
                Naleznosc platnosc = (Naleznosc)dokument.Platnosci.GetNext();
                if (Params.Gotowka && Params.Przelew)
                {
                    Currency kwota = platnosc.Kwota;
                    platnosc.Kwota = platnosc.Kwota / 2;
                    gotowka        = platnosc;
                    // Tworzymy nowy obiekt należności
                    przelew = new Naleznosc(dokument);
                    // Dodajemy go do tabeli Platnosci
                    kasaModule.Platnosci.AddRow(przelew);
                    // Ustawiamy kwotę
                    przelew.Kwota = kwota - gotowka.Kwota;
                }
                else if (Params.Gotowka)
                {
                    gotowka = platnosc;
                }
                else if (Params.Przelew)
                {
                    przelew = platnosc;
                }

                // Mamy już potrzebne płatności. Teraz musimy im zmodyfikować sposób zapłaty,
                // ewidencję SP oraz termin płatności.

                // Najpier przelew
                if (przelew != null)
                {
                    // Wyszukujemy sposób zapłaty. Na szczęście dla gotówki mamy standardowy.
                    // Możemy też szukać wg nazwy lub Guid.
                    przelew.SposobZaplaty = kasaModule.SposobyZaplaty.Przelew;

                    // Szukamy ewidencję SP
                    przelew.EwidencjaSP = kasaModule.EwidencjeSP.WgNazwy["Firmowy rachunek bankowy"];

                    // I termin płatności
                    przelew.TerminDni = 21;
                }

                if (gotowka != null)
                {
                    // Wyszukujemy sposób zapłaty. Na szczęście dla gotówki mamy standardowy.
                    // Możemy też szukać wg nazwy lub Guid.
                    gotowka.SposobZaplaty = kasaModule.SposobyZaplaty.Gotówka;

                    // Szukamy ewidencję SP
                    gotowka.EwidencjaSP = kasaModule.EwidencjeSP.WgNazwy["Kasa gotówkowa"];

                    // I termin płatności
                    gotowka.TerminDni = 0;

                    // Pozostaje to teraz zapłacić.
                    // Szukamy raportu kasowego. Musi być istnieć i być otwarty lub
                    // nie istnieć i mieć flagę automatyczny.
                    // Oczywiście ewidencja SP musi być typu kasa.
                    RaportESP raport = ((Kasa)gotowka.EwidencjaSP).NowyRaport(dokument, dokument.Data);
                    // Tworzymy nowy dokument wpłaty
                    Wplata wpłata = new Wplata(dokument, raport);
                    // Dodajemy go do tabeli
                    kasaModule.Zaplaty.AddRow(wpłata);
                    // Ustawiamy podmiot (taki jak w należności)
                    wpłata.Podmiot = dokument.Kontrahent;
                    // ... sposób zapłaty
                    wpłata.SposobZaplaty = gotowka.SposobZaplaty;
                    // ... opis wystawrczy zainicjować, zostanie przeliczony podczas zapisu
                    wpłata.Opis = "?";
                    // Oraz oczywiście kwotę
                    wpłata.Kwota = gotowka.Kwota;

                    // Wpłata z należnością zostaną rozliczone podczas zatwierdzania dokumentu
                }

                dokument.Stan = StanDokumentuHandlowego.Zatwierdzony;

                tran.Commit();
            }
        }
Exemple #28
0
        private void comarchOptimaImportOrderSTA()
        {
            string akronim;

            try
            {
                string    reference      = "";
                WebClient client         = new WebClient();
                string    prestaResponse = "";

                try
                {
                    NameValueCollection postData = new NameValueCollection()
                    {
                        { "action", "getXmlOrders" }
                    };
                    prestaResponse = Encoding.UTF8.GetString(client.UploadValues(getOrdersGate(), postData));
                }
                catch (Exception exPresta)
                {
                    eventLog.WriteEntry("Error 1 on order import:" + Environment.NewLine + exPresta.ToString(), EventLogEntryType.Error, 0);
                }

                XmlDocument ordersXML = new XmlDocument();
                ordersXML.LoadXml(prestaResponse);
                XmlElement ordersXMLroot = ordersXML.DocumentElement;

                if (ordersXMLroot.ChildNodes.Count > 0)
                {
                    foreach (XmlNode orderXML in ordersXMLroot.ChildNodes)
                    {
                        bool error = true;
                        try
                        {
                            //eventLog.WriteEntry("Rozpoczynam import zamówień:" + Environment.NewLine , EventLogEntryType.Information, 0);

                            Dictionary <string, List <XmlNode> > splitedOrder = new Dictionary <string, List <XmlNode> >();
                            orderId     = orderXML["id"].InnerText;
                            reference   = orderXML["reference"].InnerText;
                            curOrderXML = orderXML;

                            if (CzyZaimportowane(reference)) //Jeśłi zamówienie zaimportowane to przerywam.
                            {
                                continue;
                            }

                            XmlNode tmpNode = orderXML["associations"];

                            LogowanieAutomatyczne(eventLog);
                            AdoSession Sesja = Login.CreateSession();


                            try {
                                XmlNode xmlBilling  = orderXML.SelectSingleNode("address_invoice")["address"];
                                XmlNode xmlShipping = orderXML.SelectSingleNode("address_delivery")["address"];
                                XmlNode xmlCustomer = orderXML.SelectSingleNode("customer");
                                XmlNode xmlCarrier  = orderXML.SelectSingleNode("carrier");
                                try
                                {
                                    XmlNode       xmltmp     = orderXML["address_invoice"]["address"];
                                    DefAtrybut    defAtrybut = Sesja.CreateObject("CDN.DefAtrybuty").Item("DeA_Kod='B2BID'");  //Pobranie id atrybutu
                                    string        KnA_DeAId  = "KnA_DeAId=" + defAtrybut.ID.ToString() + "";
                                    SqlConnection conn       = new SqlConnection();
                                    conn.ConnectionString = connectionString;
                                    conn.Open();
                                    SqlCommand idKnt = new SqlCommand("SELECT    [KnA_PodmiotId]  ,[KnA_WartoscTxt]  FROM [CDN].[KntAtrybuty] where [KnA_DeAId] = '" + defAtrybut.ID.ToString() + "' AND [KnA_WartoscTxt] = '" + xmlBilling["id"].InnerText + "'", conn);


                                    SqlDataReader reader    = idKnt.ExecuteReader();
                                    int           podmiotId = 0;


                                    try {
                                        if (reader.Read())
                                        {
                                            Int32.TryParse(reader["KnA_PodmiotId"].ToString(), out podmiotId);
                                            knt = Sesja.CreateObject("CDN.Kontrahenci").Item("Knt_kntid=" + podmiotId);
                                        }
                                        else
                                        {
                                            podmiotId = 0;

                                            try
                                            {
                                                knt = Sesja.CreateObject("CDN.Kontrahenci").Item("Knt_Kod='" + ZbudujAkronim(curOrderXML) + "'");
                                            }catch (Exception ex)
                                            {
                                                knt = null;
                                            }

                                            if (knt == null)
                                            {
                                                knt                 = Sesja.CreateObject("CDN.Kontrahenci").AddNew();
                                                knt.Akronim         = ZbudujAkronim(curOrderXML);;
                                                knt.Rodzaj_Odbiorca = 1;
                                                knt.Rodzaj_Dostawca = 0;

                                                PobierzDaneDoFaktury();
                                                KntAtrybut b2bId = knt.Atrybuty.AddNew();
                                                b2bId.DefAtrybut = defAtrybut;
                                                b2bId.ROSaveMode = 1;
                                                b2bId.Wartosc    = xmlBilling["id"].InnerText;
                                                knt.Kategoria    = Sesja.CreateObject("CDN.Kategorie").Item("Kat_KodOgolny='ALLEGRO MAJSTERKOWAN'");
                                                knt.Grupa        = "ALLEGRO MAJSTERKOWAN";
                                                Sesja.Save();
                                                podmiotId = knt.ID;
                                            }
                                        }
                                    }
                                    catch (Exception exPresta)
                                    {
                                        // eventLog.WriteEntry("Błąd przy tworzeniu Kontrahenta: " + orderId + Environment.NewLine + "" + exPresta, EventLogEntryType.Error, 0);

                                        throw;
                                    }



                                    reader.Close();
                                    reader.Dispose();

                                    conn.Close();


                                    DokumentHaMag dok = Sesja.CreateObject("CDN.DokumentyHaMag").AddNew();
                                    dok.Rodzaj       = 308000;
                                    dok.TypDokumentu = 308;


                                    var rNumerator = dok.Numerator;

                                    DefinicjaDokumentu dokDef = Sesja.CreateObject("CDN.DefinicjeDokumentow").Item("DDf_Symbol='RO'");
                                    rNumerator.DefinicjaDokumentu = dokDef;
                                    knt         = Sesja.CreateObject("CDN.Kontrahenci").Item("Knt_kntid=" + knt.ID);
                                    dok.Podmiot = knt;

                                    dok.WalutaSymbol = "PLN";

                                    dok.OdbEmail = xmlCustomer["email"].InnerText;
                                    dok.TypNB    = 2; /* 1 - Licz od netto, 2 -licz od brutto*/



                                    dok.OdbNazwa1            = ZbudujNazwe(xmlShipping["company"].InnerText, xmlShipping["firstname"].InnerText, xmlShipping["lastname"].InnerText).Nazwa1;
                                    dok.OdbNazwa2            = ZbudujNazwe(xmlShipping["company"].InnerText, xmlShipping["firstname"].InnerText, xmlShipping["lastname"].InnerText).Nazwa2;
                                    dok.OdbNazwa3            = ZbudujNazwe(xmlShipping["company"].InnerText, xmlShipping["firstname"].InnerText, xmlShipping["lastname"].InnerText).Nazwa3;
                                    dok.OdbAdres.Ulica       = xmlShipping["address1"].InnerText;
                                    dok.OdbAdres.NrDomu      = xmlShipping["address2"].InnerText;
                                    dok.OdbAdres.NrLokalu    = "";
                                    dok.OdbAdres.Poczta      = "";
                                    dok.OdbTelefon           = xmlShipping["phone"].InnerText ?? xmlShipping["phone_mobile"].InnerText;
                                    dok.OdbAdres.Miasto      = xmlShipping["city"].InnerText;
                                    dok.OdbAdres.KodPocztowy = xmlShipping["postcode"].InnerText;
                                    dok.OdbAdres.Kraj        = "Polska";
                                    //dok.OdbAdres.Wojewodztwo = xmlShipping["Region"].InnerText;
                                    DokAtrybut dostawa = dok.Atrybuty.AddNew();
                                    dostawa.Kod     = "METODADOSTAWY";
                                    dostawa.Wartosc = xmlCarrier["name"].InnerText;
                                    DokAtrybut platnosc = dok.Atrybuty.AddNew();
                                    platnosc.Kod     = "METODAPLATNOSCI";
                                    platnosc.Wartosc = orderXML["payment"].InnerText;

                                    DokAtrybut b2bIdDok = dok.Atrybuty.AddNew();
                                    b2bIdDok.Kod     = "B2BID";
                                    b2bIdDok.Wartosc = orderId;

                                    dok.NumerObcy = reference;
                                    // dok.MagazynZrodlowyID = int.Parse(orderContent.Key);

                                    Kategoria kategoria;
                                    if (orderXML["module"].InnerText == "allegro")
                                    {
                                        knt.Kategoria = Sesja.CreateObject("CDN.Kategorie").Item("Kat_KodOgolny='ALLEGRO MAJSTERKOWAN'");
                                        knt.Grupa     = "ALLEGRO MAJSTERKOWAN";
                                    }
                                    else
                                    {
                                        knt.Kategoria = Sesja.CreateObject("CDN.Kategorie").Item("Kat_KodOgolny='MAJSTERKOWANIE.EU'");
                                        knt.Grupa     = "MAJSTERKOWANIE.EU";
                                    }



                                    CDNBase.ICollection FormyPlatnosci = (CDNBase.ICollection)(Sesja.CreateObject("CDN.FormyPlatnosci", null));
                                    if (orderXML["module"].InnerText == "ps_cashondelivery" || orderXML["payment"].InnerText.IndexOf("collect_on_delivery") != -1)
                                    {
                                        dok.FormaPlatnosci = (OP_KASBOLib.FormaPlatnosci)FormyPlatnosci["FPl_FPlId=14"]; /*Pobranie IE*/
                                    }
                                    else
                                    {
                                        dok.FormaPlatnosci = (OP_KASBOLib.FormaPlatnosci)FormyPlatnosci["FPl_FPlId=13"];  /*Przedpłata IE*/
                                    }

                                    ICollection pozycje = dok.Elementy;

                                    foreach (XmlNode orderXmlElement in tmpNode["order_rows"])
                                    {
                                        ElementHaMag pozycja = pozycje.AddNew();
                                        int          TwrTwrId;
                                        if (Int32.TryParse(orderXmlElement["TwrTwrId"].InnerText, out TwrTwrId))
                                        {
                                            pozycja.TowarID = TwrTwrId;
                                        }
                                        else
                                        {
                                            pozycja.TowarID = Convert.ToInt32(getTwrIdException());
                                        }

                                        var product_price = orderXmlElement["unit_price_tax_incl"].InnerText.Replace(".", ",");
                                        pozycja.CenaT   = Convert.ToDecimal(product_price);
                                        pozycja.IloscJM = Convert.ToDouble(orderXmlElement["product_quantity"].InnerText);
                                    }

                                    ElementHaMag carrier = pozycje.AddNew();
                                    carrier.TowarID = Convert.ToInt32(getTwrIdCarrier());
                                    var total_shipping = orderXML["total_shipping"].InnerText.Replace(".", ",");
                                    carrier.CenaT   = Convert.ToDecimal(total_shipping);
                                    carrier.IloscJM = Convert.ToDouble(1);
                                    carrier.UstawNazweTowaru(xmlCarrier["name"].InnerText);
                                    carrier.WartoscZakupu = Convert.ToDecimal(total_shipping);



                                    error = false;
                                    Sesja.Save();
                                    eventLog.WriteEntry("Pomyślnie pobrano zamówienie nr:" + orderId + Environment.NewLine, EventLogEntryType.Information, 0);

                                    OznaczJakoPobrane(Convert.ToInt32(orderXML["id_optimaexportorders"].InnerText), Convert.ToInt32(orderXML["id"].InnerText));
                                }
                                catch (Exception exDokDef)
                                {
                                    eventLog.WriteEntry("Error 2 on order import: " + orderId + Environment.NewLine + exDokDef.ToString(), EventLogEntryType.Error, 0);
                                }
                            }
                            catch (Exception exPresta)
                            {
                                error = true;
                                eventLog.WriteEntry("Error on order import: " + orderId + Environment.NewLine + "dzieki tej opcji wystapienie bledu importu zamowienia nie powinno zabijac optimy" + exPresta, EventLogEntryType.Error, 0);
                                Wylogowanie();
                            }
                            Wylogowanie();
                        }
                        catch (Exception exPresta)
                        {
                            error = true;
                            eventLog.WriteEntry("Error 3 on order import: " + orderId + Environment.NewLine + Environment.NewLine + exPresta.ToString(), EventLogEntryType.Error, 0);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                eventLog.WriteEntry("Błąd ogólny:" + Environment.NewLine + exception.ToString(), EventLogEntryType.Error, 0);
            }
        }
Exemple #29
0
 public static Customer ToDto(this Kontrahent customer)
 {
     return(Mapper.Value.Map <Customer>(customer));
 }
 public void Usun(Kontrahent kontrahent)
 {
     db.Kontrahents.DeleteOnSubmit(kontrahent);
 }