Ir para conteúdo
  • Cadastre-se

[ACBR-9469] [NFSe] GovDigital - Erro GOV110 - CST e TpRetPisCofins não gerados no XML


Ver Solução Respondido por Advance,

Recommended Posts

  • Solution
Postado
  • Provedor: GovDigital (Várzea Paulista - SP)
  • Versão do ACBrMonitorPlus: 1.4.0.434
  • Erro retornado: Codigo=GOV110 - Necessário informar a Situação Tributária PIS/COFINS quando informado esses valores
  • Causa: O método TNFSeW_GovDigital200.GerarValores em GovDigital_GravarXml.pas depende de NFSe.Servico.Valores.CSTPis estar populado, mas a leitura do INI via LerINIValoresTribFederal não estava populando corretamente o campo antes da geração do XML
  • Arquivo alterado: GovDigital_GravarXml.pas
  • Correção: Adicionar fallback para tribFed.CST e tribFed.tpRetPisCofins quando CSTPis e tpRetPisCofins estiverem vazios, além de um fallback final com valores padrão

Olá a todos, precisei fazer uma alteração para que as tags CST e tpRetPisCofins constasse no XML do RPS. Peço a gentileza de verificarem se essa minha alteração faz sentido, mas foi a única forma de fazer as tags constar no XML.

Função Anterior

function TNFSeW_GovDigital200.GerarValores: TACBrXmlNode;
begin
  Result := inherited GerarValores;

  if (NFSe.Servico.Valores.ValorPis>0) or (NFSe.Servico.Valores.ValorCofins>0) then
  begin
    Result.AppendChild(AddNode(tcStr, '#1', 'CST', 2, 2, 0,
                                 CSTPisToStr(NFSe.Servico.Valores.CSTPis), ''));

    if not (StrToIntDef(CSTPisToStr(NFSe.Servico.Valores.CSTPis),0) in [0,8,9]) then
      Result.AppendChild(AddNode(tcStr, '#1', 'TpRetPisCofins', 1, 1, 0,
                 tpRetPisCofinsToStr(NFSe.Servico.Valores.tpRetPisCofins), ''));
  end;
end; 

Nova Função

function TNFSeW_GovDigital200.GerarValores: TACBrXmlNode;
var
  sCST: string;
  sRet: string;
begin
  Result := inherited GerarValores;

  if (NFSe.Servico.Valores.ValorPis > 0) or (NFSe.Servico.Valores.ValorCofins > 0) then
  begin
    // Tenta CSTPis primeiro, usa tribFed.CST como fallback
    sCST := CSTPisToStr(NFSe.Servico.Valores.CSTPis);
    if sCST = '' then
      sCST := CSTToStr(NFSe.Servico.Valores.tribFed.CST);
    if sCST = '' then
      sCST := '01'; // fallback final: operação tributável alíquota normal

    Result.AppendChild(AddNode(tcStr, '#1', 'CST', 2, 2, 1, sCST, ''));

    if not (StrToIntDef(sCST, 0) in [0, 8, 9]) then
    begin
      // Tenta tpRetPisCofins, usa tribFed como fallback
      sRet := tpRetPisCofinsToStr(NFSe.Servico.Valores.tpRetPisCofins);
      if sRet = '' then
        sRet := tpRetPisCofinsToStr(NFSe.Servico.Valores.tribFed.tpRetPisCofins);
      if sRet = '' then
        sRet := '1'; // fallback final: retido

      Result.AppendChild(AddNode(tcStr, '#1', 'TpRetPisCofins', 1, 1, 1, sRet, ''));
    end;
  end;
end;
 

GovDigital.GravarXml.pas

  • 3 semanas depois ...
Postado

Revivendo este tópico, para uma emissão correta de NFS-e com retenção de PIS/COFINS/CSLL, precisei fazer as alterações abaixo no componente ACBr_NFSeX, precisamente no arquivo C:\ACBR\Fontes\ACBrDFe\ACBrNFSeX\Provedores\GovDigital.GravarXml.pas:

function TNFSeW_GovDigital200.GerarValores: TACBrXmlNode;
var
  sCST: string;
  sRet: string;
begin
  Result := inherited GerarValores;

  if (NFSe.Servico.Valores.ValorPis > 0) or (NFSe.Servico.Valores.ValorCofins > 0) then
  begin
    sCST := CSTPisToStr(NFSe.Servico.Valores.CSTPis);
    if sCST = '' then
      sCST := CSTToStr(NFSe.Servico.Valores.tribFed.CST);
    if sCST = '' then
      sCST := '01';

    Result.AppendChild(AddNode(tcStr, '#1', 'CST', 2, 2, 1, sCST, ''));

    if not (StrToIntDef(sCST, 0) in [0, 8, 9]) then
    begin
      sRet := tpRetPisCofinsToStr(NFSe.Servico.Valores.tribFed.tpRetPisCofins);
      if (sRet = '') or (sRet = '0') then
        sRet := tpRetPisCofinsToStr(NFSe.Servico.Valores.tpRetPisCofins);

      if (sRet = '') or (sRet = '0') or (sRet = '2') then
        sRet := '1';

      Result.AppendChild(AddNode(tcStr, '#1', 'TpRetPisCofins', 1, 1, 1, sRet, ''));
    end;
  end;
end;
 

Sem essa alteração não gera a tag CST do PIS e COFINS e a tag TpRetPisCofins está sempre igual a 2.

Devo postar isso em alguma sessão específica do forum para que seja adicionada essa alteração nas fontes do ACBR?

  • Consultores
Postado
1 hora atrás, Advance disse:

Revivendo este tópico, para uma emissão correta de NFS-e com retenção de PIS/COFINS/CSLL, precisei fazer as alterações abaixo no componente ACBr_NFSeX, precisamente no arquivo C:\ACBR\Fontes\ACBrDFe\ACBrNFSeX\Provedores\GovDigital.GravarXml.pas:

function TNFSeW_GovDigital200.GerarValores: TACBrXmlNode;
var
  sCST: string;
  sRet: string;
begin
  Result := inherited GerarValores;

  if (NFSe.Servico.Valores.ValorPis > 0) or (NFSe.Servico.Valores.ValorCofins > 0) then
  begin
    sCST := CSTPisToStr(NFSe.Servico.Valores.CSTPis);
    if sCST = '' then
      sCST := CSTToStr(NFSe.Servico.Valores.tribFed.CST);
    if sCST = '' then
      sCST := '01';

    Result.AppendChild(AddNode(tcStr, '#1', 'CST', 2, 2, 1, sCST, ''));

    if not (StrToIntDef(sCST, 0) in [0, 8, 9]) then
    begin
      sRet := tpRetPisCofinsToStr(NFSe.Servico.Valores.tribFed.tpRetPisCofins);
      if (sRet = '') or (sRet = '0') then
        sRet := tpRetPisCofinsToStr(NFSe.Servico.Valores.tpRetPisCofins);

      if (sRet = '') or (sRet = '0') or (sRet = '2') then
        sRet := '1';

      Result.AppendChild(AddNode(tcStr, '#1', 'TpRetPisCofins', 1, 1, 1, sRet, ''));
    end;
  end;
end;
 

Sem essa alteração não gera a tag CST do PIS e COFINS e a tag TpRetPisCofins está sempre igual a 2.

Devo postar isso em alguma sessão específica do forum para que seja adicionada essa alteração nas fontes do ACBR?

somente a unit modificada nesse tópico mesmo e ele como tempo será validado

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • 1 mês depois ...
  • Consultores
Postado

@Advance obrigado pela contribuição.

Foi criada a tarefa ACBR-9469 para análise do caso e parecer por parte da equipe de consultores.

Qualquer novidade será divulgada aqui no tópico.

Valter Patrick
Gerente de Projetos e Consultor ACBr
(33)98400-0936
GitHub: https://github.com/valterpatrick

Ajude o Projeto ACBr crescer - Assine o Clube PRO                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

  • valter.patrick changed the title to [ACBR-9469] [NFSe] GovDigital - Erro GOV110 - CST e TpRetPisCofins não gerados no XML
  • 2 semanas depois ...
Postado

Pessoal,

Estou com o mesmo problema só que em Java. Pelo que observei nesse tópico, a alteração que @Advance fez, foi em Delphi. Em java, nós utilizamos as DLLs do ACBr. Tenho como efetuar essa correção em Java também ou dependemos do ACBr gerar uma nova versão com a correção ?

Esse mesmo problema está registrado na tarefa ACBR-9468.

Obrigado!

  • Consultores
Postado

A Lib é baseada no componente Delphi, então depende do ACBr aceitar as contribuições para gerar a Lib.
No momento esta tarefa está em nosso backlog, peço que aguarde um pouco mais.

Valter Patrick
Gerente de Projetos e Consultor ACBr
(33)98400-0936
GitHub: https://github.com/valterpatrick

Ajude o Projeto ACBr crescer - Assine o Clube PRO                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

  • 3 semanas depois ...

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