This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
|
custom_reservatie_check [2017/09/29 08:40] kristof |
— (current) | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Custom check voor reservaties ====== | ||
| - | In het geval dat standaard Club Planner niet voldoet voor de noden van een klant op gebied van reservaties toelaten kan je dit op deze manier oplossen. Stop een database trigger met de custom check in de database op de tabel vd reservaties **STMEMBERSET**, | ||
| - | |||
| - | **Voorbeeld 1: Niet op dag zelf laten reserveren** | ||
| - | |||
| - | CREATE TRIGGER [Member].[TRMEMBERSET_CHECK_RESERVATION] ON [Member].[STMEMBERSET] FOR INSERT | ||
| - | AS | ||
| - | DECLARE @member_id int | ||
| - | DECLARE @count_reserverations int | ||
| - | DECLARE @seq int | ||
| - | DECLARE @reservation_date datetime | ||
| - | DECLARE @settype int | ||
| - | BEGIN | ||
| - | select @member_id = member_id from inserted | ||
| - | select @seq = set_sequence_no from inserted | ||
| - | select @settype = log_type from inserted | ||
| - | |||
| - | select @reservation_date = b.start_date | ||
| - | from inserted a, planner.stcalendar b | ||
| - | where a.cal_id = b.cal_id | ||
| - | |||
| - | IF | ||
| - | convert(datetime, | ||
| - | AND @settype <> 0 | ||
| - | BEGIN | ||
| - | RAISERROR ('Niet toegelaten van te reserveren op de dag zelf.', | ||
| - | DELETE from member.stmemberset where set_sequence_no = @seq | ||
| - | RETURN | ||
| - | END | ||
| - | END | ||
| - | |||
| - | **Voorbeeld 2: max 1 reservatie per locatie/dag en max 3verschillende dagen per week ** | ||
| - | |||
| - | Create TRIGGER [Member].[TRMEMBERSET_CHECK_RESERVATION] ON [Member].[STMEMBERSET] FOR INSERT | ||
| - | AS | ||
| - | DECLARE @member_id int | ||
| - | DECLARE @count_reserverations int | ||
| - | DECLARE @seq int | ||
| - | DECLARE @reservation_date datetime | ||
| - | DECLARE @settype int | ||
| - | DECLARE @room_id int | ||
| - | DECLARE @weekstart datetime | ||
| - | DECLARE @WeekEnd datetime | ||
| - | BEGIN | ||
| - | |||
| - | select @member_id = member_id from inserted | ||
| - | select @seq = set_sequence_no from inserted | ||
| - | select @settype = log_type from inserted | ||
| - | |||
| - | select @reservation_date = b.start_date | ||
| - | from inserted a, planner.stcalendar b | ||
| - | where a.cal_id = b.cal_id | ||
| - | |||
| - | select @room_id = b.room_id | ||
| - | from inserted a, planner.stcalendar b | ||
| - | where a.cal_id = b.cal_id | ||
| - | |||
| - | select @count_reserverations = (select count(*) | ||
| - | from member.stmemberset a, planner.stcalendar b | ||
| - | where convert(date, | ||
| - | and a.member_id = @member_id | ||
| - | and b.cal_group_id = 1 | ||
| - | and b.room_id = @room_id | ||
| - | and a.cal_id = b.cal_id | ||
| - | and a.cancelled = 0) | ||
| - | |||
| - | IF @count_reserverations > 1 | ||
| - | BEGIN | ||
| - | RAISERROR ('Niet toegelaten om meer dan 1 reservatie per toestel te doen per dag.' , 16, 1) | ||
| - | DELETE from member.stmemberset where set_sequence_no = @seq | ||
| - | RETURN | ||
| - | END | ||
| - | |||
| - | SELECT @weekstart = DATEADD(day, | ||
| - | SELECT @WeekEnd = | ||
| - | |||
| - | select @count_reserverations = (select count(dt.x) from (select convert(date, | ||
| - | from member.stmemberset a, planner.stcalendar b | ||
| - | where convert(date, | ||
| - | and a.member_id = 1 | ||
| - | and b.cal_group_id = 1 | ||
| - | and a.cal_id = b.cal_id | ||
| - | and a.cancelled = 0 | ||
| - | group by convert(date, | ||
| - | |||
| - | IF @count_reserverations > 3 | ||
| - | BEGIN | ||
| - | RAISERROR ('Niet toegelaten op meer dan 3 verschillende dagen per week te reserveren.' | ||
| - | DELETE from member.stmemberset where set_sequence_no = @seq | ||
| - | RETURN | ||
| - | END | ||
| - | END | ||
| - | |||
| - | |||
| - | **Voorbeeld vd tekst die de klant ziet bij het afgaan vd error:** | ||
| - | |||
| - | {{: | ||