Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE PROCEDURE prestar_libro
- @member_no INT, @title_no INT, @isbn INT, @copy_no INT, @due_date DATETIME
- AS
- DECLARE @out_date DATETIME = GETDATE()
- IF NOT EXISTS(SELECT * FROM member
- WHERE member_no=@member_no)
- BEGIN
- RAISERROR('El usuario especificado no existe.', 16, 11)
- RETURN 1
- END
- IF NOT EXISTS(SELECT * FROM copy1
- WHERE isbn=@isbn AND copy_no=@copy_no)
- BEGIN
- RAISERROR('El libro especificado no existe.', 16, 11)
- RETURN 1
- END
- IF(SELECT expr_date FROM adult
- WHERE member_no=@member_no) < GETDATE()
- BEGIN
- RAISERROR('La credencial del usuario ya expiró.', 16, 11)
- RETURN 1
- END
- IF(SELECT expr_date FROM adult, juvenile
- WHERE adult_member_no=@member_no AND juvenile.member_no=@member_no) < GETDATE()
- BEGIN
- RAISERROR('La credencial del usuario ya expiró.', 16, 11)
- RETURN 1
- END
- IF(SELECT SUM(fine_assessed) FROM loanhist
- WHERE member_no=@member_no) < 0
- BEGIN
- RAISERROR('El usuario presenta adeudos.', 16, 11)
- RETURN 1
- END
- IF(SELECT COUNT(*) FROM loan
- WHERE member_no=@member_no) >= 4
- BEGIN
- RAISERROR('El usuario tiene el máximo de libros que puede pedir.', 16, 11)
- RETURN 1
- END
- IF(SELECT loanable FROM item
- WHERE isbn=@isbn) = 'NO'
- BEGIN
- RAISERROR('El libro especificado no se puede prestar.', 16, 11)
- RETURN 1
- END
- IF EXISTS(SELECT * FROM loan
- WHERE isbn=@isbn AND member_no=@member_no)
- BEGIN
- RAISERROR('El préstamo que trata de dar de alta ya existe.', 16, 11)
- RETURN 1
- END
- IF(@out_date < GETDATE())
- BEGIN
- RAISERROR('La fecha del préstamo no puede ser menor que la fecha actual.', 16, 11)
- RETURN 1
- END
- IF(@due_date < GETDATE())
- BEGIN
- RAISERROR('La fecha de regreso no puede ser menor que la fecha actual.', 16, 11)
- RETURN 1
- END
- IF(SELECT on_loan FROM copy1
- WHERE isbn=@isbn AND copy_no=@copy_no) = 'SI'
- BEGIN
- RAISERROR('El libro ya se encuentra prestado a otro usuario.', 16, 11)
- RETURN 1
- END
- IF EXISTS(SELECT * FROM loan
- WHERE isbn=@isbn AND member_no=@member_no)
- BEGIN
- RAISERROR('El usuario específicado ya tiene una copia de este libro.', 16, 11)
- RETURN 1
- END
- INSERT INTO loan VALUES(
- @isbn,
- @copy_no,
- @title_no,
- @member_no,
- @out_date,
- @due_date
- )
- IF(@@ERROR <> 0)
- BEGIN
- RAISERROR('Error al dar de alta el préstamo en la tabla loan.', 16, 11)
- RETURN 1
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement