Example #1
0
    //================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");
        }
    }