Ir para conteúdo
  • Cadastre-se

Recommended Posts

Postado

Olá,

Estou atribuindo valores à diversas propriedades da NFS-e mas quando gero o xml as tags com as informações não são geradas e ao emitir a nota valores ficam divergentes.
Os problemas foram identificados ao gerar e emitir para o ambiente nacional.
Abaixo está alguns trechos do código usado para preencher as propriedades da DPS:

procedure TFormNFSe.GerarRPS();
var
  oNFSe: TNFSe;
begin
  ...
  DM.ACBrNFSe1.NotasFiscais.Clear;
  oNFSe := DM.ACBrNFSe1.NotasFiscais.New.NFSe;
  ...
  oNFSe.Servico.Valores.ValorServicos          := DM.NFSe.FieldByName('ValorServicos').AsCurrency;
  oNFSe.Servico.Valores.ValorDeducoes          := DM.NFSe.FieldByName('Deducoes').AsCurrency;
  oNFSe.Servico.Valores.DescontoIncondicionado := DM.NFSe.FieldByName('DescontoIncondicional').AsCurrency;
  oNFSe.Servico.Valores.BaseCalculo            := oNFSe.Servico.Valores.ValorServicos -
                                                  oNFSe.Servico.Valores.ValorDeducoes -
                                                  oNFSe.Servico.Valores.DescontoIncondicionado;
  ...
  oNFSe.Servico.Valores.Aliquota       := 0.05;
  oNFSe.Servico.Valores.ValorIss       := oNFSe.Servico.Valores.BaseCalculo * oNFSe.Servico.Valores.Aliquota;
  oNFSe.Servico.Valores.IssRetido      := stRetencao;
  oNFSe.Servico.ResponsavelRetencao    := rtTomador;
  oNFSe.Servico.Valores.ValorIssRetido := oNFSe.Servico.Valores.ValorIss;
  ...
  oNFSe.Servico.Valores.ValorLiquidoNfse := oNFSe.Servico.Valores.ValorServicos -
                                            oNFSe.Servico.Valores.ValorPis -
                                            oNFSe.Servico.Valores.ValorCofins -
                                            oNFSe.Servico.Valores.ValorInss -
                                            oNFSe.Servico.Valores.ValorIr -
                                            oNFSe.Servico.Valores.ValorCsll -
                                            oNFSe.Servico.Valores.OutrasRetencoes -
                                            oNFSe.Servico.Valores.ValorIssRetido -
                                            oNFSe.Servico.Valores.DescontoIncondicionado -
                                            oNFSe.Servico.Valores.DescontoCondicionado;
  ...
  DM.ACBrNFSe1.NotasFiscais.Items[Nota].GravarXML('','', txmlRPS);
end;

Abaixo coloco um XML gerado, preservando dados dos envolvidos:

<?xml version="1.0" encoding="UTF-8"?>
<DPS xmlns="http://www.sped.fazenda.gov.br/nfse" versao="1.01">
   <infDPS Id="DPS240810229999999999999900001000002026001104">
      <tpAmb>2</tpAmb>
      <dhEmi>2026-05-22T10:28:57-03:00</dhEmi>
      <verAplic>4.0.40.1</verAplic>
      <serie>1</serie>
      <nDPS>2026001104</nDPS>
      <dCompet>2026-05-22</dCompet>
      <tpEmit>1</tpEmit>
      <cLocEmi>2408102</cLocEmi>
      <prest>
         <CNPJ>99999999999999</CNPJ>
         <fone>9999999999</fone>
         <email>[email protected]</email>
         <regTrib>
            <opSimpNac>1</opSimpNac>
            <regEspTrib>9</regEspTrib>
         </regTrib>
      </prest>
      <toma>
         <CNPJ>99999999999999</CNPJ>
         <xNome>AAAAAAAAAAAAAAAAAAAAAAAA</xNome>
         <end>
            <endNac>
               <cMun>9999999</cMun>
               <CEP>99999999</CEP>
            </endNac>
            <xLgr>AAAAAAAAAAAAAAAAAAAAAAAAA</xLgr>
            <nro>999</nro>
            <xBairro>AAAAAAAAA</xBairro>
         </end>
         <fone>9999999999</fone>
         <email>[email protected]</email>
      </toma>
      <serv>
         <locPrest>
            <cLocPrestacao>2408102</cLocPrestacao>
         </locPrest>
         <cServ>
            <cTribNac>140101</cTribNac>
            <xDescServ>ALINHAMENTO 3D EIXO DIANTEIRO\nCAMBAGEM PASSEIO (DIANTEIRO)\nTROCA OLEO (CAR)\n</xDescServ>
            <cNBS>120013110</cNBS>
         </cServ>
         <infoCompl>
            <xInfComp>PROCON ... Lei Municipal No 6216/2011</xInfComp>
         </infoCompl>
      </serv>
      <valores>
         <vServPrest>
            <vServ>177.00</vServ>
         </vServPrest>
         <trib>
            <tribMun>
               <tribISSQN>1</tribISSQN>
               <tpRetISSQN>1</tpRetISSQN>
            </tribMun>
            <tribFed>
               <piscofins>
                  <CST>01</CST>
                  <vBCPisCofins>177.00</vBCPisCofins>
                  <pAliqPis>0.65</pAliqPis>
                  <pAliqCofins>3.00</pAliqCofins>
                  <vPis>1.15</vPis>
                  <vCofins>5.31</vCofins>
                  <tpRetPisCofins>2</tpRetPisCofins>
               </piscofins>
            </tribFed>
            <totTrib>
               <vTotTrib>
                  <vTotTribFed>6.46</vTotTribFed>
                  <vTotTribEst>0.00</vTotTribEst>
                  <vTotTribMun>8.85</vTotTribMun>
               </vTotTrib>
            </totTrib>
         </trib>
      </valores>
   </infDPS>
</DPS>

Observe que no XML não estão incluídas várias informações como a questão do ISS Retido, Valor Líquido, etc.

Vi que é na function TNFSeW_PadraoNacional.GerarXMLValoresNFSe() onde as tags referentes ao ISS Retido, Valor Líquido da NFSe são preenchidos, mas essa função não é chamada quando estou depurando.
Na depuração o fluxo chama:

  • function TNotaFiscal.GravarXML()
  • function TNotaFiscal.GerarXML()
  • function TACBrNFSeXProvider.GerarXml()
  • function TNFSeW_PadraoNacional.GerarXml()
  • function TNFSeW_PadraoNacional.GerarXMLInfDps()
  • function TNFSeW_PadraoNacional.GerarXMLValores()
  • function TNFSeW_PadraoNacional.GerarXMLServicoPrestado()

Já estou há um bom tempo tentando entender porque a GerarXMLValoresNFSe não é executada, mas até momento não consegui. O fluxo e execução passar sempre sobre essas outras functions que relacionei. E ao emitir a NFSe os dados ficam errados ou faltando, descontos zerados, valor líquido da nfse igual ao valor dos serviços, sem considerar descontos e retenções. Abaixo está um trecho do DANFS-e com as inconsistências. Se alguém tiver alguma orientação a dar agradeço desde já.

image.thumb.png.93cabef1f6da97ae4296fb513fc81d8e.png

Hugo Leonardo

Programador

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.