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; } } } }
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(); } }
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) { } }