Skocz do zawartości

marcin dragon

Użytkownik
  • Liczba zawartości

    3
  • Rejestracja

  • Ostatnia wizyta

marcin dragon's Achievements

0

Reputacja

  1. Postaramy się dostarczyć wymagane dane. Kod testowy (inne ZK ale podobny przypadek) uruchamiany w innej lokalizacji zadziałał prawidłowo. W tym przypadku nie przechodzą wszystkie dokumenty z tym scenariuszem. Dokumenty tworzone są w ilości setek. Jeśli nie ma montażu, wówczas przechodzą bez problemu.
  2. Mamy bardzo duży problem z tworzeniem dokumentu sprzedaży w postaci FS z ZK, mianowicie zostały podjęte kroki opisane poniżej: 1. w ZK powstaje pozycja montaż plus inne pozycje 2. w ZK wszystkie pozycje są zarezerwowane 3. realizując akcję w sferze "Faktura na podstawie ZK" w :dokument_ds.Braki.Lista" zgłasza błąd realizacji: {Nie można wykonać danego ruchu magazynowego: Niewystarczająca ilość towaru na magazynie do zadysponowania pozycji. Zadysponowano 0 szt.} TypBledu = NieMoznaZadysponowacRozchodu 4. w pulpicie nexo bez problemu da się zrealizować ten dokument 5. Stosowane rozwiązania doraźne: a) "dokument_realizujący.ZwolnijRezerwacje" b) zmiana statusu ZK przed utworzeniem faktury: status=BezRezerwacji c) "rezerwacja.Ilosc=0" na tej pozycji nie przyniosły pozytywnego efektu Rodzi się zatem pytanie jakie jest prawidłowe postępowanie podczas tworzenia faktury na podstawie ZK oraz kiedy ZK rezerwuje towar (montaż), którego jest jedna szt. na stanie? Fragment kodu, który został użyty do zrealizowania dokumentu znajduje się poniżej, czy on może być przyczyną takiego stanu rzeczy? Jeżeli tak to gdzie leży problem? using System; using System.Collections.Generic; using System.Linq; using InsERT.Moria.Sfera; using InsERT.Moria.ModelDanych; using InsERT.Moria.Dokumenty.Logistyka; namespace nexo.dokumenty.ds_na_podstawie_zk.test { class Test { public void wstaw(Uchwyt sfera) { string zk_kod = "ZK 887/05/02/2024/Podst"; IStatusyDokumentowDaneDomyslne statusy_dane_domyslne = sfera.PodajObiektTypu<IStatusyDokumentow>().DaneDomyslne; IDokumentySprzedazy dokumenty_ds = sfera.PodajObiektTypu<IDokumentySprzedazy>(); IZamowieniaOdKlientow dokumenty_zk = sfera.PodajObiektTypu<IZamowieniaOdKlientow>(); DokumentZK dokument_zk = dokumenty_zk.Dane.Wszystkie().Where(nag => nag.NumerWewnetrzny.PelnaSygnatura == zk_kod).FirstOrDefault(); Konfiguracja konfiguracja_faktura = sfera.PodajObiektTypu<IKonfiguracje>().DaneDomyslne.FakturaVAT; IDokumentSprzedazy dokument_ds = dokumenty_ds.Utworz(konfiguracja_faktura); ParametryGrupowaniaDS parametry_grupowania = new ParametryGrupowaniaDS(); parametry_grupowania.MetodaGrupowaniaPozycji = MetodaGrupowaniaPozycji.BezKonsolidacji; parametry_grupowania.MetodaWyliczeniaCen = MetodaWyliczeniaCen.PrzepisanieZDokumentuGlownego; parametry_grupowania.MiejsceDostawy = dokument_zk.MiejsceDostawy; parametry_grupowania.MiejsceDostawyTyp = MiejsceDostawyTyp.Domyslny; parametry_grupowania.NabywcaSprzedawca = dokument_zk.NabywcaSprzedawcaWybrany; parametry_grupowania.OdbiorcaDostawca = dokument_zk.OdbiorcaWybrany; parametry_grupowania.PrzeniesNatychmiastowe = PrzenoszeniePlatnosciNatychmiastowych.Przepisz; parametry_grupowania.PrzeniesPrzedplaty = PrzenoszeniePrzedplat.Przepisz; parametry_grupowania.MetodaPrzenoszeniaKategorii = MetodaPrzenoszeniaKategorii.ZWyroznionegoDokumentu; parametry_grupowania.OperacjePrzeliczaniaDokumentu = dokument_zk.OperacjePrzeliczaniaDokumentu; Console.WriteLine("======== przepisanie pozycji ==========="); IEnumerable<PozycjaDokumentu> pozycje_dodane = dokument_ds.WypelnijNaPodstawieZK(pozycjeZK: dokument_zk.Pozycje, dokumentZKGlowny: dokument_zk, parametryGrupowania: parametry_grupowania); foreach (PozycjaDokumentu pozycja_dodana in pozycje_dodane) { Console.WriteLine(String.Format("{0}, {1}, ilość={2}, magazyn: {3}", pozycja_dodana.AsortymentAktualny.Symbol, pozycja_dodana.AsortymentAktualny.Nazwa, pozycja_dodana.Ilosc, pozycja_dodana.Magazyn.Nazwa)); } Console.WriteLine("--------------------"); Console.WriteLine("======== braki ==========="); foreach (BrakujacaPozycja brakujaca_pozycja in dokument_ds.Braki.Lista) { Console.WriteLine(String.Format("{0};{1} -> brakuje: {2}", brakujaca_pozycja.Pozycja.AsortymentAktualny.Symbol, brakujaca_pozycja.Pozycja.AsortymentAktualny.Nazwa, Convert.ToInt32(brakujaca_pozycja.IloscBrakujaca))); } Console.WriteLine("--------------------------"); dokument_ds.Dispose(); } } }
×
×
  • Dodaj nową pozycję...