android_dpinw

Skrypt android_dpinw.js jest dedykowany interfejsowi mobilnemu, przeznaczonemu dla magazyniera korzystającego z systemu Studio WMS.net. Jego głównym celem jest ułatwienie rejestrowania operacji inwentaryzacyjnych poprzez wieloetapowy formularz

Obsługa Inwentaryzacji w Aplikacji Mobilnej

Plik android_dpinw.js obsługuje proces inwentaryzacji w aplikacji mobilnej dla systemu magazynowego. Skrypt umożliwia użytkownikowi rejestrowanie i edycję pozycji inwentaryzacyjnych, obsługę skanowania kodów EAN oraz wprowadzanie ilości dla wybranych artykułów.

Funkcja MojaOnLoad()

Główna funkcja odpowiedzialna za inicjalizację formularza inwentaryzacji. W jej ramach:

  1. Tworzy dynamiczny interfejs użytkownika.
  2. Ładuje numer inwentaryzacji oraz listę dostępnych dokumentów.
  3. Obsługuje kolejne kroki rejestracji pozycji inwentaryzacyjnych.
  4. Dodaje funkcjonalność automatycznego wybierania pola do edycji.

Struktura formularza inwentaryzacji

Formularz składa się z kilku etapów:

STEP_REFNO – Wybór numeru inwentaryzacji

  • Użytkownik wprowadza numer inwentaryzacji.
  • System pobiera dostępne dokumenty powiązane z inwentaryzacją.

STEP0 – Wybór lokalizacji

  • Wprowadzenie numeru lokalizacji.
  • System weryfikuje, czy lokalizacja jest aktywna i dostępna do inwentaryzacji.

STEP1 – Skanowanie kodu EAN

  • Wprowadzenie kodu EAN artykułu.
  • System pobiera indeks i nazwę asortymentu.

STEP2 – Wprowadzenie numeru serii

  • Jeśli produkt posiada numer serii, użytkownik musi go wprowadzić.

STEP3 – Wprowadzenie terminu ważności

  • System pozwala na wybór terminu ważności produktu.

STEP4 – Wprowadzenie ilości

  • Użytkownik wpisuje ilość artykułów w danej lokalizacji.

Obsługa zdarzeń użytkownika

Skrypt monitoruje interakcje użytkownika i reaguje na:

  • Wpisanie numeru lokalizacji – sprawdza, czy lokalizacja jest aktywna.
  • Wpisanie kodu EAN – pobiera informacje o produkcie.
  • Wprowadzenie numeru serii – jeśli wymagane, otwiera kolejne kroki formularza.
  • Wybór terminu ważności – automatycznie przechodzi do wpisania ilości.
  • Wprowadzenie ilości – zapisuje pozycję w bazie.

Funkcja savePosition()

Obsługuje zapis danych inwentaryzacyjnych do bazy:

  1. Sprawdza, czy wszystkie wymagane pola są wypełnione.
  2. Weryfikuje, czy produkt jest na stanie.
  3. Generuje zapytanie SQL do zapisania pozycji.
  4. Jeśli zapis się powiódł, resetuje formularz i pozwala na wprowadzenie kolejnej pozycji.

Podsumowanie

Plik android_dpinw.js to kluczowy moduł aplikacji mobilnej do inwentaryzacji magazynowej. Umożliwia użytkownikom skanowanie kodów EAN, wprowadzanie ilości i numerów serii oraz zapis danych w systemie. Dzięki dynamicznemu interfejsowi ułatwia i przyspiesza proces inwentaryzacji.

Skrypt android_dpinw.js

Skrypt android_dpinw.js jest dedykowany interfejsowi mobilnemu, przeznaczonemu dla magazyniera korzystającego z systemu Studio WMS.net. Jego głównym celem jest ułatwienie rejestrowania operacji inwentaryzacyjnych poprzez wieloetapowy formularz, który umożliwia między innymi wprowadzanie numeru inwentaryzacji, lokalizacji magazynowej, kodu EAN asortymentu, a także danych dodatkowych, takich jak numer serii, termin ważności czy ilość. Poniżej przedstawiono szczegółowy opis działania skryptu.


