Тъп въпрос !
16 отговора
598 прегледа
Re: Тъп въпрос !
виж това
Ама ако ползваш данъчния номер - този алгоритъм който съм публикувал - май има някакъв проблем- само за някои номера - което е много странно.
---
Е т'ва е живот!
Ама ако ползваш данъчния номер - този алгоритъм който съм публикувал - май има някакъв проблем- само за някои номера - което е много странно.
---
Е т'ва е живот!
Re: Тъп въпрос !
Мерси :)
Това с БУЛСТАТ върви (поне на мен така ми се струва).
Ама не намерих нищо из интернет за ЛНЧ(ЕНЧ).
Това с БУЛСТАТ върви (поне на мен така ми се струва).
Ама не намерих нищо из интернет за ЛНЧ(ЕНЧ).
Re: Тъп въпрос !
unit EGNCheck;
interface
const EGN_Mod_11_Coef : array[1..9] of byte = (2,4,8,5,10,9,7,3,6);
type EGNString = string[10];
{Проверява ЕГН}
function CheckEGN(EGN : EGNString) : boolean;
{}
function CheckEGN_Mod11(EGN : EGNString) : boolean;
{}
function CheckEGN_Date(EGN : EGNString) : boolean;
{Взема дата от ЕГН}
function GetDateFromEGN(EGN : EGNString) : TDateTime;
{Проверява дали годината е високосна}
function LeapYear(Year : word) : boolean;
{Образува ЕГН от подадена дата, като последните 4 символа са нули}
function DateToEGNwith0(Date : TDateTime): string;
implementation
uses SysUtils;
function DateToEGNwith0(Date : TDateTime): string;
var Y,M,D : word;
S : string[10];
begin
DecodeDate(Date,Y,M,D);
if (Y >=1800) and (Y<=1899) then
M := M + 20;
if (Y >=1900) and (Y<=1999) then M := M + 0;
if (Y >=2000) then M := M + 40;
Result := Copy(IntToStr(Y),3,2);
S := IntToStr(M);
if Length(S) = 1 then S := '0' + S;
Result := Result + S;
S := IntToStr(D);
if Length(S) = 1 then S := '0' + S;
Result := Result + S + '0000';
end;
function GetDateFromEGN(EGN : EGNString) : TDateTime;
var Y,M,D : word;
begin
Y := StrToInt(Copy(EGN,1,2));
M := StrToInt(Copy(EGN,3,2));
D := StrToInt(Copy(EGN,5,2));
if M > 20 then
begin
if M > 40 then begin
M := M - 40;
Y := Y + 2000;
end
else begin
M := M - 20;
Y := Y + 1800;
end
end
else Y := Y + 1900;
try
Result := EncodeDate(Y,M,D);
except
on EConvertError do
begin
Result := 0;
end;
end;
end;
function LeapYear(Year : word) : boolean;
begin
if (Year mod 4 <> 0) then
Result := False
else if (Year mod 100 <> 0) then
Result := true
else if (Year mod 400 <> 0) then
Result := False
else Result := True;
end;
function CheckEGN_Date(EGN : EGNString) : boolean;
var Y,M,D : word;
begin
Y := StrToInt(Copy(EGN,1,2));
M := StrToInt(Copy(EGN,3,2));
D := StrToInt(Copy(EGN,5,2));
if M > 20 then
begin
if M > 40 then begin
M := M - 40;
Y := Y + 2000;
end
else begin
M := M - 20;
Y := Y + 1800;
end
end
else Y := Y + 1900;
Result := True;
try
EncodeDate(Y,M,D);
except
on EConvertError do
begin
Result := False;
end;
end;
end;
function CheckEGN_Mod11(EGN : EGNString) : boolean;
var i,M : integer;
begin
if EGN[0] < #10 then
begin
Result := False;
exit;
end;
M := 0;
for i := 1 to 9 do
begin
M := M + StrToInt(EGN)*EGN_Mod_11_Coef;
end;
M := (M mod 11) mod 10;
Result := StrToInt(EGN[10]) = M;
end;
function CheckEGN(EGN : EGNString) : boolean;
begin
Result := CheckEGN_Mod11(EGN) and CheckEGN_Date(EGN);
end;
end.
Никога не е късно човек да се провали!
Re: Тъп въпрос !
това е за ЕГН, и изглежда правилно... обаче дали и за ЛНЧ е така?
из разните правителствени ситове пише: "
...ЛНЧ се формира по начин указан от министерския съвет..."
който начин по никой начин неможах да намеря...
--------------------------------------
Започва Път от моят праг...
из разните правителствени ситове пише: "
...ЛНЧ се формира по начин указан от министерския съвет..."
който начин по никой начин неможах да намеря...
--------------------------------------
Започва Път от моят праг...
ЛНЧ - ЕГН
Мисля, че ЛНЧ е аналог на ЕГН но на чужденци.
Мога да питам но сага нямам време
Никога не е късно човек да се провали!
Мога да питам но сага нямам време
Никога не е късно човек да се провали!
Re: ЛНЧ - ЕГН
Не е едно и също.
В ЛНЧ няма дати на райдане и др.
За моито номера с контролната сума става, ама пробвах още едно и се оказа, че не става (или ЛНЧ-то е объркано).
В ЛНЧ няма дати на райдане и др.
За моито номера с контролната сума става, ама пробвах още едно и се оказа, че не става (или ЛНЧ-то е объркано).
Re: ЛНЧ - ЕГН
Уточнение ЛНЧ = ЕГН за български граждани, за чуждите е друго - естествено е да не можеш да го провериш с този алгоритъм. Това е според моите скромни познания - не съм чул за промяна все още - но ако трябва ще проверя. Според новите изисквания на НОИ - ЛНЧ за чужденците се попълва дата месец и година на раждане + пол! За нашите ЕГН -та няма нужда от това.
---
Е т'ва е живот!
---
Е т'ва е живот!
Re: ЛНЧ - ЕГН
Адреса на ГРАО дава подробна информация за ЕГН-то. Но никъде не можах да намеря как се формира ЛНЧ освен в ЗАКОН ЗА БЪЛГАРСКИТЕ ДОКУМЕНТИ ЗА САМОЛИЧНОСТ.
Раздел III
Данни в българските документи за самоличност
Чл.16. (1) Българските документи за самоличност съдържат следните задължителни лични данни:
1. имена;
2. дата на раждане;
3. единен граждански номер (или личен номер за чужденец);
4. пол;
5. гражданство.
(2) Наименованието на данните по ал.1 се изписват на български и английски език.
(3) (нова,ДВ,бр.67 от 1999 г.) Личният номер за чужденец (ЛНЧ) идентифицира еднозначно дългосрочно пребиваващите чужденци в Република България. Начинът на неговото формиране се определя от Министерския съвет.
Никъде официално не е публикуван начина за това формиране.
Един колега каза, че може да го намери но още не се е обадил.
Чакам. Ще го публикувам веднага когато ми стнаое ясно нещо по въпроса.
Никога не е късно човек да се провали!
Раздел III
Данни в българските документи за самоличност
Чл.16. (1) Българските документи за самоличност съдържат следните задължителни лични данни:
1. имена;
2. дата на раждане;
3. единен граждански номер (или личен номер за чужденец);
4. пол;
5. гражданство.
(2) Наименованието на данните по ал.1 се изписват на български и английски език.
(3) (нова,ДВ,бр.67 от 1999 г.) Личният номер за чужденец (ЛНЧ) идентифицира еднозначно дългосрочно пребиваващите чужденци в Република България. Начинът на неговото формиране се определя от Министерския съвет.
Никъде официално не е публикуван начина за това формиране.
Един колега каза, че може да го намери но още не се е обадил.
Чакам. Ще го публикувам веднага когато ми стнаое ясно нещо по въпроса.
Никога не е късно човек да се провали!
Решение
ЛНЧ.
За ЛНЧ (n1n2n3n4n5n6n7n8n9n10)
(n1*21+n2*19+n3*17+n4*13+n5*11+n6*9+n7*7+n8*3+n9*1) MOD 10 =n10
т.е. теглата са 21,19,17,13,11,9,7,3,1
Същото е както ЕГН но теглата са други и се дели на 10 а не на 11.
БУЛСТАТ
има инфо тук "Структура на ЕИК"
Никога не е късно човек да се провали!
За ЛНЧ (n1n2n3n4n5n6n7n8n9n10)
(n1*21+n2*19+n3*17+n4*13+n5*11+n6*9+n7*7+n8*3+n9*1) MOD 10 =n10
т.е. теглата са 21,19,17,13,11,9,7,3,1
Същото е както ЕГН но теглата са други и се дели на 10 а не на 11.
БУЛСТАТ
има инфо тук "Структура на ЕИК"
Никога не е късно човек да се провали!
Re: ЛНЧ - ЕГН
Уточнение : доколкото ми е известно българските граждани нямат ЛНЧ.
ЛНЧ не съдържа дата, месец, година и пол, това май е просто един 9 цифрен номер с контролна сума.
Проблема е, че аз съм чужд гражданин (имам ЛНЧ) и сега, като NejDet публикува разбирам, че или ЛНЧ-то ми е сгрешено или има промени в начина на създаване на ЛНЧ.
При проверка с алгоритъма(теглата) за ЕГН (без проверка за месец и ден), ми дава, че е ок (ама за ЕГН, а аз си пиша там ЛНЧ-то).
Другото ЛНЧ, което не ставаше с теглата за ЕГН няма проблеми с тези за ЛНЧ.
ЛНЧ не съдържа дата, месец, година и пол, това май е просто един 9 цифрен номер с контролна сума.
Проблема е, че аз съм чужд гражданин (имам ЛНЧ) и сега, като NejDet публикува разбирам, че или ЛНЧ-то ми е сгрешено или има промени в начина на създаване на ЛНЧ.
При проверка с алгоритъма(теглата) за ЕГН (без проверка за месец и ден), ми дава, че е ок (ама за ЕГН, а аз си пиша там ЛНЧ-то).
Другото ЛНЧ, което не ставаше с теглата за ЕГН няма проблеми с тези за ЛНЧ.
Re: Решение
Мерси ама май ще имам проблем :(
Значи:
ЛНЧ-то, което не ставаше с теглата за ЕГН става с тези, ама другото (мойто) не става.
Възможно е да са го сбъркали (те два пъти ми бъркаха името:), другия вариани, е да има някакви промени.
Къде ли ще трябва да ходя да проверявам ? (направо ми се драйфа, като знам, какво разкарване ще падне)
Значи:
ЛНЧ-то, което не ставаше с теглата за ЕГН става с тези, ама другото (мойто) не става.
Възможно е да са го сбъркали (те два пъти ми бъркаха името:), другия вариани, е да има някакви промени.
Къде ли ще трябва да ходя да проверявам ? (направо ми се драйфа, като знам, какво разкарване ще падне)
Re: Решение
Можеш да идеш там където са ти дали ЛНЧ да го проверят пак или в служба ГРАО. Във всяка по голяма община я има.
Другия вариант е да ми дадеш ЛНЧ-то си и аз да го препратя на човека който ми даде теглата. Работи в Здравната каса. Ако има проблем ще ми каже какъв е.
Остави ми бележка
Никога не е късно човек да се провали!
Другия вариант е да ми дадеш ЛНЧ-то си и аз да го препратя на човека който ми даде теглата. Работи в Здравната каса. Ако има проблем ще ми каже какъв е.
Остави ми бележка
Никога не е късно човек да се провали!
Re: Тъп въпрос !
този линк в момента не върви,може ли да ми покажете кода някъде другаде?
Re: Решение
В ГРАО няма да ми свършат работа (май се занимават само с ЕГН-тата), е и последния път ми загубиха 3 дни понеже ми бяха дописали четвърто име (много тъпа работа).
ЕНЧ-то май го дават от полисията, в паспорта имам един печат на който пише ЕНЧ и с химикал са надраскано 10 цифри. (в личната карта тоя номер го няма)
Не искам да те занимавам с такива простотии (м/у другото роден съм в България, така че имам българско ЕГН, а ЕНЧ-то все още никой не ми го е искал:).
ЕНЧ-то май го дават от полисията, в паспорта имам един печат на който пише ЕНЧ и с химикал са надраскано 10 цифри. (в личната карта тоя номер го няма)
Не искам да те занимавам с такива простотии (м/у другото роден съм в България, така че имам българско ЕГН, а ЕНЧ-то все още никой не ми го е искал:).
Re: Решение
Това с теглата 21,19,17 и т.н явно вече не върви. Имам няколко ЛНЧ-та, които не го удовлетворяват.
Знаете ли нещо по-ново?
Знаете ли нещо по-ново?
Re: Решение
Преди 2 години водих един дълъг мейл разговор с ГРАО админите по този въпрос - за ЕНЧ-то. Те ми казаха, че няма алгоритъм за проверка на ЕНЧ. Насочиха ме към този мейл адрес за доп. въпроси - int.110@mvr.bg
След като им писах ми отговориха следното:
Г-н ******,
В отговор на Вашето запитване, Ви уведомяваме, че ЕНЧ (ЛНЧ-личен номер на чужденец) се дава на дългосрочно пребиваващите (над 3 месеца) чужденци в РБ, по смисъла на Закона за чужденците в РБ /ЗЧРБ/.
За тези категории чужденци той се явява задължителен реквизит от издаваните им български документи за самоличност и съгласно приложение 1 към чл.25 от Закона за защита на класифицираната информация /раздел ІІ, т.27/, представлява класифицирана информация, достъпа до която се регламентира от същия закон.
04.02.2005г
След още малко препирни с тези бетонни глави се отказах да търся алгоритъм за ЕНЧ.
След като им писах ми отговориха следното:
Г-н ******,
В отговор на Вашето запитване, Ви уведомяваме, че ЕНЧ (ЛНЧ-личен номер на чужденец) се дава на дългосрочно пребиваващите (над 3 месеца) чужденци в РБ, по смисъла на Закона за чужденците в РБ /ЗЧРБ/.
За тези категории чужденци той се явява задължителен реквизит от издаваните им български документи за самоличност и съгласно приложение 1 към чл.25 от Закона за защита на класифицираната информация /раздел ІІ, т.27/, представлява класифицирана информация, достъпа до която се регламентира от същия закон.
04.02.2005г
След още малко препирни с тези бетонни глави се отказах да търся алгоритъм за ЕНЧ.