예제 #1
0
        private void dgDetallePaquete_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            DataTable          dtProducto         = new DataTable();
            clsNegocioProducto objNegocioProducto = new clsNegocioProducto();
            int nuevaCantidad;

            //MessageBox.Show();
            string nuevaCantidadTexto = dgDetallePaquete[3, indexCantidad].Value.ToString();

            Int32.TryParse(nuevaCantidadTexto, out nuevaCantidad);

            if (e.ColumnIndex == 3)
            {
                if (nuevaCantidad > 0)
                {
                    int idProducto = int.Parse(dtDetallePaqueteLogico.Rows[indexCantidad][1].ToString());
                    dtProducto = objNegocioProducto.consultarProductoId(idProducto).Tables[0];
                    int    cantidadProducto = int.Parse(dtProducto.Rows[0][7].ToString());
                    int    antiguaCantidad  = int.Parse(dtDetallePaqueteLogico.Rows[indexCantidad][4].ToString());
                    double precioProducto   = double.Parse(dtProducto.Rows[0][2].ToString());
                    bool   estadoProduto    = bool.Parse(dtDetallePaqueteLogico.Rows[indexCantidad][6].ToString());
                    int    idProductoLogico = int.Parse(dtDetallePaqueteLogico.Rows[indexCantidad][0].ToString());

                    if (idProductoLogico != 0)
                    {
                        if (estadoProduto)
                        {
                            if (antiguaCantidad < nuevaCantidad)
                            {
                                if (nuevaCantidad <= antiguaCantidad + cantidadProducto)
                                {
                                    int cantidad = nuevaCantidad - antiguaCantidad;
                                    objNegocioProducto.disminuirCantidad(idProducto, cantidad);
                                }
                                else
                                {
                                    MessageBox.Show("Cantidad de producto no disponible");
                                    dtDetallePaqueteLogico.Rows[indexCantidad][4] = antiguaCantidad;
                                    dtDetallePaqueteLogico.Rows[indexCantidad][5] = antiguaCantidad * precioProducto;
                                    dgDetallePaquete[3, indexCantidad].Value      = antiguaCantidad;
                                    return;
                                }
                            }
                            else
                            {
                                int cantidad = antiguaCantidad - nuevaCantidad;
                                objNegocioProducto.aumentarCantidad(idProducto, cantidad);
                            }
                            dtDetallePaqueteLogico.Rows[indexCantidad][4] = nuevaCantidad;
                            dtDetallePaqueteLogico.Rows[indexCantidad][5] = nuevaCantidad * precioProducto;
                        }
                        else
                        {
                            MessageBox.Show("No se puede modificar la cantidad de un producto que no es parte del paquete");
                        }
                    }
                    else
                    {
                        dgDetallePaquete[3, indexCantidad].Value = antiguaCantidad;
                        return;
                    }
                }
            }
        }
예제 #2
0
        private void dgDetalleVenta_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            clsNegocioProducto objNegocioProducto = new clsNegocioProducto();
            string             nuevoPrecioTexto   = dgDetalleVenta[4, indexCantidad].Value.ToString();
            string             nuevaCantidadTexto = dgDetalleVenta[3, indexCantidad].Value.ToString();
            int       idDetalleVenta   = int.Parse(dtDetalleVentaLogico.Rows[indexCantidad][0].ToString());
            int       idProductoLogico = int.Parse(dtDetalleVentaLogico.Rows[indexCantidad][1].ToString());
            int       nuevaCantidad    = int.Parse(nuevaCantidadTexto);
            DataTable dtProducto       = dtProducto = objNegocioProducto.consultarProductoId(idProductoLogico).Tables[0];
            int       cantidadProducto = int.Parse(dtProducto.Rows[0][7].ToString());
            int       antiguaCantidad  = int.Parse(dtDetalleVentaLogico.Rows[indexCantidad][4].ToString());
            double    precioProducto   = double.Parse(dtProducto.Rows[0][2].ToString());
            decimal   nuevoPrecio      = decimal.Parse(nuevoPrecioTexto);

            if (flagDesbloquear)
            {
                if (e.ColumnIndex == 3)
                {
                    if (nuevaCantidad >= 0)
                    {
                        if (idProductoLogico != 0)
                        {
                            if (antiguaCantidad < nuevaCantidad)
                            {
                                if (nuevaCantidad <= antiguaCantidad + cantidadProducto)
                                {
                                    int cantidad = nuevaCantidad - antiguaCantidad;
                                    if (objNegocioDetalleVenta.modificarCantidad(idDetalleVenta, nuevaCantidad, precioProducto))
                                    {
                                        objNegocioProducto.disminuirCantidad(idProductoLogico, cantidad);
                                        dtDetalleVentaLogico.Rows[indexCantidad][4] = nuevaCantidad;
                                        dtDetalleVentaLogico.Rows[indexCantidad][5] = nuevaCantidad * precioProducto;
                                        dgDetalleVenta[5, indexCantidad].Value      = nuevaCantidad * precioProducto;
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Cantidad de producto no disponible");
                                    dtDetalleVentaLogico.Rows[indexCantidad][4] = antiguaCantidad;
                                    dtDetalleVentaLogico.Rows[indexCantidad][5] = antiguaCantidad * precioProducto;
                                    dgDetalleVenta[3, indexCantidad].Value      = antiguaCantidad;
                                    return;
                                }
                            }
                            if (antiguaCantidad > nuevaCantidad)
                            {
                                int cantidad = antiguaCantidad - nuevaCantidad;
                                if (objNegocioDetalleVenta.modificarCantidad(idDetalleVenta, nuevaCantidad, precioProducto))
                                {
                                    objNegocioProducto.aumentarCantidad(idProductoLogico, cantidad);
                                    dtDetalleVentaLogico.Rows[indexCantidad][4] = nuevaCantidad;
                                    dtDetalleVentaLogico.Rows[indexCantidad][5] = nuevaCantidad * precioProducto;
                                    dgDetalleVenta[5, indexCantidad].Value      = nuevaCantidad * precioProducto;
                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show("No se puede modificar la cantidad de un producto que no es parte del paquete");
                        }
                    }
                }

                if (e.ColumnIndex == 4)
                {
                    if (nuevoPrecio >= 0)
                    {
                        if (idProductoLogico != 0)
                        {
                            if (objNegocioDetalleVenta.modificarPrecio(idDetalleVenta, nuevoPrecio))
                            {
                                decimal resultado = antiguaCantidad * nuevoPrecio;
                                dgDetalleVenta[5, indexCantidad].Value = resultado.ToString();
                            }
                            else
                            {
                                MessageBox.Show("No se puede modificar el precio del producto");
                            }
                        }
                    }
                }
                sumarVenta();
            }
        }
예제 #3
0
        public void actualizareDetalle()
        {
            int                index              = lista.Count - 1;
            DataSet            dsProducto         = new DataSet();
            DataSet            dsColor            = new DataSet();
            DataSet            dsTamano           = new DataSet();
            clsNegocioProducto objNegocioProducto = new clsNegocioProducto();
            clsNegocioColor    objNegocioColor    = new clsNegocioColor();
            clsNegocioTamano   objNegocioTamano   = new clsNegocioTamano();

            try
            {
                if (index >= 0)
                {
                    int idProducto = lista[index].id_producto;
                    int idColor    = lista[index].id_color;
                    int idTamano   = lista[index].id_tamano;

                    dsProducto = objNegocioProducto.consultarProductoId(idProducto);
                    dsColor    = objNegocioColor.consultarColorId(idColor);
                    dsTamano   = objNegocioTamano.consultarTamanoId(idTamano);

                    string producto    = dsProducto.Tables[0].Rows[0][1].ToString();
                    string color       = dsColor.Tables[0].Rows[0][1].ToString();
                    string tamano      = dsTamano.Tables[0].Rows[0][1].ToString();
                    double precio      = double.Parse(dsProducto.Tables[0].Rows[0][2].ToString());
                    int    cantidad    = lista[index].cantidad;
                    double total       = lista[index].cantidad * precio;
                    bool   estado      = lista[index].estado_detalle;
                    string observacion = lista[index].observacion_detalle_paquete;


                    if (objNegocioProducto.disminuirCantidad(idProducto, cantidad))
                    {
                        DataRow fila = dtDetallePaquete.NewRow();
                        fila[0] = producto;
                        fila[1] = color;
                        fila[2] = tamano;
                        fila[3] = lista[index].cantidad;
                        fila[4] = precio;
                        fila[5] = total;
                        fila[6] = estado;
                        dtDetallePaquete.Rows.Add(fila);

                        DataRow filaLogica = dtDetallePaqueteLogico.NewRow();

                        filaLogica[0] = 0;
                        filaLogica[1] = idProducto;
                        filaLogica[2] = idColor;
                        filaLogica[3] = idTamano;
                        filaLogica[4] = lista[index].cantidad;
                        filaLogica[5] = total;
                        filaLogica[6] = estado;
                        filaLogica[7] = observacion;

                        dtDetallePaqueteLogico.Rows.Add(filaLogica);

                        dgDetallePaquete.DataSource = dtDetallePaquete;

                        darFormatoDetalle();
                        ajustarTamanioColumna();
                    }
                    else
                    {
                        MessageBox.Show("Cantidad no disponible en el producto");
                    }
                    sumarPaquete();
                }
            }
            catch (Exception)
            {
            }
        }