Usuario
(AYUDA URGENTE) Registrar una venta

Pregunta
-
Tengo dos stored procedures de agregar ventas y detalle_ventas, necesito ayuda para que al darle al boton agregar se agreguen los datos a un gridview para insertar varios productos y como calcular el subtotal y total al momento de dar al boton agregar.
Procedures:
ALTER Proc [dbo].[spVentasInsertarNuevo] @fecha date, @descuento float, @iva float, @tipo_cambio float, @id_cliente int, @id_usuario int, @pid int output as Begin Insert into ventas(fecha, monto_dolares, descuento, iva, tipo_cambio, id_cliente, id_usuario) values(GETDATE(), @monto_dolares, @descuento, @iva, @tipo_cambio, @id_cliente, @id_usuario); select @pid = IDENT_CURRENT('ventas'); return end
ALTER Proc [dbo].[spInsertarDetalle_Venta] ( @cantidad int, @precio_dolares float, @descuento float, @subtotal float, @id_venta int, @id_producto int ) as begin insert into datalle_ventas(cantidad, precio_dolares, precio_cordobas, descuento, subtotal, id_venta, id_producto) values(@cantidad, @precio_dolares, @descuento, @subtotal, @precio_dolares*@descuento, @id_venta, @id_producto) end
Seria mejor que al seleccionar un valor de un ddl se llenen los texbox con la informacion respectiva al valor seleccionado
Tambien tengo aqui el codigo de llenado de ddl.
private void InicialProductos() { ddlProducto.DataSource = Consultar("SELECT * FROM productos"); ddlProducto.DataTextField = "descripcion"; ddlProducto.DataValueField = "id"; ddlProducto.DataBind(); ddlProducto.Items.Insert(0, new ListItem("[Producto]", "0")); } private void InicialClientes() { ddlClientes.DataSource = Consultar("SELECT c.id, c.nombre + ' ' + c.apellido as Nombres_Completos FROM clientes c;"); ddlClientes.DataTextField = "Nombres_Completos"; ddlClientes.DataValueField = "id"; ddlClientes.DataBind(); ddlClientes.Items.Insert(0, new ListItem("[Cliente]", "0"));
Todas las respuestas
-
hola
Pero como invocas a los procedures ? lo has intentado
no se que hace ese metodo Consultar(), pero deberia tener dentro algo como esto
DataTabla dt = new DataTable(); using (SqlConnection conn = new SqlConnection("connectionstring")) { SqlCommand cmd = new SqlCommand("<storedprocedure>", conn); cmd.CommandType = SqlCommandType.StoredProcedure; cmd.Parameters.AddWithValue("@param1", valor); cmd.ExecuteNonQuery(); }
usa siempre parametros
es mas programa una capa de datos y no ese tipo de metodo que le pasas la consulta
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Diana AcuñaModerator martes, 11 de febrero de 2020 15:26
-
Esto tiene el metodo consultar
public DataSet Consultar(string strSQL) { cn.Open(); SqlCommand cmd = new SqlCommand(strSQL, cn); SqlDataAdapter das = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); das.Fill(ds); cn.Close(); return ds; }
Todavia no implemento los procedures porque no se por donde empezar en la parte de programacion, por ejemplo ir agregando los productos al gridview para ir haciendo los detalles de venta y agregarlos a la base de datos con el boton agregar y luego con el de guardar
-
hola
lo que recomendaria es que no crees metodo como se Consultar en donde solo ejecuta un string que le porporciones
sino que crea una entidad Venta que sea un class
public class Venta { //otras propiedades public List<DetalleVenta> Detalles {get;set;} } public class DetalleVenta { //otras propiedades }
y como veras usa una lista que es el detalle
entonces puedes enviar a persistir la entidad usando los valores en los parametros
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Diana AcuñaModerator martes, 11 de febrero de 2020 15:26
-
-
hola
Analizaste el articulo que sugeri en la anterior respuesta?
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Diana AcuñaModerator martes, 11 de febrero de 2020 15:26