Elektryka
Fotowoltaika i magazyny energii. Falowniki, moduły, konstrukcja montażowa, trasy kablowe liczone od metra powyżej limitu, dźwig, magazyny energii z rackiem i montażem.
Handlowiec firmy instalacyjnej wraca z oględzin z notatkami: dach południowy, czterdzieści dwa metry pod panele, stary kocioł do wymiany, właściciel pyta jeszcze o okna. Do wieczora ma wysłać ofertę. Każda z tych rzeczy to inny cennik, inna stawka robocizny, inna stawka VAT i inna marża.
Wcześniej robiło się to w arkuszu kalkulacyjnym — skopiowanym od kolegi, z zeszłorocznymi cenami i formułą, której nikt już nie rozumiał. Wyceny się rozjeżdżały, marża wyparowywała po cichu, a zarząd dowiadywał się o tym z faktury.
Stan repozytorium na 25 sierpnia 2026. Podaję te liczby, bo są sprawdzalne — kod jest objęty umową, ale mogę go pokazać na żywo podczas rozmowy.
System liczy pieniądze, więc regresja nie jest niedogodnością — jest błędem na fakturze. Stąd proporcja: niemal tyle samo kodu testów co kodu aplikacji, uruchamianego przy każdym zapisie razem z analizą statyczną.
Kartoteka z pełną historią kontaktu. Jeden klient może mieć wiele projektów rozłożonych na lata — dach dziś, pompa ciepła za dwa sezony.
Jedna ścieżka sprzedaży spinająca oferty z różnych działów. Numeracja nadawana automatycznie, status prowadzony przez zdefiniowany obieg, każda zmiana z notatką i autorem.
Sześć kreatorów krok po kroku. Handlowiec wybiera urządzenia i parametry budynku, nie widząc cen — kwota pojawia się dopiero w podsumowaniu, żeby nie kusiła do dopasowywania wyceny po drodze.
Kosztorys w PDF dla klienta i wersja wewnętrzna z rozbiciem marż. Wysyłka mailem według reguł — zmiana statusu może sama wysłać wiadomość z załącznikiem.
Generowana z edytowalnego szablonu, z aneksami dla korekty danych oraz korekty pozycji i kwot. Po podpisaniu system wysyła zdarzenie do zewnętrznych automatyzacji.
Każdy dział ma własną logikę wyceny, ale wspólny kontrakt: te same pozycje kosztorysu, te same reguły marż, ten sam mechanizm rabatów. Ceny pochodzą wyłącznie z jednego cennika — w kalkulatorach nie ma żadnych wartości zaszytych w kodzie, więc podniesienie ceny materiału w panelu zmienia wszystkie przyszłe oferty i nic poza tym.
Fotowoltaika i magazyny energii. Falowniki, moduły, konstrukcja montażowa, trasy kablowe liczone od metra powyżej limitu, dźwig, magazyny energii z rackiem i montażem.
Pompy ciepła, kotły, zasobniki, bufory, grzałki, kominy, klimatyzacja i odbiorniki ciepła — z robocizną zależną od typu urządzenia.
Ściany, dach, poddasze, strop, podłoga. Pięć systemów ociepleń, wykończenia, wylewki i elementy betonowe liczone od metra kwadratowego lub sześciennego.
Okna i drzwi wyceniane po wymiarach i profilu — producenci, typy otwierania, kolory, montaż i obróbka, pozycja po pozycji.
Usługi projektowe i audyty jako osobna linia sprzedaży, z własnym cennikiem i własną strukturą marż.
Furtka na usługi spoza katalogu: pozycja wpisywana ręcznie, z możliwością awansu do cennika, ze stawką VAT ustalaną osobno dla każdego wiersza.
Zrzuty z działającej instalacji, na danych przykładowych. Publikowane za zgodą klienta.



Opisuję też błędy, które sam popełniłem i naprawiłem. Uważam, że to mówi o wykonawcy więcej niż lista technologii.
Marża firmy i marża handlowca są rozdzielane na pozycje kosztorysu proporcjonalnie, osobno dla każdej sekcji. Zaokrąglenia nie mogą się kumulować, więc ostatnia pozycja w sekcji dostaje różnicę między sumą oczekiwaną a rozdaną. Bez tego oferta na sto osiemdziesiąt tysięcy potrafiła rozjechać się o kilkanaście groszy — dokładnie tyle, żeby zadzwoniła księgowość.
Każdy zapis oferty tworzy migawkę z różnicą przed i po. Przywrócenie starszej wersji odtwarza ją dosłownie, bez ponownego przeliczania. To celowe: oferta sprzed pół roku ma zostać taka, jaką zobaczył klient, nawet jeśli cennik zmienił się od tego czasu trzy razy.
Handlowiec może zejść z ceny, ale tylko do wysokości własnego narzutu i prowizji — system zna ten limit i go pilnuje. Klient widzi na kosztorysie jawną linię rabatu, a nie po cichu obniżone ceny jednostkowe.
Audyt integracji wykazał, że jeden nieprawidłowy bajt w danych klienta powodował, że kodowanie danych cicho zwracało fałsz — a podpis kryptograficzny liczył się wtedy z pustego tekstu. Odbiorca dostawał pustą wiadomość z poprawnym podpisem i przyjmował ją bez zastrzeżeń. Zapis do dziennika wywalał się na tym samym kodowaniu, więc nie zostawał żaden ślad. To klasa błędu warta zapamiętania: funkcja, która zwraca fałsz, zamiast rzucić wyjątkiem.
Projekt komercyjny, wdrożony i rozwijany produkcyjnie. Kod objęty umową — dostępny do omówienia i pokazu na żywo.
Jeśli u Ciebie oferty też powstają w arkuszu, a marża rozjeżdża się po cichu — to jest dokładnie ten typ systemu, który buduję. Zacznij od sprawdzenia, ile ta robota kosztuje Cię rocznie.