Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 66883 Skopiuj do schowka Generator Mikrorachunku podatkowego
Autor Wiadomość
Artik 



Wersja: Win Office 365
Pomógł: 2939 razy
Posty: 9712
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. :mrgreen:

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 379213 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

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