Ao gerar os registros D100 os quais eram originados de documentos cancelados, estava dando erro na
validação no PVA.
A mensagem de erro era referente aos campos que devem ser preenchidos qdo for documento cancelado ,
dei uma olhada no GUIA_PRATICO_DA_EFD_Versao_2_0_4:
Os campos VL_DOC, VL_DESC, VL_SERV, VL_BC_ICMS, VL_ICMS, VL_NT, estavam sendo formatados com 0,00
Alterei a procedure TBloco_D.WriteRegistroD100(RegD001: TRegistroD001) ;
para verificar o código de situação
if StrToInt(strCOD_SIT) in [2..5] then
procedure TBloco_D.WriteRegistroD100(RegD001: TRegistroD001) ;
var
.
.
.
if StrToInt(strCOD_SIT) in [2..5] then
Add( LFill('D100') +
LFill( Integer(IND_OPER), 0 ) +
LFill( Integer(IND_EMIT), 0 ) +
LFill( COD_PART ) +
LFill( COD_MOD ) +
LFill( strCOD_SIT ) +
LFill( SER ) +
LFill( SUB ) +
LFill( NUM_DOC ) +
LFill( CHV_CTE ) +
LFill( DT_DOC ) +
LFill( DT_A_P ) +
LFill( TP_CT_e ) +
LFill( CHV_CTE_REF ) +
LFill( VL_DOC ) +
LFill( VL_DESC ) +
LFill( strIND_FRT ) +
LFill( VL_SERV ) +
LFill( VL_BC_ICMS ) +
LFill( VL_ICMS ) +
LFill( VL_NT ) +
LFill( COD_INF ) +
LFill( COD_CTA ) )
else
Add( LFill('D100') +
LFill( Integer(IND_OPER), 0 ) +
LFill( Integer(IND_EMIT), 0 ) +
LFill( COD_PART ) +
LFill( COD_MOD ) +
LFill( strCOD_SIT ) +
LFill( SER ) +
LFill( SUB ) +
LFill( NUM_DOC ) +
LFill( CHV_CTE ) +
LFill( DT_DOC ) +
LFill( DT_A_P ) +
LFill( TP_CT_e ) +
LFill( CHV_CTE_REF ) +
LFill( VL_DOC,0,2 ) +
LFill( VL_DESC,0,2 ) +
LFill( strIND_FRT ) +
LFill( VL_SERV,0,2 ) +
LFill( VL_BC_ICMS,0,2 ) +
LFill( VL_ICMS,0,2 ) +
LFill( VL_NT,0,2 ) +
LFill( COD_INF ) +
LFill( COD_CTA ) ) ;
end;
.
.
.
o registro ficou assim
Deixo a dica, pode ser que seja útil para mais alguem.
Abraços.
Alexandre Krepe