본문 바로가기

컴퓨터/파워빌더

파워빌더 - 사업자번호체크

// 사업자번호 체크
// 사업자등록번호가 맞는지 틀리는지 검사합니다.
// function 으로 만들어 사용하시면 되겠습니다.

boolean 함수명(string ls_epno)

int i, sum = 0, li_y, epno_chk, li_epno[10], li_chkvalue[9] = {1,3,7,1,3,7,1,3,5}

For i = 1 to 10
li_epno[i] = integer(mid(ls_epno, i, 1))
Next

for i = 1 to 9
sum += li_epno[i] * li_chkvalue[i]
Next

sum = sum + ((li_epno[9] * 5) / 10)

li_y = mod(sum, 10)

If li_y = 0 Then
epno_chk = 0
Else
epno_chk = 10 - li_y
End IF

If epno_chk = li_epno[10] Then
// 사업자등록번호가 맞음.
return true
Else
// 잘못된 사업자 등록번호임.
return false
End If

<<< 참조 >>>
사업자번호: 123-45-67890 라 가정하고..
앞에서 여덟자리까지는 각각 1,3,7,1,3,7,1,3 을 곱하고 구해진 값들을 더한다.
즉,위의 사업자번호라면,,,
(1*1) + (2*3) + (3*7) +(4*1) + (5*3) +(6*7)+ (7*1) + (8*3) = A 라하고...

다음은 사업자번호 9째자리에 5를곱하고 십자리와 단자리값을 더한다..
즉, 위의 예라면
9 * 5 = 45 =====> 4 + 5 하면 9가되는데 이값을 B 라하면..
A + B 하여 구해진값의 단자리수를 구한다.( (A+B) / 10 하여 나머지를 구하는것과같다)

이렇게 구해진 수의 10의보수를 구해서 사업자번호의 끝자리와 같은가 체크하면된다.
즉, 이렇게 구해진 값이 8이면 끝자리가 10의보수 즉 2가된다.