/// <summary>
        /// Metodo para ler e processar o arquivo de retorno
        /// </summary>
        /// <param name="b"><see cref="Model.Banco"/> vinculado ao arquivo</param>
        /// <param name="s">stream do arquivo a ser lido</param>
        /// <param name="tipo">informa o tipo do cnab a ser lido</param>
        /// <returns></returns>
        public bool lerArquivoRetorno(Model.Banco b, Stream s, TipoArquivo tipo)
        {
            try
            {
                IArquivoRetorno cnab  = null;
                var             banco = new BoletoNet.Banco(b.Numero);

                switch (tipo)
                {
                case TipoArquivo.CNAB400:
                    cnab = new ArquivoRetornoCNAB400();
                    cnab.LerArquivoRetorno(banco, s);
                    return(salvarArquivo400(b, (ArquivoRetornoCNAB400)cnab, s));

                    break;

                case TipoArquivo.CNAB240:
                    cnab = new ArquivoRetornoCNAB240();
                    cnab.LerArquivoRetorno(banco, s);
                    return(salvarArquivo240(b, (ArquivoRetornoCNAB240)cnab));

                    break;

                default:
                    break;
                }
                return(false);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao ler o arquivo de retorno.", ex.InnerException);
            }
        }
예제 #2
0
        public void Initialize()
        {
            _banco = new Banco(BancoBanestesCodigo);

            _boleto = new BoletoNet.Boleto(new DateTime(2014, 1, 18), 2952.95m, "00", "21487805", "123", "1.222.333")
            {
                Banco = _banco,
                NumeroDocumento = "18.030299.01"
            };
        }
예제 #3
0
        public Instrucao_HSBC(Banco Banco, int Codigo)
        {
            try
            {

            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao carregar objeto", ex);
            }
        }
 /// <summary>
 /// Metodo para processar um arquivo de retorno do tipo Cnab200
 /// </summary>
 /// <param name="banco"><see cref="Model.Banco">vinculado ao arquivo</param>
 /// <param name="stream">stram do arquivo a ser lido</param>
 /// <returns><see cref="BoletoNet.ArquivoRetornoCNAB240"></returns>
 public ArquivoRetornoCNAB240 Retorno200(Model.Banco banco, Stream stream)
 {
     try
     {
         var cnab200 = new ArquivoRetornoCNAB240();
         var bank    = new BoletoNet.Banco(banco.Numero);
         cnab200.LerArquivoRetorno(bank, stream);
         return(cnab200);
     }
     catch (Exception ex)
     {
         throw new Exception("Erro ao ler o arquivo de retorno.", ex.InnerException);
     }
 }
예제 #5
0
        public ArquivoRetornoCNAB400 LerArquivoCnab400(Stream arquivo, Model.Banco bank)
        {
            BoletoNet.Banco       banco          = new BoletoNet.Banco(bank.Codigo);
            ArquivoRetornoCNAB400 arquivoRetorno = new ArquivoRetornoCNAB400();

            try
            {
                arquivoRetorno.LerArquivoRetorno(banco, arquivo);
                return(arquivoRetorno);
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #6
0
        private void LerRetorno(int codigo)
        {
            try
            {
                Banco bco = new Banco(codigo);

                openFileDialog.FileName = "";
                openFileDialog.Title = "Selecione um arquivo de retorno";
                openFileDialog.Filter = "Arquivos de Retorno (*.ret;*.crt)|*.ret;*.crt|Todos Arquivos (*.*)|*.*";
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {

                    if (radioButtonCNAB400.Checked)
                    {
                        ArquivoRetornoCNAB400 cnab400 = null;
                        if (openFileDialog.CheckFileExists == true)
                        {
                            cnab400 = new ArquivoRetornoCNAB400();
                            cnab400.LinhaDeArquivoLida += new EventHandler<LinhaDeArquivoLidaArgs>(cnab400_LinhaDeArquivoLida);
                            cnab400.LerArquivoRetorno(bco, openFileDialog.OpenFile());
                        }

                        if (cnab400 == null)
                        {
                            MessageBox.Show("Arquivo não processado!");
                            return;
                        }

                        lstReturnFields.Items.Clear();

                        foreach (DetalheRetorno detalhe in cnab400.ListaDetalhe)
                        {
                            ListViewItem li = new ListViewItem(detalhe.NomeSacado.ToString().Trim());
                            li.Tag = detalhe;

                            li.SubItems.Add(detalhe.DataVencimento.ToString("dd/MM/yy"));
                            li.SubItems.Add(detalhe.DataCredito.ToString("dd/MM/yy"));

                            li.SubItems.Add(detalhe.ValorTitulo.ToString("###,###.00"));

                            li.SubItems.Add(detalhe.ValorPago.ToString("###,###.00"));
                            li.SubItems.Add(detalhe.CodigoOcorrencia.ToString());
                            li.SubItems.Add("");
                            li.SubItems.Add(detalhe.NossoNumeroComDV); // = detalhe.NossoNumero.ToString() + "-" + detalhe.DACNossoNumero.ToString());
                            li.SubItems.Add(detalhe.NumeroDocumento);
                            lstReturnFields.Items.Add(li);
                        }
                    }
                    else if (radioButtonCNAB240.Checked)
                    {
                        ArquivoRetornoCNAB240 cnab240 = null;
                        if (openFileDialog.CheckFileExists == true)
                        {
                            cnab240 = new ArquivoRetornoCNAB240();
                            cnab240.LinhaDeArquivoLida += new EventHandler<LinhaDeArquivoLidaArgs>(cnab240_LinhaDeArquivoLida);
                            cnab240.LerArquivoRetorno(bco, openFileDialog.OpenFile());
                        }

                        if (cnab240 == null)
                        {
                            MessageBox.Show("Arquivo não processado!");
                            return;
                        }


                        lstReturnFields.Items.Clear();

                        foreach (DetalheRetornoCNAB240 detalhe in cnab240.ListaDetalhes)
                        {
                            ListViewItem li = new ListViewItem(detalhe.SegmentoT.NomeSacado.Trim());
                            li.Tag = detalhe;

                            li.SubItems.Add(detalhe.SegmentoT.DataVencimento.ToString("dd/MM/yy"));
                            li.SubItems.Add(detalhe.SegmentoU.DataCredito.ToString("dd/MM/yy"));
                            li.SubItems.Add(detalhe.SegmentoT.ValorTitulo.ToString("###,###.00"));
                            li.SubItems.Add(detalhe.SegmentoU.ValorPagoPeloSacado.ToString("###,###.00"));
                            li.SubItems.Add(detalhe.SegmentoU.CodigoOcorrenciaSacado.ToString());
                            li.SubItems.Add("");
                            li.SubItems.Add(detalhe.SegmentoT.NossoNumero);
                            lstReturnFields.Items.Add(li);
                        }
                    }
                    MessageBox.Show("Arquivo aberto com sucesso!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro ao abrir arquivo de retorno.");
            }
        }
예제 #7
0
        public void Valida_Numero_Banco_Banestes()
        {
            var banco = new Banco(21);

            Assert.IsInstanceOfType(banco, typeof(Banco));
        }
예제 #8
0
 public IBanco getBancoInterface(Banco banco)
 {
     return(banco);
 }
예제 #9
0
        public GeracaoCNABLancamentoCobrancaViewModel GerarBoletosBancariosHtml(List <LancamentoCobranca> lancamentos, DateTime?dtVencimento, TipoValor tipoValorJuros, decimal?juros, TipoValor tipoValorMulta, decimal?multa, TipoOcorrenciaCNAB tipoOcorrenciaCNAB)
        {
            var geracaoCnab = new GeracaoCNABLancamentoCobrancaViewModel();

            using (TransactionScope scope = new TransactionScope())
            {
                var listaBoletoBancario = new List <BoletoBancario>();
                var listaBoletos        = new Boletos();

                var contaFinanceiraLancamento = lancamentos?.FirstOrDefault()?.ContaFinanceira ?? new ContaFinanceira();

                var contaFinanceira = _contaFinanceiraServico.BuscarPorId(contaFinanceiraLancamento.Id);
                var listaParametroBoletoBancario = _parametroBoletoBancarioServico.Buscar()?.ToList() ?? new List <ParametroBoletoBancario>();

                foreach (var item in lancamentos)
                {
                    if (item.Cliente.Pessoa.Enderecos == null || !item.Cliente.Pessoa.Enderecos.Any())
                    {
                        throw new BusinessRuleException($"O cadastro de [{item.Cliente.Pessoa.Nome}], não possui Endereço. É necessário esta informação para prosseguir!");
                    }

                    var boleto = ImprimirBoletoBancario(item, contaFinanceira, dtVencimento, tipoValorJuros, juros, tipoValorMulta, multa, listaParametroBoletoBancario, tipoOcorrenciaCNAB);

                    var boletoBancario = new BoletoBancario()
                    {
                        CodigoBanco           = Convert.ToInt16(contaFinanceira.Banco.CodigoBanco),
                        Boleto                = boleto,
                        MostrarCodigoCarteira = true,
                        TextoAbaixoDoBoleto   = $"UNIDADE: {item.Unidade.Nome} - {item.Unidade?.Endereco?.Logradouro}" +
                                                $"<br/>REF: {(item.DataCompetencia == null ? item.DataVencimento.ToString("yyyyMM") : item.DataCompetencia.Value.ToString("yyyyMM"))}" +
                                                $"{(item.TipoServico == TipoServico.Mensalista ? $"<br/>CONTRATO: {item.NumerosContratos}" : string.Empty)}"
                    };

                    boletoBancario.Boleto.Valida();
                    boletoBancario.MostrarComprovanteEntrega = false;
                    boletoBancario.FormatoCarne = true;
                    boletoBancario.GeraImagemCodigoBarras(boleto);

                    listaBoletos.Add(boleto);
                    listaBoletoBancario.Add(boletoBancario);

                    item.PossueCnab = true;
                    item.StatusLancamentoCobranca = StatusLancamentoCobranca.EmAberto;
                }

                var objCedente = new Cedente(
                    contaFinanceira.Cpf,
                    contaFinanceira.Descricao,
                    contaFinanceira.Agencia,
                    contaFinanceira.Conta,
                    contaFinanceira.DigitoConta
                    )
                {
                    CodigoTransmissao = $"{contaFinanceira.Agencia}0{contaFinanceira.Convenio.Truncate(7).PadLeft(7, '0')}0{contaFinanceira.Conta.Truncate(7).PadLeft(7, '0')}",
                    Convenio          = Convert.ToInt64(contaFinanceira.Convenio),
                    ContaBancaria     = new ContaBancaria(contaFinanceira.Agencia, contaFinanceira.DigitoAgencia ?? string.Empty, contaFinanceira.Conta, contaFinanceira.DigitoConta),
                    Nome = contaFinanceira.Empresa?.RazaoSocial
                };


                var aqvRemessa = new ArquivoRemessa(BoletoNet.TipoArquivo.CNAB400);
                var banco      = new BoletoNet.Banco(Convert.ToInt32(contaFinanceira.Banco.CodigoBanco));

                using (var mem = new MemoryStream())
                {
                    if (listaBoletos.Any())
                    {
                        aqvRemessa.GerarArquivoRemessa(contaFinanceira.Convenio, banco, objCedente, listaBoletos, mem, Convert.ToInt32(contaFinanceira.CodigoTransmissao));
                    }

                    var pdfBytes = new BoletoBancario().MontaBytesListaBoletosPDF(listaBoletoBancario, "Boletos Gerados", null, "Boletos Gerados");

                    geracaoCnab = new GeracaoCNABLancamentoCobrancaViewModel
                    {
                        BoletosHtml = listaBoletoBancario?.Select(x => x.MontaHtmlEmbedded())?.ToList() ?? new List <string>(),
                        ArquivoRemessaMemoryStream = mem,
                        DadosPDF = pdfBytes
                    };
                }
            }

            _lancamentoCobrancaServico.UpdateDetalhesCNAB(lancamentos);

            return(geracaoCnab);
        }
        private Boletos ConvertInvoiceParcelsInBoleto(Int32 companyId, Int32 accountId, DateTime beginDate,
                                                      DateTime endDate)
        {
            var customerManager = new CustomerManager(this);
            var profileManager = new ProfileManager(this);
            var companyManager = new CompanyManager(this);
            var accountManager = new AccountManager(this);
            Boleto boleto;
            Sacado sacado;
            Endereco endereco;
            var address = new Address();
            Company company = companyManager.GetCompany(companyId);
            Account account = accountManager.GetAccount(accountId, companyId);
            var boletos = new Boletos();

            var cedente = new Cedente(company.LegalEntityProfile.CNPJ, company.LegalEntityProfile.CompanyName,
                                      account.Agency, Convert.ToString(account.AgencyDigit), account.AccountNumber,
                                      Convert.ToString(account.AccountNumberDigit));


            foreach (Parcel parcel in GetOpenInvoiceParcelInPeriodByAccount(companyId, accountId, beginDate, endDate))
            {
                endereco = new Endereco();

                if (parcel.Invoice.Customer.LegalEntityProfileId.HasValue)
                {
                    //Address
                    address = parcel.Invoice.Customer.LegalEntityProfile.Address;

                    endereco.Numero = parcel.Invoice.Customer.LegalEntityProfile.AddressNumber;
                    endereco.Complemento = parcel.Invoice.Customer.LegalEntityProfile.AddressComp;

                    //sacado
                    sacado = new Sacado(parcel.Invoice.Customer.LegalEntityProfile.CNPJ,
                                        parcel.Invoice.Customer.LegalEntityProfile.CompanyName);
                }
                else
                {
                    //Address
                    address = parcel.Invoice.Customer.Profile.Address;

                    endereco.Numero = parcel.Invoice.Customer.Profile.AddressNumber;
                    endereco.Complemento = parcel.Invoice.Customer.Profile.AddressComp;

                    //sacado
                    sacado = new Sacado(parcel.Invoice.Customer.Profile.CPF, parcel.Invoice.Customer.Profile.Name);
                }

                //Address
                endereco.Bairro = address.Neighborhood;
                endereco.CEP = address.PostalCode;
                endereco.Cidade = address.City ?? String.Empty;
                endereco.Logradouro = address.Name;
                endereco.UF = address.State;

                //boleto
                boleto = new Boleto(parcel.DueDate, Convert.ToDouble(parcel.Amount), String.Empty, String.Empty, cedente);

                sacado.Endereco = endereco;

                boleto.Sacado = sacado;

                var instrucao = new Instrucao(Convert.ToInt32(account.Bank.BankNumber));

                var banco = new Banco(Convert.ToInt32(account.Bank.BankNumber));

                instrucao.Banco = banco;
                instrucao.QuantidadeDias = 0;
                instrucao.Descricao = String.Empty;
                instrucao.Codigo = 0;

                boleto.CodigoBarra.LinhaDigitavel = String.Empty;
                boleto.DataDocumento = DateTime.Now;
                boleto.DataVencimento = parcel.DueDate;
                boleto.ValorDesconto = 0;

                boleto.Instrucoes = new List<IInstrucao>();
                boleto.Instrucoes.Add(instrucao);
                boletos.Add(boleto);
            }
            return boletos;
        }
예제 #11
0
 public void setBancoGx(Banco banco)
 {
     this.Banco = banco;
 }