#include "inkey.ch" #include "hbclass.ch" #include "set.ch" REQUEST HB_CODEPAGE_PTISO PROCEDURE Main LOCAL cCodigo := "293118610001" Set( _SET_CODEPAGE, "PTISO" ) SetMode(40,100) CLS ? cCodigo, DigitoCAEPF( cCodigo ) Inkey(0) RETURN FUNCTION HB_GT_GUI(); RETURN Nil FUNCTION HB_GT_GUI_DEFAULT(); RETURN Nil PROCEDURE HB_GTSYS REQUEST HB_GT_WVT REQUEST HB_GT_WGU REQUEST HB_GT_WVG REQUEST HB_GT_WVG_DEFAULT RETURN // Pra rotina de erros do José FUNCTION AppVersaoExe(); RETURN "" STATIC FUNCTION DigitoCAEPF( cCodigo ) LOCAL nSoma, nFator LOCAL cDigito cCodigo := Substr( cCodigo, 1, 12 ) nSoma := 0 nFator := 9 FOR EACH cDigito IN cCodigo DESCEND nSoma += Val( cDigito ) * nFator ? cDigito, nFator, Val( cDigito ) * nFator nFator := iif( nFator == 2, 9, nFator - 1 ) NEXT ? nSoma cCodigo := cCodigo + Str( iif( Mod( nSoma, 11 ) == 10, 0, Mod( nSoma, 11 ) ), 1 ) nSoma := 0 nFator:= 9 FOR EACH cDigito IN cCodigo DESCEND nSoma += Val( cDigito ) * nFator ? cDigito, nFator, Val( cDigito ) * nFator nFator := iif( nFator == 2, 9, nFator - 1 ) NEXT ? nSoma cCodigo:= cCodigo + Str( iif( Mod( nSoma, 11 ) == 10, 0, Mod( nSoma, 11 ) ), 1 ) cCodigo:= Substr( cCodigo, 1, 12) + StrZero( Mod( Val( Substr( cCodigo, 13, 2) ) + 12, 100 ), 2 ) RETURN cCodigo