Ir para conteúdo
  • Cadastre-se

Recommended Posts

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 na empresa CTEC
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   

  • valterpatrick 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 na empresa CTEC
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   

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