Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.43 KB | None | 0 0
  1. -- Crear el procedimiento almacenado
  2. USE ODELECH
  3. GO
  4. CREATE PROCEDURE verificar_actualizar_rentabilidad
  5.                   @pcode smallint AS
  6.  
  7.     -- Declaracion de variables globales, mensaje y codigo del producto para hacer la validacion
  8.     DECLARE @mensaje nvarchar(200),
  9.             @producto_code smallint,
  10.             @utility decimal(4,2),
  11.             @cost_unit decimal(7,0),
  12.             @pre_unit decimal(7,0),
  13.             @ganancia decimal(12,0),
  14.             @valor_ganancia decimal(14,0)
  15.  
  16.     -- Asigno el codigo del producto para una consulta para verificar si valida
  17.     SET @producto_code = (SELECT PRO_CPROD FROM IO_PRODUCTOS WHERE PRO_CPROD = @pcode)
  18.  
  19.     --Existe la factura?
  20.     IF @producto_code IS NULL
  21.         BEGIN
  22.             print '///////////////////////////////////////////////////////'
  23.             print 'El producto a consultar no existe'
  24.             print '///////////////////////////////////////////////////////'
  25.         END
  26.     ELSE
  27.         BEGIN
  28.             print '///////////////////////////////////////////////////////'
  29.             print 'El producto a consultar si existe'
  30.             print '///////////////////////////////////////////////////////'
  31.            
  32.             -- Obtengo las variables de utilidad, costo unitario y ganancia
  33.             -- con base al producto
  34.             SELECT @utility=LIN_UTILIN,
  35.                    @cost_unit=PRO_COSTUNIT,
  36.                    @pre_unit=PRO_PREUNIT,
  37.                    @ganancia=PRO_PREUNIT-PRO_COSTUNIT
  38.             FROM IO_LINEASPROD,IO_PRODUCTOS
  39.             WHERE LIN_COD = PRO_CLINP AND
  40.             PRO_CPROD = @pcode
  41.  
  42.             -- Obtengo Mensaje
  43.             SELECT @mensaje = '- Consultando el producto con costo unitario ' + CAST(@cost_unit AS NVARCHAR(30)) +
  44.                               '- precio unitario ' + CAST(@pre_unit AS NVARCHAR(30)) +
  45.                               '- con ganancia ' + CAST(@ganancia AS NVARCHAR(30))
  46.  
  47.             print '///////////////////////////////////////////////////////'
  48.             print @mensaje
  49.             print '///////////////////////////////////////////////////////'
  50.  
  51.             -- Obtengo el precio
  52.             SET @valor_ganancia=@cost_unit+(@cost_unit*(@utility/100))
  53.  
  54.             SELECT @mensaje = '- VALOR GANANCIA ' + CAST(@valor_ganancia AS NVARCHAR(30))
  55.             print @mensaje
  56.  
  57.             -- Si el precio es menor que el precio de producto actualizo
  58.             -- Aca aplica tambien el trigger de actualizacion de productos
  59.             IF @pre_unit < @valor_ganancia
  60.             BEGIN
  61.                 UPDATE IO_PRODUCTOS
  62.                 SET PRO_PREUNIT = @valor_ganancia
  63.                 WHERE PRO_CPROD = @pcode
  64.             END
  65.         END
  66. GO
  67.  
  68.  
  69. -- Ejecutar el procedimiento almacenado
  70. EXEC verificar_actualizar_rentabilidad @pcode=9
  71.  
  72.  
  73. -- Eliminar el procedimiento almacenado
  74. DROP PROCEDURE verificar_actualizar_rentabilidad
  75. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement