A tag webfejlesztőjének blogja

Az adóalany nyilvántartási száma (TRN) a Kazah Köztársaság adófizetőinek adminisztrációjához szükséges okmány.

A TRN felépítése

A PHN egy 12 jegyű szám.

  • Az első vonal (2 bit) a körzetszám. A kódolás a "Rendszerigazgatási területi hatóságok kijelölésének rendszere" (SOATO) minősítő kódjának 3, 4 számjegyét használja.
  • A második rész (2 számjegy) a körzetszám. Az adótanácsok listája és száma megfelel a Kazah Köztársaság Pénzügyminisztériumának rendszerében elfogadott régió körzetének kódjainak.
  • A harmadik facet (1 számjegy) - értéke: 0 - jogi személyek számára, 1-9 - magánszemélyek számára.
  • A negyedik oldal (6 számjegy) az adózó rendszáma, amelyet az adóhatóság rendeli el.
  • Ötödik oldal (1 számjegy) - ellenőrző számjegy

Algoritmus az ellenőrző kisülés ellenőrzéséhez

Mindegyik kisülési TIN (beütésszám balról jobbra), kivéve az utolsó 12. számjegy, súlyokat 1 és 10 11. számjegy van egy tömege egyenlő 1. Határozza meg a termékek mennyisége az a tömeg minden egyes bit értékek (S = r1 * + r2 * 1 2 +. + R 10 * 10 + r 11 * 1). A kapott összeget 11-gyel osztjuk meg, és a C egész részét hozzárendeljük (vagyis a legnagyobb egész szám, amelyre S maradék nélkül oszlik). A termékösszeg és az ebben az összegben a 11 modulszámú teljes szám közötti különbség meghatározása (i = S - C * 11). Ha a különbség kevesebb, mint 10, akkor ez a vezérlő bit értéke. Ha az ellenőrző számjegy után az első menetben nagyobb vagy egyenlő 10, a számítás megismételjük, de a súlya az egyes létesítmény, kezdve 2. A harmadik lépés, illetve 3, stb Ha az eredmény 10 ciklus ismétlése a számítás értéke mindig nagyobb vagy egyenlő, mint 10, akkor egy adott számú adófizető nyilvántartási szám kizárt.

Végrehajtás PHP-ben

visszatérés ($ k == substr ($ rnn, 11. 1));
>

PS. könyvtár "A Kazah Köztársaság régiói és régiói kódjai", amely szerint a TRN és a régió / régió első négy számjegyét hasonlítják össze. A könyvtár elavulttá vált, és a törvény, amellyel elhaladt, elvesztette erejét, de legalábbis így van.

Az IIN helyességének ellenőrzése:

Kiegészítő ellenőrzés. A dekódolásra épül.

  • izolálja a születési dátumot az IIN-től és ellenőrizze. Ha a dátum helytelen, akkor az IIN lehet, hogy nem helyes
  • Ha a 7 bit 0 vagy nagyobb, mint 6, akkor az IIN lehetetlen

Miért írok "lehet, hogy nem igaz", mert mindent az emberi tényező dönti el! A piaci szereplők keze nem mindig növekszik, ahonnan jönnek, végül úgy tűnik, hogy az IIN helytelenül írt dátummal szerepel, a 850812 helyett például 120885-et írnak. Vagy valahol lepecsételik őket.

Alapvető ellenőrzés. Ellenőrző számjegy, 12 számjegy. Formáció algoritmusa

  1. Összegezzük az összeget. A termék összege a kibocsátás sorrendjében az értékével. Vagyis a 850812 esetében az összeg kezdődik (1 * 8 + 2 * 5 + 3 * 0 + 4 * 8 + 5 * 1 + 5 * 2 +.). A fennmaradó összeget elosztjuk 11-tel. Ha a maradék összege 10, akkor menjünk a második lépésre. Ha nem egyenlő a 10-gyel, akkor hasonlítsa össze a vezérlést a maradékkal. Ha egyenlő - az IIN helyes.
  2. Itt találjuk magunkat, ha az első lépés eredményeképpen megkaptuk a maradék 10-et. Itt is összefoglaljuk a bitértékek termékeit, csak ezúttal nem a sorszámokkal, hanem a számjegyek súlyával. A súly az alábbiak szerint alakul: az elosztás fennmaradó része 11 összeggel (a kibocsátási szám rendes száma + 2). Vagyis a 850812 esetében az első súly 3, a második pedig 4, és így tovább. Ha a súly 0-ra változik, akkor a súly 11-re változik. a fennmaradó összeget elosztjuk 11-tel, ha 10-et kapunk, akkor ezt az IIN-t nem használjuk. Ha nem, akkor 10-öt hasonlítjuk össze a kontroll számjegyével.

Általában így néz ki a php:

visszatérés ($ k == substr ($ nn 11 1));
>
visszatérés ($ k == substr ($ nn 11 1));
>

By the way, az algoritmus ellenőrzése ellenőrző kibocsátás alkalmas BINs.

Kapcsolódó cikkek