segunda-feira, 20 de julho de 2015

Matos Função - Cnpj Validar

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


---------------------------------------------------------------------------------------------------------------------
 PROCEDURE matos_f_Soma_Com_Peso_Desc(pNro is string, _MenorPeso is int)
_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











amarildo@matosinformatica.com.br



Nenhum comentário:

Postar um comentário

Teste

Teste
teste