Jak zmniejszyłem maksymalny NIP

Prawie 3 lata temu zastanawialiśmy się z klientem biuro obsługi podatkowej jak stworzyć system webowy, który pozwalałby klientom oraz pracownikom biura na przekazywanie danych istotnych z punktu widzenie prowadzenia firmy, a jednocześnie na tyle prostych, żeby nie trzeba było przechodzić kursu księgowości, żeby zrozumieć działanie takiego systemu.

Na początku został stworzony prosty rejestr klientów w którym każdy z nich może sobie sprawdzić podstawowe dane księgowe. System na start został wyposażony w możliwość wysyłania powiadomień, w których to zawarte są informacje na temat nadciągających nieuchronnie terminów płatności różnych rabowanych nam przez państwo składek. Sam je płacę, więc wiem, a latami miałem ustawioną przypominajkę z kalendarza google.

Wracając do meritum sprawy. Po kilkunastu miesiącach pracy pojawiła się w systemie, jedna z wielu, mała modyfikacja, polegająca na tym, że do firm typu „spółka” można było dołączyć dane wspólników, które mogli oni sobie sprawdzać samodzielnie.

A potem pojawił się błąd. Klient zgłasza, że nie można wprowadzić numeru NIP wspólnika. Zaczynam sprawdzać, raz, drugim trzeci. W kodzie nie ma NICZEGO co sugerowałoby jakiekolwiek operacje na nipie, a walidacja nigdy klientowi nie była potrzebna, bo i sam nip raczej służy do dodatkowej weryfikacji, a nie do czegoś istotnego. Co grosza, moje testy nie pokazywały występowania błędu!!! Wpisywałem prawdziwe, zmyślone i całkiem złe numery nip i nigdy nie napotkałem na opisywany problem. Najgorszym objawem było to że w NIP pojawiał się, niezależnie od wpisywanego numer: 4294967295. Zupełnie nie zwróciłem na tą liczbę uwagi, a powinienem, bo jest ona rozwiązaniem kłopotu.

Problem polegał na użytym polu w bazie danych MEDIUMINT który jest typem domyślnym w czasie deklaracji w mysql pola typu INT ma, bez znaku, taką właśnie wartość maksymalną.

Co ciekawe, przy konstrukcji bazy kilkanaście miesięcy wcześniej i definicji pola NIP na potrzeby firm, nie popełniłem tego błądu i wszystko działało prawidłowo.

Published by Marcin Pietrzak

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis nec ante nec lectus laoreet feugiat. Donec aliquet justo in tellus gravida, id elementum magna convallis. Curabitur faucibus mauris sed risus egestas lobortis. Nunc vestibulum elit ac ipsum ultricies, non ultrices lorem ultrices. Nam at dolor id elit lobortis ullamcorper. Fusce commodo turpis nisi, efficitur efficitur libero dictum eget. Morbi viverra dignissim lacus. Vestibulum mi justo, dictum ut iaculis eget, scelerisque et nibh.

Przeczytaj poprzedni wpis:
WordCamp w Łodzi

W drugi weekend grudnia w dniach 11-12 odbędzie się w Łodzi, na terenie Politechniki Łódzkiej, polska edycja WordCamp - czyli...

Zamknij