Visto a dificuldade de grande parte dos usuários e a necessidade que temos de gravar os dados da Redução Z emitida para fins de geração do Sintegra, SPED, Arquivo de Movimento entre outros, resolvi postar esse exemplo de código completo para leitura dos dados da Redução Z utilizando o ACBrECF.
Uma boa prática e utilizar o código de leitura no evento OnDepoisReducaoZ do componente ACBrECF, assim temos a certeza que sempre após uma Redução Z teremos gravados os dados da mesma, lembrando que ainda existem impressoras fiscais programadas para efetuar a Redução Z automaticamente, isso não é mais permitido mas alguns modelos programados antigamente ainda essa função ativada, nesta situação seria interessante efetuar o tratamento, verificando se a Data de Movimento da última Redução Z consta no banco de dados ou não se não efetuar a leitura manual fora do evento.
Também fiz um aplicativo de exemplo com códigos fontes disponibilizados na área de downloads do blog.
var
DadosReducaoStr: String;
ReducaoZ: TACBrECFDadosRZ; //declare ACBrECFClass no uses
I: Integer;
begin
// Obtendo os dados da redução Z;
DadosReducaoStr := ACBrECF1.DadosUltimaReducaoZ;
// jogar a classe preenchida para uma variavel
// isso facilita o acesso aos dados
ReducaoZ := ACBrECF1.DadosReducaoZClass;
// dados gerais
ReducaoZ.DataDaImpressora
ReducaoZ.DataDoMovimento
ReducaoZ.NumeroDeSerie
ReducaoZ.NumeroDeSerieMFD
ReducaoZ.NumeroDoECF
ReducaoZ.NumeroDaLoja
ReducaoZ.NumeroCOOInicial
ReducaoZ.COO - 1 // COO Final
// CONTADORES
ReducaoZ.COO
ReducaoZ.GNF
ReducaoZ.CRO
ReducaoZ.CRZ
ReducaoZ.CCF
ReducaoZ.CFD
ReducaoZ.CDC
ReducaoZ.NCN
ReducaoZ.GRG
ReducaoZ.GNFC
ReducaoZ.CCDC
ReducaoZ.CFC
// TOTALIZADORES GERAIS
ReducaoZ.ValorGrandeTotal
ReducaoZ.ValorVendaBruta
ReducaoZ.VendaLiquida
ReducaoZ.TotalTroco
// ICMS
ReducaoZ.TotalICMS
ReducaoZ.CancelamentoICMS
ReducaoZ.DescontoICMS
ReducaoZ.AcrescimoICMS
ReducaoZ.SubstituicaoTributariaICMS
ReducaoZ.IsentoICMS
ReducaoZ.NaoTributadoICMS
// ISSQN
ReducaoZ.TotalISSQN
ReducaoZ.CancelamentoISSQN
ReducaoZ.DescontoISSQN
ReducaoZ.AcrescimoISSQN
ReducaoZ.SubstituicaoTributariaISSQN
ReducaoZ.IsentoISSQN
ReducaoZ.NaoTributadoISSQN
// OPERAÇÕES NÃO FISCAIS
ReducaoZ.TotalOperacaoNaoFiscal
ReducaoZ.CancelamentoOPNF
ReducaoZ.DescontoOPNF
ReducaoZ.AcrescimoOPNF
// Todas as Aliquotas, de ICMS e ISSQN na ordem original de programação no ECF
for I := 0 to ReducaoZ.TodasAliquotas.Count - 1 do
begin
with ReducaoZ.TodasAliquotas[I] do
begin
Sequencia
Indice
Tipo
Aliquota
Total
end;
end;
// ICMS ********************************************************************
for I := 0 to ReducaoZ.ICMS.Count - 1 do
begin
with ReducaoZ.ICMS[I] do
begin
Sequencia
Indice
Tipo
Aliquota
Total
end;
end;
// ISSQN *******************************************************************
for I := 0 to ReducaoZ.ISSQN.Count - 1 do
begin
with ReducaoZ.ISSQN[I] do
begin
Sequencia
Indice
Tipo
Aliquota
Total
end;
end;
// TOTALIZADORES NÃO FISCAIS ***********************************************
for I := 0 to ReducaoZ.TotalizadoresNaoFiscais.Count - 1 do
begin
with ReducaoZ.TotalizadoresNaoFiscais[I] do
begin
Indice
Descricao
PermiteVinculado
FormaPagamento
Total
Contador
end;
end;
// MEIOS DE PAGAMENTO ******************************************************
for I := 0 to ReducaoZ.MeiosDePagamento.Count - 1 do
begin
with ReducaoZ.MeiosDePagamento[I] do
begin
Indice
Descricao
PermiteVinculado
Data
TipoDoc
end;
end;
// RELATÓRIO GERENCIAL *****************************************************
for I := 0 to ReducaoZ.RelatorioGerencial.Count - 1 do
begin
with ReducaoZ.RelatorioGerencial[I] do
begin
Indice
Descricao
Contador
end;
end;
end;
Descubra mais sobre Régys Borges da Silveira
Assine para receber nossas notícias mais recentes por e-mail.