private void BtnAplicarNuevaCapacidad_Click(object sender, EventArgs e)
        {
            // TODO - Cambiar la capacidad de una mesa
            string InformacionDelError = string.Empty;

            ClsMesas Mesas = new ClsMesas();
            Mesa     EditarCapacidadMesa = new Mesa();

            EditarCapacidadMesa = Mesas.LeerPorNumero((int)nudNumeroDeMesaEditar.Value, ClsMesas.ETipoDeListado.PorNumeroDeMesa, ref InformacionDelError);

            if (EditarCapacidadMesa != null)
            {
                if (EditarCapacidadMesa.Capacidad != (int)nudNuevaCapacidad.Value)
                {
                    EditarCapacidadMesa.Capacidad = (int)nudNuevaCapacidad.Value;

                    if (Mesas.Actualizar(EditarCapacidadMesa, ref InformacionDelError) != 0)
                    {
                        FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Capacidad de la mesa actualizada";
                    }
                    else if (InformacionDelError == string.Empty)
                    {
                        FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar la capacidad de la mesa");
                    }
                    else
                    {
                        FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar la capacidad de la mesa");
                        MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else
                {
                    FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Seleccione una nueva capacidad";
                }
            }
            else if (InformacionDelError == string.Empty)
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al buscar la mesa a editar");
            }
            else
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al buscar la mesa a editar");
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        private void BtnEliminar_Click(object sender, EventArgs e)
        {
            if (nudCantidadMesasAEliminar.Value > 0)
            {
                string InformacionDelError = string.Empty;

                ClsMesas Mesas = new ClsMesas();

                List <Mesa> MesasActivas;

                MesasActivas = Mesas.LeerListado(ClsMesas.ETipoDeListado.MesasOcupadas, ref InformacionDelError);

                if (MesasActivas != null)
                {
                    if (MesasActivas.Count == 0)
                    {
                        MesasActivas = null;

                        if (rbnPlantaBaja.Checked)
                        {
                            MesasActivas = Mesas.LeerListado(ClsMesas.ETipoDeListado.MesasActivasPB, ref InformacionDelError);
                        }
                        else
                        {
                            MesasActivas = Mesas.LeerListado(ClsMesas.ETipoDeListado.MesasActivasPA, ref InformacionDelError);
                        }

                        if (MesasActivas != null)
                        {
                            MesasActivas.Reverse();

                            int Contador = 0;

                            foreach (Mesa Elemento in MesasActivas)
                            {
                                Elemento.ID_EstadoMesa = (int)ClsEstadosMesas.EEstadosMesas.Inactivo;

                                if (Mesas.Actualizar(Elemento, ref InformacionDelError) != 0)
                                {
                                    FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Mesa/s eliminada/s";
                                }
                                else if (InformacionDelError == string.Empty)
                                {
                                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar eliminar la mesa");
                                    MessageBox.Show("Error al intentar eliminar la mesa", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                                else
                                {
                                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar eliminar la mesa");
                                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }

                                Contador++;

                                if (Contador == nudCantidadMesasAEliminar.Value)
                                {
                                    break;
                                }
                            }

                            // Actualizo los NUD con los nuevos valores
                            ActualizarControles();

                            FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Mesa/s eliminada/s";
                        }
                        else if (InformacionDelError == string.Empty)
                        {
                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar eliminar la mesa");
                        }
                        else
                        {
                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar eliminar la mesa");
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                    else
                    {
                        using (FrmInformacion FormInformacion = new FrmInformacion($"No puede eliminar mesas, el sistema se detectó que hay en uso actualmente para pedidos. Finalize " +
                                                                                   $"los mismo e intente nuevamente.", ClsColores.Blanco, 250, 300))
                        {
                            FormInformacion.ShowDialog();
                        }
                    }
                }
                else if (InformacionDelError != string.Empty)
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar eliminar la mesa");
                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
        private void BtnCrearMesa_Click(object sender, EventArgs e)
        {
            CargarConfiguracion();

            int MesasPlantaBaja = Convert.ToInt32(lblCantidadMesasPB.Text);

            // Entrar si la mesa que se va a crear es menor a 99 o la mesa que va a crear sera de la PA
            if (MesasPlantaBaja < 99 || rbnPlantaAlta.Checked)
            {
                string InformacionDelError = string.Empty;

                ClsMesas Mesas = new ClsMesas();
                Mesa     BuscarMesaInactiva = new Mesa();

                if (rbnPlantaBaja.Checked)
                {
                    BuscarMesaInactiva = Mesas.LeerPorNumero(-1, ClsMesas.ETipoDeListado.PrimerMesaInactivaPB, ref InformacionDelError);
                }
                else
                {
                    BuscarMesaInactiva = Mesas.LeerPorNumero(-1, ClsMesas.ETipoDeListado.PrimerMesaInactivaPA, ref InformacionDelError);
                }

                if (BuscarMesaInactiva != null) //encontro una mesa ya creada para actualizarle el estado y la capacidad
                {
                    BuscarMesaInactiva.ID_EstadoMesa = (int)ClsEstadosMesas.EEstadosMesas.Activo_Disponible;
                    BuscarMesaInactiva.Capacidad     = (int)nudCapacidadNuevaMesa.Value;

                    if (Mesas.Actualizar(BuscarMesaInactiva, ref InformacionDelError) != 0)
                    {
                        ActualizarControles();
                        FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Mesa creada correctamente";
                    }
                    else if (InformacionDelError != string.Empty)
                    {
                        FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al crear la mesa");
                        MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else if (InformacionDelError == string.Empty) // No se encontro una mesa inactiva ni se genero una excepcion
                {                                             // crear la mesa
                    BuscarMesaInactiva = new Mesa();

                    BuscarMesaInactiva.Numero        = Convert.ToInt32(lblNumeroNuevaMesa.Text);
                    BuscarMesaInactiva.ID_EstadoMesa = (int)ClsEstadosMesas.EEstadosMesas.Activo_Disponible;
                    BuscarMesaInactiva.Capacidad     = (int)nudCapacidadNuevaMesa.Value;
                    BuscarMesaInactiva.ID_Usuario    = 1;

                    if (Mesas.Crear(BuscarMesaInactiva, ref InformacionDelError) != 0)
                    {
                        ActualizarControles();
                        FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Mesa creada correctamente";
                    }
                    else if (InformacionDelError == string.Empty)
                    {
                        FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al crear la mesa");
                    }
                    else
                    {
                        FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al crear la mesa");
                        MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al crear la mesa");
                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Alcanzo el limite de mesas en la PB";
            }
        }