Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Senhores, tenho um sistema de compra e venda em um cliente de Natal - RN. Preciso implementar a emissão da NFC-e mas não tenho a mínima ideia de por onde começar.

 

Alguém poderia me dizer por onde começar, se há alguma diferença entre os Estados (desculpe se a pergunta for obvia), onde posso encontrar um Modelo para adequar ao meu projeto.

 

** Delphi Berlin Up2 / Base de dados Mysql.

 

 

Postado

Você pode começar estudando o demo do AcBr. Tanto para NF-e quanto para NFC-e.

Existem sim diferenças entre os estados. Uns adotam o PAF com NFC-e, outros o SAT também com NFCe, enfim, apensar de algumas diferenças, o projeto em síntese é o mesmo.

_____________

Prates, Agnaldo

Postado

Bom dia meu amigo, a primeira coisa que deve pensar é em fornecer uma tela intuitiva e bem estruturada para evitar dores de cabeça, mas fora isso não tem muito segredo, para desenvolver o módulo de emissão NFC-e você precisará basicamente dar uma conferida nos manuais desse link : Lista de Manuais, assim como o Exemplo do ACBr para entender como funciona a questão de envio da nota, alimentação das tags e etc. Em suma, o Manual de Orientação vai te fornecer todas as informações necessárias,sendo que a base é a mesma pro Brasil inteiro, vez ou outra algum UF decide "perfumar" a emissão fazendo algumas mudanças, mas nunca é nada alarmante, então não há com o que se preocupar no que diz respeito à diferenças de uma UF para outra, sua única preocupação é fornecer uma solução atrativa e planejada ao seu cliente.

Boa sorte.

Postado
2 horas atrás, GAVOHA disse:

Senhores, tenho um sistema de compra e venda em um cliente de Natal - RN. Preciso implementar a emissão da NFC-e mas não tenho a mínima ideia de por onde começar.

 

Alguém poderia me dizer por onde começar, se há alguma diferença entre os Estados (desculpe se a pergunta for obvia), onde posso encontrar um Modelo para adequar ao meu projeto.

 

** Delphi Berlin Up2 / Base de dados Mysql.

 

 

Este tópico pode te ajudar

 

Postado
8 horas atrás, GAVOHA disse:

Vou ver @carlosinfoteen

 

Para que serve o AcbrMonitor ? Vou precisar dele?

AcbrMonitor já está desatualizado. Agora se usa o ACBrMonitor Plus - E é uma aplicação em lazarus para gerar NFe, NFce, etc interagindo com tua aplicação. Eu não uso ele. Outros que usam ele podem dar maiores detalhes.

- Agora precisar dele depende de como você vai desenvolver a tua solução, porém se for usar os componentes que mencionei no tópico acima, onde posto o caminho inicial para desenvolver a NFe que no mesmo exemplo tem os fontes exemplo para NFCe. É só estudar e ir pesquisando no forum.

Postado
7 horas atrás, carlosinfoteen disse:

AcbrMonitor já está desatualizado. Agora se usa o ACBrMonitor Plus - E é uma aplicação em lazarus para gerar NFe, NFce, etc interagindo com tua aplicação. Eu não uso ele. Outros que usam ele podem dar maiores detalhes.

- Agora precisar dele depende de como você vai desenvolver a tua solução, porém se for usar os componentes que mencionei no tópico acima, onde posto o caminho inicial para desenvolver a NFe que no mesmo exemplo tem os fontes exemplo para NFCe. É só estudar e ir pesquisando no forum.

Então, o AcbrMonitor Plus é o cara que recebe os dados e gera a NFe? Também tenho como opção não utilizar e gerar eu mesmo (como você faz), correto?

 

Postado
4 horas atrás, GAVOHA disse:

Então, o AcbrMonitor Plus é o cara que recebe os dados e gera a NFe? Também tenho como opção não utilizar e gerar eu mesmo (como você faz), correto?

 

Isso. Se for usar os componentes para desenvolver a nfe/nfce não precisa do Monitor Plus.

Postado
52 minutos atrás, carlosinfoteen disse:

Isso. Se for usar os componentes para desenvolver a nfe/nfce não precisa do Monitor Plus.

Entendi... e o que fala com o Monitor Plus? Exemplo, gero um TXT com os dados da minha venda, salvo em algum lugar e o Monitor Plus lê e faz o resto?

Postado
2 minutos atrás, GAVOHA disse:

Entendi... e o que fala com o Monitor Plus? Exemplo, gero um TXT com os dados da minha venda, salvo em algum lugar e o Monitor Plus lê e faz o resto?

É por ai... E para desenvolver o seu arquivo de integração com as tags corretamente é só lê o manual do mesmo, configura-lo e ir fazendo testes.

Bom desenvolvimento...

Postado
5 minutos atrás, carlosinfoteen disse:

É por ai... E para desenvolver o seu arquivo de integração com as tags corretamente é só lê o manual do mesmo, configura-lo e ir fazendo testes.

Bom desenvolvimento...

Melhor explicação, só se você fizesse! Muito obrigado e parabéns

  • Curtir 1
  • 2 semanas depois ...
Postado

Senhores, com base nas mensagens de vocês eu consegui preparar a minha NFCe,... Consigo imprimir o cupom. gerar XML, gerar TXT... mas está me apresentando um errro:

 

rejeicao uf informada no campo cuf nao e atendida pelo web service

Em pesquisa vi que esse erro é meio genérico. segue abaixo meu código, se puderem me ajudar a achar meu erro:

 

begin
  DM.qryNFCe.Open;


  sCPF      := edCPFCNPJ.Text;
  sNumNF    := DM.qryNFCeUltimaNF.Text;
  iNumNF    := StrToInt(sNumNF);
  iNumNF    := iNumNF +1;

  DM.ACBrNFe1.NotasFiscais.Clear;
  DM.ACBrNFe1.Configuracoes.Geral.ModeloDF := moNFCe;
  DM.ACBrNFe1.Configuracoes.Geral.VersaoDF := ve310;

 with DM.ACBrNFe1.NotasFiscais.Add.NFe do
   begin
     Ide.cNF       := iNumNF; //Caso não seja preenchido será gerado um número aleatório pelo componente
     Ide.natOp     := 'VENDA';
     Ide.indPag    := ipVista;
     Ide.modelo    := 65;
     Ide.serie     := 1;
     Ide.nNF       := iNumNF;
     Ide.dEmi      := now;
     Ide.dSaiEnt   := now;
     Ide.hSaiEnt   := now;
     Ide.tpNF      := tnSaida;
     Ide.tpEmis    := teNormal;
//-----------ALTERAR DEPOIS------------------------------------
    {
     if DM.qryNFCeiAmbiente.Value = 1 then
        Ide.tpAmb     := taHomologacao else
        Ide.tpAmb := taProducao;  //Lembre-se de trocar esta variável quando for para ambiente de produção
     }
//-----------------------------------------------------------------
     Ide.tpAmb     := taHomologacao;
     Ide.cUF       := DM.qryNFCeiUF.Value;
     Ide.cMunFG    := DM.qryNFCeiMun.Value;
     Ide.finNFe    := fnNormal;
     Ide.tpImp     := tiNFCe;
     Ide.indFinal  := cfConsumidorFinal;
     Ide.indPres   := pcPresencial;

     Emit.CNPJCPF           := SoNumero(DM.qryDadosLojaCNPJ.Value);
     Emit.IE                := SoNumero(DM.qryDadosLojaIE.Value);
     Emit.xNome             := DM.qryDadosLojaRazao.Value;
     Emit.xFant             := DM.qryDadosLojaNomeLoja.Value;

     Emit.EnderEmit.fone    := DM.qryDadosLojaTelefone.Value;
     Emit.EnderEmit.CEP     := StrToInt(SoNumero(DM.qryDadosLojaCEP.Text) );
     Emit.EnderEmit.xLgr    := DM.qryDadosLojaEndereco.Value;
     Emit.EnderEmit.nro     := DM.qryDadosLojaNumEndereco.text;
     Emit.EnderEmit.xCpl    := DM.qryDadosLojaComplemento.Value;
     Emit.EnderEmit.xBairro := DM.qryDadosLojaBairro.text;
     Emit.EnderEmit.cMun    := DM.qryNFCeiMun.Value;
     Emit.EnderEmit.xMun    := DM.qryDadosLojaCidade.Value;
     Emit.EnderEmit.UF      := DM.qryDadosLojaUF.Value;
     Emit.enderEmit.cPais   := 1058;
     Emit.enderEmit.xPais   := 'BRASIL';

     Emit.IEST              := '';

     if DM.qryDadosLojaRegimeCRT.Value = 1 then
         Emit.CRT               := crtRegimeNormal else
     if DM.qryDadosLojaRegimeCRT.Value = 2 then
         Emit.CRT               := crtSimplesExcessoReceita else
         Emit.CRT               := crtRegimeNormal ;    // (1-crtSimplesNacional, 2-crtSimplesExcessoReceita, 3-crtRegimeNormal)

     //-- Informar Dados de DESTINATARIO
        Dest.CNPJCPF           := edCPFCNPJ.Text;

    //Adicionando Produtos
      DM.qryVendaDetalhe.First;

   with Det.Add do
     begin
      while not DM.qryVendaDetalhe.eof do
        begin
           Prod.nItem    := DM.qryVendaDetalheItem.Value ; // Número sequencial, para cada item deve ser incrementado
           Prod.cProd    := DM.qryVendaDetalheCodBarra.Text;
           Prod.cEAN     := '';
           Prod.xProd    := DM.qryVendaDetalheDescricao.Text;
           Prod.NCM      := DM.qryVendaDetalheNCM.Value; // Tabela NCM disponível em  http://www.receita.fazenda.gov.br/Aliquotas/DownloadArqTIPI.htm
           Prod.EXTIPI   := '';
           Prod.CFOP     := DM.qryNFCeiCFOP.Text;
           Prod.uCom     := 'UN';
           Prod.qCom     := 1 ;
           Prod.vUnCom   := DM.qryVendaDetalheValorUnitario.Value;
           Prod.vProd    := DM.qryVendaDetalheValorUnitario.Value;

           Prod.cEANTrib  := '';
           Prod.uTrib     := 'UN';
           Prod.qTrib     := 1;
           Prod.vUnTrib   := 0;

           Prod.vOutro    := 0;
           Prod.vFrete    := 0;
           Prod.vSeg      := 0;
           Prod.vDesc     := 0;

           Prod.CEST := '';

        with Imposto do
          begin
            // lei da transparencia nos impostos
            vTotTrib := 0;

            with ICMS do
             begin

               if DM.qryNFCeiCRT.Value = 1 then     //Simples Nacional
                  begin
                     if DM.qryNFCeiICMS.Value = 102 then  CSOSN := csosn102;
                     if DM.qryNFCeiICMS.Value = 300 then  CSOSN := csosn300;
                     if DM.qryNFCeiICMS.Value = 500 then  CSOSN := csosn500;
                  end;

               IF DM.qryNFCeiCRT.Value = 3 then
                  begin
                     if DM.qryNFCeiICMS.Value = 00 then  CST := cst00;
                     if DM.qryNFCeiICMS.Value = 20 then  CST := cst20;
                     if DM.qryNFCeiICMS.Value = 40 then  CST := cst40;
                     if DM.qryNFCeiICMS.Value = 41 then  CST := cst41;
                     if DM.qryNFCeiICMS.Value = 60 then  CST := cst60;
                  end;

               ICMS.orig    := oeNacional;
               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;

               // partilha do ICMS e fundo de probreza
               with ICMSUFDest do
                begin
                  vBCUFDest      := 0.00;
                  pFCPUFDest     := 0.00;
                  pICMSUFDest    := 0.00;
                  pICMSInter     := 0.00;
                  pICMSInterPart := 0.00;
                  vFCPUFDest     := 0.00;
                  vICMSUFDest    := 0.00;
                  vICMSUFRemet   := 0.00;
                end;
             end;

           end;

         DM.qryVendaDetalhe.Next;

         end;

          Total.ICMSTot.vBC     := 0;
          Total.ICMSTot.vICMS   := 0;
          Total.ICMSTot.vBCST   := 0;
          Total.ICMSTot.vST     := 0;
          Total.ICMSTot.vProd   := 0;
          Total.ICMSTot.vFrete  := 0;
          Total.ICMSTot.vSeg    := 0;
          Total.ICMSTot.vDesc   := 0;
          Total.ICMSTot.vII     := 0;
          Total.ICMSTot.vIPI    := 0;
          Total.ICMSTot.vPIS    := 0;
          Total.ICMSTot.vCOFINS := 0;
          Total.ICMSTot.vOutro  := 0;
          Total.ICMSTot.vNF     := 0;

          // partilha do icms e fundo de probreza
         Total.ICMSTot.vFCPUFDest   := 0.00;
         Total.ICMSTot.vICMSUFDest  := 0.00;
         Total.ICMSTot.vICMSUFRemet := 0.00;

         Total.ISSQNtot.vServ   := 0;
         Total.ISSQNTot.vBC     := 0;
         Total.ISSQNTot.vISS    := 0;
         Total.ISSQNTot.vPIS    := 0;
         Total.ISSQNTot.vCOFINS := 0;

         Transp.modFrete := mfSemFrete;

        with pag.Add do //PAGAMENTOS apenas para NFC-e
          begin
            tPag := fpDinheiro;
            vPag := DM.qryVendaMestreTotal.Value;
          end;

        InfAdic.infCpl     :=  '';
        InfAdic.infAdFisco :=  '';
     end;


   DM.ACBrNFe1.Configuracoes.Arquivos.PathSchemas     := DM.sNFSchemas;
   DM.ACBrNFe1.Configuracoes.Arquivos.PathSalvar      := DM.sNFSalvas;
   DM.ACBrNFe1.Configuracoes.Arquivos.PathNFe         := DM.sNFSalvas;

   DM.ACBrNFe1.Configuracoes.Certificados.Senha       := DM.sCertificadoSenha;
   DM.ACBrNFe1.Configuracoes.Certificados.NumeroSerie := DM.sCertificadoSerie;
   DM.ACBrNFe1.NotasFiscais.Assinar;

   DM.ACBrNFe1.NotasFiscais.GravarXML(DM.sNFSalvas+'\nfe'+DM.qryVendaMestreid.Text+ '.xml');
   DM.ACBrNFe1.NotasFiscais.GravarTXT(DM.sNFSalvas+'\nfe'+DM.qryVendaMestreid.Text+'.txt');
   DM.ACBrNFe1.NotasFiscais.Validar;
   DM.ACBrNFe1.NotasFiscais.GerarNFe;
   DM.ACBrNFe1.Enviar(0,false);

   DM.ACBrNFe1.NotasFiscais.Imprimir;



 end;

 

Postado
2 minutos atrás, RicardoVoigt disse:

Boa tarde,

Dentro das propriedades tambem tem uma propriedade da UF...

Att

Ricardo

Sim, creio que seja:

Emit.EnderEmit.UF      := DM.qryDadosLojaUF.Value;

Está preenchida como "RN"

correto?

Postado
18 minutos atrás, GAVOHA disse:

De fato eu não sabia dessa Tag... perfeito! 

 

Posterior me apresentou o seguinte erro (anexo)

Erro.png

Verifique se está alimentando o atributo "nItem" corretamente no produto, de acordo que siga a sequência 1..N, que de resto se o modelo for 65 e estiver configurado pra homologação, o componente informará essa descrição automaticamente.

Por exemplo:

 <det nItem="1">
  - <prod>
      ..
    </prod>
  - <imposto>
          ..
    </imposto>
  </det>

 

Postado

(Estou em SP e desenvolvendo para Natal - RN. Fui fazer uma demonstração ao meu sócio e, ao copiar minha aplicação recebo a mensagem de erro

"O Aplicativo não pode ser inicializado corretamente (0xc0000007b)"

Copiei as DLLs para a pasta do Executável mas o erro permanece.

 

O que tenho que instalar?

Postado

Problema solucionado!

Erro bobo: De fato em ambiente de Homologação coloquei o nome do produto como indicado na mensagem e esse problema foi resolvido.

 

Agora está dando erro de QR-Code. ... não sei gerar; Alguém poderia me ajudar?

Estou finalizando a emissão da seguinte forma:

   DM.ACBrNFe1.Configuracoes.WebServices.UF           := DM.qryDadosLojaUF.Text;
   DM.ACBrNFe1.Configuracoes.Arquivos.PathSchemas     := DM.sNFSchemas;
   DM.ACBrNFe1.Configuracoes.Arquivos.PathSalvar      := DM.sNFSalvas;
   DM.ACBrNFe1.Configuracoes.Arquivos.PathNFe         := DM.sNFSalvas;

   DM.ACBrNFe1.Configuracoes.Certificados.Senha       := DM.sCertificadoSenha;
   DM.ACBrNFe1.Configuracoes.Certificados.NumeroSerie := DM.sCertificadoSerie;
   DM.ACBrNFe1.NotasFiscais.GerarNFe;
   DM.ACBrNFe1.NotasFiscais.Assinar;
   DM.ACBrNFe1.NotasFiscais.Validar;
   DM.ACBrNFe1.NotasFiscais.GravarXML(DM.sNFSalvas+'\nfe'+DM.qryVendaMestreid.Text+ '.xml');

   DM.ACBrNFe1.Enviar(0,false);
   DM.ACBrNFe1.NotasFiscais.Imprimir;

 

Postado
2 horas atrás, GAVOHA disse:

Problema solucionado!

Erro bobo: De fato em ambiente de Homologação coloquei o nome do produto como indicado na mensagem e esse problema foi resolvido.

 

Agora está dando erro de QR-Code. ... não sei gerar; Alguém poderia me ajudar?

Estou finalizando a emissão da seguinte forma:


   DM.ACBrNFe1.Configuracoes.WebServices.UF           := DM.qryDadosLojaUF.Text;
   DM.ACBrNFe1.Configuracoes.Arquivos.PathSchemas     := DM.sNFSchemas;
   DM.ACBrNFe1.Configuracoes.Arquivos.PathSalvar      := DM.sNFSalvas;
   DM.ACBrNFe1.Configuracoes.Arquivos.PathNFe         := DM.sNFSalvas;

   DM.ACBrNFe1.Configuracoes.Certificados.Senha       := DM.sCertificadoSenha;
   DM.ACBrNFe1.Configuracoes.Certificados.NumeroSerie := DM.sCertificadoSerie;
   DM.ACBrNFe1.NotasFiscais.GerarNFe;
   DM.ACBrNFe1.NotasFiscais.Assinar;
   DM.ACBrNFe1.NotasFiscais.Validar;
   DM.ACBrNFe1.NotasFiscais.GravarXML(DM.sNFSalvas+'\nfe'+DM.qryVendaMestreid.Text+ '.xml');

   DM.ACBrNFe1.Enviar(0,false);
   DM.ACBrNFe1.NotasFiscais.Imprimir;

 

Veja se está preenchendo estas tags :

    DM.ACBrNFe1.Configuracoes.Geral.IdCSC  := trim(dm.qry_CFG_NFCE.FieldByName('id_csc').AsString); /// 1
    DM.ACBrNFe1.Configuracoes.Geral.CSC    := trim(dm.qry_CFG_NFCE.FieldByName('csc').AsString); //// antigo token
    DM.ACBrNFe1.Configuracoes.Geral.IncluirQRCodeXMLNFCe := True;

 

Postado
40 minutos atrás, mbbortolini disse:

Veja se está preenchendo estas tags :

    DM.ACBrNFe1.Configuracoes.Geral.IdCSC  := trim(dm.qry_CFG_NFCE.FieldByName('id_csc').AsString); /// 1
    DM.ACBrNFe1.Configuracoes.Geral.CSC    := trim(dm.qry_CFG_NFCE.FieldByName('csc').AsString); //// antigo token
    DM.ACBrNFe1.Configuracoes.Geral.IncluirQRCodeXMLNFCe := True;

 

De fato não houve de QR-Code não deu... mas apresentou o anexo.

Erro501.png

Postado
1 hora atrás, mbbortolini disse:

Veja se está preenchendo estas tags :

    DM.ACBrNFe1.Configuracoes.Geral.IdCSC  := trim(dm.qry_CFG_NFCE.FieldByName('id_csc').AsString); /// 1
    DM.ACBrNFe1.Configuracoes.Geral.CSC    := trim(dm.qry_CFG_NFCE.FieldByName('csc').AsString); //// antigo token
    DM.ACBrNFe1.Configuracoes.Geral.IncluirQRCodeXMLNFCe := True;

 

De fato não houve de QR-Code não deu... mas apresentou o anexo.

 

Percebi que o erro acima só é exibido quando tento colocar um CPF de destinatário. Quando deixo em branco não apresenta erro;

Postado (editado)

Resolvi o problema do QRCode:

DM.ACBrNFe1.Configuracoes.Geral.IncluirQRCodeXMLNFCe := True;

parou de aparecer a mensagem do ICMS do destinatário (

 

Dest.indIEDest         :=  inNaoContribuinte;

Não entendo! agora é erro

"Nota(s) não confirmadas: 501 -> Rejeição: Total do Produto / Serviço difere do somatorio dos itens"

Alguém pode me ajudar?

(segue xml)

24170218382083000196650010000005011000005010-nfe.xml

Editado por GAVOHA
  • Este tópico foi criado há 2824 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.

The popup will be closed in 10 segundos...