Ir para conteúdo
  • Cadastre-se

dev botao

Código Atualizado da Emissão da Nota


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

Recommended Posts

Bom dia amigos,
comprei o fastReport e tambem consegui instalar o Fortes.
O AcbrNfe está ok.
Eu possuia um código que emitia a nota e consegui até gerar 4 notas
depois me voltei para um sistema de boletos e não dei mais continuidade
a NF-e.
E agora com a versão atual em Delphi 2010 percebi que alguns campos
estão sendo recusados, acredito que foram desativos.

Ide.tpAmb     := taProducao;
Ide.tpNF      := tnSaida;

Esses campos acima não passam. 
Alguém tem um código com os campos atuais?

Desde já agradeço

Segue o que estou usando/montando.

procedure TFrmNotasFiscais.BtnNFClick(Sender: TObject);
var
i, x, sequencianota, filtro, notaint, emissao, finalidade : integer;
vr : Real;
prazo : variant;
notastr, sCPFCNPJ : string;
TotalNovo, frete, bicms, icms, seguro, desc, geral, despaces : Real;
total10 : Real;
Begin

//if txtobs.Text = '' then
//Begin
//showmessage('Preencha a observação! Campo requerido!');
//txtobs.setfocus;
//exit;
//End;

//If (NotasFiscais.State In [dsEdit, dsInsert] ) Then
//Begin
//Application.MessageBox( 'Grave as informações antes de sair!!!', 'Erro', MB_ICONERROR + MB_OK );
//Abort;
//end else
NotasFiscais.Open;
ACBrNFe1.NotasFiscais.Clear;
with AcbrNfe1.NotasFiscais.Add.NFe do
Begin
NotasFiscais.Edit;
txttotal2.Caption := '500';
total10 := StrToFloat(txttotal2.Caption);
//frete := StrToFloat(dbedit10.text);

NotasFiscais.FieldByName('Total').AsFloat  := total10 ;
NotasFiscais.FieldByName('Geral').AsFloat  := total10 + frete;
NotasFiscais.Post;

{IDENTIFICAÇÃO DO CABEÇALHO =================================================================}
Ide.natOp     := Edit1.text;
Ide.nNF       := NotasFiscais.FieldByName('CodigoNotaFiscal').AsInteger;
Ide.cNF       := NotasFiscais.FieldByName('CodigoNotaFiscal').AsInteger;
sequencianota := NotasFiscais.FieldByName('CodigoNotaFiscal').AsInteger;
Ide.modelo    := 55;
Ide.serie     := 1;
Ide.dEmi      := NotasFiscais.FieldByName('DtEmissao').AsDateTime;
Ide.dSaiEnt   := NotasFiscais.FieldByName('DtSaida').AsDateTime;
Ide.hSaiEnt   := NotasFiscais.FieldByName('HoraSaida').AsDateTime;//Novo campo
Ide.tpAmb     := taProducao;
Ide.tpNF      := tnSaida;
Ide.tpEmis    := NotasFiscais.FieldByName('TipoEmissao').AsVariant;
Ide.finNFe    := NotasFiscais.FieldByName('FinEmissao').AsVariant;

case NotasFiscais.FieldByName('TipoPgto').AsInteger of
0:
//Ide.indPag    := ipVista;
//1:
//Ide.indPag    := ipPrazo;
end;

Ide.verProc   := '2.0.0.0';
Ide.cUF := 26;
//Ide.cMunFG := empresa.FieldByName( 'CidadeIBGE').AsInteger;

//DADOS DA EMPRESA==================================
Emit.CNPJCPF           := empresa.FieldByName('CNPJ').AsString;//CPF ou CNPJ
Emit.IE                := empresa.FieldByName('Inscestadual').AsString;
Emit.xNome             := empresa.FieldByName('Estabelecimento').AsString;
Emit.xFant             := empresa.FieldByName('Fantasia').AsString;
Emit.EnderEmit.CEP     := empresa.FieldByName( 'CepEmpresa').AsInteger;
Emit.EnderEmit.xLgr    := empresa.FieldByName( 'Endereco').AsString;
Emit.EnderEmit.nro     := empresa.FieldByName( 'Nr').AsString;
Emit.EnderEmit.xCpl    := empresa.FieldByName( 'Complemento').AsString;
Emit.EnderEmit.xBairro := empresa.FieldByName( 'Bairro').AsString;
Emit.EnderEmit.cMun    := empresa.FieldByName( 'CidadeIBGE').AsInteger;//Codigo da Cidade
Emit.EnderEmit.xMun    := empresa.FieldByName( 'Cidade').AsString;
Emit.EnderEmit.UF      := 'PE';
Emit.enderEmit.cPais   := 1058;
Emit.enderEmit.xPais   := 'BRASIL';
Emit.EnderEmit.fone    := empresa.FieldByName('TelefoneEmpresa').AsString;
Emit.IM                := '';
Emit.CNAE              := '0000000';
//Emit.CRT               := TpcnCRT(1);//Novo campo

// DADOS DO CLIENTE =============================================
filtro := NotasFiscais.FieldByName('RegNF').AsInteger;
QryClientes.close;
QryClientes.sql.Add('Select TblClientes.cMun, TblClientes.CPF, TblClientes.UF, TblClientes.nr, TblClientes.Compl,');
QryClientes.sql.Add(' TblClientes.Codigo2, TblClientes.ClienteNome,');
QryClientes.sql.Add(' TblVendas.CodVda, TblVendas.Cliente, TblClientes.TipoCliente,');
QryClientes.sql.Add(' TblClientes.Inscestadual, TblClientes.EnderecoCli,');
QryClientes.sql.Add(' TblClientes.BairroParaTaxa, TblClientes.Cep,');
QryClientes.sql.Add(' TblClientes.Telefone, TblClientes.Cidade,');
QryClientes.sql.Add(' TblClientes.CidadeIBGE,');
QryClientes.sql.Add(' TblNotasFiscais.RegNF, TblNotasFiscais.Cliente as CliNF from tblClientes, TblNotasFiscais,');
QryClientes.sql.Add(' TblVendas Where TblNotasFiscais.Cliente = Tblvendas.codvda');
QryClientes.sql.Add(' And TblVendas.Cliente = tblClientes.Codigo2');
QryClientes.sql.Add(' And tblNotasFiscais.RegNF =:a1');
QryClientes.Parameters.ParamByName('a1').Value := filtro;
QryClientes.Open;

//----------------------------------------------------
QryCidades.close;
QryCidades.sql.Add('Select * from v_cidades');
QryCidades.sql.Add(' Where RegNF =:a1');
QryCidades.Parameters.ParamByName('a1').Value := filtro;
QryCidades.Open;

Dest.CNPJCPF           := QryClientes.FieldByName('CPF').AsString;
Dest.IE                := QryClientes.FieldByName('InscEstadual').AsString;
Dest.xNome             := QryClientes.FieldByName('ClienteNome').AsString;
Dest.EnderDest.xLgr    := QryClientes.FieldByName('enderecocli').AsString;
Dest.EnderDest.nro     := QryClientes.FieldByName('nr').AsString;
Dest.EnderDest.xCpl    := QryClientes.FieldByName( 'compl' ).AsString;
Dest.EnderDest.xBairro := QryClientes.FieldByName('BairroParaTaxa').AsString;
Dest.EnderDest.cMun    := QryClientes.FieldByName('cMun').AsInteger;
Dest.EnderDest.xMun    := QryClientes.FieldByName('cidade').AsString;
Dest.EnderDest.UF      := QryClientes.FieldByName('UF').AsString;
Dest.EnderDest.CEP     := QryClientes.FieldByName('cep').AsInteger;
Dest.EnderDest.cPais   := 1058;
Dest.EnderDest.xPais   := 'BRASIL';
Dest.EnderDest.Fone    := QryClientes.FieldByName('TeleFone').AsString;
Dest.ISUF              := '';

//INICIO DOS ITENS==========================================
detalhes.Open;
detalhes.First;
i := 0;

while not detalhes.Eof do
begin
with Det.Add do
begin
i := i + 1;
Prod.nItem    := i;
Prod.CProd    := detalhes.FieldByName('prod').AsString;
Prod.xProd    := detalhes.FieldByName('descricao').AsString;
Prod.NCM      := detalhes.FieldByName('NCM').AsString;
Prod.CFOP     := detalhes.FieldByName('CfopNF').AsString;
Prod.qCom     := detalhes.FieldByName('qte').AsFloat;
Prod.uCom     := detalhes.FieldByName('unidade').AsString;
Prod.vProd    := detalhes.FieldByName('Total').AsFloat;
Prod.vUnCom   := detalhes.FieldByName('vr').AsFloat;
Prod.qTrib    := detalhes.FieldByName('qte').AsInteger;
Prod.uTrib    := detalhes.FieldByName('unidade').AsString;
Prod.vUnTrib  := detalhes.FieldByName('vr').AsFloat;
prod.vSeg     := 0;
prod.vFrete   := 110.00;
Prod.vDesc    := 2.0;
Prod.vOutro   := 0;
//Prod.IndTot := TpcnIndicadorTotal(0);
//Prod.IndTot := itSomaTotalNFe; //= 1;
//Prod.IndTot := itNaoSomaTotalNFe;// = 0

With Imposto do
Begin
with ICMS do
Begin
case detalhes.FieldByName('CST').AsInteger of
1:
Begin
//CST           := cst00;
//ICMS.modBC    := dbiValorOperacao;
//ICMS.orig     := oeNacional;
ICMS.pICMS    := 0;
ICMS.vICMS    := 0;
ICMS.vBC      := 0;
ICMS.pICMS    := 0;
ICMS.vICMS    := 0;
ICMS.vBC      := 0;
end;
2:
Begin
//CST           := cst60;
ICMS.vBCST    := 0;
ICMS.vICMSST  := 0;
ICMS.vBCST    := 0;
ICMS.vICMSST  := 0;
end;
end;
//IPI.CST       := ipi01;
end;
end;
Detalhes.Next;
end;
end;
//Totalização
//Total.ICMSTot.vProd := RoundTo(NotasFiscais.FieldByName('Total').AsFloat,-2);
Total.ICMSTot.vBC   := 0.0;
Total.ICMSTot.vICMS := 0.0;
Total.ICMSTot.vfrete := 0.0;
//Total.ICMSTot.vNF   := RoundTo(NotasFiscais.FieldByName('Geral').AsFloat,-2);

//Transportadora==================================================
QryTransp.close;
QryTransp.sql.Add('Select * from TblTransportadoras');
QryTransp.sql.Add(' Where RegTransp =:a1');
//QryTransp.Parameters.ParamByName('a1').Value := StrToInt(txtTransp.Text);
QryTransp.Open;

Transp.Transporta.CNPJCPF := QryTransp.FieldByName('CNPJT').AsString;
Transp.Transporta.xNome   := QryTransp.FieldByName('NomeTransportadora').AsString;
Transp.Transporta.IE      := QryTransp.FieldByName('Incestadual').AsString;
Transp.Transporta.xEnder  := QryTransp.FieldByName('EnderecoT').AsString;
Transp.Transporta.xMun    := QryTransp.FieldByName('CidadeT').AsString;
Transp.Transporta.UF      := QryTransp.FieldByName('UHT').AsString;

//Volume==========================================================
with Transp.Vol.Add do
Begin
qvol   := NotasFiscais.FieldByName('volume').AsInteger;
esp    := NotasFiscais.FieldByName('especie').AsString;
marca  := NotasFiscais.FieldByName('marca').AsString;
nvol   := NotasFiscais.FieldByName('volume').AsString;
pesoL  := NotasFiscais.FieldByName('pesoL').AsInteger;
pesoB  := NotasFiscais.FieldByName('pesoB').AsInteger;
end;

//Parcelamentos -----Contas a Receber=============================
 {
filtro := NotasFiscais.FieldByName('RegNF').AsInteger;
QryDuplicatas.close;
QryDuplicatas.sql.Add('Select tblDuplicatas.BaseNota, tblDuplicatas.ValorDupl, TblDuplicatas.DtVctoDupl,');
QryDuplicatas.sql.Add('TblNotasFiscais.RegNF, TblNotasFiscais.Cliente from tblDuplicatas, TblNotasFiscais');
QryDuplicatas.sql.Add('Where tblNotasFiscais.RegNF =:a1 And TblNotasFiscais.Cliente');
QryDuplicatas.sql.Add('= TblDuplicatas.BaseNota');
QryDuplicatas.Parameters.ParamByName('a1').Value := filtro;
QryDuplicatas.Open;
QryDuplicatas.First;

while not QryDuplicatas.Eof do
begin
with Cobr.Dup.Add Do
Begin
nDup  := NotasFiscais.FieldbyName('CodigoNotaFiscal').Value;
dVenc := QryDuplicatas.FieldbyName('DtVctoDupl').Value;
vDup  := QryDuplicatas.FieldbyName('ValorDupl').Value;
End;
Next;
end;
 }
//Dados Adicionais================================================

With InfAdic.obsCont.add do
Begin
InfAdic.infCpl := 'Detalhamento da Nota Fiscal';
xCampo := 'obs:';
//xtexto := DBEdit14.Text ;
end;

//Fim da NFE===================================
AcbrNFe1.Enviar(sequencianota);
memoResposta.Lines.Text := AcbrNfe1.WebServices.Retorno.RetWS;
NotasFiscais.Edit;
NotasFiscais.FieldByName('chave').AsString := AcbrNfe1.WebServices.Retorno.ChaveNFe;
NotasFiscais.FieldByName('protocolo').AsString := AcbrNfe1.WebServices.Retorno.Protocolo;
NotasFiscais.FieldByName('recibo').AsString := AcbrNfe1.WebServices.Retorno.Recibo;
//NotasFiscais.FieldByName('statusnfe').AsString := ACBrNFe1.WebServices.Consulta.cStat;
NotasFiscais.FieldByName('motivo').AsString := ACBrNFe1.WebServices.Retorno.XMotivo;
NotasFiscais.Post;
if ACBrNFe1.NotasFiscais.Items[0].Confirmada then
Begin
ACBrNFe1.NotasFiscais.Clear;
end;
end;
Showmessage('Nota Fiscal Eletrônica enviada com sucesso!!!');
end;
 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Alberto,

Inclua em uses da unit que contem a sua rotina que alimenta o componente a seguinte unit: pcnConversaoNFe.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo, boa tarde

 

Coloquei e não resolveu.]

Segue:

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ACBrBase, ACBrBoleto, StdCtrls, Buttons, ACBrDFe, ACBrNFe, DB, ADODB,
  ExtCtrls, DBCtrls, Mask, Grids, DBGrids,  pcnConversaoNFe;
 

Coloquei no meu form FrmNotasFiscais

Editado por Alberto Antonio
Link para o comentário
Compartilhar em outros sites

Italo alterei as use do meu form antigo em Delphi 2007.

Um dos campos passou.

Ide.tpAmb     := taProducao;

 

uses IniFiles, ShellAPI, DateUtils, Math,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls, OleCtrls, SHDocVw,
  ACBrNFe, pcnConversao, ACBrNFeDANFEClass, ACBrUtil,
  pcnNFeW, pcnNFeRTXT, DB, ADODB, Menus, DBCtrls, Mask, Grids, DBGrids,
  jpeg, XPMan, ACBrBase, ACBrDFe, ACBrNFeDANFeRLClass;

 

 

Mas não passa

Ide.tpNF      := tnSaida;

 

Esse ainda não passa.

Editado por Alberto Antonio
Link para o comentário
Compartilhar em outros sites

E como vc disse faltou a inclusão completa na uses.

Segue o correto. Está resolvido. Obrigado.

uses IniFiles, ShellAPI, DateUtils, Math,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls, OleCtrls, SHDocVw,
  ACBrNFe, pcnConversao, pcnConversaoNFe, ACBrNFeDANFEClass, ACBrUtil,
  pcnNFeW, pcnNFeRTXT, DB, ADODB, Menus, DBCtrls, Mask, Grids, DBGrids,
  jpeg, XPMan, ACBrBase, ACBrDFe, ACBrNFeDANFeRLClass, ACBrBoleto;

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

×
×
  • 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.

The popup will be closed in 10 segundos...