PNBR#62081: Inrichten bezoekersmodule + aanzetten; package uitbreiden voor bijwerken kenmerken

svn path=/Customer/trunk/; revision=47084
This commit is contained in:
Suzan Wiegerinck
2020-06-09 09:47:52 +00:00
parent 1ec09b36ec
commit 9508d33b62

View File

@@ -146,6 +146,12 @@ AS
p_kenmerkdomein_key NUMBER,
p_kenmerk_waarde VARCHAR2)
RETURN VARCHAR2;
PROCEDURE set_kenmerk(p_module IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_link_key IN NUMBER,
p_kenmerk_waarde IN VARCHAR2,
p_history IN NUMBER);
END;
/
@@ -488,6 +494,346 @@ AS
v_kenmerk_waarde);
END;
PROCEDURE set_kenmerk(p_module IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_link_key IN NUMBER,
p_kenmerk_waarde IN VARCHAR2,
p_history IN NUMBER)
AS
v_count NUMBER;
v_niveau VARCHAR2 (1);
BEGIN
CASE p_module
WHEN 'PRS'
THEN
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
-- opgeslagen (da's dus redundant..?)
SELECT prs_kenmerk_niveau
INTO v_niveau
FROM prs_kenmerk
WHERE prs_kenmerk_key = p_kenmerk_key;
SELECT COUNT ( * )
INTO v_count
FROM prs_kenmerklink
WHERE prs_link_key = p_link_key
AND prs_kenmerk_key = p_kenmerk_key
AND prs_kenmerklink_verwijder IS NULL;
IF v_count = 1
THEN
IF p_kenmerk_waarde IS NULL
THEN
DELETE prs_kenmerklink
WHERE prs_link_key = p_link_key
AND prs_kenmerk_key = p_kenmerk_key
AND prs_kenmerklink_verwijder IS NULL;
ELSE
UPDATE prs_kenmerklink
SET prs_kenmerklink_waarde = p_kenmerk_waarde
WHERE prs_link_key = p_link_key
AND prs_kenmerk_key = p_kenmerk_key
AND prs_kenmerklink_verwijder IS NULL;
END IF;
ELSE
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
THEN
INSERT INTO prs_kenmerklink (prs_kenmerk_key,
prs_link_key,
prs_kenmerklink_niveau,
prs_kenmerklink_waarde)
VALUES (p_kenmerk_key,
p_link_key,
v_niveau,
p_kenmerk_waarde);
END IF;
END IF;
WHEN 'ALG'
THEN
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
-- opgeslagen (da's dus redundant..?)
SELECT alg_kenmerk_niveau
INTO v_niveau
FROM alg_kenmerk
WHERE alg_kenmerk_key = p_kenmerk_key;
SELECT COUNT ( * )
INTO v_count
FROM alg_onrgoedkenmerk
WHERE alg_onrgoed_key = p_link_key
AND alg_kenmerk_key = p_kenmerk_key
AND alg_onrgoedkenmerk_verwijder IS NULL;
IF v_count = 1
THEN
IF p_kenmerk_waarde IS NULL
THEN
DELETE alg_onrgoedkenmerk
WHERE alg_onrgoed_key = p_link_key
AND alg_kenmerk_key = p_kenmerk_key
AND alg_onrgoedkenmerk_verwijder IS NULL;
ELSE
UPDATE alg_onrgoedkenmerk
SET alg_onrgoedkenmerk_waarde = p_kenmerk_waarde
WHERE alg_onrgoed_key = p_link_key
AND alg_kenmerk_key = p_kenmerk_key
AND alg_onrgoedkenmerk_verwijder IS NULL;
END IF;
ELSE
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
THEN
INSERT INTO alg_onrgoedkenmerk (alg_kenmerk_key,
alg_onrgoed_key,
alg_onrgoed_niveau,
alg_onrgoedkenmerk_waarde)
VALUES (p_kenmerk_key,
p_link_key,
v_niveau,
p_kenmerk_waarde);
END IF;
END IF;
WHEN 'BEZ'
THEN
SELECT COUNT ( * )
INTO v_count
FROM bez_kenmerkwaarde
WHERE bez_bezoekers_key = p_link_key
AND bez_kenmerk_key = p_kenmerk_key
AND bez_kenmerkwaarde_verwijder IS NULL;
IF v_count = 1
THEN
IF p_kenmerk_waarde IS NULL
THEN
DELETE bez_kenmerkwaarde
WHERE bez_bezoekers_key = p_link_key
AND bez_kenmerk_key = p_kenmerk_key
AND bez_kenmerkwaarde_verwijder IS NULL;
ELSE
UPDATE bez_kenmerkwaarde
SET bez_kenmerkwaarde_waarde = p_kenmerk_waarde
WHERE bez_bezoekers_key = p_link_key
AND bez_kenmerk_key = p_kenmerk_key
AND bez_kenmerkwaarde_verwijder IS NULL;
END IF;
ELSE
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
THEN
INSERT INTO bez_kenmerkwaarde (bez_kenmerk_key,
bez_bezoekers_key,
bez_kenmerkwaarde_waarde)
VALUES (p_kenmerk_key,
p_link_key,
p_kenmerk_waarde);
END IF;
END IF;
WHEN 'MLD'
THEN
-- melding- of opdrachtkenmerk?
SELECT mld_kenmerk_niveau
INTO v_niveau
FROM mld_kenmerk
WHERE mld_kenmerk_key = p_kenmerk_key;
CASE v_niveau
WHEN 'O'
THEN
SELECT COUNT ( * )
INTO v_count
FROM mld_kenmerkopdr
WHERE mld_opdr_key = p_link_key
AND mld_kenmerk_key = p_kenmerk_key
AND mld_kenmerkopdr_verwijder IS NULL;
IF v_count = 1
THEN
IF p_kenmerk_waarde IS NULL
THEN
DELETE mld_kenmerkopdr
WHERE mld_opdr_key = p_link_key
AND mld_kenmerk_key = p_kenmerk_key
AND mld_kenmerkopdr_verwijder IS NULL;
ELSE
UPDATE mld_kenmerkopdr
SET mld_kenmerkopdr_waarde = p_kenmerk_waarde
WHERE mld_opdr_key = p_link_key
AND mld_kenmerk_key = p_kenmerk_key
AND mld_kenmerkopdr_verwijder IS NULL;
END IF;
ELSE
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
THEN
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key,
mld_opdr_key,
mld_kenmerkopdr_waarde)
VALUES (p_kenmerk_key,
p_link_key,
p_kenmerk_waarde);
END IF;
END IF;
WHEN 'S'
THEN
SELECT COUNT ( * )
INTO v_count
FROM mld_kenmerkmelding
WHERE mld_melding_key = p_link_key
AND mld_kenmerk_key = p_kenmerk_key
AND mld_kenmerkmelding_verwijder IS NULL;
IF v_count = 1
THEN
IF p_kenmerk_waarde IS NULL
THEN
DELETE mld_kenmerkmelding
WHERE mld_melding_key = p_link_key
AND mld_kenmerk_key = p_kenmerk_key
AND mld_kenmerkmelding_verwijder IS NULL;
ELSE
UPDATE mld_kenmerkmelding
SET mld_kenmerkmelding_waarde = p_kenmerk_waarde
WHERE mld_melding_key = p_link_key
AND mld_kenmerk_key = p_kenmerk_key
AND mld_kenmerkmelding_verwijder IS NULL;
END IF;
ELSE
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
THEN
INSERT INTO mld_kenmerkmelding (mld_kenmerk_key,
mld_melding_key,
mld_kenmerkmelding_waarde)
VALUES (p_kenmerk_key,
p_link_key,
p_kenmerk_waarde);
END IF;
END IF;
END CASE;
WHEN 'FIN'
THEN
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
-- opgeslagen (da's dus redundant..?)
SELECT fin_kenmerk_type
INTO v_niveau
FROM fin_kenmerk
WHERE fin_kenmerk_key = p_kenmerk_key;
IF v_niveau = 'F'
THEN
SELECT COUNT ( * )
INTO v_count
FROM fin_kenmerkfactuur
WHERE fin_factuur_key = p_link_key
AND fin_kenmerk_key = p_kenmerk_key
AND fin_kenmerkfactuur_verwijder IS NULL;
IF v_count = 1
THEN
IF p_kenmerk_waarde IS NULL
THEN
DELETE fin_kenmerkfactuur
WHERE fin_factuur_key = p_link_key
AND fin_kenmerk_key = p_kenmerk_key
AND fin_kenmerkfactuur_verwijder IS NULL;
ELSE
UPDATE fin_kenmerkfactuur
SET fin_kenmerkfactuur_waarde = p_kenmerk_waarde
WHERE fin_factuur_key = p_link_key
AND fin_kenmerk_key = p_kenmerk_key
AND fin_kenmerkfactuur_verwijder IS NULL;
END IF;
ELSE
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
THEN
INSERT INTO fin_kenmerkfactuur (fin_kenmerk_key,
fin_factuur_key,
fin_kenmerkfactuur_waarde)
VALUES (p_kenmerk_key,
p_link_key,
p_kenmerk_waarde);
END IF;
END IF;
ELSE
-- Kenmerk bij factuurregel
SELECT COUNT ( * )
INTO v_count
FROM fin_kenmerkfactregel
WHERE fin_factuurregel_key = p_link_key
AND fin_kenmerk_key = p_kenmerk_key
AND fin_kenmerkfactregel_verwijder IS NULL;
IF v_count = 1
THEN
IF p_kenmerk_waarde IS NULL
THEN
DELETE fin_kenmerkfactregel
WHERE fin_factuurregel_key = p_link_key
AND fin_kenmerk_key = p_kenmerk_key
AND fin_kenmerkfactregel_verwijder IS NULL;
ELSE
UPDATE fin_kenmerkfactregel
SET fin_kenmerkfactregel_waarde = p_kenmerk_waarde
WHERE fin_factuurregel_key = p_link_key
AND fin_kenmerk_key = p_kenmerk_key
AND fin_kenmerkfactregel_verwijder IS NULL;
END IF;
ELSE
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
THEN
INSERT INTO fin_kenmerkfactregel (fin_kenmerk_key,
fin_factuurregel_key,
fin_kenmerkfactregel_waarde)
VALUES (p_kenmerk_key,
p_link_key,
p_kenmerk_waarde);
END IF;
END IF;
END IF;
WHEN 'RES'
THEN
-- res_rsv_ruimte kenmerk
SELECT COUNT ( * )
INTO v_count
FROM res_kenmerkwaarde
WHERE res_rsv_ruimte_key = p_link_key
AND res_kenmerk_key = p_kenmerk_key
AND res_kenmerkwaarde_verwijder IS NULL;
IF v_count = 1
THEN
IF p_kenmerk_waarde IS NULL
THEN
DELETE res_kenmerkwaarde
WHERE res_rsv_ruimte_key = p_link_key
AND res_kenmerk_key = p_kenmerk_key
AND res_kenmerkwaarde_verwijder IS NULL;
ELSE
UPDATE res_kenmerkwaarde
SET res_kenmerkreservering_waarde = p_kenmerk_waarde
WHERE res_rsv_ruimte_key = p_link_key
AND res_kenmerk_key = p_kenmerk_key
AND res_kenmerkwaarde_verwijder IS NULL;
END IF;
ELSE
IF p_kenmerk_key IS NOT NULL AND p_kenmerk_waarde IS NOT NULL
THEN
INSERT INTO res_kenmerkwaarde (res_kenmerk_key,
res_rsv_ruimte_key,
res_kenmerkreservering_waarde)
VALUES (p_kenmerk_key,
p_link_key,
p_kenmerk_waarde);
END IF;
END IF;
END CASE;
END;
FUNCTION get_kenmerkwaarde (p_kenmerk_type VARCHAR2,
p_kenmerkdomein_key NUMBER,