Esempio n. 1
0
        private void CargarDatosEditarArticulo()
        {
            btnAceptar.Visible        = false;
            btnGuardarCambios.Visible = true;

            string InformacionDelError = string.Empty;

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

            ArticuloAEditar = Articulos.LeerPorNumero(ID_Articulo, ref InformacionDelError);

            if (ArticuloAEditar != null)
            {
                txtNombreArticulo.Text     = ArticuloAEditar.Nombre;
                txtDescripcion.Text        = ArticuloAEditar.Descripcion;
                cmbCategoria.SelectedValue = ArticuloAEditar.ID_CategoriaArticulo;
                txtPrecio.Text             = Convert.ToString(ArticuloAEditar.Precio);
                txtPrecioDelivery.Text     = Convert.ToString(ArticuloAEditar.PrecioDelivery);
            }
            else if (InformacionDelError == string.Empty)
            {
                MessageBox.Show($"Error al intentar cargar el articulo a editar", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        /// <summary>Actualiza el estado del articulo a activo/inactivo.</summary>
        /// <param name="_EstadoElemento">Enum que contrendra el numero del tipo de estado.</param>
        private void ActualizarEstadoArticulo(ClsEstadosArticulos.EEstadosArticulos _EstadoElemento)
        {
            ClsArticulos Articulo           = new ClsArticulos();
            Articulo     ActualizarArticulo = new Articulo();

            int TotalDeFilas = dgvEstadoArticulo.Rows.Count;

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

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

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

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

                                    Indice       -= 1;
                                    TotalDeFilas -= 1;

                                    UltimaFilaSeleccionada = -1;
                                }
                                else if (InformacionDelError != string.Empty)
                                {
                                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                            }
                            else
                            {
                                using (FrmInformacion FormInformacion = new FrmInformacion($"El articulo '{ActualizarArticulo.Nombre}' (categoria '{ActualizarArticulo.CategoriaArticulo.Nombre}') " +
                                                                                           $"no se puede activar debido a que su categoria fue eliminada.", ClsColores.Blanco, 150, 350))
                                {
                                    FormInformacion.ShowDialog();
                                }
                            }
                        }
                        else if (InformacionDelError == string.Empty)
                        {
                            MessageBox.Show($"Error al intentar actualizar el articulo", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Verifica que el nombre del articulo no este en uso, devuelve true si encontro una coincidencia.
        /// </summary>
        /// <param name="_Nombre">Articulo que se va a buscar.</param>
        /// <param name="_ID_ArticuloActual">ID que se usa para ignorar el articulo que se esta editando.</param>
        /// <returns></returns>
        private bool VerificarArticuloRepetido(string _Nombre, int _ID_ArticuloActual)
        {
            string InformacionDelError = string.Empty;

            ClsArticulos    Articulos            = new ClsArticulos();
            List <Articulo> BuscarDatosRepetidos = Articulos.LeerListado(ClsArticulos.ETipoListado.AritulosRepetidos, ref InformacionDelError, ClsArticulos.ETipoListado.AritulosRepetidos, "", 0, _Nombre, _ID_ArticuloActual);

            if (BuscarDatosRepetidos != null)
            {
                if (BuscarDatosRepetidos.Count > 0)
                {
                    return(true);
                }
            }
            else if (InformacionDelError == string.Empty)
            {
                MessageBox.Show($"Fallo al verificar si el articulo estaba repetido", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(true);
            }
            else
            {
                MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(true);
            }

            return(false);
        }
        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);
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Busca que por lo menos haya un articulo en cocina para el envio.
        /// </summary>
        /// <returns></returns>
        private bool VerificarSiHayEnCocina()
        {
            string InformacionDelError = string.Empty;

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

            foreach (int Elemento in ID_Articulos)
            {
                ArticuloParaCocina = Articulos.LeerPorNumero(Elemento, ref InformacionDelError);

                if (ArticuloParaCocina != null)
                {
                    if (ArticuloParaCocina.CategoriaArticulo.ParaCocina == (int)ClsCategoriasArticulos.EParaCocina.Si)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
        /// <summary>Carga los articulos activos/inactivos.</summary>
        private void CargarDGVArticulos(ClsArticulos.ETipoListado _TipoDeEstado)
        {
            if (FormularioCargado)
            {
                dgvEstadoArticulo.Rows.Clear();

                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_COMBOBOX)
                {
                    NombreArticulo = txtBuscarPorNombre.Text;
                }

                string InformacionDelError = string.Empty;

                ClsArticulos Articulos = new ClsArticulos();

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

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

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

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

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

                        if (ArticulosDeCartaMarcados.Count > 0)
                        {
                            foreach (int ElementoSecundario in ArticulosDeCartaMarcados)
                            {
                                if (ElementoSecundario == Elemento.ID_Articulo)
                                {
                                    dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.Seleccionar].Value = true;
                                    ClsColores.MarcarFilaDGV(dgvEstadoArticulo, NumeroDeFila, true);
                                    break;
                                }
                                else
                                {
                                    dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.Seleccionar].Value = false;
                                    ClsColores.MarcarFilaDGV(dgvEstadoArticulo, NumeroDeFila, false);
                                }
                            }
                        }
                        else
                        {
                            dgvEstadoArticulo.Rows[NumeroDeFila].Cells[(int)ENumColDGVEstadoArticulo.Seleccionar].Value = false;
                            ClsColores.MarcarFilaDGV(dgvEstadoArticulo, NumeroDeFila, false);
                        }
                    }

                    UltimaFilaSeleccionada = -1;

                    dgvEstadoArticulo.Sort(dgvEstadoArticulo.Columns[(int)ENumColDGVEstadoArticulo.Categoria], ListSortDirection.Ascending);

                    dgvEstadoCategoria.ClearSelection();
                }
                else if (InformacionDelError == string.Empty)
                {
                    MessageBox.Show("Fallo al cargar los articulos", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    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);
            }
        }
Esempio n. 9
0
        private void BtnGuardarCambios_Click(object sender, EventArgs e)
        {
            bool   DatosValidos         = true;
            string RegistroDeErrores    = string.Empty;
            int    AnchoFormInformacion = 100;

            CategoriaArticulo CategoriaArticulo = null;

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

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

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

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

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

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

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

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

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

                string InformacionDelError = string.Empty;

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

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

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

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

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

                if (Articulo.Actualizar(ActualizarArticulo, ref InformacionDelError) != 0)
                {
                    DialogResult = DialogResult.OK;
                    Close();
                }
                else if (InformacionDelError != string.Empty)
                {
                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 400))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }
        private void CrearDetalle(int _ID_Pedido, int _ID_Delivery)
        {
            string InformacionDelError = string.Empty;

            ClsDetalles Detalles     = new ClsDetalles();
            Detalle     CrearDetalle = new Detalle();

            ClsArticulos Articulos = new ClsArticulos();

            int TotalDeArticulos = ID_Articulos.Count;

            bool HuboError = false;

            for (int Contador = 0; Contador < TotalDeArticulos; Contador++)
            {
                CrearDetalle.ID_Pedido   = _ID_Pedido;
                CrearDetalle.ID_Articulo = ID_Articulos.First();
                CrearDetalle.ID_Chef     = ID_Chef;
                CrearDetalle.Cantidad    = CantidadPorArticulo.First();
                CrearDetalle.Nota        = null;
                CrearDetalle.Precio      = null;

                if ((int)ClsCategoriasArticulos.EParaCocina.Si == Articulos.LeerPorNumero(ID_Articulos.First(), ref InformacionDelError).CategoriaArticulo.ParaCocina)
                {
                    CrearDetalle.ID_EstadoDetalle = (int)ClsEstadoDetalle.EEstadoDetalle.NoCocinado;
                }
                else
                {
                    CrearDetalle.ID_EstadoDetalle = (int)ClsEstadoDetalle.EEstadoDetalle.YaCocinado;
                }

                CrearDetalle.CantidadAgregada     = 0;
                CrearDetalle.ID_ArticuloEntregado = (int)ClsArticulosEntregados.EArticuloEntregado.NoEntregado;

                if (Detalles.Crear(CrearDetalle, ref InformacionDelError) != 0)
                {
                    ID_Articulos.Remove(ID_Articulos.First());
                    CantidadPorArticulo.Remove(CantidadPorArticulo.First());
                }
                else if (InformacionDelError != string.Empty)
                {
                    HuboError = true;

                    ClsDeliveries Deliveries       = new ClsDeliveries();
                    Delivery      EliminarDelivery = new Delivery();

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

                    List <Detalle> EliminarDetalle = Detalles.LeerListado(_ID_Pedido, ClsDetalles.ETipoDeListado.PorIDPedido, ref InformacionDelError);

                    Deliveries.Borrar(_ID_Delivery, ref InformacionDelError);
                    Pedidos.Borrar(_ID_Pedido, ref InformacionDelError);

                    if (EliminarDetalle != null)
                    {
                        foreach (Detalle Elemento in EliminarDetalle)
                        {
                            Detalles.Borrar(Elemento.ID_Detalle, ref InformacionDelError);
                        }
                    }

                    MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                    break;
                }
            }

            // No hubo error en la creacion de los detalles, confirmar y cerrar.
            if (!HuboError)
            {
                DialogResult = DialogResult.OK;
                Close();
            }
        }