System zarządzania odzieżą roboczą a arkusz kalkulacyjny

Arkusz kalkulacyjny zapisuje stan w chwili, gdy ktoś go uzupełni. System zarządzania odzieżą roboczą zapisuje zdarzenia: przyjęcie na magazyn, wydanie, zwrot, przekazanie do prania. Stan sortu wynika z tych zdarzeń, więc nie można go zmienić bez śladu w historii.

Różnica widoczna jest przy kontroli albo inwentaryzacji. Arkusz podaje, że pracownik ma dwie pary butów, ale nie wskaże, która wydana była pierwsza ani czy zwrócono poprzednią. Historia zdarzeń pozwala odtworzyć każdy z tych faktów na podstawie dokumentów.

ObszarArkusz kalkulacyjnySystem zarządzania odzieżą
Zapis stanuWartość wpisana ręcznie w komórkęWynik zatwierdzonych dokumentów ruchu sortu
Termin wymianyData liczona formułą lub z pamięciTermin wyliczany z normy przydziału i daty wydania
Historia zmianBrak, chyba że plik jest wersjonowanyKażde zdarzenie ma datę i dokument źródłowy
Praca kilku osóbKonflikty przy jednoczesnej edycjiTransakcje bazy danych porządkują równoległe wydania
UprawnieniaDostęp do całego plikuRole przypisane do operacji, np. wydanie albo wycofanie

Reguła: stan sortu nie jest polem do ręcznej edycji. Zmienia się wyłącznie dokumentem ruchu sortu, a każdy dokument wskazuje osobę, która go zatwierdziła.

Zasady przydziału i okresy używalności opisuje osobna strona o normach wydawania odzieży i terminach wymiany, a obowiązki pracodawcy wobec odzieży i obuwia roboczego omawia artykuł o ewidencji odzieży roboczej w przedsiębiorstwach. Ta strona zajmuje się mechaniką: jakie stany przyjmuje sztuka odzieży i co je zmienia.

Stany egzemplarza od przyjęcia do wycofania

Model stanów

Sztukę odzieży opisuje niewielki automat stanów. Każdy stan ma dokument, który do niego prowadzi, i wpływa na to, czy sztuka jest widoczna jako dostępna w stanach magazynowych.

StanZnaczenieDokument zmieniający stanWpływ na dostępność
W magazynieSztuka leży na półce i czeka na wydaniePrzyjęcie od dostawcy albo zwrot od pracownikaWchodzi do stanu dostępnego
WydanySztuka jest w użytkowaniu u pracownikaWydanie pracownikowiZnika ze stanu dostępnego, startuje okres używalności
W praniuSztuka jest u usługodawcy zewnętrznegoPrzekazanie do pralniNiedostępna do czasu odbioru
W naprawieSztuka czeka na krawca albo serwisPrzekazanie do naprawyNiedostępna do czasu odbioru
WycofanySztuka zużyta lub zagubionaDokument wycofania z podanym powodemTrwale poza stanem, ślad zostaje w historii

Przejście z wycofanego z powrotem do magazynu jest niedozwolone. Jeżeli wycofano sztukę omyłkowo, korektę robi się osobnym dokumentem, a nie edycją stanu.

Reguła: każda zmiana stanu powstaje z dokumentu, a dokument zapisuje się razem ze zmianą stanu w jednej transakcji bazy danych.

Poniższy szkic pokazuje, jak tę regułę zapisuje się w bazie SQL Server. Nazwy tabel i kolumn są przykładowe i nie odwzorowują schematu żadnego produktu.

-- przykładowy schemat egzemplarza
CREATE TABLE dbo.SortEgzemplarz (
    EgzemplarzId   INT IDENTITY(1,1) PRIMARY KEY,
    Kod            NVARCHAR(40) NOT NULL UNIQUE,
    AsortymentId   INT NOT NULL,
    Stan           TINYINT NOT NULL DEFAULT 1,
    PracownikId    INT NULL,
    DataWydania    DATE NULL,
    CONSTRAINT CK_SortEgzemplarz_Stan CHECK (Stan BETWEEN 1 AND 5)
);

Wydanie zapisuje się jako jedna transakcja. Warunek Stan = 1 w klauzuli WHERE i zmiana stanu odbywają się w jednej instrukcji, więc dwie sesje nie wydadzą tej samej sztuki dwukrotnie. Gdy żaden wiersz nie spełnia warunku, procedura zgłasza błąd instrukcją THROW w języku T-SQL, a aplikacja pokazuje magazynierowi czytelny komunikat zamiast cichego zapisu.

