|
|
|
REGONREGON (akronim od Rejestr Gospodarki Narodowej) - Krajowy Rejestr Urzędowy Podmiotów Gospodarki Narodowej, rejestr statystyczny prowadzony przez Prezesa Głównego Urzędu Statystycznego. Pod pojęciem REGONu rozumiany jest także Numer REGON, czyli dziewięciocyfrowy numer statystyczny podmiotu gospodarczego w powyższym rejestrze.
[edytuj] Budowa numeru REGON[edytuj] 9-cyfrowy REGONPoczątkowo, REGON był 7-cyfrowy, a numery były nadawane centralnie. Później (ok. 1985-90 r.) rozszerzono REGON na 9 cyfr, gdzie regonom "starym" (7-cyfrowym) po prostu dołożono na początku 2 zera, a nowe zaczęto tworzyć wg klucza: 2 cyfry wyróżnika województwa + 6 cyfr "nru seryjnego" + 1 cyfra kontrolna. Województw było 49 i miały nadane kolejne numery nieparzyste – od 01 (warszawskie) do 97 (zielonogórskie). [edytuj] Suma kontrolnaDziewiąta cyfra jest cyfrą kontrolną obliczaną następująco: Wagi: 8 9 2 3 4 5 6 7 Pierwsze osiem cyfr REGON: 1 2 3 4 5 6 7 8 Wynik: 1*8 + 2*9 + 3*2 + 4*3 + 5*4 + 6*5 + 7*6 + 8*7 = 192 Cyfra kontrolna: 192 mod 11 = 5 Cały REGON: 123456785 W przypadku, gdy mod zwraca 10 za cyfrę kontrolną przyjmuje się 0. [edytuj] 14-cyfrowy REGONJednostkom organizacyjnym, które mają swoje siedziby w różnych województwach nadaje się REGON 14-cyfrowy (identyfikator jednostki lokalnej). Dziewięć pierwszych cyfr takiego numeru pokrywa się z REGONem jednostki macierzystej. Cyfra kontrolna numeru obliczana jest tym samym sposobem, ale wagi są inne. Ponieważ jeden ze współczynników wagowych wynosi zero to weryfikacja "długiego" REGONu wymaga weryfikacji 9 cyfr z wagami jak dla 9-cyfrowego numeru, a następnie weryfikacji długiego REGONu z innymi wagami. [edytuj] Suma kontrolnaW przypadku REGONów 14-cyfrowych cyfrę kontrolną oblicza się następująco: Wagi: 2 4 8 5 0 9 7 3 6 1 2 4 8 Pierwsze trzynaście cyfr REGON: 1 2 3 4 5 6 7 8 5 1 2 3 4 Wynik: 1*2 + 2*4 + 3*8 + 4*5 + 5*0 + 6*9 + 7*7 + 8*3 + 5*6 + 1*1 + 2*2 + 3*4 + 4*8 = 260 Cyfra kontrolna: 260 mod 11 = 7 Cały REGON: 12345678512347 [edytuj] Implementacja algorytmu w języku Pythondef check_REGON(regon): weights = ( (8, 9, 2, 3, 4, 5, 6, 7, -1), (2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8, -1), (8, 9, 2, 3, 4, 5, 6, 7, -1, 0, 0, 0, 0, 0), ) weights = [table for table in weights if len(table) == len(number)] regon = [int(n) for n in regon] for table in weights: checksum = sum(n * w for n, w in zip(regon, table)]) if checksum % 11 % 10 != 0: return False return bool(weights) [edytuj] Zobacz też[edytuj] Linki zewnętrzne |