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 }); } }
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 }); } }