W opisywanym wdrożeniu dokument wydania z anulowanej kompletacji bierze z linii zlecenia jeden wiersz, a gdy linia ma wiersz aktywny, wybiera właśnie jego. Kompletacja zapisuje parę zatwierdzonych ruchów, a zmiana egzemplarza na pozycji zlecenia oznacza poprzednie ruchy jako anulowane. Wiersze anulowane zostają w tabeli ruchów, więc dokument wydania musi sam odróżnić linię aktualną od anulowanej.
Zmiana egzemplarza na pozycji zlecenia oznacza ruchy kompletacji jako anulowane, a nie usuwa ich, więc procedura budująca dokument wydania sama wybiera aktualny wiersz. Wybiera jeden wiersz na linię zlecenia, z pierwszeństwem wiersza aktywnego; przy linii z wyłącznie anulowanymi wierszami bierze jeden z nich.
Dokument wydania bierze z kompletacji jeden wiersz na linię zlecenia i daje pierwszeństwo wierszowi aktywnemu przed anulowanym. Sam filtr wierszy nieanulowanych by nie wystarczył, bo linia może mieć wyłącznie anulowane wiersze, a wtedy dokument nie miałby dla niej pozycji. Dlatego procedura stosuje preferencję zamiast filtra.
Kompletacja zapisuje parę ruchów, a dokument wydania powstaje z jednego z nich
Kompletacja zapisuje dla każdego elementu dwa zatwierdzone wiersze ruchu, powiązane ze sobą i z tą samą pozycją zlecenia. Pierwszy wiersz to rozchód 1 z miejsca pobrania, a drugi to przychód 1 w miejscu odkładczym. Pozycja zlecenia dostaje wtedy znacznik zrealizowanej.
- Rozchód: rozchód 1 z miejsca pobrania.
- Przychód: przychód 1 w miejscu odkładczym.
Dokument wydania powstaje z wierszy przychodowych kompletacji przypisanych do pozycji zlecenia. Dla wybranego wiersza do dokumentu trafia jedna pozycja wydania z rozchodem 1. O treści dokumentu decyduje więc to, które wiersze kompletacji zostaną wybrane.
Skan w kompletacji sprawdza istnienie egzemplarza w miejscu składowania i zwraca wynik „brak”, gdy go tam nie ma. Skan nie wybiera jednak wierszy na dokument, bo robi to dopiero procedura budująca dokument wydania. Obieg kompletacji opisuje osobna strona o obiegu kompletacji, a tutaj zajmujemy się wyłącznie wyborem wierszy.
Zmiana egzemplarza anuluje ruchy, ale ich nie usuwa
Według konfiguracji opisywanego wdrożenia przy zmianie egzemplarza na pozycji zlecenia ekran kompletacji oznacza poprzednie zatwierdzone ruchy tej pozycji jako anulowane. To znacznik anulowania, a nie kasowanie. Ekran zapisuje też wpis w historii zdarzeń o zmianie egzemplarza i dopisuje nową parę ruchów.
Anulowanie nie usuwa wiersza. Dokument wydania musi sam odróżnić linię aktualną od anulowanej.
W tabeli ruchów po takiej zmianie są więc dwie grupy wierszy: anulowane wiersze poprzedniego egzemplarza i aktywne wiersze nowego, a obie dotyczą tej samej pozycji zlecenia. Dokument wydania czyta wiersze przychodowe kompletacji przypisane do pozycji, więc bez dodatkowej reguły widziałby obie grupy. Wybór wiersza na dokument nie może zatem zakładać, że pozycja ma w kompletacji jeden wiersz.
Kompletację zestawów z elementów składowych opisujemy w artykule o zamówieniu ogólnym i kompletacji zestawu, a protokół stanu przy wydaniu i zwrocie w artykule o protokole stanu przy wydaniu i zwrocie.
Grupa po linii i egzemplarzu nie odróżniłaby wiersza anulowanego po zamianie
Wybór jednego wiersza z grupy „linia zlecenia plus egzemplarz” nie odróżniłby wiersza anulowanego po zamianie egzemplarza. Każdy egzemplarz tworzyłby własną grupę, a w każdej grupie jedyny wiersz dostawałby numer 1, więc przechodziłby także wiersz anulowany. Na dokument wydania trafiłaby wtedy pozycja z kompletacji anulowanej, a jej egzemplarz zszedłby ze stanu, choć nie opuścił magazynu.
Grafika pokazuje u góry jedną linię zlecenia z dwoma wierszami kompletacji: Egzemplarz A jest anulowany, a Egzemplarz B aktywny. W lewym panelu grupa obejmuje linię i egzemplarz, więc powstają dwie osobne ramki z wierszem o numerze 1, a oba wiersze trafiają na dokument. W prawym panelu grupa obejmuje samą linię, wiersze są uszeregowane z aktywnym na pierwszym miejscu, a na dokument trafia tylko wiersz Egzemplarza B.
Z tego powodu w opisywanym wdrożeniu numer wiersza liczy się po linii zlecenia, a nie po linii i egzemplarzu.
Partycja po linii zlecenia wybiera jeden wiersz na linię
Numer wiersza w grupie liczony jest po samej linii zlecenia. Wiersze są uszeregowane tak, że aktywny stoi przed anulowanym, a potem rozstrzyga klucz pozycji. Procedura wybiera wiersz o numerze 1.
Tabela pokazuje, który wiersz trafia na dokument wydania w czterech układach linii zlecenia.
| Co ma linia zlecenia | Który wiersz trafia na dokument wydania | Uwaga |
|---|---|---|
| Jeden wiersz aktywny | ten wiersz | przypadek zwykły |
| Wiersz aktywny i wiersze anulowane po zamianie egzemplarza | wiersz aktywny | preferencja odróżnia wiersze anulowane |
| Wyłącznie wiersze anulowane | jeden z nich, o najstarszym kluczu pozycji | linia dostaje pozycję na dokumencie |
| Dwa wiersze aktywne | wiersz o najstarszym kluczu pozycji | rozstrzyga klucz; program nie rozstrzyga, który wiersz jest właściwy |
W pierwszym układzie nie ma wyboru, bo linia ma jeden wiersz. W drugim, po zamianie egzemplarza, preferencja wskazuje wiersz aktywny. W trzecim linia ma same wiersze anulowane, więc procedura bierze jeden z nich. W czwartym, gdy linia ma dwa wiersze aktywne, rozstrzyga najstarszy klucz pozycji.
Wybór po samej linii przyjmuje, że linia zlecenia dotyczy jednego egzemplarza. Jest to obserwacja danych opisywanego wdrożenia, a nie reguła programu. Z jednego wybranego wiersza powstaje jedna pozycja wydania, więc liczba pozycji dokumentu zależy od liczby linii, z których procedura wybrała wiersz, a nie od liczby wierszy kompletacji.
Sam filtr wierszy nieanulowanych nie wystarcza, bo linia może mieć wyłącznie anulowane
Preferencja różni się od filtra. Filtr wierszy nieanulowanych odrzuciłby wiersze anulowane, ale linia może mieć wyłącznie anulowane kompletacje. Dla takiej linii dokument wydania nie miałby wtedy żadnej pozycji.
- Filtr: odrzuca wiersze anulowane, więc linia z samymi anulowanymi wierszami nie ma pozycji na dokumencie.
- Preferencja: ustawia wiersz aktywny przed anulowanym i zostawia jeden wiersz, więc linia z samymi anulowanymi wierszami dostaje jedną pozycję.
Przy samych wierszach anulowanych procedura bierze jeden z nich. Oznacza to, że wiersz anulowany może trafić na dokument wydania, gdy linia nie ma wiersza aktywnego. To granica tej reguły: preferencja wskazuje wiersz aktywny tylko tam, gdzie jest on na linii.
Wybór wierszy i kontrola stanu to dwie osobne warstwy: najpierw powstaje lista pozycji, a dopiero na niej liczy się kontrola stanu opisana w artykule o kontroli stanu przy wydaniu.
Korekta dokumentu polega na anulowaniu linii, a nie na dopisaniu przyjęcia
W opisywanym wdrożeniu dokument wydania z linią z anulowanej kompletacji koryguje się przez anulowanie tej linii, a nie przez dopisanie przyjęcia. Przyjęcie zapisałoby ruch, który się nie odbył. Zostawiłoby też na dokumencie drugi ruch, który również się nie odbył. Dwie takie fikcje znosiłyby się liczbowo, ale psułyby raporty obrotów.
Anulowana linia dostaje znacznik anulowania i adnotację w uwagach pozycji, a status egzemplarza wraca na dostępny. To decyzja uzasadniona tym, że egzemplarz nie opuścił magazynu, a nie ogólna zasada, że anulowanie jest lepszym wyborem niż przyjęcie.
Makieta pokazuje ekran wydania zlecenia z polem wyboru zlecenia i polem klienta tylko do odczytu, a pod nim tabelę dokumentu wydania, w której linia ma jedną pozycję.
Przykład (dane wymyślone) w sześciu krokach. Nazwy i numery w nim są fikcyjne.
- Zlecenie 26-1001 ma jedną pozycję.
- Magazynier kompletuje Egzemplarz A, a potem zamienia go na Egzemplarz B.
- Ruchy Egzemplarza A zostają oznaczone jako anulowane, a nową parę ruchów dostaje Egzemplarz B.
- Gdyby grupa obejmowała linię i egzemplarz, każdy egzemplarz miałby własną grupę, więc na dokument wydania trafiłyby dwie pozycje. Egzemplarz A zszedłby wtedy ze stanu, choć nigdy nie opuścił magazynu.
- Ponieważ grupa jest jedna na linię zlecenia, a wiersz aktywny ma pierwszeństwo, na dokumencie jest tylko Egzemplarz B.
- Dokument wydania z linią z anulowanej kompletacji koryguje się przez anulowanie tej linii, a nie przez dopisanie przyjęcia.
Pytania do analizy
- Czy w Waszym systemie anulowanie kompletacji usuwa ruchy, czy tylko je oznacza?
- Czy dokument wydania wie, które wiersze kompletacji są aktualne, czy bierze wiersze bez rozróżnienia?
- Co ma się stać, gdy linia ma wyłącznie anulowane kompletacje: dokument bez pozycji czy jedna pozycja zachowawczo?
- Czy dokument z linią z anulowanej kompletacji korygujecie anulowaniem linii, czy dopisaniem brakującego przyjęcia, i co to zmienia w raportach obrotów?