Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 4801 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

O problema era o campo cUF, estava vazio...

contudo, obrigado,

Leão

No botão Criar e Enviar, existe este procedimento conforme o demo, inclusive o mesmo

não funciona.

Creio que falta algo sobre validar, assinar e transmtir.

procedure TFormNFe_gerar.btnCriarEnviarClick(Sender: TObject);

var

vAux, vNumLote : String;

begin

ACBrNFe1.NotasFiscais.Clear;

if DNF.SITUACAO.Conteudo='Autorizada' then

begin

ShowMessage('NF-e, já autorizada não pode excluir...');

XNumEdit1.SetFocus;

end;

if DNF.SITUACAO.Conteudo='Cancelada' then

begin

ShowMessage('NF-e, cancelada não pode re-inviar, faça consulta...');

XNumEdit1.SetFocus;

end;

if DNF.NUMERO_NFE.Conteudo<>'' then

begin

ShowMessage('NF-e, contém chave, não pode re-inviar, faça consulta...');

XNumEdit1.SetFocus;

end;

vAux:=XNumEdit1.Text;

vNumLote:='1';

if not(InputQuery('WebServices Enviar', 'Numero da Nota', vAux)) then

exit;

if not(InputQuery('WebServices Enviar', 'Numero do Lote', vNumLote)) then

exit;

vNumLote := OnlyNumber(vNumLote);

if Trim(vNumLote) = '' then

begin

MessageDlg('Número do Lote inválido.',mtError,[mbok],0);

exit;

end;

// ACBrNFe1.NotasFiscais.Clear;

{ACBrNFe1.NotasFiscais.GerarNFe;

ACBrNFe1.NotasFiscais.Assinar;

ACBrNFe1.NotasFiscais.Valida;

ACBrNFe1.WebServices.Envia();

}

// ACBrNFe1.NotasFiscais.GerarNFe(vAux);

GerarNFe(vAux);

{ try

ACBrNFe1.NotasFiscais.Assinar;

except on e: Exception do

ShowMessage('Assinatura inválida! '+ e.Message);

end;

}

// ACBrNFe1.Enviar(1,false);

ACBrNFe1.Enviar(vNumLote);

// ACBrNFe1.Enviar(StrToInt(vNumLote));

if ACBrNFe1.WebServices.Retorno.cStat = 105 then // Lote em processamento

begin

repeat

Application.MessageBox('Envio da NFE - Lote em processamento.' +#13 + 'Aguarde 5 minutos e Clique em OK !!!', 'Leão Informática', MB_OK);

ACBrNFe1.WebServices.Retorno.Recibo := ACBrNFe1.WebServices.Enviar.Recibo;

until ACBrNFe1.WebServices.Retorno.Executar;

end;

if ACBrNFe1.WebServices.Retorno.cStat = 100 then // Autorizado o uso da NF-e

begin

TabGlobal.DNF.Filtro.Clear;

TabGlobal.DNF.Filtro.Add('NF = '+IntToStr(DNF.NF.Conteudo));

TabGlobal.DNF.Filtro.Add('AND MODELO = '+#39+DNF.MODELO.Conteudo+#39);

TabGlobal.DNF.Filtro.Add('AND SERIE = '+#39+DNF.SERIE.Conteudo+#39);

TabGlobal.DNF.AtualizaSql;

if not TabGlobal.DNF.Eof then

begin

DNF.Modifica;

DNF.SITUACAO.Conteudo :='Autorizada';

DNF.RECIBO_NFE.Conteudo :=ACBrNFe1.WebServices.Retorno.Recibo;

DNF.NUMERO_NFE.Conteudo :=ACBrNFe1.WebServices.Retorno.ChaveNFe;

DNF.NUMERO_PROTOCO.Conteudo:=ACBrNFe1.WebServices.Retorno.Protocolo;

DNF.CSTAT.Conteudo :='100';

DNF.Salva;

end;

TabGlobal.DNF.Filtro.Clear;

TabGlobal.DNF.AtualizaSql;

end;

MemoResp.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Retorno.RetWS);

memoRespWS2.Lines.Text := UTF8Encode(ACBrNFe1.WebServices.Retorno.RetornoWS);

LoadXML(MemoResp, WBResposta);

MemoDados.Lines.Add('');

MemoDados.Lines.Add('Envio NFe');

MemoDados.Lines.Add('tpAmb: '+ TpAmbToStr(ACBrNFe1.WebServices.Retorno.TpAmb));

MemoDados.Lines.Add('verAplic: '+ ACBrNFe1.WebServices.Retorno.verAplic);

MemoDados.Lines.Add('cStat: '+ IntToStr(ACBrNFe1.WebServices.Retorno.cStat));

MemoDados.Lines.Add('cUF: '+ IntToStr(ACBrNFe1.WebServices.Retorno.cUF));

MemoDados.Lines.Add('xMotivo: '+ ACBrNFe1.WebServices.Retorno.xMotivo);

MemoDados.Lines.Add('cMsg: '+ IntToStr(ACBrNFe1.WebServices.Retorno.cMsg));

MemoDados.Lines.Add('xMsg: '+ ACBrNFe1.WebServices.Retorno.xMsg);

MemoDados.Lines.Add('Recibo: '+ ACBrNFe1.WebServices.Retorno.Recibo);

MemoDados.Lines.Add('Protocolo: '+ ACBrNFe1.WebServices.Retorno.Protocolo);

// MemoDados.Lines.Add('cStat: '+ ACBrNFe1.WebServices.Retorno.NFeRetorno);

ACBrNFe1.NotasFiscais.Clear;

end;

Por favor, alguém pode ajudar, Não consigo gerar nem o xml.

Obrigado e aguardo

Leão

**************[ a função GerarNFe - com informações da nf-e]****************

procedure TFormNFe_gerar.GerarNFe(NumNFe : String);

var

CamposResultado_cliente,CamposResultado_prod,CamposResultado_transp,CamposResultado_cfop:variant;

vconte:integer;

docnpj1,docnpj2:string;

begin

{ if ComboBox1_pagto.ItemIndex=0 then xforma:='0';

if ComboBox1_pagto.ItemIndex=1 then xforma:='1';

if ComboBox1_pagto.ItemIndex=2 then xforma:='2';

}

PTabela(TabGlobal.DClientes,['CODIGO'],[DNF.COD_CLIENTE.Conteudo],

['SUFRAMA','OUTRAS_OBS1'],CamposResultado_cliente);

with ACBrNFe1.NotasFiscais.Add.NFe do

begin

Ide.cNF := StrToInt(NumNFe); //Caso não seja preenchido será gerado um número aleatório pelo componente

Ide.natOp := RemoveAcentos(DNF.NOME_CFOP.Conteudo);//'VENDA PRODUCAO DO ESTAB.';

If ComboBox1_pagto.ItemIndex = 0 then

Ide.indPag := ipVista

Else if ComboBox1_pagto.ItemIndex = 1 then

Ide.indPag := ipPrazo

Else If ComboBox1_pagto.ItemIndex = 2 then

Ide.indPag := ipOutras;

Ide.modelo := StrToInt(DNF.MODELO.Conteudo); //55;

Ide.serie := StrToInt(DNF.SERIE.Conteudo); //1;

Ide.nNF := DNF.NF.Conteudo; //StrToInt(NumNFe);

Ide.dEmi := DNF.EMISSAO.Conteudo; //Date;

Ide.dSaiEnt := DNF.DATA_SAIDA.Conteudo;// Date;

Ide.hSaiEnt := Now;

if DNF.SAIDA_ENTRADA.Conteudo='S' then //,'1','0')

Ide.tpNF := tnSaida

else

Ide.tpNF := tnEntrada;

if TabGlobal.DConf_NFe.FORMA_EMIS_NF.Conteudo=1 then

Ide.tpEmis := teNormal

else if TabGlobal.DConf_NFe.FORMA_EMIS_NF.Conteudo=2 then

Ide.tpEmis := teContingencia

else if TabGlobal.DConf_NFe.FORMA_EMIS_NF.Conteudo=3 then

Ide.tpEmis := teSCAN

else if TabGlobal.DConf_NFe.FORMA_EMIS_NF.Conteudo=4 then

Ide.tpEmis := teDPEC;

if TabGlobal.DConf_NFe.IDENTIF_AMBIENTE.Conteudo=1 then

Ide.tpAmb := taProducao //Lembre-se de trocar esta variável quando for para ambiente de produção

else

Ide.tpAmb := taHomologacao;

Ide.verProc := '1.0.0.0'; //Versão do seu sistema

Ide.cUF := NotaUtil.UFtoCUF(TabGlobal.DConf_NFe.COD_UF.Conteudo);//NotaUtil.UFtoCUF(edtEmitUF.Text);

Ide.cMunFG := StrToInt(TabGlobal.DConf_NFe.COD_CIDADE.Conteudo);//StrToInt(edtEmitCodCidade.Text);

if TabGlobal.DConf_NFe.FINALIDADE_EMISSAO_NF.Conteudo='1' then

Ide.finNFe := fnNormal

else if TabGlobal.DConf_NFe.FINALIDADE_EMISSAO_NF.Conteudo='2' then

Ide.finNFe := fnComplementar

else if TabGlobal.DConf_NFe.FINALIDADE_EMISSAO_NF.Conteudo='3' then

Ide.finNFe := fnAjuste;

//Para NFe referenciada use os campos abaixo

{ with Ide.NFref.Add do

begin

refNFe := ''; //NFe Eletronica

RefNF.cUF := 0; // |

RefNF.AAMM := ''; // |

RefNF.CNPJ := ''; // |

RefNF.modelo := 1; // |- NFe Modelo 1/1A

RefNF.serie := 1; // |

RefNF.nNF := 0; // |

RefNFP.cUF := 0; // |

RefNFP.AAMM := ''; // |

RefNFP.CNPJCPF := ''; // |

RefNFP.IE := ''; // |- NF produtor Rural

RefNFP.modelo := ''; // |

RefNFP.serie := 1; // |

RefNFP.nNF := 0; // |

RefECF.modelo := ECFModRef2B; // |

RefECF.nECF := ''; // |- Cupom Fiscal

RefECF.nCOO := ''; // |

end;

}

Emit.CNPJCPF := TabGlobal.DConf_NFe.CNPJ.Conteudo; //edtEmitCNPJ.Text;

Emit.IE := TabGlobal.DConf_NFe.INSCR_EMPRESA.Conteudo; //edtEmitIE.Text;

Emit.xNome := TabGlobal.DConf_NFe.RAZAO_SOCIAL.Conteudo; //edtEmitRazao.Text;

Emit.xFant := TabGlobal.DConf_NFe.NOME_FANTASIA.Conteudo; //edtEmitFantasia.Text;

Emit.EnderEmit.fone := TabGlobal.DConf_NFe.TELEFONE.Conteudo; //edtEmitFone.Text;

Emit.EnderEmit.CEP := StrToInt(TabGlobal.DConf_NFe.CEP.ValorString); //StrToInt(edtEmitCEP.Text);

Emit.EnderEmit.xLgr := TabGlobal.DConf_NFe.ENDERECO.Conteudo; //edtEmitLogradouro.Text;

Emit.EnderEmit.nro := TabGlobal.DConf_NFe.END_NR.Conteudo;// edtEmitNumero.Text;

Emit.EnderEmit.xCpl := TabGlobal.DConf_NFe.COMPL_ENDE.Conteudo; //edtEmitComp.Text;

Emit.EnderEmit.xBairro := TabGlobal.DConf_NFe.BAIRRO.Conteudo; //edtEmitBairro.Text;

Emit.EnderEmit.cMun := StrToInt(TabGlobal.DConf_NFe.COD_CIDADE.Conteudo);// StrToInt(edtEmitCodCidade.Text);

Emit.EnderEmit.xMun := TabGlobal.DConf_NFe.CIDADE.Conteudo; //edtEmitCidade.Text;

Emit.EnderEmit.UF := TabGlobal.DConf_NFe.UF.Conteudo; //edtEmitUF.Text;

Emit.enderEmit.cPais := StrToInt(TabGlobal.DConf_NFe.COD_PAIS.conteudo); //1058;

Emit.enderEmit.xPais := TabGlobal.DConf_NFe.NOME_PAIS.Conteudo; //'BRASIL';

Emit.IEST := '';

Emit.IM := ''; // Preencher no caso de existir serviços na nota

Emit.CNAE := ''; // Verifique na cidade do emissor da NFe se é permitido

// a inclusão de serviços na NFe

if TabGlobal.DConf_NFe.REGIME_TRIBUTARIO.Conteudo='1' then

Emit.CRT := crtSimplesNacional

else if TabGlobal.DConf_NFe.REGIME_TRIBUTARIO.Conteudo='2' then

Emit.CRT := crtSimplesExcessoReceita

else if TabGlobal.DConf_NFe.REGIME_TRIBUTARIO.Conteudo='3' then

Emit.CRT := crtRegimeNormal;

//Para NFe Avulsa preencha os campos abaixo

{ Avulsa.CNPJ := '';

Avulsa.xOrgao := '';

Avulsa.matr := '';

Avulsa.xAgente := '';

Avulsa.fone := '';

Avulsa.UF := '';

Avulsa.nDAR := '';

Avulsa.dEmi := now;

Avulsa.vDAR := 0;

Avulsa.repEmi := '';

Avulsa.dPag := now; }

Dest.CNPJCPF := DNF.CNPJ_CPF.Conteudo; //'05481336000137';

Dest.IE := DNF.INSCR_EST.Conteudo;// '687138770110';

if not VarIsNull(CamposResultado_cliente[0]) then

Dest.ISUF :=CamposResultado_cliente[0]

else

Dest.ISUF := '';

Dest.xNome := DNF.NOME_CLIENTE.Conteudo; //'D.J. COM. E LOCAÇÃO DE SOFTWARES LTDA - ME';

Dest.EnderDest.Fone := DNF.FONE.Conteudo; //'1532599600';

Dest.EnderDest.CEP := StrToInt(DNF.CEP.Conteudo); //18270410;

Dest.EnderDest.xLgr := ''; //'Praça Anita Costa';

Dest.EnderDest.nro := ''; //0034';

Dest.EnderDest.xCpl := '';

Dest.EnderDest.xBairro := DNF.BAIRRO.Conteudo; //'Centro';

Dest.EnderDest.cMun := StrToInt(DNF.COD_MUNIC.Conteudo);// 3554003;

Dest.EnderDest.xMun := DNF.MUNICIPIO.Conteudo; //'Tatuí';

Dest.EnderDest.UF := DNF.UF.Conteudo; //'SP';

Dest.EnderDest.cPais := 1058;

Dest.EnderDest.xPais := 'BRASIL';

//Use os campos abaixo para informar o endereço de retirada quando for diferente do Remetente/Destinatário

{ Retirada.CNPJCPF := '';

Retirada.xLgr := '';

Retirada.nro := '';

Retirada.xCpl := '';

Retirada.xBairro := '';

Retirada.cMun := 0;

Retirada.xMun := '';

Retirada.UF := '';}

//Use os campos abaixo para informar o endereço de entrega quando for diferente do Remetente/Destinatário

{ Entrega.CNPJCPF := '';

Entrega.xLgr := '';

Entrega.nro := '';

Entrega.xCpl := '';

Entrega.xBairro := '';

Entrega.cMun := 0;

Entrega.xMun := '';

Entrega.UF := '';}

vconte:=0;

//Adicionando Produtos

DNF_ITENS.First;

while not DNF_ITENS.Eof do

begin

with Det.Add do

begin

vconte:=vconte + 1;

Prod.nItem := vconte; //1; // Número sequencial, para cada item deve ser incrementado

Prod.cProd := DNF_ITENS.COD_PRODUTO.ValorString; //'123456';

Prod.cEAN := DNF_ITENS.COD_BARRA.ValorString; //'1234567890123';

Prod.xProd := DNF_ITENS.NOME_PRODUTO.Conteudo; //'Descrição do Produto';

Prod.NCM := DNF_ITENS.NCM.Conteudo; //'12345678'; // Tabela NCM disponível em

Prod.EXTIPI := '';

Prod.CFOP := DNF_ITENS.COD_CFOP2.ValorString; //'5101';

Prod.uCom := DNF_ITENS.UNID.Conteudo; //'UN';

Prod.qCom := DNF_ITENS.QUANTIDADE.Conteudo; // 1 ;

Prod.vUnCom := DNF_ITENS.PRECO_UNITARIO.Conteudo; //100;

Prod.vProd := DNF_ITENS.TOTAL.Conteudo; //100 ;

Prod.cEANTrib := '';

Prod.uTrib := DNF_ITENS.UNID.Conteudo; //'UN';

Prod.qTrib := DNF_ITENS.QUANTIDADE.Conteudo; //1;

Prod.vUnTrib := DNF_ITENS.PRECO_UNITARIO.Conteudo; //100;

if (vconte=1) and

(DNF.VALOR_FRETE.Conteudo>0) then

Prod.vFrete := DNF.VALOR_FRETE.Conteudo

else

Prod.vFrete :=0;

if (vconte=1) and

(DNF.VALOR_SEGURO.Conteudo>0) then

Prod.vSeg := DNF.VALOR_SEGURO.Conteudo

else

Prod.vSeg := 0;

Prod.vDesc := DNF_ITENS.VALOR_DESC.Conteudo;

infAdProd :='';// 'Informação Adicional do Produto';

//Declaração de Importação. Pode ser adicionada várias através do comando Prod.DI.Add

{ with Prod.DI.Add do

begin

nDi := '';

dDi := now;

xLocDesemb := '';

UFDesemb := '';

dDesemb := now;

cExportador := '';

with adi.Add do

begin

nAdicao := 1;

nSeqAdi := 1;

cFabricante := '';

vDescDI := 0;

end;

end;

}

//Campos para venda de veículos novos

{ with Prod.veicProd do

begin

tpOP := toVendaConcessionaria;

chassi := '';

cCor := '';

xCor := '';

pot := '';

Cilin := '';

pesoL := '';

pesoB := '';

nSerie := '';

tpComb := '';

nMotor := '';

CMT := '';

dist := '';

RENAVAM := '';

anoMod := 0;

anoFab := 0;

tpPint := '';

tpVeic := 0;

espVeic := 0;

VIN := '';

condVeic := cvAcabado;

cMod := '';

end;

}

//Campos específicos para venda de medicamentos

{ with Prod.med.Add do

begin

nLote := '';

qLote := 0 ;

dFab := now ;

dVal := now ;

vPMC := 0 ;

end; }

//Campos específicos para venda de armamento

{ with Prod.arma.Add do

begin

nSerie := 0;

tpArma := taUsoPermitido ;

nCano := 0 ;

descr := '' ;

end; }

//Campos específicos para venda de combustível(distribuidoras)

{ with Prod.comb do

begin

cProdANP := 0;

CODIF := '';

qTemp := 0;

CIDE.qBCprod := 0 ;

CIDE.vAliqProd := 0 ;

CIDE.vCIDE := 0 ;

ICMS.vBCICMS := 0 ;

ICMS.vICMS := 0 ;

ICMS.vBCICMSST := 0 ;

ICMS.vICMSST := 0 ;

ICMSInter.vBCICMSSTDest := 0 ;

ICMSInter.vICMSSTDest := 0 ;

ICMSCons.vBCICMSSTCons := 0 ;

ICMSCons.vICMSSTCons := 0 ;

ICMSCons.UFcons := '' ;

end;}

with Imposto do

begin

with ICMS do

begin

PTabela(TabGlobal.DProdutos,['CODIGO'],[DNF_ITENS.COD_PRODUTO.Conteudo],

['COD_FABRICA','CLASSIF_FISCAL','ORIGEM_MERC','UNIDADE','PERC_AGREGAR','TRIBUTADO',

'CHASSI','COR_MONTADORA','COR_DESCR','POTENCIA_MOTO','CM3_POTENCIA','SERIAL_MOTOR',

'TIPO_COMB','NUMERO_MOTOR','CMKG','DISTANCIA_EIXO','RENAVAM','ANOMODELO','ANOFABR',

'TIPO_PINTURA','TIPO_VEIC','ESPECIE_VEIC','CONDI_VIN','COND_VEIC','COD_MAR_MOD',

'TIPO_OPER','PESO_LIQUIDO','PESO_BRUTO','TRIB_OUTRO'],CamposResultado_prod);

// 25 26 27 28

{ Para o Simples Nacional você deve informar o CRT da empresa...

Código:

Emit.CRT := crtSimplesNacional

... e usar CSOSN (101, 102, 103, 201, 202, 203, 300, 400, 500 ou 900) para os produtos, ao invés do CST...

CSOSN := csosn101;

Sérgio

}

//empresa 3-Normal

if TabGlobal.DConf_NFe.REGIME_TRIBUTARIO.Conteudo='3' then

begin

if DNF_ITENS.COD_CST_TRIB.Conteudo='00' then

begin

CST := cst00; //cst00;

if DNF_ITENS.ORIGEM_MERC.Conteudo='0' then

ICMS.orig := oeNacional

else if DNF_ITENS.ORIGEM_MERC.Conteudo='1' then

ICMS.orig := oeEstrangeiraImportacaoDireta

else if DNF_ITENS.ORIGEM_MERC.Conteudo='2' then

ICMS.orig := oeEstrangeiraAdquiridaBrasil;

//Modalidade de determinação BC do ICMS

if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='0' then

ICMS.modBC := dbiValorOperacao

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='1' then

ICMS.modBC := dbiPauta

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='2' then

ICMS.modBC := dbiPrecoTabelado

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='3' then

ICMS.modBC := dbiValorOperacao;

ICMS.vBC := DNF_ITENS.BASE_ICMS.Conteudo; //100;

ICMS.pICMS := DNF_ITENS.ALIQ_ICMS.Conteudo; //18;

ICMS.vICMS := DNF_ITENS.VALOR_ICMS.Conteudo; //18;

ICMS.modBCST := dbisMargemValorAgregado;

ICMS.pMVAST := 0;

ICMS.pRedBCST:= 0;

ICMS.vBCST := 0;

ICMS.pICMSST := 0;

ICMS.vICMSST := 0;

ICMS.pRedBC := 0;

end; //fim 00

//cst10

if DNF_ITENS.COD_CST_TRIB.Conteudo='10' then

begin

CST := cst10;

if DNF_ITENS.ORIGEM_MERC.Conteudo='0' then

ICMS.orig := oeNacional

else if DNF_ITENS.ORIGEM_MERC.Conteudo='1' then

ICMS.orig := oeEstrangeiraImportacaoDireta

else if DNF_ITENS.ORIGEM_MERC.Conteudo='2' then

ICMS.orig := oeEstrangeiraAdquiridaBrasil;

//Modalidade de determinação BC do ICMS

if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='0' then

ICMS.modBC := dbiValorOperacao

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='1' then

ICMS.modBC := dbiPauta

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='2' then

ICMS.modBC := dbiPrecoTabelado

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='3' then

ICMS.modBC := dbiValorOperacao;

ICMS.vBC := DNF_ITENS.BASE_ICMS.Conteudo; //100;

ICMS.pICMS := DNF_ITENS.ALIQ_ICMS.Conteudo; //18;

ICMS.vICMS := DNF_ITENS.VALOR_ICMS.Conteudo; //18;

//Mod.Det.BC.ICMS.ST

if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS_ST.Conteudo='0' then

ICMS.modBCST := dbisPrecoTabelado

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS_ST.Conteudo='1' then

ICMS.modBCST := dbisListaNegativa

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS_ST.Conteudo='2' then

ICMS.modBCST := dbisListaPositiva

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS_ST.Conteudo='3' then

ICMS.modBCST := dbisListaNeutra

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS_ST.Conteudo='4' then

ICMS.modBCST := dbisMargemValorAgregado

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS_ST.Conteudo='5' then

ICMS.modBCST := dbisPauta;

if CamposResultado_prod[4]>0 then

ICMS.pMVAST := CamposResultado_prod[4] //0;

else

ICMS.pMVAST := 0;

ICMS.pRedBCST:= TabGlobal.DNF_ITENS.PREDBCST.Conteudo;

ICMS.vBCST := DNF_ITENS.BASE_SUBST.Conteudo;

ICMS.pICMSST := 0;

ICMS.vICMSST := DNF_ITENS.VALOR_SUBST.Conteudo;

ICMS.pRedBC := 0;

end; //fim cst 10

//cst20

if DNF_ITENS.COD_CST_TRIB.Conteudo='20' then

begin

CST := cst20;

if DNF_ITENS.ORIGEM_MERC.Conteudo='0' then

ICMS.orig := oeNacional

else if DNF_ITENS.ORIGEM_MERC.Conteudo='1' then

ICMS.orig := oeEstrangeiraImportacaoDireta

else if DNF_ITENS.ORIGEM_MERC.Conteudo='2' then

ICMS.orig := oeEstrangeiraAdquiridaBrasil;

//Modalidade de determinação BC do ICMS

if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='0' then

ICMS.modBC := dbiValorOperacao

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='1' then

ICMS.modBC := dbiPauta

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='2' then

ICMS.modBC := dbiPrecoTabelado

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='3' then

ICMS.modBC := dbiValorOperacao;

ICMS.vBC := DNF_ITENS.BASE_ICMS.Conteudo; //100;

ICMS.pICMS := DNF_ITENS.ALIQ_ICMS.Conteudo; //18;

ICMS.vICMS := DNF_ITENS.VALOR_ICMS.Conteudo; //18;

ICMS.modBCST := dbisMargemValorAgregado;

ICMS.pMVAST := 0;

ICMS.pRedBCST:= 0;

ICMS.vBCST := 0;

ICMS.pICMSST := 0;

ICMS.vICMSST := 0;

ICMS.pRedBC := 0;

end; //fim 20

//cst 40

if DNF_ITENS.COD_CST_TRIB.Conteudo='40' then

begin

CST := cst40; //cst00;

if DNF_ITENS.ORIGEM_MERC.Conteudo='0' then

ICMS.orig := oeNacional

else if DNF_ITENS.ORIGEM_MERC.Conteudo='1' then

ICMS.orig := oeEstrangeiraImportacaoDireta

else if DNF_ITENS.ORIGEM_MERC.Conteudo='2' then

ICMS.orig := oeEstrangeiraAdquiridaBrasil;

//Modalidade de determinação BC do ICMS

ICMS.modBC := dbiValorOperacao;

ICMS.vBC := 0;

ICMS.pICMS := 0;

ICMS.vICMS := 0;

ICMS.modBCST := dbisMargemValorAgregado;

ICMS.pMVAST := 0;

ICMS.pRedBCST:= 0;

ICMS.vBCST := 0;

ICMS.pICMSST := 0;

ICMS.vICMSST := 0;

ICMS.pRedBC := 0;

end; //fim 40

//cst 41

if DNF_ITENS.COD_CST_TRIB.Conteudo='41' then

begin

CST := cst41;

if DNF_ITENS.ORIGEM_MERC.Conteudo='0' then

ICMS.orig := oeNacional

else if DNF_ITENS.ORIGEM_MERC.Conteudo='1' then

ICMS.orig := oeEstrangeiraImportacaoDireta

else if DNF_ITENS.ORIGEM_MERC.Conteudo='2' then

ICMS.orig := oeEstrangeiraAdquiridaBrasil;

//Modalidade de determinação BC do ICMS

ICMS.modBC := dbiValorOperacao;

ICMS.vBC := 0;

ICMS.pICMS := 0;

ICMS.vICMS := 0;

ICMS.modBCST := dbisMargemValorAgregado;

ICMS.pMVAST := 0;

ICMS.pRedBCST:= 0;

ICMS.vBCST := 0;

ICMS.pICMSST := 0;

ICMS.vICMSST := 0;

ICMS.pRedBC := 0;

end; //fim 41

//cst 50

if DNF_ITENS.COD_CST_TRIB.Conteudo='50' then

begin

CST := cst50;

if DNF_ITENS.ORIGEM_MERC.Conteudo='0' then

ICMS.orig := oeNacional

else if DNF_ITENS.ORIGEM_MERC.Conteudo='1' then

ICMS.orig := oeEstrangeiraImportacaoDireta

else if DNF_ITENS.ORIGEM_MERC.Conteudo='2' then

ICMS.orig := oeEstrangeiraAdquiridaBrasil;

//Modalidade de determinação BC do ICMS

ICMS.modBC := dbiValorOperacao;

ICMS.vBC := 0;

ICMS.pICMS := 0;

ICMS.vICMS := 0;

ICMS.modBCST := dbisMargemValorAgregado;

ICMS.pMVAST := 0;

ICMS.pRedBCST:= 0;

ICMS.vBCST := 0;

ICMS.pICMSST := 0;

ICMS.vICMSST := 0;

ICMS.pRedBC := 0;

end; //fim 50

//cst 51

if DNF_ITENS.COD_CST_TRIB.Conteudo='51' then

begin

CST := cst51;

if DNF_ITENS.ORIGEM_MERC.Conteudo='0' then

ICMS.orig := oeNacional

else if DNF_ITENS.ORIGEM_MERC.Conteudo='1' then

ICMS.orig := oeEstrangeiraImportacaoDireta

else if DNF_ITENS.ORIGEM_MERC.Conteudo='2' then

ICMS.orig := oeEstrangeiraAdquiridaBrasil;

//Modalidade de determinação BC do ICMS

if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='0' then

ICMS.modBC := dbiValorOperacao

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='1' then

ICMS.modBC := dbiPauta

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='2' then

ICMS.modBC := dbiPrecoTabelado

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='3' then

ICMS.modBC := dbiValorOperacao;

ICMS.vBC := DNF_ITENS.BASE_ICMS.Conteudo; //100;

ICMS.pICMS := DNF_ITENS.ALIQ_ICMS.Conteudo; //18;

ICMS.vICMS := DNF_ITENS.VALOR_ICMS.Conteudo; //18;

ICMS.pMVAST := 0;

ICMS.pRedBCST:= 0;

ICMS.vBCST := 0;

ICMS.pICMSST := 0;

ICMS.vICMSST := 0;

ICMS.pRedBC := 0;

end; //fim 51

//cst 60

if DNF_ITENS.COD_CST_TRIB.Conteudo='60' then

begin

CST := cst60;

if DNF_ITENS.ORIGEM_MERC.Conteudo='0' then

ICMS.orig := oeNacional

else if DNF_ITENS.ORIGEM_MERC.Conteudo='1' then

ICMS.orig := oeEstrangeiraImportacaoDireta

else if DNF_ITENS.ORIGEM_MERC.Conteudo='2' then

ICMS.orig := oeEstrangeiraAdquiridaBrasil;

//Modalidade de determinação BC do ICMS

if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='0' then

ICMS.modBC := dbiValorOperacao

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='1' then

ICMS.modBC := dbiPauta

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='2' then

ICMS.modBC := dbiPrecoTabelado

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='3' then

ICMS.modBC := dbiValorOperacao;

ICMS.vBC := DNF_ITENS.BASE_ICMS.Conteudo; //100;

ICMS.pICMS := DNF_ITENS.ALIQ_ICMS.Conteudo; //18;

ICMS.vICMS := DNF_ITENS.VALOR_ICMS.Conteudo; //18;

ICMS.pMVAST := 0;

ICMS.pRedBCST:= 0;

ICMS.vBCST := DNF_ITENS.BASE_SUBST.Conteudo;

ICMS.pICMSST := 0;

ICMS.vICMSST := DNF_ITENS.VALOR_SUBST.Conteudo;

ICMS.pRedBC := 0;

end; //fim 60

//cst 70

if DNF_ITENS.COD_CST_TRIB.Conteudo='70' then

begin

CST := cst70;

if DNF_ITENS.ORIGEM_MERC.Conteudo='0' then

ICMS.orig := oeNacional

else if DNF_ITENS.ORIGEM_MERC.Conteudo='1' then

ICMS.orig := oeEstrangeiraImportacaoDireta

else if DNF_ITENS.ORIGEM_MERC.Conteudo='2' then

ICMS.orig := oeEstrangeiraAdquiridaBrasil;

//Modalidade de determinação BC do ICMS

if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='0' then

ICMS.modBC := dbiValorOperacao

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='1' then

ICMS.modBC := dbiPauta

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='2' then

ICMS.modBC := dbiPrecoTabelado

else if TabGlobal.DConf_NFe.MODALI_DET_BC_ICMS.Conteudo='3' then

ICMS.modBC := dbiValorOperacao;

ICMS.vBC := DNF_ITENS.BASE_ICMS.Conteudo; //100;

ICMS.pICMS := DNF_ITENS.ALIQ_ICMS.Conteudo; //18;

ICMS.vICMS := DNF_ITENS.VALOR_ICMS.Conteudo; //18;

if CamposResultado_prod[4]>0 then

ICMS.pMVAST := CamposResultado_prod[4] //0;

else

ICMS.pMVAST := 0;

ICMS.pRedBCST:= TabGlobal.DNF_ITENS.PREDBCST.Conteudo;

ICMS.vBCST := DNF_ITENS.BASE_SUBST.Conteudo;

ICMS.pICMSST := 0;

ICMS.vICMSST := DNF_ITENS.VALOR_SUBST.Conteudo;

ICMS.pRedBC := 0;

end; //fim 70

end; //fim empresa normal

//empresa 1-Simples Nacional

if TabGlobal.DConf_NFe.REGIME_TRIBUTARIO.Conteudo='1' then

begin

if DNF_ITENS.COD_CST_SIM_NAC.Conteudo='101' then

begin

CSOSN := csosn101;

if DNF_ITENS.ORIGEM_MERC.Conteudo='0' then

orig := oeNacional

else if DNF_ITENS.ORIGEM_MERC.Conteudo='1' then

orig := oeEstrangeiraImportacaoDireta

else if DNF_ITENS.ORIGEM_MERC.Conteudo='2' then

orig := oeEstrangeiraAdquiridaBrasil;

pCredSN :=DNF_ITENS.PCREDSN.Conteudo;

vCredICMSSN :=DNF_ITENS.VCREDICMSSN.Conteudo;

end; //fim 101

if DNF_ITENS.COD_CST_SIM_NAC.Conteudo='102' then

begin

CSOSN := csosn102;

if DNF_ITENS.ORIGEM_MERC.Conteudo='0' then

orig := oeNacional

else if DNF_ITENS.ORIGEM_MERC.Conteudo='1' then

orig := oeEstrangeiraImportacaoDireta

else if DNF_ITENS.ORIGEM_MERC.Conteudo='2' then

orig := oeEstrangeiraAdquiridaBrasil;

end; //fim 102

{ CSOSN201 - Preencher e calcular os campos:

Orig

CSOSN

modBCST

pMVAST

pRedBCST

vBCST

pICMSST

vICMSST

pCredSN

vCredICMSSN

CSOSN900 - Preencher e calcular os campos:

Orig

CSOSN

modBC

vBC

pRedBC

pICMS

vICMS

modBCST

pMVAST

pRedBCST

vBCST

pICMSST

vICMSST

pCredSN

vCredICMSST

}

end; //fim empresa simples nacional

end;

with IPI do

begin

if (TabGlobal.DConf_NFe.CST_IPI.Conteudo='00') or

(TabGlobal.DConf_NFe.CST_IPI.Conteudo='49') or

(TabGlobal.DConf_NFe.CST_IPI.Conteudo='50') or

(TabGlobal.DConf_NFe.CST_IPI.Conteudo='99') then

begin

if (DNF_ITENS.VALOR_IPI.Conteudo>0) and

(DNF_ITENS.PRECO_UNITARIO.Conteudo>0) and

(DNF_ITENS.ALIQ_IPI.Conteudo>0) and

(DNF_ITENS.TOTAL.Conteudo>0) then

begin

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='00' then CST := ipi00;

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='49' then CST := ipi49;

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='50' then CST := ipi50;

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='99' then CST := ipi99;

clEnq := '';

CNPJProd := '';

cSelo := '';

qSelo := 0;

cEnq := '999'; //Código de Enquadramento Legal do IPI 999

vBC := DNF_ITENS.TOTAL.Conteudo;

qUnid := 0;

vUnid := 0;

pIPI := DNF_ITENS.ALIQ_IPI.Conteudo;

vIPI := DNF_ITENS.VALOR_IPI.Conteudo;

end;

end; //ipi com valores

//ipi sem valores

if (TabGlobal.DConf_NFe.CST_IPI.Conteudo='01') or

(TabGlobal.DConf_NFe.CST_IPI.Conteudo='02') or

(TabGlobal.DConf_NFe.CST_IPI.Conteudo='04') or

(TabGlobal.DConf_NFe.CST_IPI.Conteudo='05') or

(TabGlobal.DConf_NFe.CST_IPI.Conteudo='51') or

(TabGlobal.DConf_NFe.CST_IPI.Conteudo='52') or

(TabGlobal.DConf_NFe.CST_IPI.Conteudo='53') or

(TabGlobal.DConf_NFe.CST_IPI.Conteudo='54') or

(TabGlobal.DConf_NFe.CST_IPI.Conteudo='55') then

begin

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='01' then CST := ipi01;

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='02' then CST := ipi02;

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='04' then CST := ipi04;

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='05' then CST := ipi05;

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='51' then CST := ipi51;

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='52' then CST := ipi52;

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='53' then CST := ipi53;

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='54' then CST := ipi54;

if TabGlobal.DConf_NFe.CST_IPI.Conteudo='55' then CST := ipi55;

clEnq := '';

CNPJProd := '';

cSelo := '';

qSelo := 0;

cEnq := '999'; //Código de Enquadramento Legal do IPI 999

vBC := 0;

qUnid := 0;

vUnid := 0;

pIPI := 0;

vIPI := 0;

end;

{ CST := ipi99 ;

clEnq := '';

CNPJProd := '';

cSelo := '';

qSelo := 0;

cEnq := ''; //Código de Enquadramento Legal do IPI 999

vBC := 0;

qUnid := 0;

vUnid := 0;

pIPI := 0;

vIPI := 0;

}

end;

with II do

begin

vBc := 0;

vDespAdu := 0;

vII := 0;

vIOF := 0;

end;

with PIS do

begin

if TabGlobal.DConf_NFe.CST_PIS.Conteudo='01' then

begin

CST := pis01; //EditPis.Text; //

PIS.vBC :=DNF_ITENS.TOTAL.Conteudo; //

PIS.pPIS :=TabGlobal.DConf_NFe.ALIQ_PIS.Conteudo; //

PIS.vPIS :=iif(TabGlobal.DConf_NFe.ALIQ_PIS.Conteudo>0,((TabGlobal.DConf_NFe.ALIQ_PIS.Conteudo*DNF_ITENS.TOTAL.Conteudo)/100),'0'); //

PIS.qBCProd := 0;

PIS.vAliqProd := 0;

PIS.vPIS := 0;

end;

if TabGlobal.DConf_NFe.CST_PIS.Conteudo='02' then

begin

CST := pis02; //EditPis.Text; //

PIS.vBC :=DNF_ITENS.TOTAL.Conteudo; //

PIS.pPIS :=TabGlobal.DConf_NFe.ALIQ_PIS.Conteudo; //

PIS.vPIS :=iif(TabGlobal.DConf_NFe.ALIQ_PIS.Conteudo>0,((TabGlobal.DConf_NFe.ALIQ_PIS.Conteudo*DNF_ITENS.TOTAL.Conteudo)/100),'0'); //

PIS.qBCProd := 0;

PIS.vAliqProd := 0;

PIS.vPIS := 0;

end;

if TabGlobal.DConf_NFe.CST_PIS.Conteudo='03' then

begin

CST := pis03; //EditPis.Text; //

PIS.vBC :=DNF_ITENS.TOTAL.Conteudo; //

PIS.pPIS :=TabGlobal.DConf_NFe.ALIQ_PIS.Conteudo; //

PIS.vPIS :=iif(TabGlobal.DConf_NFe.ALIQ_PIS.Conteudo>0,((TabGlobal.DConf_NFe.ALIQ_PIS.Conteudo*DNF_ITENS.TOTAL.Conteudo)/100),'0'); //

PIS.qBCProd := 0;

PIS.vAliqProd := 0;

PIS.vPIS := 0;

end;

if (TabGlobal.DConf_NFe.CST_PIS.Conteudo='04') or

(TabGlobal.DConf_NFe.CST_PIS.Conteudo='06') or

(TabGlobal.DConf_NFe.CST_PIS.Conteudo='07') or

(TabGlobal.DConf_NFe.CST_PIS.Conteudo='08') or

(TabGlobal.DConf_NFe.CST_PIS.Conteudo='09') then

begin

if TabGlobal.DConf_NFe.CST_PIS.Conteudo='04' then CST:=pis04; //EditPis.Text; //

if TabGlobal.DConf_NFe.CST_PIS.Conteudo='06' then CST:=pis06;

if TabGlobal.DConf_NFe.CST_PIS.Conteudo='07' then CST:=pis07;

if TabGlobal.DConf_NFe.CST_PIS.Conteudo='08' then CST:=pis08;

if TabGlobal.DConf_NFe.CST_PIS.Conteudo='09' then CST:=pis09;

PIS.vBC :=0; //

PIS.pPIS :=0; //

PIS.vPIS :=0; //

PIS.qBCProd :=0;

PIS.vAliqProd :=0;

PIS.vPIS :=0;

end;

if TabGlobal.DConf_NFe.CST_PIS.Conteudo='99' then

begin

CST:=pis99; //EditPis.Text; //

PIS.vBC :=0; //

PIS.pPIS :=0; //

PIS.vPIS :=0; //

PIS.qBCProd :=0;

PIS.vAliqProd :=0;

PIS.vPIS :=0;

end;

{ CST := pis99;

PIS.vBC := 0;

PIS.pPIS := 0;

PIS.vPIS := 0;

PIS.qBCProd := 0;

PIS.vAliqProd := 0;

PIS.vPIS := 0;

}

end;

with PISST do

begin

vBc := 0;

pPis := 0;

qBCProd := 0;

vAliqProd := 0;

vPIS := 0;

end;

with COFINS do

begin

if (TabGlobal.DConf_NFe.CST_COFINS.Conteudo='01') and

(TabGlobal.DConf_NFe.ALIQ_COFINS.Conteudo>0) then

begin

CST :=cof01;

COFINS.vBC := DNF_ITENS.TOTAL.Conteudo;

COFINS.pCOFINS := TabGlobal.DConf_NFe.ALIQ_COFINS.Conteudo;

COFINS.vCOFINS := ((TabGlobal.DConf_NFe.ALIQ_COFINS.Conteudo*DNF_ITENS.TOTAL.Conteudo)/100);

COFINS.qBCProd := 0;

COFINS.vAliqProd := 0;

end;

if (TabGlobal.DConf_NFe.CST_COFINS.Conteudo='01') and

(TabGlobal.DConf_NFe.ALIQ_COFINS.Conteudo=0) then

begin

CST :=cof01;

COFINS.vBC := 0;

COFINS.pCOFINS := 0;

COFINS.vCOFINS := 0;

COFINS.qBCProd := 0;

COFINS.vAliqProd := 0;

end;

if (TabGlobal.DConf_NFe.CST_COFINS.Conteudo='02') and

(TabGlobal.DConf_NFe.ALIQ_COFINS.Conteudo>0) then

begin

CST :=cof02;

COFINS.vBC := DNF_ITENS.TOTAL.Conteudo;

COFINS.pCOFINS := TabGlobal.DConf_NFe.ALIQ_COFINS.Conteudo;

COFINS.vCOFINS := ((TabGlobal.DConf_NFe.ALIQ_COFINS.Conteudo*DNF_ITENS.TOTAL.Conteudo)/100);

COFINS.qBCProd := 0;

COFINS.vAliqProd := 0;

end;

if (TabGlobal.DConf_NFe.CST_COFINS.Conteudo='02') and

(TabGlobal.DConf_NFe.ALIQ_COFINS.Conteudo=0) then

begin

CST :=cof02;

COFINS.vBC := 0;

COFINS.pCOFINS := 0;

COFINS.vCOFINS := 0;

COFINS.qBCProd := 0;

COFINS.vAliqProd := 0;

end;

if TabGlobal.DConf_NFe.CST_COFINS.Conteudo='03' then

begin

CST :=cof03;

COFINS.vBC := 0;

COFINS.pCOFINS := 0;

COFINS.vCOFINS := 0;

COFINS.qBCProd := 0;

COFINS.vAliqProd := 0;

end;

if (TabGlobal.DConf_NFe.CST_COFINS.Conteudo='04') or

(TabGlobal.DConf_NFe.CST_COFINS.Conteudo='06') or

(TabGlobal.DConf_NFe.CST_COFINS.Conteudo='07') or

(TabGlobal.DConf_NFe.CST_COFINS.Conteudo='08') or

(TabGlobal.DConf_NFe.CST_COFINS.Conteudo='09') then

begin

if TabGlobal.DConf_NFe.CST_COFINS.Conteudo='04' then CST:=cof04;

if TabGlobal.DConf_NFe.CST_COFINS.Conteudo='06' then CST:=cof06;

if TabGlobal.DConf_NFe.CST_COFINS.Conteudo='07' then CST:=cof07;

if TabGlobal.DConf_NFe.CST_COFINS.Conteudo='08' then CST:=cof08;

if TabGlobal.DConf_NFe.CST_COFINS.Conteudo='09' then CST:=cof09;

COFINS.vBC := 0;

COFINS.pCOFINS := 0;

COFINS.vCOFINS := 0;

COFINS.qBCProd := 0;

COFINS.vAliqProd := 0;

end;

if TabGlobal.DConf_NFe.CST_COFINS.Conteudo='99' then

begin

CST :=cof99;

COFINS.vBC := 0;

COFINS.pCOFINS := 0;

COFINS.vCOFINS := 0;

COFINS.qBCProd := 0;

COFINS.vAliqProd := 0;

end;

{ CST := cof99;

COFINS.vBC := 0;

COFINS.pCOFINS := 0;

COFINS.vCOFINS := 0;

COFINS.qBCProd := 0;

COFINS.vAliqProd := 0;

}

end;

with COFINSST do

begin

vBC := 0;

pCOFINS := 0;

qBCProd := 0;

vAliqProd := 0;

vCOFINS := 0;

end;

//Grupo para serviços

{ with ISSQN do

begin

vBC := 0;

vAliq := 0;

vISSQN := 0;

cMunFG := 0;

cListServ := 0; // Preencha este campo usando a tabela disponível

// em http://www.planalto.gov.br/Ccivil_03/LE ... Lcp116.htm

end;}

end;

end ;

//deve ser aqui end do nf_itens

DNF_ITENS.Next;

end; //fim do dnf_itens

Total.ICMSTot.vBC := DNF.BASE_ICMS.Conteudo;

Total.ICMSTot.vICMS := DNF.VALOR_ICMS.Conteudo;

Total.ICMSTot.vBCST := DNF.BASE_SUBST.Conteudo;

Total.ICMSTot.vST := DNF.VALOR_SUBST.Conteudo;

Total.ICMSTot.vProd := (DNF.VALOR_PRODUTOS.Conteudo+DNF.VALOR_ISS.Conteudo);

Total.ICMSTot.vFrete := DNF.VALOR_FRETE.Conteudo;

Total.ICMSTot.vSeg := DNF.VALOR_SEGURO.Conteudo;

Total.ICMSTot.vDesc := DNF.VALOR_DESCONTO.Conteudo;

Total.ICMSTot.vII := 0;

Total.ICMSTot.vIPI := DNF.TOTAL_IPI.Conteudo;

Total.ICMSTot.vPIS := 0;

Total.ICMSTot.vCOFINS := 0;

Total.ICMSTot.vOutro := DNF.OUTRAS_DESPESAS.Conteudo;

Total.ICMSTot.vNF := DNF.TOTAL_NF.Conteudo;

Total.ISSQNtot.vServ := 0;

Total.ISSQNTot.vBC := 0;

Total.ISSQNTot.vISS := 0;

Total.ISSQNTot.vPIS := 0;

Total.ISSQNTot.vCOFINS := 0;

Total.retTrib.vRetPIS := 0;

Total.retTrib.vRetCOFINS := 0;

Total.retTrib.vRetCSLL := 0;

Total.retTrib.vBCIRRF := 0;

Total.retTrib.vIRRF := 0;

Total.retTrib.vBCRetPrev := 0;

Total.retTrib.vRetPrev := 0;

PTabela(TabGlobal.DTransportes,['TRANSP_CODIGO'],[DNF.COD_TRANSP.Conteudo],

['TRANSP_NOME','TRANSP_UF','TRANSP_CNPJ','TRANSP_ENDERECO','TRANSP_MUNICIPIO','TRANSP_MUNICIPIO_UF','TRANSP_INSCRICAO','CARTEIRA_HABILITACAO','NOME_MOTORISTA','END_MOTORISTA','MUNICIPIO_MOTO','UF_MOTORISTA','CPF_MOTORISTA','TRANSP_RNTC','TRANSP_PROPRIETARIO'],CamposResultado_transp);

// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

if DNF.FRETE_CONTA.Conteudo='0' then //,'0','1'); //+Separador; // 0=Emitente e 1=Destinatário

Transp.modFrete := mfContaEmitente

else if DNF.FRETE_CONTA.Conteudo='1' then

Transp.modFrete := mfContaDestinatario

else if DNF.FRETE_CONTA.Conteudo='2' then

Transp.modFrete := mfContaTerceiros;

docnpj1:=copy(TrocaString(CamposResultado_transp[2], '.', '', [rfReplaceAll, rfIgnoreCase]),1,15);

docnpj2:=copy(TrocaString(docnpj1, '-', '', [rfReplaceAll, rfIgnoreCase]),1,15);

//x04 cnpj e x05 cpf do campo cnpj cadastro transportadora transp_cnpj

if Length(docnpj2)>13 then

begin

Transp.Transporta.CNPJCPF :=iif(not VarIsNull(docnpj2),docnpj2,' '); // ou

end;

//nesse caso foi cadastrado o cpf do motorista

if Length(docnpj2)<14 then

begin

Transp.Transporta.CNPJCPF :=iif(not VarIsNull(docnpj2),docnpj2,' '); // ou

end;

// Transp.Transporta.CNPJCPF := '';

Transp.Transporta.xNome := iif(not VarIsNull(CamposResultado_transp[14]),RemoveAcentos(CamposResultado_transp[14]),' ');

Transp.Transporta.IE := iif(not VarIsNull(CamposResultado_transp[6]),CamposResultado_transp[6],'');

Transp.Transporta.xEnder := iif(not VarIsNull(CamposResultado_transp[3]),RemoveAcentos(CamposResultado_transp[3]),'');

Transp.Transporta.xMun := iif(not VarIsNull(CamposResultado_transp[4]),RemoveAcentos(CamposResultado_transp[4]),'');

Transp.Transporta.UF := iif(not VarIsNull(CamposResultado_transp[5]),CamposResultado_transp[5],' ');

Transp.retTransp.vServ := 0;

Transp.retTransp.vBCRet := 0;

Transp.retTransp.pICMSRet := 0;

Transp.retTransp.vICMSRet := 0;

Transp.retTransp.CFOP := '';

Transp.retTransp.cMunFG := 0;

Transp.veicTransp.placa := DNF.PLACA.Conteudo;

Transp.veicTransp.UF := iif(not VarIsNull(CamposResultado_transp[1]),CamposResultado_transp[1],Sistema.UfUsr);

Transp.veicTransp.RNTC := iif(not VarIsNull(CamposResultado_transp[13]),CamposResultado_transp[13],' ');

//Dados do Reboque

{ with Transp.Reboque.Add do

begin

placa := '';

UF := '';

RNTC := '';

end;}

with Transp.Vol.Add do

begin

qVol := StrToInt(dnf.QUANTIDADE.ValorString);

esp := RemoveAcentos(DNF.ESPECIE.Conteudo);

marca := RemoveAcentos(DNF.MARCA.Conteudo);

nVol := DNF.MARCA_NUMERO.Conteudo;

pesoL := StrToInt(DNF.PESO_LIQUIDO.ValorString);

pesoB := StrToInt(DNF.PESO_BRUTO.ValorString);

//Lacres do volume. Pode ser adicionado vários

//Lacres.Add.nLacre := '';

end;

Cobr.Fat.nFat := DNF.NF.ValorString; //'Numero da Fatura';

Cobr.Fat.vOrig := DNF.VALOR_PRODUTOS.Conteudo;

Cobr.Fat.vDesc := DNF.VALOR_DESCONTO.Conteudo;

Cobr.Fat.vLiq := DNF.TOTAL_NF.Conteudo;

with Cobr.Dup.Add do

begin

if DNF.DP_VALOR1.Conteudo>0 then

begin

nDup :=DNF.DUPL1.Conteudo;

dVenc :=DNF.VENCTO1.Conteudo;

vDup :=DNF.DP_VALOR1.Conteudo;

end;

if DNF.DP_VALOR2.Conteudo>0 then

begin

nDup :=DNF.DUPL2.Conteudo;

dVenc :=DNF.VENCTO2.Conteudo;

vDup :=DNF.DP_VALOR2.Conteudo;

end;

if DNF.DP_VALOR3.Conteudo>0 then

begin

nDup :=DNF.DUPL3.Conteudo;

dVenc :=DNF.VENCTO3.Conteudo;

vDup :=DNF.DP_VALOR3.Conteudo;

end;

if DNF.DP_VALOR4.Conteudo>0 then

begin

nDup :=DNF.DUPL4.Conteudo;

dVenc :=DNF.VENCTO4.Conteudo;

vDup :=DNF.DP_VALOR4.Conteudo;

end;

if DNF.DP_VALOR5.Conteudo>0 then

begin

nDup :=DNF.DUPL5.Conteudo;

dVenc :=DNF.VENCTO5.Conteudo;

vDup :=DNF.DP_VALOR5.Conteudo;

end;

if DNF.DP_VALOR6.Conteudo>0 then

begin

nDup :=DNF.DUPL6.Conteudo;

dVenc :=DNF.VENCTO6.Conteudo;

vDup :=DNF.DP_VALOR6.Conteudo;

end;

{ nDup := '1234';

dVenc := now+10;

vDup := 100;

}

end;

if DNF.PESSOA.Conteudo='F' then

begin

InfAdic.infCpl:=

iif(not VarIsNull(CamposResultado_cfop[0]),RemoveAcentos(CamposResultado_cfop[0]),'.')+' '+

iif(not VarIsNull(CamposResultado_cfop[1]),RemoveAcentos(CamposResultado_cfop[1]),'.')+' '+

RemoveAcentos(DNF.OBSERVACAO1.Conteudo)+' '+

RemoveAcentos(DNF.OBSERVACAO2.Conteudo)+' '+

RemoveAcentos(DNF.OBSERVACAO3.Conteudo)+' '+

RemoveAcentos(DNF.OBSERVACAO4.Conteudo)+' '+

RemoveAcentos(DNF.ADICIONAL1.Conteudo)+' '+

RemoveAcentos(DNF.ADICIONAL2.Conteudo)+' '+

iif(DNF.CARGA_NUMERO.Conteudo<>'','NUMERO CARGA: '+RemoveAcentos(DNF.CARGA_NUMERO.Conteudo),' ');

end else

begin

InfAdic.infCpl:=

iif(not VarIsNull(CamposResultado_cfop[2]),RemoveAcentos(CamposResultado_cfop[2]),'.')+' '+

iif(not VarIsNull(CamposResultado_cfop[3]),RemoveAcentos(CamposResultado_cfop[3]),'.')+' '+

RemoveAcentos(DNF.OBSERVACAO1.Conteudo)+' '+

RemoveAcentos(DNF.OBSERVACAO2.Conteudo)+' '+

RemoveAcentos(DNF.OBSERVACAO3.Conteudo)+' '+

RemoveAcentos(DNF.OBSERVACAO4.Conteudo)+' '+

RemoveAcentos(DNF.ADICIONAL1.Conteudo)+' '+

RemoveAcentos(DNF.ADICIONAL2.Conteudo)+' '+

iif(DNF.CARGA_NUMERO.Conteudo<>'','NUMERO CARGA: '+DNF.CARGA_NUMERO.Conteudo,' ');

end;

InfAdic.infAdFisco := '';

with InfAdic.obsCont.Add do

begin

xCampo := ''; //'ObsCont';

xTexto := ''; //'Texto';

end;

with InfAdic.obsFisco.Add do

begin

xCampo := ''; //'ObsFisco';

xTexto := ''; //'Texto';

end;

//Processo referenciado

{ with InfAdic.procRef.Add do

begin

nProc := '';

indProc := ipSEFAZ;

end; }

exporta.UFembarq := '';;

exporta.xLocEmbarq := '';

compra.xNEmp := '';

compra.xPed := '';

compra.xCont := '';

end;

end;

  • Este tópico foi criado há 4801 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.