StudioSystem

Zmiana lokalizacji - jqs_dpmag_zl.js - element platformy StudioSystem

Skrypt jqs_dpmag_zl.js realizuje pełen cykl zarządzania dokumentem zmiany lokalizacji w magazynie, od dodawania pozycji, przez edycję, aż po zatwierdzanie i usuwanie.

studiosystem.softwarestudio.com.pl/transakcje/
Widok całego formularza
Widok całego formularza

Skrypt jqs_dpmag_zl.js obsługuje funkcjonalność zmiany lokalizacji w magazynie w ramach platformy StudioSystem. Jest to interfejs kliencki, który umożliwia użytkownikom wprowadzanie, modyfikowanie i zatwierdzanie dokumentów zmiany lokalizacji w magazynie (typ dokumentu „ZL”).

Skrypt jqs_dpmag_zl.js realizuje pełen cykl zarządzania dokumentem zmiany lokalizacji w magazynie, od dodawania pozycji, przez edycję, aż po zatwierdzanie i usuwanie. Jego elastyczność pozwala na dynamiczne generowanie interfejsu oraz integrację z bazą danych w czasie rzeczywistym. Dzięki temu narzędzie jest intuicyjne i dostosowane do potrzeb użytkowników magazynowych.

Mechanizm pobierania parametrów z adresu URL

Funkcja rozpoczyna się od pobrania dwóch istotnych parametrów z adresu strony internetowej. Wykorzystuje w tym celu metodę getParameterFromUrl, która analizuje ciąg znaków w poszukiwaniu określonych wartości. W przypadku braku parametrów 'prx’ lub 'typdok’ w adresie, automatycznie przypisuje im domyślną wartość 'ZL’. Ten mechanizm zabezpiecza przed błędami wynikającymi z niekompletnych danych wejściowych.

Logika generowania interfejsu użytkownika

Podczas ładowania strony wywoływana jest funkcja MojaOnLoad odpowiedzialna za dynamiczne tworzenie zawartości dokumentu. Skrypt konstruuje tekst nagłówka i stopki dokumentu, jednocześnie sprawdzając konfigurację parametrów. Warto zauważyć, że gdy parametr 'prx’ posiada wartość 'ZL’, system celowo ukrywa część interfejsu poprzez ustawienie flagi ukryjStrone na true. Takie rozwiązanie pozwala na elastyczne dostosowywanie widoczności elementów w zależności od kontekstu użycia.

Zabezpieczenia i kontrola dostępu

Analiza kodu ujawnia wbudowane mechanizmy zabezpieczające przed nieautoryzowanymi modyfikacjami. Dokument po zatwierdzeniu blokuje możliwość edycji, co wyraźnie wynika z komentarza w kodzie źródłowym. Dodatkowo sprawdzanie typów danych przy pomocy operatora typeof zapobiega błędom wykonania w przypadku nieoczekiwanych wartości parametrów. Te zabezpieczenia działają podobnie jak system kontroli wersji w dokumentach biurowych.

System implementuje dwustopniową weryfikację parametrów wejściowych, najpierw próbując je odczytać z URL, a następnie ustawiając wartości domyślne. Takie podejście przypomina działanie zaworów bezpieczeństwa w instalacjach przemysłowych, gdzie redundancja zwiększa niezawodność. Wykorzystanie zmiennej cTekst do budowy interfejsu pokazuje zastosowanie techniki stopniowego komponowania elementów wizualnych.

Podsumowując, skrypt pełni rolę inteligentnego kontrolera dokumentów magazynowych, automatycznie adaptując się do przekazanych parametrów. Zapewnia spójną obsługę różnych scenariuszy użytkowych dzięki połączeniu elastycznych ustawień i sztywnych zabezpieczeń. Rozwiązania implementowane w kodzie wykazują podobieństwa do systemów zarządzania konfiguracją w oprogramowaniu przedsiębiorstw.

Inicjalizacja i załadowanie strony

  • Na początku skrypt pobiera parametry URL, takie jak prx (rodzaj rejestru) i typdok (typ dokumentu). Jeśli są one nieokreślone, przypisuje im wartości domyślne (ZL).
  • Funkcja MojaOnLoad() inicjalizuje dane i generuje dynamicznie treść formularza na stronie:
    • Sekcja nagłówka (ssDokumentHeader) zawiera przyciski takie jak „Zapisz”, „Bufor” i „Usuń”.
    • Sekcja ciała dokumentu (ssDokumentBody) zawiera pola wejściowe, takie jak numer wewnętrzny dokumentu, magazynier, uwagi oraz pozycje zmiany lokalizacji.

