public static int ObterMesaDisponivel(int mesaId)
        {
            bool mesaDisponivel = false;

            while (!mesaDisponivel)
            {
                Console.Clear();

                ViewPrograma.CabecalhoDadosIniciais();

                if (!MesaService.ValidarMesa(mesaId))
                {
                    ViewPrinter.Println("\t A mesa escolhida não existe! ", ConsoleColor.White, ConsoleColor.Red);
                }
                else
                {
                    ViewPrinter.Println("\t A mesa escolhida não está disponível! ", ConsoleColor.White, ConsoleColor.Red);
                }

                Console.WriteLine();

                LabelObterDadosMesa();
                mesaId = int.Parse(Console.ReadLine());

                if (MesaService.ValidarMesa(mesaId) && !MesaService.MesaOcupada(mesaId))
                {
                    mesaDisponivel = true;
                }
            }

            return(mesaId);
        }
        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);
        }
        public MesasViewModel()
        {
            instance = this;

            mesasService = MesaService.GetInstance();

            tapCommand = new RelayCommand <MesaResponseModel>((args) => OnTappedAsync(args));
        }
Exemple #4
0
 public PedidoesController(MesaService mesaService, MenuService menuService, PedidoService pedidoService, FuncionarioService funcionarioService, Ia_ComandaRestauranteContext context)
 {
     _context            = context;
     _mesaService        = mesaService;
     _menuService        = menuService;
     _pedidoService      = pedidoService;
     _funcionarioService = funcionarioService;
 }
Exemple #5
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;
                        }
                    }
                }
            }
        }
        public static void LabelObterQuantidadeClientes(int mesaId)
        {
            ViewPrinter.Println("\tObtendo quantidade de clientes \t", ConsoleColor.Yellow);

            Console.WriteLine();

            int quantidadeClientes = MesaService.ObterQuantidadeClientes(mesaId);

            ViewPrinter.Println($"\t  * A mesa [{ mesaId }] comporta, no máximo, { quantidadeClientes } pessoas  ", ConsoleColor.Black, ConsoleColor.Yellow);

            Console.WriteLine();

            ViewPrinter.Print("\tQuantidade de clientes: ");
        }
        public static void MostrarMesasDisponiveis()
        {
            var listaMesas = MesaService.ObterMesas(true);

            ViewPrinter.Print("\tMesas disponiveis: \n\t");

            ViewPrinter.Print(" # ", ConsoleColor.White, ConsoleColor.DarkGreen);

            foreach (MesaListagemModel mesa in listaMesas)
            {
                ViewPrinter.Print($"[{ mesa.MesaId }] ", ConsoleColor.White, ConsoleColor.DarkGreen);
            }

            ViewPrinter.Print("# ", ConsoleColor.White, ConsoleColor.DarkGreen);
            Console.WriteLine();

            // ViewPrinter.Print("] ", ConsoleColor.White, ConsoleColor.DarkGreen);
        }
Exemple #8
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;
            }
        }
        protected void Pagar(int medioPago)
        {
            validarIngreso();
            if (Session["tipoDocumentoPago"] == null) //No se guardó la info del tipo de pago
            {
                Response.Redirect("/Paginas/Autoservicio/GestionAutoservicio.aspx");
            }
            Pedido pedido = (Pedido)Session["pedidoCliente"];

            if (Session["montoTarjeta"] == null) //Pago solo con tarjeta, se completa el pago
            {
                Token token = (Token)Session["token"];
                _mesaService = new MesaService(token.access_token);
                Reserva reserva = (Reserva)Session["reservaCliente"];
                Mesa    mesa    = reserva.Mesa;
                mesa.IdEstadoMesa = EstadoMesa.disponible;
                mesa.EstadoMesa   = null;
                bool editarMesa = _mesaService.Modificar(mesa, mesa.Id);
                if (!editarMesa)
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "cerrarCuenta", "Swal.fire('Error al realizar el pago', '', 'error');", true);
                    return;
                }
                pedido.IdEstadoPedido = EstadoPedido.pagado;
                pedido.Reserva        = null;
                pedido.EstadoPedido   = null;

                _pedidoService = new PedidoService(token.access_token);
                bool editar = _pedidoService.Modificar(pedido, pedido.Id);
                if (!editar)
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "cerrarCuenta", "Swal.fire('Error al realizar el pago', '', 'error');", true);
                }
            }
            crearDocumentoPago(pedido.Id, pedido.Total, medioPago);
            Session["pedidoCliente"] = pedido;
            Response.Redirect("/Paginas/Autoservicio/PagoTarjetaFinalizado.aspx");
        }
        public static int ObterQuantidadeClientesValida(int mesaId, int quantidadeClientes)
        {
            bool quantidadeValida = false;

            while (!quantidadeValida)
            {
                Console.Clear();

                ViewPrograma.CabecalhoDadosIniciais();

                if (quantidadeClientes <= 0)
                {
                    ViewPrinter.Println("\t Quantidade de clientes inválida! ", ConsoleColor.White, ConsoleColor.Red);
                }
                else if (quantidadeClientes > MesaService.ObterQuantidadeClientes(mesaId))
                {
                    ViewPrinter.Println("\t Esta mesa não comporta esta quantidade de pessoas! ", ConsoleColor.White, ConsoleColor.Red);
                }
                else
                {
                    ViewPrinter.Println("\t Valor informado inválido! ", ConsoleColor.White, ConsoleColor.Red);
                }

                Console.WriteLine();

                LabelObterQuantidadeClientes(mesaId);
                quantidadeClientes = int.Parse(Console.ReadLine());

                if (quantidadeClientes <= MesaService.ObterQuantidadeClientes(mesaId) && quantidadeClientes > 0)
                {
                    quantidadeValida = true;
                }
            }

            return(quantidadeClientes);
        }
