ID tematu: 66883
 |
Generator Mikrorachunku podatkowego |
Autor |
Wiadomość |
Artik


Wersja: Win Office 365
Pomógł: 3091 razy Posty: 10242
|
Wysłany: 06-01-2020, 04:30 Generator Mikrorachunku podatkowego
|
|
|
Będzie dwa w jednym.
Od 01.01.2020 podatnicy mają się rozliczać z fiskusem przelewając uciułane grosiki na indywidualne konto.
Budowa numeru konta jest dość prosta:
Cytat: | Mikrorachunek do płacenia podatków składa się – jak każdy rachunek bankowy – z 26 znaków według wzoru:
LK10100071222YXXXXXXXXXXXX
LK to liczba kontrolna. Dalszych 12 znaków (1010 0071 222) jest stałych. Kolejna wartość (we „wzorze” powyżej Y) to 1 – gdy indywidualny rachunek podatkowy wygenerowano na podstawie numeru PESEL – lub 2 gdy użyto numeru NIP. Kolejne znaki to numer PESEL lub NIP, a na końcu numeru są jeszcze 1-2 zera (jedno, gdy użyto numeru PESEL, który ma 11 znaków; dwa – gdy użyto numeru NIP, który ma 10 znaków). |
Na forum można znaleźć funkcje do sprawdzania prawidłowości numeru NRB. Ale chyba nie było jeszcze algorytmu do generowania liczby kontrolnej numeru rachunku. No to przy okazji będzie.
Kod: | Sub TestMikro()
MsgBox MikrorachunekPodatkowy("9292552313"), vbInformation, "NIP"
MsgBox MikrorachunekPodatkowy("73042453231", False), vbInformation, "PESEL"
End Sub
Function MikrorachunekPodatkowy(strNumer As String, Optional blnCzyNIP As Boolean = True)
Const NrIdBank As String = "10100071222"
Dim strNRB As String
Dim strLK As String
Dim strNrK As String
Dim lLiczba As Long
Dim lReszta As Long
Dim i As Long
'złożenie numeru konta
strNRB = NrIdBank & IIf(blnCzyNIP, "2", "1") & strNumer & IIf(blnCzyNIP, "00", "0")
'Algorytm generowania liczby kontrolnej NRB
'1. Na końcu ciągu cyfr dodaj numeryczny kod kraju i dwa zera (PL - 2521)
'2. Oblicz resztę z dzielenia modulo 97 otrzymanej "liczby"
'3. Resztę odejmij od 98
'4. Jeżeli otrzymałeś liczbę jednocyfrową, to poprzedź ją zerem
'1.
strNrK = strNRB & "252100"
'2.
'Ponieważ nie można bezpośrednio obliczyć reszty z dzielenia
'liczby 30 cyfrowej, należy liczbę "pociąć" na mniejsze kawałki
For i = 0 To 4
lLiczba = Val(lReszta & Mid(strNrK, 6 * i + 1, 6))
lReszta = lLiczba Mod 97
Next i
'3.
lReszta = 98 - lReszta
'4.
strLK = Format(lReszta, "00")
MikrorachunekPodatkowy = strLK & strNRB
End Function |
Życzę, by jak najmniej korzystać z tego konta.
Eeee, chyba złe życzenie. Mało płacisz to i mało zarabiasz.
Czyli, życzę by jak najwięcej korzystać z tego konta.
Artik |
_________________ Persistence is a virtue in the world of programming. |
|
 | ID posta:
379213
|
|
|
 |
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
 |
Strona używa plików cookies.
Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe
|