Danilo MSI Soluções Postado Sexta as 13:01 Postado Sexta as 13:01 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 Sexta as 18:00 Consultores Postado Sexta as 18:00 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 Sexta as 20:27 Autor Postado Sexta as 20:27 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 Segunda as 12:51 Consultores Postado Segunda as 12:51 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 Segunda as 13:47 Autor Postado Segunda as 13:47 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 Ontem às 17:16 Autor Postado Ontem às 17:16 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 Ontem às 20:01 Moderadores Postado Ontem às 20:01 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