Wendel Lopes Postado 23 Junho Postado 23 Junho Estou obtendo uma falha hoje, após atualizar o componente: Conteudo invalido ao iniciar com o elemento dps:aliq. Nenhum elemento filho é esperado neste ponto. Correção: verifique a estrutura do XML. Ontem o erro era outro, começou por volta das 11h da manhã. Aparentemente a Betha fez alguma atualização, e desde então não conseguimos mais validar qualquer nfse. Hoje, após a atualização do componente, o erro mudou, não sabemos se por conta da atualização ou do proprio servidor da Betha. Mais alguém na mesma situação?
BluData Postado 23 Junho Postado 23 Junho Boa Tarde. Estou com o mesmo problema para o município de Porto União/SC. https://iss.ajuda.betha.cloud/e-nota-fly/novidades/2026/junho/#melhorias-entregues-até-19062026 dia 19 teve alteração para NT 004 para adicionar o IBSCBS, vou gerar o arquivo xml no ACBr e comparar com o xml exemplo deles para verificar se acho o problema.
Wendel Lopes Postado 23 Junho Autor Postado 23 Junho Atualizei o componente hoje, e depois descobri que precisa alterar a ordem de montagem do XML. Fiz, reinstalei e deu certo. Alterei o arquivo PadraoNacional.GravarXml.pas Só alterar essa funçao e reinstalar function TNFSeW_PadraoNacional.GerarXMLTributacaoMunicipal: TACBrXmlNode; begin Result := CreateElement('tribMun'); Result.AppendChild(AddNode(tcStr, '#1', 'tribISSQN', 1, 1, 1, tribISSQNToStr(NFSe.Servico.Valores.tribMun.tribISSQN), '')); if NFSe.Servico.Valores.tribMun.cPaisResult > 0 then Result.AppendChild(AddNode(tcStr, '#1', 'cPaisResult', 2, 2, 0, CodIBGEPaisToSiglaISO2(NFSe.Servico.Valores.tribMun.cPaisResult), '')); if NFSe.Servico.Valores.tribMun.tribISSQN = tiImunidade then Result.AppendChild(AddNode(tcStr, '#1', 'tpImunidade', 1, 1, 0, tpImunidadeToStr(NFSe.Servico.Valores.tribMun.tpImunidade), '')); Result.AppendChild(GerarXMLExigibilidadeSuspensa); Result.AppendChild(GerarXMLBeneficioMunicipal); Result.AppendChild(AddNode(tcDe2, '#1', 'pAliq', 1, 3, 0, NFSe.Servico.Valores.tribMun.pAliq, '')); Result.AppendChild(AddNode(tcStr, '#1', 'tpRetISSQN', 2, 2, 1, tpRetISSQNToStr(NFSe.Servico.Valores.tribMun.tpRetISSQN), '')); end;
BluData Postado 23 Junho Postado 23 Junho 5 minutos atrás, Wendel Lopes disse: Atualizei o componente hoje, e depois descobri que precisa alterar a ordem de montagem do XML. Fiz, reinstalei e deu certo. Alterei o arquivo PadraoNacional.GravarXml.pas Só alterar essa funçao e reinstalar function TNFSeW_PadraoNacional.GerarXMLTributacaoMunicipal: TACBrXmlNode; begin Result := CreateElement('tribMun'); Result.AppendChild(AddNode(tcStr, '#1', 'tribISSQN', 1, 1, 1, tribISSQNToStr(NFSe.Servico.Valores.tribMun.tribISSQN), '')); if NFSe.Servico.Valores.tribMun.cPaisResult > 0 then Result.AppendChild(AddNode(tcStr, '#1', 'cPaisResult', 2, 2, 0, CodIBGEPaisToSiglaISO2(NFSe.Servico.Valores.tribMun.cPaisResult), '')); if NFSe.Servico.Valores.tribMun.tribISSQN = tiImunidade then Result.AppendChild(AddNode(tcStr, '#1', 'tpImunidade', 1, 1, 0, tpImunidadeToStr(NFSe.Servico.Valores.tribMun.tpImunidade), '')); Result.AppendChild(GerarXMLExigibilidadeSuspensa); Result.AppendChild(GerarXMLBeneficioMunicipal); Result.AppendChild(AddNode(tcDe2, '#1', 'pAliq', 1, 3, 0, NFSe.Servico.Valores.tribMun.pAliq, '')); Result.AppendChild(AddNode(tcStr, '#1', 'tpRetISSQN', 2, 2, 1, tpRetISSQNToStr(NFSe.Servico.Valores.tribMun.tpRetISSQN), '')); end; Certo, você inverteu as tags tpRetISSQN com a pAliq né? O problema de você fazer essa alteração direto na classe TNFSeW_PadraoNacional, pode influenciar para outros provedores fora que toda vez que vc atualizar o componente, vai precisar ficar mudando. Por se tratar de uma function virtual, o correto seria rescreever a mesma funcionalidade no arquivo Betha.GravarXml na classe TNFSeW_BethaAPIPropria. Estarei verificando aqui se consigo fazer essas alterações e repassar para o Italo validar na SVN
BluData Postado 23 Junho Postado 23 Junho Bom, eu adicionei a função GerarXMLTributacaoMunicipal na classe TNFSeW_BethaAPIPropria do arquivo Betha.GravarXml.pas. @Juliomar Marchetti, será que tem como validar e jogar no SVN? Betha.GravarXml.pas
Fabio Defferrari Postado 24 Junho Postado 24 Junho 16 horas atrás, BluData disse: Bom, eu adicionei a função GerarXMLTributacaoMunicipal na classe TNFSeW_BethaAPIPropria do arquivo Betha.GravarXml.pas. @Juliomar Marchetti, será que tem como validar e jogar no SVN? Betha.GravarXml.pas 21.68 kB · 2 downloads Na verdade, a função já estava na unit Betha.GravarXml.pas; ela apenas estava comentada (inclusive a ordem está um pouco diferente para as chamadas dos métodos GerarXMLExigibilidadeSuspensa e GerarXMLBeneficioMunicipal).
BluData Postado 24 Junho Postado 24 Junho (editado) 7 minutos atrás, Fabio Defferrari disse: Na verdade, a função já estava na unit Betha.GravarXml.pas; ela apenas estava comentada (inclusive a ordem está um pouco diferente para as chamadas dos métodos GerarXMLExigibilidadeSuspensa e GerarXMLBeneficioMunicipal). Eu vi que tinha funções comentadas, mas achei que iria gerar redundância das funcões da classe pai. E como o amigo acima falou, ele só inverteu a ordem das tags na classe do padrão nacional e funcionou, então acho que só hedar a função e inverter as tags na TNFSeW_BethaAPIPropria iria resolver o problema sem precisar mexer na classe TNFSeW_PadraoNacional Editado 24 Junho por BluData
Wendel Lopes Postado 24 Junho Autor Postado 24 Junho 17 horas atrás, BluData disse: Certo, você inverteu as tags tpRetISSQN com a pAliq né? O problema de você fazer essa alteração direto na classe TNFSeW_PadraoNacional, pode influenciar para outros provedores fora que toda vez que vc atualizar o componente, vai precisar ficar mudando. Por se tratar de uma function virtual, o correto seria rescreever a mesma funcionalidade no arquivo Betha.GravarXml na classe TNFSeW_BethaAPIPropria. Estarei verificando aqui se consigo fazer essas alterações e repassar para o Italo validar na SVN Eu fiz isso como medida de urgência, muitos clientes estavam parados, mas sim, não é o correto.
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora