Aumentar y disminuir stock en vba.net y sql

Estimados/as

Tengo un problema con la creacion de mis procedimientos para aumentar solo el stock del programa que estoy realizando, son 2 formularios 1 form ventas y 2 form historialventas

Cuando deseo eliminar una venta efectuada, no se genera ninguna respuesta de parte del programa, les envio los codigos realizados.

Les agradezco de antemano su respuesta.

SQL

Tabla venta-----------------------------(datos de tablas sql, copiando iformacion de capa logica vba.net)

        gid_codigo = id_codigo
        gprecio_venta = precio_venta
        gcantidad = cantidad
        gdescripcion = descripcion
        gtotal = total
        gfecha = fecha
        gconsecutivo = consecutivo

Tabla producto--------------------------------------------------------------------------------------

  gid_codigo = id_codigo
        gpcosto = pcosto
        gpventa = pventa
        gdescripcion = descripcion
        gstock = stock
        gcategoria = categoria
        gventas = ventas

Procedimiento aumentar stock--------------------------------------------------------------------

ALTER proc [dbo].[aumentarstock]
@id_codigo varchar (256),
@cantidad varchar (50)
as
update producto set stock = stock + @cantidad
where id_codigo = @id_codigo

Codigo capa de datos donde llama a aumentarentas--------------------------------------------------

 Public Function aumentarstock(ByVal dts As vventas) As Boolean
        Try
            conectado()
            cmd = New SqlCommand("aumentarstock")
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = cnn
            cmd.Parameters.AddWithValue("@id_codigo", dts.gid_codigo)
            cmd.Parameters.AddWithValue("@cantidad", dts.gcantidad)
            If cmd.ExecuteNonQuery Then
                Return True
            Else
                Return False
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
            Return False
        Finally
            desconectado()
        End Try
    End Function

codigo de eliminacion de stock en visual form historialventa-----------------------------------------

Dim cantidada As Integer
        result = MessageBox.Show("Realmente desea eliminar este dato?", "eliminando registros", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
        If result = DialogResult.OK Then
            Try
                For Each row As DataGridViewRow In DataGridView1.Rows
                    Dim marcardo As Boolean = Convert.ToBoolean(row.Cells("eliminar").Value)
                    If marcardo Then
                        Dim onekey As Integer = Convert.ToInt32(row.Cells("consecutivo").Value)
                        ''puede existir error aqui por id_codigo
                        Dim vdb As New vventas
                        Dim func As New fventa
                        vdb.gconsecutivo = onekey
                        vdb.gcantidad = cantidada
                        If func.eliminar(vdb) Then
                            func.aumentarstock(vdb)          <-------------------------------------
                        Else
                            MessageBox.Show("producto no eliminado", "eliminando registros", MessageBoxButtons.OK, MessageBoxIcon.Information)
                        End If
                    End If
                Next
                Call mostrar()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        Else

Respuesta
1

Requieres un parámetro de salida, para que en el SQL lo obtengas o en tu programación lo tomes.

Create proc aumentarstock

(

@id_codigo char (256),

@cantidad char (50),

@Comprobacion int output

)

AS

BEGIN

Begintransaction

updateproductosetstock=stock+@cantidadwhereid_codigo=@id_codigo

if@@ERROR>0

Gotoerror

Committransaction

set@Comprobacion=1

return

error:

rollbacktransaction

set@Comprobacion=0

end

En el SQL si el valor es 1, es correcto.

DECLARE @Comprobacion int;

set @Comprobacion=150;

execaumentarstock1111,-22,@Comprobacionoutput

SELECT @Comprobación;

En tu aplicación pones un try catch, para obtener el error de tu aplicación, recuerda que es un update, por lo cual te regresara un resultado correcto o incorrecto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas