Exemple #1
0
        public static RetornoModel <EstruturaReservaInternet> MontarEstruturaReserva(CompraPagamentoModel pagamento, CompraModel compra)
        {
            if (compra.EstruturaVenda == null)
            {
                compra.EstruturaVenda = new CompraEstruturaVendaModel();
            }

            if (compra.EstruturaVenda.UsuarioID == 0 || compra.EstruturaVenda.UsuarioID == IRLib.Usuario.INTERNET_USUARIO_ID)
            {
                compra.EstruturaVenda.CaixaID   = 0;
                compra.EstruturaVenda.LojaID    = Convert.ToInt32(ConfiguracaoAppUtil.Get(enumConfiguracaoBO.InternetLojaID));
                compra.EstruturaVenda.UsuarioID = Convert.ToInt32(ConfiguracaoAppUtil.Get(enumConfiguracaoBO.InternetUsuarioID));
                compra.EstruturaVenda.CanalID   = Convert.ToInt32(ConfiguracaoAppUtil.Get(enumConfiguracaoBO.CanalInternet));
                compra.EstruturaVenda.CanalTipo = 1;
            }
            else
            {
                if (compra.EstruturaVenda.CaixaErrado)
                {
                    return new RetornoModel <EstruturaReservaInternet>()
                           {
                               Sucesso = false, Mensagem = "Esse caixa não pode verder na internet. Abra outro caixa!", Retorno = null
                           }
                }
                ;
                else if (!compra.EstruturaVenda.CanalVerificado)
                {
                    var canaisSplit = ConfiguracaoAppUtil.Get(enumConfiguracaoBO.CanaisInternet);

                    if (!canaisSplit.Contains(compra.EstruturaVenda.CanalID.ToString()) || !new IRLib.Loja().ValidarLojaCanal(compra.EstruturaVenda.LojaID, new List <string>()
                    {
                        compra.EstruturaVenda.CanalID.ToString()
                    }))
                    {
                        compra.EstruturaVenda.CaixaErrado = true;
                        return(new RetornoModel <EstruturaReservaInternet>()
                        {
                            Sucesso = false, Mensagem = "Esse caixa não pode verder na internet. Abra outro caixa!", Retorno = null
                        });
                    }
                    compra.EstruturaVenda.CanalVerificado = true;
                }
            }

            EstruturaReservaInternet estrutura = new EstruturaReservaInternet()
            {
                CaixaID   = compra.EstruturaVenda.CaixaID,
                LojaID    = compra.EstruturaVenda.LojaID,
                UsuarioID = compra.EstruturaVenda.UsuarioID,
                CanalID   = compra.EstruturaVenda.CanalID,
                ClienteID = compra.ClienteID,
                SessionID = compra.SessionID,
                GUID      = Guid.NewGuid().ToString(),
            };

            return(new RetornoModel <EstruturaReservaInternet>()
            {
                Mensagem = "OK", Sucesso = true, Retorno = estrutura
            });
        }
Exemple #2
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
                });
            }
        }