Exemple #1
0
        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
                });
            }
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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
                });
            }
        }
Exemple #4
0
        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
                });
            }
        }