public int buscarMesa(DateTime fechaReserva, int cantidadComensales)
        {
            Token token = (Token)Session["token"];

            _mesaService = new MesaService(token.access_token);
            List <Mesa> mesas            = _mesaService.Obtener();
            List <Mesa> mesasConCapcidad = mesas.Where(x => x.CantidadComensales >= cantidadComensales).ToList();

            _reservaService = new ReservaService(token.access_token);
            List <Reserva> reservas = _reservaService.Obtener();
            int            idMesa   = 0;

            foreach (Mesa mesa in mesasConCapcidad)
            {
                DateTime horaDesde = fechaReserva.AddMinutes(-60);
                DateTime horahasta = fechaReserva.AddMinutes(60);
                if (reservas == null || reservas.Count == 0)
                {
                    idMesa = mesa.Id;
                    break;
                }
                List <Reserva> reservasMesa = reservas.Where(x => x.IdMesa == mesa.Id &&
                                                             x.FechaReserva.Date == fechaReserva.Date &&
                                                             x.FechaReserva >= horaDesde &&
                                                             x.FechaReserva <= horahasta
                                                             ).ToList();
                if (reservasMesa.Count == 0)
                {
                    idMesa = mesa.Id;
                    break;
                }
            }
            return(idMesa);
        }
示例#2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ValidarSesion();
                Usuario usuario = (Usuario)Session["usuario"];
                if (usuario.IdTipoUsuario != TipoUsuario.administrador)
                {
                    linkUsuarios.Attributes.Add("class", "list-group-item d-none");
                    linkReporteria.Attributes.Add("class", "list-group-item d-none");

                    if (usuario.IdTipoUsuario != TipoUsuario.bodega)
                    {
                        linkBodega.Attributes.Add("class", "list-group-item d-none");
                    }

                    if (!new int[] { TipoUsuario.cocina, TipoUsuario.garzon }.Contains(usuario.IdTipoUsuario))
                    {
                        linkCocina.Attributes.Add("class", "list-group-item d-none");
                        linkRestaurante.Attributes.Add("class", "list-group-item d-none");
                    }

                    if (usuario.IdTipoUsuario != TipoUsuario.garzon)
                    {
                        linkRestaurante.Attributes.Add("class", "list-group-item d-none");
                    }
                }
                Token token = (Token)Session["token"];
                _mesaService = new MesaService(token.access_token);
                List <Mesa> mesas = _mesaService.Obtener();
                if (mesas != null && mesas.Count > 0)
                {
                    List <Mesa> mesasDisponibles = mesas.Where(x => x.EstadoMesa.Id == EstadoMesa.disponible).ToList();
                    List <Mesa> mesasOcupadas    = mesas.Where(x => x.EstadoMesa.Id == EstadoMesa.ocupada).ToList();
                    lblMesasDisponibles.Text = mesasDisponibles.Count.ToString();
                    lblMesasOcupadas.Text    = mesasOcupadas.Count.ToString();
                }
                _reservaService = new ReservaService(token.access_token);
                List <Reserva> reservas = _reservaService.Obtener();
                if (reservas != null && reservas.Count > 0)
                {
                    List <Reserva> reservasActivas = reservas.Where(x => x.EstadoReserva.Id == EstadoReserva.enCurso).ToList();
                    lblComensales.Text = reservasActivas.Count.ToString();
                    List <Reserva> listaProximaReserva = reservas.Where(x => x.EstadoReserva.Id == EstadoReserva.creada &&
                                                                        x.FechaReserva.Date == DateTime.Now.Date &&
                                                                        x.FechaReserva > DateTime.Now).ToList();
                    lblProximaReserva.Text = "Sin próximas reservas para hoy";
                    if (listaProximaReserva != null && listaProximaReserva.Count > 0)
                    {
                        Reserva proximaReserva = listaProximaReserva.OrderBy(x => x.FechaReserva).FirstOrDefault();
                        if (proximaReserva != null)
                        {
                            lblProximaReserva.Text = proximaReserva.FechaReserva.ToString("g") + " - " + proximaReserva.Mesa.Nombre;
                        }
                    }
                }
            }
        }
示例#3
0
        protected void btnEditarMesa_Click(object sender, EventArgs e)
        {
            ValidarSesion();
            Page.Validate("ValidacionMesa");
            if (!Page.IsValid)
            {
                upModalMesa.Update();
                return;
            }
            try
            {
                Mesa mesa = new Mesa();
                mesa.Id                 = int.Parse(txtIdMesa.Text);
                mesa.Nombre             = txtNombreMesa.Text;
                mesa.Nombre             = txtNombreMesa.Text;
                mesa.CantidadComensales = int.Parse(txtCantidadComensalesMesa.Text);
                mesa.IdEstadoMesa       = int.Parse(ddlEstadoMesa.SelectedValue);

                Token token = (Token)Session["token"];
                _mesaService = new MesaService(token.access_token);
                bool editar = _mesaService.Modificar(mesa, mesa.Id);
                if (editar)
                {
                    List <Mesa> mesas = _mesaService.Obtener();
                    if (mesas != null && mesas.Count > 0)
                    {
                        actualizarRepeater(listaMesas, mesas, listaMesasVacia);
                        upListaMesas.Update();
                    }
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "editarMesa", "Swal.fire('Mesa editada', '', 'success');", true);
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "modalMesa", "$('#modalMesa').modal('hide');", true);
                }
                else
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "modalMesa", "Swal.fire('Error al editar mesa', '', 'error');", true);
                }
            }
            catch (Exception ex)
            {
                string mensaje = ex != null && ex.Message != null ? ex.Message : "Ocurrió un error inesperado. Intente nuevamente";
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "error", "Swal.fire('Error', '" + mensaje + "', 'error');", true);
                return;
            }
        }
示例#4
0
        protected void btnModalEditarMesa_Click(object sender, RepeaterCommandEventArgs e)
        {
            try
            {
                ValidarSesion();
                int idMesa;
                if (int.TryParse((string)e.CommandArgument, out idMesa))
                {
                    Token token = (Token)Session["token"];
                    _mesaService = new MesaService(token.access_token);
                    Mesa mesa = _mesaService.Obtener(idMesa);
                    if (mesa != null)
                    {
                        tituloModalMesa.Text           = "Editar Mesa";
                        btnCrearMesa.Visible           = false;
                        btnEditarMesa.Visible          = true;
                        txtIdMesa.Text                 = mesa.Id.ToString();
                        txtNombreMesa.Text             = mesa.Nombre;
                        txtCantidadComensalesMesa.Text = mesa.CantidadComensales.ToString();
                        ddlEstadoMesa.SelectedValue    = mesa.IdEstadoMesa.ToString();

                        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "modalMesa", "$('#modalMesa').modal('show');", true);
                        upModalMesa.Update();
                    }
                }
                limpiarTabs();
                tabMesas.Attributes.Add("class", "nav-link active");
                divMesas.Attributes.Add("class", "tab-pane fade active show");
            }
            catch (Exception ex)
            {
                string mensaje = ex != null && ex.Message != null ? ex.Message : "Ocurrió un error inesperado. Intente nuevamente";
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "error", "Swal.fire('Error', '" + mensaje + "', 'error');", true);
                return;
            }
        }
