YASK#79792 -- Altrecht - koppeling reserveringen

svn path=/Customer/trunk/; revision=64272
This commit is contained in:
Arthur Egberink
2024-04-16 15:47:01 +00:00
parent 4e93dfb38a
commit 29bef6d573

View File

@@ -66,6 +66,12 @@ AS
p_subcategorie VARCHAR)
RETURN NUMBER;
-- Routines voor de koppeling van Altrecht met TOPdesk voor reserveringen
PROCEDURE upsert_resroom (p_locId IN VARCHAR2, p_roomName VARCHAR2, p_roomNr VARCHAR2, p_roomId IN VARCHAR2);
FUNCTION get_resroom (p_roomId IN VARCHAR2)
RETURN NUMBER;
-- Einde Altrecht
END;
/
@@ -1016,6 +1022,116 @@ AS
RETURN v_stdmelding_key;
END;
-- Routines voor de koppeling van Altrecht met TOPdesk voor reserveringen
PROCEDURE upsert_resroom (p_locId IN VARCHAR2, p_roomName VARCHAR2, p_roomNr VARCHAR2, p_roomId IN VARCHAR2)
AS
v_res_ruimte_key NUMBER;
v_ruimte_key NUMBER;
v_verdieping_key NUMBER;
v_gebouw_key NUMBER;
v_ruimte_opstel_key NUMBER;
v_gebouw_prefix VARCHAR2(1);
BEGIN
-- Zoek het gebouw waaronder we een vergaderzaal gaan toevoegen.
BEGIN
SELECT g.alg_gebouw_key, v.alg_verdieping_key, SUBSTR(alg_gebouw_naam, 1,1)
INTO v_gebouw_key, v_verdieping_key, v_gebouw_prefix
FROM alg_gebouw g, alg_verdieping v
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_code = '0'
AND alg_gebouw_externnr = p_locId;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN;
-- geen gebouw gevonden dat meedoet in de sync
END;
-- En nu kijken we of de reserveerbare zaal al bestaat.
BEGIN
SELECT res_ruimte_opstel_key, rr.res_ruimte_key
INTO v_ruimte_opstel_key, v_res_ruimte_key
FROM res_ruimte rr, res_ruimte_opstelling rro
WHERE rr.res_ruimte_key = rro.res_ruimte_key
AND rro.res_opstelling_key = 11 -- standaard
AND res_ruimte_extern_id = p_roomId;
-- We kennen de reserveerbare zaal al. Dan gaan we de omschrijving updaten
-- want misschien is deze gewijzigd.
UPDATE res_ruimte SET res_ruimte_nr = SUBSTR(v_gebouw_prefix || '-' || p_roomName,1,40)
WHERE res_ruimte_key = v_res_ruimte_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
BEGIN
SELECT g.alg_gebouw_key, v.alg_verdieping_key
INTO v_gebouw_key, v_verdieping_key
FROM alg_gebouw g, alg_verdieping v
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_code = '0'
AND alg_gebouw_externnr = p_locId;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
return;
-- geen gebouw gevonden dat meedoet in de sync
END;
dbms_output.put_line('before alg_ruimte');
BEGIN
SELECT alg_ruimte_key
INTO v_ruimte_key
FROM alg_ruimte r
WHERE r.alg_verdieping_key = v_verdieping_key
AND r.alg_ruimte_nr = p_roomNr;
EXCEPTION WHEN NO_DATA_FOUND
THEN
dbms_output.put_line('before insert alg_ruimte' || v_verdieping_key || '-' || p_roomNr || '-' || p_roomName);
INSERT INTO alg_ruimte (alg_verdieping_key, alg_ruimte_nr, alg_ruimte_omschrijving, alg_srtruimte_key)
VALUES(v_verdieping_key, p_roomNr, SUBSTR(p_roomName,1,30), 12) -- onbekend
RETURNING alg_ruimte_key INTO v_ruimte_key;
END;
dbms_output.put_line('before res_ruimte');
-- AltrechtRuimten = 981
INSERT INTO res_ruimte (res_discipline_key, res_ruimte_nr, res_ruimte_omschrijving, res_ruimte_extern_id)
VALUES (981, SUBSTR(v_gebouw_prefix || '-' || p_roomName,1,40), null, p_roomId)
RETURNING res_ruimte_key INTO v_res_ruimte_key;
dbms_output.put_line('before res_alg_ruimte' || v_res_ruimte_key || '-' || v_ruimte_key);
INSERT INTO res_alg_ruimte (res_ruimte_key, alg_ruimte_key)
VALUES (v_res_ruimte_key, v_ruimte_key);
dbms_output.put_line('before res_ruimte_opstelling');
INSERT INTO res_ruimte_opstelling (res_ruimte_key, res_opstelling_key, res_ruimte_opstel_default, res_ruimte_opstel_bezoekers)
VALUES (v_res_ruimte_key, 11, 1, 100)
RETURNING res_ruimte_opstel_key INTO v_ruimte_opstel_key;
END;
END;
FUNCTION get_resroom (p_roomId IN VARCHAR2)
RETURN NUMBER
AS
v_ruimte_opstel_key NUMBER;
BEGIN
BEGIN
SELECT rr.res_ruimte_key
INTO v_ruimte_opstel_key
FROM res_ruimte rr, res_ruimte_opstelling rro
WHERE rr.res_ruimte_key = rro.res_ruimte_key
AND rro.res_opstelling_key = 11 -- standaard
AND res_ruimte_extern_id = p_roomId;
RETURN v_ruimte_opstel_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN NULL;
END;
END;
-- Einde Altrecht routines
END;
/
END;
/
@@ -4084,6 +4200,22 @@ SELECT sd.ins_srtdiscipline_omschrijving,
AND km.mld_kenmerk_niveau = 'O'
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
CREATE OR REPLACE PROCEDURE yask_daily
AS
BEGIN
-- Voor de koppeling met Altrecht passen we alle ingelezen artikelen aan zodat ze een vrije omschrijving
-- ondersteunen. Dit veld is niet beschikbaar in de API, anders hadden we het daar aangepast.
UPDATE res_artikel
SET res_artikel_vrije_omschrijving = 1
WHERE res_artikel_externnr IS NOT NULL
AND res_artikel_vrije_omschrijving = 0
AND res_artikel_verwijder IS NULL;
END;
/
------ payload end ------
SET DEFINE OFF