示例#1
0
        private static BoletoBr.Boleto TransformaDeFormatoBoletoParaFormatoBoletoBr(CarteiraBoleto carteiraBoleto,
                                                                                    SacadoBoleto sacado, decimal valor, DateTime dataVencimento, string numeroDocumento)
        {
            var vencimento  = dataVencimento;
            var valorBoleto = valor;
            var nroConvenio = carteiraBoleto.NumeroConvenio;
            var identificadorInternoDocumento = numeroDocumento;

            #region Dados Cedente

            var codigoCedente    = carteiraBoleto.CodigoCedente.BoletoBrToStringSafe();
            var digitoCedente    = carteiraBoleto.DigitoCodigoCedente.BoletoBrToInt();
            var codTransmissao   = carteiraBoleto.CodigoTransmissao.BoletoBrToStringSafe();
            var cpfcnpjcedente   = carteiraBoleto.CpfCnpjCedente.BoletoBrToStringSafe();
            var descricaocedente = carteiraBoleto.NomeCedente.BoletoBrToStringSafe();

            var agencia       = carteiraBoleto.NumeroAgencia;
            var digitoAgencia = carteiraBoleto.DigitoAgencia;
            var conta         = carteiraBoleto.NumeroConta;
            var digitoConta   = carteiraBoleto.DigitoConta;

            var enderecoCedente       = carteiraBoleto.EnderecoCedente;
            var bairroCedente         = carteiraBoleto.BairroCedente;
            var complementoEndCedente = carteiraBoleto.ComplementoCedente;
            var numeroEnderecoCedente = carteiraBoleto.NumeroCedente;
            var cepCedente            = carteiraBoleto.CepCedente;
            var cidadeCedente         = carteiraBoleto.CidadeCedente;
            var ufEnderecoCedente     = carteiraBoleto.UfCedente;

            var contaBancariaCedente = new BoletoBr.ContaBancaria(agencia, digitoAgencia, conta, digitoConta);
            var cedente = new BoletoBr.Cedente(codigoCedente, nroConvenio, digitoCedente, cpfcnpjcedente,
                                               descricaocedente, contaBancariaCedente, new Endereco()
            {
                Bairro      = bairroCedente,
                Cep         = cepCedente,
                Cidade      = cidadeCedente,
                Complemento = complementoEndCedente,
                Logradouro  = enderecoCedente,
                Numero      = numeroEnderecoCedente,
                SiglaUf     = ufEnderecoCedente,
            });

            #endregion

            var codBanco = carteiraBoleto.CodigoBanco.PadLeft(3, '0');

            var boleto   = new BoletoBr.Boleto();
            var objBanco = BoletoBr.Fabricas.BancoFactory.ObterBanco(codBanco);
            boleto.TipoModalidade    = "";
            boleto.Moeda             = objBanco.MoedaBanco;
            boleto.BancoBoleto       = objBanco;
            boleto.Aceite            = "N";
            boleto.DataProcessamento = DateTime.Now;
            boleto.CarteiraCobranca  = new CarteiraCobranca();

            #region Dados Carteira

            var numeroCarteira   = carteiraBoleto.NumeroCarteira;
            var variacaoCarteira = "";

            #region Variação Carteiras BB

            /* Banco do Brasil tratar variação carteira (Compor variação sempre com o numero da carteira separado por / ou -) */
            if (codBanco == "001")
            {
                if (numeroCarteira.Contains("/"))
                {
                    var carteiraVariacao = numeroCarteira.Split(Convert.ToChar("/"));

                    numeroCarteira   = carteiraVariacao[0];
                    variacaoCarteira = carteiraVariacao[1];
                }
                else if (numeroCarteira.Contains("-"))
                {
                    var carteiraVariacao = numeroCarteira.Split(Convert.ToChar("-"));

                    numeroCarteira   = carteiraVariacao[0];
                    variacaoCarteira = carteiraVariacao[1];
                }
            }

            #endregion

            boleto.CodigoDeTransmissao = codTransmissao;

            boleto.CarteiraCobranca.Codigo           = numeroCarteira;
            boleto.CarteiraCobranca.Variacao         = variacaoCarteira;
            boleto.CarteiraCobranca.Descricao        = carteiraBoleto.DescricaoCarteira;
            boleto.CarteiraCobranca.BancoEmiteBoleto = carteiraBoleto.BancoGeraBoleto;
            boleto.CarteiraCobranca.Tipo             = carteiraBoleto.TipoArquivoRemessa;

            if (string.IsNullOrEmpty(descricaocedente))
            {
                throw new Exception(
                          $"Não foi informado o nome do beneficário na carteira de cobrança: {boleto.CarteiraCobranca.Descricao}.");
            }

            #endregion

            #region Instruções/Mensagem

            var existeMensagem1 = string.IsNullOrEmpty(carteiraBoleto.Instrucao1) == false;
            var existeMensagem2 = string.IsNullOrEmpty(carteiraBoleto.Instrucao2) == false;
            var existeMensagem3 = string.IsNullOrEmpty(carteiraBoleto.Instrucao3) == false;
            var existeMensagem4 = string.IsNullOrEmpty(carteiraBoleto.Instrucao4) == false;
            var existeMensagem5 = string.IsNullOrEmpty(carteiraBoleto.Instrucao5) == false;
            var existeMensagem6 = string.IsNullOrEmpty(carteiraBoleto.Instrucao6) == false;

            if (existeMensagem1)
            {
                var instrucaoAdd = new InstrucaoCustomizada(carteiraBoleto.Instrucao1);
                boleto.InstrucoesDoBoleto.Add(instrucaoAdd);
            }
            if (existeMensagem2)
            {
                var instrucaoAdd = new InstrucaoCustomizada(carteiraBoleto.Instrucao2);
                boleto.InstrucoesDoBoleto.Add(instrucaoAdd);
            }
            if (existeMensagem3)
            {
                var instrucaoAdd = new InstrucaoCustomizada(carteiraBoleto.Instrucao3);
                boleto.InstrucoesDoBoleto.Add(instrucaoAdd);
            }
            if (existeMensagem4)
            {
                var instrucaoAdd = new InstrucaoCustomizada(carteiraBoleto.Instrucao4);
                boleto.InstrucoesDoBoleto.Add(instrucaoAdd);
            }
            if (existeMensagem5)
            {
                var instrucaoAdd = new InstrucaoCustomizada(carteiraBoleto.Instrucao5);
                boleto.InstrucoesDoBoleto.Add(instrucaoAdd);
            }
            if (existeMensagem6)
            {
                var instrucaoAdd = new InstrucaoCustomizada(carteiraBoleto.Instrucao6);
                boleto.InstrucoesDoBoleto.Add(instrucaoAdd);
            }

            #endregion

            #region Dados Sacado

            var cpfcnpjSacado = sacado.CpfCnpj;
            var nomeSacado    = sacado.Nome;

            boleto.SacadoBoleto = new BoletoBr.Sacado(nomeSacado, cpfcnpjSacado,
                                                      TransformaEnderecoParaEnderecoBoletoBr(sacado));

            #endregion

            /* Ajuste */
            boleto.LocalPagamento = boleto.BancoBoleto.LocalDePagamento;
            boleto.DataVencimento = vencimento;
            boleto.CedenteBoleto  = cedente;

            // Padronizado para DM - Duplicata Mercantil
            boleto.Especie = codBanco == "399"
                ? new EspecieDocumento(02, "Duplicata Mercantil", "PD")
                : new EspecieDocumento(02, "Duplicata Mercantil", "DM");
            boleto.CodigoOcorrenciaRemessa = objBanco.ObtemCodigoOcorrencia(EnumCodigoOcorrenciaRemessa.Registro, 0,
                                                                            DateTime.Now);

            if (boleto.DataDocumento <= DateTime.MinValue)
            {
                boleto.DataDocumento = DateTime.Now;
            }

            boleto.NumeroDocumento            = identificadorInternoDocumento;
            boleto.IdentificadorInternoBoleto = identificadorInternoDocumento;

            boleto.ValorBoleto           = valorBoleto;
            boleto.PercentualJurosMora   = carteiraBoleto.ValorJuros;
            boleto.InformacoesAdicionais = new List <InformacoesAdicionais>();

            objBanco.FormatarBoleto(boleto);

            return(boleto);
        }
示例#2
0
        public void TestGerarRemessaPagamento()
        {
            var contaBancariaCedente = new ContaBancaria("3249", "2", "7341", "5");
            var empresaPagadora      = new Cedente("999999", "123456", 0, "99.999.999/9999-99", "Razão Social X", contaBancariaCedente, null);

            empresaPagadora.EnderecoCedente = new Endereco()
            {
                Bairro      = "Jardins",
                Cep         = "75690000",
                Cidade      = "Goiabalândia",
                Complemento = "EDF EXECUTIVO",
                Logradouro  = "Rua x",
                Numero      = "25",
                SiglaUf     = "GO",
            };

            var objEndereco = new Endereco()
            {
                Bairro      = "Trenzim",
                Cep         = "75690000",
                Cidade      = "Mangalandia",
                Complemento = "Galho esquerdo",
                Logradouro  = "Rua 3",
                Numero      = "5",
                SiglaUf     = "GO",
            };
            var contaBancariaFavorecido = new BoletoBr.ContaBancaria("4343", "0", "35432", "2");
            var favorecido = new BoletoBr.Sacado("012.365.489-01", "1", objEndereco, contaBancariaFavorecido);

            favorecido.Nome = "RAFAEL TAVEIRA";

            var bancoEmpresa    = BancoFactory.ObterBanco("756", "0");
            var bancoFavorecido = BancoFactory.ObterBanco("237", "");

            var pagamento = new BoletoBr.Pagamento()
            {
                BancoEmpresa               = bancoEmpresa,
                BancoFavorecido            = bancoFavorecido,
                CodigoBanco                = bancoEmpresa.CodigoBanco,
                CodigoBancoFavorecido      = bancoFavorecido.CodigoBanco,
                CodigoCamaraCentralizadora = "018",
                CodigoFinalidadeDoc        = "",
                CodigoFinalidadeTed        = "5",
                FinalidadePagamento        = "CC",
                DataVencimento             = new DateTime(2021, 4, 21),
                Empresa           = empresaPagadora,
                Favorecido        = favorecido,
                ValorPagamento    = 5M,
                ValorDesconto     = 0,
                ValorJurosMora    = 0,
                ValorMulta        = 0,
                CodigoConvenio    = "7980171",
                SeuNumero         = "1015",
                TipoServico       = "0",
                FormaDePagamento  = "01",
                FormaDeLancamento = "03",

                ValorTitulo = 5M,
                CodBarras   = "24691859100000299845004110028796200000000150"
            };

            var remessa = new RemessaCnab240
            {
                Header = new HeaderRemessaCnab240(pagamento, 1)
            };

            var loteRemessa = new LoteRemessaCnab240
            {
                HeaderLote  = new HeaderLoteRemessaCnab240(pagamento, 1),
                TrailerLote = new TrailerLoteRemessaCnab240(4)
            };

            remessa.Trailer = new TrailerRemessaCnab240(1, 6);

            var escritor             = EscritorArquivoRemessaFactory.ObterEscritorRemessaPagamento(remessa);
            var listaBoletoBrRemessa = new List <Pagamento>()
            {
                pagamento
            };
            var fabricaRemessa = new RemessaFactory();
            var remessaPronta  = fabricaRemessa.GerarRemessa(remessa.Header, loteRemessa.HeaderLote, listaBoletoBrRemessa, loteRemessa.TrailerLote, remessa.Trailer);
            var linhasEscrever = escritor.EscreverTexto(remessaPronta);


            StringBuilder sb = new StringBuilder();

            foreach (var linha in linhasEscrever)
            {
                sb.AppendLine(linha);
            }
        }
