Não quis dizer que esteja no Acbr, pedi mais foi uma ajuda nessa tag que esta gerando duplicado.
Vou colocar a minha tag completa.
{ DUPLICATAS }
if dm.IBTransaction.Active then
dm.IBTransaction.Commit;
dm.IBTransaction.StartTransaction;
dm.QConsulta.close;
dm.QConsulta.sql.Clear;
dm.QConsulta.sql.Text :=
'SELECT * from FATURAS_NOTAS_FISCAIS WHERE COD_NF = :CODNF ' +
'ORDER BY VENCIMENTO';
dm.QConsulta.Parambyname('codnf').AsInteger := iCodigoNotaFiscal;
dm.QConsulta.open;
dm.QConsulta.Last;
dm.QConsulta.first;
Cobr.Fat.nFat := dm.QNFNUMERO_NOTA_NF.AsString;
Cobr.Fat.vOrig := dm.QNFVALOR_TOTAL_NF.AsCurrency;
Cobr.Fat.vDesc := 0.00;
Cobr.Fat.vLiq := dm.QNFVALOR_TOTAL_NF.AsCurrency;
if (not dm.QConsulta.IsEmpty) AND (dm.QConsulta.recordCount > 1) then
begin
//Se tem fatura
//Alterado por Caiman
//Tipos permitidos para a tag tPag:
//01 - Dinheiro; fpDinheiro
//02 - Cheque; fpCheque
//03 - Cartão de Crédito; fpCartaoCredito
//04 - Cartão de Débito; fpCartaoDebito
//05 - Crédito Loja; fpCreditoLoja
//10 - Vale Alimentação; fpValeAlimentacao
//11 - Vale Refeição; fpValeRefeicao
//12 - Vale Presente; fpValePresente
//13 - Vale Combustível; fpValeCombustivel
//14 - Duplicata Mercantil; fpDuplicataMercantil
//90 - Sem pagamento; fpSemPagamento
//99 - Outros. fpOutro
if dm.ACBrNFe1.Configuracoes.Geral.VersaoDF = ve400 then
begin
pag.Add.tPag := fpSemPagamento;
end
else
case Ide.indPag of
ipPrazo:
begin
with pag.Add do
begin
tPag := fpCreditoLoja;
vPag := Total.ICMSTot.vNF;
end;
end;
ipOutras, ipVista, ipNenhum:
begin
with pag.Add do
begin
tPag := fpDinheiro;
vPag := Total.ICMSTot.vNF;
end;
end;
end;
while not dm.QConsulta.eof do
begin
with Cobr.Dup.Add do
begin
nDup := dm.QConsulta.fieldbyname('PARCELA').AsString;
dVenc := dm.QConsulta.fieldbyname('VENCIMENTO').AsDateTime;
vDup := dm.QConsulta.fieldbyname('VALOR').AsCurrency;
end;
dm.QConsulta.next;
end;
end
else
//Se não tem fatura
begin
if dm.QConsulta.fieldbyname('VENCIMENTO').AsDateTime <= Date then
begin
//Alterado por Caiman
if dm.ACBrNFe1.Configuracoes.Geral.VersaoDF = ve400 then
begin
with pag.Add do
begin
if Ide.finNFe in [fnDevolucao, fnAjuste] then
tPag := fpSemPagamento
else
begin
tPag := fpOutro;
vPag := dm.QNFVALOR_TOTAL_NF.AsCurrency;
end;
end;
end
else
Ide.indPag := ipVista;
end
else
begin
if dm.ACBrNFe1.Configuracoes.Geral.VersaoDF = ve400 then
begin
with pag.Add do
begin
if Ide.finNFe in [fnDevolucao, fnAjuste] then
begin
tPag := fpSemPagamento
end
else
begin
tPag := fpDuplicataMercantil;;
vPag := dm.QNFVALOR_TOTAL_NF.AsCurrency;
end;
end;
end
else
Ide.indPag := ipPrazo;
if not (Ide.finNFe in [fnDevolucao, fnAjuste]) then
begin
while not dm.QConsulta.eof do
begin
with Cobr.Dup.Add do
begin
nDup := dm.QConsulta.fieldbyname('PARCELA').AsString;
dVenc := dm.QConsulta.fieldbyname('VENCIMENTO').AsDateTime;
vDup := dm.QConsulta.fieldbyname('VALOR').AsCurrency;
end;
dm.QConsulta.next;
end;
end;
end;
end;
dm.IBTransaction.Commit;
dm.QConsulta.close;