EGN
9 отговора
834 прегледа
EGN
Някой може ли да ми каже от къде мога да намеря таблицата за ЕГН , Данъчен номер и Булстат - трябва да направя програма за тяхната проверка за валидност.
// За егн намерих ама за др. не
Благодаря предварително.
// За егн намерих ама за др. не
Благодаря предварително.
Re: EGN
Но за данъчен номер май няма там.
----------------------------------
помислих, хареса ми, помислих пак...
----------------------------------
помислих, хареса ми, помислих пак...
Re: EGN
Sorry, че е в такъв вид - ама един познат ми го прати преди години - мога да ти пусна и код ако искаш - ама е Pascal ;-))
---------------------------- EGN -------------------------------------
-- d1, d2..., d10 sa chislata na EGN ot liavo na diasno
-- brojat na znacheshtite cifri triabva da byde mejdu 2 i 10
-- uslowieto za prawilno EGN e
-- d10 = MOD( MOD( 2*d1 + 4*d2 + 8*d3 + 5*d4 + 10*d5 + 9*d6 + 7*d7 + 3*d8 +
6*d9, 11 ), 10 );
--------------------------- BULSTAT ---------------------------------
-- d1, d2..., d9 sa chislata na BULSTAT, a d10...d13 na nomera ot liavo na
diasno
-- checksum = MOD( 1*d1 + 2*d2 + 3*d3 + 4*d4 + 5*d5 + 6*d6 + 7*d7 + 8*d8,
11 );
-- IF checksum = 10 THEN
-- checksum = MOD( MOD( 3*d1 + 4*d2 + 5*d3 + 6*d4 + 7*d5 + 8*d6 + 9*d7 +
10*d8, 11 ), 10 );
-- uslowieto za weren BULSTAT e
-- checksum = d9
--
-- ako sledwa]ite 4 cifri gi ima:
-- checksum = MOD( 2*d9 + 7*d10 + 3*d11 + 5*d12, 11 );
-- IF checksum = 10 THEN
-- checksum = MOD( MOD( 4*d9 + 9*d10 + 5*d11 + 7*d12, 11 ), 10 );
-- uslowieto za weren nomer e
-- checksum = d13
----------------------------- Данъчен номер ---------------------------
TIN(tax identification number) e 10 cifreno chislo.
10tata cifra e kontrolna.
izchislqwa se po sledniq nachin:
neka 1,2,3,4,5,6,7,8,9 sa poziciite w TIN ot liawo na diasno.
opredelqme slednite tegla: 4,3,2,7,6,5,4,3,2
umnozhawame wsqka poziciq po syotwetnoto teglo.
sybirame tezi proizwedeniq i razdelqme poluchenata
suma na 11.
kontrolnoto chislo (10tata cifra) = 11 - ostatykyt pri
delenieto s 11.
ako ostatykyt e 1, to TIN e newaliden
ako ostatykyt e 0, to kontrolnoto chislo syshto e 0.
---
Е т'ва е живот!
---------------------------- EGN -------------------------------------
-- d1, d2..., d10 sa chislata na EGN ot liavo na diasno
-- brojat na znacheshtite cifri triabva da byde mejdu 2 i 10
-- uslowieto za prawilno EGN e
-- d10 = MOD( MOD( 2*d1 + 4*d2 + 8*d3 + 5*d4 + 10*d5 + 9*d6 + 7*d7 + 3*d8 +
6*d9, 11 ), 10 );
--------------------------- BULSTAT ---------------------------------
-- d1, d2..., d9 sa chislata na BULSTAT, a d10...d13 na nomera ot liavo na
diasno
-- checksum = MOD( 1*d1 + 2*d2 + 3*d3 + 4*d4 + 5*d5 + 6*d6 + 7*d7 + 8*d8,
11 );
-- IF checksum = 10 THEN
-- checksum = MOD( MOD( 3*d1 + 4*d2 + 5*d3 + 6*d4 + 7*d5 + 8*d6 + 9*d7 +
10*d8, 11 ), 10 );
-- uslowieto za weren BULSTAT e
-- checksum = d9
--
-- ako sledwa]ite 4 cifri gi ima:
-- checksum = MOD( 2*d9 + 7*d10 + 3*d11 + 5*d12, 11 );
-- IF checksum = 10 THEN
-- checksum = MOD( MOD( 4*d9 + 9*d10 + 5*d11 + 7*d12, 11 ), 10 );
-- uslowieto za weren nomer e
-- checksum = d13
----------------------------- Данъчен номер ---------------------------
TIN(tax identification number) e 10 cifreno chislo.
10tata cifra e kontrolna.
izchislqwa se po sledniq nachin:
neka 1,2,3,4,5,6,7,8,9 sa poziciite w TIN ot liawo na diasno.
opredelqme slednite tegla: 4,3,2,7,6,5,4,3,2
umnozhawame wsqka poziciq po syotwetnoto teglo.
sybirame tezi proizwedeniq i razdelqme poluchenata
suma na 11.
kontrolnoto chislo (10tata cifra) = 11 - ostatykyt pri
delenieto s 11.
ako ostatykyt e 1, to TIN e newaliden
ako ostatykyt e 0, to kontrolnoto chislo syshto e 0.
---
Е т'ва е живот!
Re: EGN
За егн и булстат съм го направил ама за данъчния номер несъм
що то немога да намеря таблицата.
Всепак благодаря
що то немога да намеря таблицата.
Всепак благодаря
Re: EGN
Пробвох това което си дал за данъчния намер но нещо не е така .
Пример :
4 3 2 7 6 5 4 3 2 - тегла
1 2 2 1 1 6 9 5 9 6
==============
резултат = 126
5 = 126 mod 11
да ли бъркам някъде !

Пример :
4 3 2 7 6 5 4 3 2 - тегла
1 2 2 1 1 6 9 5 9 6
==============
резултат = 126
5 = 126 mod 11
да ли бъркам някъде !
Re: EGN
Да, не си забелязал правилно, че контролната цифра е равна на:
т.е. от 11 се изважда остатъка след делението на 11 ;о)
айде, и успех.
П.П. На Бейсик ли пишеш?
----------------------------------
помислих, хареса ми, помислих пак...
intCheck = 11 - (intSum Mod 11)
т.е. от 11 се изважда остатъка след делението на 11 ;о)
айде, и успех.
П.П. На Бейсик ли пишеш?
----------------------------------
помислих, хареса ми, помислих пак...
Редактирано от Щиpлиц на
За "мързеливите" - тук...
Мисля, че кода е достатъчно ясен
---
Е т'ва е живот
function CheckDanNumb(S:String):Boolean;
const T : array [1..9] of Byte = (4, 3, 2, 7, 6, 5, 4, 3, 2);
var i : Integer;
Sum: Integer;
begin
Result := false;
if Length(S) <> 10 then Exit;
Sum := 0;
for i := 1 to 9 do Sum := Sum + T[ i ]*StrToInt(S[ i ]);
Result := ( 11 - ( Sum Mod 11 )) = StrToInt( S[10] );
end;
---
Е т'ва е живот
Редактирано от PhantomAS на