1. Inicjalizacja i dynamiczne generowanie formularza

W momencie wywołania funkcji MojaOnLoad() skrypt:

  • Tworzy strukturę formularza – za pomocą składanej zmiennej tekstowej cTekst dynamicznie generowany jest kod HTML, który jest następnie wstawiany do kontenera o identyfikatorze formularz. Formularz dzielony jest na kilka „kroków” (STEP), z których każdy odpowiada za zbieranie określonych informacji:
    • STEP_REFNO: Początkowy etap, w którym magazynier wprowadza numer inwentaryzacji (pole NRZLECENIA) oraz widzi listę dostępnych dokumentów (lista zleceń) pobieraną z bazy.
    • STEP0: Etap związany z wprowadzeniem lokalizacji magazynowej (pole ADRES). Po weryfikacji wprowadzonych danych (np. czy lokalizacja istnieje, czy jest aktywna, czy objęta inwentaryzacją) zostaje zapisany identyfikator lokalizacji (pole NRIDWMS).
    • STEP1: W tej części użytkownik podaje kod EAN asortymentu (EANASN), co pozwala na pobranie danych identyfikacyjnych produktu (np. numeru identyfikatora asortymentu – NRIDASN).
    • STEP2: Formularz prezentuje dane asortymentu w trybie tylko do odczytu – nazwę asortymentu (NAZWAAS), indeks (INDEKS) – oraz umożliwia wprowadzenie numeru serii (NRSERII).
    • STEP3: Umożliwia określenie terminu ważności asortymentu, wykorzystując mobilny kontroler typu DatePicker (TERMINWAZNOSCI).
    • STEP4: Na koniec użytkownik wprowadza ilość asortymentu (ILOSC).
  • Interfejs użytkownika – formularz kończy się przyciskiem „Zakończ”, który po kliknięciu wywołuje funkcję zamykającą formularz (funkcja closeWindow()), oraz specjalnym elementem preloadera, wyświetlanym podczas przetwarzania danych.

Po wygenerowaniu struktury formularza wykonywane są dodatkowe operacje:

  • Wywoływana jest funkcja setOrderList(), która pobiera listę zleceń do realizacji z bazy danych i wyświetla ją w obszarze przeznaczonym na listę dokumentów.
  • Funkcja ssTlumaczenie() odpowiada za przetłumaczenie interfejsu na odpowiedni język.
  • Ustawiany jest focus na pole wprowadzania numeru inwentaryzacji, co usprawnia pierwsze kroki operacyjne magazyniera.

2. Obsługa zdarzeń i walidacja wprowadzanych danych

Skrypt intensywnie wykorzystuje mechanizm zdarzeń (event handling), aby zapewnić intuicyjną i responsywną obsługę formularza. Funkcja addEvents() przypisuje odpowiednie akcje do poszczególnych pól formularza:

  • Numer inwentaryzacji (NRZLECENIA):
    • Na zdarzenie keyup reaguje w szczególności naciśnięciem klawisza Enter.
    • Wprowadzone dane są weryfikowane – skrypt rozróżnia, czy numer został wpisany ręcznie, czy też pochodzi z odczytu (np. zeskanowany kod).
    • Po zatwierdzeniu numeru wywoływane są zapytania do bazy (przy użyciu funkcji ssDataSQL()) w celu pobrania szczegółowych danych dokumentu. W wyniku poprawnej weryfikacji pole zostaje zablokowane, lista zleceń ukryta, a widoczny zostaje kolejny etap – wprowadzanie lokalizacji.
  • Lokalizacja magazynowa (ADRES):
    • Po wprowadzeniu lokalizacji i naciśnięciu Enter wykonywana jest seria zapytań w celu sprawdzenia, czy podany adres jest poprawny, aktywny oraz objęty inwentaryzacją.
    • W przypadku pozytywnej weryfikacji, zapisywany jest identyfikator lokalizacji (pole NRIDWMS), a użytkownik przechodzi do etapu wprowadzania kodu EAN.
  • Kod EAN asortymentu (EANASN):
    • Po zatwierdzeniu kodu EAN, skrypt pobiera z bazy dane dotyczące asortymentu (takie jak indeks oraz nazwę asortymentu).
    • Na podstawie dodatkowych zapytań określa się, czy pozycja była już wcześniej liczona – wówczas przełączany jest tryb aktualizacji (update mode), który pozwala na modyfikację już istniejących danych. W przeciwnym razie skrypt przechodzi do trybu wstawiania nowej pozycji.
    • W zależności od wyniku operacji, użytkownik jest kierowany do etapu wprowadzania numeru serii lub bezpośrednio do kolejnych kroków (termin ważności oraz ilość).
  • Numer serii (NRSERII), termin ważności (TERMINWAZNOSCI) i ilość (ILOSC):
    • Każde z tych pól reaguje na naciśnięcie klawisza Enter, co powoduje wyświetlenie kolejnego etapu formularza oraz automatyczne przewinięcie zawartości, aby użytkownik miał dostęp do kolejnych pól.
    • Po wprowadzeniu ilości, wywoływana jest funkcja savePosition(), która kończy proces wprowadzania danych dla danej pozycji.

3. Przetwarzanie i zapis danych

Funkcja savePosition() odgrywa kluczową rolę w finalizacji operacji:

  • Weryfikacja danych:
    • Skrypt sprawdza, czy wszystkie wymagane pola zostały poprawnie wypełnione (mechanizm walidacji z użyciem funkcji JqxTestWypelnienia()).
  • Pobieranie dodatkowych danych:
    • W oparciu o identyfikator asortymentu wykonywane są kolejne zapytania SQL (np. w celu pobrania numeru palety oraz kodu palety) – jest to niezbędne do prawidłowego zapisania operacji inwentaryzacyjnej.
  • Kompilacja parametrów i zapis:
    • Dane z poszczególnych pól (numer inwentaryzacji, identyfikatory dokumentu, lokalizacji, asortymentu, numer serii, termin ważności oraz ilość) są łączone w jeden ciąg parametrów.
    • Następnie, przy użyciu funkcji ssExSQL(), wysyłane są do bazy danych odpowiednie zapytanie, które zapisuje lub aktualizuje pozycję inwentaryzacyjną.
  • Obsługa wyniku operacji:
    • W przypadku wystąpienia błędów system wyświetla komunikat za pomocą JqxAlert().
    • Po pomyślnym zapisaniu danych formularz jest resetowany (za pomocą funkcji clearPage()), co umożliwia dalsze wprowadzanie kolejnych pozycji.

4. Obsługa trybu aktualizacji i wstawiania pozycji

Skrypt rozróżnia dwa główne scenariusze:

  • Tryb wstawiania (insert mode):
    • Gdy dany kod EAN nie został jeszcze zarejestrowany dla danej lokalizacji, użytkownik jest kierowany do wprowadzenia numeru serii, terminu ważności oraz ilości nowego asortymentu (funkcja insertPosition()).
  • Tryb aktualizacji (update mode):
    • Jeśli pozycja została już wcześniej policzona, skrypt automatycznie pobiera istniejące dane (np. ilość, numer serii, termin ważności) z bazy danych i wyświetla je użytkownikowi.
    • W takiej sytuacji użytkownik ma możliwość potwierdzenia zmiany lub modyfikacji pozycji – w przypadku modyfikacji wywoływana jest funkcja changePosition(), która odpowiednio dostosowuje interfejs i wprowadza niezbędne zmiany.

