안녕하세요? 한가지 궁금한것이 있습니다.
사업자등록번호 오류검증을 하고 싶은데...
<사업자등록번호 체크방법>
A B C - D E - F G H I J
1 2 2 - 8 1 - 1 8 5 7 0
XY := I * 5 // 7 * 5 = 35
XY := 35
X := 3
Y := 5
MN := (X + Y + A + D + G) // (3 + 5 + 1 + 8 + 8)
+ ((B + E + H) * 3) // + ((2 + 1 + 5) * 3)
+ ((C + F) * 7) // + ((2 + 1) * 7) = 70
MN := 70
M := 7
N := 0
10에서 N값을 뺀후 10으로 나눈 값의 나머지가
J(사업자등록번호의 마지막자리) 와 같으면 정확한 사업자 등록번호
(IF J = ((10 - N) mod 10) THEN .....TRUE....;)
위와 같이 어느분이 알려주셨는데... 이것이 맞나요?
실제로 프로그램에서 검증해서 에러라고 해서 국세청에서 조회하니
정상으로 나오는데... 좀 가르쳐 주세요~
function IsValidIndustryNo(IndustryNo : String) : Boolean;
const
Weights = '13713713';
var
Count,WeightValue : Integer;
begin
Result := False;
if Length(IndustryNo) = 10 then
begin
WeightValue := (Ord(IndustryNo[9])-48) * 5;
WeightValue := WeightValue + (WeightValue div 10);
for Count := 1 to 8 do
WeightValue := WeightValue + (Ord(IndustryNo[Count])-48) * (Ord(Weights[Count])-48);
if ((WeightValue mod 10) = 0) then
Result := (0 = (Ord(IndustryNo[10])-48))
else Result := ((10-(WeightValue mod 10)) = (Ord(IndustryNo[10])-48));
end;
end;
이함수를 사용하세요