示例#5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    ValidarSesion();

                    Token token = (Token)Session["token"];
                    _clienteService        = new ClienteService(token.access_token);
                    _reservaService        = new ReservaService(token.access_token);
                    _mesaService           = new MesaService(token.access_token);
                    _estadoReservaService  = new EstadoReservaService(token.access_token);
                    _estadoMesaService     = new EstadoMesaService(token.access_token);
                    _horarioReservaService = new HorarioReservaService(token.access_token);
                    List <Reserva> reservas = _reservaService.Obtener();
                    if (reservas != null && reservas.Count > 0)
                    {
                        var reservasOrdenadas = reservas.OrderByDescending(x => x.FechaReserva).ToList();
                        actualizarRepeater(listaReservas, reservasOrdenadas, listaReservasVacia);
                    }

                    List <Cliente> clientes = _clienteService.Obtener();
                    if (clientes != null && clientes.Count > 0)
                    {
                        var clientesOrdenados = clientes.OrderBy(x => x.Id).ToList();
                        actualizarRepeater(listaClientes, clientesOrdenados, listaClientesVacia);
                        actualizarDdlClientes(clientes);
                    }

                    List <Mesa> mesas = _mesaService.Obtener();
                    if (mesas != null && mesas.Count > 0)
                    {
                        var mesasOrdenadas = mesas.OrderBy(x => x.Id).ToList();
                        actualizarRepeater(listaMesas, mesasOrdenadas, listaMesasVacia);
                        actualizarDdlMesas(mesas);
                    }

                    List <EstadoReserva> estadosReserva = _estadoReservaService.Obtener();
                    if (estadosReserva != null && estadosReserva.Count > 0)
                    {
                        ddlEstadoReserva.DataSource     = estadosReserva;
                        ddlEstadoReserva.DataTextField  = "Nombre";
                        ddlEstadoReserva.DataValueField = "Id";
                        ddlEstadoReserva.DataBind();
                        ddlEstadoReserva.Items.Insert(0, new ListItem("Seleccionar", ""));
                        ddlEstadoReserva.SelectedIndex = 0;
                    }
                    List <EstadoMesa> estadoMesa = _estadoMesaService.Obtener();
                    if (estadoMesa != null && estadoMesa.Count > 0)
                    {
                        ddlEstadoMesa.DataSource     = estadoMesa;
                        ddlEstadoMesa.DataTextField  = "Nombre";
                        ddlEstadoMesa.DataValueField = "Id";
                        ddlEstadoMesa.DataBind();
                        ddlEstadoMesa.Items.Insert(0, new ListItem("Seleccionar", ""));
                        ddlEstadoMesa.SelectedIndex = 0;
                    }
                    List <HorarioReserva> horarioReserva = _horarioReservaService.Obtener();
                    if (horarioReserva != null && horarioReserva.Count > 0)
                    {
                        var horarioDomingo = horarioReserva.FirstOrDefault(x => x.DiaSemana == 0);
                        horarioReserva.RemoveAt(horarioReserva.FindIndex(x => x.DiaSemana == 0));
                        horarioReserva.Add(horarioDomingo);
                        listaHorariosReserva.DataSource = horarioReserva;
                        listaHorariosReserva.DataBind();
                    }
                }
            }
            catch (Exception ex)
            {
                string mensaje = ex != null && ex.Message != null ? ex.Message : "Ocurrió un error inesperado. Intente nuevamente";
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "error", "Swal.fire('Error', '" + mensaje + "', 'error');", true);
                return;
            }
        }
        protected void btnCrearReserva_Click(object sender, EventArgs e)
        {
            Page.Validate();
            if (!Page.IsValid)
            {
                return;
            }
            Token token = (Token)Session["token"];

            int idCliente = 0;

            try
            {
                idCliente = crearCliente();
            }
            catch (Exception ex)
            {
                string mensaje = ex != null && ex.Message != null ? ex.Message : "Ocurrió un error inesperado. Intente nuevamente";
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "error", "Swal.fire('Error', '" + mensaje + "', 'error');", true);
                return;
            }

            if (idCliente == 0)
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "errorCliente", "Swal.fire('Error al crear cliente', 'Inténtelo nuevamente', 'error');", true);
                return;
            }

            int      idReserva = 0;
            DateTime fechaReserva;

            try
            {
                fechaReserva = Convert.ToDateTime(txtFecha.Text);
                int      hora   = int.Parse(ddlHora.Text);
                int      minuto = int.Parse(ddlMinuto.Text);
                TimeSpan tsHora = new TimeSpan(hora, minuto, 0);
                fechaReserva = fechaReserva.Date + tsHora;
            }
            catch (Exception ex)
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "error", "Swal.fire('Error', 'Debe seleccionar una fecha válida', 'error');", true);
                return;
            }
            int cantidadComensales = int.Parse(txtComensales.Text);

            try
            {
                _mesaService = new MesaService(token.access_token);
                List <Mesa> mesas = _mesaService.Obtener();

                int maximoComensales = mesas.Max(x => x.CantidadComensales);
                if (cantidadComensales > maximoComensales)
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "errorComensales", "Swal.fire('El número máximo de comensales por reserva es " + maximoComensales + "', 'Para agregar más comensales puede crear otra reserva', 'warning');", true);
                    return;
                }

                int idMesa = buscarMesa(fechaReserva, cantidadComensales);
                if (idMesa == 0)
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "errorMesa", "Swal.fire('No se encontró una mesa disponible. Seleccione otra fecha u hora', '', 'error');", true);
                    return;
                }
                idReserva = guardarReserva(idCliente, idMesa, fechaReserva);
            }
            catch (Exception ex)
            {
                string mensaje = ex != null && ex.Message != null ? ex.Message : "Ocurrió un error inesperado. Intente nuevamente";
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "error", "Swal.fire('Error', '" + mensaje + "', 'error');", true);
                return;
            }

            if (idReserva == 0)
            {
                Response.Redirect("/Paginas/Reservas/MensajeCrearReservaError.aspx");
                return;
            }
            Response.Redirect("/Paginas/Reservas/MensajeCrearReservaExito.aspx");
        }