Skocz do zawartości

Sfera - dynamiczne rezerwowanie asortymenty podczas tworzenia/edycji ZK


Zobacz rozwiązanie Rozwiązane przez Wojciech Szopiński,

Polecane posty

Dzień Dobry,

 

Jestem w trakcie tworzenia zewnętrznej aplikacji, której jedną z funkcji ma byc tworzenie zamówień.

 

Chciałbym odwzorować zachowania się formatki zamówienia z subiekta - a dokładniej dynamiczne wyliczenia  dostępnej ilości asortymentu.

Na tą chwilę pobieram listę asortymentu z dostępnymi ilościami - te dane wyświetlają się poprawnie.

Po wyborze asortymentu i dodaniu do zamówienia  (var tmp = wybrane.zk.Pozycje.Dodaj(a, Convert.ToDecimal(wybor.wybranaIlosc), a.PodstawowaJednostkaMiaryAsortymentu);)

to nie zauważyłem żadnej zmiany w dostępnej ilości (w przyciwieństwie do tej formatki w subiekcie nexo - w jej przypadku widzę, że w bazie danych w tabeli StanyMagazynowe przy dodaniu pozycji zamówienia to zwiększa się ilość zadysponowana dla odpowiedniego asortymentu).

 

Upewniłem się, że moje nowe zamówienie ma status pełnej rezerwacji dostaw oraz, że pozycja, którą dodałem zachowała się poprawnie - wyświetlam później na liście wszystkie pozycje dodane do zamówienia (wybrane.zk jest obiektem IZamowienieOdKlienta).

 

 

W jaki sposób mógłbym odwzorować w tym momencie zachowanie subiekta?

Link to postu
  • Rozwiązanie
14 godzin temu, Bartłomiej Warchoł napisał:

Chciałbym odwzorować zachowania się formatki zamówienia z subiekta - a dokładniej dynamiczne wyliczenia  dostępnej ilości asortymentu.

Jak rozumiem chodzi o przypadkek, w którym dodajemy pozycje lub zmieniamy ilość w zamówieniu od klienta/fakturze pro forma z pełną/częściową rezerwacją dostaw co powoduje, że automatycznie odświeża nam się ilość w kolumnie "Dostępne"?

15 godzin temu, Bartłomiej Warchoł napisał:

Na tą chwilę pobieram listę asortymentu z dostępnymi ilościami - te dane wyświetlają się poprawnie.

W jaki sposób? Skąd pobiera Pan dane o ilości dostępnej? Z tego co zrozumiałem to z tabeli StanyMagazynowe?

15 godzin temu, Bartłomiej Warchoł napisał:

nie zauważyłem żadnej zmiany w dostępnej ilości

Jeśli pobrał Pan te dane do jakichś swoich wewnętrznych struktur lub po prostu pobrał Pan całe encje z bazy to one same z siebie nie zaktualizują się. Trzeba te dane pobrać jeszcze raz i odświeżyć na własnym interfejsie użytkownika.

Można do tego celu wykorzystać metodę OszacujWolnaIloscAsortymentu z interfejsu IDokumentSzacujacyWolnaIloscAsortymentu. W przypadku zamówienia od klienta może to wyglądać tak:

using (IZamowienieOdKlienta zamowienie = sfera.ZamowieniaOdKlientow().UtworzZamowienieOdKlienta())
{
  zamowienie.Dane.StatusDokumentu = sfera.StatusyDokumentow().DaneDomyslne.ZamowienieOdKlienta_RezerwacjaDostawy;
  PozycjaDokumentu pozycja = zamowienie.Pozycje.Dodaj("BANAW200");
  decimal iloscDostepna = zamowienie.ObslugaRezerwacji.OszacujWolnaIloscAsortymentu(pozycja.AsortymentAktualny, pozycja.Magazyn ?? zamowienie.Dokument.Magazyn);
  decimal iloscDostepnaWJednostcePozycji = pozycja.AsortymentAktualny.PodstawowaJednostkaMiaryAsortymentu.PrzeliczIloscNaJednostke(iloscDostepna, pozycja.JednostkaMiaryAs);
  pozycja.Ilosc += 10m;
  iloscDostepna = zamowienie.ObslugaRezerwacji.OszacujWolnaIloscAsortymentu(pozycja.AsortymentAktualny, pozycja.Magazyn ?? zamowienie.Dokument.Magazyn);
  iloscDostepnaWJednostcePozycji = pozycja.AsortymentAktualny.PodstawowaJednostkaMiaryAsortymentu.PrzeliczIloscNaJednostke(iloscDostepna, pozycja.JednostkaMiaryAs);
}

Metoda ta zwraca dostępną ilość asortymentu w podstawowej jednostce miary asortymentu dlatego jest konieczne ewentualne przeliczenie jej na jednostkę wybraną na pozycji. Dodam jeszcze, że z dokładnie tej samej metody korzysta właśnie wspomniana kolumna "Dostępne" w interfejsie Subiekta.

  • Dziękuję 1
Link to postu
Cytat

W jaki sposób? Skąd pobiera Pan dane o ilości dostępnej? Z tego co zrozumiałem to z tabeli StanyMagazynowe?

Dokładnie tak. Z tej tabeli biorę informację o ilościach.

 

Klient korzysta tylko z 1 jednostki miary  w asortymencie więc nie ma problemu z przeliczaniem.

 

Sprawdziłem te rozwiązanie i sprawdziło się w moim przypadku. 

 

Bardzo dziękuje za pomoc.

  • Dziękuję 1
Link to postu
×
×
  • Dodaj nową pozycję...