System działa u klienta od września 2026 i jest rozwijany dalej. Opisujemy to, co jest już wdrożone i używane, a na końcu wprost wymieniamy, co jeszcze jest w realizacji. Nie podajemy danych biznesowych klienta: kwot, nazw budów ani nazwisk.
Dzierżawa szalunków liczona w Excelu
ABC Szalunki to wypożyczalnia systemów szalunkowych ściennych i stropowych: cztery oddziały, trzy podmioty prawne, magazyny własne i sprzęt podnajmowany od zewnętrznych dostawców. Sprzęt wyjeżdża na budowy, wraca częściami, czasem uszkodzony, a każdy miesiąc trzeba rozliczyć co do grosza.
Dokumenty wydania i przyjęcia powstawały w programie magazynowym Comotel. Rozliczenie dzierżawy odbywało się jednak poza nim: każdą pozycję każdego dokumentu przepisywano ręcznie do arkusza Excel, który wyliczał miesięczne zestawienie i służył jako załącznik do faktury. Kwotę z arkusza przepisywano potem jeszcze raz, do programu księgowego.
Dzierżawa wygląda na proste mnożenie: stawka razy dni razy ilość. W praktyce zwroty bywają częściowe, dowozy trafiają w środek okresu, miesiąc tnie naliczanie na pół, a rabaty działają na dwóch poziomach i mogą zostać zdjęte, gdy klient przestaje płacić. Każde z tych miejsc było źródłem pomyłki przy przepisywaniu, a jako najczęstszą przyczynę korekt klient wskazał doliczanie transportu i usług dodatkowych.
Najpierw wzór, potem kod
Zapytanie od ABC Szalunki przyszło przez formularz na naszej stronie. Tego samego dnia klient dostał 55 pytań w dziesięciu obszarach: obecny proces, Comotel, dokumenty, zasady naliczania, protokoły jakościowe, statystyki, użytkownicy, skala danych. Odpowiedzi na wszystkie wróciły następnego dnia, razem z arkuszami, wzorami dokumentów i spotkaniem online, na którym klient pokazał arkusz rozliczeniowy na żywo.
Zanim powstała pierwsza linia kodu, odtworzyliśmy wzór obliczeniowy z arkusza klienta i sprawdziliśmy go rachunkiem na prawdziwym zestawieniu. Wszystkie pozycje, rabat, transport, dzienny koszt dzierżawy, waga i metry bieżące zgodziły się co do grosza. Klient odpisał krótko: „system liczenia sztukodni jest poprawny". Do tego dostał dokumentację projektu z regułami naliczania, przypadkami użycia i kryteriami odbioru oraz klikalną makietę systemu.
Zestawienie z systemu ma się zgadzać co do grosza z ręcznym rozliczeniem klienta. Nie „mniej więcej", nie „po zaokrągleniu". To jedno zdanie ustawiło cały projekt: każda reguła naliczania ma źródło w arkuszu albo w odpowiedzi klienta, a każda zmiana w rachunku przechodzi ponowne przeliczenie danych wzorcowych.
Od pierwszego kontaktu do podpisania umowy, NDA i załącznika prac minęły cztery dni. Prace ruszyły w dniu podpisu.
Silnik naliczania
Sercem systemu jest silnik, który liczy dzierżawę według reguł klienta. Dokumentacja opisuje dziś 31 reguł biznesowych, każdą ze wskazaniem źródła. Najważniejsze z nich:
- Dni kalendarzowe, z wliczeniem dnia wydania i dnia zwrotu
- Zwroty częściowe i dowozy w trakcie okresu, każda operacja z własną liczbą dni, bez limitu operacji na zestawieniu
- Cięcie na granicy miesiąca i bilans otwarcia przenoszony do kolejnego okresu
- Rabaty grupowe i ogólne, rabat za terminową płatność zdejmowany osobno przy zamykaniu miesiąca, kwota rabatów utraconych w statystykach
- Minimalny okres naliczania i dopłata do minimum logistycznego przy zamknięciu budowy
- Braki rozliczane dokumentem RW na koszt klienta, transport wyceniany po fakcie, protokół jakościowy z kosztami czyszczenia i napraw
- Elementy tracone i akcesoria jako sprzedaż na osobną fakturę, poza czynszem i rabatami
Silnik przeliczył trzy kolejne skoroszyty budów przekazane przez klienta, prosto z plików, z łańcuchem bilansów otwarcia między miesiącami. Razem ze styczniową próbą daje to 17 miesięcy na 4 budowach zgodnych co do grosza. Osobno sprawdziliśmy sytuacje, w których arkusze bywają zawodne: rok przestępny, zmianę czasu na letni i sumowanie stu pozycji po jednym groszu.
W odpowiedziach na formularz minimalny okres naliczania wynosił 7 dni i tak trafił do pierwszej wersji reguły. Przy analizie szablonu oferty z arkusza klienta znaleźliśmy zapis „8 dni, każde wydanie z magazynu". Poprawiliśmy dokumentację, instrukcję i kod, a do zasad projektu dopisaliśmy jedną: przy naliczaniu dokument źródłowy klienta wygrywa z odpowiedzią udzieloną z pamięci.
Dane z Comotela, co do grosza
System miał ruszyć z pełną historią roku, a nie od pustej kartoteki. Bez dostępu do bazy Comotela dane przyszły w postaci wykazów z programu: wszystkie dokumenty i bilanse otwarcia od 1 stycznia. Napisaliśmy parser tych wykazów i porównaliśmy wynik z sumami kontrolnymi samego Comotela.
Dwie pułapki wyszły dopiero na danych. Pole „Cena" w Comotelu to wartość kaucyjna, nie stawka dzierżawy, więc naliczanie z niego dałoby kwoty sprzeczne z umowami. Wykaz ruchów nie zawiera też magazynu, przez co część budów rozpoczętych w poprzednim roku pokazywała ujemny stan. Oba przypadki opisaliśmy klientowi jako pytania z konkretnymi przykładami, zamiast zgadywać. Przycisk „Przelicz okres" buduje każdej budowie cały łańcuch zestawień od jej pierwszego dokumentu. Tak powstało ponad półtora tysiąca zestawień dla kilkuset budów, od stycznia.
Od zestawień do systemu, który prowadzi firmę
Umowa obejmowała zestawienia, protokoły jakościowe i statystyki. Po prezentacji klient zobaczył, że to samo podejście może zastąpić kolejne arkusze i programy, i zamawiał następne moduły etapami, płacąc z góry. Każdy etap przechodził tę samą drogę: opis w dokumentacji, wdrożenie, oględziny na kopii danych klienta, poprawki.
Analiza i makieta
55 pytań, odtworzenie wzoru z arkusza, dokumentacja projektu z regułami i przypadkami użycia, klikalna makieta. Wszystko przed podpisaniem umowy
Rozliczenia, jakość, statystyki
Wczytanie arkuszy, wystawianie WZ i PZ z klawiatury, zestawienia z wydrukiem na jednej stronie A4, koszty obsługi, protokoły jakościowe, zamykanie okresów i korekty, trzy podmioty z własnymi stopkami
Pełny rok z Comotela
Dokumenty i bilanse otwarcia od stycznia wczytane i zweryfikowane, zestawienia zbudowane wstecz dla wszystkich budów
Magazyn i transporty
Stan magazynów liczony z dokumentów, przesunięcia, serwis, inwentaryzacja, podnajem z magazynów obcych, plik JPK_MAG. Ewidencja kursów z przewoźnikami, kierowcami i statystyką jak w arkuszu klienta
Ofertowanie z podpisem
Tablica ofert z wersjami, wysyłka z własnej skrzynki klienta, strona oferty dla kontrahenta z kodem SMS i podpisem, umowa i budowa zakładane z przyjętej oferty
Przeniesienie na serwer klienta
Migracja z naszej chmury na serwer wykupiony na konto klienta, z porównaniem liczby rekordów przed i po
Umowy ramowe, briefy, mapa budów
Umowy ramowe w osobnym obiegu ze wzorem wczytywanym z pliku Word, oferta szacunkowa liczona rotacjami, konstruktor formularzy dla klientów, kilometry z mapy, karta produktu z historią stawki
Ofertowanie i podpis bez zewnętrznego abonamentu
Klient chciał, żeby oferta trafiała do kontrahenta, wracała podpisana i od razu zakładała umowę oraz budowę ze stawkami z oferty. Zamiast zewnętrznej platformy do e-podpisu zaproponowaliśmy własny obieg: kontrahent dostaje odnośnik, sprawdza i uzupełnia dane, potwierdza kodem SMS i podpisuje. System zapisuje dowód z datą, migawkę treści i PDF z pieczęcią systemową.
- Trzy rodzaje ofert: szczegółowa, uproszczona i szacunkowa liczona rotacjami kompletów, z tolerancją kosztu
- Wersje, odrzucenie z powodem, przypomnienia, przyjęcie poza systemem ze skanem
- Zabezpieczenie przed wyścigiem: zmiana oferty w chwili, gdy kontrahent ją podpisuje, nie przejdzie niezauważona
- Konstruktor briefów: firma sama składa formularz dla klienta, a zgłoszenie zakłada ofertę roboczą
- Umowa ramowa podpisywana poza systemem, odręcznie, podpisem kwalifikowanym albo profilem zaufanym, i rejestrowana ze skanem, bo tak pracuje klient
Skala systemu
To, co zaczęło się jako generator zestawień, jest dziś systemem, w którym ABC Szalunki prowadzi obieg od zapytania ofertowego, przez wydanie sprzętu, transport, zwrot i protokół, po zestawienie, statystyki i sprawozdawczość magazynową.
- Moduły: kartoteki klientów i budów, dokumenty WZ, PZ, RW i PW, bufor dokumentów, zestawienia, protokoły jakościowe, cennik z historią stawek, magazyn, transporty, ofertowanie, umowy ramowe, briefy, statystyki, notatki, role i uprawnienia
- Dwanaście rodzajów dokumentów z numeracją dzienną według kodu magazynu
- Cztery role wbudowane i role własne z 21 uprawnień do wyboru
- Dziennik zmian na poziomie bazy: każda zmiana kwoty, stawki czy dokumentu ma autora i ślad
- Ślad rozliczenia: przy każdej kwocie zestawienia widać, z których dokumentów i dni wynika
Integracje
- Comotel: wczytanie dokumentów, bilansów otwarcia i stanów magazynów z wykazów programu
- Excel: wczytywanie skoroszytów klienta, także z makrami, katalogu, cennika, bazy przewoźników i kursów; eksport każdej listy i pełna kopia danych do pliku
- Wykaz podatników VAT Ministerstwa Finansów: nazwa, REGON i KRS po numerze NIP
- SMSAPI: kody potwierdzające podpis oferty
- Poczta klienta: oferty i powiadomienia wysyłane z jego własnej skrzynki
- OpenStreetMap: położenie budów, mapa i kilometry trasy przy kursie, bez płatnego klucza
- JPK_MAG: plik dla urzędu skarbowego generowany z dokumentów magazynowych
- Wydruki PDF generowane po stronie serwera: zestawienia, dokumenty, protokoły, oferty i umowy
Praca na danych klienta, nie na przykładach
Od pierwszego wdrożenia klient pracuje na żywym systemie, więc każda zmiana przechodzi tę samą procedurę: kopia bazy przed wdrożeniem, próba migracji na kopii danych klienta, porównanie liczby zestawień i ich sumy przed i po, dopiero potem produkcja. Po każdym większym wdrożeniu kod przechodzi trzy niezależne przeglądy: bezpieczeństwa, poprawności rachunkowej i zgodności z zamówieniem.
Dopłata do minimalnego okresu naliczania zgadzała się co do grosza na czterech budowach wzorcowych. Dopiero przeliczenie na kopii pełnych danych pokazało, że reguła sięgnęłaby wstecz po ponad dwadzieścia zwrotów wczytanych z Comotela i doliczyła klientom kwoty, których nikt im nie naliczał. Reguła weszła tylko dla dokumentów wystawionych w systemie, od ustalonego dnia, a decyzja o przeszłości wróciła do klienta jako pytanie. Od tej pory każdą nową regułę rachunkową sprawdzamy na kopii pełnych danych.
Przeglądy wyłapywały też błędy, których nikt nie zgłosił. Ostatni dzień miesiąca liczony datą lokalną wypadał w czasie letnim dobę wcześniej, więc dokument z 31 maja wypadał poza okresem. Wyszukiwarka nie znosiła polskich znaków i „dzw" nie znajdowało dźwigarów. Zwrot z datą sprzed wydania dawał ujemną dzierżawę. Wszystko poprawione z testem, który pilnuje, żeby nie wróciło.
Dokument powstaje w Comotelu, potem jest przepisywany do Excela
Arkusz mieści 13 operacji na zestawieniu
Wydruk na jedną stronę po ręcznym ukrywaniu wierszy
Transport i usługi dopisywane z pamięci, najczęstsza przyczyna korekt
Kwota przepisywana jeszcze raz do programu księgowego
Rozliczenia wszystkich oddziałów w rękach jednej osoby
Oferty w osobnych plikach, podpis na papierze
Dokument wystawiany w systemie z klawiatury, bez myszy
Bez limitu operacji, sprawdzone na zestawieniu z 21 operacjami
Zestawienie na jednej stronie A4, PDF w 1,3 sekundy na serwerze
Lista kontrolna wstrzymuje zamknięcie miesiąca, gdy transport nie ma kwoty
Kwota z zestawienia gotowa do faktury, powiązanie z księgowością w planie
Role, uprawnienia i dziennik zmian dla całego zespołu
Oferta podpisywana kodem SMS zakłada umowę i budowę
Dokumentacja, która rośnie razem z systemem
Klient dostaje po każdym wdrożeniu trzy dokumenty w nowej wersji. Dokumentacja projektu zawiera reguły, przypadki użycia i rejestr pytań otwartych z rozstrzygnięciami. Instrukcja obsługi ma dziś ponad sto stron. Weryfikacja zgodności rachunkowej doczekała się trzydziestej drugiej wersji i dokumentuje każdą zmianę w naliczaniu rachunkiem. Do tego nagrania kluczowych operacji i miesięczne raporty prac.
Wszystkie uwagi klienta, zgłaszane wykazami w plikach Word, mailem i odręcznymi dopiskami na wydrukach, dostają numer, przyczynę i stan. Od prezentacji do początku października wdrożyliśmy siedem takich wykazów.
Technologie
React 19
TypeScript
PostgreSQL 17
Drizzle ORM
Tailwind CSS 4
Zod
decimal.js
ExcelJS
Playwright
Vitest
Leaflet i OpenStreetMap
SMSAPI
JPK_MAG
Docker
Coolify
Rezultaty
Co jeszcze w realizacji
Projekt trwa. ABC Szalunki przechodzi na system w całości od listopada 2026, a październik firma przeznaczyła na pracę całego zespołu w programie i szkolenie online. Na dziś otwarte są:
- Katalogi zdjęć dokumentów na Dysku Google z kodem QR na wydruku: kod gotowy, czeka na połączenie konta klienta; podgląd zdjęć w systemie w przygotowaniu
- Pobieranie nazwy firmy z rejestru GUS: czeka na klucz po zmianie serwera
- Historia dokumentów magazynowych z Comotela: czeka na eksport po stronie klienta
- Powiązanie z programem księgowym i fakturowanie: kolejny etap, najwcześniej na początku 2027 roku
- Kolejne moduły, które klient rozważa jako osobne instancje, żeby awaria jednego nie zatrzymała rozliczeń
Opiszemy je, gdy zostaną wdrożone. Wpis będzie aktualizowany.
Czego ten projekt uczy
Największe ryzyko w systemie rozliczeniowym nie leży w kodzie, tylko w regule, którą ktoś zapamiętał inaczej, niż ją liczy. Dlatego ten projekt zaczął się od odtworzenia wzoru z arkusza i dowodu rachunkiem, a nie od ekranów. Gdy klient ufa liczbom, łatwiej mu zaufać całej reszcie, i dlatego z generatora zestawień wyrósł system prowadzący firmę od oferty po sprawozdawczość magazynową.
Druga lekcja dotyczy danych. Testy na przykładach dowodzą, że reguła jest dobrze napisana. Dopiero przeliczenie na pełnych danych klienta pokazuje, czy jest dobrze zastosowana. W systemie, który liczy pieniądze cudzych klientów, potrzebne jest jedno i drugie.