Transakcja dpinw_zamknij.aspx wykorzystywana w programie Studio Magazyn WMS.net służy do zamknięcia arkusza inwentaryzacji oraz wygenerowania dokumentów różnic inwentaryzacyjnych.
Opis działania
Po wprowadzeniu w arkuszu inwentaryzacji wszystkich stanów wynikających ze spisu z natury przystępujemy do zakończenia prac inwentaryzacyjnych, a tym samym zamknięcia arkusza inwentaryzacji. Funkcja ZAMKNIJ jest dostępna w rejestrze Inwentaryzacji otwartych. Po uruchomieniu transakcji zostanie uruchomiona weryfikacja, czy wszystkie pozycje arkusza mają uzupełniony stan wynikający ze spisu z natury. Jeżeli nie wszystkie pozycje zostaną uzupełnione wówczas zostanie wyświetlony komunikat.

Po kliknięciu w Wyświetl szczegóły zostanie wyświetlony raport szczegółowy pozycji bez wprowadzonego BO, polecenie ANULUJ to powrót do rejestru inwentaryzacji otwartych. W takiej sytuacji należy w arkuszu inwentaryzacji uzupełnić pozycje, które w polu Ilość faktyczna nie maja wprowadzonej wartości. W przypadku jeżeli towaru fizycznie nie ma na stanie należy w polu wprowadzić wartość 0. Po uzupełnieniu pozycji ponownie uruchamiamy Zamknij. Po pozytywnie przeprowadzonej weryfikacji wyświetli się okno jak poniżej.

Polecenie Zamknij arkusz to zamkniecie arkusza oraz wygenerowanie dokumentów różnic inwentaryzacyjnych. Po poprawnie wykonanej operacji zostanie wyświetlony komunikat

Polecenie Wyświetl szczegóły wyświetli zestawienie wszystkich podwyżek i niedoborów.

Dokumenty widoczne będą także w rejestrach Niedobory inwentaryzacyjne oraz Nadwyżki z inwentaryzacji.
Uruchomienie
Transakcję wywołujemy z podaniem parametru refno. Przykład wywołania: /role_wms/dpinw_zamknij.aspx?refno=
Transakcja dpinw_zamknij.aspx
Poniższy opis przedstawia mechanizm działania rozwiązania służącego do zamykania arkusza spisu z natury, które łączy część serwerową (ASP.NET w języku C#) z częścią kliencką (JavaScript). Poniżej zaprezentowano szczegółowy przebieg działania systemu, wykorzystując słowa łączące zdania oraz stronę czynną.
1. Struktura strony ASPX
Na początku system ładuje stronę ASPX, która korzysta z szablonu (MasterPage) i osadza skrypty JavaScript. Ponadto, strona zawiera deklarację kilku ukrytych pól (input typu hidden) oraz elementy interfejsu, takie jak tabela z informacjami o numerze dokumentu i dacie. Dzięki temu użytkownik otrzymuje przejrzysty widok z danymi arkusza, co ułatwia dalsze działania.
2. Inicjalizacja i przygotowanie danych po stronie serwera
Podczas inicjalizacji strony, w metodzie Page_Load
kod w C# wykonuje następujące czynności:
- Pobiera dane użytkownika
System odczytuje parametry użytkownika zapisane w sesji. Dzięki temu pobiera informacje o magazynie, oddziale, roli systemowej oraz nazwie użytkownika, co umożliwia dalszą personalizację operacji. - Przygotowuje dane arkusza
Jeśli w parametrze zapytania znajduje się numer referencyjny (refno), system sprawdza jego poprawność. Następnie metodaWstawDane
wykonuje zapytanie do bazy danych, aby pobrać datę dokumentu, numer dokumentu oraz numer magazynu z tabelidpinw
. Dzięki temu użytkownik widzi aktualne informacje dotyczące arkusza, który zamyka. - Ustawia sesję
System tworzy słownik z parametrami, zapisuje numer referencyjny do sesji oraz przypisuje go do identyfikatora sesji. W ten sposób system zapewnia spójność danych w trakcie dalszych operacji.
3. Mechanizm zapisu arkusza – metoda SaveForm
System umożliwia zamknięcie arkusza poprzez wywołanie metody SaveForm
, która działa jako metoda serwerowa (WebMethod). W tym procesie:
- Weryfikuje sesję
System porównuje numer referencyjny przesłany przez klienta z numerem zapisanym w sesji. Dzięki temu system aktywnie zapobiega niezgodnościom i błędom sesji. - Odczytuje wartości z kontrolek
System iteruje po tablicy przesłanych kontrolek, odczytując wartości dotyczące oddziału, loginu oraz roli systemowej. W ten sposób kod przypisuje odpowiednie wartości do zmiennych wykorzystywanych przy dalszym przetwarzaniu. - Uruchamia operację zamknięcia
Następnie system wywołuje metodęZamknijIN
, która realizuje główną logikę zamykania arkusza. Dzięki temu kod wykonuje odpowiednie operacje na bazie danych, w tym generuje dokumenty PI (nadwyżki) oraz RI (niedobory).
4. Logika zamykania arkusza po stronie serwera
Metoda ZamknijIN
realizuje kluczowe operacje, w tym:
- Przetwarzanie nadwyżek
System wykonuje zapytanie do bazy, aby pobrać pozycje, gdzie ilość bilansu otwarcia jest mniejsza od ilości docelowej. Następnie system generuje dokument PI, wykorzystując dynamicznie przygotowane zapytania SQL. Dodatkowo system rejestruje historię operacji, co pozwala na śledzenie zmian. - Przetwarzanie niedoborów
Podobnie system pobiera dane dotyczące pozycji, w których bilans otwarcia przewyższa ilość wymaganą. Następnie generuje dokument RI, stosując analogiczny mechanizm do przetwarzania nadwyżek. Dzięki temu system kompleksowo rozlicza pozycje arkusza. - Aktualizacja stanu dokumentu
Po wykonaniu operacji system wywołuje metodęZmienAch
, która aktualizuje wartość polaACH
w tabelidpinw
oraz przywraca dostępność lokalizacji (tabeli KNWMS) i asortymentu (tabeli KNASO). W ten sposób system aktywnie blokuje lub odblokowuje wybrane dane w bazie, zapewniając spójność operacji. - Rejestracja historii i obsługa wyjątków
System zapisuje historię operacji, co umożliwia śledzenie zamknięcia arkusza. Dodatkowo, kod aktywnie obsługuje wyjątki, logując błędy i informując użytkownika o ewentualnych problemach.
5. Część kliencka – JavaScript
Klient odpowiada za interaktywność strony, wykonując następujące kroki:
- Inicjalizacja interfejsu
FunkcjaDocumentReady
pobiera dane z tablicyssVar
(zawierającej identyfikator sesji oraz numer referencyjny) i konfiguruje elementy interfejsu, takie jak kontrolki typuWebCheck
ijqxCheckBox
. Dzięki temu system aktywnie przygotowuje stronę do pracy. - Obsługa przycisku zamykania arkusza
Po kliknięciu przycisku wywołuje się funkcjabtnDodaj
, która zbiera dane ze wszystkich kontrolek wymagających potwierdzenia (przy użyciu atrybutussPostBack
). Następnie system wyświetla komunikat z animacją oczekiwania i wywołuje metodęPageMethods.SaveForm
. - Obsługa wyniku operacji
Po otrzymaniu wyniku operacji system aktywnie aktualizuje sekcjęssAkcja
. W zależności od rezultatu użytkownik widzi komunikat potwierdzający zamknięcie arkusza oraz linki umożliwiające przejście do szczegółowego widoku lub anulowanie operacji. - Ustawienie stanu strony
FunkcjaUstawStrone
pobiera dane o stanie arkusza, a następnie dynamicznie aktualizuje interfejs. W ten sposób system informuje użytkownika, czy arkusz zawiera pozycje bez bilansu otwarcia oraz umożliwia podjęcie odpowiednich działań (np. wyświetlenie szczegółów).
Podsumowanie
System aktywnie przetwarza dane zarówno po stronie serwera, jak i klienta. Przede wszystkim system inicjalizuje dane użytkownika, pobiera szczegóły arkusza oraz weryfikuje spójność sesji. Następnie, użytkownik poprzez interaktywny interfejs zatwierdza zamknięcie arkusza, co powoduje generowanie dokumentów PI i RI. Na końcu system aktualizuje stan dokumentu i odblokowuje odpowiednie zasoby w bazie. Dzięki zastosowaniu słów łączących zdania oraz stronie czynnej, kod prezentuje przejrzysty i spójny mechanizm działania, który gwarantuje bezpieczeństwo oraz dokładność wykonywanych operacji.
Czytaj więcej:
Usunięcie inwentaryzacji – jqs_dpinw_delete.js
Skrypt wykorzystywany w programie WMS.net umożliwiający użytkownikowi na usunięcie dokumentu inwentaryzacji, który znajduje się w buforze.
Zamknięcie inwentaryzacji dpinw_zamknij.aspx
Platforma StudioSystem to kompleksowe, oparte na chmurze rozwiązanie do zarządzania zapasami w wielu sklepach i magazynach. Dzięki StudioSystem sprzedawcy detaliczni mogą łatwo i dokładnie śledzić zapasy, od momentu ich wprowadzenia do magazynu, aż po dostarczenie do klientów. Eliminuje to potrzebę fizycznej inwentaryzacji w magazynie i drastycznie zmniejsza potrzebę procesów ręcznych.
Transakcje TCS aspx Inwentaryzacja Narzędziownia TCS transakcja
dpinw_insert.aspx
Transakcja dpinw_insert.aspx wykorzystywana w programie Studio magazyn WMS.net służy do wygenerowania arkusza inwentaryzacyjnego.
jqs_dpinw_insert
Skrypt jqs_dpinw_insert.js realizuje kompleksowy proces dopisywania inwentaryzacji. Na początku inicjuje i konfiguruje interfejs, pobiera dane użytkownika oraz generuje dynamiczny formularz na podstawie wybranego rodzaju inwentaryzacji. Następnie system aktywnie waliduje dane, sprawdza istnienie dokumentów w buforze oraz weryfikuje, czy dana inwentaryzacja nie została już wcześniej dopisana.
jqs_dpinw_zamknij
Skrypt jqs_dpinw_zamknij.js realizuje kompleksowy proces zamykania inwentaryzacji. Na początku dynamicznie generuje interfejs, wyświetlając dane inwentaryzacji, takie jak numer i data. Następnie skrypt sprawdza, czy inwentaryzacja zawiera pozycje bez bilansu otwarcia, co może blokować zamknięcie.