VIDEO - VALIDAR CPNJ
---------------------------------------------------------------------------------------------------------------------
IF matos_f_cnpj_validar(EDT_Id_inscricao_cnpj_cpf)=0 THEN
Info("Cnpj Invalido")
IMG_ok..Visible = False
IMG_erro..Visible = True
SetFocus(EDT_Id_inscricao_cnpj_cpf)
ELSE
IMG_ok..Visible = True
IMG_erro..Visible = False
SetFocus(EDT_CAD_Id_razao_social_nome)
END
---------------------------------------------------------------------------------------------------------------------
_Tam is int = Length(pNro)
_Peso is 2-byte unsigned int = 0
FOR i=1 TO _Tam
_Peso = _Peso + (Asc(pNro[[i]]) -48) * (_Tam-i+_MenorPeso)
END
RESULT _Peso
---------------------------------------------------------------------------------------------------------------------
// (c) Matos Informatica - 26 02 2015
// Summary: retorna TRUE se o CNPJ está correto ou FALSE se está incorreto
// Syntax:
//[ <Result> = ] matos_f_cnpj_validar (<pCNPJ> is string)
//
// Parameters:
// pCNPJ (ANSI string): número da inscrição CNPJ-MF
// Return Value:
// boolean: TRUE se o CNPJ está correto ou FALSE se está incorreto
// Matos 26 02 2015
PROCEDURE matos_f_cnpj_validar(pCNPJ is string)
_CNPJ is string
_Peso is 2-byte unsigned int
_Resto is 1-byte int
_Digito is 1-byte int
FOR i=1 _TO_ Length(pCNPJ)
IF 47 < Asc(pCNPJ[[i]]) < 58 THEN _CNPJ+=pCNPJ[[i]]
END
IF Length(_CNPJ) <> 14 THEN RESULT False
// calculo do primeiro digito verificador (posição 13)
_Peso = matos_f_Soma_Com_Peso_Desc(_CNPJ[[1 TO 4]],2) ...
+ matos_f_Soma_Com_Peso_Desc(_CNPJ[[5 TO 12]],2)
_Resto = modulo(_Peso,11)
IF _Resto < 2 THEN _Digito = 0 ELSE _Digito = 11 - _Resto
IF Asc(_CNPJ[[13]])-48 <> _Digito THEN RESULT False
// calculo do segundo digito verificador (posição 14)
_Peso = matos_f_Soma_Com_Peso_Desc(_CNPJ[[1 TO 5]],2) ...
+ matos_f_Soma_Com_Peso_Desc(_CNPJ[[6 TO 13]],2)
_Resto = modulo(_Peso,11)
IF _Resto < 2 THEN _Digito = 0 ELSE _Digito = 11 - _Resto
IF Asc(_CNPJ[[14]])-48 <> _Digito THEN RESULT False ELSE RESULT True
Nenhum comentário:
Postar um comentário