public void Cecred_GerarBoletoCarteira01() { DateTime vencimento = new DateTime(2016, 03, 11); var cedente = new Cedente("00.000.000/0000-00", "Empresa Teste", "0109", "265071", "1"); cedente.Convenio = 0110041; cedente.Endereco = new Endereco() { Bairro = "BAIRRO CEDENTE", CEP = "88309-600", Cidade = "CIDADE CEDENTE", Complemento = "CASA", Email = "*****@*****.**", End = "Teste CEDENTE", Logradouro = "Rua", Numero = "999", UF = "SC" }; cedente.Codigo = cedente.Convenio.ToString(); cedente.Carteira = "01"; string nossoNumero = "000000127"; // Tamanho nosso numero 9 var sacado = new Sacado("000.000.000-00", "Sacado Teste"); sacado.Endereco = new Endereco() { Bairro = "BAIRRO SACADO", CEP = "88309-600", Cidade = "CIDADE SACADO", Complemento = "CASA", Email = "*****@*****.**", End = "Teste SACADO", Logradouro = "Rua", Numero = "999", UF = "SC" }; BoletoNet.Boleto boleto = new BoletoNet.Boleto(vencimento, 10.99m, cedente.Carteira, nossoNumero, cedente); boleto.NumeroDocumento = "ABC123"; boleto.Sacado = sacado; BoletoNet.BoletoBancario boletoBancario = new BoletoBancario(); boletoBancario.CodigoBanco = 85; // CECRED boletoBancario.Boleto = boleto; try { boletoBancario.Boleto.Valida(); var htmlString = boletoBancario.MontaHtml(); //string _arquivo = string.Empty; //_arquivo = string.Format(@"C:\temp\boleto_{0}.html", boletoBancario.Boleto.NumeroDocumento); //using (System.IO.FileStream f = new System.IO.FileStream(_arquivo, System.IO.FileMode.Create)) { // System.IO.StreamWriter w = new System.IO.StreamWriter(f, System.Text.Encoding.UTF8); // w.Write(htmlString); //} Assert.IsTrue(!string.IsNullOrEmpty(htmlString)); } catch { } }
public ActionResult Index(FormCollection form) { var cedente = new Cedente() { Codigo = "1111111", CPFCNPJ = "123.456.789-01", Nome = "PAULO FREIRE - FOUR FREIRES INF.", ContaBancaria = new ContaBancaria("1000", "", "22507", "6") }; var sacado = new Sacado() { CPFCNPJ = form["cpf"], Nome = form["nome"], Endereco = new Endereco() { End = form["end"], Bairro = form["bairro"], Cidade = form["cidade"], UF = form["uf"], CEP = form["cep"] } }; var boleto = new Boleto() { DataVencimento = Convert.ToDateTime(form["vencimento"]), ValorBoleto = Convert.ToDecimal(form["valor"]), NossoNumero = "22222222", NumeroDocumento = "B20005446", Carteira = "109", Cedente = cedente, Sacado = sacado, EspecieDocumento = new EspecieDocumento_Itau("99"), Instrucoes = new List<IInstrucao>() { new Instrucao_Itau() { Descricao = "Não receber após o vencimento" } }, }; var boleto_bancario = new BoletoBancario() { CodigoBanco = 341, Boleto = boleto, MostrarCodigoCarteira = false, MostrarComprovanteEntrega = false }; boleto_bancario.Boleto.Valida(); ViewBag.Boleto = boleto_bancario.MontaHtmlEmbedded(); return View(form); }
public override string GerarDetalheSegmentoQRemessa(Boleto boleto, int numeroRegistro, Sacado sacado) { return GerarDetalheSegmentoQRemessaCNAB240SIGCB(boleto, numeroRegistro, sacado); }
public string GerarDetalheSegmentoQRemessaCNAB240SIGCB(Boleto boleto, int numeroRegistro, Sacado sacado) { try { #region Segmento Q TRegistroEDI reg = new TRegistroEDI(); reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0001, 003, 0, base.Codigo, '0')); // posição 1 até 3 (3) - código do banco na compensação reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0004, 004, 0, "1", '0')); // posição 4 até 7 (4) - Lote de Serviço reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0008, 001, 0, "3", '0')); // posição 8 até 8 (1) - Tipo de Registro reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0009, 005, 0, numeroRegistro, '0')); // posição 9 até 13 (5) - Nº Sequencial do Registro no Lote reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0014, 001, 0, "Q", '0')); // posição 14 até 14 (1) - Cód. Segmento do Registro Detalhe reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0015, 001, 0, string.Empty, ' ')); // posição 15 até 15 (1) - Uso Exclusivo FEBRABAN/CNAB reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0016, 002, 0, "01", '0')); // posição 16 até 17 (2) - Código de Movimento Remessa #region Regra Tipo de Inscrição Cedente string vCpfCnpjEmi = "0";//não informado if (sacado.CPFCNPJ.Length.Equals(11)) vCpfCnpjEmi = "1"; //Cpf else if (sacado.CPFCNPJ.Length.Equals(14)) vCpfCnpjEmi = "2"; //Cnpj #endregion reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0018, 001, 0, vCpfCnpjEmi, '0')); // posição 18 até 18 (1) - Tipo de Inscrição reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0019, 015, 0, sacado.CPFCNPJ, '0')); // posição 19 até 33 (15)- Número de Inscrição da empresa reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0034, 040, 0, sacado.Nome.ToUpper(), ' ')); // posição 34 até 73 (40)- Nome reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0074, 040, 0, sacado.Endereco.End.ToUpper(), ' ')); // posição 74 até 113 (40)- Endereço reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0114, 015, 0, sacado.Endereco.Bairro.ToUpper(), ' ')); // posição 114 até 128 (15)- Bairro reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0129, 008, 0, sacado.Endereco.CEP, ' ')); // posição 114 até 128 (40)- CEP // posição 134 até 136 (3) - sufixo cep** já incluso em CEP reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0137, 015, 0, sacado.Endereco.Cidade.ToUpper(), ' ')); // posição 137 até 151 (15)- Cidade reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0152, 002, 0, sacado.Endereco.UF, ' ')); // posição 152 até 153 (15)- UF reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0154, 001, 0, "0", '0')); // posição 154 até 154 (1) - Tipo de Inscrição Sacador Avalialista reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0155, 015, 0, "0", '0')); // posição 155 até 169 (15)- Inscrição Sacador Avalialista reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0170, 040, 0, string.Empty, ' ')); // posição 170 até 209 (40)- Nome do Sacador/Avalista reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediNumericoSemSeparador_, 0210, 003, 0, string.Empty, ' ')); // posição 210 até 212 (3) - Cód. Bco. Corresp. na Compensação reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0213, 020, 0, string.Empty, ' ')); // posição 213 até 232 (20)- Nosso Nº no Banco Correspondente reg.CamposEDI.Add(new TCampoRegistroEDI(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0233, 008, 0, string.Empty, ' ')); // posição 213 até 232 (8)- Uso Exclusivo FEBRABAN/CNAB reg.CodificarLinha(); // string vLinha = reg.LinhaRegistro; string _SegmentoQ = Utils.SubstituiCaracteresEspeciais(vLinha); return _SegmentoQ; #endregion } catch (Exception ex) { throw new Exception("Erro ao gerar DETALHE do Segmento Q no arquivo de remessa do CNAB240 SIGCB.", ex); } }
public override string GerarDetalheSegmentoQRemessa(Boleto boleto, int numeroRegistro, Sacado sacado) { try { return _IBanco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistro, sacado); } catch (Exception ex) { throw new Exception("Erro durante a geração dos registros de DETALHE do arquivo de REMESSA.", ex); } }
public override string GerarDetalheSegmentoQRemessa(Boleto boleto, int numeroRegistro, Sacado sacado) { try { return(_IBanco.GerarDetalheSegmentoQRemessa(boleto, numeroRegistro, sacado)); } catch (Exception ex) { throw new Exception("Erro durante a geração dos registros de DETALHE do arquivo de REMESSA. " + ex.Message, ex); } }
/// <summary> /// Gera registros de detalhe do arquivo remessa - SEGMENTO Q /// </summary> public virtual string GerarDetalheSegmentoQRemessa(Boleto boleto, int numeroRegistro, Sacado sacado) { string _segmentoQ = ""; return _segmentoQ; }
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; }
protected void Page_Load(object sender, EventArgs e) { //if (!IsPostBack) //{ // if (Session["boleto"] != null) // { // BoletoBancario boletoBan = new BoletoBancario(); // boletoBan = (BoletoBancario)Session["boleto"]; // ImprimirBoleto(boletoBan); // } //} string vencimento = "01/01/2013"; String valorBoleto = "110,50"; String numeroDocumento = "B20005446"; //cedente String cedente_codigo = "13000"; String cedente_nossoNumeroBoleto = "22222222"; String cedente_cpfCnpj = "123.456.789-01"; String cedente_nome = "PAULO FREIRE - FOUR FREIRES INF."; String cedente_agencia = "1000"; String cedente_conta = "22507"; String cedente_digitoConta = "6"; //sacado String sacado_cpfCnpj = "000.000.000-00"; String sacado_nome = "eu caralho"; String sacado_endereco = "xxxxxxxxxxxx"; String sacado_bairro = "ffffffffffffff"; String sacado_cidade = "caxias"; String sacado_cep = "95070200"; String sacado_uf = "rs"; Cedente cedente = new Cedente(cedente_cpfCnpj, cedente_nome, cedente_agencia, cedente_conta, cedente_digitoConta); cedente.Codigo = Convert.ToInt32(cedente_codigo); Boleto boleto = new Boleto(Convert.ToDateTime(vencimento), Convert.ToDecimal(valorBoleto), "341", cedente_nossoNumeroBoleto, cedente); boleto.NumeroDocumento = numeroDocumento; Sacado sacado = new Sacado(sacado_cpfCnpj, sacado_nome); boleto.Sacado = sacado; boleto.Sacado.Endereco.End = sacado_endereco; boleto.Sacado.Endereco.Bairro = sacado_bairro; boleto.Sacado.Endereco.Cidade = sacado_cidade; boleto.Sacado.Endereco.CEP = sacado_cep; boleto.Sacado.Endereco.UF = sacado_uf; Instrucao_Banrisul instrucao = new Instrucao_Banrisul(999, 1); Instrucao_Banrisul item1 = new Instrucao_Banrisul(9, 5); Instrucao_Banrisul item2 = new Instrucao_Banrisul(81, 10); boleto.Instrucoes.Add(instrucao); boleto.Instrucoes.Add(item1); boleto.Instrucoes.Add(item2); BoletoBancario boleto_bancario = new BoletoBancario(); boleto_bancario.CodigoBanco = 041; boleto_bancario.Boleto = boleto; boleto_bancario.MostrarCodigoCarteira = true; boleto_bancario.Boleto.Valida(); boleto_bancario.MostrarComprovanteEntrega = true; this.Panel1.Controls.Add(boleto_bancario); }
protected void btnGerarBoleto_ButtonClick(object sender, EventArgs e) { // Boleto para CEF, com carteira SR e nosso número de 11 dígitos. if (ExisteErroDePreenchimento()) { return; } try { var vencimento = txtVencimento.SelectedDate.Value.ToString("dd/MM/yyyy"); var valorBoleto = txtValor.Value.Value; IBoletosGeradosAux dadosAuxiliares = null; // Busca dados auxiliares no banco, se for a primeira vez, efetua o insert long cedenteNossoNumeroBoleto = 0; if (ViewState["CHAVE_CEDENTE_BOLETOGERADO"] != null) { // Numero do documento - numero de controle interno, não afeta o calculo da linha digitavel e nem o codigo de barras // mais pode ser útil, exemplo: quando o cliente ligar, vc pode consultar por este número e ver // se já foi efetuado o pagamento // cedente BoletoGerado = (IBoletosGerados)ViewState["CHAVE_CEDENTE_BOLETOGERADO"]; cedenteNossoNumeroBoleto = BoletoGerado.NossoNumero.Value; // o final do nosso número é incrementado ao final } else if (ViewState["CHAVE_LISTA_ITEM_FINANCEIRO"] != null) { var listaDeItensFinanceiros = (List<IItemLancamentoFinanceiroRecebimento>)ViewState["CHAVE_LISTA_ITEM_FINANCEIRO"]; if (listaDeItensFinanceiros.Count > 0) { foreach (var itemLancamentoFinanceiroRecebimento in listaDeItensFinanceiros) { long idboleto; using (var servicoFinanceiroComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>()) idboleto = servicoFinanceiroComBoleto.ObtenhaBoletoPorIdItemFinanRecebimento( itemLancamentoFinanceiroRecebimento.ID.Value); if (idboleto > 0) { IBoletosGerados boletoGeradoParaItemFinanceiro; using (var servicoBoletoGeradoParaItemFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeBoleto>()) boletoGeradoParaItemFinanceiro = servicoBoletoGeradoParaItemFinanceiro.obtenhaBoletoPeloId( idboleto); if (boletoGeradoParaItemFinanceiro != null) cedenteNossoNumeroBoleto = boletoGeradoParaItemFinanceiro.NossoNumero.Value; } else { using (var servico = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeBoleto>()) dadosAuxiliares = servico.obtenhaProximasInformacoesParaGeracaoDoBoleto(ctrlCedente.CedenteSelecionado); cedenteNossoNumeroBoleto = dadosAuxiliares.ProximoNossoNumero.Value; } break; } } } else { using (var servico = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeBoleto>()) dadosAuxiliares = servico.obtenhaProximasInformacoesParaGeracaoDoBoleto(ctrlCedente.CedenteSelecionado); // Numero do documento - numero de controle interno, não afeta o calculo da linha digitavel e nem o codigo de barras // mais pode ser útil, exemplo: quando o cliente ligar, vc pode consultar por este número e ver // se já foi efetuado o pagamento // cedente cedenteNossoNumeroBoleto = dadosAuxiliares.ProximoNossoNumero.Value; // o final do nosso número é incrementado ao final } // obtendo a configuração do cedente var cedenteSelecionado = ctrlCedente.CedenteSelecionado; var cedenteCpfCnpj = string.Empty; var cedenteNome = string.Empty; var cedenteAgencia = string.Empty; var cedenteConta = string.Empty; var cedenteDigitoConta = string.Empty; var cedenteOperacaoConta = string.Empty; var cedenteCodigo = string.Empty; var imagemDoRecibo = string.Empty; var codigoDoBanco = 0; var carteira = string.Empty; if (cedenteSelecionado != null) { // pegar imagem do cedente para o boleto //imagemDoRecibo = configuracaoDoBoleto.ImagemDeCabecalhoDoReciboDoSacado; if (!string.IsNullOrEmpty(cedenteSelecionado.ImagemDeCabecalhoDoReciboDoSacado)) imagemDoRecibo = cedenteSelecionado.ImagemDeCabecalhoDoReciboDoSacado; var cedentePessoa = cedenteSelecionado.Pessoa; cedenteNome = cedentePessoa.Nome; codigoDoBanco = Convert.ToInt32(cedenteSelecionado.NumeroDoBanco); cedenteAgencia = cedenteSelecionado.NumeroDaAgencia; cedenteConta = cedenteSelecionado.NumeroDaConta; cedenteOperacaoConta = cedenteSelecionado.TipoDaConta.ToString("000"); if (!string.IsNullOrEmpty(cedenteConta)) cedenteDigitoConta = cedenteConta.Substring(cedenteConta.Length - 1, 1); //if (cedentePessoa.DadoBancario != null) //{ // codigoDoBanco = cedentePessoa.DadoBancario.Agencia.Banco.Numero; // cedenteAgencia = cedentePessoa.DadoBancario.Agencia.Numero; // cedenteConta = cedentePessoa.DadoBancario.Conta.Numero; // cedenteOperacaoConta = cedentePessoa.DadoBancario.Conta.Tipo.Value.ToString("000"); // if (!string.IsNullOrEmpty(cedenteConta)) // cedenteDigitoConta = cedenteConta.Substring(cedenteConta.Length - 1, 1); //} cedenteCpfCnpj = OtenhaNumeroCPFOuCNPJ(cedentePessoa); carteira = cedenteSelecionado.TipoDeCarteira.Sigla; } else { ScriptManager.RegisterClientScriptBlock(this, GetType(), Guid.NewGuid().ToString(), UtilidadesWeb.MostraMensagemDeInformacao("Configurações do cedente ou boleto bancário inválidas, favor verificar."), false); return; } // formata código do cedente if (!string.IsNullOrEmpty(cedenteOperacaoConta) && !string.IsNullOrEmpty(cedenteConta)) { string conta; var contaSemDigito = Convert.ToInt32(cedenteConta.Substring(0, cedenteConta.Length - 1)); conta = contaSemDigito.ToString("00000000"); cedenteCodigo = cedenteOperacaoConta + conta; } var cedente = new Cedente(cedenteCpfCnpj, cedenteNome, cedenteAgencia, cedenteConta, cedenteDigitoConta) { Codigo = cedenteCodigo }; var boleto = new Boleto(Convert.ToDateTime(vencimento), (decimal)valorBoleto, carteira, cedenteNossoNumeroBoleto.ToString(), cedente) { NumeroDocumento = txtNumeroDoBoleto.Text }; //sacado var sacadoCpfCnpj = txtCNPJCPF.Text; var sacadoNome = txtNome.Text; var sacadoEndereco = txtEndereco.Text; var sacadoObservacao = txtFinalidadeBoleto.Text; var sacado = new Sacado(sacadoCpfCnpj, sacadoNome); boleto.Sacado = sacado; boleto.Sacado.Endereco.End = sacadoEndereco; boleto.Sacado.Endereco.Bairro = txtBairro.Text; boleto.Sacado.Endereco.Cidade = txtCidade.Text; boleto.Sacado.Endereco.CEP = txtCep.Text; boleto.Sacado.Endereco.UF = txtEstado.Text; var instrucaoCaixa = new Instrucao_Caixa { Descricao = txtInstrucoes.Text }; instrucaoCaixa.DescricaoReciboDoSacado = sacadoObservacao; boleto.Instrucoes.Add(instrucaoCaixa); var especificacao = new EspecieDocumento_Caixa(); boleto.EspecieDocumento = new EspecieDocumento_Caixa(especificacao.getCodigoEspecieByEnum(EnumEspecieDocumento_Caixa.Recibo)); boleto.DataProcessamento = DateTime.Now; boleto.DataDocumento = DateTime.Now; BoletoBancario boletoBancario; if (string.IsNullOrEmpty(imagemDoRecibo)) boletoBancario = new BoletoBancario(); else { var urlImagemLogo = UtilidadesWeb.ObtenhaURLHostDiretorioVirtual() + imagemDoRecibo.Remove(0, 1); boletoBancario = new BoletoBancario(urlImagemLogo); } boletoBancario.CodigoBanco = (short)codigoDoBanco; boletoBancario.Boleto = boleto; boletoBancario.MostrarCodigoCarteira = true; boletoBancario.Boleto.Valida(); boletoBancario.MostrarComprovanteEntrega = false; var chaveDoBoleto = Guid.NewGuid().ToString(); Session.Add(chaveDoBoleto, boletoBancario); MostraBoleto(boletoBancario); var url = String.Concat(UtilidadesWeb.ObtenhaURLHostDiretorioVirtual(), "FN/frmVisualizarBoletoGerado.aspx", "?Id=", chaveDoBoleto); ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), UtilidadesWeb.ExibeJanela(url, "Visualizar boleto gerado", 800, 600, "FN_frmVisualizarBoletoGerado_aspx"), false); // Salvar dados do Boleto gerado var boletoGerado = FabricaGenerica.GetInstancia().CrieObjeto<IBoletosGerados>(); boletoGerado.Cedente = ctrlCedente.CedenteSelecionado; boletoGerado.Cliente = ctrlCliente.ClienteSelecionado; boletoGerado.DataGeracao = boleto.DataProcessamento; boletoGerado.DataVencimento = txtVencimento.SelectedDate.Value; boletoGerado.NossoNumero = cedenteNossoNumeroBoleto; boletoGerado.NumeroBoleto = txtNumeroDoBoleto.Text; boletoGerado.Observacao = sacadoObservacao; boletoGerado.Valor = valorBoleto; boletoGerado.Instrucoes = txtInstrucoes.Text; using (var servico = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeBoleto>()) { if (BoletoGerado != null) { boletoGerado.ID = BoletoGerado.ID.Value; boletoGerado.StatusBoleto = BoletoGerado.StatusBoleto; servico.AtualizarBoletoGerado(boletoGerado); IItemLancamentoFinanceiroRecebimento itemLancamento; long idItemFinanceiroRecebido; using (var servicoDeItemFinanceiroRecebidoComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>()) { idItemFinanceiroRecebido = servicoDeItemFinanceiroRecebidoComBoleto.ObtenhaItemFinanRecebimentoPorIdBoleto(boletoGerado.ID.Value); } if(idItemFinanceiroRecebido > 0) { using (var servicoFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItensFinanceirosDeRecebimento>()) { itemLancamento = servicoFinanceiro.Obtenha(idItemFinanceiroRecebido); if (itemLancamento != null) { itemLancamento.Cliente = boletoGerado.Cliente; if (boletoGerado.DataVencimento != null) itemLancamento.DataDoVencimento = boletoGerado.DataVencimento.Value; itemLancamento.Valor = boletoGerado.Valor; if (boletoGerado.NossoNumero != null) itemLancamento.NumeroBoletoGerado = boletoGerado.NossoNumero.Value.ToString(); itemLancamento.BoletoFoiGeradoColetivamente = false; servicoFinanceiro.Modifique(itemLancamento); } } } } else if (ViewState["CHAVE_LISTA_ITEM_FINANCEIRO"] != null) { var listaDeItensFinanceiros = (List<IItemLancamentoFinanceiroRecebimento>) ViewState["CHAVE_LISTA_ITEM_FINANCEIRO"]; if (listaDeItensFinanceiros.Count > 0) { // mais de 1 item financeiro selecionado if(listaDeItensFinanceiros.Count > 1) { long idBoletoExistente = 0; foreach (var itemLancamentoFinanceiroRecebimento in listaDeItensFinanceiros) { long idboleto = 0; using (var servicoFinanceiroComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>()) { idboleto = servicoFinanceiroComBoleto.ObtenhaBoletoPorIdItemFinanRecebimento( itemLancamentoFinanceiroRecebimento.ID.Value); if (idboleto > 0) { idBoletoExistente = idboleto; //servico.Excluir(idboleto); }//servicoFinanceiroComBoleto.Excluir(itemLancamentoFinanceiroRecebimento.ID.Value); } break; //using (var servicoFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItensFinanceirosDeRecebimento>()) //{ // itemLancamentoFinanceiroRecebimento.Situacao = Situacao.Cancelada; // itemLancamentoFinanceiroRecebimento.Observacao = // "Item de contas a receber foi cancelado, para a geração de um novo item."; // servicoFinanceiro.Modifique(itemLancamentoFinanceiroRecebimento); //} } if (idBoletoExistente > 0) { // Este caso vai acontecer quando existe boleto gerado(mesmo boleto) para as contas a receber // ou seja, os dados do boleto vai atualizar using (var servicoBoletoGeradoParaItemFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeBoleto>()) { var boletoGeradoParaItemFinanceiro = servicoBoletoGeradoParaItemFinanceiro.obtenhaBoletoPeloId( idBoletoExistente); boletoGeradoParaItemFinanceiro.NumeroBoleto = boletoGerado.NumeroBoleto; boletoGeradoParaItemFinanceiro.Valor = boletoGerado.Valor; boletoGeradoParaItemFinanceiro.DataGeracao = boletoGerado.DataGeracao; boletoGeradoParaItemFinanceiro.DataVencimento = boletoGerado.DataVencimento; boletoGeradoParaItemFinanceiro.Observacao = boletoGerado.Observacao; boletoGeradoParaItemFinanceiro.Instrucoes = boletoGerado.Instrucoes; servico.AtualizarBoletoGerado(boletoGeradoParaItemFinanceiro); } } else { // Este caso vai acontecer quando existe mais de uma conta a receber, e está gerando um novo boleto, // ou seja, não existe boleto gerado para as contas boletoGerado.StatusBoleto = StatusBoleto.Status.Aberto.ToString(); boletoGerado.EhBoletoAvulso = false; servico.Inserir(boletoGerado, false, TipoLacamentoFinanceiroRecebimento.RecebimentoDeManutencao); // incrementar o nosso numero e o numero do documento e atualizar no banco. dadosAuxiliares.ProximoNossoNumero = dadosAuxiliares.ProximoNossoNumero + 1; servico.AtualizarProximasInformacoes(dadosAuxiliares); foreach (var itemLancamentoFinanceiroRecebimento in listaDeItensFinanceiros) { using (var servicoFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItensFinanceirosDeRecebimento>()) { itemLancamentoFinanceiroRecebimento.Situacao = Situacao.CobrancaGerada; itemLancamentoFinanceiroRecebimento.NumeroBoletoGerado = boletoGerado.NossoNumero.Value.ToString(); itemLancamentoFinanceiroRecebimento.BoletoFoiGeradoColetivamente = true; servicoFinanceiro.Modifique(itemLancamentoFinanceiroRecebimento); } using (var servicoFinanceiroComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>()) { servicoFinanceiroComBoleto.Insira(itemLancamentoFinanceiroRecebimento.ID.Value, boletoGerado.ID.Value); } } } } else { foreach (var itemLancamentoFinanceiroRecebimento in listaDeItensFinanceiros) { long idboleto; using (var servicoFinanceiroComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>()) { idboleto = servicoFinanceiroComBoleto.ObtenhaBoletoPorIdItemFinanRecebimento( itemLancamentoFinanceiroRecebimento.ID.Value); } if (idboleto > 0) { boletoGerado.ID = idboleto; servico.AtualizarBoletoGerado(boletoGerado); using (var servicoFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItensFinanceirosDeRecebimento>()) { itemLancamentoFinanceiroRecebimento.Cliente = boletoGerado.Cliente; if (boletoGerado.DataVencimento != null) itemLancamentoFinanceiroRecebimento.DataDoVencimento = boletoGerado.DataVencimento.Value; itemLancamentoFinanceiroRecebimento.Valor = boletoGerado.Valor; if (boletoGerado.NossoNumero != null) itemLancamentoFinanceiroRecebimento.NumeroBoletoGerado = boletoGerado.NossoNumero.Value.ToString(); itemLancamentoFinanceiroRecebimento.Situacao = Situacao.CobrancaGerada; itemLancamentoFinanceiroRecebimento.BoletoFoiGeradoColetivamente = false; servicoFinanceiro.Modifique(itemLancamentoFinanceiroRecebimento); } } else { boletoGerado.StatusBoleto = StatusBoleto.Status.Aberto.ToString(); boletoGerado.EhBoletoAvulso = false; servico.Inserir(boletoGerado, false, TipoLacamentoFinanceiroRecebimento.RecebimentoDeManutencao); // incrementar o nosso numero e o numero do documento e atualizar no banco. dadosAuxiliares.ProximoNossoNumero = dadosAuxiliares.ProximoNossoNumero + 1; servico.AtualizarProximasInformacoes(dadosAuxiliares); using (var servicoFinanceiro = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItensFinanceirosDeRecebimento>()) { itemLancamentoFinanceiroRecebimento.Cliente = boletoGerado.Cliente; if (boletoGerado.DataVencimento != null) itemLancamentoFinanceiroRecebimento.DataDoVencimento = boletoGerado.DataVencimento.Value; itemLancamentoFinanceiroRecebimento.Valor = boletoGerado.Valor; if (boletoGerado.NossoNumero != null) itemLancamentoFinanceiroRecebimento.NumeroBoletoGerado = boletoGerado.NossoNumero.Value.ToString(); itemLancamentoFinanceiroRecebimento.Situacao = Situacao.CobrancaGerada; itemLancamentoFinanceiroRecebimento.BoletoFoiGeradoColetivamente = false; servicoFinanceiro.Modifique(itemLancamentoFinanceiroRecebimento); } using (var servicoFinanceiroComBoleto = FabricaGenerica.GetInstancia().CrieObjeto<IServicoDeItemFinanceiroRecebidoComBoleto>()) { servicoFinanceiroComBoleto.Insira(itemLancamentoFinanceiroRecebimento.ID.Value, boletoGerado.ID.Value); } } } } } } else { boletoGerado.StatusBoleto = StatusBoleto.Status.Aberto.ToString(); boletoGerado.EhBoletoAvulso = true; servico.Inserir(boletoGerado, BoletoGeraItemFinanceiroDeRecebimento, TipoLacamentoFinanceiroRecebimento.BoletoAvulso); // incrementar o nosso numero e o numero do documento e atualizar no banco. dadosAuxiliares.ProximoNossoNumero = dadosAuxiliares.ProximoNossoNumero + 1; servico.AtualizarProximasInformacoes(dadosAuxiliares); } } } catch (BussinesException ex) { Logger.GetInstancia().Erro("Erro ao gerar boleto, exceção: ", ex); ScriptManager.RegisterClientScriptBlock(this, GetType(), Guid.NewGuid().ToString(), UtilidadesWeb.MostraMensagemDeInconsitencia("Erro ao gerar boleto, exceção: " + ex.Message), false); } //Garante que a tela de contas a receber será atualizada. ScriptManager.RegisterClientScriptBlock(this, GetType(), Guid.NewGuid().ToString(), UtilidadesWeb.AtualizaJanela(String.Concat(UtilidadesWeb.ObtenhaURLHostDiretorioVirtual(), "FN/frmContasAReceber.aspx"), "FN_frmContasAReceber_aspx"), false); //Garante que a tela de historico de boletos seja atualizada ScriptManager.RegisterClientScriptBlock(this, GetType(), Guid.NewGuid().ToString(), UtilidadesWeb.AtualizaJanela(String.Concat(UtilidadesWeb.ObtenhaURLHostDiretorioVirtual(), "FN/frmBoletosGerados.aspx"), "FN_frmBoletosGerados_aspx"), false); }