Ir para conteúdo
  • Cadastre-se

Gabriel Franciscon

Membros
  • Total de ítens

    100
  • Registro em

  • Última visita

Posts postados por Gabriel Franciscon

  1. Validações a critério da UF significa que o estado pode ou não aderir aquela regra/validação. Nesse caso a forma mais correta é entrando em contato com a SEFAZ do estado e verificando com eles o que vão implementar. Pode ainda verificar se há algum boletim informativo no site da SEFAZ de cada estado com essa informação.

    O grupo do responsável técnico (uma das novas implementações da nota técnica) foi muito discutido aqui no grupo e com isso foi criado uma "aba" no mapa fiscal do ACBr. De uma olhada lá e você verá quais serão os estados que irão implementar.

    Sobre as demais validações, recomendo também dar uma pesquisada aqui no fórum. Pois em alguns casos alguém já fez esse contato com a SEFAZ do estado e já obteve a resposta se a validação X será implementada para aquele estado.

     

    Uma dica é: deixe seu software inteiramente compatível com a Nota Técnica em questão. E nas validações que são a critério da UF, você cria parâmetros, por exemplo:

    "Enviar grupo responsável técnico" (Sim ou não) dessa forma se amanhã ou depois algum estado aderir, basta você marcar essa opção no seu sistema.

    • Curtir 1
  2. O evento de cancelamento vem sem a manifestação do destinatário.

    Então supondo do exemplo que o destinatário recebe o resumo hoje com a situação da nota autorizada e no outro dia o emitente cancela essa NFe. Será gerado um novo NSU com o evento de cancelamento e o mesmo será disponibilizado para o destinatário mesmo que ele ainda não realizado nenhum evento de manifestação.

    Como pode ver nesse exemplo:

    Screenshot_4.thumb.png.cdbc9bbcf1519bf687b2a285fc0abb72.png

     

    Abaixo vou deixar um trecho de como conseguir capturar o evento de cancelamento no momento que estiver processando os NSU's.

    for i := 0 to Pred(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count) do
    begin 
      LDocZip := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[i]
    
      if (LDocZip.schema = schprocEventoNFe) then
      begin
        if LDocZip.procEvento.RetinfEvento.tpEvento = teCancelamento then
        begin
          Justificativa := LDocZip.procEvento.detEvento.xJust;
          Data          := LDocZip.procEvento.RetinfEvento.dhRegEvento;
          Protocolo     := LDocZip.procEvento.RetinfEvento.nProt;
        end;
      end;
    end;

     

    • Curtir 2
  3. O método de distribuição só retorna 50 NSU por vez. Ou seja, você precisará executar o mesmo método várias vezes até que o número de NSU que você tem gravado é o mesmo que retorna no MasNSU.

    De uma olhada nessa resposta que fiz em outro tópico, lá eu coloquei um exemplo de como utilizar o método de DistribuicaoDFe da melhor forma.

     

  4. É necessário realizar o preenchimento dessas tags.

    Aqui no Paraná, se enviar sem terá uma rejeição (em ambiente de homologação) - Produção está aceitando com ou sem os campos por enquanto.

     

    Um detalhe importante, essas validações são a critério da UF. Por tanto é necessário verificar com a SEFAZ do estado se eles vão ou não aderir essas novas validações.

    Caso a UF em questão implementará, verifique a propriedade nova no ACBr ForcarGerarTagRejeicao938. Pois em algumas UF mesmo os valores sendo zerados e a tag sendo facultativa é necessário informar. 

    Veja mais detalhes no tópico abaixo. (nesse mesmo tópico tem uma resposta da SEFAZ-MG explicando qual valor informar nessas tag's novas)

     

    • Curtir 1
  5. 15 minutos atrás, luisclaudio_jr disse:

    Não sei se é um problema da sefaz, mas aconteceu aqui comigo o seguinte hoje.

    Ao puxar as notas, não veio uma delas, emitida ontem no dia 23, entrei no site da sefaz, cliquei lá em fazer download e baixei, quando mandei vir pela distribuição ela ficou disponivel, com o ultimo NSU... Será alguma falha da sefaz?

    Meu cliente é uma transportadora.

    Infelizmente pode acontecer, existe um delay entre a SEFAZ-Autorizadora enviar a nota para o Ambiente Nacional e o mesmo disponibilizar a nota com um NSU novo.

    Quando você consulta uma NFe no portal nacional, observe que no grupo de eventos tem;

    • Data autorização  (data que foi enviado o evento/autorização para o órgão responsável (SEFAZ-Estado/A.N) 
    • Data inclusão A.N (data que o Ambiente Nacional recebeu a nota/evento)

    Como você mesmo citou que depois a nota veio com o último NSU. Da mais certeza ainda que demorou para o ambiente nacional receber e liberar. Quando o A.N recebeu a nota, foi criado um NSU e disponibilizado para o download.

    Ou seja, Você faz uma consulta hoje e pode ter como resultado; (difícil de acontecer, mas não impossível)

    NSU = 10 - Nota emitida hoje

    NSU = 11 Nota emitida ontem 

     

  6. 4 minutos atrás, marcio-carneiro disse:

    Uma dúvida: vocês salvam também os eventos todos? Ou somente  inicialmente o resumo, depois o xml no banco de dados? 

    Aqui eu salvo tudo... Até mesmo pra ter todo histórico. Vai que amanhã ou depois essa nota é cancelada ou criam uma carta de correção. 

    Dessa forma eu tenho o evento de cancelamento, com a justificativa e a CCe com a correção.

    Porém falando de arquivo XML em si eu gravo apenas os XML's essenciais: XML completo, CCe e cancelamento. 

     

    Faço um "mestre-detalhe" nas informações. (como esse exemplo de nota que tem vários eventos)

    Screenshot_5.thumb.png.61320436c532f6769d9d916e1ffa3a4d.png

    • Curtir 1
  7. Use o método DistribuicaoDFePorUltNSU. Nele você passe o NSU = 0. Com isso, você terá como resposta os NSU's dos últimos 90 dias.

    Detalhe: O DistribuicaoDFePorUltNSU retorna apenas 50 NSU's por vez. Então caso tenha mais do que 50 você terá que executar mais de uma vez. E a cada execução, você passa o último NSU que você recebeu.

    Aí você me pergunta; como eu sei que tem mais do que 50 pra eu baixar? Simples, existe uma propriedade que consta o número máximo de NSU que tem no WebService.

    Então resumindo a lógica seria mais ou menos assim: 

    iUltimoNSUGravado := GetUltimoNSUGravado;    
    repeat
      ACBrNFe1.DistribuicaoDFePorUltNSU(IdEstado, aCNPJ, iUltimoNSUGravado);
      cStat   := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat;
      if cStat = 138 then {Documentos encontrados}
      begin
        iMaxNSUWebService := StrToIntDef(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.maxNSU, 0);
        for i := 0 to Pred(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count) do
        begin
          {Aqui você processa NSU por NSU. Inclusive grava o NSU no banco de dados}
        end;
      end;
      iUltimoNSUGravado := GetUltimoNSUGravado;
    until (iUltimoNSUGravado = iMaxNSUWebService);

     

    • Curtir 3
  8. 1 hora atrás, luisclaudio_jr disse:

    Uma duvida, digamos que eu apenas esteja citado como AutXML, a unica pessoa que pode dar a ciência seria o destinatario, correto? 

    Se ele não der, eu não tenho acesso ao xml completo? ou eu poderia dar a ciência ?

    O destinatário da nota é OBRIGADO a realizar a manifestação para ter acesso ao XML completo

    Já a transportadora e/ou citados na tag <AutXML> recebem o XML completo logo de cara, ou seja. Não existe resumo, vai baixar o XML completo. Mesmo que o destinatário não tenha realizado nenhuma manifestação.

    • Obrigado 1
  9. Entrei em contato com a SEFAZ-PR e por telefone tirei 2 dúvidas a respeito ao Boletim Informativo 014/2019:

    Essas duvidas foram respondidas pela atendente Clarisse que por sua vez consultou um outro setor para retornar com as respostas.

     

    • 1: Na nota Técnica diz que o prazo para implementação é de até 03/06/2019 porém no B.I diz que será 06/06/2019. Qual será a data correta para o PR?

    Resposta: Deve-se respeitar a Nota Técnica e que a SEFAZ-PR irá disponibilizar um errata corrigindo essa data. Ou seja, será 03/06/2019!

     

    • 2: No B.I diz que serão implementadas validações facultativas, como mostra a citação abaixo: 
      Citar

      serão implementadas, além das regras de validação obrigatórias, as seguintes regras de validação facultativas:

      • GRUPO N. Item/Tributo: N12-81 e N12a-50
      • GRUPO ZD. Responsável Técnico: ZD01-10 e ZD 02-10

      Esses dois grupos serão facultativos? ou a frase se refere que a Nota Técnica são facultativos porém a SEFAZ-PR irá sim validar como regra?

    Resposta:  São grupos facultativos na nota técnica porém a SEFAZ-PR irá validar e obrigar esses dois grupos a partir de 03/06/2019.

    • Curtir 2
  10. Em contato com a SEFAZ-PR a respeito desse problema a mesma confirmou que estava com problemas e foi normalizado ontem mesmo às 18h:37min

    Para as notas que foram rejeitadas por esse motivo, basta corrigir a data de emissão/saída e reenviar a nota.

    • Curtir 1
  11. 28 minutos atrás, mathlopes disse:

    Foi feita a manifestação do destinatário da nota porem ainda não consigo traze - la por completo usando o método  DistribuicaoDFePorNSU. Por sorte consegui usar o método DistribuicaoDFePorChaveNFe e consigo trazer o XML da nota por completo

    Primeiro você precisa entender como funciona todo o fluxo desse webservice. O método DistribuicaoDFePorNSU deve ser utilizado quando você já sabe o NSU.

    Mas imagine o exemplo:

    1. Você tem um resumo da nota com o NSU 123456.
    2. Você realiza a manifestação do destinatário em cima desse resumo
    3. O AN criará um novo NSU, agora para a nota completa. Qual será esse novo NSU? (Não tem como você saber, pois o NSU que o AN irá criar provavelmente não será um número a mais do NSU do resumo. Já que entre o resumo e a manifestação poderá ter outros resumos/notas/eventos)

    Para você saber qual será o NSU que o AN criou com a nota completa, você só tem 2 caminhos:

    1. DistribuicaoDFePorUltNSU (passando o último NSU que VOCÊ tem gravado no seu banco de dados) - Nesse caso você terá como retorno os NSU's que foram gerados após o NSU que você passou (podem vir resumos/notas/eventos)
    2. DistribuicaoDFePorChaveNFe - Aqui retorna TODOS os NSU's vinculado a chave de acesso em questão. Se a nota foi manifestada, você terá o NSU com a nota completa, caso contrário não terá.

    Leia a nota técnica

    Leia o tópico do Italo

    Veja o exemplo feito por um membro

    Veja o exemplo do ACBr: ...\Exemplos\ACBrDFe\ACBrNFe\DistribuicaoDFe.txt

    • Obrigado 1
  12. 11 minutos atrás, mathlopes disse:

    DistribuicaoDFePorChaveNFe já fiz o uso desse método  como esta tendo o problema no Ambiente Nacional , gostaria de saber sé possível buscar XML completo usando apenas a DistribuicaoDFePorNSU.

    sendo simples na resposta, sim é possível. Desde que você passe o NSU da nota completa e não do resumo (que é o que está fazendo). 

    Reafirmando ainda que para ter acesso ao XML completo é necessário realizar a manifestação do destinatário antes.

    • Curtir 2
  13. Opa, boa tarde.

    Você está consultando um NSU de um resumo. Por isso está obtendo o XML de resumo.

    Primeiramente deverá realizar a manifestação do destinatário. Feito isso o Ambiente Nacional irá gerar um novo NSU, agora com o XML da nota.

    Ou seja, depois que você realizar a manifestação, um novo NSU será gerado. É a partir desse novo NSU que você vai obter o XML completo da nota fiscal.

     

    Eu particularmente não utilizo esse método DistribuicaoDFePorNSU pois eu preciso saber qual será o NSU que eu desejo consultar. Se eu já sei o NSU, significa que eu já tenho os dados pertinente aquele NSU.

    Aqui eu utilizo o método DistribuicaoDFePorUltNSU, nele é passado um NSU "base" e com o isso retorna os NSU's que foram criados depois do que você passou como base.

    Exemplo: se eu passar zero, retorna todos os NSU's dos últimos 90 dias. Quando eu recebo esses NSU's eu armazeno no banco de dados e a próxima consulta eu passo o último NSU que eu tenho gravado no banco de dados...

    Com os NSU's em mãos, realizo a manifestação do destinatário e executo o método DistribuicaoDFePorUltNSU novamente ou o método DistribuicaoDFePorChaveNFe

    • Curtir 3
  14. 44 minutos atrás, narancic disse:

    Como  o Arquivei lite consegue gerar o xml sem o certificado digital ? 

    Teoria 1: Utilizam api's pagas disponibilizadas pela SERPRO

    Teoria 2: Fazem um "traking" na página de consulta da SEFAZ e monta o XML. Tem um membro aqui no fórum que fez algo assim

    Mas como eu falei, apenas teorias...

    Ah, vou deixar um outro tópico aqui onde está sendo discutido isso "Como conseguem?"

    • Curtir 1
  15. 2 minutos atrás, Mom disse:

    Só que o legal desse aplicativo do Governo que ele tem uma rotina muito boa para ficar dando Loop, mesmo que parece que vai ficar eternamente... rsss... E trata bem os erros do WebService.

    Atualmente eu faço isso também...

    Se der algum exception de conexão com o WebService eu tento novamente. Controlando o tempo de espera para tentar novamente e o quantas vezes irá tentar.

    Em resumo, a questão de TimeOut é "quase" nula aqui. 

    Por padrão no aplicativo vai os seguintes parâmetros:

    1. TimeOut: 30 segundos (sim é um valor alto, mas esse WebService é complicado).
    2. Número Tentativas: 10 tentativas.
    3. Tempo de espera entre as tentativas: 5 segundos.
    • Curtir 2
    • Obrigado 1
  16. 4 horas atrás, Larry disse:

    Neste caso o emitente vai receber um destes eventos: teManifDestConfirmacao, teManifDestCiencia, teManifDestDesconhecimento, teManifDestOperNaoRealizada?

    Exatamente! 

    Inclusive eu acabei de testar aqui e o EMITENTE recebe o "Evento completo" da manifestação do destinatário. E o tpEvento são exatamente esses que você citou.

    Um detalhe importante:

    Na prática o método DistribuicaoDFe funciona de forma cronológica, ou seja; sempre terá o resumo da nota fiscal antes de um evento (já que a nota sempre será emitida antes de um evento ser criado).

    Porém poderá ter casos (esse que você está citando) onde serão retornados eventos que não são relacionados a notas fiscais recebidas e sim emitidas pela própria empresa que está executando o método.

    Então você deverá tratar esses casos onde o método DistribuicaoDFe retorna apenas um evento e que esse evento se refere a uma uma NFe que o EMITENTE criou e não a uma NFe que foi DESTINADA ao EMITENTE.

    Exemplo:

    1. Empresa ABC emite uma nota para a empresa DFG.
    2. Empresa DFG realiza a manifestação do destinatário.
    3. Empresa ABC recebe um NSU/evento (através do DistribuicaoDFe) com a manifestação da empresa DFG.
    4. O sistema deverá relacionar esse evento com a nota fiscal que foi EMITIDA pela empresa ABC
    • Curtir 2
  17. Opa,

    Quando o DESTINATÁRIO da nota realiza o processo de manifestação o EMITENTE (apenas o emitente) da nota recebe um XML contendo evento criado. Podendo assim o EMITENTE controlar se o destinatário da nota fiscal realizou alguma manifestação.

    Um dica legal é: avisar o emitente caso algum destinatário realize um evento de manifestação com: Desconhecimento ou Operação Não Realizada. Pois nesses 2 casos alguma coisa deu errada.

  18. 1 hora atrás, ArbSis disse:

    Como fazem em suas empresas para atualização de sistemas em massa?

    1. Aqui temos um verificador de updates rodando com o Windows em todas as máquinas e notificando caso encontre uma nova atualização. (não é necessário estar em todos os PC's. Mas como isso é instalado junto com o sistema e na prática não muda muita coisa. Deixamos assim)
    2. Quando o usuário clica para instalar a atualização em uma máquina qualquer, exibe uma janela com as melhorias, novidades, correções...
    3. Após o término do download do update, é gravado em um banco de dados especifico e temporário as informações do update, como: Nome, versão/build, data, novidades, MD5. Também gravamos o executável do InstallShield nesse banco (sim, gravamos um arquivo de mais de 700MB). Conforme print abaixo.
    4. Quando termina a instalação do update e o usuário inicia o sistema, os scripts necessários para o funcionamento da nova versão/build são rodados no SQL Server. (não precisa ser o servidor)
    5. Depois do banco de dados também estar atualizado, as demais máquinas "acusam" diferentes versões entre o executável e o banco de dados, possibilitando a atualização do sistema nesses outros computadores.
    6. Nesse momento ao invés de baixar o update novamente, acessamos o banco de dados temporário onde tem o arquivo já baixado e apenas instalamos.
    7. Quando o usuário abrir o sistema, os scripts não serão rodados pois já foram.
    • Observação 01: Não importa se mais de um computador baixar a atualização ao mesmo tempo, antes de gravar o arquivo do InstallShield no banco, é verificado se ele já não existe.
    • Observação 02: Os updates são controlados por CNPJ, UF... Já que as vezes é necessário uma correção imediata apenas no estado X. E ainda verificamos se o cliente está apto a receber o update já que o mesmo pode ter problemas financeiros, contrato de manutenção cancelado (não dando direitos a updates de versão, apenas build dentro da versão que o cliente adquiriu). 
    • Observação 03: Depois de todos os PC's atualizados, os dados da versão nova e o arquivo da versão são apagado desse banco de dados temporário.
    • Observação 04: Existem atualizações criticas, nesse caso não fica a critério do usuário a instalação. O próprio atualizador, se encarrega de baixar e executar a instalação.
    • Observação 05: Após o término da atualização no PC, solicitamos o registro da licença novamente para controlarmos qual é a versão que o cliente está utilizando. (de forma online e transparente já que as licenças são controladas por um HWID e não por um serial previamente cadastrado).
    1 hora atrás, ArbSis disse:

    Como controlar todas as versões de dlls existentes em todos os clientes,

    Aqui controlamos por MD5. Ou seja, ao executar o sistema e algum arquivo (bpl, exe, dll..) não bater com o MD5 do executável. Não será possível executar o sistema.

     

    Arquivo.thumb.png.dcaff498478c04cf4ad4cde2ae0a65bb.png

    Arquivo_Parcial.png.618282617fa3bf7afd3bda3c23ba685f.png

    • Curtir 5
    • Obrigado 1
  19. 3 horas atrás, Diego Dmitruk Maturana disse:

    Pessoal, eu vi em um vídeo da Tecnospeed que quando for obrigatório o Hash no responsável técnico possivelmente o CNPJ indicado deverá ter o CNAE de DESENVOLVERDOR DE SOFTWARE. Alguém viu isso em algum outro lugar?

    Supondo que o responsável técnico é a empresa que desenvolve o sistema (Software House). Então pela lógica, tem que ter o CNAE de desenvolvimento de software. (Veja mais detalhes sobre quem é o responsável técnico)

    Observação: Se o Software é da própria empresa, ou seja uma empresa de varejo mas que desenvolve o próprio sistema, logo ela será o responsável técnico e terá que ter um CNAE de desenvolvimento*

    *Pela lógica a empresa tem que ter um CNAE conforme a atividade que exerce.

     

    Essa possível validação poderá acontecer sim mas irá variar de estado para estado. No estado do Paraná já existe uma verificação em relação ao CNAE, conforme o exemplo abaixo.

     

    Exemplo: Atualmente no Paraná para emitir qualquer documento fiscal eletrônico o cliente deve informar qual é o sistema que está utilizando para SEFAZ (mais conhecido como Pedido de uso).

    Depois do pedido de uso realizado, a software house tem que realizar o "aceite" desse cliente. Apenas após esse procedimento o cliente consegue emitir um documento fiscal. 

    Citar

    "Olha SEFAZ-PR a partir de agora minha empresa de vestuário irá utilizar o sistema xyz para emitir os documentos fiscais de modelo 55 e 65 que é fornecido pela software house X."

    Ou seja, na SEFAZ-PR já existe um cadastro de;

    • Fornecedor de software (software house);
    • Sistemas desenvolvidos pelo fornecedor de software;

    E para se tornar um Fornecedor de software no PR deve sim ter CNAE relacionado a desenvolvimento de sistemas, conforme as regras.

    Como provavelmente aqui no PR o cadastro do responsável técnico (pessoa que responde pelo sistema dentro da empresa que fornece o software) será vinculado ao fornecedor de software. A questão de ter um CNAE especifico já será verificado quando a software house for cadastrada na SEFAZ e não quando for cadastrado um responsável técnico.

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