Jump to content

dev botao

ACBrNFSeX - Cidade Morro da Fumaça IPM


Diogo Loff
Go to solution Solved by Diogo Loff,
  • Este tópico foi criado há 305 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde, já tem mais de um ano que a Prefeitura de Morro da Fumaça / SC, trocou o sistema da Betha pelo IPM. Sempre que realizo a atualização do acbr tenho que atualizar o arquivo ACBrNFSeXServicos.ini.

Segue as informações corretas da cidade.

Nome=Morro da Fumaca
UF=SC
Provedor=IPM
Versao=1.01
ProRecepcionar=https://morrodafumaca.atende.net/?pg=rest&service=WNERestServiceNFSe
HomRecepcionar=https://morrodafumaca.atende.net/?pg=rest&service=WNERestServiceNFSe

 

Além disto sempre tem duas correções que são necessárias fazer no componente. Componente atualizado 09/01/2024 e ainda permance a situação.

Correção 1:

IPM.GravarXML.pas

function TNFSeW_IPM.GerarXml: Boolean;

Apartir da linha 132, precisa de um identificador diferente para quando esta em homologação, como sabemos o IPM não tem homologação em alguns municípios, e é obrigatório usar o ambiente de produção, ocorre que a além da tag nfse_teste que deve ser informada, é ideal que a tag do identidicador seja diferente do produção, porque?

Vou dar o exemplo do Morro da Fumaça, eles não permitem usar uma série diferente da de produção, então se você realiza testes com o identificador igual ao de produção, a numeração da nota de teste com a nota de produção começa conflitar, e o cliente perde a sequencia da NF. Como sugestão aqui eu fixei quando esta em testes para que o identificado seja "'nfseh_' + NFSe.IdentificacaoRps.Numero + '.' + NFSe.IdentificacaoRps.Serie", e isto tem me permitido realizar os testes sem bagunçar os dados do cliente lá na prefeitura.

 

Aqui esta o bloco alterado:

if (VersaoNFSe in [ve100, ve101]) and (Ambiente = taHomologacao) then
begin
    if not FpNaoGerarGrupoRps then
      NFSeNode.AppendChild(AddNode(tcStr, '#2', 'identificador', 1, 80, 0,
        'nfseh_' + NFSe.IdentificacaoRps.Numero + '.' + NFSe.IdentificacaoRps.Serie, ''));

    NFSeNode.AppendChild(AddNode(tcStr, '#3', 'nfse_teste', 1, 1, 1, '1', ''));
end
else
begin
    if not FpNaoGerarGrupoRps then
      NFSeNode.AppendChild(AddNode(tcStr, '#2', 'identificador', 1, 80, 0,
        'nfse_' + NFSe.IdentificacaoRps.Numero + '.' + NFSe.IdentificacaoRps.Serie, ''));
end;

 

Correção 2:

IPM.LerXml.pas

procedure TNFSeR_IPM.LerNota(const ANode: TACBrXmlNode);

Não esta alimentando a competencia que vem automático pela prefeitura. Adicionar no corpo do procedimento:

Competencia := StrToDateDef(ObterConteudo(AuxNode.Childrens.FindAnyNs('data_fato'), tcStr), 0);

 

Agradeço se puderem implementar estas questões, pois a cada atualização que realizo do Acbr acabo tendo que sempre conferir estes itens e ajustar.

 

 

Link to comment
Share on other sites

  • Consultores

Boa tarde,

Poderia anexar os arquivos alterados para avaliação?

Obrigado.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

Link to comment
Share on other sites

  • Consultores

Boa tarde,

Criada a TK-4960 para avaliação.

Obrigado pela contribuição.

  • Like 1
Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

Link to comment
Share on other sites

  • Consultores

Boa tarde Diogo,

Esta correta a ordem das tags?

No caso de homologação a tag <nfse_teste> vem depois da tag <identificador> (antes estava o inverso) ?

Abaixo temos um fragmento do manual que mostra a tag <nfse_teste> mas infelizmente não mostra a tag <identificador>.

image.png

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

4 horas atrás, Italo Giurizzato Junior disse:

Boa tarde Diogo,

Esta correta a ordem das tags?

No caso de homologação a tag <nfse_teste> vem depois da tag <identificador> (antes estava o inverso) ?

Abaixo temos um fragmento do manual que mostra a tag <nfse_teste> mas infelizmente não mostra a tag <identificador>.

image.png

Oi Italo, na realidade ali a ordem não interfere, o idendificador pode vir depois não tem problema. A questão mesmo é que o identificador precisa ser diferente se não acaba misturando numeração com a oficial do cliente. Como coloquei ali eu adicionei um "h" no identificador para distinguir o teste, pois eles não aceitam a série diferente, em fim vai entender. O IPM é precario em documentação, diria um dos mais, e tem questões que depois de muito tempo bater cabeça com o suporte deles você acaba resolvendo.

Mas em fim isto já ta rodando a bastante tempo, e não tenho tido problemas, aqui esta o print de como fica no envio o RPS e depois como Retorna deles.

Se por acaso você envia em testes com o mesmo identificador do produção, começa misturar notas com do cliente, um exemplo. Digamos que eu na minha base de testes esteja com numeração inferior a do cliente, quando eu gero meu teste e o identificador é o mesmo de produção, acaba dando problema de RPS já informado e se consulta vem a nota que o cliente emitiu lá em produção anteriormente. Agora ao contrário, se por acaso você esta com númeração acima do cliente e faz o teste ai o pepino é maior, porque quando o cliente atinge o mesmo número ele não consegue mais seguir, trava a sequencia, e só ligando para prefeitura e IPM para resolver.

Agora se no teste você também gera com um indentificador diferente ai este problema fica resolvido.

 

Segue anexo os prints de como fica.

NFSe.png

RPS.png

Link to comment
Share on other sites

  • Este tópico foi criado há 305 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.