Weryfikacja kodów: PESEL, NIP i REGON
: czw lis 14, 2024 4:58 pm
Na forum kilkukrotnie pojawił się problem weryfikacji kodu PESEL. Za każdym razem rozwiązanie polegało na napisaniu własnej funkcji, która taką weryfikację wykona. Przygotowałem formułę, która weryfikuje ten kod, a ponieważ wiele osób, zwłaszcza tych, którzy prowadzą własną działalność gospodarczą, styka się także z kodami NIP i REGON, włączyłem do projektu weryfikacje także tych kodów. Projekt zawiera zatem trzy formuły weryfikujące.
Wynikiem wykonania formuły jest komunikat informujący o tym czy dany kod jest poprawny.
Każda z formuł zwraca następujące wspólne komunikaty:
Przy weryfikowaniu tego kodu mogą się pojawić dodatkowe dwa komunikaty:
Kod NIP pojawia się w zróżnicowanych zapisach, zawierających odstępy albo dywizy pomiędzy niektórymi grupami cyfr. Formuła weryfikująca usuwa (wewnętrznie) wszystkie spacje i dywizy i wykonuje weryfikację na tak zredukowanym kodzie. Czyli spacje i dywizy nie są wliczane do długości kodu.
Kod REGON.
Kod REGON występuje obecnie w dwóch wersjach: 9 cyfrowej i 14 cyfrowej. Formuła weryfikuje oba typy kodów.
Przygotowałem dwa zestawy formuł, jeden odpowiadający możliwościom programu Calc z pakietu Apache OpenOffice, drugi wykorzystujący funkcje niedostępne w Apache OpenOffice, w tym najnowsze, dostępne od wersji 24.8+ pakietu LibreOffice, co oznacza, że to rozwiązanie może zostać wykorzystane dopiero od wspomnianej wersji. Oczywiście rozwiązanie dla Apache OpenOffice może być wykorzystywane we wszystkich wersjach LibreOffice.
Rozwiązania zapisane są w plikach PESEL AOO.ods dla pierwszej wersji i PESEL LO.ods — dla drugiej.
W obu plikach umieściłem także generatory cyfr kontrolnych wspomnianych kodów.
Wynikiem wykonania formuły jest komunikat informujący o tym czy dany kod jest poprawny.
Każda z formuł zwraca następujące wspólne komunikaty:
- "Długość!", gdy wpisany kod nie składa się z wymaganej liczby znaków.
- "Cyfry!", gdy w kodzie pojawią się niedopuszczalne znaki.
- "<nazwa kodu> błędny", gdy wyliczona cyfra kontrolna jest niezgodna z podaną w kodzie.
- "<nazwa kodu> poprawny", gdy cyfry kodu są zgodne z cyfrą kontrolną.
Przy weryfikowaniu tego kodu mogą się pojawić dodatkowe dwa komunikaty:
- "Wiek XIX!", gdy data zakodowana w kodzie PESEL dotyczy XIX wieku. Uznałem, że w obecnych czasach nikt nie będzie wprowadzał PESEL-u osoby urodzonej przed rokiem 1900.
- "Błąd daty!", gdy na pozycjach zarezerwowanych na zakodowanie daty nie znajduje się prawidłowa data.
Kod NIP pojawia się w zróżnicowanych zapisach, zawierających odstępy albo dywizy pomiędzy niektórymi grupami cyfr. Formuła weryfikująca usuwa (wewnętrznie) wszystkie spacje i dywizy i wykonuje weryfikację na tak zredukowanym kodzie. Czyli spacje i dywizy nie są wliczane do długości kodu.
Kod REGON.
Kod REGON występuje obecnie w dwóch wersjach: 9 cyfrowej i 14 cyfrowej. Formuła weryfikuje oba typy kodów.
Przygotowałem dwa zestawy formuł, jeden odpowiadający możliwościom programu Calc z pakietu Apache OpenOffice, drugi wykorzystujący funkcje niedostępne w Apache OpenOffice, w tym najnowsze, dostępne od wersji 24.8+ pakietu LibreOffice, co oznacza, że to rozwiązanie może zostać wykorzystane dopiero od wspomnianej wersji. Oczywiście rozwiązanie dla Apache OpenOffice może być wykorzystywane we wszystkich wersjach LibreOffice.
Rozwiązania zapisane są w plikach PESEL AOO.ods dla pierwszej wersji i PESEL LO.ods — dla drugiej.
W obu plikach umieściłem także generatory cyfr kontrolnych wspomnianych kodów.