@@ -186,8 +186,8 @@ begin
186
186
ReWrite(arquivo);
187
187
try
188
188
writeln(arquivo, 'NFe.CriarEnviarNFe("');
189
- // writeln(arquivo, '[infNFe]');
190
- // writeln(arquivo, 'versao=3.10 ');
189
+ writeln(arquivo, '[infNFe]');
190
+ writeln(arquivo, 'versao=4.0 ');
191
191
writeln(arquivo, '[Identificacao]');
192
192
193
193
{ cabe�alho da nota }
@@ -200,7 +200,7 @@ begin
200
200
{ ICMS outro estado para partilha }
201
201
if MatchStr(cdsNota.FieldByName('EMPRESA_ESTADO').AsString, ['SP', 'MG', 'RJ', 'PR', 'SC', 'RS']) and
202
202
MatchStr(cdsNota.FieldByName('CLI_ESTADO').AsString,
203
- ['ES', 'RR', 'AP', 'AM', 'PA', 'MA', 'CE', 'RN', 'PB', 'AL', 'SE', 'BA', 'AC', 'RO', 'TO', 'DF', ' GO', 'MT', 'MS', 'PE']) then
203
+ ['ES', 'RR', 'AP', 'AM', 'PA', 'MA', 'CE', 'RN', 'PB', 'AL', 'SE', 'BA', 'AC', 'RO', 'TO', 'GO', 'MT', 'MS', 'PE']) then
204
204
icmsdest := '7'
205
205
else
206
206
icmsdest := '12';
@@ -453,6 +453,7 @@ begin
453
453
else
454
454
writeln(arquivo, 'Codigo=' + cdsItens.FieldByName('CODIGO').AsString);
455
455
writeln(arquivo, 'EAN=' + cdsItens.FieldByName('BARRA').AsString);
456
+ writeln(arquivo, 'cEANTrib=' + cdsItens.FieldByName('BARRA').AsString);
456
457
if cdsItens.FieldByName('NCM').AsInteger > 0 then
457
458
writeln(arquivo, 'NCM=' + cdsItens.FieldByName('NCM').AsString)
458
459
else if cdsItens.FieldByName('NCM').AsInteger = 0 then
@@ -482,7 +483,7 @@ begin
482
483
writeln(arquivo, 'vFrete=' + FloatToStrF(rateiofrete+rateiofrete_resto, ffFixed, 18, 2))
483
484
end else
484
485
begin
485
- writeln(arquivo, 'vOutro=' + FloatToStrF(rateio, ffFixed, 18, 2));
486
+ writeln(arquivo, 'vOutro=' + FloatToStrF(rateio, ffFixed, 18, 2));
486
487
writeln(arquivo, 'vFrete=' + FloatToStrF(rateiofrete, ffFixed, 18, 2));
487
488
end;
488
489
end;
@@ -526,14 +527,14 @@ begin
526
527
and (not comie) then
527
528
begin
528
529
if not MatchStr(cdsNota.FieldByName('CLI_ESTADO').AsString,
529
- ['RJ']) then
530
+ ['RJ', 'DF' ]) then
530
531
begin
531
532
writeln(arquivo, Format('[ICMSUFDEST%.3d]', [i]));
532
533
writeln(arquivo, 'vBCUFDest=0'); // simples
533
534
writeln(arquivo, 'pFCPUFDest=2'); // simples
534
535
writeln(arquivo, 'pICMSUFDest=0'); // simples
535
536
writeln(arquivo, 'pICMSinter='+icmsdest);
536
- writeln(arquivo, 'pICMSinterPart=80 '); // 2017
537
+ writeln(arquivo, 'pICMSinterPart=100 '); // 2019
537
538
writeln(arquivo, 'vFCPUFDest=0');
538
539
writeln(arquivo, 'vICMSUFDest=0');
539
540
writeln(arquivo, 'vICMSUFRemet=0'); // simples
@@ -620,43 +621,48 @@ begin
620
621
writeln(arquivo, 'ValorNota=' + FloatToStrF(cdsNota.FieldByName('NOTA_VALOR_TOTAL').AsCurrency, ffFixed, 18, 2));
621
622
end;
622
623
623
- { transportador }
624
- writeln(arquivo, '[Transportador]');
625
- if trim(cdsNota.FieldByName('TRA_NOME').AsString) = '' then
626
- begin
627
- writeln(arquivo, 'FretePorConta=0');
628
- end else
624
+
625
+ if cdsNota.FieldByName('EMPRESA_ESTADO').AsString = cdsNota.FieldByName('CLI_ESTADO').AsString then
629
626
begin
630
- writeln(arquivo, 'FretePorConta=' + cdsNota.fieldByName('NOTA_FRETE').AsString);
631
- writeln(arquivo, 'CnpjCpf=' + cdsNota.fieldByName('TRA_CPFCGC').AsString);
632
- writeln(arquivo, 'IE=' + cdsNota.fieldByName('TRA_RGIE').AsString);
633
- writeln(arquivo, 'NomeRazao=' + cdsNota.fieldByName('TRA_NOME').AsString);
634
- writeln(arquivo, 'Endereco=' + trim(cdsNota.FieldByName('TRA_LOGRADOURO').AsString) + ' ' + cdsNota.FieldByName('TRA_NUMERO').AsString);
635
- writeln(arquivo, 'CidadeCod=' + cdsNota.FieldByName('TRA_MUNIBGE').AsString);
636
- writeln(arquivo, 'Cidade=' + cdsNota.FieldByName('TRA_CIDADE').AsString);
637
- writeln(arquivo, 'UF=' + cdsNota.FieldByName('TRA_ESTADO').AsString);
638
- writeln(arquivo, 'CEP=' + cdsNota.FieldByName('TRA_CEP').AsString);
639
- writeln(arquivo, 'Placa=' + cdsNota.FieldByName('NOTA_PLACAVEICULO').AsString);
640
- if trim(cdsNota.FieldByName('NOTA_UFVEICULO').AsString) > '' then
641
- writeln(arquivo, 'UFPlaca=' + cdsNota.FieldByName('NOTA_UFVEICULO').AsString)
642
- else
643
- writeln(arquivo, 'UFPlaca=AAA9999');
644
627
645
- if cdsNota.FieldByName('EMPRESA_ESTADO').AsString = cdsNota.FieldByName('CLI_ESTADO').AsString then
646
- writeln(arquivo, 'CFOP=5353') else
647
- writeln(arquivo, 'CFOP=6353');
648
- if cdsNota.FieldByName('NOTA_QUANTIDADE').AsInteger > 0 then
649
- begin
650
- writeln(arquivo, '[Volume001]');
651
- writeln(arquivo, 'Quantidade=' + cdsNota.fieldByName('NOTA_QUANTIDADE').AsString);
652
- writeln(arquivo, 'Especie=CAIXAS');
653
- writeln(arquivo, 'Marca=');
654
- writeln(arquivo, 'Numeracao=1');
655
- writeln(arquivo, 'PesoLiquido=' + cdsNota.fieldByName('NOTA_PESOLIQUIDO').AsString);
656
- writeln(arquivo, 'PesoBruto=' + cdsNota.fieldByName('NOTA_PESOBRUTO').AsString);
657
- end;
658
- end;
628
+ { transportador }
629
+ writeln(arquivo, '[Transportador]');
630
+ if trim(cdsNota.FieldByName('TRA_NOME').AsString) = '' then
631
+ begin
632
+ writeln(arquivo, 'FretePorConta=0');
633
+ end else
634
+ begin
635
+ writeln(arquivo, 'FretePorConta=' + cdsNota.fieldByName('NOTA_FRETE').AsString);
636
+ writeln(arquivo, 'CnpjCpf=' + cdsNota.fieldByName('TRA_CPFCGC').AsString);
637
+ writeln(arquivo, 'IE=' + cdsNota.fieldByName('TRA_RGIE').AsString);
638
+ writeln(arquivo, 'NomeRazao=' + cdsNota.fieldByName('TRA_NOME').AsString);
639
+ writeln(arquivo, 'Endereco=' + trim(cdsNota.FieldByName('TRA_LOGRADOURO').AsString) + ' ' + cdsNota.FieldByName('TRA_NUMERO').AsString);
640
+ writeln(arquivo, 'CidadeCod=' + cdsNota.FieldByName('TRA_MUNIBGE').AsString);
641
+ writeln(arquivo, 'Cidade=' + cdsNota.FieldByName('TRA_CIDADE').AsString);
642
+ writeln(arquivo, 'UF=' + cdsNota.FieldByName('TRA_ESTADO').AsString);
643
+ writeln(arquivo, 'CEP=' + cdsNota.FieldByName('TRA_CEP').AsString);
644
+ writeln(arquivo, 'Placa=' + cdsNota.FieldByName('NOTA_PLACAVEICULO').AsString);
645
+ if trim(cdsNota.FieldByName('NOTA_UFVEICULO').AsString) > '' then
646
+ writeln(arquivo, 'UFPlaca=' + cdsNota.FieldByName('NOTA_UFVEICULO').AsString)
647
+ else
648
+ writeln(arquivo, 'UFPlaca=AAA9999');
649
+
650
+ if cdsNota.FieldByName('EMPRESA_ESTADO').AsString = cdsNota.FieldByName('CLI_ESTADO').AsString then
651
+ writeln(arquivo, 'CFOP=5353') else
652
+ writeln(arquivo, 'CFOP=6353');
653
+ if cdsNota.FieldByName('NOTA_QUANTIDADE').AsInteger > 0 then
654
+ begin
655
+ writeln(arquivo, '[Volume001]');
656
+ writeln(arquivo, 'Quantidade=' + cdsNota.fieldByName('NOTA_QUANTIDADE').AsString);
657
+ writeln(arquivo, 'Especie=CAIXAS');
658
+ writeln(arquivo, 'Marca=');
659
+ writeln(arquivo, 'Numeracao=1');
660
+ writeln(arquivo, 'PesoLiquido=' + cdsNota.fieldByName('NOTA_PESOLIQUIDO').AsString);
661
+ writeln(arquivo, 'PesoBruto=' + cdsNota.fieldByName('NOTA_PESOBRUTO').AsString);
662
+ end;
663
+ end;
659
664
665
+ end;
660
666
661
667
{ fatura }
662
668
writeln(arquivo, '[Fatura]');
@@ -665,20 +671,41 @@ begin
665
671
writeln(arquivo, 'ValorDesconto= 0,00');
666
672
writeln(arquivo, 'ValorLiquido=' + FloatToStrF(cdsNota.FieldByName('NOTA_VALOR_TOTAL').AsCurrency, ffFixed, 18, 2));
667
673
668
- { duplicatas }
669
- i := 1;
670
- cdsPagamentos.First;
671
- while not (cdsPagamentos.Eof) do
674
+ if dev then
672
675
begin
673
- writeln(arquivo, Format('[Duplicata%.3d]', [i]));
674
- writeln(arquivo, 'Numero=' + FormatFloat('000000',nf_numero) + '-' + IntToStr(i));
675
- writeln(arquivo, 'DataVencimento=' + FormatDateTime('dd/mm/yyyy',cdsPagamentosDATAVENCIMENTO.AsDateTime));
676
- // writeln(arquivo, 'Valor=' + FormatFloat('#,###,##0.00',cdsPagamentosVALOR.AsCurrency));
677
- writeln(arquivo, 'Valor=' + FloatToStrF(cdsPagamentosVALOR.AsCurrency, ffFixed, 18, 2));
678
- inc(i);
679
- cdsPagamentos.Next;
676
+
677
+ { fatura }
678
+ writeln(arquivo, '[PAG001]');
679
+ writeln(arquivo, 'tpag=90');
680
+
681
+ end else
682
+ begin
683
+
684
+ { duplicatas }
685
+ i := 1;
686
+ cdsPagamentos.First;
687
+ while not (cdsPagamentos.Eof) do
688
+ begin
689
+ writeln(arquivo, Format('[Duplicata%.3d]', [i]));
690
+ writeln(arquivo, 'Numero=' + Format('%.3d', [i]));
691
+ // writeln(arquivo, 'Numero=' + FormatFloat('000000',nf_numero) + '-' + IntToStr(i));
692
+ writeln(arquivo, 'DataVencimento=' + FormatDateTime('dd/mm/yyyy',cdsPagamentosDATAVENCIMENTO.AsDateTime));
693
+ // writeln(arquivo, 'Valor=' + FormatFloat('#,###,##0.00',cdsPagamentosVALOR.AsCurrency));
694
+ writeln(arquivo, 'Valor=' + FloatToStrF(cdsPagamentosVALOR.AsCurrency, ffFixed, 18, 2));
695
+ inc(i);
696
+ cdsPagamentos.Next;
697
+ end;
698
+
699
+ { fatura }
700
+ writeln(arquivo, '[PAG001]');
701
+ writeln(arquivo, 'tpag=01');
702
+ writeln(arquivo, 'tpIntegra=2');
703
+ writeln(arquivo, 'vPag='+FloatToStrF(cdsNota.FieldByName('NOTA_VALOR_TOTAL').AsCurrency, ffFixed, 18, 2));
704
+ writeln(arquivo, 'vTroca=0');
705
+
680
706
end;
681
707
708
+
682
709
{ dados adicionais }
683
710
writeln(arquivo, '[DadosAdicionais]');
684
711
writeln(arquivo, 'Complemento=CODIGO INTERNO ' + cdsNota.FieldByName('CODIGO').AsString + '. ' +
0 commit comments