Danilo MSI Soluções Postado 9 Maio Postado 9 Maio 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 Italo Giurizzato Junior Postado 9 Maio Consultores Postado 9 Maio 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. Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Danilo MSI Soluções Postado 9 Maio Autor Postado 9 Maio Olá @Italo Giurizzato Junior, boa tarde! Sim, tem razão. Desconsidere então a função "TACBrNFSeXProvider.ResponsavelRetencaoToStr", por favor. Muito obrigado pela atenção!
Consultores Italo Giurizzato Junior Postado 12 Maio Consultores Postado 12 Maio 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. Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Danilo MSI Soluções Postado 12 Maio Autor Postado 12 Maio 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. 2
Danilo MSI Soluções Postado 13 Maio Autor Postado 13 Maio Olá amigos, boa tarde! Como a solução não precisou ajustar nenhuma Unit do ACBr, creio que podemos encerrar este fórum e manter o controle internamente pelo Ticket de vocês. Muito obrigado pela ajuda!
Moderadores Juliomar Marchetti Postado 13 Maio Moderadores Postado 13 Maio Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. 1 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Recommended Posts