Ir para conteúdo
  • Cadastre-se

Recommended Posts

Postado

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?

Postado

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;

 

Postado
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

Postado
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).

Postado (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 por BluData
Postado
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.

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