Rozliczenie kosztów magazynowych zapisuje w opisywanym wdrożeniu jedno naciśnięcie przycisku „Generuj rozliczenie”: dla kontrahenta i okresu powstają wiersze szczegółowe i ogólne w tej samej tabeli. Osoba rozliczająca właścicieli towaru wybiera kontrahenta i okres oraz wskazuje status, a oba poziomy wierszy dostają ten sam status i wspólny numer dokumentu. Te same dwa poziomy dostają potem razem znacznik zatwierdzenia albo usunięcia.
Opisujemy strukturę rozliczenia, nie naliczanie. W opisywanym wdrożeniu jedno naciśnięcie „Generuj rozliczenie” zapisuje dla kontrahenta i okresu wiersze szczegółowe oraz ogólne w tej samej tabeli, powiązane numerem dokumentu. Status wybiera się już przy generowaniu, a oba poziomy razem dostają numer przy zatwierdzeniu albo znacznik usunięcia.
Jedno generowanie zapisuje dwa rodzaje wierszy w jednej tabeli: szczegółowe, rozpisane do poziomu dokumentu lub dnia, oraz ogólne, które sumują wiersze szczegółowe. Oba rodzaje mają wspólny numer dokumentu i jeden status wybrany przy generowaniu. Zatwierdzenie i usunięcie dotyczą obu poziomów jednym poleceniem.
Jedno naciśnięcie zapisuje dwa poziomy rozliczenia w jednej tabeli
Ekran rozliczenia ma pola „Kontrahent” i „Status rozliczenia” oraz trzy pola dat: „Data rozliczenia”, „Data od” i „Data do”. Status ma dwa pola wyboru: „Zatwierdzone” i „Bufor”. W nagłówku stoją pola „Typ dokumentu” i „Numer dokumentu”. Lista kontrahentów to aktywni kontrahenci oddziału użytkownika. Cztery przyciski to „Generuj rozliczenie”, „Zapisz”, „Usuń dokument” i „Zamknij”.
Jedna strona obsługuje dwa tryby, a wybiera je baza. Gdy dla numeru z adresu istnieje wiersz ogólny rozliczenia, strona otwiera edycję. Kontrahent jest wtedy zablokowany, a pole statusu i przycisk „Generuj rozliczenie” są ukryte. Pokazuje się siatka pozycji. W przeciwnym razie strona generuje nowe rozliczenie, a przyciski „Zapisz” i „Usuń dokument” są ukryte. W każdym trybie widoczne są więc inne przyciski.
Waluta jest brana z kartoteki kontrahenta i zapisywana w wierszach obu poziomów. Rozliczenie dotyczy kontrahenta, czyli właściciela towaru. Obieg rozliczenia z podglądem opisuje strona o rozliczeniu kosztów magazynowych. Dokumenty przyjęcia i wydania opisują osobne strony, na przykład strona o zleceniu wydania i rezerwacji palety i strona o przyjęciu wewnętrznym na paletę.
Wiersze szczegółowe i ogólne łączy numer dokumentu
Rozliczenie to dwa rodzaje wierszy jednej tabeli: szczegółowe i ogólne. Wszystkie wiersze szczegółowe jednego przebiegu mają jeden wspólny numer referencyjny, różny od numeru dokumentu, i niosą w osobnej kolumnie numer dokumentu. Wiersz ogólny ma numer referencyjny równy numerowi dokumentu. Według dokumentacji wdrożenia rozliczenie jest szczegółowe i ogólne, a ogólne zbiera pozycje szczegółowe.
Wiersze szczegółowe różnią się tym, do czego są rozpisane. Przyjęcia i wydania mają po jednym wierszu na dokument, z trzema danymi: numerem dokumentu, datą i magazynem. Usługi mają po jednym wierszu na usługę i dokument. Magazynowanie ma po jednym wierszu na dzień i rodzaj palety, bez numeru dokumentu. Wierszy ogólnych jest po jednym na każdą z trzech kategorii (przyjęcie, wydanie, magazynowanie), a także po jednym na każdą parę usługa i cena z wierszy szczegółowych.
W kolumnie „Usługa” wiersze ogólne trzech pierwszych kategorii mają teksty „Przyjęcie palet”, „Wydanie palet” i „Magazynowanie”. Ilość wiersza ogólnego to suma ilości wierszy szczegółowych tego samego rodzaju. Tabela zestawia pięć rodzajów wierszy.
| Wiersz | Poziom | Co niesie |
|---|---|---|
| Przyjęcie palet | szczegółowy | numer dokumentu i data |
| Wydanie palet | szczegółowy | numer dokumentu i data |
| Magazynowanie | szczegółowy | dzień i rodzaj palety, bez numeru dokumentu |
| Usługa | szczegółowy | numer dokumentu i nazwa usługi |
| Jedna z czterech kategorii (przyjęcie palet, wydanie palet, magazynowanie, usługa) | ogólny | suma ilości wierszy szczegółowych tego rodzaju |
Kategorie kosztów włącza się osobno dla każdego kontrahenta
Cztery kategorie kosztów włącza się osobno dla każdego kontrahenta wierszem w jego kartotece. Kategoria bez takiego wiersza jest pomijana w wierszach obu poziomów. Dla jednego kontrahenta rozliczenie może więc mieć wiersze przyjęcia i wydania, a dla innego dodatkowo magazynowanie i usługi. Poniższa lista podaje cztery kategorie.
- Przyjęcie palet. Kategoria włączana wierszem w kartotece kontrahenta.
- Wydanie palet. Kategoria włączana wierszem w kartotece kontrahenta.
- Magazynowanie. Kategoria włączana wierszem w kartotece kontrahenta.
- Usługi. Kategoria włączana wierszem w kartotece kontrahenta.
Gdy dla kategorii nie ma pozycji cennika, wiersz szczegółowy powstaje bez usługi i z uwagą, na przykład „Magazynowanie. Brak pozycji cennika”. Rodzaj palety, po którym rozliczenie szuka pozycji cennika, opisuje strona o rodzaju palety w dokumencie. Kontrahenta wybranego w dokumencie opisuje strona o kontrahencie w dokumencie przyjęcia.
Status wybiera się przy generowaniu, a numer nadaje się przy zatwierdzeniu
Status jest jeden dla obu poziomów: zatwierdzone albo bufor. Gdy zaznaczone są oba pola statusu, serwer zapisuje bufor, bo pole „Bufor” jest przetwarzane po polu „Zatwierdzone”. Numer z licznika dostaje tylko rozliczenie generowane od razu jako zatwierdzone. W buforze numer rozliczenia jest równy numerowi referencyjnemu: w wierszach szczegółowych wspólnemu numerowi referencyjnemu przebiegu, w ogólnych numerowi dokumentu.
Rozliczenie z bufora można zatwierdzić w edycji. Przycisk „Zapisz” ustawia wtedy jednym poleceniem w wierszach szczegółowych i ogólnych tego dokumentu, które mają status bufora, trzy wartości: znacznik zatwierdzenia, nowy numer z licznika i datę rozliczenia z formularza. Zatwierdzenie w edycji zależy od sposobu otwarcia ekranu: bez trybu edycji przycisk „Zapisz” nic nie zmienia, a okno się zamyka. Dwa statusy opisuje poniższa lista.
- Zatwierdzone. Rozliczenie od razu dostaje numer z licznika.
- Bufor. Numer rozliczenia jest równy numerowi referencyjnemu, a zatwierdzenie następuje w edycji.
Usunięcie dokumentu oznacza oba poziomy jednocześnie
Przycisk „Usuń dokument” jest dostępny tylko w edycji. Pyta „Czy na pewno chcesz usunąć dokument?” i oznacza znacznikiem usunięcia wszystkie wiersze wskazane numerem dokumentu, czyli oba poziomy. Wiersze nie są kasowane fizycznie, a zapytania odczytu pomijają oznaczone. Siatka w edycji pokazuje tylko wiersze ogólne, w trzech kolumnach: „Usługa”, „Ilość” i „Wartość”.
Osoba rozliczająca nie musi więc usuwać wierszy szczegółowych osobno: jedno polecenie oznacza oba poziomy. Wiersze szczegółowe zostają w bazie ze znacznikiem, ale nie pojawiają się w odczycie. Usuwa się cały dokument, a nie pojedynczą pozycję, bo przycisk wskazuje numer dokumentu.
Przed zapisem formularz i kod sprawdzają pola i okres
Przed generowaniem skrypt w przeglądarce sprawdza pola. Pokazuje cztery komunikaty: „Brak kontrahenta!”, „Brak daty rozliczenia!”, „Brak daty początkowej rozliczenia!” albo „Brak daty końcowej rozliczenia!”. Gdy żaden status nie jest zaznaczony, pokazuje okno „Komunikat” z treścią „Proszę zaznaczyć status dla rozliczenia.”. Po naciśnięciu przycisku pokazuje „Proszę czekać. Trwa dopisanie rozliczenia.”. Kalendarze dopuszczają daty od 90 dni wstecz do dziś.
Przed zapisem kod pyta też funkcję bazy, czy dla kontrahenta nie ma już rozliczenia w przedziale dat. Gdy funkcja odpowie twierdząco, kod przerywa komunikatem „W wybranym przedziale czasowym zostało zapisane rozliczenie!”. Reguły samej funkcji nie opisujemy. Pytanie o okres jest osobną kontrolą od kontroli pól: pierwsza działa w przeglądarce, druga w kodzie.
„W wybranym przedziale czasowym zostało zapisane rozliczenie!” (komunikat, którym kod przerywa zapis)
Przykład (dane wymyślone) w sześciu krokach. Nazwy i numery w nim są fikcyjne.
- Osoba rozliczająca właścicieli towaru wybiera Kontrahenta Testowego i okres od pierwszego do ostatniego dnia miesiąca. Zaznacza „Bufor” i naciska „Generuj rozliczenie”.
- Dla tego kontrahenta w kartotece włączono trzy kategorie: przyjęcie i wydanie oraz usługi; magazynowanie nie jest włączone, więc nie powstają dla niego wiersze magazynowania na żadnym poziomie.
- Formularz zapisuje cztery wiersze szczegółowe: dwa przyjęcia po 3 i 2 palety, jedno wydanie i jedną usługę.
- Zapisuje też trzy wiersze ogólne, wszystkie ze statusem bufora; w polu numeru stoi numer referencyjny Dokumentu 26-1001.
- Po otwarciu edycji siatka pokazuje trzy wiersze ogólne, w tym „Przyjęcie palet” z ilością 5.
- W edycji otwartej w trybie edycji „Zapisz” nadaje wierszom szczegółowym i ogólnym ten sam nowy numer i znacznik zatwierdzenia.
Pytania do analizy
- Czy w Państwa firmie status rozliczenia ma być wybierany już przy generowaniu, czy dopiero po sprawdzeniu zestawienia?
- Kto przegląda wiersze szczegółowe, a kto ogólne, zanim rozliczenie trafi do faktury?
- Które kategorie kosztów mają być włączone dla danego kontrahenta?
- Czy okres nowego rozliczenia może nakładać się na okres rozliczenia już zapisanego dla tego samego kontrahenta?