Example #1
0
        public string GerarDetalheRemessaCNAB240(Boleto boleto, ref int numeroRegistro)
        {
            try
            {
                // Segmento P (Obrigatório)
                var detalhe = GerarDetalheSegmentoPRemessaCNAB240(boleto, ref numeroRegistro);

                // Segmento Q (Obrigatório)
                detalhe += Environment.NewLine;
                detalhe += GerarDetalheSegmentoQRemessaCNAB240(boleto, ref numeroRegistro);

                // Segmento R (Opcional)
                var strline = GerarDetalheSegmentoRRemessaCNAB240(boleto, ref numeroRegistro);
                if (!string.IsNullOrWhiteSpace(strline))
                {
                    detalhe += Environment.NewLine;
                    detalhe += strline;
                }
                return(detalhe);
            }
            catch (Exception ex)
            {
                throw BoletoNetCoreException.ErroAoGerarRegistroDetalheDoArquivoRemessa(ex);
            }
        }
Example #2
0
        /// <summary>
        /// Construção padrão para Leitura do Header da Remessa. Implementações da classe não precisam necessariamente fazer override deste método
        /// </summary>
        /// <remarks>
        /// A implementação original conta com a necessidade de implementação dos métodos:
        ///     GerarHeaderRemessaCNAB240 e GerarHeaderLoteRemessaCNAB240 para CNAB240
        ///     GerarHeaderRemessaCNAB400 para CNAB400
        /// </remarks>
        /// <param name="tipoArquivo"></param>
        /// <param name="numeroArquivoRemessa"></param>
        /// <param name="numeroRegistro"></param>
        /// <returns></returns>
        public virtual string GerarHeaderRemessa(TipoArquivo tipoArquivo, int numeroArquivoRemessa, ref int numeroRegistro)
        {
            try
            {
                var header = String.Empty;
                switch (tipoArquivo)
                {
                case TipoArquivo.CNAB240:
                    // Cabeçalho do Arquivo
                    header += ((IBancoCNAB240)this).GerarHeaderRemessaCNAB240(ref numeroArquivoRemessa, ref numeroRegistro);
                    // Cabeçalho do Lote
                    header += Environment.NewLine;
                    header += ((IBancoCNAB240)this).GerarHeaderLoteRemessaCNAB240(ref numeroArquivoRemessa, ref numeroRegistro);
                    break;

                case TipoArquivo.CNAB400:
                    header += ((IBancoCNAB400)this).GerarHeaderRemessaCNAB400(ref numeroArquivoRemessa, ref numeroRegistro);
                    break;

                default:
                    throw new Exception("Tipo de arquivo inexistente.");
                }
                return(header);
            }
            catch (Exception ex)
            {
                throw BoletoNetCoreException.ErroAoGerarRegistroHeaderDoArquivoRemessa(ex);
            }
        }
Example #3
0
        public string GerarDetalheRemessa(TipoArquivo tipoArquivo, Boleto boleto, ref int numeroRegistro)
        {
            try
            {
                string detalhe = Empty, strline = Empty;
                switch (tipoArquivo)
                {
                case TipoArquivo.CNAB400:
                    detalhe += GerarDetalheRemessaCNAB400Registro1(boleto, ref numeroRegistro);
                    strline  = GerarDetalheRemessaCNAB400Registro2(boleto, ref numeroRegistro);
                    if (!IsNullOrWhiteSpace(strline))
                    {
                        detalhe += Environment.NewLine;
                        detalhe += strline;
                    }
                    strline = GerarDetalheRemessaCNAB400Registro5(boleto, ref numeroRegistro);
                    if (!IsNullOrWhiteSpace(strline))
                    {
                        detalhe += Environment.NewLine;
                        detalhe += strline;
                    }
                    break;

                default:
                    throw new Exception("Tipo de arquivo inexistente.");
                }
                return(detalhe);
            }
            catch (Exception ex)
            {
                throw BoletoNetCoreException.ErroAoGerarRegistroDetalheDoArquivoRemessa(ex);
            }
        }