Dodawanie pozycji do dokumentu

  • Użytkownik wypełnia dane w formularzu i klika przycisk „Dodaj”. Funkcja btnDodaj() odpowiada za:
    • Walidację wymaganych pól za pomocą JqxTestWypelnienia.
    • Przygotowanie parametrów zapytania (cPar) na podstawie wprowadzonych danych, takich jak:
      • Lokalizacja początkowa i docelowa (NRIDWMS, NRIDWMS2).
      • Uwagi (UWAGIPOZ).
    • Wywołanie zapytania SQL z identyfikatorem 4E803725-F39F-4D7B-9756-49529FEFB17C, które dodaje pozycję do bazy danych.
    • Odświeżenie tabeli pozycji w dokumencie za pomocą UstawPositionTable().

Edycja dokumentu

  • Funkcja UstawStrone() obsługuje wczytywanie istniejącego dokumentu:
    • Na podstawie identyfikatora referencyjnego (gcRefno) pobiera dane z bazy za pomocą zapytania SQL.
    • Jeśli dokument jest zatwierdzony, użytkownik nie ma możliwości edycji, a strona wyświetla stosowny komunikat.

Zatwierdzanie dokumentu

  • Funkcja Zapisz(cACH) umożliwia zatwierdzenie dokumentu:
    • Parametr cACH określa status dokumentu (np. zatwierdzony lub w buforze).
    • Funkcja confirmFunctionZapisz(cACH) tworzy zapytanie SQL z identyfikatorem 65847972-FE1E-47A2-8241-FF17460642AD, które aktualizuje dokument w bazie.

Obsługa widoku tabeli

  • UstawPositionTable() pobiera dane o pozycjach dokumentu z bazy za pomocą zapytania SQL (BD828F40-4A66-4890-9026-5F16A9D8B6B2).
  • Tabela wyświetla szczegóły każdej pozycji, takie jak:
    • Indeks, nazwa, lokalizacja, ilość, uwagi, daty ważności i produkcji.
  • Użytkownik może usuwać pozycje bezpośrednio z tabeli dzięki ikonkom usuwania przy każdej pozycji.

Dodatkowe funkcjonalności

  • Skrypt obsługuje także:
    • Przeglądanie załączników (btnFiles()).
    • Dodawanie zdjęć (btnFotos()).
    • Dodawanie notatek (btnNotatki()).
    • Przeglądanie usług magazynowych (btnDpmagUslugi()).

Opis działania

Transakcja uruchamia formularz składający się z dwóch sekcji:

  1. Zmiana miejsca składowania
  2. Pozycje
Widok całego formularza
Widok całego formularza

W pierwszej sekcji - Zmiana miejsca składowania określane są dane nagłówkowe identyfikujące dokument.

Sekcja Pozycje umożliwia dodawanie poszczególnych pozycji dokumentu. Po wybraniu palety oraz nowego miejsca składowania należy wybrać przycisk Dodaj, który zatwierdzi dodanie rekordu i zapisze pozycje przychodową oraz rozchodową w tabeli poniżej.
W celu usunięcia dodanej już pozycji należy wybrać czerwony znak X i zatwierdzić działanie.
Usuwając pozycję należy pamiętać, że zostaną anulowane wszystkie pozycje zarówno przychodowe, jak i rozchodowe o danym numerze palety.

Po uzupełnieniu pól i dodaniu pozycji do dokumentu zmiany lokalizacji można użyć jednego z trzech przycisków:

  1. Zapisz - umożliwia zatwierdzenie dokumentu.
  2. Bufor - zapisanie szkicu dokumentu , który może być modyfikowany i zapisany w późniejszym czasie.
  3. Usuń - anuluje zapis.

Tworząc dokument ZL możliwe jest bezpośrednie załącznie do dokumentu notatek, plików, załączników, zdjęć oraz usług magazynowych wybierając, któryś z dostępnych przycisków umieszczonych po lewej stronie (pod przyciskami Zapisz, Bufor, Usuń).

Uruchomienie

Aby formularz był widoczny w programie pierwszym krokiem jest dodanie skryptu do skorowidza JQS, gdzie należy podać kod oraz w kontrolce Uwagi parametry script (ścieżka, gdzie znajduje się skrypt) oraz scriptonload (funkcja, która ma zostać uruchomiona po włączeniu formularza).

Kolejnym krokiem jest wywołanie transakcji. Transakcja wywoływana jest z poziomu SUBMENU lub TOOLBARMENU z czterema parametrami:

  • kod - gdzie podawany jest kod transakcji ze skorowidza,
  • typdok - oznaczenie typdok dokumentu,
  • prx - prx dokumentu,
  • refno - identyfikator obiektu.

Przykład wywołania transakcji z parametrami:
…/role_sys/jqs.aspx?kod=WMS_DPMAG_ZL&typdok=ZL&prx=ZL&refno=

Poprawnie skonfigurowana transakcja pozwoli zapisać dokumenty do tabeli dpmag.

Chcesz zobaczyć Transakcje w działaniu?

Uruchom demo modułów StudioSystem i sprawdź platformę na żywo.