Bom dia meus amigos,
Estou subindo como opção um DanfeNFC para analise com minha rotina de composição do XML.
Espero que ajude a alguns amigos que estejam precisando.
pag.vTroco:=strtofloat(tiraponto(panel17.caption));
qtpg:=tquery.Create(self);
qtpg.DatabaseName:='foxbeta';
qtpg.SQL.Text:='select codimpfiscal, tipo, '+
' sum(valor) Valor from t_pgcaixa a '+
' inner join t_tpgto b on a.cdtpg = b.cdtpg '+
' where nrven = :nrven and empven = :empven '+
' group by codimpfiscal, tipo '+
' order by 1 ';
qtpg.ParamByName('nrven').AsString:=pedido;
qtpg.ParamByName('empven').AsString:=inttostr(empven);
qtpg.prepare;
qtpg.open;
if not qtpg.IsEmpty then
begin
vlparcial:=0;
pag.Clear;
qtpg.First;
while not qtpg.Eof do
begin
with pag.Add do //PAGAMENTOS apenas para NFC-e
begin
tPag := iif(trim(qtpg.FieldByName('codimpfiscal').asstring) = 'DINHEIRO',fpDinheiro,
iif((trim(qtpg.FieldByName('codimpfiscal').asstring) = 'CARTAO'),
iif(trim(qtpg.FieldByName('tipo').asstring) = 'Crédito',fpCartaoCredito,fpCartaoDebito),
iif((trim(qtpg.FieldByName('codimpfiscal').asstring) = 'BOLETO'),fpBoletoBancario,
iif((trim(qtpg.FieldByName('codimpfiscal').asstring) = 'OUTROS'),fpOutro,fpCheque))));
if (tpag = fpCartaoCredito) or (tpag = fpCartaoDebito) then
tpIntegra := tiPagNaoIntegrado;
if tPag = fpDinheiro then
vPag := qtpg.FieldByName('Valor').AsFloat + pag.vTroco
else
vPag := qtpg.FieldByName('Valor').AsFloat;
vlparcial := vlparcial + vpag;
// vPag := ValorNF;
end;
qtpg.Next;
end;
end;
qtpg.close;
qtpg.destroy;
DANFeNFCe.fr3