Skocz do zawartości

[Sfera] Częściowa realizacja ZK

Polecane posty

Dzień dobry

 

Chcielibyśmy za pomocą Sfery przygotować skrypt który częściowo zrealizuje zamówienie od klienta jako RW.

Przypadek biznesowy:

1. W zamóieniu z rezerwacja jest towar, którego fizycznie nie ma na magazynie
2. Towar brakujący ma być zrealizowany na RW
3. Towary dostępne (pozostałe) będą zrealizowane dokumentem sprzedaży  wg ustawienia na zamówieniu

 

Może brakować całej pozycji lub tylko jej części, np.: 1 szt. z 10 zamówionych.
RW będzie wystawiane do każdego zamówienia osobno.

 

Czy jest jakiś sugerowany sposób aby taki cel osiągnąć?

 

Czy można uzupełnić pozycje tworzonego RW na podstawie zamówienia

var pozycjeRealizujacego = realizujacy.WypelnijNaPodstawieZK(
    zkPobrane.Pozycje,		
    zkPobrane,
    parametryGrupowania);

i następnie edytować te pozycje w tworzonym RW, czy może najlepiej  dodawać każdą pozycję osobno?

Link to postu

Jest metoda IRozchodWewnetrzny.WypelnijNaPodstawieZK, więc wygląda na to, że jest to możliwe. Po utworzeniu pozycji na podstawie ZK, można w niej zmieniać ilości i inne parametry, tak jak by robiło się w oknie Subiekta, więc raczej powinno się udać, najlepiej zrobić kawałek testowego kodu :) Osobiście samego RW nie robiłem, ale jak działa to w WZ/ZD/FS itp. to pewnie i w RW zadziała. Ewentualnie dochodzą parametry grupowania, ale nie wiem, czy w przypadku RW mają one znaczenie.

Link to postu

Przy całkowitej realizacji ZK jako RW nie widać problemu.

Testowy kawałek kodu przygotowaliśmy, jednak Subiekt nexo jest na tyle skomplikowanym rozwiązaniem, że wolałbym mieć potwierdzenie że tak to należy robić w przypadku realizacji częściowej. Części pozycji z ZK nie będzie na RW część będzie miała zmniejszoną ilość a inne pozycje nawet zmienioną jednostkę miary.

 


 

Link to postu

Zgadza się, metoda WypelnijNaPodstawieZK służy dokładnie do tego (ta sama metoda jest wywoływana przy wywołwaniu Zrealizuj jako -> Rozchód wewnętrzny z interfejsu). Najlepiej wywołać ją raz dla pozycji, które faktycznie mają znaleźć się na RW, a utworzone w ten sposób pozycje RW można już dowolnie modyfikować.

  • Dziękuję 1
Link to postu

Dziękuję za informację.

 

W pierwszej kolejności wybieramy pozycję do przeniesienia

var pozycjeDoPrzeniesienia = danePozycje
                .Where(x => symboleBrakow.Contains(x.AsortymentAktualny.Symbol))
                .ToList();

Później wypełniamy dokument:

var pozycjeRealizujacego = realizujacy.WypelnijNaPodstawieZK(
                            pozycjeDoPrzeniesienia,
                            zkPobrane,
                            parametryGrupowania);

A na końcu edytujemy (zmieniamy ilość i jednostkę) pozycję na dokumencie realizujacym w kolekcji

realizujacy.Dane.Pozycje

Jak na razie mechanizm działa :)

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