Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Crear el procedimiento almacenado
- USE ODELECH
- GO
- CREATE PROCEDURE verificar_actualizar_rentabilidad
- @pcode smallint AS
- -- Declaracion de variables globales, mensaje y codigo del producto para hacer la validacion
- DECLARE @mensaje nvarchar(200),
- @producto_code smallint,
- @utility decimal(4,2),
- @cost_unit decimal(7,0),
- @pre_unit decimal(7,0),
- @ganancia decimal(12,0),
- @valor_ganancia decimal(14,0)
- -- Asigno el codigo del producto para una consulta para verificar si valida
- SET @producto_code = (SELECT PRO_CPROD FROM IO_PRODUCTOS WHERE PRO_CPROD = @pcode)
- --Existe la factura?
- IF @producto_code IS NULL
- BEGIN
- print '///////////////////////////////////////////////////////'
- print 'El producto a consultar no existe'
- print '///////////////////////////////////////////////////////'
- END
- ELSE
- BEGIN
- print '///////////////////////////////////////////////////////'
- print 'El producto a consultar si existe'
- print '///////////////////////////////////////////////////////'
- -- Obtengo las variables de utilidad, costo unitario y ganancia
- -- con base al producto
- SELECT @utility=LIN_UTILIN,
- @cost_unit=PRO_COSTUNIT,
- @pre_unit=PRO_PREUNIT,
- @ganancia=PRO_PREUNIT-PRO_COSTUNIT
- FROM IO_LINEASPROD,IO_PRODUCTOS
- WHERE LIN_COD = PRO_CLINP AND
- PRO_CPROD = @pcode
- -- Obtengo Mensaje
- SELECT @mensaje = '- Consultando el producto con costo unitario ' + CAST(@cost_unit AS NVARCHAR(30)) +
- '- precio unitario ' + CAST(@pre_unit AS NVARCHAR(30)) +
- '- con ganancia ' + CAST(@ganancia AS NVARCHAR(30))
- print '///////////////////////////////////////////////////////'
- print @mensaje
- print '///////////////////////////////////////////////////////'
- -- Obtengo el precio
- SET @valor_ganancia=@cost_unit+(@cost_unit*(@utility/100))
- SELECT @mensaje = '- VALOR GANANCIA ' + CAST(@valor_ganancia AS NVARCHAR(30))
- print @mensaje
- -- Si el precio es menor que el precio de producto actualizo
- -- Aca aplica tambien el trigger de actualizacion de productos
- IF @pre_unit < @valor_ganancia
- BEGIN
- UPDATE IO_PRODUCTOS
- SET PRO_PREUNIT = @valor_ganancia
- WHERE PRO_CPROD = @pcode
- END
- END
- GO
- -- Ejecutar el procedimiento almacenado
- EXEC verificar_actualizar_rentabilidad @pcode=9
- -- Eliminar el procedimiento almacenado
- DROP PROCEDURE verificar_actualizar_rentabilidad
- GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement