Ir para conteúdo
  • Cadastre-se

Pablo Ricardo

Membros
  • Total de ítens

    65
  • Registro em

  • Última visita

Posts postados por Pablo Ricardo

  1. Bom dia,

    Alguns serviços estão vendendo a solução e nela é impressa o QR Code. Já em outros serviços no mercado, utilizam código de barras. A legislação reza que seja utilizada quaisquer um dês que preserve o código de rastreio. As empresas que etão utilizando o QR Code, redirecionam (mediante app) para site contendo as informações que já estão IMPRESSAS na etiqueta, mantendo uma versão ONLINE. Eu não irei fazer uma replicação ONLINE dessa rastreabilidade pois demanda coisas que não podemos dispor no momento. Pensei em gerar o QR Code com as informações impressas na etiquetaindo na contra mão do que as outras empresas estão fazendo. A saída dos dados são assim:

    Ex. Outras Empresas: http://site.com/rastreio?2323423442 (dados qr code)

    Ex. Nossa Empresa: 

    DATA
    LOTE
    PRODUTOR
    FORNECEDOR

    Parece desnecessário colocar as informações descritas no ex. nossa empresa no QR Code o mais sensato seria manter o código de barras que geramos atualmente e caso algum dia implementarmos online, faríamos como as outras empresas já fazem.

    Fica um recorrente questionamento.. alguém consegue pontuar algo pra nos ajudar nessa decisão?

     

  2. Consegui resolver meu problema fuçando aqui, vou deixar o código caso possa ajudar outro perdido por aí:

    ChvNFe := StringReplace(acbrstMain.CFe.infCFe.ID, 'CFe', '', [rfReplaceAll, rfIgnoreCase]);
    
    CnpjCpf := acbrstMain.CFe.Emit.CNPJ;
    
    for n := 0 to acbrstMain.CFe.Det.Count - 1 do
    
    with acbrstMain.CFe.Det[n] do
    
    Prod.cProd,
    Prod.xProd,
    Prod.NCM,
    Prod.Cest
    nItem,
    Prod.qCom, 
    Prod.uCom, 
    Prod.vProd,
    Prod.vDesc,
    Prod.CfOp, 
    ...
    (e por aí vai)

     

     

  3. Estou com dificuldade em pegar a chave do XML importado, já olhei a pasta de teste e não acho como poderia efetuar. 

    A chave teria como pegar sem ser assim?
     

    ChvNFe :=  Stringreplace(quotedstr(acbrstMain.CFe.infCFe.ID),'CFe',''[rfReplaceAll]);

    Não consigo pegar a -<emit>.

    As do produto lendo alguns tópicos aqui, cnsegui acessar por CFe.Det.Prod...

     

    Olhei o exemplo da pasta do componente e nada. Alguém me ajuda de uma forma geral como seguir e conseguir coletar essas tag's definitivamente? Não só essas no caso. Obrigado.

  4. Estou com problemas pra gerar o contribuições quando são duas empresas.

    Mesmo não informando o bloco 0305 o pdv soliciou informar o bloco 0600. Coloquei  um genêrico porém o pdv pede para fechar com 0990 logo na primeira empresa.

    Está lógica está confusa, já que só fecho o 0990 depois que informo os 2 blocos ... 0500/0600.

     

    https://www.dropbox.com/s/dfxpesy8f0139vx/EFD_PIS_COFINS_NOV_2017-edit.txt?dl=0

  5. Acho que expressei errado, peço desculpas. O que falta é variedade de situações que foram implementadas pro 4.0. Produtos, formas de pagamento, tributos e etc... Como não consegui achar exemplos por aí, vim solicitar caso alguém já esteja avançado. Iria me ajudar vendo o XML. para o que eu preciso hoje só passar os parâmetros não está resolvendo.

  6. Alguém me ajuda com essa lógica

     

           if acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i]
              .resNFe.chNFe <> '' then
            begin
              Application.ProcessMessages;
    
              acbrnfChave.NotasFiscais.Clear;
              acbrnfChave.WebServices.Consulta.NFeChave :=
                acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i]
                .resNFe.chNFe;
              acbrnfChave.WebServices.Consulta.Executar;
    
              if acbrnfChave.WebServices.Consulta.procEventoNFe.Count > 0 then
              begin
                for l := 0 to acbrnfChave.WebServices.Consulta.procEventoNFe.Count - 1 do
                begin
                  for j := 0 to acbrnfChave.WebServices.Consulta.procEventoNFe.Items[l].RetEventoNFe.retEvento.Count - 1 do
                  begin
                    case acbrnfChave.WebServices.Consulta.procEventoNFe.Items[l].RetEventoNFe.retEvento.Items[j].RetInfEvento.cStat of
                      101:
                        Impresso := 'C';
                      151:
                        Impresso := 'C';
                      155:
                        Impresso := 'C';
                    end;
                  end;
                end;
              end;
    
              case acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items
                [i].resNFe.tpNF of
                tnEntrada:
                  sTipoNFe := 'E';
                tnSaida:
                  sTipoNFe := 'S';
              end;
              case acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items
                [i].resNFe.cSitNFe of
                snAutorizado:
                  Impresso := 'A';
                snDenegado:
                  Impresso := 'D';
                snCancelado:
                  Impresso := 'C';
              end;
    
              if dtmdlapNotasDestinadas.VerDuplicidadeNFe
                (acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items
                [i].resNFe.chNFe) = False then
              begin
                dtmdlapNotasDestinadas.SaveDestinadas(CnpjCpf,
                  acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items
                  [i].resNFe.chNFe,
                  acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items
                  [i].resNFe.CnpjCpf,
                  acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items
                  [i].resNFe.xNome,
                  acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items
                  [i].resNFe.IE, sTipoNFe,
                  acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items
                  [i].resNFe.dhEmi,
                  acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items
                  [i].resNFe.vNF, Impresso,
                  Copy(acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.
                  Items[i].resNFe.chNFe, 26, 9) + '-' +
                  Copy(acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.
                  Items[i].resNFe.chNFe, 23, 3));
              end;
            end;

     

  7. No exemplo no demo temos:

      ACBrNFe1.NotasFiscais.Clear;
      ACBrNFe1.WebServices.Consulta.NFeChave := vChave;
      ACBrNFe1.WebServices.Consulta.Executar;
    
      MemoResp.Lines.Text := ACBrNFe1.WebServices.Consulta.RetWS;
      memoRespWS.Lines.Text := ACBrNFe1.WebServices.Consulta.RetornoWS;
      LoadXML(ACBrNFe1.WebServices.Consulta.RetornoWS, WBResposta);
      LoadConsulta201(ACBrNFe1.WebServices.Consulta.RetWS);

    Devido ao problema de não conseguir capturar as "canceladas" (link) decidi voltar para o webservice antigo, porém, estou consumindo há alguns meses e o webservice novo se mostrou melhor.

    Após cada consulta, quero verificar por chave de acesso pra pegar o cStat para dar update na minha tabela de destinadas. Como capturo isso? Não consigo achar a propriedade nesse retorno. Terei que ler entre as tags <> </>?

    Detalhei a explicação para que caso alguém tenha uma ideia melhor, possa sugerir. Obrigado!

  8. 13 horas atrás, Daniel Simoes disse:

    Muito provavelmente são os Schemas errados... vc pode encontrar os Schemas na pasta Exemplos do ACBr

    Ele não estava aceitando salvar somente pelo componente em design... só permitiu usar a ve310 mudando nas configurações em tempo de execução. Agora o porquê... fica a dúvida.

  9. Em 06/05/2016 at 09:11, FocusRJ disse:

    Bom dia.

    bem, mantenho todos os DF-es armazenados (as informações deles) em banco de dados, aguardando (os referentes a NFe) pela manifestação do Destinatário, realmente ainda não obtive sucesso recebendo a informação de uma NF-e cancelada (certamente a sefaz papou mosca neste quesito, uma vez que meus NSUs seguem a sequência correta), quando o usuário tenta manifestar uma NFe já cancelada não é permitido.

    Nisso testo o CST de retorno do evento caso seja:

    650: Rejeição: Evento de "Ciência da Operação" para NF-e Cancelada ou Denegada;
    651: Rejeição: Evento de "Desconhecimento da Operação" para NF-e Cancelada ou Denegada; ou
    653: Rejeição: NF-e Cancelada, arquivo indisponível para download.

    Aí nesse caso na minha tabela dos DF-es existe um campo Booleano Cancelado e dou um Update no mesmo para True.

    
    if (AcbrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 650) or
       (AcbrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 651) or
       (AcbrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat = 653) then  
      AtualizaDFeCanceladoBD;

    Bom sei que o fato de não estar me retornando o evento de cancelamento de uma NFe não tem haver com o ACBR e sim com a SEFAZ, dessa forma esta foi a solução paliativa que encontrei.

    Att.

    Rômulo Mayworm 

     

    Boa saída. Pra mim que não posso executar o manifesto lascou.

  10. 1 minuto atrás, Juliomar Marchetti disse:

    Está falando de certificado A1 ou A3?

    se for A3 vai dar problemas deverá somente informar o número de serie!

    chegou a olhar o exemplo ou o projeto do monitor? lá tem detalhado como fazer!

    Correto, passei só o serial... obrigado.

  11.         case acbrnfMain.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items
              [i].resNFe.tpNF of
              tnEntrada:
                sTipoNFe := 'E';
              tnSaida:
                sTipoNFe := 'S';
            end;

    Estou usando essa função para coletar Entrada ou Saída. Ok, porém o que recebo com E na verdade não é Entrada, e sim canceladas e S são as autorizadas. Não corresponde ao que fora proposto. Confere isso? Se sim qual função adequada pra coletar 'entrada' e 'saída'?

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