SHARE
TWEET

Untitled

a guest Jun 16th, 2019 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE PROCEDURE prestar_libro
  2. @member_no INT, @title_no INT, @isbn INT, @copy_no INT, @due_date DATETIME
  3.  
  4. AS
  5. DECLARE @out_date DATETIME = GETDATE()
  6.  
  7. IF NOT EXISTS(SELECT * FROM member
  8.         WHERE member_no=@member_no)
  9.     BEGIN
  10.         RAISERROR('El usuario especificado no existe.', 16, 11)
  11.         RETURN 1
  12.     END
  13. IF NOT EXISTS(SELECT * FROM copy1
  14.         WHERE isbn=@isbn AND copy_no=@copy_no)
  15.     BEGIN
  16.         RAISERROR('El libro especificado no existe.', 16, 11)
  17.         RETURN 1
  18.     END
  19. IF(SELECT expr_date FROM adult
  20.         WHERE member_no=@member_no) < GETDATE()
  21.     BEGIN
  22.         RAISERROR('La credencial del usuario ya expiró.', 16, 11)
  23.         RETURN 1
  24.     END
  25. IF(SELECT expr_date FROM adult, juvenile
  26.         WHERE adult_member_no=@member_no AND juvenile.member_no=@member_no) < GETDATE()
  27.     BEGIN
  28.         RAISERROR('La credencial del usuario ya expiró.', 16, 11)
  29.         RETURN 1
  30.     END
  31. IF(SELECT SUM(fine_assessed) FROM loanhist
  32.         WHERE member_no=@member_no) < 0
  33.     BEGIN
  34.         RAISERROR('El usuario presenta adeudos.', 16, 11)
  35.         RETURN 1
  36.     END
  37. IF(SELECT COUNT(*) FROM loan
  38.         WHERE member_no=@member_no) >= 4
  39.     BEGIN
  40.         RAISERROR('El usuario tiene el máximo de libros que puede pedir.', 16, 11)
  41.         RETURN 1
  42.     END
  43. IF(SELECT loanable FROM item
  44.         WHERE isbn=@isbn) = 'NO'
  45.     BEGIN
  46.         RAISERROR('El libro especificado no se puede prestar.', 16, 11)
  47.         RETURN 1
  48.     END
  49. IF EXISTS(SELECT * FROM loan
  50.         WHERE isbn=@isbn AND member_no=@member_no)
  51.     BEGIN
  52.         RAISERROR('El préstamo que trata de dar de alta ya existe.', 16, 11)
  53.         RETURN 1
  54.     END
  55. IF(@out_date < GETDATE())
  56.     BEGIN
  57.         RAISERROR('La fecha del préstamo no puede ser menor que la fecha actual.', 16, 11)
  58.         RETURN 1
  59.     END
  60. IF(@due_date < GETDATE())
  61.     BEGIN
  62.         RAISERROR('La fecha de regreso no puede ser menor que la fecha actual.', 16, 11)
  63.         RETURN 1
  64.     END
  65. IF(SELECT on_loan FROM copy1
  66.         WHERE isbn=@isbn AND copy_no=@copy_no) = 'SI'
  67.     BEGIN
  68.         RAISERROR('El libro ya se encuentra prestado a otro usuario.', 16, 11)
  69.         RETURN 1
  70.     END
  71. IF EXISTS(SELECT * FROM loan
  72.         WHERE isbn=@isbn AND member_no=@member_no)
  73.     BEGIN
  74.         RAISERROR('El usuario específicado ya tiene una copia de este libro.', 16, 11)
  75.         RETURN 1
  76.     END
  77.  
  78. INSERT INTO loan VALUES(
  79. @isbn,
  80. @copy_no,
  81. @title_no,
  82. @member_no,
  83. @out_date,
  84. @due_date
  85. )
  86. IF(@@ERROR <> 0)
  87. BEGIN
  88.     RAISERROR('Error al dar de alta el préstamo en la tabla loan.', 16,     11)
  89.     RETURN 1
  90. END
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top