public void BtnGenerarCopiaDeSeguridad_Click(object sender, EventArgs e)
        {
            using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.Gerentes))
            {
                FormValidarUsuario.ShowDialog();

                if (FormValidarUsuario.DialogResult == DialogResult.OK)
                {
                    using (FrmRutaBackUp FormRutaBackUp = new FrmRutaBackUp())
                    {
                        string InformacionDelError = string.Empty;
                        bool   CreacionCancelada   = false;

                        string Ruta = ClsGenerarBackUps.GenerarBackUp(ref CreacionCancelada, ref InformacionDelError);

                        if (Ruta != string.Empty && InformacionDelError == string.Empty && !CreacionCancelada)
                        {
                            FormRutaBackUp.S_Ruta = Ruta;
                            FormRutaBackUp.ShowDialog();
                        }
                        else if (InformacionDelError != string.Empty)
                        {
                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Ocurrio un error al intentar generar la copia de seguridad");
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else if (!CreacionCancelada)
                        {
                            FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Ocurrio un error al intentar generar la copia de seguridad");
                            MessageBox.Show($"Ocurrio un error al intentar generar la copia de seguridad", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
        }
예제 #2
0
        private void btnIngresar_Click(object sender, EventArgs e)
        {
            InformacionDeLaExcepcion = ERespuestaBaseDeDatos.SinErrores;
            RespuestaDeSesion        = ERespuestaDelInicio.DatosCorrectos;

            RespuestaDeSesion = ClsInicioSesion.ComparaDatos(txtUsuario.Text.ToLower(), txtContraseña.Text, ref InformacionDeLaExcepcion);

            if (RespuestaDeSesion == ERespuestaDelInicio.DatosCorrectos)
            {
                txtContraseña.UseSystemPasswordChar = false;
                txtUsuario.Text    = TextoVisualUsuario;
                txtContraseña.Text = TextoVisualContraseña;

                Hide();

                FrmPrincipal AbrirFrmPrincipal = new FrmPrincipal();

                AbrirFrmPrincipal.FormClosed += CerrarSesion; //Cuando se cierra el formulario principal, se ejecuta el evento CerrarSesion

                AbrirFrmPrincipal.Show();
            }
            else
            {
                if (InformacionDeLaExcepcion != ERespuestaBaseDeDatos.SinErrores)
                {
                    switch (InformacionDeLaExcepcion)
                    {
                    case ERespuestaBaseDeDatos.ArgumentException:
                        MessageBox.Show($"ArgumentException: La cadena de conexión con la base de datos no " +
                                        $"existe \r\n\r\nContacte con el programador para informar y corregir el " +
                                        $"error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;

                    case ERespuestaBaseDeDatos.SqlException:
                        MessageBox.Show($"SqlException: La sentencia para buscar la información es " +
                                        $"invalida \r\n\r\nContacte con el programador para informar y corregir el " +
                                        $"error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;

                    case ERespuestaBaseDeDatos.Exception:
                        MessageBox.Show($"Exception: Posible error en la consulta \r\n\r\nContacte con el " +
                                        $"programador para informar y corregir el error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    }
                }
                else
                {
                    switch (RespuestaDeSesion)
                    {
                    case ERespuestaDelInicio.UsuarioInexistente: { lblMensajeDeError.Text = "Usuario incorrecto"; break; }

                    case ERespuestaDelInicio.ClaveIncorrecta: { lblMensajeDeError.Text = "Contraseña incorrecta"; break; }

                    default: { lblMensajeDeError.Text = "Ocurrio un error inesperado al intentar comparar los datos para validar sesion"; break; }
                    }

                    lblMensajeDeError.Visible = true;
                }
            }
        }
예제 #3
0
        private void CargarFiltroTipoDeMontos()
        {
            string InformacionDelError = string.Empty;

            ClsTiposDeMontos TipoDeMontos = new ClsTiposDeMontos();

            List <TipoDeMonto> CargarComboBoxTipoDeMontos = TipoDeMontos.LeerListado(ClsTiposDeMontos.ETipoDeListado.Todo, ref InformacionDelError);

            if (CargarComboBoxTipoDeMontos != null)
            {
                // Creo el item para listar todo
                CargarComboBoxTipoDeMontos.Add(new TipoDeMonto {
                    ID_TipoDeMonto = 0, Nombre = "Todos los movimientos"
                });

                // Nombre de la columna que contiene el nombre
                cmbTipoDeMonto.DisplayMember = "Nombre";
                // Nombre de la columna que contiene el ID
                cmbTipoDeMonto.ValueMember = "ID_TipoDeMonto";

                // Llenar el combo
                cmbTipoDeMonto.DataSource = CargarComboBoxTipoDeMontos;

                cmbTipoDeMonto.SelectedValue = 0;
            }
            else if (InformacionDelError == string.Empty)
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Ocurrio un fallo al cargar el filtro de Tipo de cuenta");
            }
            else
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Ocurrio un fallo al cargar el filtro de Tipo de cuenta");
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        /// <summary>
        /// Devuelve una unica instancia del formulario (Patron singleton)
        /// </summary>
        /// <returns></returns>
        public static FrmPrincipal ObtenerInstancia()
        {
            if (InstanciaForm == null)
            {
                InstanciaForm = new FrmPrincipal();
            }

            return(InstanciaForm);
        }
        private void DgvCarta_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            DataGridView DetectarTipoCasilla = (DataGridView)sender;

            if (e.RowIndex != -1 && !(DetectarTipoCasilla.Columns[e.ColumnIndex] is DataGridViewCheckBoxColumn))
            {
                using (FrmArticulo FormModificaArticulo = new FrmArticulo((int)dgvCarta.Rows[e.RowIndex].Cells[(int)ENumColDGVCarta.ID_Articulo].Value))
                {
                    FormModificaArticulo.ShowDialog();

                    if (FormModificaArticulo.DialogResult == DialogResult.OK)
                    {
                        string InformacionDelError = string.Empty;

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

                        ActualizarArticulo = Articulos.LeerPorNumero((int)dgvCarta.Rows[e.RowIndex].Cells[(int)ENumColDGVCarta.ID_Articulo].Value, ref InformacionDelError);

                        if (ActualizarArticulo != null)
                        {
                            dgvCarta.Rows[e.RowIndex].Cells[(int)ENumColDGVCarta.ID_Articulo].Value = ActualizarArticulo.ID_Articulo;
                            dgvCarta.Rows[e.RowIndex].Cells[(int)ENumColDGVCarta.Nombre].Value      = ActualizarArticulo.Nombre;
                            dgvCarta.Rows[e.RowIndex].Cells[(int)ENumColDGVCarta.Descripcion].Value = ActualizarArticulo.Descripcion;
                            dgvCarta.Rows[e.RowIndex].Cells[(int)ENumColDGVCarta.Categoria].Value   = ActualizarArticulo.CategoriaArticulo.Nombre;

                            if (ActualizarArticulo.Precio == null)
                            {
                                dgvCarta.Rows[e.RowIndex].Cells[(int)ENumColDGVCarta.PrecioCarta].Value = "NO TIENE";
                            }
                            else
                            {
                                dgvCarta.Rows[e.RowIndex].Cells[(int)ENumColDGVCarta.PrecioCarta].Value = ActualizarArticulo.Precio;
                            }

                            if (ActualizarArticulo.PrecioDelivery == null)
                            {
                                dgvCarta.Rows[e.RowIndex].Cells[(int)ENumColDGVCarta.PrecioDelivery].Value = "NO TIENE";
                            }
                            else
                            {
                                dgvCarta.Rows[e.RowIndex].Cells[(int)ENumColDGVCarta.PrecioDelivery].Value = ActualizarArticulo.PrecioDelivery;
                            }

                            dgvCarta.Sort(dgvCarta.Columns[(int)ENumColDGVCarta.Categoria], ListSortDirection.Ascending);

                            FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Articulo actualizado correctamente";
                        }
                        else if (InformacionDelError != string.Empty)
                        {
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
        }
예제 #6
0
        private void btnIngresar_Click(object sender, EventArgs e)
        {
            string InformacionDelError = string.Empty;

            ClsUsuarios.ERespuestaDelInicio RespuestaDeSesion = ClsUsuarios.ERespuestaDelInicio.UsuarioYContraseñaIncorrecta;

            ClsUsuarios Usuarios            = new ClsUsuarios();
            Usuario     UsuarioIniciaSesion = Usuarios.LeerParaInicioSesion(txtUsuario.Text, txtContraseña.Text, ref RespuestaDeSesion, ref InformacionDelError);

            if (UsuarioIniciaSesion != null)
            {
                txtUsuario.Text    = TEXTO_VISUAL_USUARIO;
                txtContraseña.Text = TEXTO_VISUAL_CONTRASEÑA;
                txtContraseña.UseSystemPasswordChar = false;

                Hide();

                FrmPrincipal FormPrincipal = FrmPrincipal.ObtenerInstancia();

                FormPrincipal.FormClosed += CerrarSesion; //Cuando se cierra el formulario principal, se ejecuta el evento CerrarSesion

                ID_UsuarioInicioSesion       = UsuarioIniciaSesion.ID_Usuario;
                ID_PerfilUsuarioInicioSesion = UsuarioIniciaSesion.ID_Perfil;
                NombreUsuarioInicioSesion    = $"{UsuarioIniciaSesion.Nombre} {UsuarioIniciaSesion.Apellido}";

                if (UsuarioIniciaSesion.ID_Perfil != (int)ClsPerfiles.EPerfiles.Administrador)
                {
                    tmrPantallaCarga.Start();
                    FrmPantallaDePresentacion.ObtenerInstancia().ShowDialog();
                }

                FormPrincipal.Show();
            }
            else if (InformacionDelError == string.Empty)
            {
                switch (RespuestaDeSesion)
                {
                case ClsUsuarios.ERespuestaDelInicio.DadoDeBaja: lblMensajeDeError.Text = "Usuario dado de baja"; break;

                case ClsUsuarios.ERespuestaDelInicio.UsuarioYContraseñaIncorrecta: lblMensajeDeError.Text = "Usuario y contraseña incorrectos"; break;

                case ClsUsuarios.ERespuestaDelInicio.UsuarioIncorrecto: lblMensajeDeError.Text = "Usuario incorrecto"; break;

                case ClsUsuarios.ERespuestaDelInicio.ClaveIncorrecta: lblMensajeDeError.Text = "Contraseña incorrecta"; break;

                default: lblMensajeDeError.Text = "Ocurrio un error inesperado al intentar comparar los datos para validar sesión"; break;
                }

                lblMensajeDeError.Visible = true;
            }
            else
            {
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        private void FrmPrincipal_FormClosed(object sender, FormClosedEventArgs e)
        {
            // Saco de pantalla cualquier formulario que pudiera haber quedado antes de sacar el principal
            if (UltimoFormAbierto != null)
            {
                UltimoFormAbierto.Hide();
                pnlContDeFrmsSecundarios.Controls.Remove(UltimoFormAbierto);
            }

            InstanciaForm = null;
        }
        private void PrintPageEventHandler(object sender, PrintPageEventArgs e)
        {
            string InformacionDelError = string.Empty;

            ClsImpresionTickets.TicketDePrueba(ref e, ref InformacionDelError);

            if (InformacionDelError != string.Empty)
            {
                MessageBox.Show(InformacionDelError, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Ocurrio un error al intentar impimir el ticket");
            }
        }
        public void BtnCrearArticulo_Click(object sender, EventArgs e)
        {
            using (FrmArticulo FormCrearArticulo = new FrmArticulo())
            {
                FormCrearArticulo.ShowDialog();

                if (FormCrearArticulo.DialogResult == DialogResult.OK)
                {
                    CargarDGVCarta(ClsArticulos.ETipoListado.ArticulosActivos);
                    FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Articulo creado correctamente";
                }
            }
        }
예제 #10
0
        private void CargarConfiguracion()
        {
            string InformacionDelError = string.Empty;

            ClsConfiguraciones Configuraciones   = new ClsConfiguraciones();
            Configuracion      LeerConfiguracion = new Configuracion();

            LeerConfiguracion = Configuraciones.LeerPorNumero(1, ref InformacionDelError);

            if (LeerConfiguracion != null)
            {
                int CantidadDeMesasPB = ListarMesasActivasPB();
                int CantidadDeMesasPA = ListarMesasActivasPA();

                nudAvisoEspera.Value          = LeerConfiguracion.AvisoEspera;
                nudTiempoVentanaAbierta.Value = LeerConfiguracion.TiempoFormAbierto;

                nudNumeroDeMesaEditar.Maximum = CantidadDeMesasPB;

                nudCantidadMesasAEliminar.Maximum = CantidadDeMesasPB - 1; // Preserva como minimo una mesa

                if (CantidadDeMesasPB != -1 && CantidadDeMesasPA != -1)
                {
                    lblCantidadMesasPB.Text = Convert.ToString(CantidadDeMesasPB);
                    lblCantidadMesasPA.Text = Convert.ToString(CantidadDeMesasPA);

                    // El proximo numero de mesa esta dado por la cantidad total de mesas (en este caso planta baja) aumentado
                    // en 1 (si cambia de planta a configurar se actualizara al de mesas de PA)
                    lblNumeroNuevaMesa.Text = Convert.ToString(CantidadDeMesasPB + 1);

                    FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Configuracion cargada correctamente";
                }
                else
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al intentar cargar el numero de mesas por planta");
                    BloquearBotonesPorError();
                }
            }
            else if (InformacionDelError == string.Empty)
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar cargar la configuracion");
                BloquearBotonesPorError();
            }
            else
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar cargar la configuracion");
                BloquearBotonesPorError();
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
예제 #11
0
        private void BtnCrearCliente_Click(object sender, EventArgs e)
        {
            using (FrmGestionCliente CrearCliente = new FrmGestionCliente())
            {
                CrearCliente.ShowDialog();

                if (CrearCliente.DialogResult == DialogResult.OK)
                {
                    LimpiarFiltros();

                    CargarDGVClientes(ClsClientes.EClienteBuscar.Todos);

                    FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Cliente creado con exito";
                }
            }
        }
예제 #12
0
        /// <summary>
        /// Si el pedido no estaba cargado, lo carga, si ya estaba cargado, lo actualiza
        /// </summary>
        private void ActualizaInformacionPedido(int _ID_Pedido)
        {
            string InformacionDelError = string.Empty;

            ClsDetalles    Detalles         = new ClsDetalles();
            List <Detalle> PlatosSinCocinar = Detalles.LeerListado(_ID_Pedido, ClsDetalles.ETipoDeListado.ParaCocina, ref InformacionDelError);

            if (PlatosSinCocinar != null)
            {
                dgvPlatosPorMesa.Rows.Clear();

                string Nota = string.Empty;

                foreach (Detalle Elemento in PlatosSinCocinar)
                {
                    int NumeroDeFila = dgvPlatosPorMesa.Rows.Add();

                    dgvPlatosPorMesa.Rows[NumeroDeFila].Cells[(int)ENumColDGVPlatosPorMesa.ID_Pedido].Value = Elemento.Pedido.ID_Pedido;
                    dgvPlatosPorMesa.Rows[NumeroDeFila].Cells[(int)ENumColDGVPlatosPorMesa.Articulo].Value  = Elemento.Articulo.Nombre;
                    dgvPlatosPorMesa.Rows[NumeroDeFila].Cells[(int)ENumColDGVPlatosPorMesa.Detalle].Value   = Elemento.Articulo.Descripcion;

                    if (Elemento.ID_EstadoDetalle == (int)ClsEstadoDetalle.EEstadoDetalle.NoCocinado)
                    {
                        dgvPlatosPorMesa.Rows[NumeroDeFila].Cells[(int)ENumColDGVPlatosPorMesa.Cantidad].Value = Elemento.Cantidad;
                    }
                    else
                    {
                        dgvPlatosPorMesa.Rows[NumeroDeFila].Cells[(int)ENumColDGVPlatosPorMesa.Cantidad].Value = Elemento.CantidadAgregada;
                    }

                    Nota = Elemento.Pedido.Nota;
                }

                lblDetallesDelPedido.Text = Nota.ToUpper();

                dgvPlatosPorMesa.ClearSelection();
            }
            else if (InformacionDelError == string.Empty)
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al cargar el pedido");
            }
            else
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al cargar el pedido");
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        private void CkbSegundaPlanta_CheckedChanged(object sender, EventArgs e)
        {
            string InformacionDelError = string.Empty;

            ClsConfiguraciones Configuraciones         = new ClsConfiguraciones();
            Configuracion      ActualizarConfiguracion = new Configuracion();

            ActualizarConfiguracion = Configuraciones.LeerPorNumero(1, ref InformacionDelError);

            if (ckbSegundaPlanta.Checked)
            {
                ActualizarConfiguracion.TrabajaConPlantaAlta = 1;
            }
            else
            {
                ActualizarConfiguracion.TrabajaConPlantaAlta = 0;
            }

            InformacionDelError = string.Empty;

            if (Configuraciones.Actualizar(ActualizarConfiguracion, ref InformacionDelError) != 0)
            {
                if (ActualizarConfiguracion.TrabajaConPlantaAlta == 0)
                {
                    lblCantidadMesasPATexto.Visible = false;
                    lblCantidadMesasPA.Visible      = false;
                    rbnPlantaBaja.Checked           = true;
                    rbnPlantaAlta.Enabled           = false;
                }
                else
                {
                    lblCantidadMesasPATexto.Visible = true;
                    lblCantidadMesasPA.Visible      = true;
                    rbnPlantaBaja.Checked           = true;
                    rbnPlantaAlta.Enabled           = true;
                }

                FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Preferencia de planta actualizada";
            }
            else if (InformacionDelError != string.Empty)
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar actualizar la Preferencia de planta");
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        private void BtnAplicarNuevaCapacidad_Click(object sender, EventArgs e)
        {
            // TODO - Cambiar la capacidad de una mesa
            string InformacionDelError = string.Empty;

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

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

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

                    if (Mesas.Actualizar(EditarCapacidadMesa, ref InformacionDelError) != 0)
                    {
                        FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Capacidad de la mesa actualizada";
                    }
                    else if (InformacionDelError == string.Empty)
                    {
                        FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar la capacidad de la mesa");
                    }
                    else
                    {
                        FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar la capacidad de la mesa");
                        MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else
                {
                    FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Seleccione una nueva capacidad";
                }
            }
            else if (InformacionDelError == string.Empty)
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al buscar la mesa a editar");
            }
            else
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al buscar la mesa a editar");
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        /// <summary>
        /// Busca las mesas pertenecientes a la planta alta, que estan en estado activo.
        /// </summary>
        /// <returns>Cantidad de mesas que esten activas.</returns>
        private int ListarMesasActivasPA()
        {
            string InformacionDelError = string.Empty;

            ClsMesas Mesas = new ClsMesas();

            List <Mesa> ListarMesasPA = Mesas.LeerListado(ClsMesas.ETipoDeListado.MesasActivasPA, ref InformacionDelError);

            if (ListarMesasPA != null)
            {
                return(ListarMesasPA.Count);
            }
            else if (InformacionDelError != string.Empty)
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar calcular las mesas de la PA");
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            return(-1);
        }
예제 #16
0
        private void CargarFiltroUsuarios()
        {
            string InformacionDelError = string.Empty;

            ClsUsuarios Usuarios = new ClsUsuarios();

            List <Usuario> CargarComboBoxUsuarios = Usuarios.LeerListado(ClsUsuarios.ETipoListado.TodosLosUsuarios, ref InformacionDelError);

            if (CargarComboBoxUsuarios != null)
            {
                // Creo el item para listar todo
                CargarComboBoxUsuarios.Add(new Usuario {
                    ID_Usuario = 0, Nombre = "Todos los usuarios"
                });

                foreach (Usuario Elemento in CargarComboBoxUsuarios)
                {
                    Elemento.Nombre += $" {Elemento.Apellido}";
                }

                // Nombre de la columna que contiene el nombre
                cmbUsuarios.DisplayMember = "Nombre";
                // Nombre de la columna que contiene el ID
                cmbUsuarios.ValueMember = "ID_Usuario";

                // Llenar el combo
                cmbUsuarios.DataSource = CargarComboBoxUsuarios;

                cmbUsuarios.SelectedValue = 0;
            }
            else if (InformacionDelError == string.Empty)
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Ocurrio un fallo al cargar el filtro de estados");
            }
            else
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Ocurrio un fallo al cargar el filtro de estados");
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        private void NudTiempoVentanaAbierta_ValueChanged(object sender, EventArgs e)
        {
            if (FormularioCargado)
            {
                string InformacionDelError = string.Empty;

                ClsConfiguraciones Configuraciones = new ClsConfiguraciones();

                Configuracion ActualizarConfiguracion = new Configuracion();
                ActualizarConfiguracion = Configuraciones.LeerPorNumero(1, ref InformacionDelError);
                ActualizarConfiguracion.TiempoFormAbierto = (int)nudTiempoVentanaAbierta.Value;

                if (Configuraciones.Actualizar(ActualizarConfiguracion, ref InformacionDelError) != 0)
                {
                    FrmPrincipal.ObtenerInstancia().S_TiempoLimiteTranscurrido = (int)nudTiempoVentanaAbierta.Value;
                }
                else if (InformacionDelError != string.Empty)
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar actualizar el tiempo");
                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
        private void NudAvisoEspera_ValueChanged(object sender, EventArgs e)
        {
            if (FormularioCargado)
            {
                string InformacionDelError = string.Empty;

                ClsConfiguraciones Configuraciones = new ClsConfiguraciones();

                Configuracion ActualizarConfiguracion = new Configuracion();
                ActualizarConfiguracion             = Configuraciones.LeerPorNumero(1, ref InformacionDelError);
                ActualizarConfiguracion.AvisoEspera = (int)nudAvisoEspera.Value;

                if (Configuraciones.Actualizar(ActualizarConfiguracion, ref InformacionDelError) != 0)
                {
                    FrmMesas.ObtenerInstancia().S_AvisoEspera = (int)nudAvisoEspera.Value;
                    FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Tiempo aviso espera actualizado";
                }
                else if (InformacionDelError != string.Empty)
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar actualizar el tiempo aviso espera");
                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
예제 #19
0
        private void CargarDGVCaja(ClsCajas.ETipoListado _TipoDeListado)
        {
            if (ValidarHora(false, mtbHoraComienzo) && ValidarHora(false, mtbHoraFin))
            {
                dgvCaja.Rows.Clear();

                string InformacionDelError = string.Empty;

                // Inicio preparacion de filtros ----
                int ID_Monto   = 0;
                int ID_Usuario = 0;

                if (cmbTipoDeMonto.SelectedValue != null)
                {
                    TipoDeMonto EstadoReservaSeleccionado = (TipoDeMonto)cmbTipoDeMonto.SelectedItem;
                    ID_Monto = EstadoReservaSeleccionado.ID_TipoDeMonto;
                }
                else
                {
                    cmbTipoDeMonto.SelectedValue = 0;
                }


                if (cmbUsuarios.SelectedValue != null)
                {
                    Usuario EstadoReservaSeleccionado = (Usuario)cmbUsuarios.SelectedItem;
                    ID_Usuario = EstadoReservaSeleccionado.ID_Usuario;
                }
                else
                {
                    cmbUsuarios.SelectedValue = 0;
                }

                string FechaDesde = Convert.ToString(dtpFechaDesde.Value.Date);
                string FechaHasta = Convert.ToString(dtpDechaHasta.Value.Date);

                if (!ckbIncluirFechaDesde.Checked)
                {
                    FechaDesde = string.Empty;
                }
                if (!ckbIncluirFechaHasta.Checked)
                {
                    FechaHasta = string.Empty;
                }
                // Fin preparacion de filtros ----

                ClsCajas Cajas = new ClsCajas();

                List <Caja> CargarDGVCaja = Cajas.LeerListado(_TipoDeListado, ref InformacionDelError, FechaDesde, FechaHasta, ID_Monto, ID_Usuario, mtbHoraComienzo.Text, mtbHoraFin.Text);

                if (CargarDGVCaja != null)
                {
                    double TotalIngreso = 0;
                    double TotalEgreso  = 0;

                    foreach (Caja Elemento in CargarDGVCaja)
                    {
                        int NumeroDeFila = dgvCaja.Rows.Add();

                        dgvCaja.Columns[(int)ENumColDGVCaja.ID_Caja].SortMode             = DataGridViewColumnSortMode.NotSortable;
                        dgvCaja.Columns[(int)ENumColDGVCaja.ID_Pedido].SortMode           = DataGridViewColumnSortMode.NotSortable;
                        dgvCaja.Columns[(int)ENumColDGVCaja.Fecha].SortMode               = DataGridViewColumnSortMode.NotSortable;
                        dgvCaja.Columns[(int)ENumColDGVCaja.Hora].SortMode                = DataGridViewColumnSortMode.NotSortable;
                        dgvCaja.Columns[(int)ENumColDGVCaja.TipoCuenta].SortMode          = DataGridViewColumnSortMode.NotSortable;
                        dgvCaja.Columns[(int)ENumColDGVCaja.Ingreso].SortMode             = DataGridViewColumnSortMode.NotSortable;
                        dgvCaja.Columns[(int)ENumColDGVCaja.Egreso].SortMode              = DataGridViewColumnSortMode.NotSortable;
                        dgvCaja.Columns[(int)ENumColDGVCaja.Detalle].SortMode             = DataGridViewColumnSortMode.NotSortable;
                        dgvCaja.Columns[(int)ENumColDGVCaja.RegistroGeneradoPor].SortMode = DataGridViewColumnSortMode.NotSortable;

                        dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.ID_Caja].Value = Elemento.ID_Caja;

                        if (Elemento.ID_Pedido == null)
                        {
                            dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.ID_Pedido].Value = string.Empty;
                        }
                        else
                        {
                            dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.ID_Pedido].Value = Elemento.ID_Pedido;
                        }

                        dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.Fecha].Value      = Elemento.Fecha.ToShortDateString();
                        dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.Hora].Value       = Elemento.Hora.ToString(@"hh\:mm");
                        dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.TipoCuenta].Value = Elemento.TipoDeMonto.Nombre;

                        switch ((ClsTiposDeMovimientos.ETipoDeMovimientos)Elemento.TipoDeMonto.ID_TipoDeMovimiento)
                        {
                        case ClsTiposDeMovimientos.ETipoDeMovimientos.Ingreso:
                        {
                            dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.Ingreso].Value = Elemento.Monto;
                            dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.Egreso].Value  = string.Empty;
                            TotalIngreso += Elemento.Monto;
                            break;
                        }

                        case ClsTiposDeMovimientos.ETipoDeMovimientos.Egreso:
                        {
                            dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.Ingreso].Value = string.Empty;
                            dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.Egreso].Value  = Elemento.Monto;
                            TotalEgreso += Elemento.Monto;
                            break;
                        }
                        }

                        dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.Detalle].Value             = Elemento.Detalle;
                        dgvCaja.Rows[NumeroDeFila].Cells[(int)ENumColDGVCaja.RegistroGeneradoPor].Value = $"{Elemento.Usuario.Nombre} {Elemento.Usuario.Apellido}";
                    }
                    lblResultadoIngresos.Text   = Convert.ToString(TotalIngreso);
                    lblResultadoEgresos.Text    = Convert.ToString(TotalEgreso);
                    lblResultadoDiferencia.Text = Convert.ToString(TotalIngreso - TotalEgreso);
                }
                else if (InformacionDelError == string.Empty)
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Ocurrio un fallo al cargar la lista");
                }
                else
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Ocurrio un fallo al cargar la lista");
                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
        /// <summary>Carga la carta con todos los articulos activos (incluyendo a los que su categoria fue eliminada)</summary>
        private void CargarDGVCarta(ClsArticulos.ETipoListado _TipoDeListado)
        {
            if (FormularioCargado)
            {
                string NombreArticulo = string.Empty;

                int ID_CategoriaFiltro = 0;

                if (cmbCategoria.SelectedValue != null)
                {
                    CategoriaArticulo CategoriaSeleccionada = (CategoriaArticulo)cmbCategoria.SelectedItem;
                    ID_CategoriaFiltro = CategoriaSeleccionada.ID_CategoriaArticulo;
                }

                if (txtBuscarPorNombre.Text != TEXTO_VISUAL_BUSCAR)
                {
                    NombreArticulo = txtBuscarPorNombre.Text;
                }

                dgvCarta.Rows.Clear();

                string InformacionDelError = string.Empty;

                ClsArticulos Articulos = new ClsArticulos();

                List <Articulo> ListarArticulosActivos = Articulos.LeerListado(_TipoDeListado, ref InformacionDelError, ClsArticulos.ETipoListado.ArticulosActivos, NombreArticulo, ID_CategoriaFiltro);

                if (ListarArticulosActivos != null)
                {
                    foreach (Articulo Elemento in ListarArticulosActivos)
                    {
                        int NumeroDeFila = dgvCarta.Rows.Add();

                        dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.ID_Articulo].Value = Elemento.ID_Articulo;
                        dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Nombre].Value      = Elemento.Nombre;
                        dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Descripcion].Value = Elemento.Descripcion;
                        dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Categoria].Value   = Elemento.CategoriaArticulo.Nombre;

                        if (Elemento.Precio == null)
                        {
                            dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.PrecioCarta].Value = "NO TIENE";
                        }
                        else
                        {
                            dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.PrecioCarta].Value = Elemento.Precio;
                        }

                        if (Elemento.PrecioDelivery == null)
                        {
                            dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.PrecioDelivery].Value = "NO TIENE";
                        }
                        else
                        {
                            dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.PrecioDelivery].Value = Elemento.PrecioDelivery;
                        }

                        if (ArticulosDeCartaMarcados.Count > 0)
                        {
                            foreach (int ElementoSecundario in ArticulosDeCartaMarcados)
                            {
                                if (ElementoSecundario == Elemento.ID_Articulo)
                                {
                                    dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Seleccionar].Value = true;
                                    ClsColores.MarcarFilaDGV(dgvCarta, NumeroDeFila, true);
                                    break;
                                }
                                else
                                {
                                    dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Seleccionar].Value = false;
                                    ClsColores.MarcarFilaDGV(dgvCarta, NumeroDeFila, false);
                                }
                            }
                        }
                        else
                        {
                            dgvCarta.Rows[NumeroDeFila].Cells[(int)ENumColDGVCarta.Seleccionar].Value = false;
                            ClsColores.MarcarFilaDGV(dgvCarta, NumeroDeFila, false);
                        }
                    }
                }
                else if (InformacionDelError == string.Empty)
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al cargar los articulos");
                    MessageBox.Show($"Ocurrio un fallo al intentar cargar los articulos de la carta",
                                    "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al cargar los articulos");
                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            dgvCarta.ClearSelection();
        }
        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);
            }
        }
예제 #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();
        }
예제 #23
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();
                    }
                }
            }
        }
예제 #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();
            }
        }
        private void BtnCrearMesa_Click(object sender, EventArgs e)
        {
            CargarConfiguracion();

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

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

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

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

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

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

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

                    if (Mesas.Crear(BuscarMesaInactiva, ref InformacionDelError) != 0)
                    {
                        ActualizarControles();
                        FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Mesa creada correctamente";
                    }
                    else if (InformacionDelError == string.Empty)
                    {
                        FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al crear la mesa");
                    }
                    else
                    {
                        FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al crear la mesa");
                        MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else
                {
                    FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al crear la mesa");
                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Alcanzo el limite de mesas en la PB";
            }
        }
예제 #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 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);
                }
            }
        }
예제 #28
0
        private void CargarDGVListarPedidos()
        {
            dgvListaPedidos.Rows.Clear();

            string InformacionDelError = string.Empty;

            ClsPedidos    Pedidos          = new ClsPedidos();
            List <Pedido> PedidosEnProceso = Pedidos.LeerListado(ClsPedidos.ETipoDeListado.PedidosEnProceso, ref InformacionDelError);

            if (PedidosEnProceso != null)
            {
                foreach (Pedido Elemento in PedidosEnProceso)
                {
                    int NumeroDeFila = dgvListaPedidos.Rows.Add();

                    dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.ID_Pedido].SortMode    = DataGridViewColumnSortMode.NotSortable;
                    dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.TiempoEspera].SortMode = DataGridViewColumnSortMode.NotSortable;
                    dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.EsDelivery].SortMode   = DataGridViewColumnSortMode.NotSortable;
                    dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.Mozos].SortMode        = DataGridViewColumnSortMode.NotSortable;
                    dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.Mesas].SortMode        = DataGridViewColumnSortMode.NotSortable;
                    dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.Seleccionar].SortMode  = DataGridViewColumnSortMode.NotSortable;

                    dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.ID_Pedido].Value = Elemento.ID_Pedido;

                    string[] Tiempo;
                    int      Horas   = 0;
                    int      Minutos = 0;

                    if (Elemento.TiempoEspera.Value.Date == DateTime.Now.Date && (Horas < 24 && Minutos < 60))
                    {
                        Tiempo = (DateTime.Now.TimeOfDay - Elemento.TiempoEspera.Value.TimeOfDay).ToString(@"hh\:mm").Split(':');

                        Horas   = Convert.ToInt32(Tiempo[0]);
                        Minutos = Convert.ToInt32(Tiempo[1]);

                        dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = (DateTime.Now.TimeOfDay - Elemento.TiempoEspera.Value.TimeOfDay).ToString(@"hh\:mm");
                    }
                    else
                    {
                        // Hay un dia de diferencia solamente
                        if (Elemento.TiempoEspera.Value.Day == DateTime.Now.AddDays(-1).Day)
                        {
                            Tiempo = (new TimeSpan(24, 0, 0) - Elemento.TiempoEspera.Value.TimeOfDay).ToString(@"hh\:mm").Split(':');

                            Horas   = Convert.ToInt32(Tiempo[0]) + DateTime.Now.Hour;
                            Minutos = Convert.ToInt32(Tiempo[1]) + DateTime.Now.Minute;

                            // Calcular aumento de hora
                            if (Minutos >= 60)
                            {
                                Horas   += 1;
                                Minutos += (60 - Minutos);
                            }

                            // Este if evitara mostrar una hora mayor a 24 en caso de problemas con la sincronizacion del
                            // reloj de la computadora
                            if (Horas < 24)
                            {
                                if (Minutos < 10)
                                {
                                    if (Horas < 10)
                                    {
                                        dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = $"0{Horas}:0{Minutos}";
                                    }
                                    else
                                    {
                                        dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = $"{Horas}:0{Minutos}";
                                    }
                                }
                                else
                                {
                                    if (Horas < 10)
                                    {
                                        dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = $"0{Horas}:{Minutos}";
                                    }
                                    else
                                    {
                                        dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = $"{Horas}:{Minutos}";
                                    }
                                }
                            }
                            else
                            {
                                dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = "--:--";
                            }
                        }
                        else
                        {
                            dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = "--:--";
                        }
                    }

                    if (Horas > 0 || Minutos > 40)
                    {
                        dgvListaPedidos.Rows[NumeroDeFila].DefaultCellStyle.BackColor = ClsColores.Rojo;
                    }
                    else if (Minutos >= 20)
                    {
                        dgvListaPedidos.Rows[NumeroDeFila].DefaultCellStyle.BackColor = ClsColores.NaranjaClaro;
                    }

                    string NombreMozo = string.Empty;

                    if (Elemento.ID_Delivery == null)
                    {
                        dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.EsDelivery].Value = "NO";

                        ClsPedidosXMesas PedidosXMesas = new ClsPedidosXMesas();
                        PedidoXMesa      BuscarDatos   = PedidosXMesas.LeerPorNumero(Elemento.ID_Pedido, ref InformacionDelError);

                        if (BuscarDatos != null)
                        {
                            NombreMozo = $"{BuscarDatos.Mesa.Usuario.Nombre} {BuscarDatos.Mesa.Usuario.Apellido}";
                        }
                    }
                    else
                    {
                        dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.EsDelivery].Value = "SI";
                    }

                    dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Mozos].Value       = NombreMozo;
                    dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Mesas].Value       = "Ver";
                    dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Seleccionar].Value = false;

                    dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Mesas].Style.SelectionBackColor       = ClsColores.Transparente;
                    dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Seleccionar].Style.SelectionBackColor = ClsColores.Transparente;

                    // Quitarle el color de toda la fila a estas casillas
                    dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Mesas].Style.BackColor       = ClsColores.GrisOscuroFondo;
                    dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Seleccionar].Style.BackColor = ClsColores.GrisOscuroFondo;

                    UltimaFilaSeleccionada = -1;

                    dgvListaPedidos.ClearSelection();
                }
            }
            else if (InformacionDelError == string.Empty)
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al cargar el pedido");
            }
            else
            {
                FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al cargar el pedido");
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            // Comprobar si el pedido que estaba en pantalla sigue disponible al actualizar
            if (dgvPlatosPorMesa.Rows.Count > 0)
            {
                int  PedidoCargado      = (int)dgvPlatosPorMesa.Rows[0].Cells[(int)ENumColDGVPlatosPorMesa.ID_Pedido].Value;
                int  TotalDeFilas       = dgvListaPedidos.Rows.Count;
                bool PedidoNoEncontrado = true;

                for (int Indice = 0; Indice < TotalDeFilas; Indice++)
                {
                    if (PedidoCargado == (int)dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVPlatosPorMesa.ID_Pedido].Value)
                    {
                        PedidoNoEncontrado = false;
                    }
                }

                if (PedidoNoEncontrado)
                {
                    dgvPlatosPorMesa.Rows.Clear();
                    lblDetallesDelPedido.Text = string.Empty;
                }
                else
                {
                    // Encontro el pedido, lo actualizo
                    ActualizaInformacionPedido(PedidoCargado);
                }
            }

            PedidosCancelados();
        }