protected void btnCalcular_Click(object sender, EventArgs e) { try { var tempFactura = new FAC_FACTURA(); tempFactura.NoFactura = Convert.ToInt32(ddlFactura.SelectedValue); tempFactura = objFact.ConsultaPorNumeroDeFactura(tempFactura); var SaldoActual = tempFactura.saldo; var listaProductos = new List <PRO_PRODUCTO>(); var listaDetalles = new List <DEF_DETALLE_FACTURA>(); foreach (GridViewRow mRow in gvwDetalleFactura.Rows) { CheckBox mCheck = (CheckBox)mRow.FindControl("cbSelect"); if (mCheck != null) { if (mCheck.Checked) { var tempProducto = new PRO_PRODUCTO(); var tempCategoria = new CAT_CATEGORIA(); var splitProducto = mRow.Cells[0].Text.Split(','); var splitNombreProducto = splitProducto[0]; tempCategoria.Nombre = splitProducto[1].TrimStart(); tempCategoria = objCat.ConsultarPorNombreDeCategoria(tempCategoria); tempProducto.CodigoNumerico = Convert.ToInt32(mRow.Cells[1].Text); tempProducto.IdCategoria = tempCategoria.idCategoria; tempProducto.NombreProducto = splitNombreProducto; tempProducto = objProd.ConsultarProductoPorNombreCodigoCategoria(tempProducto); tempProducto.Inventario = tempProducto.Inventario + 1; SaldoActual = SaldoActual - tempProducto.Precio; txtSaldoActual.Text = SaldoActual.ToString(); Session["SaldoActual"] = SaldoActual; var tempDetalleFactura = new DEF_DETALLE_FACTURA(); tempDetalleFactura.idFactura = tempFactura.idFactura; tempDetalleFactura.idProducto = tempProducto.IdProducto; tempDetalleFactura = objDeF.ConsultarPorIdFacturaYIdProducto(tempDetalleFactura); tempDetalleFactura.CantidadDevuelta = tempDetalleFactura.CantidadDevuelta + 1; objProd.Actualizar(tempProducto); objDeF.Actualizar(tempDetalleFactura); } } } tempFactura.saldo = SaldoActual; tempFactura.estado = Convert.ToInt32(EstadoFacturas.Cancelada); tempFactura.totalDevuelto = tempFactura.saldo - SaldoActual; objFact.Actualizar(tempFactura); cargarTablaFacturas(tempFactura.NoFactura); ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Factura cancelada con éxito, el monto a pagar es: " + SaldoActual + "')", true); } catch (Exception ex) { var err = ex.Message; throw ex; } }