Example #4
0
        public string GerarDetalheRemessa(TipoArquivo tipoArquivo, Boleto boleto, ref int numeroRegistro)
        {
            try
            {
                var detalhe = string.Empty;
                var strline = string.Empty;
                switch (tipoArquivo)
                {
                case TipoArquivo.CNAB400:

                    // Registro 1 - Obrigatório
                    detalhe += GerarDetalheRemessaCNAB400Registro1(boleto, ref numeroRegistro);

                    // Registro 1 Adicional - Registro Opcional
                    strline = GerarDetalheRemessaCNAB400Registro1Mensagem(boleto, ref numeroRegistro);
                    if (!string.IsNullOrWhiteSpace(strline))
                    {
                        detalhe += Environment.NewLine;
                        detalhe += strline;
                    }

                    break;

                default:
                    throw new Exception("Tipo de arquivo inexistente.");
                }
                return(detalhe);
            }
            catch (Exception ex)
            {
                throw BoletoNetCoreException.ErroAoGerarRegistroDetalheDoArquivoRemessa(ex);
            }
        }
Example #5
0
        public string GerarTrailerRemessa(TipoArquivo tipoArquivo, int numeroArquivoRemessa,
                                          ref int numeroRegistroGeral, decimal valorBoletoGeral,
                                          int numeroRegistroCobrancaSimples, decimal valorCobrancaSimples,
                                          int numeroRegistroCobrancaVinculada, decimal valorCobrancaVinculada,
                                          int numeroRegistroCobrancaCaucionada, decimal valorCobrancaCaucionada,
                                          int numeroRegistroCobrancaDescontada, decimal valorCobrancaDescontada)
        {
            try
            {
                var trailer = string.Empty;
                switch (tipoArquivo)
                {
                case TipoArquivo.CNAB400:
                    trailer += GerarTrailerRemessaCNAB400(ref numeroRegistroGeral, valorBoletoGeral);
                    break;

                default:
                    throw new Exception("Tipo de arquivo inexistente.");
                }
                return(trailer);
            }
            catch (Exception ex)
            {
                throw BoletoNetCoreException.ErroAoGerrarRegistroTrailerDoArquivoRemessa(ex);
            }
        }
Example #6
0
        public string GerarHeaderRemessa(TipoArquivo tipoArquivo, int numeroArquivoRemessa, ref int numeroRegistroGeral)
        {
            try
            {
                var header = Empty;
                switch (tipoArquivo)
                {
                case TipoArquivo.CNAB240:
                    // Cabeçalho do Arquivo
                    header += GerarHeaderRemessaCNAB240(numeroArquivoRemessa, ref numeroRegistroGeral);
                    // Cabeçalho do Lote
                    header += Environment.NewLine;
                    header += GerarHeaderLoteRemessaCNAB240(numeroArquivoRemessa, ref numeroRegistroGeral);
                    break;

                default:
                    throw new Exception("Santander - Header - Tipo de arquivo inexistente.");
                }
                return(header);
            }
            catch (Exception ex)
            {
                throw BoletoNetCoreException.ErroAoGerarRegistroHeaderDoArquivoRemessa(ex);
            }
        }
Example #7
0
        public override string FormatarNomeArquivoRemessa(int sequencial)
        {
            var agora = DateTime.Now;

            var mes = agora.Month.ToString();

            if (mes == "10")
            {
                mes = "O";
            }
            if (mes == "11")
            {
                mes = "N";
            }
            if (mes == "12")
            {
                mes = "D";
            }
            var dia = agora.Day.ToString().PadLeft(2, '0');

            if (sequencial < 0 || sequencial > 10)
            {
                throw BoletoNetCoreException.NumeroSequencialInvalido(sequencial);
            }

            if (sequencial < 1) // se 0 ou 1 é o primeiro arquivo do dia
            {
                return(string.Format("{0}{1}{2}.{3}", Beneficiario.Codigo, mes, dia, "CRM"));
            }

            //número máximos de arquivos enviados no dia são 10
            return(string.Format("{0}{1}{2}.{3}", Beneficiario.Codigo, mes, dia, $"RM{(sequencial == 10 ? 0 : sequencial)}"));
        }
Example #8
0
        public virtual string GerarTrailerRemessa(TipoArquivo tipoArquivo, int numeroArquivoRemessa,
                                                  ref int numeroRegistroGeral, decimal valorBoletoGeral,
                                                  int numeroRegistroCobrancaSimples, decimal valorCobrancaSimples,
                                                  int numeroRegistroCobrancaVinculada, decimal valorCobrancaVinculada,
                                                  int numeroRegistroCobrancaCaucionada, decimal valorCobrancaCaucionada,
                                                  int numeroRegistroCobrancaDescontada, decimal valorCobrancaDescontada)
        {
            try
            {
                var trailer = String.Empty;
                switch (tipoArquivo)
                {
                case TipoArquivo.CNAB240:
                    return(((IBancoCNAB240)this).GerarTrailerLoteRemessaCNAB240(
                               ref numeroArquivoRemessa, numeroRegistroGeral,
                               numeroRegistroCobrancaSimples, valorCobrancaSimples,
                               numeroRegistroCobrancaVinculada, valorCobrancaVinculada,
                               numeroRegistroCobrancaCaucionada, valorCobrancaCaucionada,
                               numeroRegistroCobrancaDescontada, valorCobrancaDescontada) + Environment.NewLine
                           + ((IBancoCNAB240)this).GerarTrailerRemessaCNAB240(
                               numeroRegistroGeral, valorBoletoGeral,
                               numeroRegistroCobrancaSimples, valorCobrancaSimples,
                               numeroRegistroCobrancaVinculada, valorCobrancaVinculada,
                               numeroRegistroCobrancaCaucionada, valorCobrancaCaucionada,
                               numeroRegistroCobrancaDescontada, valorCobrancaDescontada));

                case TipoArquivo.CNAB400:
                    return(((IBancoCNAB400)this).GerarTrailerRemessaCNAB400(
                               numeroRegistroGeral, valorBoletoGeral,
                               numeroRegistroCobrancaSimples, valorCobrancaSimples,
                               numeroRegistroCobrancaVinculada, valorCobrancaVinculada,
                               numeroRegistroCobrancaCaucionada, valorCobrancaCaucionada,
                               numeroRegistroCobrancaDescontada, valorCobrancaDescontada));

                case TipoArquivo.CNAB150:
                    return(((IBancoCNAB150)this).GerarTrailerLoteRemessaCNAB150(
                               ref numeroArquivoRemessa, numeroRegistroGeral, valorBoletoGeral,
                               numeroRegistroCobrancaSimples, valorCobrancaSimples,
                               numeroRegistroCobrancaVinculada, valorCobrancaVinculada,
                               numeroRegistroCobrancaCaucionada, valorCobrancaCaucionada,
                               numeroRegistroCobrancaDescontada, valorCobrancaDescontada) + Environment.NewLine
                           + ((IBancoCNAB150)this).GerarTrailerRemessaCNAB150(
                               numeroRegistroGeral, valorBoletoGeral,
                               numeroRegistroCobrancaSimples, valorCobrancaSimples,
                               numeroRegistroCobrancaVinculada, valorCobrancaVinculada,
                               numeroRegistroCobrancaCaucionada, valorCobrancaCaucionada,
                               numeroRegistroCobrancaDescontada, valorCobrancaDescontada));

                default:
                    throw new Exception("Tipo de arquivo inexistente.");
                }
            }
            catch (Exception ex)
            {
                throw BoletoNetCoreException.ErroAoGerrarRegistroTrailerDoArquivoRemessa(ex);
            }
        }
Example #9
0
        public void FormataBeneficiario()
        {
            ContaBancaria contaBancaria = Beneficiario.ContaBancaria;

            if (!CarteiraFactory <BancoCecred> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }
            contaBancaria.FormatarDados("Pagar preferencialmente nas cooperativas do Sistema Ailos.", "", "", 7);
            Beneficiario.CodigoFormatado = contaBancaria.Agencia + "-" + contaBancaria.DigitoAgencia + "    " + Beneficiario.ContaBancaria.Conta + "-" + Beneficiario.ContaBancaria.DigitoConta;
        }
Example #10
0
        public void FormataCedente()
        {
            var contaBancaria = Cedente.ContaBancaria;

            if (!CarteiraFactory <BancoItau> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }

            contaBancaria.FormatarDados("ATÉ O VENCIMENTO EM QUALQUER BANCO. APÓS O VENCIMENTO SOMENTE NO ITAÚ.", "", "", 5);

            Cedente.CodigoFormatado = $"{contaBancaria.Agencia} / {contaBancaria.Conta}-{contaBancaria.DigitoConta}";
        }
Example #11
0
        public void FormatarDados(string localPagamento, string mensagemFixaTopoBoleto, int digitosConta)
        {
            var agencia = Agencia;

            Agencia = agencia.Length <= 4 ? agencia.PadLeft(4, '0') : throw BoletoNetCoreException.AgenciaInvalida(agencia, 4);

            var conta = Conta;

            Conta = conta.Length <= digitosConta?conta.PadLeft(digitosConta, '0') : throw BoletoNetCoreException.ContaInvalida(conta, digitosConta);

            LocalPagamento         = localPagamento;
            MensagemFixaTopoBoleto = mensagemFixaTopoBoleto;
        }
Example #12
0
        public void FormataBeneficiario()
        {
            var contaBancaria = Beneficiario.ContaBancaria;

            if (!CarteiraFactory <BancoSafra> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }

            contaBancaria.FormatarDados("ATÉ O VENCIMENTO EM QUALQUER BANCO. APÓS O VENCIMENTO SOMENTE NO SAFRA.", "", "", 6);

            Beneficiario.CodigoFormatado = $"{contaBancaria.Agencia}-{contaBancaria.DigitoAgencia} / {contaBancaria.Conta}-{contaBancaria.DigitoConta}";
        }
Example #13
0
        public void FormataBeneficiario()
        {
            var contaBancaria = Beneficiario.ContaBancaria;

            if (!CarteiraFactory <BancoSicredi> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }

            contaBancaria.FormatarDados("PAGÁVEL EM QUALQUER BANCO ATÉ O VENCIMENTO.", "", "", 9);

            Beneficiario.CodigoFormatado = $"{contaBancaria.Agencia}.{contaBancaria.OperacaoConta}.{Beneficiario.Codigo}";
        }
Example #14
0
        public void FormataCedente()
        {
            var contaBancaria = Cedente.ContaBancaria;

            if (!CarteiraFactory <BancoBanrisul> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }

            contaBancaria.FormatarDados("PAGÁVEL EM QUALQUER BANCO ATÉ O VENCIMENTO.", "SAC BANRISUL: 0800 646 1515<br>OUVIDORIA BANRISUL: 0800 644 2200", 8);

            Cedente.CodigoFormatado = $"{contaBancaria.Agencia} {contaBancaria.Conta}{contaBancaria.DigitoConta}";
        }
Example #15
0
        public string GerarDetalheRemessa(TipoArquivo tipoArquivo, Boleto boleto, ref int numeroRegistro)
        {
            try
            {
                var detalhe = Empty;
                var strline = "";
                //base.GerarDetalheRemessa(boleto, numeroRegistro, tipoArquivo);
                switch (tipoArquivo)
                {
                case TipoArquivo.CNAB240:
                    // Segmento P (Obrigatório)
                    detalhe += GerarDetalheSegmentoPRemessaCNAB240(boleto, ref numeroRegistro);

                    // Segmento Q (Obrigatório)
                    detalhe += Environment.NewLine;
                    detalhe += GerarDetalheSegmentoQRemessaCNAB240(boleto, ref numeroRegistro);

                    // Segmento R (Opcional)
                    strline = GerarDetalheSegmentoRRemessaCNAB240(boleto, ref numeroRegistro);
                    if (!IsNullOrWhiteSpace(strline))
                    {
                        detalhe += Environment.NewLine;
                        detalhe += strline;
                    }

                    // Segmento S (Opcional)
                    strline = GerarDetalheSegmentoSRemessaCNAB240(boleto, ref numeroRegistro);
                    if (!IsNullOrWhiteSpace(strline))
                    {
                        detalhe += Environment.NewLine;
                        detalhe += strline;
                    }

                    break;

                default:
                    throw new Exception("Santander - Detalhe - Tipo de arquivo inexistente.");
                }

                return(detalhe);
            }
            catch (Exception ex)
            {
                throw BoletoNetCoreException.ErroAoGerarRegistroDetalheDoArquivoRemessa(ex);
            }
        }
Example #16
0
        public void FormataCedente()
        {
            var contaBancaria = Cedente.ContaBancaria;

            if (!CarteiraFactory <BancoSantander> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }

            contaBancaria.FormatarDados("ATÉ O VENCIMENTO EM QUALQUER BANCO. APÓS O VENCIMENTO SOMENTE NO SANTANDER.", "", digitosConta: 9);

            var codigoCedente = Cedente.Codigo;

            Cedente.Codigo = codigoCedente.Length <= 7 ? codigoCedente.PadLeft(7, '0') : throw BoletoNetCoreException.CodigoCedenteInvalido(codigoCedente, 7);

            Cedente.CodigoFormatado = $"{contaBancaria.Agencia} / {Cedente.Codigo}";
        }
Example #17
0
        public void FormataBeneficiario()
        {
            var contaBancaria = Beneficiario.ContaBancaria;

            if (!CarteiraFactory <BancoSantander> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }

            contaBancaria.FormatarDados("PAGÁVEL PREFERENCIALMENTE NO BANCO SANTANDER.", "", "", digitosConta: 9);

            var codigoBeneficiario = Beneficiario.Codigo;

            Beneficiario.Codigo = codigoBeneficiario.Length <= 7 ? codigoBeneficiario.PadLeft(7, '0') : throw BoletoNetCoreException.CodigoBeneficiarioInvalido(codigoBeneficiario, 7);

            Beneficiario.CodigoFormatado = $"{contaBancaria.Agencia} / {Beneficiario.Codigo}";
        }
Example #18
0
        public void FormataBeneficiario()
        {
            var contaBancaria = Beneficiario.ContaBancaria;

            if (!CarteiraFactory <BancoBradesco> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }

            contaBancaria.FormatarDados("PAGÁVEL PREFERENCIALMENTE NA REDE BRADESCO OU BRADESCO EXPRESSO.", "", "", 7);

            var codigoBeneficiario = Beneficiario.Codigo;

            Beneficiario.Codigo = codigoBeneficiario.Length <= 20 ? codigoBeneficiario.PadLeft(20, '0') : throw BoletoNetCoreException.CodigoBeneficiarioInvalido(codigoBeneficiario, 20);

            Beneficiario.CodigoFormatado = $"{contaBancaria.Agencia}-{contaBancaria.DigitoAgencia} / {contaBancaria.Conta}-{contaBancaria.DigitoConta}";
        }
Example #19
0
        public void FormataBeneficiario()
        {
            var contaBancaria = Beneficiario.ContaBancaria;

            if (!CarteiraFactory <BancoBrasil> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }

            contaBancaria.FormatarDados("PAGÁVEL EM QUALQUER BANCO.", "", "", 8);

            if (Beneficiario.Codigo.Length != 7)
            {
                throw BoletoNetCoreException.CodigoBeneficiarioInvalido(Beneficiario.Codigo, 7);
            }

            Beneficiario.CodigoFormatado = $"{contaBancaria.Agencia}{(string.IsNullOrEmpty(contaBancaria.DigitoAgencia) ? "" : "-" + contaBancaria.DigitoAgencia)} / {contaBancaria.Conta}{(string.IsNullOrEmpty(contaBancaria.DigitoConta) ? "" : "-" + contaBancaria.DigitoConta)}";
        }
Example #20
0
        public void FormataBeneficiario()
        {
            var contaBancaria = Beneficiario.ContaBancaria;

            if (!CarteiraFactory <BancoSicredi> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }

            string localPagamento = "PAGÁVEL EM QUALQUER BANCO ATÉ O VENCIMENTO.";

            if (!string.IsNullOrEmpty(contaBancaria.LocalPagamento) && !contaBancaria.LocalPagamento.Equals("PAGÁVEL EM QUALQUER BANCO."))
            {
                localPagamento = contaBancaria.LocalPagamento;
            }

            contaBancaria.FormatarDados(localPagamento, "", "", 9);

            Beneficiario.CodigoFormatado = $"{contaBancaria.Agencia}.{contaBancaria.OperacaoConta}.{Beneficiario.Codigo}";
        }
Example #21
0
        public virtual string GerarDetalheRemessa(TipoArquivo tipoArquivo, Boleto boleto, ref int numeroRegistro)
        {
            try
            {
                switch (tipoArquivo)
                {
                case TipoArquivo.CNAB240:
                    return(((IBancoCNAB240)this)?.GerarDetalheRemessaCNAB240(boleto, ref numeroRegistro));

                case TipoArquivo.CNAB400:
                    return(((IBancoCNAB400)this)?.GerarDetalheRemessaCNAB400(boleto, ref numeroRegistro));

                default:
                    throw new Exception("Tipo de arquivo inexistente.");
                }
            }
            catch (Exception ex)
            {
                throw BoletoNetCoreException.ErroAoGerarRegistroDetalheDoArquivoRemessa(ex);
            }
        }
Example #22
0
        public string GerarHeaderRemessa(TipoArquivo tipoArquivo, int numeroArquivoRemessa, ref int numeroRegistroGeral)
        {
            try
            {
                var header = string.Empty;
                switch (tipoArquivo)
                {
                case TipoArquivo.CNAB400:
                    header += GerarHeaderRemessaCNAB400(numeroArquivoRemessa, ref numeroRegistroGeral);
                    break;

                default:
                    throw new Exception("Header - Tipo de arquivo inexistente.");
                }
                return(header);
            }
            catch (Exception ex)
            {
                throw BoletoNetCoreException.ErroAoGerarRegistroHeaderDoArquivoRemessa(ex);
            }
        }
        public string GerarDetalheRemessaCNAB400(Boleto boleto, ref int numeroRegistro)
        {
            try
            {
                // Registro 7 - Obrigatório
                string detalhe = GerarDetalheRemessaCNAB400Registro7(boleto, ref numeroRegistro);

                // Registro 5 - Registro Opcional - Multa
                var strline = GerarDetalheRemessaCNAB400Registro5Multa(boleto, ref numeroRegistro);
                if (!string.IsNullOrWhiteSpace(strline))
                {
                    detalhe += Environment.NewLine;
                    detalhe += strline;
                }
                return(detalhe);
            }
            catch (Exception ex)
            {
                throw BoletoNetCoreException.ErroAoGerarRegistroDetalheDoArquivoRemessa(ex);
            }
        }
        public void FormataBeneficiario()
        {
            var contaBancaria = Beneficiario.ContaBancaria;

            if (!CarteiraFactory <BancoCaixa> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }

            contaBancaria.FormatarDados("PREFERENCIALMENTE NAS CASAS LOTERICAS ATE O VALOR LIMITE", "", "SAC CAIXA: 0800 726 0101 (informações, reclamações, sugestões e elogios)<br>Para pessoas com deficiência auditiva ou de fala: 0800 726 2492<br>Ouvidoria: 0800 725 7474<br>caixa.gov.br<br>", 6);

            var codigoBeneficiario = Beneficiario.Codigo;

            if (codigoBeneficiario.Length <= 6)
            {
                Beneficiario.Codigo = codigoBeneficiario.PadLeft(6, '0');

                if (Beneficiario.CodigoDV == Empty)
                {
                    throw new Exception($"Dígito do código do beneficiário ({codigoBeneficiario}) não foi informado.");
                }

                Beneficiario.CodigoFormatado = $"{contaBancaria.Agencia} / {codigoBeneficiario}-{Beneficiario.CodigoDV}";
            }
            else if (codigoBeneficiario.Length == 7)
            {
                Beneficiario.Codigo = codigoBeneficiario;

                if (Beneficiario.CodigoDV != Empty)
                {
                    throw new Exception($"Dígito do código do beneficiário ({codigoBeneficiario}) não deve ser informado quando codigo beneficiario tiver 7 dígitos.");
                }

                Beneficiario.CodigoFormatado = $"{contaBancaria.Agencia} / {codigoBeneficiario}";
            }
            else
            {
                throw BoletoNetCoreException.CodigoBeneficiarioInvalido(codigoBeneficiario, "6 ou 7");
            }
        }
Example #25
0
        public void FormataBeneficiario()
        {
            var contaBancaria = Beneficiario.ContaBancaria;

            if (!CarteiraFactory <BancoSicoob> .CarteiraEstaImplementada(contaBancaria.CarteiraComVariacaoPadrao))
            {
                throw BoletoNetCoreException.CarteiraNaoImplementada(contaBancaria.CarteiraComVariacaoPadrao);
            }

            var codigoBeneficiario = Beneficiario.Codigo;

            if (Beneficiario.CodigoDV == Empty)
            {
                throw new Exception($"Dígito do código do beneficiário ({codigoBeneficiario}) não foi informado.");
            }

            contaBancaria.FormatarDados("PAGÁVEL EM QUALQUER BANCO ATÉ A DATA DE VENCIMENTO.", "", "", 8);

            Beneficiario.Codigo = codigoBeneficiario.Length <= 6 ? codigoBeneficiario.PadLeft(6, '0'): throw BoletoNetCoreException.CodigoBeneficiarioInvalido(codigoBeneficiario, 6);

            Beneficiario.CodigoFormatado = $"{contaBancaria.Agencia} / {codigoBeneficiario}-{Beneficiario.CodigoDV}";
        }
Example #26
0
 internal static ICarteira <T> ObterCarteira(string identificacao)
 => Carteiras.ContainsKey(identificacao) ? Carteiras[identificacao].Value : throw BoletoNetCoreException.CarteiraNaoImplementada(identificacao);