Skocz do zawartości

Rafał Kaim

Użytkownik
  • Liczba zawartości

    6
  • Rejestracja

  • Ostatnia wizyta

Ostatnie wizyty

Blok z ostatnimi odwiedzającymi dany profil jest wyłączony i nie jest wyświetlany użytkownikom.

Rafał Kaim's Achievements

0

Reputacja

  1. public int AddParagonForOrder(Document document, ECOneContext dbContext) { try { IAsortymenty asortymentList = mUchwyt.PodajObiektTypu<IAsortymenty>(); IJednostkiMiar jednostkaMiaryList = mUchwyt.PodajObiektTypu<IJednostkiMiar>(); IStatusyDokumentowDaneDomyslne statusyDDList = mUchwyt.PodajObiektTypu<IStatusyDokumentow>().DaneDomyslne; IDokumentySprzedazy dokumentySprzedazy = mUchwyt.PodajObiektTypu<IDokumentySprzedazy>(); IPodmioty podmiotList = mUchwyt.PodajObiektTypu<IPodmioty>(); IStatusyDokumentow statusyDokumentow = mUchwyt.PodajObiektTypu<IStatusyDokumentow>(); IFormyPlatnosci formaPlatnosciList = mUchwyt.PodajObiektTypu<IFormyPlatnosci>(); DokumentZK dokumentZK = null; DocumentItem documentItem = null; InsERT.Moria.ModelDanych.Asortyment asortyment = null; int nexoOrderId = ...; dokumentZK = mUchwyt.PodajObiektTypu<IZamowieniaOdKlientow>().Dane.Wszystkie().Where(z => z.Id == nexoOrderId).FirstOrDefault(); if (dokumentZK.Zamkniety) return 0; else if (dokumentZK == null) return -1; Konfiguracja konfiguracja = mUchwyt.PodajObiektTypu<InsERT.Moria.Dokumenty.Logistyka.IKonfiguracje>().DaneDomyslne.ParagonFiskalny; Magazyn magazyn = mUchwyt.PodajObiektTypu<IMagazyny>().Dane.Wszystkie().Where(m => m.Symbol == mMagazynSymbol).FirstOrDefault(); using (IDokumentSprzedazy paragonNexo = dokumentySprzedazy.Utworz(konfiguracja)) { paragonNexo.Dane.NumerZewnetrzny = dokumentZK.NumerZewnetrzny; paragonNexo.Dane.DataWprowadzenia = document.DateAdd; paragonNexo.Dane.Magazyn = magazyn; paragonNexo.Dane.WystawilaOsoba = podmiotList.Dane.Wszystkie().Where(p => p.Osoba != null && p.NazwaSkrocona == mOsobaWystawiajaca).FirstOrDefault().Osoba; if (document.ClientEMail != string.Empty) { paragonNexo.Dokument.Uwagi += "E-Mail: " + document.ClientEMail; } if (document.ClientPhoneNumber != string.Empty) { paragonNexo.Dokument.Uwagi += "Nr telefonu: " + document.ClientPhoneNumber; } foreach (var item in paragonNexo.DodajPozycjeZZK(dokumentZK.Pozycje, new ParametryGrupowaniaDS { MetodaWyliczeniaCen = MetodaWyliczeniaCen.BezKonsolidacji, MetodaGrupowaniaPozycji = MetodaGrupowaniaPozycji.BezKonsolidacji, PrzeniesNatychmiastowe = PrzenoszeniePlatnosciNatychmiastowych.Przepisz, OperacjePrzeliczaniaDokumentu = dokumentZK.OperacjePrzeliczaniaDokumentu, NabywcaSprzedawca = dokumentZK.NabywcaSprzedawcaWybrany, OdbiorcaDostawca = dokumentZK.OdbiorcaWybrany, })) ; foreach (DocumentItem item in document.DocumentItem) { if (!(from p in paragonNexo.Dane.Pozycje where p.AsortymentWybrany.Symbol.Trim().ToLower() == item.Symbol.Trim().ToLower() select p).Any()) { asortyment = asortymentList.Dane.Wszystkie().Where(a => a.Symbol.Trim().ToUpper() == item.Symbol.Trim().ToUpper()).FirstOrDefault(); var paragonPozycja = paragonNexo.Pozycje.Dodaj(asortyment, item.Quantity, asortyment.JednostkaSprzedazy); paragonPozycja.Cena.BruttoPrzedRabatem = item.GrossPrice; } } paragonNexo.Dokument.PochodziZUrzadzeniaFiskalnego = true; paragonNexo.Dane.StatusFiskalizacji = 1; paragonNexo.Dane.PlatnosciDokumentow.Clear(); paragonNexo.Przelicz(); if (document.PaymentType == 0 || document.PaymentType == 2) { if (document.Discount > 0) { decimal wartoscPoRabacie; if (document.IsDiscountPercent == true) wartoscPoRabacie = decimal.Round(document.GrossValue * (1 - document.Discount), 2, MidpointRounding.AwayFromZero); else wartoscPoRabacie = decimal.Round(document.GrossValue - document.Discount, 2, MidpointRounding.AwayFromZero); paragonNexo.Przelicz(); var funkcja = mUchwyt.PodajObiektTypu<IFabrykaFunkcjiRozdzielajacychRabatNaPozycje>().Znajdz(Guid.Parse("EA786A35-1868-4F9B-8B6E-D132D992B02B")); if (funkcja != null) { decimal rabatBrutto = funkcja.WyliczRabatBrutto(paragonNexo.Dane, wartoscPoRabacie); funkcja.RozdzielRabatNaPozycje(paragonNexo, rabatBrutto); } } paragonNexo.Dane.FormaPlatnosci = formaPlatnosciList.Dane.Wszystkie().Where(f => f.Aktywna == true && f.Nazwa == "Gotówka (1)").First(); } else if (document.PaymentType == 1) { if (document.Discount > 0) { decimal wartoscPoRabacie; if (document.IsDiscountPercent == true) wartoscPoRabacie = decimal.Round(document.GrossValue * (1 - document.Discount), 2, MidpointRounding.AwayFromZero); else wartoscPoRabacie = decimal.Round(document.GrossValue - document.Discount, 2, MidpointRounding.AwayFromZero); paragonNexo.Przelicz(); var funkcja = mUchwyt.PodajObiektTypu<IFabrykaFunkcjiRozdzielajacychRabatNaPozycje>().Znajdz(Guid.Parse("EA786A35-1868-4F9B-8B6E-D132D992B02B")); if (funkcja != null) { decimal rabatBrutto = funkcja.WyliczRabatBrutto(paragonNexo.Dane, wartoscPoRabacie); funkcja.RozdzielRabatNaPozycje(paragonNexo, rabatBrutto); } } paragonNexo.Dane.FormaPlatnosci = formaPlatnosciList.Dane.Wszystkie().Where(f => f.Aktywna == true && f.Nazwa == "Karta płatnicza").First(); } paragonNexo.Platnosci.DodajDomyslnaPlatnoscNatychmiastowaNaKwoteDokumentu(); if (paragonNexo.Zapisz()) { return paragonNexo.Dane.Id; } else { return -1; } } } catch (Exception e) { return -1; } }
  2. Po zmianie statusu (Wydany towar-->Blokada-->Wydany towar) - dokument WZ generuje się normalnie poniżej przykład z innego paragonu po wspomnianej edycji ukazujący w dokumentach powiązanych właściwą WZ. Wkrótce dodam część kodu.
  3. Status dokumentu ze towar został wydany, oczywiście na paragonie są pozycje
  4. Dzień dobry, Czy ktoś może ma pomysł na rozwiązanie poniższego problemu: Przy realizowaniu ZK do paragonu za pośrednictwem sfery nie generuje się automatyczny dokument WZ - tym samym skutek magazynowy nie zostaje wywołany i niestety powoduje to bałagan w systemie magazynowym. Załączam screeny.
×
×
  • Dodaj nową pozycję...