FSN#11433

svn path=/Database/trunk/; revision=9415
This commit is contained in:
Peter Feij
2007-01-12 15:22:18 +00:00
parent 7b4f67d7d6
commit eb5acd603f
2 changed files with 47 additions and 46 deletions

View File

@@ -1,7 +1,7 @@
#ifdef BEZ // 03-11-2000 PF #ifdef BEZ // 03-11-2000 PF
/* $Revision: 14 $ /* $Revision: 15 $
* $Modtime: 12-01-07 15:22 $ * $Modtime: 12-01-07 17:18 $
*/ */
#include "comsql.h" #include "comsql.h"
@@ -73,6 +73,9 @@ BEGIN
END; END;
/ /
// Uitgangspunt: we notificeren op Afspraak, niet op bezoeker als het gaat om aanmelding etc
// We notificeren alleen op bezoeker als het gaat om binnenkomen en weggaan.
// Er is slechts 1 zo een notificatie per afspraak, bij nieuw weet je nog niets van de bezoekers
CREATE_TRIGGER(bez_t_notificatie_afspraak) CREATE_TRIGGER(bez_t_notificatie_afspraak)
AFTER INSERT OR UPDATE AFTER INSERT OR UPDATE
ON bez_afspraak ON bez_afspraak
@@ -85,12 +88,10 @@ BEGIN
lreceiver prs_perslid.prs_perslid_key%TYPE; lreceiver prs_perslid.prs_perslid_key%TYPE;
BEGIN BEGIN
-- Alleen registratie van globale mutaties; per bezoeker wordt ook genotificeerd -- Alleen registratie van globale mutaties; per bezoeker wordt ook genotificeerd
IF :OLD.bez_afspraak_datum <> :NEW.bez_afspraak_datum -- Er is niet noodzakelijk iets gewijzigd, maar we notificeren wel
OR :OLD.res_rsv_ruimte_key <> :NEW.res_rsv_ruimte_key -- (er is immers een update), zodat de namen van de bezoekers
OR :OLD.alg_onrgoed_keys <> :NEW.alg_onrgoed_keys -- kunnen worden getoond.
THEN scode := 'BEZMUT';
scode := 'BEZMUT';
END IF;
IF scode IS NOT NULL IF scode IS NOT NULL
THEN THEN
@@ -107,33 +108,40 @@ BEGIN
RETURN; RETURN;
END; END;
-- We support substitution of placeholders in the messages BEGIN
-- ##KEY## = ins_srtdiscipline_prefix+key+/+volgnr SELECT bez_afspraak_naam || DECODE ((SELECT COUNT (*)
-- ##NAAM## = volledige naam van de afmelder FROM bez_bezoekers
IF INSTR2 (soms, '#') > 0 WHERE bez_afspraak_key = :NEW.bez_afspraak_key), 1, '', ' c.s.')
THEN
SELECT bez_afspraak_naam
|| DECODE ((SELECT COUNT (*)
FROM bez_bezoekers
WHERE bez_afspraak_key = :NEW.bez_afspraak_key),
1, '',
'...'
)
INTO lbezoek INTO lbezoek
FROM bez_bezoekers FROM bez_bezoekers
WHERE bez_afspraak_key = :NEW.bez_afspraak_key; WHERE bez_afspraak_key = :NEW.bez_afspraak_key;
soms := -- We support substitution of placeholders in the messages
REPLACE (REPLACE (REPLACE (soms, '##NAAM##', lbezoek), -- ##KEY## = ins_srtdiscipline_prefix+key+/+volgnr
'##KEY##', -- ##NAAM## = volledige naam van de afmelder
NUMBER_TO_CHAR (:NEW.bez_afspraak_key) IF INSTR (soms, '#') > 0
), THEN
'##DATUM##', soms :=
DATE_TO_CHAR (:NEW.bez_afspraak_datum, 'DD-MM-YY HH:MI') REPLACE (REPLACE (REPLACE (soms, '##NAAM##', lbezoek), '##KEY##', TO_CHAR (:NEW.bez_afspraak_key)),
); '##DATUM##',
END IF; TO_CHAR (:NEW.bez_afspraak_datum, 'DD-MM-YY HH:MI')
);
fac.putnotificationsrt (:NEW.prs_perslid_key, lreceiver, scode, :NEW.bez_afspraak_key, soms, NULL, NULL, NULL); END IF;
fac.clrnotifications(scode, :NEW.bez_afspraak_key);
fac.putnotificationsrt (:NEW.prs_perslid_key,
lreceiver,
scode,
:NEW.bez_afspraak_key,
soms,
NULL,
NULL,
NULL
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
fac.clrnotifications (scode, :NEW.bez_afspraak_key);
END;
END IF; END IF;
END; END;
END; END;
@@ -168,18 +176,17 @@ BEGIN
-- Geen notificatie van wijzigingen als afspraak onder een reservering hangt; -- Geen notificatie van wijzigingen als afspraak onder een reservering hangt;
-- Die reservering notificeert dan (meestal) wel -- Die reservering notificeert dan (meestal) wel
IF :OLD.bez_bezoekers_key IS NULL AND :new.res_rsv_ruimte_key IS NULL IF :OLD.bez_bezoekers_done IS NULL
THEN
scode := 'BEZNEW';
ELSIF :OLD.bez_bezoekers_done IS NULL
AND :NEW.bez_bezoekers_done IS NOT NULL AND :NEW.bez_bezoekers_done IS NOT NULL
THEN THEN
scode := 'BEZDON'; scode := 'BEZDON';
ldatum := :NEW.bez_bezoekers_done;
ELSIF :OLD.bez_bezoekers_out IS NULL ELSIF :OLD.bez_bezoekers_out IS NULL
AND :NEW.bez_bezoekers_out IS NOT NULL AND :NEW.bez_bezoekers_out IS NOT NULL
THEN THEN
scode := 'BEZOUT'; scode := 'BEZOUT';
ELSIF :new.res_rsv_ruimte_key IS NULL ldatum := :NEW.bez_bezoekers_out;
ELSE
-- update komt eigenlijk niet voor (vanuit de GUI), want er wordt altijd delete+insert uitgevoerd -- update komt eigenlijk niet voor (vanuit de GUI), want er wordt altijd delete+insert uitgevoerd
scode := 'BEZUPD'; scode := 'BEZUPD';
END IF; END IF;
@@ -216,15 +223,11 @@ BEGIN
); );
END IF; END IF;
-- Note: de clear wist alle bezoekers bij deze afspraak, zodat er maar 1 regel overblijft.
-- Indien hierin de naam van de bezoeker staat, is er de verdenking dat er iets niet goed is gegaan
-- Alternatief is om de BEZNEW niet te notificeren, want reservering of afspraak doen dat al.
-- We kunnen hier (diep in de trigger) niet kijken of er nog meer bezoekers zijn bij deze afspraak.
fac.clrnotifications(scode, :NEW.bez_afspraak_key);
fac.putnotificationsrt (lsender, lreceiver, scode, :NEW.bez_afspraak_key, soms, NULL, NULL, NULL); fac.putnotificationsrt (lsender, lreceiver, scode, :NEW.bez_afspraak_key, soms, NULL, NULL, NULL);
END IF; END IF;
END; END;
END; END;
/ /
#endif // BEZ #endif // BEZ