CREATE PROCEDURE dbo.WydajSort
    @Kod NVARCHAR(40),
    @PracownikId INT
AS
BEGIN
    SET NOCOUNT ON;
    BEGIN TRANSACTION;

    UPDATE dbo.SortEgzemplarz
       SET Stan = 2,
           PracownikId = @PracownikId,
           DataWydania = CAST(SYSDATETIME() AS DATE)
     WHERE Kod = @Kod AND Stan = 1;

    IF @@ROWCOUNT = 0
    BEGIN
        ROLLBACK TRANSACTION;
        THROW 50001, N'Sztuka nie jest dostępna do wydania.', 1;
    END;

    -- w tym miejscu zapis dokumentu wydania w tabeli zdarzeń
    COMMIT TRANSACTION;
END;
Pracownik w czapce i granatowym kombinezonie roboczym z rękawicami przy elementach maszyny, ilustracja odzieży roboczej w użyciu
Sztuka w stanie Wydany: od daty wydania pracownikowi liczy się okres używalności

Identyfikacja sortu - kod kreskowy i RFID

Ewidencja może działać na dwóch poziomach szczegółowości. Poziom asortymentu opisuje typ i rozmiar, na przykład kurtkę w rozmiarze L. Poziom egzemplarza opisuje konkretną kurtkę z własnym identyfikatorem i własną historią.

  • Ewidencja ilościowa - system liczy sztuki danego asortymentu w magazynie i u pracowników, ale nie odróżnia dwóch identycznych kurtek.
  • Ewidencja egzemplarzowa - każda sztuka ma kod, więc można ją prześledzić przez pralnię i naprawę.

Odzież masowa o krótkim cyklu życia zwykle nie wymaga znakowania indywidualnego. Egzemplarz warto oznaczyć tam, gdzie liczy się termin ważności albo liczba cykli prania. Dotyczy to kasków i odzieży ochronnej z powłokami trudnopalnymi lub odblaskowymi.

Identyfikatorem jest etykieta z kodem kreskowym lub znacznik RFID, o czym mówi także opis tagów RFID w narzędziowni. Kod egzemplarza musi być unikalny i niezmienny przez cały okres życia sztuki. Nie powinien zawierać rozmiaru ani nazwiska użytkownika, bo te dane się zmieniają. Kod służy wyłącznie jako klucz, a atrybuty sztuki przechowuje kartoteka.

CechaKod kreskowyZnacznik RFID
Warunek odczytuEtykieta widoczna dla skaneraOdczyt radiowy bez kontaktu wzrokowego
Odczyt wielu sztukKolejno, jedna po drugiejMożliwy zbiorczy odczyt całej partii, np. po powrocie z pralni
Trwałość przy praniuZależy od materiału etykietyZależy od typu wszywki, należy sprawdzić deklarację producenta
Koszt pojedynczej sztukiNiższyWyższy

Kanały wydania odzieży i ŚOI

Sposób wydania decyduje o tym, jak potwierdza się pobranie. Studio TCS.net rejestruje wydania w okienku i współpracuje z automatami vendingowymi, a wydania zbiorcze na brygadę wymagają dodatkowej dyscypliny po stronie kierownika.

Kanał wydaniaPrzebiegOgraniczenie
Okienko wydańMagazynier skanuje kartę pracownika i kod sortu, a system zapisuje wydanieWymaga obsady stanowiska w godzinach pracy zmian
Automat vendingowyPracownik pobiera sort na kartę identyfikacyjną bez udziału magazynieraAutomat musi przekazywać do systemu zdarzenie pobrania z numerem karty
Wydanie zbiorcze na brygadęKierownik zmiany odbiera zestaw dla całej grupyEwidencja indywidualna jest mniej precyzyjna, dopóki zestawu nie rozpisze się na osoby

Przy każdym kanale system porównuje liczbę dotychczas wydanych sortów danego rodzaju z limitem przydziału. Limit i harmonogram wydań przypisuje się pracownikowi indywidualnie, a zestaw przysługujący na stanowisku wynika z normy. Więcej o kartotece pracownika opisuje strona o modułach ewidencji pracowników w Studio TCS.net.

