Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. --8.
  2. create
  3. --alter
  4. function uf_TinhTienPhat(@mapm varchar(10),@isbn varchar(12), @masach varchar(15))
  5. returns float
  6. as
  7. begin
  8. declare @ngaymuon date = (select ngaymuon from phieumuon where mapm = @mapm)
  9. declare @songayqd int = (select songayquydinh from CT_PhieuMuon
  10. where isbn = @isbn and masach = @masach and
  11. mapm = @mapm)
  12. return (select mucgiaphat * (case when (datediff(day,@ngaymuon,ngaytra) > @songayqd) then (datediff(day,@ngaymuon,ngaytra) - @songayqd)
  13. else 0 end)
  14. from PhieuTra pt, CT_PhieuTra ctt
  15. where pt.mapm = @mapm and ctt.mapt = pt.mapt and
  16. ctt.isbn = @isbn and ctt.masach = @masach)
  17. end
  18. go
  19. --pm:u(ngaymuon)
  20. --pt:u(mapm,ngaytra)
  21. --ctm:u(songayquidinh)
  22. --ctpt:i(+) d(-) u(mucgiaphat)
  23. create
  24. --alter
  25. function uf_LayTienPhat(@mapm varchar(10),@isbn varchar(12), @masach varchar(15))
  26. returns float
  27. as
  28. begin
  29. return (select tienphat from CT_PhieuTra ct join PhieuTra pt on ct.mapt = pt.mapt
  30. where ct.masach = @masach and ct.isbn = @isbn and pt.mapm = @mapm)
  31. end
  32. go
  33. select dbo.uf_LayTienPhat('Pm004','116525441','S001')
  34. select dbo.uf_TinhTienPhat('Pm004','116525441','S001')
  35. create
  36. --alter
  37. trigger utr8 on phieumuon
  38. for update
  39. as
  40. if not exists (select * from inserted i join CT_PhieuMuon ct on ct.mapm = i.mapm
  41. where dbo.uf_TinhTienPhat(ct.mapm,ct.isbn,ct.masach) = dbo.uf_LayTienPhat(ct.mapm,ct.isbn,ct.masach))
  42. begin
  43. raiserror ('r8',16,1)
  44. rollback tran
  45. end
  46. go
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement