Diogo Loff Postado 26 Fevereiro Postado 26 Fevereiro 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
Diogo Loff Postado 10 Abril Autor Postado 10 Abril 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.
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