5. Dodatkowe funkcjonalności i mechanizmy ułatwiające pracę

  • Obsługa zdarzeń i prewencja wielokrotnego przetwarzania:
    • Za pomocą zmiennej isProcessing skrypt kontroluje, aby kolejne zdarzenia (np. naciśnięcie klawisza Enter) nie były wykonywane równolegle, co zabezpiecza przed błędami wynikającymi z wielokrotnego wywołania tych samych operacji.
  • Automatyczne przewijanie formularza:
    • Funkcja scrollToEndOfPage() zapewnia, że nowe pola formularza stają się widoczne na ekranie, co jest szczególnie istotne w interfejsie mobilnym.
  • Resetowanie pól i czyszczenie formularza:
    • Funkcja clearPage() umożliwia szybkie wyczyszczenie lub zresetowanie wybranych pól, co pomaga w obsłudze błędów lub w przypadku potrzeby ponownego wprowadzenia danych.
  • Zakończenie operacji:
    • Funkcja closeWindow() służy do zamknięcia interfejsu i odświeżenia strony głównej, umożliwiając magazynierowi kontynuowanie pracy po zakończeniu operacji.

Podsumowanie

Skrypt android_dpinw.js stanowi kompleksowe narzędzie wspierające pracę magazyniera w systemie Studio WMS.net. Dzięki niemu:

  • Użytkownik wprowadza dane inwentaryzacyjne krok po kroku, korzystając z intuicyjnie zaprojektowanego interfejsu mobilnego.
  • System weryfikuje poprawność wprowadzonych informacji (np. numer inwentaryzacji, lokalizacja, kod EAN) poprzez serię zapytań do bazy danych.
  • Skrypt rozróżnia tryby wstawiania nowej pozycji oraz aktualizacji istniejącej, umożliwiając elastyczną obsługę operacji.
  • Mechanizmy takie jak automatyczne przewijanie, blokowanie wielokrotnego przetwarzania oraz czytelne komunikaty błędów zapewniają wysoką użyteczność i efektywność pracy.

Dzięki zastosowaniu powyższych rozwiązań, system Studio WMS.net zapewnia magazynierowi nowoczesne i intuicyjne narzędzie do zarządzania inwentaryzacją, podnosząc tym samym efektywność oraz precyzję operacyjną w magazynie.

Czytaj więcej:

  • android_dpmag_mm_aso

    Skrypt android_dpmag_mm_aso.js stanowi kluczowy element mobilnego interfejsu użytkownika w systemie Studio WMS.net, dedykowanym obsłudze dokumentów MM (magazynowych). Jego głównym zadaniem jest zarządzanie procesem przyjęcia lub wydania towaru w ramach operacji magazynowych, przy czym uwzględnia zarówno tryb przyjęcia, jak i wydania. Poniżej przedstawiono szczegółowy opis funkcjonalności oraz mechanizmów, jakie zostały zaimplementowane w tym module.

    Transakcje WMS

  • android_dpmag_pzb

    Skrypt android_dpmag_pzb.js stanowi zaawansowany moduł mobilnego interfejsu w systemie Studio WMS.net, dedykowany operacjom przyjęcia towaru (PZB). Jego zadaniem jest umożliwienie magazynierowi kompleksowej obsługi dokumentu przyjęcia, począwszy od wprowadzenia numeru dokumentu, poprzez identyfikację asortymentu za pomocą kodu EAN

    Transakcje WMS

  • android_dpmag_zl_as

    Skrypt android_dpmag_wzb.js to zaawansowany moduł mobilnego interfejsu w systemie Studio WMS.net, dedykowany obsłudze operacji wydania towaru w ramach dokumentów typu „WZB”. Jego głównym celem jest przeprowadzenie magazyniera przez proces realizacji dokumentu – od wprowadzenia numeru dokumentu, poprzez identyfikację pozycji przy użyciu kodu EAN, aż do zatwierdzenia operacji wraz z rejestracją szczegółowych danych dotyczących partii, palet

    Transakcje WMS

  • android_dpmag_zl_pal

    android_dpmag_wzb.js umożliwia szybkie i przejrzyste wydanie towaru. System łączy w sobie dynamiczne wprowadzanie danych, aktywną walidację oraz intuicyjną nawigację. Dzięki temu magazynier pracuje sprawnie, a operacje wydania realizuje z minimalnym ryzykiem pomyłek.

    Transakcje WMS

  • 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.

    Transakcje WMS