Autor
|
Tema: Formulario de ventas oO? (Leído 16,502 veces)
|
ezugaru
Desconectado
Mensajes: 31
|
Hola amigos, de nuevo molestandolos ... estoy diseñado un sistema de ventas e inventarios, lo estoy haciendo en VB.Net 2005. Ya estoy controlando lo que son salidas y entradas de mercancia al almacen, al igual que las altas y bajas de clientes, lo cual pues no es dificil, mi problema ahora viene en como programo la parte de las ventas Por ejemplo, estoy pensando en manejar un tabla de ventas que es en la que quiero registrar que articulo vendo cada vez, con su id y su descripcion, asi como el cliente que lo compro, la cantidad,fecha y un id de ventas, con lo cual si quiero checar todos los articulos de un venta especifica pues pueda hacerlo, obviamente al hacer una venta a credito voy a afrectar otra tabla que se llama creditos, en donde tengo id de mis clientes, id de venta, y el monto total de cada venta, asi como la fecha de la venta y claro, no puede faltar que afecte mi tabla de inventario pues en la cual tengo que actualizar la 'cantidad' de articulos que van a quedar,lo que estaba pensando hacer era poner un DataGridView en el formulario de ventas, y en el campo de clave que vayan tecleando o entrando la clave del articulo, la cantidad y al dar enter haga la consulta y meta los demas datos necesarios a datagridview, ya lo que no se es cuando ya este todo en la datagridvew ejecutar la venta y de ahi se hagan todas las modificaciones a las tablas pertinentes , alguna idea? u orientación? saludos.
|
|
|
En línea
|
|
|
|
Hadess_inf
Desesperado
Colaborador
Desconectado
Mensajes: 2.048
Nueva Vida
|
Podrias:
* Crear un procedure para registrar la venta, en el mismo proc actualiza el stock segun ingreses un producto a la venta.
* Usar triggers para actualizar el stock del producto cuando se haga una insercion en la tabla de venta.
Recomendaria que en este caso uses la segunda opcion. Saludos.
|
|
|
En línea
|
|
|
|
ezugaru
Desconectado
Mensajes: 31
|
Podrias:
* Crear un procedure para registrar la venta, en el mismo proc actualiza el stock segun ingreses un producto a la venta.
* Usar triggers para actualizar el stock del producto cuando se haga una insercion en la tabla de venta.
Recomendaria que en este caso uses la segunda opcion. Saludos.
A ver, es que este es mi primer sistema de ventas asi que ando algo oscuro en el asunto xD. Con lo que me has dicho quiere decir que cada vez que ingrese un artciulo al datagrid view se hace la consulta de insercion en la tabla ventas, y eso dispara el trigger o el SP que me actualizara los demas datos en las tablas consecuentes??? Lo pregunto porque yo pensaba que primero se llenaba el datagrid y luego con todos los datos se hacia una consulta que tomara los datos de cada row y asi se iba haciendo todo, y asi si antes de efectuar la venta el cliente queria eliminar algun producto pues solo lo eliminaba del DGview, entonces si lo hago asi como dices debo hacer otro procedimiento para eliminar un articulo tanto del datagridview como de la tabla de ventas en la base de datos???
|
|
|
En línea
|
|
|
|
Hadess_inf
Desesperado
Colaborador
Desconectado
Mensajes: 2.048
Nueva Vida
|
Lo que dices es correcto, pero solo una parte. Claro esta que llamaras al sp cuando des click en algun boton "VENDER" y no cuando estes en pleno llenado de la grilla (sino iamginate que puede ocurrir lo que tu comentas, y en ese caso tendrias que elaborar otro procedimiento para eliminar lo ya insertado).
|
|
|
En línea
|
|
|
|
ezugaru
Desconectado
Mensajes: 31
|
Lo que dices es correcto, pero solo una parte. Claro esta que llamaras al sp cuando des click en algun boton "VENDER" y no cuando estes en pleno llenado de la grilla (sino iamginate que puede ocurrir lo que tu comentas, y en ese caso tendrias que elaborar otro procedimiento para eliminar lo ya insertado).
Gracias Hadess ya estoy trabajando sobre eso , ahora solo necesito acostumbrame a manipular los campos del DGview para hacer las consultas jo jo jo , no se poruqe VB se me complica tanto para manipular los controles :s
|
|
|
En línea
|
|
|
|
Hadess_inf
Desesperado
Colaborador
Desconectado
Mensajes: 2.048
Nueva Vida
|
El manejo de la grilla es en realidad sencillo. Solo trabajar con rows, columns, cells o items. En todo caso cualquier consulta a este foro. Un saludo.
|
|
|
En línea
|
|
|
|
ezugaru
Desconectado
Mensajes: 31
|
El manejo de la grilla es en realidad sencillo. Solo trabajar con rows, columns, cells o items. En todo caso cualquier consulta a este foro. Un saludo.
Bueno pues abusando para no abrir otro post, mira hay algo que quiero hacer pero no encuentro como, ya he checado en la red pero solo me aparece como llenar toda la grilla con una consulta y yo no ando buscando eso, mi sistema se ve mas o menos así, es un preeliminar: Cuando entro la clave del cliente pues ya la consulta me manda los datos a los boxes y depues el focus se va a la grilla, la cosa es que quiero que en la grilla yo pueda poner en la columna de id del producto la clave del producto y cuando le de "Enter" poder invocar un query que me haga la consulta y llene los datos faltantes como son descripcion, y precio unitario, ya que lo que es cantidad lo tecleara el usuario y ahi debe de poder hacerse la operacion para determinar el importe de cada row . . espero explicarme >.<
|
|
|
En línea
|
|
|
|
Hadess_inf
Desesperado
Colaborador
Desconectado
Mensajes: 2.048
Nueva Vida
|
'El evento es CellLeave, ocurre cuando quitas el foco de una celda. Private Sub DataGridView1_CellLeave(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellLeave If e.ColumnIndex = 1 Then 'si el indice de la columna es 0 = significa que estas en la columna del id 'aqui empieza el codigo para establecer el valor en las demas celdas Dim ind As Integer = e.RowIndex Me.DataGridView1.Item(ind, 1).Value = "valor" '1 es el indice de la columna.varia segun tu caso Me.DataGridView1.Item(ind, 2).Value = "valor" '2 es el indice de la columna.varia segun tu caso End If End Sub
Espero sirva. Cualquier duda que tengas, solo avisanos. Un saludo.
|
|
|
En línea
|
|
|
|
ezugaru
Desconectado
Mensajes: 31
|
Hola Hadess_inf muchas gracias por el dato ya estoy trabajando sobre eso y ya casi lo tengo, solo tengo un problema, por alguna razon no puedo obtener el valor de la celda donde introduzco la clave, no se si es porque el Sub es de tipo CellLeave y no de Click o Content . . te pondre mi código par que lo veas: Private Sub venta_dgv_CellLeave(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles venta_dgv.CellLeave
If e.ColumnIndex = 0 Then
Dim ind As Integer = e.RowIndex
fila = venta_dgv.Item(0, ind).Value
con = New MySqlConnection con.ConnectionString = "server = 192.168.1.151;" & "user = root;" & "password = 18281e78a8;" & "database = rocar;"
Try
con.Open() consulta = "select id_prd from inventario where id_prd ='" & fila & "'" comando.Connection = con comando.CommandText = consulta adaptador.SelectCommand = comando
If adaptador.Fill(datos) = Nothing Then
MsgBox("Clave no encontrada, verificala, clave introducida:" & fila) id_cte.Text = Nothing venta_dgv.Focus()
Else
consulta2 = "select descripcion,p_vta from inventario where id_prd='" & fila & "'" comando.Connection = con comando.CommandText = consulta2 lector = comando.ExecuteReader
' While lector.Read() Me.venta_dgv.Item(2, ind).Value = lector(0).ToString() Me.venta_dgv.Item(3, ind).Value = lector(1).ToString() 'Me.venta_dgv.Item(4, ind).Value = resulta
'End While
End If
Catch ex As Exception
MsgBox("Se produjo el siguiente error: " & ex.Message)
End Try
con.Dispose()
End If
' Else
' MsgBox(" Campo equivocado, por favor usa el campo CLAVE.")
End Sub End Class
Ya intente poniendo el valor de fila directo con la clave de un producto existente, y si funciona, pero poir alguna razon cuando lo ejecuto asi como lo tengo me manda una cadena vacia, y si le agrego el .tostring al final de cuando le paso a "fila" el valor del campo me manda un error que dice: Excepción no controlada del tipo 'System.NullReferenceException' en Rocar Sys 0.1b.exe Información adicional: Object reference not set to an instance of an object. Asi que la neta ya le anduve buscando y no entiendo, creo que soy muy lelo para esto
|
|
|
En línea
|
|
|
|
ezugaru
Desconectado
Mensajes: 31
|
Ya lo pude obtener, use este codigo: clave_prd = Me.venta_dgv.CurrentCell.GetEditedFormattedValue(0, Me.venta_dgv.CurrentRow.Index)
Ahora solo hay un detallito molesto, cuando cambio de de fila, me sale el mensaje de que la clave no existye, me imagino que por alguna razon en algun lado manda cadena vacia. . lo checare con calma, pero ahi si tienen alguna observacion se las agradezco.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Web de Intermediario de Ventas
Desarrollo Web
|
ranslsad
|
1
|
3,415
|
13 Diciembre 2010, 14:17 pm
por AFelipeTrujillo
|
|
|
ipad nuevo éxito en ventas? cuando creéis que suben las ventas o bajan?
« 1 2 »
Dudas Generales
|
usuario oculto
|
11
|
7,991
|
5 Marzo 2011, 22:20 pm
por Garfield07
|
|
|
Ventas en internet.
Dudas Generales
|
andres_5
|
2
|
3,178
|
8 Noviembre 2011, 21:07 pm
por skapunky
|
|
|
Abarrotes Puntos de Ventas 2.12
Software
|
Software Download
|
7
|
16,905
|
29 Enero 2023, 01:22 am
por hstest1
|
|
|
SOFTWARE DE BOTICAS / PUNTOS DE VENTAS
Software
|
Kross
|
3
|
8,773
|
19 Octubre 2022, 19:48 pm
por Manatidoble
|
|