Ir para conteúdo
  • Cadastre-se

Lucas S. Frade

Membros
  • Total de ítens

    4
  • Registro em

  • Última visita

Tudo que Lucas S. Frade postou

  1. No caso pessoal, fiz umas algumas pequenas alterações temporárias, para ficar de acordo com o que informei no tópico: ACBrNFSeXDANFSeRLPadraoNacional.pas
  2. Olá pessoal, tudo bem? Na especificação do Padrão Nacional da NFSe, conforme definido pela Prefeitura, os tributos federais, estaduais e municipais podem ser apresentados tanto em valores (R$) quanto em percentual (%). No entanto, na implementação atual da unit TfrlXDANFSeRLPadraoNacional.pas no ACBr, esses valores estão sendo tratados apenas em valores absolutos (R$). Seria interessante ajustar a implementação para também permitir o tratamento e a exibição dos valores em percentual (%), de acordo com o que é exigido na especificação? procedure TfrlXDANFSeRLPadraoNacional.rlbBanda12_TotaisAproximadosBeforePrint( Sender: TObject; var PrintIt: Boolean); begin inherited; if fpNFSe.Servico.Valores.totTrib.vTotTribFed > 0 then rllTotaisAproxTribFed.Caption := 'R$ ' + FormatFloatBr(fpNFSe.Servico.Valores.totTrib.vTotTribFed) else rllTotaisAproxTribFed.Caption := '-'; if fpNFSe.Servico.Valores.totTrib.vTotTribEst > 0 then rllTotaisAproxTribEst.Caption := 'R$ ' + FormatFloatBr(fpNFSe.Servico.Valores.totTrib.vTotTribEst) else rllTotaisAproxTribEst.Caption := '-'; if fpNFSe.Servico.Valores.totTrib.vTotTribMun > 0 then rllTotaisAproxTribMun.Caption := 'R$ ' + FormatFloatBr(fpNFSe.Servico.Valores.totTrib.vTotTribMun) else rllTotaisAproxTribMun.Caption := '-'; end; Outra observação em relação à mesma rotina diz respeito às informações complementares. Grande parte do procedimento está comentada, e não há nenhum outro local que preencha essas informações, o que pode impactar no preenchimento correto, novamente conforme o que é exigido na especificação. procedure TfrlXDANFSeRLPadraoNacional.rlbBanda13_InformacoesComplementaresBeforePrint( Sender: TObject; var PrintIt: Boolean); begin inherited; rlmDadosAdicionais.Lines.BeginUpdate; rlmDadosAdicionais.Lines.Clear; if fpNFSe.Servico.CodigoNBS <> '' then rlmDadosAdicionais.Lines.Append(ACBrStr('NBS: ') + fpNFSe.Servico.CodigoNBS); { if fpNFSe.Servico.MunicipioIncidencia <> 0 then rlmDadosAdicionais.Lines.Add('Cod/Municipio da incidencia do ISSQN: ' + IntToStr(fpNFSe.Servico.MunicipioIncidencia) + ' / ' + fpNFSe.Servico.xMunicipioIncidencia); if fpDANFSe.OutrasInformacaoesImp <> '' then rlmDadosAdicionais.Lines.Add(StringReplace(fpDANFSe.OutrasInformacaoesImp, FQuebradeLinha, #13#10, [rfReplaceAll])) else if fpNFSe.OutrasInformacoes <> '' then rlmDadosAdicionais.Lines.Add(StringReplace(fpNFSe.OutrasInformacoes, FQuebradeLinha, #13#10, [rfReplaceAll])); if fpNFSe.InformacoesComplementares <> '' then rlmDadosAdicionais.Lines.Add(StringReplace(fpNFSe.InformacoesComplementares, FQuebradeLinha, #13#10, [rfReplaceAll])); } rlmDadosAdicionais.Lines.EndUpdate; rllMsgTeste.Visible := (fpDANFSe.Producao = snNao); rllMsgTeste.Enabled := (fpDANFSe.Producao = snNao); if fpDANFSe.Cancelada or (fpNFSe.NfseCancelamento.DataHora <> 0) or (fpNFSe.SituacaoNfse = snCancelado) or (fpNFSe.StatusRps = srCancelado) then begin rllMsgTeste.Caption := 'NFS-e CANCELADA'; rllMsgTeste.Visible := True; rllMsgTeste.Enabled := True; end; rllMsgTeste.Repaint; // Exibe canhoto // rlbCanhoto.Visible := fpDANFSe.ImprimeCanhoto; end; Obs.: Em anexo, está um print da NFSe impressa pelo provedor.
  3. Em anexo, está a unit contendo a pequena alteração que fiz. ACBrBancoBS2.pas
  4. Bom dia pessoal, Durante o processo de integração com o Banco BS2, ao realizar a geração do arquivo de remessa, identifiquei um comportamento relacionado ao manuseio do campo Nosso Número do título. Ao acompanhar a geração do arquivo, observei que a função responsável por montar o Nosso Número retorna um valor com 10 dígitos, enquanto, conforme o layout CNAB do Banco BS2, esse campo exige 11 dígitos. Como consequência, o registro do título no arquivo de remessa acaba ficando com um caractere a menos no final da linha. Além disso, foi solicitado que o Nosso Número permanecesse dentro da faixa 8.000.000.000 a 9.999.999.999. No entanto, devido à lógica atual de composição do número, durante esse processo alguns títulos acabam ficando fora dessa faixa definida. Analisando a implementação da função, verifiquei que existe um Copy que remove o primeiro dígito do número base, reduzindo-o para 9 dígitos, que posteriormente são concatenados com o dígito verificador, totalizando os 10 dígitos retornados pela função. Diante disso, gostaria de confirmar se a remoção desse primeiro dígito é intencional ou se existe alguma regra específica do layout CNAB ou orientação do banco que justifique esse comportamento, pois não identifiquei essa necessidade na documentação consultada. // unit ACBrBancoBS2; function TACBrBancoBS2.MontarCampoNossoNumero( const ACBrTitulo: TACBrTitulo): string; begin Result:= Copy(ACBrTitulo.NossoNumero, 2, 10) + CalcularDigitoVerificador(ACBrTitulo); end;
×
×
  • 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...