Reguła: wydanie ponad limit wymaga wskazania powodu, na przykład zniszczenia sortu w pracy, oraz zatwierdzenia przez osobę z odpowiednią rolą.

Mężczyzna w granatowej kurtce roboczej z pomarańczowymi wstawkami trzyma tablet przy regale z częściami w magazynie
Wydanie ze skanowaniem kodu na stanowisku z urządzeniem mobilnym, krok potwierdzenia pobrania

Skanowanie na urządzeniu mobilnym działa tak samo jak w innych procesach magazynowych. Zasady pracy na terminalu opisuje strona o aplikacji magazynowej na Androidzie, a przegląd kartotek pracownika i sortu znajduje się w portalu o sortach odzieżowych w programie TCS.net.

Terminy wymiany i powiadomienia

Termin wymiany wynika z kilku źródeł, a system wybiera wcześniejszy z nich. Okres używalności z normy zakładowej liczy się od daty wydania. Termin ważności podaje producent środka ochrony indywidualnej.

Źródło terminuSkąd pochodzi dataPrzykład sortu
Okres używalnościNorma przydziału i data wydaniaBluza robocza, obuwie
Termin ważności producentaData z etykiety lub instrukcjiKask, filtr do maski
Liczba cykli praniaLicznik zdarzeń praniaOdzież trudnopalna lub odblaskowa
Stan technicznyZgłoszenie uszkodzeniaDowolny sort

System rejestruje daty ważności i terminy wymian dla każdego środka ochrony indywidualnej, a o zbliżającym się terminie powiadamia magazyniera i pracownika. Mechanizm da się opisać zapytaniem. Poniższe zestawienie wybiera sztuki wydane, których termin wymiany przypada w ciągu najbliższych 30 dni; długość okna jest parametrem.

SELECT p.Nazwisko, a.Nazwa, e.Kod, w.TerminWymiany
FROM dbo.SortEgzemplarz AS e
JOIN dbo.Pracownik  AS p ON p.PracownikId  = e.PracownikId
JOIN dbo.Asortyment AS a ON a.AsortymentId = e.AsortymentId
CROSS APPLY (
    SELECT MIN(t) AS TerminWymiany
    FROM (VALUES (e.TerminWaznosci), (e.TerminUzywalnosci)) AS v(t)
) AS w
WHERE e.Stan = 2
  AND w.TerminWymiany <= DATEADD(DAY, 30, CAST(SYSDATETIME() AS DATE))
ORDER BY w.TerminWymiany;

Funkcja MIN pomija wartości NULL, więc sztuka bez terminu ważności producenta dostaje termin z normy. Wynik takiego zestawienia zasila powiadomienia, a w praktyce uruchamia się je cyklicznie, na przykład zadaniem SQL Agent raz na dobę.

Mężczyzna z brodą w niebieskim kasku i żółtych okularach ochronnych przy maszynie, ilustracja środków ochrony indywidualnej z terminem ważności
Kask i okulary ochronne jako sorty z terminem ważności, który system porównuje z datą bieżącą

Pranie i wycofanie sortu z użycia

Przekazanie do pralni jako dokument

Odzież przekazana do prania jest czasowo niedostępna i musi być tak pokazana w stanach. Przekazanie i odbiór partii dokumentuje się z liczbą sztuk w podziale na asortyment. Rozbieżność wykryta przy odbiorze powinna trafić do zgłoszenia od razu, bo po kilku dniach ustalenie odpowiedzialności bywa niemożliwe.

Przy ewidencji egzemplarzowej rozliczenie jest prostsze, ponieważ system wskaże konkretne kody, które nie wróciły. Przy ewidencji ilościowej różnicę widać tylko jako liczbę, którą trzeba wyjaśnić na podstawie dokumentów przekazania. Partie do prania warto więc zamykać w systemie tego samego dnia, w którym fizycznie opuszczają magazyn.

Liczba cykli prania

Odzież o właściwościach ochronnych, takich jak trudnopalność czy odblaskowość, traci je po określonej liczbie cykli prania. Licznik prowadzi się na poziomie egzemplarza, a jego limit pochodzi z zaleceń producenta. Sposób prania także musi być zgodny z tymi zaleceniami, bo niewłaściwe środki niszczą powłoki szybciej niż eksploatacja; warunek ten warto zapisać w umowie z usługodawcą.

