Skip to content

Program do pobierania, zapisu i odczytu z pliku płaskiego udostępnianego przez Ministerstwo Finansów

Notifications You must be signed in to change notification settings

michaljurzak1/FlatFileChecker

Repository files navigation

🗂️ FlatFileChecker - Wykaz Podatników VAT

Program do pobierania i odczytywania lokalnie za pomocą udostępnianego przez Ministerstwo Finansów pliku płaskiego.

Motywacja

Bazując na limitach użyć 10 zapytań na dzień (reset o 00:00), korzystanie z API okazuje się mocno ograniczone.

Program opiera się na instrukcjach w specyfikacji technicznej, w której możliwe jest sprawdzenie jedynie istnienia podatnika za pomocą NIP oraz Numeru Rachunku Bankowego.

Działanie

W repozytorium istnieją dwa rozwiązania: Pobieranie oraz Sprawdzanie.
Wykorzystywana jest lokalna baza danych SQLite, która jest tworzona w przypadku jej braku. Wszystkie rekordy w bazie danych, z wyjątkiem tabeli Dane są zamieniane.
Jest to spowodowane codziennym generowaniem pliku, a także wsadem do funkcji skrótu Sha512 w danych, który składa się z konkatenacji łańcuchów: data + nip + nrb, dlatego każdego dnia plik ma całkowicie inne dane.

Cały program wypisuje informacje zwrotne.

⬇️ Pobieranie

FlatFileDownload.exe

Pobiera najnowszy (dzisiejszy) plik płaski z oficjalnej strony. W przypadku braku istnienia bazy danych tworzy ją na potrzeby nowego pliku. Za każdym razem aktualizuje tabelę Dane dodając nowy rekord z datą i godziną pobrania, datą generowania oraz konieczną liczbą transformacji funkcji skrótu Sha512.

W każdy kolejny dzień dane zostaną pobrane, a następnie zastąpią istniejące rekordy w tabelach SkrotyPodatnikowCzynnych, SkrotyPodatnikowZwolnionych oraz Maski. Na końcu, po dodaniu / zamianie danych ustawia pozostałe flagi z kolumny deleted na 1 (usunięte).

Schemat bazy danych

✅ Sprawdzanie

FlatFileCheck.exe <NIP (10 znaków)> <Numer Rachunku Bankowego (26 znaków)>

Jeżeli baza danych nie istnieje lub jest nieaktualna z dzisiejszą datą, program pyta czy pobrać aktualne dane - należy potwierdzić.

Przyjmuje

Numer Identyfikacji Podatkowej oraz Numer Rachunku Bankowego.

Oba Argumenty nie mogą zawierać odstępów (white space).

Zwraca

Wypisuje komunikat o typie konta podatnika, a także w której tabeli w bazie się znajduje. Konto może być rzeczywiste, lub wirtualne:

  • rzeczywiste oznacza pojedyncze konto
  • konto wirtualne oznacza brak dosłownego istnienia go w bazie danych. Może, lecz nie musi istnieć, oznacza możliwe podkonto.

W przypadku braku istnienia pliku na serwerze, program pyta użytkownika o użycie istniejących danych z ostatnią datą.

About

Program do pobierania, zapisu i odczytu z pliku płaskiego udostępnianego przez Ministerstwo Finansów

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages