Olá, estou com o mesmo problema, para os mesmos provedores, observei que falta resolver a situação em outras units, existe a correção no arquivo ACBrNFSeDANFSeQRClass.pas no evento TfqrDANFSeQRRetrato.qrb_6_ISSQNBeforePrint.
Porem utilizo FastReport ao invés do QR, fiz o ajuste em TdmACBrNFSeFR.CarregaServicos e não no before print.
Segue codigo do evento com a alteração para analisar a necessidade de ajuste do SVN e validar demais opções de impressões.
procedure TdmACBrNFSeFR.CarregaServicos;
var
i: Integer;
dValorNota: Double;
begin
with cdsServicos do
begin
Close;
CreateDataSet;
Append;
with FNFSe.Servico do
begin
FieldByName('ItemListaServico').AsString := ItemListaServico;
FieldByName('xItemListaServico').AsString := xItemListaServico;
FieldByName('CodigoCnae').AsString := CodigoCnae;
FieldByName('CodigoTributacaoMunicipio').AsString := CodigoTributacaoMunicipio;
FieldByName('Discriminacao').AsString := StringReplace(Discriminacao, ';', #13, [rfReplaceAll]);
FieldByName('CodigoPais').AsString := IntToStr(CodigoPais);
FieldByName('NumeroProcesso').AsString := NumeroProcesso;
// FieldByName('ResponsavelRetencao').AsString := DFeUtil.SeSenao(ResponsavelRetencao = rtPrestador,'0','1');
FieldByName('Descricao').AsString := Descricao;
with Valores do
begin
FieldByName('ValorServicos').AsFloat := ValorServicos;
FieldByName('ValorDeducoes').AsFloat := ValorDeducoes;
FieldByName('ValorPis').AsFloat := ValorPis;
FieldByName('ValorCofins').AsFloat := ValorCofins;
FieldByName('ValorInss').AsFloat := ValorInss;
FieldByName('ValorIr').AsFloat := ValorIr;
FieldByName('ValorCsll').AsFloat := ValorCsll;
// FieldByName('IssRetido').AsString := DFeUtil.SeSenao(IssRetido = stRetencao,'0', DFeUtil.SeSenao(IssRetido = stNormal,'2','3'));
FieldByName('ValorIss').AsFloat := ValorIss;
FieldByName('OutrasRetencoes').AsFloat := OutrasRetencoes;
FieldByName('BaseCalculo').AsFloat := BaseCalculo;
FieldByName('Aliquota').AsFloat := Aliquota;
//Tratando situação do envio da aliquota ser em decimal (2.5 = 0.025) By Theiller 22/04/2014
//if FProvedor in [proThema, proWebISS] then //Opcao1 Validar pelo provedor
if (Aliquota > 0) and (Aliquota < 1) then //Opcao2
FieldByName('Aliquota').AsFloat := Aliquota * 100;
FieldByName('ValorLiquidoNfse').AsFloat := ValorLiquidoNfse;
FieldByName('ValorIssRetido').AsFloat := ValorIssRetido;
FieldByName('DescontoCondicionado').AsFloat := DescontoCondicionado;
FieldByName('DescontoIncondicionado').AsFloat := DescontoIncondicionado;
end;
end;
Post;
end;
end;
Fiz o ajuste validando se possui alíquota e menor que 1 para saber se esta em forma decimal, verificar se por Provedor!