Reguła: licznik cykli prania rośnie dopiero po potwierdzeniu odbioru partii z pralni, a nie w chwili jej wysłania.

Wycofanie i rozliczenie różnic

Wycofanie z użytkowania ma własny dokument z podanym powodem. Bez niego sztuka znika ze stanu bez wyjaśnienia, a różnica trafia do braków. Rozliczenie z pracownikiem, jeżeli w ogóle jest potrzebne, wymaga decyzji pracodawcy zgodnej z obowiązującymi przepisami.

  • Zużycie naturalne - sztuka osiągnęła koniec okresu używalności, wycofanie nie wymaga dalszych działań.
  • Zniszczenie w pracy - dokument wycofania wskazuje okoliczności, a nowy sort wydaje się poza limitem za zgodą uprawnionej osoby.
  • Zagubienie - wymaga decyzji o rozliczeniu sztuki z pracownikiem, zgodnej z przepisami.
  • Koniec ważności - dotyczy sortów z terminem producenta, wycofanie następuje niezależnie od stanu wizualnego.

Uprawnienia i ślad audytowy operacji

Ewidencja odzieży zawiera dane osobowe pracowników i informacje, które mogą posłużyć w sporze o rozliczenie sortu. Z tego powodu uprawnienia rozdziela się według czynności, a dziennik zdarzeń traktuje jako zapis tylko do dołączania.

RolaDozwolone operacjeZakaz
MagazynierWydanie, zwrot, przekazanie do pralniWydanie ponad limit bez zatwierdzenia
Kierownik wydziałuZatwierdzenie wydania ponad limit, podgląd raportów swojego zespołuWycofanie sortu z magazynu głównego
Dział BHPZmiana norm przydziału, przegląd terminów ważnościEdycja historii zdarzeń
AdministratorKonfiguracja słowników i kontUsuwanie zapisanych zdarzeń

W bazie SQL Server niezmienność dziennika wymusza się uprawnieniami. Rola, w której działa aplikacja, może dopisywać wiersze do tabeli zdarzeń, ale nie może ich zmieniać ani kasować.

-- przykład: dziennik zdarzeń tylko do dołączania
GRANT SELECT, INSERT ON dbo.SortZdarzenie TO RolaAplikacji;
DENY UPDATE, DELETE ON dbo.SortZdarzenie TO RolaAplikacji;

Korekta błędnego zdarzenia polega wtedy na dodaniu zdarzenia odwracającego, a nie na usunięciu oryginału. Ślad zostaje w historii, co ułatwia wyjaśnienie różnic przy kontroli oraz przy rozmowie z pracownikiem o rozliczeniu.

Integracja z magazynem i raportami

Sort przyjęty od dostawcy trafia na stan magazynowy z podziałem na rozmiary. Przy współpracy z systemem magazynowym wydania i zwroty odzieży aktualizują stany magazynowe bez wielokrotnego wpisywania tych samych danych. Wymianę stanów i rezerwacji między systemami opisuje strona o integracji systemów magazynowych.

Pracownika ewidencja zna z kartoteki, w której stoi stanowisko oraz historia przydziałów. Przy zmianie stanowiska zmienia się norma przydziału, a przy odejściu z firmy obiegówka powinna zawierać listę sortów do zwrotu. Podobny obieg wydań i zwrotów dla narzędzi opisuje strona o wypożyczaniu narzędzi z magazynu.

RaportPytanie, na które odpowiadaOdbiorca
Terminy wymiany w wybranym horyzoncieKto i kiedy potrzebuje nowego sortuDział BHP, kierownik wydziału
Pracownicy bez kompletuCzy norma przydziału jest wypełnionaKierownik wydziału
Zestawienie ilościowo-wartościoweIle sortów wydano i za jaką wartośćZakupy, controlling
Sztuki bez dokumentu wycofaniaCzy w stanach są luki bez wyjaśnieniaAudyt wewnętrzny
Wskazówka

Przy pierwszym wdrożeniu warto zacząć od ewidencji sortów o krótkim terminie ważności, na przykład filtrów i rękawic, a dopiero potem objąć systemem odzież o dłuższym cyklu życia. Dział BHP szybciej zobaczy wtedy efekt automatycznych powiadomień o wymianie. Konfigurację danych początkowych opisuje strona o systemach do ewidencji odzieży roboczej.