View File

@@ -1,7 +1,7 @@
#ifdef FAC // 13-03-96 AH #ifdef FAC // 13-03-96 AH
/* $Revision: 365 $ /* $Revision: 366 $
* $Modtime: 12-01-07 11:10 $ * $Modtime: 12-01-07 17:16 $
*/ */
#include "comsql.h" #include "comsql.h"
@@ -2929,11 +2929,9 @@ DEF_FAC_SRTNOT('BES2AF', 0, 'Bestelopdracht ##KEY## is geleverd', '',
DEF_FAC_SRTNOT('BES2NE', 0, 'Bestelopdracht ##KEY## is aangemaakt', '', '0', 'bestelopdr'); DEF_FAC_SRTNOT('BES2NE', 0, 'Bestelopdracht ##KEY## is aangemaakt', '', '0', 'bestelopdr');
DEF_FAC_SRTNOT('BES2VE', 0, 'Bestelopdracht ##KEY## is geheel verwerkt', '', '0', 'bestelopdr'); DEF_FAC_SRTNOT('BES2VE', 0, 'Bestelopdracht ##KEY## is geheel verwerkt', '', '0', 'bestelopdr');
DEF_FAC_SRTNOT('BEZMUT', 1, 'Gegevens van uw bezoek ##KEY## (##NAAM## op ##DATUM##) zijn geregistreerd', 'visitors/register_input.asp?afspr_key=', '0', 'afspraak');
DEF_FAC_SRTNOT('BEZDON', 9, 'Uw bezoeker ##NAAM## is gearriveerd', 'visitors/register_input.asp?afspr_key=', '0', 'afspraak'); DEF_FAC_SRTNOT('BEZDON', 9, 'Uw bezoeker ##NAAM## is gearriveerd', 'visitors/register_input.asp?afspr_key=', '0', 'afspraak');
DEF_FAC_SRTNOT('BEZMUT', 1, 'Gegevens van uw afspraak ##KEY## voor ##DATUM## zijn gewijzigd', 'visitors/register_input.asp?afspr_key=', '0', 'afspraak');
DEF_FAC_SRTNOT('BEZNEW', 1, 'Uw bezoeker ##NAAM## voor ##DATUM## is onder nummer ##KEY## geregistreerd', 'visitors/register_input.asp?afspr_key=', '0', 'afspraak');
DEF_FAC_SRTNOT('BEZOUT', 1, 'Uw bezoeker ##NAAM## is uitgecheckt', 'visitors/register_input.asp?afspr_key=', '0', 'afspraak'); DEF_FAC_SRTNOT('BEZOUT', 1, 'Uw bezoeker ##NAAM## is uitgecheckt', 'visitors/register_input.asp?afspr_key=', '0', 'afspraak');
//DEF_FAC_SRTNOT('BEZUPD', 0, 'Gegevens van uw bezoeker ##NAAM## voor ##DATUM## zijn gewijzigd', 'visitors/register_input.asp?afspr_key=', '0', 'afspraak');
DEF_FAC_SRTNOT('MESMES', 1, '..deze tekst wordt niet gebruikt.. ', 'messages/message.asp?message_key=', '0', ''); DEF_FAC_SRTNOT('MESMES', 1, '..deze tekst wordt niet gebruikt.. ', 'messages/message.asp?message_key=', '0', '');