Ir para conteúdo
  • Cadastre-se

Lucas S. Frade

Membros
  • Total de ítens

    4
  • Registro em

  • Última visita

Lucas S. Frade's Achievements

Newbie

Newbie (1/14)

  • One Month Later
  • Week One Done
  • First Post
  • Conversation Starter

Recent Badges

0

Reputação

  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...
The popup will be closed in 10 segundos...