Ir para conteúdo
  • Cadastre-se

Recommended Posts

Postado

Pessoal, a ultima atualização realizada em PadraoNacional.GravaXML o bloco de GerarXMLTotalTributos parou de funcionar, ao menos no meu sistema estava funcionando de acordo, mexeram para atender uma questão específica do simples mas não observaram outras questões.

 

Meu caso eu não informo no sistema o IBPT em percentuais, sempre é valor mesmo que seja regime simples ou normal, só não trabalho com MEI.

Até semana passada estava funcionando, onde minha versão usava um ACBr da semana do dia 09/02. Por outros motivos tive que atualizar e agora passou a não funcionar mais dar problema com o bloco de "totTrib".

Ao meu ver esta lógica esta totalmente equivocada, para que trabalha sempre com valores informados e não percentuais.

 

function TNFSeW_PadraoNacional.GerarXMLTotalTributos: TACBrXmlNode;
begin
  Result := CreateElement('totTrib');

  if (NFSe.Servico.Valores.totTrib.pTotTribFed > 0) or
     (NFSe.Servico.Valores.totTrib.pTotTribEst > 0) or
     (NFSe.Servico.Valores.totTrib.pTotTribMun > 0) then
    Result.AppendChild(GerarXMLPercentualTotalTributos)
  else
    if (NFSe.OptanteSN = osnOptanteMEEPP) then
      Result.AppendChild(AddNode(tcDe2, '#1', 'pTotTribSN', 1, 5, 1,
                                   NFSe.Servico.Valores.totTrib.pTotTribSN, ''))
    else
      if (NFSe.Servico.Valores.totTrib.indTotTrib <> indSim) then
        Result.AppendChild(AddNode(tcStr, '#1', 'indTotTrib', 1, 1, 1,
                  indTotTribToStr(NFSe.Servico.Valores.totTrib.indTotTrib), ''))
      else
        Result.AppendChild(GerarXMLValorTotalTributos);
end;

 

Foi fixado a questão do simples ser sempre por percentuais. Inclusive não se consegue mais nem usar a opção de não querer informar, caso deseje não informar.

if (NFSe.OptanteSN = osnOptanteMEEPP) then
      Result.AppendChild(AddNode(tcDe2, '#1', 'pTotTribSN', 1, 5, 1,
                                   NFSe.Servico.Valores.totTrib.pTotTribSN, ''))

 

Infelizmente não fiz uma cópia da versão do dia 09 então não sei como estava este arquivo originalmente.

 

Mas ao meu ver a lógica sempre deveria priorizar os valores primeiro e depois o modelo por percentuais. Eu ajustei desta forma para resolver meu problema. Favor avaliarem a questão.

 

function TNFSeW_PadraoNacional.GerarXMLTotalTributos: TACBrXmlNode;
begin
  Result := CreateElement('totTrib');

  if (NFSe.Servico.Valores.totTrib.vTotTribFed > 0) or
     (NFSe.Servico.Valores.totTrib.vTotTribEst > 0) or
     (NFSe.Servico.Valores.totTrib.vTotTribMun > 0) then
    Result.AppendChild(GerarXMLValorTotalTributos)
  else
  begin
    if (NFSe.Servico.Valores.totTrib.pTotTribFed > 0) or
       (NFSe.Servico.Valores.totTrib.pTotTribEst > 0) or
       (NFSe.Servico.Valores.totTrib.pTotTribMun > 0) then
      Result.AppendChild(GerarXMLPercentualTotalTributos)
    else
    begin
      if (NFSe.Servico.Valores.totTrib.indTotTrib <> indSim) then
      begin
        Result.AppendChild(AddNode(tcStr, '#1', 'indTotTrib', 1, 1, 1,
                  indTotTribToStr(NFSe.Servico.Valores.totTrib.indTotTrib), ''))
      end
      else
      begin
        if (NFSe.OptanteSN = osnOptanteMEEPP) then
          Result.AppendChild(AddNode(tcDe2, '#1', 'pTotTribSN', 1, 5, 1,
                  NFSe.Servico.Valores.totTrib.pTotTribSN, ''))
      end;
    end;
  end;
end;

A lógica é bem clara e facil de entender

Tem valor "usa os valores"

Não tem e tem percentuais "usa os percentuais"

Não tem e tem indicação de não querer informar "indica"

Não tem a indicação, confere se é simples e "usa o percentual especifico de simples".

 

Vi no log que foi mexido para atender justamente a questão do simples, mas digo com clareza que não esta atendendo, pois se deseja trabalhar com valores no simples esta dando erro, pois na lógica que foi atualizada nunca será possivel usar valores neste caso.

 

Segue anexo fonte.

PadraoNacional.GravarXml.pas

  • 2 semanas depois ...
  • 1 mês depois ...
Postado

Acabei de atualizar os fontes, e este item continua com o problema para quem deseja trabalhar com valores direto e é simples.

Implementei novamente a minha solução proposta.

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