Ir para conteúdo
  • Cadastre-se

Recommended Posts

  • Membros Pro
Postado

Bom Dia, 

Temos uma demanda de um cliente nosso, este precisaria calcular os impostos de CSLL e IR, porém não contém esses valores na ACBR API para a emissão do CT-e, assim gostaria de solicitar a inclusão dessas informações  do infTribFed na ACBR  API CT-e

image.thumb.png.023c56e5bf0067abb5e5a0f194bcbada.png

  • Consultores
  • Solution
Postado
23 horas atrás, Windel Sistemas disse:

Bom Dia, 

Temos uma demanda de um cliente nosso, este precisaria calcular os impostos de CSLL e IR, porém não contém esses valores na ACBR API para a emissão do CT-e, assim gostaria de solicitar a inclusão dessas informações  do infTribFed na ACBR  API CT-e

image.thumb.png.023c56e5bf0067abb5e5a0f194bcbada.png

Já tentou enviar no payload os campos? Talvez no exemplo não tenha, mas é gerado internamente.
Observação:
Estes dados só são gerados quando a versão do CTe é 3.00 acima e é CTeOS.

Fontes:
https://svn.code.sf.net/p/acbr/code/trunk2/Fontes/ACBrDFe/ACBrCTe/Base/ACBrCTe.XmlWriter.pas

function TCTeXmlWriter.Gerar_Imp: TACBrXmlNode;
begin 
  if (VersaoDF >= ve300) and (ModeloDF = moCTeOS) then
    Result.AppendChild(Gerar_infTribFed);
end;

function TCTeXmlWriter.Gerar_infTribFed: TACBrXmlNode;
  function InformarINSS: Integer;
  begin
    if ((Length(OnlyNumber(Trim(CTe.toma.CNPJCPF))) = 14) or
        (CTe.toma.EnderToma.cPais <> 1058)) and
       (CTe.Ide.tpServ in [tsTranspPessoas, tsExcessoBagagem]) then
      Result := 1
    else
      Result := 0;
  end;
begin
  Result := nil;

  if ((CTe.Imp.infTribFed.vPIS > 0) or (CTe.Imp.infTribFed.vCOFINS > 0) or
      (CTe.Imp.infTribFed.vIR > 0) or ((CTe.Imp.infTribFed.vINSS > 0) or
      (InformarINSS = 1)) or (CTe.Imp.infTribFed.vCSLL > 0)) then
  begin
    Result := FDocument.CreateElement('infTribFed');

    Result.AppendChild(AddNode(tcDe2, '#244', 'vPIS', 1, 15, 0,
                                            CTe.Imp.infTribFed.vPIS, DSC_VPIS));

    Result.AppendChild(AddNode(tcDe2, '#244', 'vCOFINS', 1, 15, 0,
                                      CTe.Imp.infTribFed.vCOFINS, DSC_VCOFINS));

    Result.AppendChild(AddNode(tcDe2, '#244', 'vIR', 1, 15, 0,
                                              CTe.Imp.infTribFed.vIR, DSC_VIR));

    Result.AppendChild(AddNode(tcDe2, '#244', 'vINSS', 1, 15, InformarINSS,
                                          CTe.Imp.infTribFed.vINSS, DSC_VINSS));

    Result.AppendChild(AddNode(tcDe2, '#244', 'vCSLL', 1, 15, 0,
                                          CTe.Imp.infTribFed.vCSLL, DSC_VCSLL));
  end;
end;

 

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   

  • Membros Pro
Postado
5 horas atrás, valterpatrick disse:

Já tentou enviar no payload os campos? Talvez no exemplo não tenha, mas é gerado internamente.
Observação:
Estes dados só são gerados quando a versão do CTe é 3.00 acima e é CTeOS.

Fontes:
https://svn.code.sf.net/p/acbr/code/trunk2/Fontes/ACBrDFe/ACBrCTe/Base/ACBrCTe.XmlWriter.pas

function TCTeXmlWriter.Gerar_Imp: TACBrXmlNode;
begin 
  if (VersaoDF >= ve300) and (ModeloDF = moCTeOS) then
    Result.AppendChild(Gerar_infTribFed);
end;

function TCTeXmlWriter.Gerar_infTribFed: TACBrXmlNode;
  function InformarINSS: Integer;
  begin
    if ((Length(OnlyNumber(Trim(CTe.toma.CNPJCPF))) = 14) or
        (CTe.toma.EnderToma.cPais <> 1058)) and
       (CTe.Ide.tpServ in [tsTranspPessoas, tsExcessoBagagem]) then
      Result := 1
    else
      Result := 0;
  end;
begin
  Result := nil;

  if ((CTe.Imp.infTribFed.vPIS > 0) or (CTe.Imp.infTribFed.vCOFINS > 0) or
      (CTe.Imp.infTribFed.vIR > 0) or ((CTe.Imp.infTribFed.vINSS > 0) or
      (InformarINSS = 1)) or (CTe.Imp.infTribFed.vCSLL > 0)) then
  begin
    Result := FDocument.CreateElement('infTribFed');

    Result.AppendChild(AddNode(tcDe2, '#244', 'vPIS', 1, 15, 0,
                                            CTe.Imp.infTribFed.vPIS, DSC_VPIS));

    Result.AppendChild(AddNode(tcDe2, '#244', 'vCOFINS', 1, 15, 0,
                                      CTe.Imp.infTribFed.vCOFINS, DSC_VCOFINS));

    Result.AppendChild(AddNode(tcDe2, '#244', 'vIR', 1, 15, 0,
                                              CTe.Imp.infTribFed.vIR, DSC_VIR));

    Result.AppendChild(AddNode(tcDe2, '#244', 'vINSS', 1, 15, InformarINSS,
                                          CTe.Imp.infTribFed.vINSS, DSC_VINSS));

    Result.AppendChild(AddNode(tcDe2, '#244', 'vCSLL', 1, 15, 0,
                                          CTe.Imp.infTribFed.vCSLL, DSC_VCSLL));
  end;
end;

 

Verdade, não tinha me ligado que era somente de CT-e OS, para esse já enviamos os valores.

  • Consultores
Postado
1 minuto atrás, Windel Sistemas disse:

Verdade, não tinha me ligado que era somente de CT-e OS, para esse já enviamos os valores.

Tendo em vista isto, resolvido ou precisa de ajuda em algo 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...