Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado

Olá, bom dia! Conforme relatado no grupo do Discord (https://discord.com/channels/798697718800318484/801796941813907456/1370377955242672279) as funções supracitadas não estão permitindo a escolha da opção "rtNenhum" pois, para tal, é necessário passar o valor '', porém, já existe outra opção que corresponde ao valor citado. Vide abaixo:
 

function TACBrNFSeXProvider.ResponsavelRetencaoToStr(
  const t: TnfseResponsavelRetencao): string;
begin
  Result := EnumeradoToStr(t,
                           ['1', '', '2', ''],
                           [rtTomador, rtPrestador, rtIntermediario, rtNenhum]);
end;
 

function TACBrNFSeXProvider.StrToResponsavelRetencao(out ok: boolean;
  const s: string): TnfseResponsavelRetencao;
begin
  Result := StrToEnumerado(ok, s,
                           ['1', '', '2', ''],
                           [rtTomador, rtPrestador, rtIntermediario, rtNenhum]);
end;

Por hora, contornei aqui no meu fonte passando rtNenhum diretamente quando não for caso de Retenção de ISS.

Muito obrigado!

  • Consultores
Postado

Boa tarde @Danilo MSI Soluções,

A primeira função que converte o enumerado em string o que tudo indica, se o Responsável for o Prestador ou não tiver nenhum Responsável a tag referente a essa informação não deve ser gerada no XML.

Já a segunda função que converte a string no enumerada que precisamos estudar, pois se a tag na existe no XML o campo vai conter o valor rtPrestador, indicando dessa forma que o responsável é ele.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Consultores
Postado

Bom dia @Danilo MSI Soluções,

Quando não existe a tag referente ao responsável pela retenção, precisamos descobrir algo que indique que o responsável é o Prestador ou se realmente não tem nenhum responsável.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Opa, bom dia @Italo Giurizzato Junior!

Entendi. No meu caso, por hora, controlei pelo valor de retenção. Se for 0, então eu não coloco nenhum responsável (rtNenhum). Caso haja, coloquei para trazer o valor do campo "responsavelretencao" da view que criamos para abastecer os dados da NFSe, dessa forma:

 

         { ISS Retido }
         if MeuDataSet.FieldByName('vrissretido').AsExtended > 0 then
          begin
           IssRetido := stRetencao;
           ResponsavelRetencao := ACBrNFSe.Provider.StrToResponsavelRetencao(OK, MeuDataSet.FieldByName('responsavel_retencao').AsString);
          end
         else
          begin
           IssRetido := stNormal;
           ResponsavelRetencao := rtNenhum;
          end;

 

Sei que não é o ideal, mas estamos validando essa versão por enquanto em um único cliente que vai ser atendido pelo ajuste.

  • Curtir 2
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.