public static RetornoModel <string[]> EfetuaVendaExterna(CompraModel compra, CompraPagamentoExternoModel compraPagamento) { var oCarrinho = new Carrinho(); var bilheteria = new IRLib.Bilheteria(); var retornoMSG = "Ok"; try { int clienteId = compra.ClienteID; string sessionId = compra.SessionID; var oCliente = new Cliente(); oCliente.Ler(clienteId); RetornoModel <EstruturaReservaInternet> reservaInternet = MontarEstruturaReservaExterno(compraPagamento, compra); if (!reservaInternet.Sucesso) { LogUtil.Error(string.Format("##EfetuaVendaExterna.ERROR## SESSION {0}, MSG {1}", compra.SessionID, reservaInternet.Mensagem)); return(new RetornoModel <string[]>() { Sucesso = false, Mensagem = reservaInternet.Mensagem }); } if (reservaInternet.Retorno.CaixaID == 0) { reservaInternet.Retorno.CaixaID = bilheteria.VerificaCaixaInternet(reservaInternet.Retorno.UsuarioID, reservaInternet.Retorno.LojaID); } var oPagamento = EstruturaPagamentoExterno.Montar(compraPagamento.formaPagamento.IR_FormaPagamentoID, compraPagamento.valor, compraPagamento.formaPagamento.Parcelas, compraPagamento.codigoAutorizacao, compraPagamento.NSU, compraPagamento.IP, compraPagamento.formaPagamento.Nome); var retornoVenda = bilheteria.VenderExterno(oPagamento, oCarrinho.IngressosTaxasCarrinho(clienteId, sessionId), clienteId, sessionId, reservaInternet.Retorno); LogUtil.Info(string.Format("##EfetuaVendaExterna.SUCCESS## SESSION {0}, SENHA {1}", compra.SessionID, retornoVenda)); return(new RetornoModel <string[]>() { Sucesso = true, Mensagem = retornoMSG, Retorno = retornoVenda }); } catch (ApplicationException ex) { LogUtil.Error(ex); return(new RetornoModel <string[]> { Sucesso = false, Mensagem = ex.Message }); } }
private bool IngressosQPodeReservar(bool transferencia, EstruturaReservaInternet estruturaReservaInternet) { IRLib.Bilheteria oBilheteria = new IRLib.Bilheteria(); try { List <IngressoTransferencia> pacotes = this.Where(c => c.IR_PacoteID > 0).ToList(); List <IngressoTransferencia> avulsos = this.Where(c => c.IR_PacoteID == 0).ToList(); var x = from c in pacotes select new { PacoteID = c.IR_PacoteID, Quantidade = pacotes.Count(i => i.IR_PacoteID == c.IR_PacoteID) }; foreach (var item in x) { if (item.Quantidade != oBilheteria.GetPacotesQPodeReservar(item.PacoteID, item.Quantidade, this.SessionID, this.ClienteID, estruturaReservaInternet)) { throw new Exception("Um dos pacotes não pode ser tranferido, limite atingido"); } } var y = from c in avulsos select new { PrecoID = c.PrecoID, Quantidade = c.Quantidade, c.SerieID }; decimal valorPreco = 0; foreach (var item in y) { if (item.Quantidade != oBilheteria.GetIngressosQPodeReservar(this.ClienteID, this.SessionID, item.PrecoID, item.Quantidade, ref valorPreco, transferencia, item.SerieID, estruturaReservaInternet)) { throw new Exception("Um dos Preços não pode ser transferido, limite atingido"); } } return(true); } catch (Exception ex) { throw ex; } }
public static RetornoModel <string> EfetuaVendaSistemaComprarVIR(EstruturaPagamento oPagamento, EstruturaReservaInternet estruturaReservaInternet, string celular, CarrinhoLista oCarrinhoLista, CompraModel compra) { Carrinho oCarrinho = new Carrinho(); IRLib.Bilheteria bilheteria = new IRLib.Bilheteria(); string[] retornoVenda = new string[3]; string senha = string.Empty; string msgRetorno = "Ok"; try { int clienteID = compra.ClienteID; string SessionID = compra.SessionID; IRLib.Cliente oCliente = new IRLib.Cliente(); oCliente.Ler(clienteID); if (oCliente.Control.ID == 0) { return new RetornoModel <string>() { Sucesso = false, Retorno = senha, Mensagem = "Não foi possível localizar o seu cadastro, por favor, tente novamento." } } ; retornoVenda = bilheteria.VenderVIRWeb(oPagamento, oCarrinho.getValeIngressoID(clienteID, SessionID).ToArray(), SessionID, new List <EstruturaVirNomePresenteado>(), estruturaReservaInternet, celular, oCliente); //ErroIndefinido = -1, FalhaVenda = 0, Sucesso = 1, ClienteInexistente = 2, ReservaInexistente = 3, TaxaEntregaInexistente = 4, FormaPagamentoNaoCadastrada = 5, ReservasCanceladas = 6, switch (retornoVenda[0]) { case "1": //Sucesso oCarrinho.SetStatusCarrinho(clienteID, SessionID, "VV"); oCarrinhoLista.CarregarDadosVIRporClienteIDSessionID(clienteID, SessionID, CarrinhoLista.Status.VendidoEmail); senha = retornoVenda[1]; IngressoRapido.Lib.Entrega oEntrega = new IngressoRapido.Lib.Entrega(); EstruturaEntrega oEE = oEntrega.CarregarEstruturaPeloControleID(oPagamento.EntregaControleID); string formpagamento = string.Empty; if (oPagamento.TipoPagamento == EstruturaPagamento.enumTipoPagamento.Nenhum) { formpagamento = "Cortesia"; } else if (oPagamento.TipoPagamento == EstruturaPagamento.enumTipoPagamento.VIR) { formpagamento = "Vale Ingresso"; } else { formpagamento = oPagamento.BandeiraNome.ToString() + " - " + oPagamento.Parcelas + "X"; } try { if (!string.IsNullOrEmpty(oCliente.CNPJ.Valor)) { IRLib.ServicoEmail.EnviarVendaAprovadaVir(oCliente.NomeFantasia.Valor, oCliente.Email.Valor, retornoVenda[1], string.Empty, "Site", DateTime.Now.ToString(), "Site", formpagamento, string.Empty, oEE.Nome); } else { IRLib.ServicoEmail.EnviarVendaAprovadaVir(oCliente.Nome.Valor, oCliente.Email.Valor, retornoVenda[1], string.Empty, "Site", DateTime.Now.ToString(), "Site", formpagamento, string.Empty, oEE.Nome); } } catch { msgRetorno = "Sua compra foi efetuada com sucesso no entando o envio para o Email informado gerou um erro, por favor entre em contato com a Ingresso Rápido informando a senha de compra"; } oCarrinho.SetStatusCarrinho(clienteID, SessionID, "V"); return(new RetornoModel <string>() { Sucesso = true, Retorno = senha, Mensagem = msgRetorno }); case "0": // falha ao inserir registro na tVendaBilheteria return(new RetornoModel <string>() { Sucesso = false, Retorno = senha, Mensagem = "Falha ao efetuar o pedido. A venda não pôde ser gerada." }); case "2": // falha ao inserir registro na tVendaBilheteria return(new RetornoModel <string>() { Sucesso = false, Retorno = senha, Mensagem = "Cliente Inexistente. A venda não pôde ser gerada." }); case "3": return(new RetornoModel <string>() { Sucesso = false, Retorno = senha, Mensagem = "Reserva Inexistente. A venda não pôde ser gerada." }); case "4": return(new RetornoModel <string>() { Sucesso = false, Retorno = senha, Mensagem = "Taxa de Entrega Inexistente. A venda não pôde ser gerada." }); case "6": return(new RetornoModel <string>() { Sucesso = false, Retorno = senha, Mensagem = "Reservas Canceladas. A venda não pôde ser gerada." }); case "-1": return(new RetornoModel <string>() { Sucesso = false, Retorno = senha, Mensagem = retornoVenda[1] }); default: return(new RetornoModel <string>() { Sucesso = false, Retorno = senha, Mensagem = "Falha ao efetuar o pedido. Erro indefinido." }); } } catch (ApplicationException ex) { return(new RetornoModel <string> { Sucesso = false, Retorno = senha, Mensagem = ex.Message }); } }
public static RetornoModel <VendaRetornoModel> EfetuaVendaSistemaTEFCortesia(EstruturaPagamento oPagamento, string celular, CarrinhoLista oCarrinhoLista, CompraModel compra, CompraPagamentoModel compraPagamento) { Carrinho oCarrinho = new Carrinho(); IRLib.Bilheteria bilheteria = new IRLib.Bilheteria(); string[] retornoVenda = new string[4]; string retornoMSG = "Ok"; try { int clienteID = compra.ClienteID; string SessionID = compra.SessionID; List <EstruturaDonoIngresso> listaDonoIngresso = new List <EstruturaDonoIngresso>(); foreach (Carrinho carrinho in oCarrinhoLista.Where(c => c.isCota.Length > 0)) { listaDonoIngresso.Add(new EstruturaDonoIngresso() { CodigoPromocional = carrinho.CotaItem.CodigoPromocional, DonoID = carrinho.DonoID, CotaItemID = carrinho.CotaItemID, CotaItemIDAPS = carrinho.CotaItemIDAPS, CPF = carrinho.CotaItem.DonoCPF, IngressoID = carrinho.CotaItem.IngressoID, Nominal = carrinho.CotaItem.Nominal, UsarCPFResponsavel = false, }); } IRLib.Cliente oCliente = new IRLib.Cliente(); oCliente.Ler(clienteID); RetornoModel <EstruturaReservaInternet> reservaInternet = MontarEstruturaReserva(compraPagamento, compra); if (!reservaInternet.Sucesso) { return(new RetornoModel <VendaRetornoModel>() { Sucesso = false, Mensagem = reservaInternet.Mensagem }); } if (reservaInternet.Retorno.CaixaID == 0) { reservaInternet.Retorno.CaixaID = bilheteria.VerificaCaixaInternet( reservaInternet.Retorno.UsuarioID, reservaInternet.Retorno.LojaID); } retornoVenda = bilheteria.VenderWebCortesia(oPagamento, oCarrinho.IngressosTaxasCarrinho(clienteID, SessionID), SessionID, celular, listaDonoIngresso, reservaInternet.Retorno, oCarrinhoLista.TotalTaxaProcessamento(), oCliente, clienteID); VendaRetornoModel retorno = new VendaRetornoModel(); string tipoEntrega = string.Empty; bool eTicket = false; IRLib.Entrega entrega = new IRLib.Entrega(); if (oPagamento.EntregaControleID > 0) { tipoEntrega = entrega.BuscaTipo(oPagamento.EntregaControleID); eTicket = entrega.VerificaeTicket(oPagamento.EntregaControleID); } //ErroIndefinido = -1, FalhaVenda = 0, Sucesso = 1, ClienteInexistente = 2, ReservaInexistente = 3, TaxaEntregaInexistente = 4, FormaPagamentoNaoCadastrada = 5, ReservasCanceladas = 6, switch (retornoVenda[0]) { case "1": //Sucesso retorno.MsgCodigo = 1; if (retornoVenda.Length > 1) { retorno.Senha = retornoVenda[1]; } if (retornoVenda.Length > 2) { retorno.VendaBilheteriaID = Convert.ToInt32(retornoVenda[2]); } if (retornoVenda.Length > 3) { retorno.MsgCelular = retornoVenda[3]; } if (retornoVenda.Length > 4) { retorno.Risco = retornoVenda[4]; } retornoMSG = TratarEnvioEmailPagamento(oPagamento, oCarrinhoLista, oCliente, clienteID, SessionID, oCarrinho, eTicket, retornoVenda, tipoEntrega, retornoMSG, true); TratarEnvioNPS(oCliente); return(new RetornoModel <VendaRetornoModel>() { Sucesso = true, Mensagem = "OK", Retorno = retorno }); case "7": oCarrinho.SetStatusCarrinhoVV(clienteID, SessionID, "VV", Convert.ToInt64(retornoVenda[2])); if (retornoVenda[0] == "7") { retornoMSG = "Sua compra foi efetuada com sucesso, no entanto não foi possivel realizar a compra do Serviço de Seguro Mondial."; } retornoMSG = TratarEnvioEmailPagamento(oPagamento, oCarrinhoLista, oCliente, clienteID, SessionID, oCarrinho, eTicket, retornoVenda, tipoEntrega, retornoMSG); TratarEnvioNPS(oCliente); return(new RetornoModel <VendaRetornoModel>() { Sucesso = true, Mensagem = retornoMSG }); case "0": // falha ao inserir registro na tVendaBilheteria return(new RetornoModel <VendaRetornoModel>() { Sucesso = false, Mensagem = "Falha ao efetuar o pedido. A venda não pôde ser gerada." }); case "2": // falha ao inserir registro na tVendaBilheteria return(new RetornoModel <VendaRetornoModel>() { Sucesso = false, Mensagem = "Cliente Inexistente. A venda não pôde ser gerada." }); case "3": return(new RetornoModel <VendaRetornoModel>() { Sucesso = false, Mensagem = "Reserva Inexistente. A venda não pôde ser gerada." }); case "4": return(new RetornoModel <VendaRetornoModel>() { Sucesso = false, Mensagem = "Taxa de Entrega Inexistente. A venda não pôde ser gerada." }); case "6": return(new RetornoModel <VendaRetornoModel>() { Sucesso = false, Mensagem = "Reservas Canceladas. A venda não pôde ser gerada." }); default: return(new RetornoModel <VendaRetornoModel>() { Sucesso = false, Mensagem = retornoVenda[1] }); } } catch (ApplicationException ex) { LogUtil.Error(ex); return(new RetornoModel <VendaRetornoModel> { Sucesso = false, Mensagem = ex.Message }); } }