//================fin pageload=================== protected void Button1_Click(object sender, EventArgs e) { //primero grabamos el encabezado int consecutivo, usu_cod, ven_tot_venta, pro_cod; string fec_actual, estado, tipo_venta, pro_nom, pro_can; int pro_vlr_venta; //se captura el consecutivo de ventas consecutivo = vender.buscar_consecutivo(); //se captura la fecha del sistema fec_actual = DateTime.Now.ToString("yyyy-MM-dd"); //se captura la variable de sesion del usuario usu_cod = (int)Session["usu_c"]; //se inicializa el total en cero ven_tot_venta = 0; //se captura el estado estado = "Activa"; //se graba el tipo de venta tipo_venta = "Venta"; //se envian los datos a la tabla venta en la bd string rdo = vender.grabar_encabezado_venta(consecutivo, fec_actual, usu_cod, ven_tot_venta, estado, tipo_venta); if (rdo == "OK") { //se graba el detalle que en este caso es la grilla //SE RECORREN LAS FILAS DE LA GRILLA foreach (GridViewRow GVRow in this.GridView1.Rows) { pro_cod = Convert.ToInt32(GVRow.Cells[1].Text); pro_nom = (GVRow.Cells[2].Text); pro_can = (GVRow.Cells[3].Text); pro_vlr_venta = Convert.ToInt32(GVRow.Cells[4].Text); int vlr_iva = Convert.ToInt32(pro_vlr_venta * 0.19); pro_est = "inactivo"; //aqui se debe consultar la cantidad de existencias en el inventario string existencias = vender.consultar_existencias(pro_cod); if (pro_can != "" && existencias != "") { //se van grabando los registros en la tabla: tbl_det_venta Label1.Text = vender.grabar_detalle_venta(consecutivo, pro_cod, pro_can, vlr_iva, pro_vlr_venta); //para actulizar el estado del producto using (SqlConnection conexi = new SqlConnection(ConfigurationManager.ConnectionStrings["conexion_sin_clave"].ToString())) using (SqlCommand cmd = new SqlCommand("actualizar_estado_producto", conexi)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("pro_cod", pro_cod); cmd.Parameters.AddWithValue("pro_est", pro_est); cmd.Connection.Open(); rEsul = cmd.ExecuteNonQuery(); } if (rEsul == 0) { Response.Write("<script>alert('No se pudo cambiar el estado del producto')</script>"); return; } } else { Label1.Text = "La cantidad del producto " + pro_cod + ", debe ser mayor a Cero y menor a las existencias en la bodega"; Label1.Visible = true; } } Label1.Visible = true; Session.Remove("buyitems"); Session["ven_c"] = consecutivo; Response.Redirect("ProTotPag.aspx"); } }