Exemple #1
0
        //Este evento se ejecutará cuando ocurra el evento FormClosing del FrmPrincipal (que se ejecuta desde el boton cerrar sesion)
        private void CerrarSesion(object sender, FormClosedEventArgs e)
        {
            if (!SeCierraLaAplicacion)
            {
                Show();
            }

            if (TiempoDeSesionExedido)
            {
                Hide();

                FrmInformacion FormInformacion = new FrmInformacion($"Alcanzo el tiempo de sesion maximo. El programa se cerró " +
                                                                    $"intencionalmente para pedirle que inicie sesion nuevamente. Esto se hace con el objetivo " +
                                                                    $"de reducir el consumo de recursos de su computadora en caso de que " +
                                                                    $"quedara el programa abierto.", ClsColores.Blanco, 275, 525);

                FormInformacion.FormClosed += CerrarInformacion;

                FormInformacion.TopMost = true;
                FormInformacion.Show();

                TiempoDeSesionExedido = false;
            }

            ID_UsuarioInicioSesion       = -1;
            ID_PerfilUsuarioInicioSesion = -1;
            NombreUsuarioInicioSesion    = string.Empty;
        }
Exemple #2
0
        private void DtpFecha_ValueChanged(object sender, EventArgs e)
        {
            if (DateTime.Today > dtpFecha.Value.Date)
            {
                dtpFecha.Value = DateTime.Today;

                using (FrmInformacion FormInformacion = new FrmInformacion("No puede seleccionar una fecha que ya paso para reservar.", ClsColores.Blanco, 100, 300))
                {
                    FormInformacion.ShowDialog();
                }
            }

            if (DatosCargados)
            {
                if (ListaDeMesasReserva.Count > 0)
                {
                    using (FrmInformacion FormInformacion = new FrmInformacion("Fecha actualizada, debe elegir nuevamente las mesas.", ClsColores.Blanco, 100, 300))
                    {
                        FormInformacion.ShowDialog();
                    }
                }

                ListaDeMesasReserva.Clear();
            }
        }
        private void TsmVerVencimientos_Click(object sender, EventArgs e)
        {
            string InformacionDelError = string.Empty;

            ClsVencimientosFuncionalidades VencimientosFuncionalidades = new ClsVencimientosFuncionalidades();
            VencimientoFuncionalidades     ComprobarVencimientos       = VencimientosFuncionalidades.LeerPorNumero(1, ref InformacionDelError);

            if (ComprobarVencimientos != null)
            {
                using (FrmInformacion FormInformacion = new FrmInformacion($"Vencimiento de todo el programa [ {ComprobarVencimientos.VencimientoGeneral.ToShortDateString()} ]\r\n\r\n" +
                                                                           $"Vencimiento de funciones especificas (estadisticas) [ {ComprobarVencimientos.VencimientoFunciones.ToShortDateString()} ]", ClsColores.Blanco, 200, 600))
                {
                    FormInformacion.ShowDialog();
                }
            }
            else if (InformacionDelError == string.Empty)
            {
                MessageBox.Show("Fallo al leer los datos para compobar el vencimiento de las funciones " +
                                "del sistema", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        private void BtnImprimirTicket_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgvArticulosPedido.Rows.Count > 0)
                {
                    PtdImprimirTicket = new PrintDocument();

                    if (ClsComprobarEstadoImpresora.ComprobarEstadoImpresora(PtdImprimirTicket.PrinterSettings.PrinterName))
                    {
                        PtdImprimirTicket.PrintPage += PrintPageEventHandler;
                        PtdImprimirTicket.Print();
                    }

                    if (SoloMostrar)
                    {
                        Close();
                    }
                }
                else
                {
                    using (FrmInformacion FormInformacion = new FrmInformacion($"No hay ningun articulo cargado en el pedido.", ClsColores.Blanco, 200, 300))
                    {
                        FormInformacion.ShowDialog();
                    }
                }
            }
            catch (Exception Error)
            {
                MessageBox.Show($"Ocurrio un error al intentar imprimir el ticket: {Error.Message}", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            }
        }
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            ListaDeMesasReserva.Clear();
            Numeracion.Clear();
            int TotalDeFilas = dgvSeleccionarMesaReserva.Rows.Count;

            for (int Indice = 0; Indice < TotalDeFilas; Indice++)
            {
                //Pregunto si la celda es diferente a null
                if (dgvSeleccionarMesaReserva.Rows[Indice].Cells[(int)ENumColDGVMesa.Seleccionar].Value != null)
                {
                    //Casteo el check del objeto a booleano y pregunto si es true
                    if ((bool)dgvSeleccionarMesaReserva.Rows[Indice].Cells[(int)ENumColDGVMesa.Seleccionar].Value)
                    {
                        ListaDeMesasReserva.Add((int)dgvSeleccionarMesaReserva.Rows[Indice].Cells[(int)ENumColDGVMesa.ID_Mesa].Value);
                        Numeracion.Add((int)dgvSeleccionarMesaReserva.Rows[Indice].Cells[(int)ENumColDGVMesa.Numero].Value);
                    }
                }
            }

            if (ListaDeMesasReserva.Count > 0)
            {
                if (ListaDeMesasReserva.Count <= 12)
                {
                    FrmRespuesta RespuestaFormulario;

                    if (Convert.ToInt32(lblResultadoCantidadPersonas.Text) > Convert.ToInt32(lblResultadoCapacidadTotal.Text))
                    {
                        RespuestaFormulario = new FrmRespuesta($"¿Esta seguro que desea crear la reserva con una capacidad menor a la del total de " +
                                                               "clientes?", FrmRespuesta.ETamaño.Pequeño, FrmRespuesta.ETipo.Si_No);
                    }
                    else
                    {
                        RespuestaFormulario = new FrmRespuesta();
                    }

                    if (RespuestaFormulario.DialogResult == DialogResult.Yes)
                    {
                        FormAdministrarReservas.S_ListaDeMesasReserva = ListaDeMesasReserva;
                        FormAdministrarReservas.S_Numeracion          = Numeracion;
                        DialogResult = DialogResult.OK;
                        Close();
                    }
                }
                else
                {
                    using (FrmInformacion FormInformacion = new FrmInformacion("El maximo de mesas permitidas es 12.", ClsColores.Blanco, 150, 300))
                    {
                        FormInformacion.ShowDialog();
                    }
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion("Debe seleccionar como minimo una mesa para crear la reserva.", ClsColores.Blanco, 150, 300))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }
        /// <summary>Actualiza el estado del articulo a activo/inactivo.</summary>
        /// <param name="_EstadoElemento">Enum que contrendra el numero del tipo de estado.</param>
        private void ActualizarEstadoArticulo(ClsEstadosArticulos.EEstadosArticulos _EstadoElemento)
        {
            ClsArticulos Articulo           = new ClsArticulos();
            Articulo     ActualizarArticulo = new Articulo();

            int TotalDeFilas = dgvEstadoArticulo.Rows.Count;

            for (int Indice = 0; Indice < TotalDeFilas; Indice++)
            {
                //Pregunto si la celda es diferente a null
                if (dgvEstadoArticulo.Rows[Indice].Cells[(int)ENumColDGVEstadoArticulo.Seleccionar].Value != null)
                {
                    //Casteo el check del objeto a booleano y pregunto si es true
                    if ((bool)dgvEstadoArticulo.Rows[Indice].Cells[(int)ENumColDGVEstadoArticulo.Seleccionar].Value)
                    {
                        string InformacionDelError = string.Empty;

                        ActualizarArticulo = Articulo.LeerPorNumero((int)dgvEstadoArticulo.Rows[Indice].Cells[(int)ENumColDGVEstadoArticulo.ID_Articulo].Value, ref InformacionDelError);

                        if (ActualizarArticulo != null)
                        {
                            ActualizarArticulo.ID_EstadoArticulo = (int)_EstadoElemento;

                            if (ActualizarArticulo.CategoriaArticulo.ID_EstadoCategoriaArticulo != (int)ClsEstadosCategoriasArticulos.EEstadosCategoriasArticulos.inactivo)
                            {
                                if (Articulo.Actualizar(ActualizarArticulo, ref InformacionDelError) != 0)
                                {
                                    dgvEstadoArticulo.Rows.Remove(dgvEstadoArticulo.Rows[Indice]);

                                    Indice       -= 1;
                                    TotalDeFilas -= 1;

                                    UltimaFilaSeleccionada = -1;
                                }
                                else if (InformacionDelError != string.Empty)
                                {
                                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                            }
                            else
                            {
                                using (FrmInformacion FormInformacion = new FrmInformacion($"El articulo '{ActualizarArticulo.Nombre}' (categoria '{ActualizarArticulo.CategoriaArticulo.Nombre}') " +
                                                                                           $"no se puede activar debido a que su categoria fue eliminada.", ClsColores.Blanco, 150, 350))
                                {
                                    FormInformacion.ShowDialog();
                                }
                            }
                        }
                        else if (InformacionDelError == string.Empty)
                        {
                            MessageBox.Show($"Error al intentar actualizar el articulo", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
        }
 private void PicBTNInformacion_Click(object sender, EventArgs e)
 {
     using (FrmInformacion FormInformacion = new FrmInformacion($"Seleccione las mesas que se usaran para la reserva. Puede seleccionar mesas con una capacidad " +
                                                                $"menor a la del total de clientes que asistiran, solo se le advertira, pero debe seleccionar como minimo una mesa para " +
                                                                $"asignarle a la reserva.", ClsColores.Blanco, 300, 300))
     {
         FormInformacion.ShowDialog();
     }
 }
 private void PicBTNInformacionVentanas_Click(object sender, EventArgs e)
 {
     using (FrmInformacion FormInformacion = new FrmInformacion("Las ventanas en las que se aplicara esto (carta, caja, y configuracion), " +
                                                                "son consideradas importantes debido a la informacion que brindan y manejan, por lo que se requiere el acceso de un tipo de " +
                                                                "usuario en especifico para evitar una mala gestion de las partes escenciales del programa.\r\n\r\nPasado el tiempo " +
                                                                "asignado, se ocultara la ventana, para de esta forma forzar a que tenga que validar su usuario nuevamente y comprobar " +
                                                                "que tiene el perfil requerido.", ClsColores.Blanco, 300, 450))
     {
         FormInformacion.ShowDialog();
     }
 }
Exemple #9
0
 private void PicBTNInformacion_Click(object sender, EventArgs e)
 {
     using (FrmInformacion FormInformacion = new FrmInformacion("Las mesas que se muestran disponibles, son las que no estan ocupadas " +
                                                                "en este momento.\r\n\r\nSolo puede juntar un maximo de 12 mesas (y todas estas deben pertenecer a la misma " +
                                                                "planta).\r\n\r\nPuede cargar los clientes que asistieron a este pedido que esta creando/editando, para poder " +
                                                                "saber en un futuro que clientes asistieron a los diferentes pedidos en un periodo de tiempo, con el objetivo de " +
                                                                "realizar promociones mas personalizadas.", ClsColores.Blanco, 350, 500))
     {
         FormInformacion.ShowDialog();
     }
 }
Exemple #10
0
 private void PicBTNInformacion_Click(object sender, EventArgs e)
 {
     using (FrmInformacion FormInformacion = new FrmInformacion($"Seleccione el boton [Buscar movimiento] para abrir la ventana que mostrara " +
                                                                $"todas las cuentas disponibles. Posteriormente seleccione en algunas de estas el boton [Enviar] para " +
                                                                $"que esta sea cargada en esta ventana.\r\n\r\nSi no encuentra el registro de 'Apertura de caja', significara que el programa " +
                                                                $"esta esperando el registro 'Cierre de caja'. Si el caso es el contrario, el programa estara esperando la creacion del " +
                                                                $"registro 'Apertura de caja'.\r\n\r\nSi en algun momento considera que hubo un error y desea corregir ese monto o movimiento mal especificado, " +
                                                                $"puede usar los movimientos de 'Cuenta de ajuste (ingreso)' o 'Cuenta de ajuste (egreso)'.", ClsColores.Blanco, 350, 500))
     {
         FormInformacion.ShowDialog();
     }
 }
 private void PicBTNInformacion_Click(object sender, EventArgs e)
 {
     using (FrmInformacion FormInformacion = new FrmInformacion($"La categoria que se creara, se le asignara un valor que indicara " +
                                                                $"si los articulos que incluya en la misma, se enviaran a cocina para que estos sean cocinados/preparados, " +
                                                                $"si indica que no iran a cocina, estos articulos seran directamente enviados al cliente ya que " +
                                                                $"no hay que cocinarlos (como gaseosas o sandwiches ya elaborados que se encuentran en heladeras). Tener en cuenta " +
                                                                $"que los articulos que se indiquen como cocinados desde cocina, ya no se podran eliminar desde la lista de pedidos " +
                                                                $"ya que se considera que los productos para elaborar el plato ya fueron usados y no se pueden recuperar.\r\n\r\nSi " +
                                                                $"tiene articulos que puedan ser iguales, pero algunos son elaborados por cocina y otros no, indicar por ejemplo, que " +
                                                                $"los sandwiches que sean elaborados por cocina, estaran en la categoria 'Sandwiches de cocina' y los que ya estan " +
                                                                $"elaborados y solo hay que buscarlos en una heladera, estaran en la categoria 'Sandwitches'.", ClsColores.Blanco, 400, 600))
     {
         FormInformacion.ShowDialog();
     }
 }
Exemple #12
0
        private void NudCantidadPersonas_ValueChanged(object sender, EventArgs e)
        {
            if (DatosCargados)
            {
                if (ListaDeMesasReserva.Count > 0)
                {
                    using (FrmInformacion FormInformacion = new FrmInformacion("Cantidad de personas actualizada, debe elegir nuevamente las mesas asignadas.", ClsColores.Blanco, 200, 300))
                    {
                        FormInformacion.ShowDialog();
                    }
                }

                ListaDeMesasReserva.Clear();
            }
        }
 private void PicBTNInformacion_Click(object sender, EventArgs e)
 {
     using (FrmInformacion FormInformacion = new FrmInformacion("Has doble click en un " +
                                                                "usuario en especifico si quieres editarlo (el dueño del mismo debe verificar que esta presente, colocando su " +
                                                                "contraseña), para que pueda asegurarse de que un tercero no sepa sus datos (los cuales debe saberlo solo él " +
                                                                "por motivos de seguridad).\r\n\r\n" +
                                                                "De esta forma solo el mozo dueño de su usuario puede " +
                                                                "cerrar una mesa, o un subgerente crear un nuevo registro en caja (esto debido a que queda asociado el usuario " +
                                                                "que hizo la accion, y de esta forma saber quien hizo cada cosa).\r\n\r\nTener en cuenta que " +
                                                                "no se pueden eliminar los usuarios que tengan el " +
                                                                "perfil de 'gerente', y solo validando con la contraseña de uno que si lo es, puede asignarle este perfil a otro usuario.\r\n\r\n" +
                                                                "No se permite la eliminacion de usuarios que esten trabajando en una mesa al momento de marcarlos " +
                                                                "como eliminados. Si desea eliminar ese usuario, cambie todas las mesas en donde este trabajando, " +
                                                                "por otro mozo.", ClsColores.Blanco, 500, 700))
     {
         FormInformacion.ShowDialog();
     }
 }
        private void BtnAceptar_Click(object sender, EventArgs e)
        {
            if (cmbMozo.SelectedValue != null && cmbChef.SelectedValue != null)
            {
                Usuario UsuarioSeleccionado = (Usuario)cmbMozo.SelectedItem;
                Usuario ChefSeleccionado    = (Usuario)cmbChef.SelectedItem;

                FrmReservas.ObtenerInstancia().S_ID_Mozo = UsuarioSeleccionado.ID_Usuario;
                FrmReservas.ObtenerInstancia().S_ID_Chef = ChefSeleccionado.ID_Usuario;

                DialogResult = DialogResult.OK;
                Close();
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion($"Es obligatorio asignar el mozo y chef a la mesa.", ClsColores.Blanco, 150, 300))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }
Exemple #15
0
        /// <summary>
        /// Valida la hora ingresada por el usuario (retorna true si es correcta, de lo contrario false).
        /// </summary>
        /// <param name="_GuardarCambios">Si es true, evita la advertencia de que debe completar el campo HORA.</param>
        private bool ValidarHora(bool _GuardarCambios, MaskedTextBox _MtbValidar)
        {
            if (_MtbValidar.MaskCompleted)
            {
                string[] Horario = _MtbValidar.Text.Split(':');

                if (Convert.ToInt32(Horario[0]) >= 24)
                {
                    using (FrmInformacion FormInformacion = new FrmInformacion("Ingrese una hora valida.", ClsColores.Blanco, 100, 300))
                    {
                        FormInformacion.ShowDialog();
                    }
                    return(false);
                }
                else if (Convert.ToInt32(Horario[1]) >= 60)
                {
                    using (FrmInformacion FormInformacion = new FrmInformacion("Ingrese un minuto valido.", ClsColores.Blanco, 100, 300))
                    {
                        FormInformacion.ShowDialog();
                    }
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            else
            {
                if (!_GuardarCambios)
                {
                    using (FrmInformacion FormInformacion = new FrmInformacion("Debe completar el campo HORA.", ClsColores.Blanco, 100, 300))
                    {
                        FormInformacion.ShowDialog();
                    }
                }

                return(false);
            }
        }
Exemple #16
0
        private void DgvDatosReservas_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            DataGridView DetectarBoton = (DataGridView)sender;

            if (!(DetectarBoton.Columns[e.ColumnIndex] is DataGridViewButtonColumn) && e.RowIndex >= 0)
            {
                if (Convert.ToString(dgvCaja.Rows[e.RowIndex].Cells[(int)ENumColDGVCaja.ID_Pedido].Value) != string.Empty)
                {
                    using (FrmsSecundarios.FrmsTemporales.FrmCarta.MostrarPedidoFianlizado FormMostrarPedidoFianlizado = new FrmsSecundarios.FrmsTemporales.FrmCarta.MostrarPedidoFianlizado(Convert.ToInt32(dgvCaja.Rows[e.RowIndex].Cells[(int)ENumColDGVCaja.ID_Pedido].Value)))
                    {
                        FormMostrarPedidoFianlizado.ShowDialog();
                    }
                }
                else
                {
                    using (FrmInformacion FormInformacion = new FrmInformacion($"La columna seleccionada no corresponde a un pedido y por lo tanto no se puede ver " +
                                                                               $"ningun detalle del mismo.", ClsColores.Blanco, 200, 400))
                    {
                        FormInformacion.ShowDialog();
                    }
                }
            }
        }
Exemple #17
0
        private void BtnGuardarCambios_Click(object sender, EventArgs e)
        {
            bool   DatosValidos         = true;
            string RegistroDeErrores    = string.Empty;
            int    AnchoFormInformacion = 100;

            CategoriaArticulo CategoriaArticulo = null;

            txtNombreArticulo.Text = txtNombreArticulo.Text.Trim();
            txtDescripcion.Text    = txtDescripcion.Text.Trim();
            txtPrecio.Text         = txtPrecio.Text.Trim();

            if (txtNombreArticulo.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nombre' debe tener como minimo 3 caracteres.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtPrecio.Text != string.Empty)
            {
                if (txtPrecio.Text.Substring(0, 1) == "," || txtPrecio.Text.Substring(txtPrecio.Text.Length - 1, 1) == "," || Convert.ToDouble(txtPrecio.Text) < 10)
                {
                    DatosValidos       = false;
                    RegistroDeErrores += "El campo 'Precio' debe ser mayor a $10 (verifique tambien que no tenga la " +
                                         "coma del centavo al principio o al final).\r\n\r\n";
                    AnchoFormInformacion += 50;
                }
            }

            if (txtPrecioDelivery.Text != string.Empty)
            {
                if (txtPrecioDelivery.Text.Substring(0, 1) == "," || txtPrecioDelivery.Text.Substring(txtPrecioDelivery.Text.Length - 1, 1) == "," || Convert.ToDouble(txtPrecioDelivery.Text) < 10)
                {
                    DatosValidos       = false;
                    RegistroDeErrores += "El campo 'Precio delivery' debe ser mayor a $10 (verifique tambien que no tenga la " +
                                         "coma del centavo al principio o al final).\r\n\r\n";
                    AnchoFormInformacion += 50;
                }
            }

            if (cmbCategoria.SelectedItem != null)
            {
                CategoriaArticulo = (CategoriaArticulo)cmbCategoria.SelectedItem;
            }
            else
            {
                DatosValidos          = false;
                RegistroDeErrores    += "Seleccione una categoria.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (VerificarArticuloRepetido(txtNombreArticulo.Text, ID_Articulo))
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El nombre del articulo ya se encuentra en uso.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtPrecio.Text == string.Empty && txtPrecioDelivery.Text == string.Empty)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El articulo debe tener un precio para carta o delivery.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (DatosValidos)
            {
                txtNombreArticulo.Text = txtNombreArticulo.Text.Substring(0, 1).ToUpper() + txtNombreArticulo.Text.Remove(0, 1).ToLower();

                if (txtDescripcion.Text != string.Empty)
                {
                    txtDescripcion.Text = txtDescripcion.Text.Substring(0, 1).ToUpper() + txtDescripcion.Text.Remove(0, 1).ToLower();
                }

                string InformacionDelError = string.Empty;

                ClsArticulos Articulo           = new ClsArticulos();
                Articulo     ActualizarArticulo = new Articulo();

                ActualizarArticulo.ID_Articulo = ID_Articulo;
                ActualizarArticulo.Nombre      = txtNombreArticulo.Text;
                ActualizarArticulo.Descripcion = txtDescripcion.Text;

                if (txtPrecio.Text == string.Empty)
                {
                    ActualizarArticulo.Precio = null;
                }
                else
                {
                    ActualizarArticulo.Precio = Math.Round(Convert.ToDouble(txtPrecio.Text), 2);
                }

                if (txtPrecioDelivery.Text == string.Empty)
                {
                    ActualizarArticulo.PrecioDelivery = null;
                }
                else
                {
                    ActualizarArticulo.PrecioDelivery = Math.Round(Convert.ToDouble(txtPrecioDelivery.Text), 2);
                }

                ActualizarArticulo.ID_EstadoArticulo    = (int)ClsEstadosArticulos.EEstadosArticulos.Activo;
                ActualizarArticulo.ID_CategoriaArticulo = CategoriaArticulo.ID_CategoriaArticulo;

                if (Articulo.Actualizar(ActualizarArticulo, ref InformacionDelError) != 0)
                {
                    DialogResult = DialogResult.OK;
                    Close();
                }
                else if (InformacionDelError != string.Empty)
                {
                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 400))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }
        private void BtnAceptar_Click(object sender, EventArgs e)
        {
            // Validar los datos.
            bool   DatosValidos         = true;
            string RegistroDeErrores    = string.Empty;
            int    AnchoFormInformacion = 100;

            Perfil PerfilSeleccionado = (Perfil)cmbPerfil.SelectedItem;

            txtNick.Text     = txtNick.Text.Trim();
            txtNombre.Text   = txtNombre.Text.Trim();
            txtApellido.Text = txtApellido.Text.Trim();

            if (txtNick.Text.Length < 2)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nick' debe tener como minimo 2 caracteres.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtNombre.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nombre' debe tener un minimo de 3 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtApellido.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Apellido' debe tener un minimo de 3 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtContraseña.Text.Length < 4)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Contraseña' debe tener un minimo de 4 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (VerificarUsuarioRepetido(txtNombre.Text, txtContraseña.Text, ID_Usuario, txtApellido.Text))
            {
                DatosValidos       = false;
                RegistroDeErrores += "Verifique que no exista otro usuario con el mismo nombre y apellido, si no " +
                                     "esta repetido, intente con una contraseña diferente.\r\n\r\n";
                AnchoFormInformacion += 70;
            }

            if (DatosValidos)
            {
                // Si va a ser gerente el nuevo usuario, validarlo
                bool AutorizarEdicion = true;

                if (PerfilSeleccionado.ID_Perfil == (int)ClsPerfiles.EPerfiles.Gerente)
                {
                    AutorizarEdicion = false;

                    FrmRespuesta RespuestaFormulario = new FrmRespuesta($"¿Esta seguro que desea asignarle el perfil ´Gerente'? Una vez confirmado, no se puede editar el tipo de perfil ni eliminar el usuario (por seguridad, el sistema " +
                                                                        "no permite que personas con este tipo sean eliminadas del sistema).", FrmRespuesta.ETamaño.Pequeño, FrmRespuesta.ETipo.Si_No);

                    if (RespuestaFormulario.DialogResult == DialogResult.Yes)
                    {
                        using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.Gerentes))
                        {
                            FormValidarUsuario.ShowDialog();

                            if (FormValidarUsuario.DialogResult == DialogResult.OK)
                            {
                                AutorizarEdicion = true;
                            }
                        }
                    }
                }

                if (AutorizarEdicion)
                {
                    // Crear usuario
                    txtNick.Text     = txtNick.Text.ToUpper();
                    txtNombre.Text   = txtNombre.Text.Substring(0, 1).ToUpper() + txtNombre.Text.Remove(0, 1).ToLower();
                    txtApellido.Text = txtApellido.Text.Substring(0, 1).ToUpper() + txtApellido.Text.Remove(0, 1).ToLower();

                    string InformacionDelError = string.Empty;

                    ClsUsuarios Usuarios     = new ClsUsuarios();
                    Usuario     CrearUsuario = new Usuario();

                    CrearUsuario.Nick             = txtNick.Text;
                    CrearUsuario.Nombre           = txtNombre.Text;
                    CrearUsuario.Apellido         = txtApellido.Text;
                    CrearUsuario.Contraseña       = txtContraseña.Text;
                    CrearUsuario.ID_EstadoUsuario = (int)ClsEstadosUsuarios.EEstadosUsuarios.Activo;
                    CrearUsuario.ID_Perfil        = PerfilSeleccionado.ID_Perfil;

                    if (Usuarios.Crear(CrearUsuario, ref InformacionDelError) != 0)
                    {
                        DialogResult = DialogResult.OK;
                        Close();
                    }
                    else if (InformacionDelError == string.Empty)
                    {
                        MessageBox.Show("Fallo al crear el usuario", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 350))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }
        private void BtnGuardarCambios_Click(object sender, EventArgs e)
        {
            // Comprobar datos correctos
            bool   DatosValidos         = true;
            string RegistroDeErrores    = string.Empty;
            int    AnchoFormInformacion = 100;

            Perfil PerfilSeleccionado = (Perfil)cmbPerfil.SelectedItem;

            txtNick.Text     = txtNick.Text.Trim();
            txtNombre.Text   = txtNombre.Text.Trim();
            txtApellido.Text = txtApellido.Text.Trim();

            if (txtNick.Text.Length < 2)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nick' debe tener como minimo 2 caracteres.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtNombre.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nombre' debe tener un minimo de 3 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtApellido.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Apellido' debe tener un minimo de 3 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (txtContraseña.Text.Length < 4)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Contraseña' debe tener un minimo de 4 caracteres'.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (VerificarUsuarioRepetido(txtNombre.Text, txtContraseña.Text, ID_Usuario, txtApellido.Text))
            {
                DatosValidos       = false;
                RegistroDeErrores += "Verifique que no exista otro usuario con el mismo nombre y apellido, si no " +
                                     "esta repetido, intente con una contraseña diferente.\r\n\r\n";
                AnchoFormInformacion += 70;
            }

            if (DatosValidos)
            {
                // Si va a ser gerente el nuevo usuario, validarlo
                bool AutorizarEdicion = true;

                //Si el combo esta desalibilitado, significa que el perfil ya era gerente, por lo que no pide confirmacion
                if (PerfilSeleccionado.ID_Perfil == (int)ClsPerfiles.EPerfiles.Gerente && cmbPerfil.Enabled == true)
                {
                    AutorizarEdicion = false;

                    FrmRespuesta RespuestaFormulario = new FrmRespuesta($"¿Esta seguro que desea asignarle el perfil ´Gerente'? Una vez confirmado, no se puede editar el tipo de perfil ni eliminar el usuario (por seguridad, el sistema " +
                                                                        "no permite que personas con este tipo sean eliminadas del sistema).", FrmRespuesta.ETamaño.Pequeño, FrmRespuesta.ETipo.Si_No);

                    if (RespuestaFormulario.DialogResult == DialogResult.Yes)
                    {
                        using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.Gerentes))
                        {
                            FormValidarUsuario.ShowDialog();

                            if (FormValidarUsuario.DialogResult == DialogResult.OK)
                            {
                                AutorizarEdicion = true;
                            }
                        }
                    }
                }

                if (AutorizarEdicion)
                {
                    txtNick.Text     = txtNick.Text.ToUpper();
                    txtNombre.Text   = txtNombre.Text.Substring(0, 1).ToUpper() + txtNombre.Text.Remove(0, 1).ToLower();
                    txtApellido.Text = txtApellido.Text.Substring(0, 1).ToUpper() + txtApellido.Text.Remove(0, 1).ToLower();

                    // Actualizar
                    string InformacionDelError = string.Empty;

                    ClsUsuarios Usuarios          = new ClsUsuarios();
                    Usuario     ActualizarUsuario = new Usuario();

                    ActualizarUsuario.ID_Usuario = ID_Usuario;
                    ActualizarUsuario.Nick       = txtNick.Text;
                    ActualizarUsuario.Nombre     = txtNombre.Text;
                    ActualizarUsuario.Apellido   = txtApellido.Text;
                    ActualizarUsuario.Contraseña = txtContraseña.Text;
                    ActualizarUsuario.ID_Perfil  = PerfilSeleccionado.ID_Perfil;

                    //Mantener el estado del usuario (ya que sin esto, se podria habilitar usuarios sin indicarlo
                    //necesariamente, se activarian al editar uno inactivo y guardar cambios).
                    if (EstadoDelUsuario)
                    {
                        ActualizarUsuario.ID_EstadoUsuario = (int)ClsEstadosUsuarios.EEstadosUsuarios.Activo;
                    }
                    else
                    {
                        ActualizarUsuario.ID_EstadoUsuario = (int)ClsEstadosUsuarios.EEstadosUsuarios.Inactivo;
                    }

                    // Impedir dar categoria gerente a un usuario eliminado
                    if (ActualizarUsuario.ID_EstadoUsuario == (int)ClsEstadosUsuarios.EEstadosUsuarios.Inactivo && PerfilSeleccionado.ID_Perfil == (int)ClsPerfiles.EPerfiles.Gerente)
                    {
                        using (FrmInformacion FormInformacion = new FrmInformacion($"No le puede dar el perfil 'gerente' a un usuario eliminado " +
                                                                                   $"(ya que un gerente no puede estar eliminado).", ClsColores.Blanco, 150, 300))
                        {
                            FormInformacion.ShowDialog();
                        }
                    }
                    else
                    {
                        if (Usuarios.Actualizar(ActualizarUsuario, ref InformacionDelError) != 0)
                        {
                            DialogResult = DialogResult.OK;
                            Close();
                        }
                        else if (InformacionDelError != string.Empty)
                        {
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 350))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }
        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 BtnAplicarAumentoDescuento_Click(object sender, EventArgs e)
        {
            if (txtCantidad.Text == string.Empty)
            {
                txtCantidad.Text = "0";
            }

            CargarDGVCarta(ClsArticulos.ETipoListado.ArticulosActivos);

            ClsArticulos Articulos        = new ClsArticulos();
            Articulo     ActualizarPrecio = new Articulo();

            // Entrar solo si al menos el usuario marco un check para aplicarle aumento
            if (chkAplicarADelivery.Checked || chkAplicarACarta.Checked)
            {
                // TODO - Realizar un aumento/descuento a los articulos seleccionados en funcion del porcentaje y el RBN seleccioando
                for (int Indice = 0; Indice < dgvCarta.Rows.Count; Indice++)
                {
                    //Pregunto si la celda es diferente a null
                    if (dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Seleccionar].Value != null)
                    {
                        //Casteo el check del objeto a booleano y pregunto si es true
                        if ((bool)dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Seleccionar].Value)
                        {
                            string InformacionDelError = string.Empty;

                            ActualizarPrecio = Articulos.LeerPorNumero((int)dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.ID_Articulo].Value, ref InformacionDelError);

                            if (rbnAumento.Checked)
                            {
                                if (chkAplicarADelivery.Checked && !chkAplicarACarta.Checked)
                                {
                                    if (ActualizarPrecio.PrecioDelivery != null)
                                    {
                                        if (RbnPorcentaje.Checked)
                                        {
                                            ActualizarPrecio.PrecioDelivery += ActualizarPrecio.PrecioDelivery * (int)nudPorcentaje.Value / 100;
                                        }
                                        else
                                        {
                                            ActualizarPrecio.PrecioDelivery += Convert.ToInt32(txtCantidad.Text);
                                        }
                                    }
                                }
                                else if (!chkAplicarADelivery.Checked && chkAplicarACarta.Checked)
                                {
                                    if (ActualizarPrecio.Precio != null)
                                    {
                                        if (RbnPorcentaje.Checked)
                                        {
                                            ActualizarPrecio.Precio += ActualizarPrecio.Precio * (int)nudPorcentaje.Value / 100;
                                        }
                                        else
                                        {
                                            ActualizarPrecio.Precio += Convert.ToInt32(txtCantidad.Text);
                                        }
                                    }
                                }
                                else
                                {
                                    if (ActualizarPrecio.Precio != null)
                                    {
                                        if (RbnPorcentaje.Checked)
                                        {
                                            ActualizarPrecio.Precio += ActualizarPrecio.Precio * (int)nudPorcentaje.Value / 100;
                                        }
                                        else
                                        {
                                            ActualizarPrecio.Precio += Convert.ToInt32(txtCantidad.Text);
                                        }
                                    }

                                    if (ActualizarPrecio.PrecioDelivery != null)
                                    {
                                        if (RbnPorcentaje.Checked)
                                        {
                                            ActualizarPrecio.PrecioDelivery += ActualizarPrecio.PrecioDelivery * (int)nudPorcentaje.Value / 100;
                                        }
                                        else
                                        {
                                            ActualizarPrecio.PrecioDelivery += Convert.ToInt32(txtCantidad.Text);
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if (chkAplicarADelivery.Checked && !chkAplicarACarta.Checked)
                                {
                                    if (ActualizarPrecio.PrecioDelivery != null)
                                    {
                                        if (RbnPorcentaje.Checked)
                                        {
                                            ActualizarPrecio.PrecioDelivery -= ActualizarPrecio.PrecioDelivery * (int)nudPorcentaje.Value / 100;
                                        }
                                        else
                                        {
                                            ActualizarPrecio.PrecioDelivery -= Convert.ToInt32(txtCantidad.Text);
                                        }
                                    }
                                }
                                else if (!chkAplicarADelivery.Checked && chkAplicarACarta.Checked)
                                {
                                    if (ActualizarPrecio.Precio != null)
                                    {
                                        if (RbnPorcentaje.Checked)
                                        {
                                            ActualizarPrecio.Precio -= ActualizarPrecio.Precio * (int)nudPorcentaje.Value / 100;
                                        }
                                        else
                                        {
                                            ActualizarPrecio.Precio -= Convert.ToInt32(txtCantidad.Text);
                                        }
                                    }
                                }
                                else
                                {
                                    if (ActualizarPrecio.Precio != null)
                                    {
                                        if (RbnPorcentaje.Checked)
                                        {
                                            ActualizarPrecio.Precio -= ActualizarPrecio.Precio * (int)nudPorcentaje.Value / 100;
                                        }
                                        else
                                        {
                                            ActualizarPrecio.Precio -= Convert.ToInt32(txtCantidad.Text);
                                        }
                                    }

                                    if (ActualizarPrecio.PrecioDelivery != null)
                                    {
                                        if (RbnPorcentaje.Checked)
                                        {
                                            ActualizarPrecio.PrecioDelivery -= ActualizarPrecio.PrecioDelivery * (int)nudPorcentaje.Value / 100;
                                        }
                                        else
                                        {
                                            ActualizarPrecio.PrecioDelivery -= Convert.ToInt32(txtCantidad.Text);
                                        }
                                    }
                                }
                            }

                            if (chkAplicarADelivery.Checked && !chkAplicarACarta.Checked && chkRedondearPrecio.Checked)
                            {
                                if (ActualizarPrecio.PrecioDelivery != null)
                                {
                                    ActualizarPrecio.PrecioDelivery = Math.Floor((double)ActualizarPrecio.PrecioDelivery);

                                    if (ActualizarPrecio.PrecioDelivery % 5 != 0)
                                    {
                                        ActualizarPrecio.PrecioDelivery = ActualizarPrecio.PrecioDelivery + (5 - (ActualizarPrecio.PrecioDelivery % 5));
                                    }
                                }
                            }
                            else if (!chkAplicarADelivery.Checked && chkAplicarACarta.Checked && chkRedondearPrecio.Checked)
                            {
                                if (ActualizarPrecio.Precio != null)
                                {
                                    ActualizarPrecio.Precio = Math.Floor((double)ActualizarPrecio.Precio);

                                    if (ActualizarPrecio.Precio % 5 != 0)
                                    {
                                        ActualizarPrecio.Precio = ActualizarPrecio.Precio + (5 - (ActualizarPrecio.Precio % 5));
                                    }
                                }
                            }
                            else if (chkRedondearPrecio.Checked)
                            {
                                if (ActualizarPrecio.Precio != null)
                                {
                                    ActualizarPrecio.Precio = Math.Floor((double)ActualizarPrecio.Precio);

                                    if (ActualizarPrecio.Precio % 5 != 0)
                                    {
                                        ActualizarPrecio.Precio = ActualizarPrecio.Precio + (5 - (ActualizarPrecio.Precio % 5));
                                    }
                                }

                                if (ActualizarPrecio.PrecioDelivery != null)
                                {
                                    ActualizarPrecio.PrecioDelivery = Math.Floor((double)ActualizarPrecio.PrecioDelivery);

                                    if (ActualizarPrecio.PrecioDelivery % 5 != 0)
                                    {
                                        ActualizarPrecio.PrecioDelivery = ActualizarPrecio.PrecioDelivery + (5 - (ActualizarPrecio.PrecioDelivery % 5));
                                    }
                                }
                            }

                            bool PrecioPermitido = false;
                            bool PrecioMinimo    = false;

                            if (ActualizarPrecio.Precio == null)
                            {
                                PrecioPermitido = true;
                            }
                            else
                            {
                                if (ActualizarPrecio.Precio >= 10 && ActualizarPrecio.Precio <= 999999)
                                {
                                    PrecioPermitido = true;
                                }
                                else if (ActualizarPrecio.Precio < 10)
                                {
                                    PrecioPermitido = false;
                                    PrecioMinimo    = true;
                                }
                                else
                                {
                                    PrecioPermitido = false;
                                }
                            }

                            if (ActualizarPrecio.PrecioDelivery == null)
                            {
                                PrecioPermitido = true;
                            }
                            else
                            {
                                if (ActualizarPrecio.PrecioDelivery >= 10 && ActualizarPrecio.PrecioDelivery <= 999999)
                                {
                                    PrecioPermitido = true;
                                }
                                else if (ActualizarPrecio.PrecioDelivery < 10)
                                {
                                    PrecioPermitido = false;
                                    PrecioMinimo    = true;
                                }
                                else
                                {
                                    PrecioPermitido = false;
                                }
                            }

                            if (PrecioPermitido)
                            {
                                if (ActualizarPrecio.Precio != null)
                                {
                                    ActualizarPrecio.Precio = Math.Round((double)ActualizarPrecio.Precio, 2);
                                }
                                if (ActualizarPrecio.PrecioDelivery != null)
                                {
                                    ActualizarPrecio.PrecioDelivery = Math.Round((double)ActualizarPrecio.PrecioDelivery, 2);
                                }

                                if (Articulos.Actualizar(ActualizarPrecio, ref InformacionDelError) != 0)
                                {
                                    if (ActualizarPrecio.Precio == null)
                                    {
                                        dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.PrecioCarta].Value = "NO TIENE";
                                    }
                                    else
                                    {
                                        dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.PrecioCarta].Value = ActualizarPrecio.Precio;
                                    }

                                    if (ActualizarPrecio.PrecioDelivery == null)
                                    {
                                        dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.PrecioDelivery].Value = "NO TIENE";
                                    }
                                    else
                                    {
                                        dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.PrecioDelivery].Value = ActualizarPrecio.PrecioDelivery;
                                    }
                                }
                                else if (InformacionDelError != string.Empty)
                                {
                                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar actualizar los precios");
                                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                            }
                            else if (PrecioMinimo)
                            {
                                using (FrmInformacion FormInformacion = new FrmInformacion($"El articulo '{dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Nombre].Value.ToString()}' (categoria '{dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Categoria].Value.ToString()}') " +
                                                                                           $"no se puede actualizar debido a que su precio seria inferior al minimo ($10 pesos).", ClsColores.Blanco, 350, 150))
                                {
                                    FormInformacion.ShowDialog();
                                }
                            }
                            else
                            {
                                using (FrmInformacion FormInformacion = new FrmInformacion($"El articulo '{dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Nombre].Value.ToString()}' (categoria '{dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Categoria].Value.ToString()}') " +
                                                                                           $"no se puede actualizar debido a que su precio seria superior al maximo permitido (999999).", ClsColores.Blanco, 350, 150))
                                {
                                    FormInformacion.ShowDialog();
                                }
                            }
                            dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Seleccionar].Value = false;
                        }
                    }
                }
                CambiarCheckboxSeleccion(false);
            }
        }
Exemple #22
0
        private void CargarDGVClientes(ClsClientes.EClienteBuscar _TipoDeListado)
        {
            if (FormularioCargado)
            {
                string NombreCliente   = string.Empty;
                string ApellidoCliente = string.Empty;
                string TelefonoCliente = string.Empty;

                if (txtBuscarPorNombre.Text != TEXTO_VISUAL_BUSCAR)
                {
                    NombreCliente = txtBuscarPorNombre.Text;
                }
                if (TxtBuscarPorApellido.Text != TEXTO_VISUAL_APELLIDO)
                {
                    ApellidoCliente = TxtBuscarPorApellido.Text;
                }
                if (TxtBuscarPorTelefono.Text != TEXTO_VISUAL_TELEFONO)
                {
                    TelefonoCliente = TxtBuscarPorTelefono.Text;
                }

                dgvListarClientes.Rows.Clear();

                string InformacionDelError = string.Empty;

                ClsClientes Clientes = new ClsClientes();

                List <Cliente> ListarClientes = Clientes.LeerListado(_TipoDeListado, ref InformacionDelError, NombreCliente, ApellidoCliente, TelefonoCliente);

                ClsClientesXPedidos   ClienteXPedidos             = new ClsClientesXPedidos();
                List <ClienteXPedido> CantidadAsistenciasVigentes = null;

                if (ListarClientes != null)
                {
                    foreach (Cliente Elemento in ListarClientes)
                    {
                        int NumeroDeFila = dgvListarClientes.Rows.Add();

                        dgvListarClientes.Rows[NumeroDeFila].Cells[(int)ENumColDGVCliente.ID_Cliente].Value = Elemento.ID_Cliente;
                        dgvListarClientes.Rows[NumeroDeFila].Cells[(int)ENumColDGVCliente.Nombre].Value     = Elemento.Nombre;
                        dgvListarClientes.Rows[NumeroDeFila].Cells[(int)ENumColDGVCliente.Apellido].Value   = Elemento.Apellido;
                        dgvListarClientes.Rows[NumeroDeFila].Cells[(int)ENumColDGVCliente.Telefono].Value   = Elemento.Telefono;

                        CantidadAsistenciasVigentes = ClienteXPedidos.LeerListado(ClsClientesXPedidos.ETipoListado.CantidadAsistencias, ref InformacionDelError, Elemento.ID_Cliente);

                        if (CantidadAsistenciasVigentes != null)
                        {
                            dgvListarClientes.Rows[NumeroDeFila].Cells[(int)ENumColDGVCliente.AsistenciasAcumuladas].Value = CantidadAsistenciasVigentes.Count;
                        }
                        else
                        {
                            dgvListarClientes.Rows[NumeroDeFila].Cells[(int)ENumColDGVCliente.AsistenciasAcumuladas].Value = 0;
                        }

                        dgvListarClientes.Rows[NumeroDeFila].Cells[(int)ENumColDGVCliente.EnviarCliente].Value = "Enviar";
                        dgvListarClientes.Rows[NumeroDeFila].Cells[(int)ENumColDGVCliente.Seleccionar].Value   = false;

                        foreach (int ElementoSecundario in ClientesDelPedido)
                        {
                            if (Elemento.ID_Cliente == ElementoSecundario)
                            {
                                dgvListarClientes.Rows[NumeroDeFila].Cells[(int)ENumColDGVCliente.Seleccionar].Value = true;
                                ClsColores.MarcarFilaDGV(dgvListarClientes, NumeroDeFila, true);
                                break;
                            }
                        }

                        if ((bool)dgvListarClientes.Rows[NumeroDeFila].Cells[(int)ENumColDGVCliente.Seleccionar].Value == false && MostrarClientesSeleccionados)
                        {
                            dgvListarClientes.Rows.Remove(dgvListarClientes.Rows[NumeroDeFila]);
                        }
                    }

                    UltimaFilaSeleccionada = -1;

                    if (MostrarClientesSeleccionados && dgvListarClientes.Rows.Count == 0)
                    {
                        MostrarClientesSeleccionados = false;

                        CargarDGVClientes(ClsClientes.EClienteBuscar.Todos);

                        using (FrmInformacion FormInformacion = new FrmInformacion($"No se encontro ningun cliente seleccionado, lista " +
                                                                                   $"cargada nuevamente.", ClsColores.Blanco, 200, 300))
                        {
                            FormInformacion.ShowDialog();
                        }
                    }

                    lblResultadoTotalClientes.Text = Convert.ToString(ClientesDelPedido.Count);
                }
                else if (InformacionDelError == string.Empty)
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al listar los clientes");
                    MessageBox.Show("Fallo al listar los clientes", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al listar los clientes");
                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            dgvListarClientes.ClearSelection();
        }
        private void ComprobarVencimientos()
        {
            bool   MostrarMensaje       = false;
            bool   LicenciaExpirada     = false;
            string MensajesDeAviso      = string.Empty;
            int    AnchoFormInformacion = 200;

            string InformacionDelError = string.Empty;

            ClsVencimientosFuncionalidades VencimientosFuncionalidades = new ClsVencimientosFuncionalidades();
            VencimientoFuncionalidades     ComprobarVencimientos       = VencimientosFuncionalidades.LeerPorNumero(1, ref InformacionDelError);

            if (ComprobarVencimientos != null)
            {
                if (FrmInicioSesion.ObtenerInstancia().G_ID_PerfilUsuarioInicioSesion != (int)ClsPerfiles.EPerfiles.Administrador)
                {
                    // Vencimiento general
                    if (ComprobarVencimientos.VencimientoGeneral.Date < DateTime.Now.Date)
                    {
                        LicenciaExpirada = true;

                        MostrarMensaje        = true;
                        AnchoFormInformacion += 50;
                        MensajesDeAviso      += $"Se vencieron las funcionalidades del sistema.\r\n\r\n";
                    }
                    else if (ComprobarVencimientos.VencimientoGeneral.Date >= DateTime.Now.Date && ComprobarVencimientos.VencimientoGeneral.Date <= DateTime.Now.Date.AddDays(7))
                    {
                        MostrarMensaje        = true;
                        AnchoFormInformacion += 50;
                        MensajesDeAviso      += $"Aviso: Se venceran las funciones de todo el programa " +
                                                $"en {(ComprobarVencimientos.VencimientoGeneral.Date - DateTime.Now.Date).TotalDays} dias, al " +
                                                $"cumplirse la fecha limite de uso (esto se realizara automaticamente). Contacte con el " +
                                                $"programador para actualizar su fecha de vencimiento (no perdera los dias restantes que falten " +
                                                $"para el vencimiento, estos seran acumulados).\r\n\r\n";
                    }

                    // Vencimiento especifico de funcionalidades del sistema
                    if (ComprobarVencimientos.VencimientoFunciones.Date < DateTime.Now.Date)
                    {
                        BtnEstadisticasCaja.Enabled      = false;
                        BtnEstadisticasDelivery.Enabled  = false;
                        BtnEstadisticasGenerales.Enabled = false;
                        BtnEstadisticasReservas.Enabled  = false;
                        BtnEstadisticasCarta.Enabled     = false;

                        if (ComprobarVencimientos.VencimientoFunciones.Date >= DateTime.Now.Date.AddDays(7))
                        {
                            MostrarMensaje        = true;
                            AnchoFormInformacion += 50;
                            MensajesDeAviso      += $"Se vencieron las funcionalidades especificas en el sistema (estadisticas).\r\n\r\n";
                        }
                    }
                    else if (ComprobarVencimientos.VencimientoFunciones.Date >= DateTime.Now.Date && ComprobarVencimientos.VencimientoFunciones.Date <= DateTime.Now.Date.AddDays(7))
                    {
                        MostrarMensaje        = true;
                        AnchoFormInformacion += 50;
                        MensajesDeAviso      += $"Se vencera las funciones especificas del programa (estadisticas)" +
                                                $"en {(ComprobarVencimientos.VencimientoFunciones.Date - DateTime.Now.Date).TotalDays} dias.\r\n\r\n";
                    }

                    if (MostrarMensaje)
                    {
                        using (FrmInformacion FormInformacion = new FrmInformacion(MensajesDeAviso, ClsColores.Blanco, AnchoFormInformacion, 450))
                        {
                            FormInformacion.ShowDialog();
                        }
                    }
                }
                else
                {
                    BtnEstadisticasCaja.Enabled      = true;
                    BtnEstadisticasDelivery.Enabled  = true;
                    BtnEstadisticasGenerales.Enabled = true;
                    BtnEstadisticasReservas.Enabled  = true;
                    BtnEstadisticasCarta.Enabled     = true;
                }

                // Habilitar los botones de los forms si se reinicio el programa y la licencia se actualizo
                BloquearDesbloquearFuncionalidades(LicenciaExpirada);
            }
            else if (InformacionDelError == string.Empty)
            {
                MessageBox.Show("Fallo al leer los datos para compobar el vencimiento de las funciones " +
                                "del sistema", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                Close();
            }
            else
            {
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                Close();
            }
        }
Exemple #24
0
        //Enviar varios clientes
        private void BtnCargarClientes_Click(object sender, EventArgs e)
        {
            LimpiarFiltros();

            CargarDGVClientes(ClsClientes.EClienteBuscar.Todos);

            int        TotalDeFilas      = dgvListarClientes.Rows.Count;
            List <int> EnviarClientes    = new List <int>();
            bool       OperacionInvalida = false;

            string InformacionDelError = string.Empty;

            ClsClientesXPedidos   ClientesXPedido    = new ClsClientesXPedidos();
            List <ClienteXPedido> BuscarRepeticiones = null;

            // IndiceArray me mantiene el indice real de asignacion
            for (int Indice = 0; Indice < TotalDeFilas; Indice++)
            {
                //Pregunto si la celda es diferente a null
                if (dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Seleccionar].Value != null)
                {
                    //Casteo el check del objeto a booleano y pregunto si es true
                    if ((bool)dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Seleccionar].Value)
                    {
                        BuscarRepeticiones = ClientesXPedido.LeerListado(ClsClientesXPedidos.ETipoListado.AsistenciasSuperadas, ref InformacionDelError, (int)dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.ID_Cliente].Value);

                        if (BuscarRepeticiones != null)
                        {
                            if (BuscarRepeticiones.Count < 2)
                            {
                                EnviarClientes.Add((int)dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.ID_Cliente].Value);
                            }
                            else
                            {
                                OperacionInvalida = true;
                                dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Seleccionar].Value = false;

                                using (FrmInformacion FormInformacion = new FrmInformacion($"Se detecto que el cliente {(string)dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Nombre].Value} {(string)dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Apellido].Value} " +
                                                                                           $"(telefono {Convert.ToString(dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Telefono].Value)}) ya fue " +
                                                                                           $"cargado en 2 pedidos el dia de hoy.", ClsColores.Blanco, 200, 300))
                                {
                                    FormInformacion.ShowDialog();
                                }
                            }
                        }
                        else if (InformacionDelError == string.Empty)
                        {
                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al listar los clientes");
                            MessageBox.Show("Fallo al listar los clientes", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            OperacionInvalida = true;
                        }
                        else
                        {
                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al listar los clientes");
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            OperacionInvalida = true;
                        }
                    }
                }
            }

            if (!OperacionInvalida)
            {
                FormCrearMesa.S_ClientesDelPedido = EnviarClientes;

                FrmMesas.ObtenerInstancia().S_CargoClientesAlPedido = DialogResult.OK;
                DialogResult = DialogResult.OK;
                Close();
            }
            else
            {
                EnviarClientes.Clear();
            }
        }
Exemple #25
0
        private void BtnUsarAsistencias_Click(object sender, EventArgs e)
        {
            using (FrmAsistenciasAConssumir CantidadDeAsistenciasAConsumir = new FrmAsistenciasAConssumir())
            {
                CargarDGVClientes(ClsClientes.EClienteBuscar.Todos);
                int  TotalDeFilas             = dgvListarClientes.Rows.Count;
                bool SeSeleccionoAlgunCliente = false;

                // IndiceArray me mantiene el indice real de asignacion
                for (int Indice = 0; Indice < TotalDeFilas; Indice++)
                {
                    //Pregunto si la celda es diferente a null
                    if (dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Seleccionar].Value != null)
                    {
                        //Casteo el check del objeto a booleano y pregunto si es true
                        if ((bool)dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Seleccionar].Value)
                        {
                            SeSeleccionoAlgunCliente = true;
                        }
                    }
                }

                if (SeSeleccionoAlgunCliente)
                {
                    CantidadDeAsistenciasAConsumir.AsignarFormCliente(this);
                    CantidadDeAsistenciasAConsumir.ShowDialog();

                    if (CantidadDeAsistenciasAConsumir.DialogResult == DialogResult.OK)
                    {
                        bool       SuperoLaCantidad     = false;
                        List <int> ID_ClientesAConsumir = new List <int>();

                        // IndiceArray me mantiene el indice real de asignacion
                        for (int Indice = 0; Indice < TotalDeFilas; Indice++)
                        {
                            //Pregunto si la celda es diferente a null
                            if (dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Seleccionar].Value != null)
                            {
                                //Casteo el check del objeto a booleano y pregunto si es true
                                if ((bool)dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Seleccionar].Value)
                                {
                                    if ((int)dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.AsistenciasAcumuladas].Value < AsistenciasAConsumir)
                                    {
                                        SuperoLaCantidad = true;

                                        using (FrmInformacion FormInformacion = new FrmInformacion($"El cliente {Convert.ToString(dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Nombre].Value)} {Convert.ToString(dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.Apellido].Value)} " +
                                                                                                   $"con {Convert.ToString(dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.AsistenciasAcumuladas].Value)} asistencias, no alcanza la " +
                                                                                                   $"cantidad indicada ({Convert.ToString(AsistenciasAConsumir)} asistencia/s).", ClsColores.Blanco, 200, 300))
                                        {
                                            FormInformacion.ShowDialog();
                                        }
                                    }
                                    else
                                    {
                                        ID_ClientesAConsumir.Add((int)dgvListarClientes.Rows[Indice].Cells[(int)ENumColDGVCliente.ID_Cliente].Value);
                                    }
                                }
                            }
                        }

                        if (!SuperoLaCantidad && ID_ClientesAConsumir.Count > 0)
                        {
                            string InformacionDelError = string.Empty;

                            ClsClientesXPedidos   ClienteXPedido            = new ClsClientesXPedidos();
                            List <ClienteXPedido> ListaDeAsisteciasVigentes = null;

                            foreach (int Elemento in ID_ClientesAConsumir)
                            {
                                ListaDeAsisteciasVigentes = ClienteXPedido.LeerListado(ClsClientesXPedidos.ETipoListado.CantidadAsistencias, ref InformacionDelError, Elemento);

                                if (ListaDeAsisteciasVigentes != null)
                                {
                                    int ContadorCantidadConsumida = 0;

                                    foreach (ClienteXPedido ElementoSecundario in ListaDeAsisteciasVigentes)
                                    {
                                        if (ContadorCantidadConsumida == AsistenciasAConsumir)
                                        {
                                            break;
                                        }

                                        ElementoSecundario.ID_EstadoClienteXPedido = (int)ClsEstadosClientesXPedidos.EEstadosClientesXPedidos.Usado;

                                        if (ClienteXPedido.Actualizar(ElementoSecundario, ref InformacionDelError) > 0)
                                        {
                                        }
                                        else if (InformacionDelError == string.Empty)
                                        {
                                            MessageBox.Show("Fallo al actualizar un cliente para consumir la/s asistencia/s", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                        }
                                        else
                                        {
                                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                        }

                                        ContadorCantidadConsumida++;
                                    }
                                }
                                else if (InformacionDelError == string.Empty)
                                {
                                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al listar un cliente para consumir la/s asistencia/s");
                                    MessageBox.Show("Fallo al listar un cliente para consumir la/s asistencia/s", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                                else
                                {
                                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al listar un cliente para consumir la/s asistencia/s");
                                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                            }

                            DesmarcarClientes();

                            using (FrmListadoAsistenciasConsumidas FormListadoAsistenciasConsumidas = new FrmListadoAsistenciasConsumidas(ID_ClientesAConsumir))
                            {
                                FormListadoAsistenciasConsumidas.ShowDialog();

                                CargarDGVClientes(ClsClientes.EClienteBuscar.Todos);
                            }
                        }

                        AsistenciasAConsumir = 0;
                    }
                }
                else
                {
                    using (FrmInformacion FormInformacion = new FrmInformacion($"Debe seleccionar al menos un cliente.", ClsColores.Blanco, 200, 300))
                    {
                        FormInformacion.ShowDialog();
                    }
                }
            }
        }
Exemple #26
0
        private void BtnPedidoTerminado_Click(object sender, EventArgs e)
        {
            tmrActualizaPedidos.Stop();

            int TotalDeFilas = dgvListaPedidos.Rows.Count;

            string InformacionDelError = string.Empty;

            ClsDetalles Detalles = new ClsDetalles();

            ClsPedidos Pedidos          = new ClsPedidos();
            Pedido     ActualizarPedido = new ClsPedidos();

            ClsDeliveries Delivery           = new ClsDeliveries();
            Delivery      ActualizarDelivery = new Delivery();

            for (int Indice = 0; Indice < TotalDeFilas; Indice++)
            {
                //Pregunto si la celda es diferente a null
                if (dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVListaPedidos.Seleccionar].Value != null)
                {
                    //Casteo el check del objeto a booleano y pregunto si es true
                    if ((bool)dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVListaPedidos.Seleccionar].Value)
                    {
                        InformacionDelError = string.Empty;

                        List <Detalle> ActualizarDetalle = Detalles.LeerListado((int)dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVListaPedidos.ID_Pedido].Value, ClsDetalles.ETipoDeListado.ParaCocina, ref InformacionDelError);
                        ActualizarPedido = Pedidos.LeerPorNumero((int)dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVListaPedidos.ID_Pedido].Value, ref InformacionDelError);

                        if (ActualizarDetalle != null && ActualizarPedido != null)
                        {
                            if (ActualizarPedido.ID_EstadoPedido == (int)ClsEstadosPedidos.EEstadosPedidos.EnProceso)
                            {
                                foreach (Detalle Elemento in ActualizarDetalle)
                                {
                                    if (Elemento.ID_EstadoDetalle == (int)ClsEstadoDetalle.EEstadoDetalle.CantidadAumentada)
                                    {
                                        Elemento.Cantidad        += Elemento.CantidadAgregada;
                                        Elemento.CantidadAgregada = 0;
                                    }

                                    Elemento.ID_EstadoDetalle = (int)ClsEstadoDetalle.EEstadoDetalle.YaCocinado;

                                    if (Detalles.Actualizar(Elemento, ref InformacionDelError) != 0)
                                    {
                                        dgvPlatosPorMesa.Rows.Clear();
                                        lblDetallesDelPedido.Text = string.Empty;
                                    }
                                    else if (InformacionDelError != string.Empty)
                                    {
                                        MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                    }
                                }

                                if (ActualizarPedido.ID_Delivery == null)
                                {
                                    ActualizarPedido.TiempoEspera = null;
                                }

                                if (ActualizarPedido.ID_Delivery == null)
                                {
                                    ActualizarPedido.ID_EstadoPedido = (int)ClsEstadosPedidos.EEstadosPedidos.ParaEntrega;
                                }
                                else
                                {
                                    ActualizarPedido.ID_EstadoPedido = (int)ClsEstadosPedidos.EEstadosPedidos.Entregado;

                                    ActualizarDelivery = Delivery.LeerPorNumero(ActualizarPedido.ID_Delivery, ref InformacionDelError);

                                    if (ActualizarDelivery != null)
                                    {
                                        ActualizarDelivery.ID_EstadoDelivery = (int)ClsEstadosDeliveries.EEstadosDeliveries.ParaEntrega;

                                        if (Delivery.Actualizar(ActualizarDelivery, ref InformacionDelError) != 0)
                                        {
                                            FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Delivery actualizado con exito";
                                        }
                                        else if (InformacionDelError == string.Empty)
                                        {
                                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el delivery");
                                        }
                                        else
                                        {
                                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el delivery");
                                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                        }
                                    }
                                    else if (InformacionDelError == string.Empty)
                                    {
                                        FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el delivery");
                                    }
                                    else
                                    {
                                        FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el delivery");
                                        MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                    }
                                }

                                if (Pedidos.Actualizar(ActualizarPedido, ref InformacionDelError) != 0)
                                {
                                    if (ActualizarPedido.ID_Delivery != null && ckbImprimirTicketDelivery.Checked)
                                    {
                                        ID_PedidoImprimir = ActualizarPedido.ID_Pedido;
                                        PtdImprimirTicket = new PrintDocument();

                                        if (ClsComprobarEstadoImpresora.ComprobarEstadoImpresora(PtdImprimirTicket.PrinterSettings.PrinterName))
                                        {
                                            PtdImprimirTicket.PrintPage += PrintPageEventHandler;
                                            PtdImprimirTicket.Print();
                                        }

                                        ID_PedidoImprimir = -1;
                                    }

                                    PedidosSeleccionados.RemoveAll(I => I == (int)dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVListaPedidos.ID_Pedido].Value);

                                    lblMostrarNumeroPedido.Text = string.Empty;
                                    dgvPlatosPorMesa.Rows.Clear();
                                    dgvListaPedidos.Rows.Remove(dgvListaPedidos.Rows[Indice]);
                                    Indice       -= 1;
                                    TotalDeFilas -= 1;

                                    FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Pedido actualizado";
                                }
                                else if (InformacionDelError != string.Empty)
                                {
                                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el pedido");
                                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                            }
                            else
                            {
                                using (FrmInformacion FormInformacion = new FrmInformacion($"El pedido numero {ActualizarPedido.ID_Pedido}, no se indico como cocinado debido a " +
                                                                                           $"que fue retirado de la lista desde otra computadora y no llego a quitarse de esta al momento de indicarlo como terminado. " +
                                                                                           $"El pedido sera retirado de la lista al cerrar este mensaje (no se indicara como cocinado).", ClsColores.Blanco, 200, 400))
                                {
                                    FormInformacion.ShowDialog();
                                }

                                lblMostrarNumeroPedido.Text = string.Empty;
                                dgvPlatosPorMesa.Rows.Clear();
                                dgvListaPedidos.Rows.Remove(dgvListaPedidos.Rows[Indice]);
                                Indice       -= 1;
                                TotalDeFilas -= 1;
                            }
                        }
                        else if (InformacionDelError == string.Empty)
                        {
                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el pedido");
                        }
                        else
                        {
                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el pedido");
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
            dgvListaPedidos.ClearSelection();
            tmrActualizaPedidos.Start();
        }
        private void BtnGuardarCambios_Click(object sender, EventArgs e)
        {
            bool   DatosValidos         = true;
            string RegistroDeErrores    = string.Empty;
            int    AnchoFormInformacion = 100;

            txtNombreCategoria.Text = txtNombreCategoria.Text.Trim();

            if (txtNombreCategoria.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nombre' debe tener como minimo 3 caracteres.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (VerificarCategoriaRepetida(txtNombreCategoria.Text, ID_Categoria))
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El nombre de la categoria ya esta en uso.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (DatosValidos)
            {
                txtNombreCategoria.Text = txtNombreCategoria.Text.Substring(0, 1).ToUpper() + txtNombreCategoria.Text.Remove(0, 1).ToLower();

                string InformacionDelError = string.Empty;

                ClsCategoriasArticulos CategoriasArticulos = new ClsCategoriasArticulos();
                CategoriaArticulo      ActualizarCategoria = CategoriasArticulos.LeerPorNumero(ID_Categoria, ref InformacionDelError);

                if (ActualizarCategoria != null)
                {
                    ActualizarCategoria.Nombre = txtNombreCategoria.Text;

                    if (rbnCocinaSi.Checked)
                    {
                        ActualizarCategoria.ParaCocina = (int)ClsCategoriasArticulos.EParaCocina.Si;
                    }
                    else
                    {
                        ActualizarCategoria.ParaCocina = (int)ClsCategoriasArticulos.EParaCocina.No;
                    }

                    ClsDetalles    Detalles = new ClsDetalles();
                    List <Detalle> SeEstaUsuandoLaCategoria = Detalles.LeerListado(-1, ClsDetalles.ETipoDeListado.CategoriaEnUso, ref InformacionDelError, ID_Categoria);

                    if (SeEstaUsuandoLaCategoria.Count == 0)
                    {
                        if (CategoriasArticulos.Actualizar(ActualizarCategoria, ref InformacionDelError) != 0)
                        {
                            DialogResult = DialogResult.OK;
                            Close();
                        }
                        else if (InformacionDelError != string.Empty)
                        {
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                    else
                    {
                        using (FrmInformacion FormInformacion = new FrmInformacion($"No se puede editar la categoria porque " +
                                                                                   $"se esta usando para algun pedido en este momento.", ClsColores.Blanco, 200, 300))
                        {
                            FormInformacion.ShowDialog();
                        }
                    }
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 300))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }
        private void BtnAceptar_Click(object sender, EventArgs e)
        {
            bool   DatosValidos         = true;
            string RegistroDeErrores    = string.Empty;
            int    AnchoFormInformacion = 100;

            txtNombreCategoria.Text = txtNombreCategoria.Text.Trim();

            if (txtNombreCategoria.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nombre' debe tener como minimo 3 caracteres.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (VerificarCategoriaRepetida(txtNombreCategoria.Text, ID_Categoria))
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El nombre de la categoria ya esta en uso.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (DatosValidos)
            {
                txtNombreCategoria.Text = txtNombreCategoria.Text.Substring(0, 1).ToUpper() + txtNombreCategoria.Text.Remove(0, 1).ToLower();

                string InformacionDelError = string.Empty;

                ClsCategoriasArticulos CategoriasArticulos = new ClsCategoriasArticulos();
                CategoriaArticulo      NuevaCategoria      = new CategoriaArticulo();

                NuevaCategoria.Nombre = txtNombreCategoria.Text;
                NuevaCategoria.ID_EstadoCategoriaArticulo = (int)ClsEstadosCategoriasArticulos.EEstadosCategoriasArticulos.Activo;

                if (rbnCocinaSi.Checked)
                {
                    NuevaCategoria.ParaCocina = (int)ClsCategoriasArticulos.EParaCocina.Si;
                }
                else
                {
                    NuevaCategoria.ParaCocina = (int)ClsCategoriasArticulos.EParaCocina.No;
                }

                DialogResult Confirmar = DialogResult.Cancel;

                Confirmar = MessageBox.Show($"¿Estas seguro que quieres crear la categoria '{NuevaCategoria.Nombre}' con esa " +
                                            $"seleccion de categoria para cocina (si/no)?", "Aviso", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

                if (Confirmar == DialogResult.OK)
                {
                    if (CategoriasArticulos.Crear(NuevaCategoria, ref InformacionDelError) != 0)
                    {
                        DialogResult = DialogResult.OK;
                        Close();
                    }
                    else if (InformacionDelError == string.Empty)
                    {
                        MessageBox.Show("Fallo al crear la categoria", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 300))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }
        /// <summary>Actualiza el estado del usuario a activo/inactivo.</summary>
        /// <param name="_EstadoUsuario">Enum que contrendra el numero del tipo de estado.</param>
        private void ActualizarEstadoUsuario(ClsEstadosUsuarios.EEstadosUsuarios _EstadoUsuario)
        {
            ClsUsuarios Usuarios          = new ClsUsuarios();
            Usuario     ActualizarUsuario = new Usuario();

            int TotalDeFilas = dgvDatosUsuarios.Rows.Count;

            for (int Indice = 0; Indice < TotalDeFilas; Indice++)
            {
                //Pregunto si la celda es diferente a null
                if (dgvDatosUsuarios.Rows[Indice].Cells[(int)ENumColDGVUsuarios.Seleccionar].Value != null)
                {
                    //Casteo el check del objeto a booleano y pregunto si es true
                    if ((bool)dgvDatosUsuarios.Rows[Indice].Cells[(int)ENumColDGVUsuarios.Seleccionar].Value)
                    {
                        string InformacionDelError = string.Empty;

                        // Verificacion de que el usuario no este asignado a una mesa actualmente
                        bool UsuarioConMesaAsignada = false;

                        if (_EstadoUsuario == ClsEstadosUsuarios.EEstadosUsuarios.Inactivo)
                        {
                            UsuarioConMesaAsignada = BuscarUsuariosAtendiendoMesa(Indice);
                        }

                        ActualizarUsuario = Usuarios.LeerPorNumero((int)dgvDatosUsuarios.Rows[Indice].Cells[(int)ENumColDGVUsuarios.ID_Usuario].Value, ClsUsuarios.EUsuarioABuscar.PorID, ref InformacionDelError);
                        ActualizarUsuario.ID_EstadoUsuario = (int)_EstadoUsuario;

                        if (!UsuarioConMesaAsignada)
                        {
                            //impedir eliminar perfiles gerentes
                            if (ActualizarUsuario.ID_Perfil != (int)ClsPerfiles.EPerfiles.Gerente)
                            {
                                if (Usuarios.Actualizar(ActualizarUsuario, ref InformacionDelError) != 0)
                                {
                                    dgvDatosUsuarios.Rows.Remove(dgvDatosUsuarios.Rows[Indice]);
                                    Indice       -= 1;
                                    TotalDeFilas -= 1;
                                }
                                else if (InformacionDelError == string.Empty)
                                {
                                    MessageBox.Show($"Error al intentar eliminar el usuario", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                                else
                                {
                                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                            }
                            else
                            {
                                using (FrmInformacion FormInformacion = new FrmInformacion($"El usuario '{ActualizarUsuario.Nombre}' no se puede eliminar ya que es un gerente.", ClsColores.Blanco, 150, 300))
                                {
                                    FormInformacion.ShowDialog();
                                }
                            }
                        }
                        else
                        {
                            using (FrmInformacion FormInformacion = new FrmInformacion($"El usuario '{ActualizarUsuario.Nombre} {ActualizarUsuario.Apellido}' no se puede eliminar ya que " +
                                                                                       $"se detecto que esta asignado a una mesa, cambie el usuario que desea eliminar por otro mozo en la " +
                                                                                       $"pantalla de mesas e intente nuevamente.", ClsColores.Blanco, 200, 350))
                            {
                                FormInformacion.ShowDialog();
                            }
                        }
                    }
                }
            }
        }
Exemple #30
0
        private void BtnAgregarRegistro_Click(object sender, EventArgs e)
        {
            txtDetalle.Text = txtDetalle.Text.Trim();

            if (ID_Registro != -1 && txtMonto.Text != string.Empty && txtMonto.Text.Substring(0, 1) != "," && txtMonto.Text.Substring(txtMonto.Text.Length - 1, 1) != ",")
            {
                using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.GerentesSubGerentes))
                {
                    FormValidarUsuario.ShowDialog();

                    if (FormValidarUsuario.DialogResult == DialogResult.OK)
                    {
                        if (txtDetalle.Text != string.Empty)
                        {
                            txtDetalle.Text = txtDetalle.Text.Substring(0, 1).ToUpper() + txtDetalle.Text.Remove(0, 1).ToLower();
                        }

                        string InformacionDelError = string.Empty;

                        ClsCajas Cajas         = new ClsCajas();
                        Caja     CrearRegistro = new Caja();

                        CrearRegistro.Fecha          = DateTime.Today.Date;
                        CrearRegistro.Hora           = TimeSpan.Parse(DateTime.Now.ToString(@"HH\:mm\:ss"));
                        CrearRegistro.Monto          = Convert.ToDouble(txtMonto.Text);
                        CrearRegistro.Detalle        = txtDetalle.Text;
                        CrearRegistro.ID_TipoDeMonto = ID_Registro;
                        CrearRegistro.ID_Pedido      = null;

                        if (ID_Registro == (int)ClsTiposDeMontos.ETiposDeMontos.AperturaCaja)
                        {
                            CrearRegistro.ID_EstadoCaja = (int)ClsEstadosCajas.EEstadosCajas.CajaAbierta;
                        }
                        else
                        {
                            CrearRegistro.ID_EstadoCaja = (int)ClsEstadosCajas.EEstadosCajas.Activo;
                        }

                        CrearRegistro.ID_Usuario = FormValidarUsuario.G_ID_UsuarioQueValido;

                        if (Cajas.Crear(CrearRegistro, ref InformacionDelError) != 0)
                        {
                            if (CrearRegistro.ID_TipoDeMonto == (int)ClsTiposDeMontos.ETiposDeMontos.CierreCaja)
                            {
                                List <Caja> BuscarRegistroCajaAbierta = Cajas.LeerListado(ClsCajas.ETipoListado.CajaAbierta, ref InformacionDelError);

                                if (BuscarRegistroCajaAbierta != null)
                                {
                                    foreach (Caja Elemento in BuscarRegistroCajaAbierta)
                                    {
                                        Elemento.ID_EstadoCaja = (int)ClsEstadosCajas.EEstadosCajas.Activo;

                                        Cajas.Actualizar(Elemento, ref InformacionDelError);
                                    }
                                }
                                else if (InformacionDelError == string.Empty)
                                {
                                    MessageBox.Show("Fallo al listar los montos", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                                else
                                {
                                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                            }

                            DialogResult = DialogResult.OK;
                            Close();
                        }
                        else if (InformacionDelError == string.Empty)
                        {
                            MessageBox.Show($"Fallo al crear el registro en caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion($"Debe cargar un registro con su monto correspondiente (verifique también que no tenga la " +
                                                                           "coma del centavo al principio o al final).", ClsColores.Blanco, 250, 300))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }