RAPORT WDROZENIA - MODUL MAGAZYN Projekt: Magazyn materialow (wlasny + powierzony) Data startu: 2026-02-14 Wersja raportu: 1.5 Legenda statusow: - NIE_ROZPOCZETY - W_TOKU - WERYFIKACJA - ZAKONCZONY - WSTRZYMANY ================================================================== PROCES STALY AKTUALIZACJI ================================================================== 1) Po kazdym kroku wdrozenia aktualizujemy `magazyn/progress_status.json`. 2) Po kazdym kroku dopisujemy wpis do dziennika w `magazyn/raport_wdrozenia.txt`. 3) `magazyn/postepy.html` czyta postep z `progress_status.json` (z fallbackiem lokalnym). 4) Zmiany statusow etapow nie sa juz utrzymywane recznie w kodzie HTML. ================================================================== PODSUMOWANIE ETAPOW ================================================================== 0) Fundament techniczny i separacja modulu Status: ZAKONCZONY Postep: 100% Priorytet: Krytyczny 1) Analiza procesow i slownik dokumentow Status: W_TOKU Postep: 70% Priorytet: Krytyczny 2) Model danych i rejestr ruchow materialowych Status: W_TOKU Postep: 72% Priorytet: Krytyczny 3) Dokumenty magazynowe PZ/MM/WZ/ZW/WZ-Z Status: W_TOKU Postep: 85% Priorytet: Krytyczny 4) Stany magazynowe i bilans (lokacje/ekipy) Status: WERYFIKACJA Postep: 100% Priorytet: Wysoki 5) Rozliczenia materialu zastepczego Status: WERYFIKACJA Postep: 100% Priorytet: Krytyczny 6) Integracja z raportami i zaciagami Status: NIE_ROZPOCZETY Postep: 0% Priorytet: Wysoki 7) UI terenowe (mobile-first) + walidacja Status: W_TOKU Postep: 50% Priorytet: Wysoki 8) Uprawnienia, audyt i log operacji magazynowych Status: NIE_ROZPOCZETY Postep: 0% Priorytet: Wysoki 9) Testy E2E, szkolenie i uruchomienie produkcyjne Status: NIE_ROZPOCZETY Postep: 0% Priorytet: Wysoki ================================================================== ETAP 0 - FUNDAMENT TECHNICZNY I SEPARACJA MODULU ================================================================== Cel: pelna odrebnosc magazynu od glownego systemu raportow. Checklist: [x] 1. Wydzielenie plikow modulu do osobnego katalogu `magazyn/` [x] 2. Osobne API modulu `magazyn/api/*` [x] 3. Osobna warstwa DB `magazyn/lib/db.php` [x] 4. Osobna baza SQLite `magazyn.db` [x] 5. Status modulu i inicjalizacja DB (`api/status.php`, `api/init.php`) [x] 6. Podpiecie modulu na stronie startowej (`index.html` -> `magazyn/index.html`) ================================================================== ETAP 1 - ANALIZA PROCESOW I SLOWNIK DOKUMENTOW ================================================================== Cel: zamknac zasady pracy magazynu i slownik operacji. Checklist: [x] 1. Definicja obiegu: przyjecie -> przesuniecie -> wydanie -> zwrot [x] 2. Definicja trybu "wydanie zastepcze" i dlugu materialowego [x] 3. Definicja podstawowych encji (operator, inwestycja, material, lokalizacja) [ ] 4. Definicja numeracji dokumentow [ ] 5. Definicja wymaganego minimum danych na dokumencie ================================================================== ETAP 2 - MODEL DANYCH I REJESTR RUCHOW ================================================================== Cel: stabilny model danych pod operacje terenowe i rozliczenia. Checklist: [x] 1. Tabele: material_documents, material_moves [x] 2. Tabele slownikowe: operators, investments, items, locations [x] 3. Tabela rozliczen: material_substitution_debts [x] 4. Indeksy dla wydajnosci list i filtrow [x] 5. Rozszerzenie cech materialu (kategorie, zrodlo, serial, barcode, QR, OCR) [ ] 6. Widoki pomocnicze pod szybkie raportowanie [ ] 7. Walidacja spojnosci jednostek i ilosci ================================================================== ETAP 3 - DOKUMENTY MAGAZYNOWE (PZ/MM/WZ/ZW/WZ-Z) ================================================================== Cel: uruchomic pelny obieg dokumentow operacyjnych. Checklist: [x] 1. Formularz kartoteki materialu (cechy + dodawanie) [x] 2. Wyszukiwanie i lookup po kodzie/serialu/QR/OCR [x] 3. Szybkie wydanie skanem (ilosc + zapis zdarzenia) [x] 4. Wydanie skanem na stan ekipy (z nazwa ekipy) [x] 5. Generator etykiet firmowych (Code-128) i wydruk etykiet [x] 6. Formularz PZ (przyjecie materialu) [x] 7. Formularz MM (przesuniecie miedzy lokalizacjami) [x] 8. Formularz WZ (wydanie na inwestycje) [x] 9. Formularz ZW (zwrot) [x] 10. Formularz WZ-Z (wydanie zastepcze) [x] 11. Lista i podglad dokumentow z filtrami [x] 12. Szybkie przyjecie skanem (PZ) z automatycznym kodem partii/odcinka ================================================================== ETAP 4 - STANY I BILANS ================================================================== Cel: zawsze aktualna informacja o stanie na magazynie i ekipach. Checklist: [x] 1. Algorytm liczenia stanu per lokalizacja i material [x] 2. Widok "stan biezacy" (wlasny/powierzony) [x] 3. Blokada wydania ponad stan [x] 4. Alert stanu minimalnego ================================================================== ETAP 5 - ROZLICZENIA MATERIALU ZASTEPCZEGO ================================================================== Cel: zamknac problem "wydalismy swoje zamiast powierzonego". Checklist: [x] 1. Automatyczne tworzenie dlugu po WZ-Z [x] 2. Ekran listy dlugow (otwarte/zamkniete) [x] 3. Mechanizm czesciowego i pelnego rozliczenia [x] 4. Raport naleznosci materialowych per operator ================================================================== ETAP 6 - INTEGRACJA Z RAPORTAMI I ZACIAGAMI ================================================================== Cel: powiazanie materialu z realna robota i inwestycja. Checklist: [ ] 1. Powiazanie wydan z raportem robot (`index2`) [ ] 2. Powiazanie wydan z raportem zaciagu (`zapasy2`) [ ] 3. Przenoszenie kluczowych metadanych miejsca/inwestycji [ ] 4. Linki zwrotne: raport <-> dokument magazynowy ================================================================== ETAP 7 - UI TERENOWE (MOBILE-FIRST) + WALIDACJA ================================================================== Cel: szybka i bezbledna obsluga na telefonie. Checklist: [x] 1. Podstawowy skaner kamera (QR/kreskowy) w widoku magazynu [x] 2. Podstawowy OCR z obrazu (gdy wspierany) + fallback reczny [x] 3. Tryb skan -> ilosc -> wydanie na stan ekipy [ ] 4. Formularze dokumentow zoptymalizowane pod iPhone/Android [ ] 5. Czytelne komunikaty walidacji (dla laikow) [ ] 6. Skracanie sciezki klikniec (minimum krokow) [ ] 7. Testy UX terenowe ================================================================== ETAP 8 - UPRAWNIENIA I AUDYT ================================================================== Cel: kontrola kto i kiedy wykonal ruch materialowy. Checklist: [ ] 1. Role i zakres uprawnien (admin/kierownik/worker) [ ] 2. Rejestr zmian dokumentow i korekt [ ] 3. Czytelne komunikaty o braku uprawnien [ ] 4. Raport audytowy operacji ================================================================== ETAP 9 - TESTY E2E I URUCHOMIENIE ================================================================== Cel: bezpieczne uruchomienie na produkcji. Checklist: [ ] 1. Testy funkcjonalne obiegu PZ/MM/WZ/ZW/WZ-Z [ ] 2. Testy wydajnosci list i filtrow [ ] 3. Testy bledow i scenariuszy granicznych [ ] 4. Instrukcja dla zespolu terenowego (prosta, 1 strona) [ ] 5. Start produkcyjny i monitoring 7-dniowy ================================================================== DZIENNIK AKTUALIZACJI ================================================================== [2026-02-14 20:40] Utworzono raport wdrozenia modulu magazynowego (wersja 1.0). [2026-02-14 20:40] Potwierdzono odrebnosc modulu: osobny folder, osobne API, osobna baza `magazyn.db`. [2026-02-14 20:40] Start ETAPU 1 i ETAPU 2 (analiza procesow + model danych). [2026-02-14 21:40] Rozszerzono model danych o cechy materialow (kategorie, zrodlo, serial, barcode, QR, OCR) i log zdarzen skanowania. [2026-02-14 21:40] Dodano API kartoteki materialow, lookup po kodach i szybkie wydanie skanem. [2026-02-14 21:40] Dodano UI: formularz materialu, skaner QR/kreskowy, OCR (gdy dostepny), szybkie wydanie z iloscia i historia zdarzen. [2026-02-14 22:05] Dodano modul generatora etykiet firmowych QR (podglad + wydruk) dla materialow. [2026-02-14 22:05] Dodano tryb wydania na stan ekipy przy skanowaniu (kod + ilosc + ekipa). [2026-02-14 22:05] Dodano podsumowanie stanu ekip na podstawie wydan skanem. [2026-02-14 22:35] Dodano API dokumentow magazynowych (PZ/MM/WZ/ZW/WZ-Z) i liste dokumentow. [2026-02-14 22:35] Dodano formularz dokumentow magazynowych na stronie magazynu (z pozycja materialowa). [2026-02-14 23:20] ETAP 4: dodano API stanu biezacego (lokacja/material/owner_kind), widok stanow i alerty stanu minimalnego. [2026-02-14 23:20] ETAP 4: uszczelniono blokade wydania ponad stan z filtrem rodzaju materialu (wlasny/powierzony). [2026-02-14 23:55] Dodano flow "skanuje i przyjmuje" (PZ) z automatycznym unikalnym kodem partii/odcinka (`lot_code`) dla powtarzalnych materialow. [2026-02-16 22:20] AI MVP: dodano endpoint podpowiedzi kartoteki materialu (`api/ai/material_suggest.php`) na podstawie OCR/nazwy i cech. [2026-02-16 22:20] AI MVP: dodano zapis decyzji operatora (`api/ai/decision.php`) oraz podpiecie w UI kartoteki (akceptacja/edycja/odrzucenie sugestii). [2026-02-17 10:15] Wprowadzono staly proces aktualizacji postepu: jedno zrodlo (`progress_status.json`) + obowiazkowy wpis do dziennika po kazdym kroku. [2026-02-17 11:05] Wdrozono Code-128 bez nowych przyciskow UI: etykiety stanu drukowane jako Code-128, dopasowano opisy i nazewnictwo kodow oraz dodano fallback dekodowania obrazu przez `zbarimg` (jesli dostepny). [2026-02-17 11:40] Korekta wydruku etykiet stanu: na etykiecie 8x5 cm drukowane sa oba kody (duzy QR + mniejszy Code-128 pod spodem), bez nadawania nowych kodow i bez dodawania przyciskow. [2026-02-17 19:10] UI lokalizacji: dodano walidacje duplikatow nazwy (frontend + API), czytelne komunikaty odrzucenia oraz blokade zmiany typu lokalizacji przy aktywnym stanie. [2026-02-17 19:10] Magazyn/stany: wdrozono sortowanie tabeli `stockTable` po naglowkach z caret arrows (Rosnaco/Malejaco) dla kolumn Rodzaj, Lokalizacja, Material, Ilosc, Min. stan i Alert. [2026-02-17 19:35] Kartoteka: dodano sortowanie tabeli materialow (`matTable`) po kliknieciu naglowkow (caret arrows) dla ID, Material, Kategoria, Pochodzenie, Min. stan i Kod produktu. [2026-02-17 20:05] Domkniecie trybu worker (krok 1): interfejs ograniczony do 3 akcji (Pobierz, Zwroc, Zaraportuj wydanie), ukryto pola/sekcje pomocnicze i dopracowano komunikaty o stanie przed i po operacji. [2026-02-17 20:35] PZ i partie: dodano wybor trybu przyjecia (`nowa partia` / `sumuj`) oraz rozdzielenie pozycji stanu po kodzie partii w `stockTable`, aby kolejne odcinki/materialy nie zlewaly sie automatycznie. [2026-02-17 20:35] Ruchy worker zachowane bez zmiany UX: pobrania, zwroty i raportowanie wydania dalej dzialaja tak samo, ale technicznie rozchod jest rozdzielany po partiach (FIFO), aby zachowac poprawnosc stanow partii. [2026-02-17 21:29] Stany: dodano informacje o dacie przyjecia i powiazaniu z dokumentem PZ (przycisk z numerem PZ w wierszu stanu otwiera podglad/wydruk dokumentu). [2026-02-17 21:35] Dokumenty/PZ: dodano tryb przyjecia identyczny jak w skanowaniu (`Nowa pozycja` / `Sumuj z istniejaca pozycja`) oraz automatyczne nadawanie kodu partii przy `Nowa pozycja`. [2026-02-17 21:49] Dokumenty: dodano narzedzie naprawcze "Napraw scalenia i stany" (admin/SU), ktore analizuje historie ruchow, rozdziela historyczne PZ bez partii i przypisuje wydania bez partii do partii FIFO. [2026-02-17 22:02] Stany: dodano submenu `Stan / Wydania` oraz nowy widok historii wydaƄ z filtrowaniem (tekst + zakres dat), sortowaniem i szybkim przejsciem do dokumentu. [2026-02-17 22:06] Walidacja dokumentow: zablokowano PZ na lokalizacje typu ekipa (PZ tylko na magazyn), a w UI formularza ukryto pole `Ekipa` przy typie PZ, aby nie powodowac pozornego "mnozenia" stanu przy przekazaniach. [2026-02-17 22:13] Rozszerzono tryb "pokazuj tylko potrzebne pola" w formularzu dokumentow: automatyczne ukrywanie/pokazywanie pol dla typow PZ/MM/WZ/ZW/WZ-Z (z kontekstowymi etykietami i czyszczeniem nieistotnych danych). [2026-02-17 22:24] Skanowanie: ujednolicono etykiete pola ilosci do `Ilosc` (desktop + worker) oraz dodano fallback wyszukiwania po fragmencie tekstu (nazwa/kategoria/zrodlo) przy recznym wpisie, bez rozbudowy UI. [2026-02-17 22:47] Etykiety partii i skanowanie: wydruk `Drukuj kod` z wiersza stanu zawsze bierze kod oraz ilosc z konkretnej partii (bez podmiany na inna partie), a lookup kodu priorytetowo rozpoznaje exact `lot_code` i liczy dostepnosc dla tej partii zamiast sumy calego asortymentu. [2026-02-17 23:03] Dalsze uszczelnienie lookup partii (mobile/desktop): dopasowanie `lot_code` dziala jako exact + elastyczne (contains obustronny), wybierany jest najlepszy kandydat partii na material, a dostepnosc partii liczona jest case-insensitive dla konkretnie dopasowanego `matched_lot_code`. [2026-02-17 23:14] Worker UX (skan): uproszczono karte wyniku do minimum operacyjnego (nazwa materialu, duzy i kolorowy stan dostepny, stan ekipy, lokalizacja docelowa). Ukryto informacje techniczne (kategorie, pochodzenie, kody, typ rozpoznania) dla szybszej decyzji w terenie. [2026-02-17 23:25] Worker skan -> pobranie: dodano twarda blokade per partia w backendzie (`scan_receive.php`). Gdy zeskanowany jest kod partii, rozchod pobierany jest tylko z tej partii; po `Bierz wszystko` ponowny skan tego samego kodu zwroci brak stanu dla partii zamiast pozwalac na kolejne pobranie. [2026-02-18 00:11] Worker (wyszukiwanie z palca): dla materialow z wieloma odcinkami/partiami dodano prosty wybor odcinka na karcie skanu. Bez wyboru partii przycisk `Pobierz` i `Bierz wszystko` sa blokowane; ilosc `Dostepne teraz` pokazuje stan wybranej partii, co ogranicza wydanie niewlasciwego odcinka. [2026-02-18 15:03] Ujednolicono nazewnictwo akcji zabudowy dla workera: przycisk `Zaraportuj wydanie` zmieniono na `Zabudowano (WZ)` (HTML + tryb worker), aby jasno wskazywal dokument rozchodu z ekipy. [2026-03-30 13:44] ETAP 5: dokumenty WZ/WZ-Z/ZW rozszerzono o opcjonalny kontekst `operator` / `inwestycja`, a dlug po WZ-Z zapisuje to powiazanie bez zmiany dotychczasowego workflow dokumentow. [2026-03-30 13:44] ETAP 5: dodano osobny ekran rozliczen dlugow materialowych (otwarte/zamkniete), mechanizm rozliczen czesciowych i pelnych z historia wpisow oraz raport naleznosci per operator. Status ETAPU 5 -> WERYFIKACJA 100%. [2026-03-30 13:44] ETAP 3: dodano backendowe wyszukiwanie historii dokumentow magazynowych po numerze, typie, dacie, materiale, partii, operatorze, inwestycji, lokalizacjach i pracowniku oraz nowy pasek filtrow w sekcji `Dokumenty`. Status ETAPU 3 -> W_TOKU 80%. [2026-03-30 13:59] ETAP 3: historia dokumentow dostala pager 1:1 jak w `Stany` (pozycje na strone, licznik zakresu, poprzednia/nastepna strona) oraz filtr `Typ dokumentu` przeniesiony do belki paginera; backend dokumentow obsluguje teraz `page` i `page_size`. Status ETAPU 3 -> W_TOKU 85%.