示例#3
0
        private static BoletoBr.Pagamento TransformaDeFormatoPagamentoParaFormatoBoletoBr(CarteiraBoleto carteiraBoleto,
                                                                                          SacadoBoleto sacado, decimal valor, DateTime dataVencimento, string numeroDocumento)
        {
            var vencimento     = dataVencimento;
            var valorPagamento = valor;
            var nroConvenio    = carteiraBoleto.NumeroConvenio;
            var identificadorInternoDocumento = numeroDocumento;

            #region Dados Cedente

            var codigoCedente    = carteiraBoleto.CodigoCedente.BoletoBrToStringSafe();
            var digitoCedente    = carteiraBoleto.DigitoCodigoCedente.BoletoBrToInt();
            var codTransmissao   = carteiraBoleto.CodigoTransmissao.BoletoBrToStringSafe();
            var cpfcnpjcedente   = carteiraBoleto.CpfCnpjCedente.BoletoBrToStringSafe();
            var descricaocedente = carteiraBoleto.NomeCedente.BoletoBrToStringSafe();

            var agencia       = carteiraBoleto.NumeroAgencia;
            var digitoAgencia = carteiraBoleto.DigitoAgencia;
            var conta         = carteiraBoleto.NumeroConta;
            var digitoConta   = carteiraBoleto.DigitoConta;

            var enderecoCedente       = carteiraBoleto.EnderecoCedente;
            var bairroCedente         = carteiraBoleto.BairroCedente;
            var complementoEndCedente = carteiraBoleto.ComplementoCedente;
            var numeroEnderecoCedente = carteiraBoleto.NumeroCedente;
            var cepCedente            = carteiraBoleto.CepCedente;
            var cidadeCedente         = carteiraBoleto.CidadeCedente;
            var ufEnderecoCedente     = carteiraBoleto.UfCedente;

            var contaBancariaCedente = new BoletoBr.ContaBancaria(agencia, digitoAgencia, conta, digitoConta);
            var cedente = new BoletoBr.Cedente(codigoCedente, nroConvenio, digitoCedente, cpfcnpjcedente,
                                               descricaocedente, contaBancariaCedente, new Endereco()
            {
                Bairro      = bairroCedente,
                Cep         = cepCedente,
                Cidade      = cidadeCedente,
                Complemento = complementoEndCedente,
                Logradouro  = enderecoCedente,
                Numero      = numeroEnderecoCedente,
                SiglaUf     = ufEnderecoCedente,
            });

            #endregion

            var codBanco = carteiraBoleto.CodigoBanco.PadLeft(3, '0');

            var pagamento = new BoletoBr.Pagamento();
            var objBanco  = BoletoBr.Fabricas.BancoFactory.ObterBanco(codBanco);

            #region Dados Sacado

            var cpfcnpjSacado = sacado.CpfCnpj;
            var nomeSacado    = sacado.Nome;

            pagamento.Favorecido = new BoletoBr.Sacado(nomeSacado, cpfcnpjSacado,
                                                       TransformaEnderecoParaEnderecoBoletoBr(sacado));

            #endregion

            /* Ajuste */
            pagamento.DataVencimento = vencimento;
            pagamento.Empresa        = cedente;

            pagamento.ValorPagamento = valorPagamento;
            pagamento.ValorJurosMora = carteiraBoleto.ValorJuros;
            pagamento.ValorMulta     = carteiraBoleto.ValorMulta;

            return(pagamento);
        }