Exemple #11
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;
            }
        }
Exemple #12
0
        static void Main(string[] args)
        {
            Console.Clear();

            ViewPrograma.Welcome();

            Console.Clear();

            // Solicitando dados iniciais
            Console.WriteLine();
            ViewPrinter.Print("\tSEU ATENDIMENTO FOI INICIADO", ConsoleColor.Green);
            Console.WriteLine();

            // Leitura e validacao ID Mesa
            ViewPrograma.CabecalhoDadosIniciais();
            ViewMesa.LabelObterDadosMesa();
            int  mesaId         = int.Parse(Console.ReadLine());
            bool mesaDisponivel = MesaService.ValidarMesa(mesaId) && !MesaService.MesaOcupada(mesaId);

            if (!mesaDisponivel)
            {
                mesaId = ViewMesa.ObterMesaDisponivel(mesaId);
            }
            ViewMesa.MostrarMesaSelecionada(mesaId);
            Console.Clear();

            // Leitura e validacao ID Comanda
            ViewPrograma.CabecalhoDadosIniciais();
            ViewComanda.LabelObterDadosComanda();
            int comandaId = int.Parse(Console.ReadLine());

            // bool comandaExistente = !ComandaService.JaExisteComanda(comandaId);
            // if (!comandaExistente) comandaId = ViewComanda.ObterComandaValida(comandaId);
            ViewComanda.MostrarComandaSelecionada(comandaId);
            Console.Clear();

            // Leitura e validacao Quantidade de Clientes
            ViewPrograma.CabecalhoDadosIniciais();
            ViewMesa.LabelObterQuantidadeClientes(mesaId);
            int  quantidadeClientes       = int.Parse(Console.ReadLine());
            bool quantidadeClientesValida = MesaService.QuantidadeClientesValida(mesaId, quantidadeClientes);

            if (!quantidadeClientesValida)
            {
                quantidadeClientes = ViewMesa.ObterQuantidadeClientesValida(mesaId, quantidadeClientes);
            }
            ViewMesa.MostrarQuantidadeClientesSelecionada(quantidadeClientes);
            Console.Clear();

            // Criacao do modelo de comanda recebido via formulario
            var comanda = new ComandaFormularioModelCLI()
            {
                ComandaId         = comandaId,
                MesaId            = mesaId,
                QuantidadeCliente = quantidadeClientes
            };

            int tipoExibicaoCardapio = ViewPrograma.EscolhaFormatoExibicaoCardapio();

            Console.Clear();

            // Salvando comanda no banco de dados
            ComandaService.RegistrarComanda(comanda);

            /*
             * // Mostrando comanda resumida antes de iniciar o loop principal do programa
             * ViewComanda.MostrarComandaResumida(comandaId);
             *
             * ViewPrograma.MensagemContinuarAtendimento();
             */

            // Executa um loop mostrando o menu principal enquanto nao for explicitamente encerrado
            ViewPrograma.MostrarMenu(comandaId, tipoExibicaoCardapio);
        }
Exemple #13
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");
        }
 public MesasController(SistemaPedidosContext context, PedidoService pedidoService, MesaService mesaService)
 {
     _context       = context;
     _pedidoService = pedidoService;
     _mesaService   = mesaService;
 }
 public MesasController(MesaService mesaService, Ia_ComandaRestauranteContext context)
 {
     _mesaService = mesaService;
     _context     = context;
 }