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...
The popup will be closed in 10 segundos...