Files
Customer/HPJI/hpji.sql
Suzan Wiegerinck 5b8c2bb5f1 HPJI#79712 koppeling Facilitor en P2P
svn path=/Customer/trunk/; revision=63728
2024-02-27 14:37:19 +00:00

3882 lines
163 KiB
SQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
DEFINE thisfile = 'HPJI.SQL'
DEFINE dbuser = '^HPJI'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PACKAGE HPJI
AS
-- PACKAGES voor de HPJI specifieke ondersteuning
TYPE t_cursor IS REF CURSOR;
PROCEDURE hpji_noti_per_controle;
PROCEDURE rap_it_inventaris_jaar (user_key IN NUMBER,
p_datum_van IN VARCHAR2,
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor);
PROCEDURE hpji_acties_verkoopcontracten;
PROCEDURE opdracht_after_insert (p_opdr_key IN NUMBER);
END;
/
CREATE OR REPLACE PACKAGE BODY HPJI
AS
PROCEDURE hpji_noti_per_controle
AS
p_applname VARCHAR2 (50) := 'NOTIFICATIE_PLANNEN_TAAK';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errorhint VARCHAR2 (100);
v_aanduiding VARCHAR2 (100);
CURSOR c IS SELECT * FROM HPJI_V_NOTI_TAKEN;
BEGIN
v_errorhint := 'init';
FOR rec IN c
LOOP
BEGIN
v_aanduiding := rec.taak_omschr || ' betreffende; ' || rec.betreft;
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
prs_perslid_key_receiver,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
prs_perslid_key_sender,
fac_notificatie_prioriteit,
fac_notificatie_lang)
SELECT fac_srtnotificatie_key,
2,
rec.to_key,
rec.to_email,
rec.taak_omschr || ' betreffende; ' || rec.betreft || ' in te plannen',
rec.ins_deel_key,
4,
2,
'NL'
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST03';
fac.writelog (p_applname,
'I',
'Mail naar ' || rec.to_omschr,
rec.betreft);
EXCEPTION
WHEN OTHERS
THEN
v_errorhint := 'Toevoegen notificatie periodieke controle ' || rec.betreft;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (
p_applname,
'E',
'Error '
|| v_aanduiding
|| oracle_err_num
|| '/'
|| oracle_err_mes,
v_errorhint);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
v_errorhint := 'Notificaties in te plannen periodieke taken';
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
fac.writelog (p_applname,
'E',
'Error ' || oracle_err_num || '/' || oracle_err_mes,
v_errorhint);
END hpji_noti_per_controle;
PROCEDURE rap_it_inventaris_jaar (user_key IN NUMBER,
p_datum_van IN VARCHAR2, -- Let wel: formaat '24-06-1965'
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor)
AS
v_datum_van DATE;
v_datum_tot DATE;
BEGIN
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy');
OPEN p_cursor FOR
SELECT grid.onderdeel || '-' || grid.rubriek
hide_f_regel,
grid.onderdeel
fclt_f_onderdeel,
grid.rubriek
fclt_f_rubriek,
grid.jaar
fclt_f_aanschafjaar,
COALESCE (x.aantal, 0)
aantal
FROM (SELECT a.prs_afdeling_key onderdeel_key,
sd.ins_srtdeel_key rubriek_key,
j.jaar jaar,
a.prs_afdeling_omschrijving onderdeel,
sd.ins_srtdeel_omschrijving rubriek
FROM (SELECT prs_afdeling_key,
prs_afdeling_omschrijving
FROM prs_v_aanwezigafdeling
WHERE prs_afdeling_parentkey IS NULL
UNION ALL
SELECT -1 prs_afdeling_key,
'Onbekend' prs_afdeling_omschrijving
FROM DUAL) a,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigsrtgroep sg,
(SELECT DISTINCT
TO_CHAR (
fac.safe_to_date (
ins_kenmerkdeel_waarde,
'dd-mm-yyyy'),
'yyyy') jaar
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_kenmerk_key = 101 -- Aanschafdatum
AND fac.safe_to_date (
ins_kenmerkdeel_waarde,
'dd-mm-yyyy') BETWEEN v_datum_van
AND v_datum_tot)
j
WHERE sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = 401) grid -- Hardware
LEFT JOIN
( SELECT asd.prs_afdeling_key1 onderdeel_key,
asd.ins_srtdeel_key rubriek_key,
j.jaar jaar,
COUNT (*) aantal
FROM (SELECT DECODE (ra.aantal,
1, ab.prs_afdeling_key1,
-1) prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
alg_v_allonrgoed_gegevens aog,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key)
prs_afdeling_key,
COUNT (*)
aantal
FROM prs_ruimteafdeling
GROUP BY alg_ruimte_key) ra,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type NOT IN
('A', 'P', 'W')
AND d.ins_alg_ruimte_key =
aog.alg_onroerendgoed_keys
AND aog.alg_ruimte_key = ra.alg_ruimte_key
AND ra.prs_afdeling_key =
ab.prs_afdeling_key
UNION ALL
SELECT -1 prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
alg_v_allonrgoed_gegevens aog
WHERE d.ins_alg_ruimte_type NOT IN
('A', 'P', 'W')
AND d.ins_alg_ruimte_key =
aog.alg_onroerendgoed_keys
AND ( aog.alg_ruimte_key IS NULL
OR NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key =
aog.alg_ruimte_key))
UNION ALL
SELECT ab.prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'A'
AND d.ins_alg_ruimte_key =
ab.prs_afdeling_key
UNION ALL
SELECT ab.prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
prs_perslid p,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_alg_ruimte_key =
p.prs_perslid_key
AND p.prs_afdeling_key =
ab.prs_afdeling_key
UNION ALL
SELECT DECODE (ra.aantal,
1, ab.prs_afdeling_key1,
-1) prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
prs_werkplek w,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key)
prs_afdeling_key,
COUNT (*)
aantal
FROM prs_ruimteafdeling
GROUP BY alg_ruimte_key) ra,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key =
w.prs_werkplek_key
AND w.prs_alg_ruimte_key =
ra.alg_ruimte_key
AND ra.prs_afdeling_key =
ab.prs_afdeling_key
UNION ALL
SELECT -1 prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d, prs_werkplek w
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key =
w.prs_werkplek_key
AND NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key =
w.prs_alg_ruimte_key)) asd
LEFT JOIN
(SELECT ins_deel_key,
fac.safe_to_date (ins_kenmerkdeel_waarde,
'dd-mm-yyyy') datum,
TO_CHAR (
fac.safe_to_date (
ins_kenmerkdeel_waarde,
'dd-mm-yyyy'),
'yyyy') jaar
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_kenmerk_key = 101) j -- Aanschafdatum
ON asd.ins_deel_key = j.ins_deel_key
WHERE j.datum BETWEEN v_datum_van AND v_datum_tot
GROUP BY asd.prs_afdeling_key1,
asd.ins_srtdeel_key,
j.jaar) x
ON grid.onderdeel_key = x.onderdeel_key
AND grid.rubriek_key = x.rubriek_key
AND grid.jaar = x.jaar
ORDER BY 1,
2,
3,
4;
END rap_it_inventaris_jaar;
PROCEDURE hpji_acties_verkoopcontracten
AS
p_applname VARCHAR2 (50) := 'ACTIES_VERKOOPCONTRACTEN';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errorhint VARCHAR2 (400);
v_mldkey mld_melding.mld_melding_key%TYPE;
v_uitvoerder prs_perslid.prs_perslid_key%TYPE;
v_kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
v_accm NUMBER;
v_teaml NUMBER;
v_buscontr NUMBER;
CURSOR c IS
--bespreek contract (Subsidie en Detachering)
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
c.prs_perslid_key_beh AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
NULL AS business_controller,
1421 AS stdmelding,
'Bespreek contract' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821, 1842)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-1) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 570 --bespreek contract
UNION ALL
--bespreek contract (Onderaanneming en Raamovereenkomst)
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
c.prs_perslid_key_beh AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
NULL AS business_controller,
1403 AS stdmelding,
'Bespreek contract' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1822, 1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-1) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 570 --bespreek contract
UNION ALL
--Indienen aanvraag
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
c.prs_perslid_key_beh AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
109570 AS business_controller,
1404 AS stdmelding,
'Indienen aanvraag' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821,
1822,
1842,
1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-2) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 571 --Indienen aanvraag
UNION ALL
-- Tussentijdse verantwoording
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
c.prs_perslid_key_beh AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
NULL AS business_controller,
1406 AS stdmelding,
'Tussentijdse verantwoording' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821,
1822,
1842,
1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-2) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 572 --Tussentijdse verantwoording
UNION ALL
--Indienen vaststelling
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
c.prs_perslid_key_beh AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
109570 AS business_controller,
1405 AS stdmelding,
'Indienen vaststelling' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821,
1822,
1842,
1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-2) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 567 --Indienen vaststelling
UNION ALL
--contract loopt af (Subsidie en Detachering)
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
c.prs_perslid_key_beh AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
NULL AS business_controller,
1402 AS stdmelding,
'Contract loopt af' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821, 1842)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-2) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 569 --contract loopt af
UNION ALL
--contract loopt af (Raamovereenkomst)
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
c.prs_perslid_key_beh AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
NULL AS business_controller,
1423 AS stdmelding,
'Contract loopt af' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1822)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-3) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 569 --contract loopt af
UNION ALL
--contract loopt af (Onderaanneming)
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
c.prs_perslid_key_beh AS accountmanager,
c.prs_perslid_key_eig AS teamleider,
NULL AS business_controller,
1423 AS stdmelding,
'Contract loopt af' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-6) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 569 --contract loopt af
UNION ALL
--Accountantsverklaring
SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_omschrijving,
b.prs_bedrijf_naam,
NULL AS accountmanager,
NULL AS teamleider,
109570 AS business_controller,
1401 AS stdmelding,
'Accountantsverklaring' AS taak
FROM cnt_contract c,
cnt_kenmerkcontract d,
cnt_kenmerk ck,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1821,
1822,
1842,
1901)
AND c.cnt_contract_key = d.cnt_contract_key
AND d.cnt_kenmerk_key = ck.cnt_kenmerk_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND ADD_MONTHS (
fac.safe_to_date (d.cnt_kenmerkcontract_waarde,
'dd-mm-yyyy'),
-3) =
SYSDATE
AND ck.cnt_srtkenmerk_key = 568; --Accountantsverklaring
BEGIN
v_uitvoerder := 4; --Standaard de persoon Facilitor
v_kostenplaats := 1910; --Standaard Facilitair
FOR rec IN c
LOOP
BEGIN
v_errorhint := 'init';
-- Bepalen uitvoerder en kostenplaats
v_errorhint := 'Bepalen uitvoerder en kostenplaats';
SELECT MIN (p.prs_perslid_key), MIN (d.prs_kostenplaats_key)
INTO v_uitvoerder, v_kostenplaats
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL
AND prs_perslid_key =
DECODE (rec.stdmelding,
1401, rec.business_controller,
1402, rec.teamleider,
1403, rec.accountmanager,
1404, rec.teamleider,
1405, rec.teamleider,
1406, rec.teamleider,
1421, rec.teamleider,
1423, rec.accountmanager);
-- Notificaties aanmaken tbv accountmanagers
v_errorhint := 'notificatie_accountmanager';
v_accm := rec.accountmanager;
IF v_accm <> NULL
THEN
FAC.trackaction (
'CNTMAI',
rec.cnt_contract_key,
NULL,
NULL,
'Notificatie naar accountmanager, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')');
INSERT INTO fac_notificatie (
fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (
53, -- CNTMAI
2, -- mail
NULL,
v_accm,
'Notificatie naar accountmanager, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')',
rec.taak,
NULL,
2);
END IF;
-- Notificaties aanmaken tbv teamleiders
v_errorhint := 'notificatie_teamleider';
v_teaml := rec.teamleider;
IF v_teaml <> NULL
THEN
FAC.trackaction (
'CNTMAI',
rec.cnt_contract_key,
NULL,
NULL,
'Notificatie naar teamleider/clustermanager, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')');
INSERT INTO fac_notificatie (
fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (
53, -- CNTMAI
2, -- mail
NULL,
v_teaml,
'Notificatie naar accountmanager, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')',
rec.taak,
NULL,
2);
END IF;
-- Notificaties aanmaken tbv de business controller
v_errorhint := 'notificatie_businesscontrol';
v_buscontr := rec.business_controller;
IF v_buscontr <> NULL
THEN
FAC.trackaction (
'CNTMAI',
rec.cnt_contract_key,
NULL,
NULL,
'Notificatie naar Business Controller, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')');
INSERT INTO fac_notificatie (
fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (
53, -- CNTMAI
2, -- mail
NULL,
v_buscontr,
'Notificatie naar accountmanager, taak: '
|| rec.taak
|| ' bij contract '
|| rec.cnt_contract_key
|| '('
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving
|| ')',
rec.taak,
NULL,
2);
END IF;
-- Melding aanmaken
v_errorhint :=
'Melding aanmaken vanuit contract '
|| rec.cnt_contract_key
|| ' met taak '
|| rec.taak;
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_melding_datum,
mld_melding_onderwerp,
mld_melding_omschrijving,
mld_melding_status,
mld_melding_t_uitvoertijd,
mld_stdmelding_key,
mld_alg_locatie_key,
mld_melding_externnr,
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_behandelaar_key,
mld_melding_spoed,
mld_melding_kto_type,
mld_melding_kto_key)
VALUES (
'MLD',
6, -- system
SYSDATE,
SUBSTR (
'Contract '
|| rec.cnt_contract_key
|| ': '
|| rec.prs_bedrijf_naam
|| ' - '
|| rec.cnt_contract_omschrijving,
1,
80),
NULL,
2, -- Nieuw
NULL, -- stduitvoer
rec.stdmelding,
NULL, -- Locatie onbekend
NULL,
v_uitvoerder,
v_uitvoerder,
v_kostenplaats,
v_uitvoerder,
3,
'C',
rec.cnt_contract_key)
RETURNING mld_melding_key
INTO v_mldkey;
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errorhint :=
'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (p_applname,
'E',
'Proces afgebroken!',
v_errorhint);
END hpji_acties_verkoopcontracten;
PROCEDURE opdracht_after_insert (p_opdr_key IN NUMBER)
AS
v_administratie VARCHAR2 (49);
BEGIN
SELECT a.administratie
INTO v_administratie
FROM mld_opdr o,
prs_kostenplaats kp,
(SELECT w.fac_usrdata_code kpl_sub,
w.fac_usrdata_omschr administratie
FROM fac_usrtab t, fac_usrdata w
WHERE t.fac_usrtab_key = w.fac_usrtab_key
AND t.fac_usrtab_key = 1201
AND w.fac_usrdata_verwijder IS NULL
AND w.fac_usrdata_vervaldatum IS NULL
OR w.fac_usrdata_vervaldatum > TRUNC (SYSDATE)) a
WHERE kp.prs_kostenplaats_key = o.prs_kostenplaats_key
AND a.kpl_sub = SUBSTR (kp.prs_kostenplaats_nr, 1, 2)
AND o.mld_opdr_key = p_opdr_key;
IF v_administratie IS NOT NULL
THEN
mld.upsertopdrachtkenmerk (2301, p_opdr_key, v_administratie);
COMMIT;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN;
END opdracht_after_insert;
END;
/
CREATE OR REPLACE VIEW hpji_v_import_log
AS
SELECT imp_log_status fclt_f_status,
imp_log_omschrijving omschrijving,
imp_log_hint opmerking
FROM imp_log l
WHERE l.fac_import_key = (SELECT MAX (fac_import_key)
FROM fac_import
WHERE fac_import_app_key = 41);
CREATE OR REPLACE VIEW hpji_v_ruimtekaartjes
(
fclt_f_opmaak,
fclt_f_loc_code,
fclt_f_geb_code,
fclt_f_ver_code,
fclt_f_ruimte_nr,
hide_f_ruimte_key,
ruimtesoort,
opp,
titel,
naam,
tussenvoegsel,
voorletters,
voornaam,
functie,
aantal
)
AS
(SELECT e.opmaak,
a.alg_locatie_code,
a.alg_gebouw_code,
a.alg_verdieping_code,
a.alg_ruimte_nr,
TO_CHAR (a.alg_ruimte_key) || e.opmaak,
b.ruimtesoort,
a.opp,
c.prs_perslid_titel,
c.prs_perslid_naam,
c.prs_perslid_tussenvoegsel,
c.prs_perslid_voorletters,
c.prs_perslid_voornaam,
c.prs_srtperslid_omschrijving,
d.aantal
FROM (SELECT r.alg_ruimte_key,
r.alg_ruimte_nr,
v.alg_verdieping_code,
g.alg_gebouw_code,
l.alg_locatie_code,
d.alg_district_omschrijving,
r.alg_ruimte_bruto_vloeropp opp
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_district d
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key) a
LEFT JOIN
(SELECT r.alg_ruimte_key,
COALESCE (sr.alg_srtruimte_omschrijving, '-') ruimtesoort
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key) b
ON a.alg_ruimte_key = b.alg_ruimte_key
LEFT JOIN -- personen op ruimte
(SELECT DISTINCT wp.prs_alg_ruimte_key,
p.prs_perslid_titel,
p.prs_perslid_naam,
p.prs_perslid_voorletters,
p.prs_perslid_tussenvoegsel,
p.prs_perslid_voornaam,
sp.prs_srtperslid_omschrijving
FROM prs_werkplek wp,
prs_perslidwerkplek pw,
prs_v_aanwezigperslid p,
prs_srtperslid sp
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
AND pw.prs_perslid_key = p.prs_perslid_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key) c
ON a.alg_ruimte_key = c.prs_alg_ruimte_key
LEFT JOIN -- aantal personen op ruimte
( SELECT wp.prs_alg_ruimte_key, COUNT (pw.prs_perslid_key) aantal
FROM prs_werkplek wp, prs_perslidwerkplek pw
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
GROUP BY wp.prs_alg_ruimte_key) d
ON a.alg_ruimte_key = d.prs_alg_ruimte_key,
(SELECT 'Wilster' opmaak FROM DUAL
UNION ALL
SELECT 'Portalis' opmaak FROM DUAL
UNION ALL
SELECT 'Juvaid' opmaak FROM DUAL
UNION ALL
SELECT 'Het Poortje' opmaak FROM DUAL
UNION ALL
SELECT 'DOK3' opmaak FROM DUAL) e);
CREATE OR REPLACE VIEW hpji_v_ruimtekaartjes2
(
fclt_f_opmaak,
fclt_f_loc_code,
fclt_f_geb_code,
fclt_f_ver_code,
fclt_f_ruimte_nr,
hide_f_ruimte_key,
ruimtesoort
)
AS
SELECT DISTINCT fclt_f_opmaak,
fclt_f_loc_code,
fclt_f_geb_code,
fclt_f_ver_code,
fclt_f_ruimte_nr,
hide_f_ruimte_key,
ruimtesoort
FROM hpji_v_ruimtekaartjes
/
CREATE OR REPLACE VIEW hpji_v_label_ruimteafd
(
alg_ruimte_key,
waarde
)
AS
SELECT DISTINCT ra.alg_ruimte_key, a.prs_afdeling_naam1
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
UNION
SELECT DISTINCT r.alg_ruimte_key, '[Onbekend]' -- ruimten zonder afd.
FROM alg_v_aanwezigruimte r
WHERE NOT EXISTS
( -- waar geen afd. binnen bestaat
SELECT ra.alg_ruimte_key
FROM prs_v_aanwezigruimteafdeling ra
WHERE ra.alg_ruimte_key = r.alg_ruimte_key)
/
CREATE OR REPLACE VIEW hpji_v_label_ruimteafd_nr
(
alg_ruimte_key,
waarde
)
AS
SELECT DISTINCT ra.alg_ruimte_key, a.prs_afdeling_naam
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
UNION
SELECT DISTINCT r.alg_ruimte_key, '[Onbekend]' -- ruimten zonder afd.
FROM alg_v_aanwezigruimte r
WHERE NOT EXISTS
( -- waar geen afd. binnen bestaat
SELECT ra.alg_ruimte_key
FROM prs_v_aanwezigruimteafdeling ra
WHERE ra.alg_ruimte_key = r.alg_ruimte_key)
/
CREATE OR REPLACE VIEW hpji_v_label_ruimteafd_oms
(
alg_ruimte_key,
waarde
)
AS
SELECT DISTINCT ra.alg_ruimte_key, a.prs_afdeling_omschrijving
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
UNION
SELECT DISTINCT r.alg_ruimte_key, '[Onbekend]' -- ruimten zonder afd.
FROM alg_v_aanwezigruimte r
WHERE NOT EXISTS
( -- waar geen afd. binnen bestaat
SELECT ra.alg_ruimte_key
FROM prs_v_aanwezigruimteafdeling ra
WHERE ra.alg_ruimte_key = r.alg_ruimte_key)
/
CREATE OR REPLACE FORCE VIEW hpji_v_thema_ruimteafd
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT x.alg_ruimte_key,
DECODE (y.aantal,
NULL, '[Onbekend]',
1, SUBSTR (y.afd, 1, 60),
'Meer dan 1 afdeling!'),
DECODE (y.aantal, NULL, -1, 1, y.afd_key, NULL)
FROM (SELECT r.alg_ruimte_key
FROM alg_v_aanwezigruimte r) x
LEFT JOIN
( SELECT ra.alg_ruimte_key,
MIN (a.prs_afdeling_naam1) afd,
MIN (a.prs_afdeling_key) afd_key,
COUNT (ra.prs_afdeling_key) aantal
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
GROUP BY ra.alg_ruimte_key) y
ON x.alg_ruimte_key = y.alg_ruimte_key
UNION ALL
SELECT NULL, a.prs_afdeling_naam1, a.prs_afdeling_key
FROM prs_v_aanwezigafdeling a
WHERE NOT EXISTS
(SELECT ra.prs_afdeling_key
FROM prs_v_aanwezigruimteafdeling ra
WHERE ra.prs_afdeling_key = a.prs_afdeling_key)
/
CREATE OR REPLACE TRIGGER hpji_t_thema_ruimteafd_i_iu
INSTEAD OF INSERT OR UPDATE
ON hpji_v_thema_ruimteafd
BEGIN
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
THEN
DELETE FROM prs_ruimteafdeling
WHERE alg_ruimte_key = :new.alg_ruimte_key
AND prs_afdeling_key <> :new.waarde_key;
END IF;
BEGIN
IF :new.waarde_key <> -1
THEN
INSERT INTO prs_ruimteafdeling (alg_ruimte_key, prs_afdeling_key)
VALUES (:new.alg_ruimte_key, :new.waarde_key);
END IF;
EXCEPTION
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
THEN
NULL;
END;
END;
/
CREATE OR REPLACE FORCE VIEW hpji_v_thema_ruimteafd1
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT x.alg_ruimte_key,
DECODE (y.aantal,
NULL, '[Onbekend]',
1, SUBSTR (y.afd, 1, 60),
'Meer dan 1 afdeling!'),
DECODE (y.aantal, 1, y.afd_key, NULL)
FROM (SELECT r.alg_ruimte_key
FROM alg_v_aanwezigruimte r) x
LEFT JOIN
( SELECT ra.alg_ruimte_key,
MIN (a.prs_afdeling_naam1) afd,
MIN (a.prs_afdeling_key) afd_key,
COUNT (ra.prs_afdeling_key) aantal
FROM prs_v_aanwezigruimteafdeling ra,
prs_v_afdeling_boom b,
prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = b.prs_afdeling_key
AND b.prs_afdeling_key1 = a.prs_afdeling_key
GROUP BY ra.alg_ruimte_key) y
ON x.alg_ruimte_key = y.alg_ruimte_key
/
CREATE OR REPLACE VIEW hpji_v_thema_vloerafw
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT a.alg_ruimte_key,
COALESCE (b.vloerafw, '[Onbekend]'),
COALESCE (b.vloerafw_key, -1)
FROM (SELECT r.alg_ruimte_key
FROM alg_v_aanwezigruimte r) a
LEFT JOIN
(SELECT ok.alg_onrgoed_key,
ud.fac_usrdata_omschr vloerafw,
ud.fac_usrdata_key vloerafw_key
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
WHERE ok.alg_kenmerk_key = 1020 -- vloerafwerking
AND ok.alg_onrgoed_niveau = 'R'
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key) b
ON a.alg_ruimte_key = b.alg_onrgoed_key
UNION ALL
SELECT NULL,
ud.fac_usrdata_omschr vloerafw,
ud.fac_usrdata_key vloerafw_key
FROM fac_usrdata ud
WHERE ud.fac_usrtab_key = 21
AND NOT EXISTS
(SELECT 1
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_kenmerk_key = 1020 -- vloerafwerking
AND ok.alg_onrgoedkenmerk_waarde =
ud.fac_usrdata_key)
/
CREATE OR REPLACE TRIGGER hpji_t_thema_vloerafw_i_iu
INSTEAD OF INSERT OR UPDATE
ON hpji_v_thema_vloerafw
BEGIN
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
THEN
DELETE FROM alg_onrgoedkenmerk
WHERE alg_onrgoed_key = :new.alg_ruimte_key
AND alg_onrgoed_niveau = 'R'
AND alg_kenmerk_key = 1020
AND (alg_onrgoedkenmerk_waarde IS NULL -- IVET#73753/73776: Zou nooit NULL mogen zijn, maar was dat ergens wel!?
OR fac.safe_to_number (alg_onrgoedkenmerk_waarde) <> :new.waarde_key);
END IF;
BEGIN
IF :new.waarde_key <> -1
THEN
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
alg_onrgoed_niveau,
alg_kenmerk_key,
alg_onrgoedkenmerk_waarde)
VALUES (:new.alg_ruimte_key,
'R',
1020,
:new.waarde_key);
END IF;
EXCEPTION
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
THEN
NULL;
END;
END;
/
CREATE OR REPLACE VIEW hpji_v_thema_ruimtefunc
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT r.alg_ruimte_key ruimte_key,
COALESCE (sr.alg_srtruimte_omschrijving, '[Onbekend]') waarde,
COALESCE (sr.alg_srtruimte_key, -1) waarde_key
FROM alg_v_aanwezigruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
UNION ALL
SELECT NULL ruimte_key,
sr.alg_srtruimte_omschrijving waarde,
sr.alg_srtruimte_key waarde_key
FROM alg_srtruimte sr
WHERE NOT EXISTS
(SELECT 1
FROM alg_v_aanwezigruimte r
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key)
/
CREATE OR REPLACE TRIGGER hpji_t_thema_ruimtefunc_i_iu
INSTEAD OF UPDATE
ON hpji_v_thema_ruimtefunc
FOR EACH ROW
BEGIN
UPDATE alg_ruimte
SET alg_srtruimte_key = :new.waarde_key
WHERE alg_ruimte_key = :new.alg_ruimte_key
AND alg_srtruimte_key <> :new.waarde_key;
END;
/
CREATE OR REPLACE FORCE VIEW hpji_v_thema_legewp
(
alg_ruimte_key,
waarde
)
AS
SELECT x.prs_alg_ruimte_key, (100 - ROUND (wp_bez / wp_tot * 100)) leeg_p
FROM ( SELECT wp.prs_alg_ruimte_key, COUNT (*) wp_tot
FROM prs_werkplek wp
GROUP BY wp.prs_alg_ruimte_key) x
LEFT JOIN
( SELECT wp.prs_alg_ruimte_key, COUNT (*) wp_bez
FROM prs_werkplek wp
WHERE EXISTS
(SELECT 1
FROM prs_perslidwerkplek pw
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key)
GROUP BY wp.prs_alg_ruimte_key) y
ON x.prs_alg_ruimte_key = y.prs_alg_ruimte_key;
/
CREATE OR REPLACE FORCE VIEW hpji_v_thema_objecten
(
alg_ruimte_key,
waarde
)
AS
SELECT d.ins_alg_ruimte_key, COUNT (*) aantal
FROM ins_deel d
WHERE d.ins_alg_ruimte_type = 'R'
GROUP BY d.ins_alg_ruimte_key
/
CREATE OR REPLACE VIEW HPJI_V_RAP_OPROGNOSEACTIVITEIT
(
FCLT_F_SOORTACTIVITEIT,
FCLT_F_JAAR,
ACTIVITEITEN,
BUDGET
)
AS
SELECT mld_stdmelding_omschrijving,
TO_CHAR (mld_melding_datum, 'yyyy') fclt_f_jaar,
COUNT (mld_melding_key),
SUM (fac.safe_to_number (prijs)) budget
FROM fac_v_oprognosegegevens
GROUP BY mld_stdmelding_omschrijving, TO_CHAR (mld_melding_datum, 'yyyy');
CREATE OR REPLACE VIEW HPJI_V_RAP_OPROGNOSEGEBOUW
(
FCLT_F_GEBOUW,
FCLT_F_JAAR,
ACTIVITEITEN,
BUDGET
)
AS
SELECT op.alg_locatie_code
|| ' - '
|| g.alg_gebouw_code
|| ' / '
|| g.alg_gebouw_naam gebouw,
TO_CHAR (op.mld_melding_datum, 'yyyy') fclt_f_jaar,
COUNT (op.mld_melding_key),
SUM (fac.safe_to_number (op.prijs)) budget
FROM fac_v_oprognosegegevens op, alg_gebouw g
WHERE op.alg_gebouw_key = g.alg_gebouw_key
GROUP BY op.alg_locatie_code
|| ' - '
|| g.alg_gebouw_code
|| ' / '
|| g.alg_gebouw_naam,
TO_CHAR (op.mld_melding_datum, 'yyyy');
CREATE OR REPLACE FORCE VIEW HPJI_V_RAP_OPROGNOSEVOORTGANG
(
FCLT_F_GEBOUW,
FCLT_F_JAAR,
MELDINGNR,
SOORTACTIVITEIT,
ACTIVITEIT,
STATUS,
BUDGET
)
AS
SELECT alg_locatie_gebouw_naam gebouw,
TO_CHAR (mld_melding_datum, 'yyyy') fclt_f_jaar,
TO_CHAR (mld_melding_key) meldingnr,
mld_stdmelding_omschrijving,
mld_melding_omschrijving melding,
mld_statuses_omschrijving status,
fac.safe_to_number (prijs) budget
FROM fac_v_oprognosegegevens;
CREATE OR REPLACE VIEW hpji_v_inkoopdata
(
maand,
afgemeld_op,
soort_bestelling,
bestel_id,
status,
besteld_op,
besteld_bij,
commentaar,
kosten
)
AS
SELECT DISTINCT
DECODE (b.bes_bestelling_status,
6, TO_CHAR (bo.bes_bestelopdr_leverdatum, 'yyyy-mm'),
-- TO_CHAR (fac.gettrackingdate ('BESOTV', b.bes_bestelling_key),
-- 'yyyy-mm'),
'Lopend')
maand,
-- TO_CHAR (fac.gettrackingdate ('BESOTV', b.bes_bestelling_key),
-- 'dd-mm-yyyy')
TO_CHAR (bo.bes_bestelopdr_leverdatum, 'dd-mm-yyyy')
afgemeld_op,
'Catalogus',
TO_CHAR (b.bes_bestelling_key)
bestel_id,
s.bes_bestellingstatuses_omschr
status,
TO_CHAR (b.bes_bestelling_datum, 'dd-mm-yyyy')
besteld_op,
l.prs_bedrijf_naam,
bo.bes_bestelopdr_delivery_opmerk,
0
kosten
FROM bes_bestelling b,
bes_bestellingstatuses s,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_bestelopdr bo,
prs_bedrijf l
WHERE b.bes_bestelling_status = s.bes_bestellingstatuses_key
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key(+)
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
AND bo.prs_bedrijf_key = l.prs_bedrijf_key
UNION ALL
SELECT DECODE (
a.mld_statusopdr_key,
6, TO_CHAR (fac.gettrackingdate ('ORDAFM', a.mld_opdr_key),
'yyyy-mm'),
'Lopend')
maand,
TO_CHAR (fac.gettrackingdate ('ORDAFM', a.mld_opdr_key),
'dd-mm-yyyy')
afgemeld_op,
'Incidenteel',
a.bestel_id,
a.status,
TO_CHAR (a.besteld_op, 'dd-mm-yyyy'),
a.prs_bedrijf_naam,
DECODE (b.fac_usrdata_key,
41, b.ontvangststatus || CHR (13) || CHR (10),
42, b.ontvangststatus || CHR (13) || CHR (10),
43, b.ontvangststatus || CHR (13) || CHR (10),
'')
|| COALESCE (c.commentaar, ''),
a.kosten
FROM (SELECT o.mld_opdr_key,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
bestel_id,
o.mld_statusopdr_key,
s.mld_statusopdr_omschrijving
status,
o.mld_opdr_datumbegin
besteld_op,
o.mld_opdr_verzonden,
u.prs_bedrijf_naam,
o.mld_opdr_kosten
kosten
FROM mld_opdr o, mld_statusopdr s, prs_bedrijf u
WHERE o.mld_typeopdr_key = 182
AND o.mld_statusopdr_key = s.mld_statusopdr_key
AND o.mld_uitvoerende_keys = u.prs_bedrijf_key) a
LEFT JOIN
(SELECT ko.mld_opdr_key,
ud.fac_usrdata_key,
ud.fac_usrdata_omschr ontvangststatus
FROM mld_v_aanwezigkenmerkopdr ko, fac_usrdata ud
WHERE ko.mld_kenmerk_key = 1
AND fac.safe_to_number (ko.mld_kenmerkopdr_waarde) =
ud.fac_usrdata_key) b
ON a.mld_opdr_key = b.mld_opdr_key
LEFT JOIN
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde commentaar
FROM mld_v_aanwezigkenmerkopdr ko
WHERE ko.mld_kenmerk_key = 2) c
ON a.mld_opdr_key = c.mld_opdr_key;
CREATE OR REPLACE VIEW hpji_v_rap_inkoop_opm
(
fclt_f_maand,
hide_f_afgemeld_op,
fclt_f_soort_bestelling,
bestel_id,
status,
besteld_op,
fclt_f_leverancier,
klacht
)
AS
SELECT v.maand,
v.afgemeld_op,
v.soort_bestelling,
v.bestel_id,
v.status,
v.besteld_op,
v.besteld_bij,
v.commentaar
FROM hpji_v_inkoopdata v
WHERE v.maand = 'Lopend' OR v.commentaar IS NOT NULL;
CREATE OR REPLACE VIEW hpji_v_rap_inkoop_ppi
(
fclt_f_maand,
fclt_f_leverancier,
totaal_aantal,
klacht_aantal,
percentage
)
AS
SELECT sums.maand,
sums.besteld_bij,
sums.totaal_aant,
sums.klacht_aant,
REPLACE (
TO_CHAR (sums.klacht_aant / sums.totaal_aant * 100,
'999990D9'),
'.',
',')
|| '%'
FROM ( SELECT x.maand,
x.besteld_bij,
SUM (x.totaal_aant) totaal_aant,
SUM (x.klacht_aant) klacht_aant
FROM ( SELECT v.maand,
v.besteld_bij,
COUNT (*) totaal_aant,
0 klacht_aant
FROM hpji_v_inkoopdata v
WHERE v.maand <> 'Lopend'
GROUP BY v.maand, v.besteld_bij
UNION ALL
SELECT v.maand,
v.besteld_bij,
0 totaal_aant,
COUNT (*) klacht_aant
FROM hpji_v_inkoopdata v
WHERE v.maand <> 'Lopend' AND v.commentaar IS NOT NULL
GROUP BY v.maand, v.besteld_bij) x
GROUP BY x.maand, x.besteld_bij) sums
WHERE sums.totaal_aant > 0;
CREATE OR REPLACE VIEW hpji_v_noti_goederenontvangst
(
code,
sender,
receiver,
text,
KEY,
par1,
par2,
xkey
)
AS
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (
sn.fac_srtnotificatie_oms,
'##OPDR##',
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr),
o.mld_opdr_key,
NULL,
NULL,
NULL
FROM mld_opdr o,
mld_kenmerkopdr ko,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE o.mld_statusopdr_key IN (4, 5, 8) -- Gefiat./Uitgeg./Geaccept.
AND o.mld_typeopdr_key = 182
AND TRUNC (ko.mld_kenmerkopdr_aanmaak) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (ko.mld_kenmerkopdr_aanmaak, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND o.mld_opdr_key = ko.mld_opdr_key
AND ko.mld_kenmerk_key = 1 -- Ontvangststatus
AND ko.mld_kenmerkopdr_waarde IN ('41') -- Onjuist
AND sn.fac_srtnotificatie_code = 'CUST01'
AND gg.fac_groep_key = 81
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (
sn.fac_srtnotificatie_oms,
'##OPDR##',
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr),
o.mld_opdr_key,
NULL,
NULL,
NULL
FROM mld_opdr o,
mld_v_aanwezigkenmerkopdr ko1,
mld_v_aanwezigkenmerkopdr ko2,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE o.mld_statusopdr_key IN (4, 5, 8) -- Gefiat./Uitgeg./Geaccept.
AND o.mld_typeopdr_key = 182
AND TRUNC (fac.gettrackingdate ('ORDUPD', o.mld_opdr_key)) =
TRUNC (SYSDATE)
AND TO_NUMBER (
TO_CHAR (fac.gettrackingdate ('ORDUPD', o.mld_opdr_key),
'HH24'))
+ 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND o.mld_opdr_key = ko1.mld_opdr_key
AND ko1.mld_kenmerk_key = 1 -- Ontvangststatus
AND ko1.mld_kenmerkopdr_waarde IN ('42', '43') -- Retour/Goedgek.
AND o.mld_opdr_key = ko2.mld_opdr_key
AND ko2.mld_kenmerk_key = 101 -- Afleveradres
AND sn.fac_srtnotificatie_code = 'CUST01'
AND gg.fac_groep_key = 86
AND gg.prs_perslid_key IN
(SELECT pw.prs_perslid_key
FROM prs_perslidwerkplek pw,
prs_werkplek wp,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key =
DECODE (ko2.mld_kenmerkopdr_waarde,
'121', 2, -- Afleveradres GR
'122', 1, -- Afleveradres VH
NULL));
-- Bevat CUST02-reminders naar groepen bij aanmaken specifieke WF-meldingen:
-- Nieuwe Medewerker (NM), Vertrek Medewerker (VM) en Kleine Verhuizing (KV).
-- Periodiciteit: elk uur (mbt. in het voorgaande uur aangemaakte meldingen)!
CREATE OR REPLACE VIEW hpji_v_noti_wf_reminder
(
code,
sender,
receiver,
text,
KEY,
par1,
par2,
xkey
)
AS -- Systeembeheer=89
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (281, -- verzorgen netwerkacc.+appl.
288, -- toewijzen telefoonnr.
292, -- plaatsen PC+randapp.
300, -- deact. acc.+appl.
306 -- patchen netw.
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 89
UNION ALL -- PZ=93
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (282, -- opvoeren Persmaster
293, -- wijzigen Persmaster
297 -- innemen vervoersbewijs
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 93
UNION ALL -- Huisvesting=82
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (283, -- toewijzen werkplek
302 -- plannen kleine verhuzing
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 82
UNION ALL -- Applicatiebeheer=21
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (287, -- verzorgen spec. appl.
299 -- deactiveren spec. appl.
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 21
UNION ALL -- Managementassistentes=121
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (289, -- bestellen visitekaartjes
298 -- aankondigen vertrek
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 121
UNION ALL -- AD ontvangst en veiligheid=122
SELECT sn.fac_srtnotificatie_code,
NULL,
gg.prs_perslid_key,
REPLACE (sn.fac_srtnotificatie_oms,
'##STDM##',
sm.mld_stdmelding_omschrijving),
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
NULL,
NULL
FROM mld_melding m,
mld_stdmelding sm,
fac_srtnotificatie sn,
fac_gebruikersgroep gg
WHERE m.mld_melding_status IN (2, 3) -- Te behandelen!
AND TRUNC (m.mld_melding_datum) = TRUNC (SYSDATE)
AND TO_NUMBER (TO_CHAR (m.mld_melding_datum, 'HH24')) + 1 =
TO_NUMBER (TO_CHAR (SYSDATE, 'HH24'))
AND m.mld_stdmelding_key IN (285, -- verzorgen toegang+pieper
295 -- innemen toegang+pieper
)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sn.fac_srtnotificatie_code = 'CUST02'
AND gg.fac_groep_key = 122;
CREATE OR REPLACE VIEW hpji_v_ruimteaanduiding
(
ruimtekey,
ruimteaanduiding
)
AS
SELECT pa.alg_onroerendgoed_keys, pa.alg_plaatsaanduiding
FROM alg_v_plaatsaanduiding pa
WHERE pa.alg_onroerendgoed_type = 'R'
UNION ALL
SELECT -1, 'GR-000 (Onbekend)' FROM DUAL
UNION ALL
SELECT -1, 'VH-000 (Onbekend)' FROM DUAL;
CREATE OR REPLACE VIEW hpji_v_rap_ruimteoverzicht
(
fclt_f_locatie,
fclt_f_gebouw,
fclt_f_verdieping,
ruimtenr,
fclt_f_ruimtefunctie,
fclt_f_vloerafwerking,
fclt_f_specialisatie,
fclt_f_afdeling,
teken_opp
)
AS
(SELECT a.alg_locatie_code,
a.alg_gebouw_code,
a.alg_verdieping_code,
a.alg_ruimte_nr,
a.ruimtefunctie,
b.vloerafw,
c.specialisatie,
d.afdeling,
a.opp
FROM (SELECT r.alg_ruimte_key,
r.alg_ruimte_nr,
r.alg_ruimte_omschrijving,
v.alg_verdieping_code,
g.alg_gebouw_code,
l.alg_locatie_code,
sr.alg_srtruimte_omschrijving ruimtefunctie,
r.alg_ruimte_bruto_vloeropp opp
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_srtruimte sr
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)) a
LEFT JOIN
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr vloerafw
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
WHERE ok.alg_kenmerk_key = 1020 -- vloerafwerking
AND ok.alg_onrgoed_niveau = 'R'
AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key) b
ON a.alg_ruimte_key = b.alg_onrgoed_key
LEFT JOIN
(SELECT ra.alg_ruimte_key, a.prs_afdeling_naam1 specialisatie
FROM prs_v_aanwezigruimteafdeling ra,
prs_v_afdeling_boom b,
prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = b.prs_afdeling_key
AND b.prs_afdeling_key1 = a.prs_afdeling_key) c
ON a.alg_ruimte_key = c.alg_ruimte_key
LEFT JOIN
(SELECT ra.alg_ruimte_key, a.prs_afdeling_naam1 afdeling
FROM prs_v_aanwezigruimteafdeling ra, prs_v_aanwezigafdeling a
WHERE ra.prs_afdeling_key = a.prs_afdeling_key) d
ON a.alg_ruimte_key = d.alg_ruimte_key);
CREATE OR REPLACE VIEW hpji_v_rap_verplichtingen
(
bestel_id,
status,
omschrijving,
besteld_op,
fclt_f_leverancier,
ontvangststatus,
kosten
)
AS
SELECT a.bestel_id,
a.status,
a.mld_opdr_omschrijving,
TO_CHAR (a.besteld_op, 'dd-mm-yyyy'),
a.prs_bedrijf_naam,
DECODE (b.fac_usrdata_key,
41, b.ontvangststatus || CHR (13) || CHR (10),
42, b.ontvangststatus || CHR (13) || CHR (10),
43, b.ontvangststatus || CHR (13) || CHR (10),
'')
|| COALESCE (c.commentaar, ''),
a.kosten
FROM (SELECT o.mld_opdr_key,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
bestel_id,
o.mld_statusopdr_key,
s.mld_statusopdr_omschrijving
status,
o.mld_opdr_omschrijving,
o.mld_opdr_datumbegin
besteld_op,
o.mld_opdr_verzonden,
u.prs_bedrijf_naam,
o.mld_opdr_kosten
kosten
FROM mld_opdr o, mld_statusopdr s, prs_bedrijf u
WHERE o.mld_typeopdr_key = 182
AND o.mld_statusopdr_key <> 6
AND o.mld_statusopdr_key = s.mld_statusopdr_key
AND o.mld_uitvoerende_keys = u.prs_bedrijf_key) a
LEFT JOIN
(SELECT ko.mld_opdr_key,
ud.fac_usrdata_key,
ud.fac_usrdata_omschr ontvangststatus
FROM mld_v_aanwezigkenmerkopdr ko, fac_usrdata ud
WHERE ko.mld_kenmerk_key = 1
AND fac.safe_to_number (ko.mld_kenmerkopdr_waarde) =
ud.fac_usrdata_key) b
ON a.mld_opdr_key = b.mld_opdr_key
LEFT JOIN
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde commentaar
FROM mld_v_aanwezigkenmerkopdr ko
WHERE ko.mld_kenmerk_key = 2) c
ON a.mld_opdr_key = c.mld_opdr_key;
CREATE OR REPLACE FUNCTION hpji_res_deel_maandbez (p_reskey IN NUMBER,
yyyymm IN VARCHAR2)
RETURN NUMBER
IS
v_bez NUMBER;
v_van_date DATE;
v_van_uur NUMBER;
v_tot_date DATE;
v_tot_uur NUMBER;
v_loop_date DATE;
v_count NUMBER;
BEGIN
v_bez := 0;
SELECT TRUNC (res_rsv_deel_van),
DECODE (
SIGN (
((res_rsv_deel_van - TRUNC (res_rsv_deel_van)) * 24) - 8),
-1, 8,
DECODE (
SIGN (
((res_rsv_deel_van - TRUNC (res_rsv_deel_van)) * 24)
- 18),
-1, ((res_rsv_deel_van - TRUNC (res_rsv_deel_van)) * 24),
18)),
TRUNC (res_rsv_deel_tot),
DECODE (
SIGN (
((res_rsv_deel_tot - TRUNC (res_rsv_deel_tot)) * 24) - 8),
-1, 8,
DECODE (
SIGN (
((res_rsv_deel_tot - TRUNC (res_rsv_deel_tot)) * 24)
- 18),
-1, ((res_rsv_deel_tot - TRUNC (res_rsv_deel_tot)) * 24),
18))
INTO v_van_date,
v_van_uur,
v_tot_date,
v_tot_uur
FROM res_rsv_deel
WHERE res_rsv_deel_key = p_reskey;
IF (TO_CHAR (v_van_date, 'yyyy-mm') = yyyymm)
THEN
v_loop_date := v_van_date;
ELSE
v_loop_date := TO_DATE (yyyymm || '01', 'yyyy-mmdd');
END IF;
WHILE ( v_loop_date <= v_tot_date
AND TO_CHAR (v_loop_date, 'yyyy-mm') = yyyymm)
LOOP
SELECT COUNT (*)
INTO v_count
FROM mld_vrije_dagen
WHERE mld_vrije_dagen_datum = v_loop_date;
IF (v_count = 0 AND TO_CHAR (v_loop_date, 'd') NOT IN ('1', '7'))
THEN
CASE
WHEN v_van_date = v_tot_date
THEN
v_bez := v_bez + (v_tot_uur - v_van_uur);
WHEN v_loop_date = v_van_date
THEN
v_bez := v_bez + v_van_uur - 8;
WHEN v_loop_date = v_tot_date
THEN
v_bez := v_bez + v_tot_uur - 8;
ELSE
v_bez := v_bez + 10;
END CASE;
END IF;
v_loop_date := v_loop_date + 1;
END LOOP;
RETURN v_bez;
END;
/
CREATE OR REPLACE VIEW hpji_v_rap_res_deel_maandbez
(
fclt_f_maand,
fclt_f_catalogus,
fclt_f_voorziening,
gebruik,
beschikbaar,
bezetting
)
AS
SELECT a.maand,
a.catalogus,
a.voorziening,
a.gebruik,
b.beschikbaar,
REPLACE (TO_CHAR (a.gebruik / b.beschikbaar * 100, '990D9'),
'.',
',')
|| '%'
FROM ( SELECT hist.maand,
td.ins_discipline_omschrijving catalogus,
ins_d.ins_deel_omschrijving voorziening,
rd.res_deel_key,
SUM (
hpji_res_deel_maandbez (rd.res_rsv_deel_key,
hist.maand)) gebruik
FROM res_v_aanwezigrsv_deel rd,
res_deel res_d,
ins_deel ins_d,
ins_tab_discipline td,
(SELECT DISTINCT
TO_CHAR (res_rsv_deel_van, 'yyyy-mm') maand
FROM res_rsv_deel
WHERE TO_CHAR (res_rsv_deel_van, 'yyyymmdd') <
TO_CHAR (SYSDATE, 'yyyymm') || '01') hist
WHERE rd.res_deel_key = res_d.res_deel_key
AND res_d.res_ins_deel_key = ins_d.ins_deel_key
AND res_d.res_discipline_key = td.ins_discipline_key
AND TO_CHAR (rd.res_rsv_deel_van, 'yyyy-mm') <= hist.maand
AND TO_CHAR (rd.res_rsv_deel_tot, 'yyyy-mm') >= hist.maand
GROUP BY hist.maand,
td.ins_discipline_omschrijving,
ins_d.ins_deel_omschrijving,
rd.res_deel_key) a
LEFT JOIN
(SELECT hist.maand,
fac.count_work_days (
TO_DATE (hist.maand || '01', 'yyyy-mmdd'),
LAST_DAY (
TO_DATE (hist.maand || '01', 'yyyy-mmdd'))
+ 1)
* 10 beschikbaar
FROM (SELECT DISTINCT
TO_CHAR (res_rsv_deel_van, 'yyyy-mm') maand
FROM res_rsv_deel
WHERE TO_CHAR (res_rsv_deel_van, 'yyyymmdd') <
TO_CHAR (SYSDATE, 'yyyymm') || '01') hist) b
ON a.maand = b.maand;
CREATE OR REPLACE VIEW hpji_v_rap_it_inventaris_jaar
(
hide_f_regel,
fclt_f_onderdeel,
fclt_f_rubriek,
fclt_f_aanschafjaar,
aantal
)
AS
SELECT grid.onderdeel || '-' || grid.rubriek regel,
grid.onderdeel,
grid.rubriek,
grid.jaar,
COALESCE (x.aantal, 0)
FROM (SELECT a.prs_afdeling_key onderdeel_key,
sd.ins_srtdeel_key rubriek_key,
j.jaar jaar,
a.prs_afdeling_omschrijving onderdeel,
sd.ins_srtdeel_omschrijving rubriek
FROM (SELECT prs_afdeling_key, prs_afdeling_omschrijving
FROM prs_v_aanwezigafdeling
WHERE prs_afdeling_parentkey IS NULL
UNION ALL
SELECT -1 prs_afdeling_key,
'Onbekend' prs_afdeling_omschrijving
FROM DUAL) a,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigsrtgroep sg,
(SELECT DISTINCT
TO_CHAR (
fac.safe_to_date (ins_kenmerkdeel_waarde,
'dd-mm-yyyy'),
'yyyy') jaar
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_kenmerk_key = 101) j -- Aanschafdatum
WHERE sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = 401) grid -- Hardware
LEFT JOIN
( SELECT asd.prs_afdeling_key1 onderdeel_key,
asd.ins_srtdeel_key rubriek_key,
j.jaar jaar,
COUNT (*) aantal
FROM (SELECT DECODE (ra.aantal, 1, ab.prs_afdeling_key1, -1)
prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
alg_v_allonrgoed_gegevens aog,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key)
prs_afdeling_key,
COUNT (*)
aantal
FROM prs_ruimteafdeling
GROUP BY alg_ruimte_key) ra,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type NOT IN ('A', 'P', 'W')
AND d.ins_alg_ruimte_key =
aog.alg_onroerendgoed_keys
AND aog.alg_ruimte_key = ra.alg_ruimte_key
AND ra.prs_afdeling_key = ab.prs_afdeling_key
UNION ALL
SELECT -1 prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
alg_v_allonrgoed_gegevens aog
WHERE d.ins_alg_ruimte_type NOT IN ('A', 'P', 'W')
AND d.ins_alg_ruimte_key =
aog.alg_onroerendgoed_keys
AND ( aog.alg_ruimte_key IS NULL
OR NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key =
aog.alg_ruimte_key))
UNION ALL
SELECT ab.prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d, prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'A'
AND d.ins_alg_ruimte_key = ab.prs_afdeling_key
UNION ALL
SELECT ab.prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
prs_perslid p,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
UNION ALL
SELECT DECODE (ra.aantal, 1, ab.prs_afdeling_key1, -1)
prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
prs_werkplek w,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key)
prs_afdeling_key,
COUNT (*)
aantal
FROM prs_ruimteafdeling
GROUP BY alg_ruimte_key) ra,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = ra.alg_ruimte_key
AND ra.prs_afdeling_key = ab.prs_afdeling_key
UNION ALL
SELECT -1 prs_afdeling_key1,
d.ins_srtdeel_key,
d.ins_deel_key
FROM ins_v_aanwezigdeel d, prs_werkplek w
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key = w.prs_werkplek_key
AND NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key =
w.prs_alg_ruimte_key)) asd
LEFT JOIN
(SELECT ins_deel_key,
TO_CHAR (
fac.safe_to_date (ins_kenmerkdeel_waarde,
'dd-mm-yyyy'),
'yyyy') jaar
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_kenmerk_key = 101) j -- Aanschafdatum
ON asd.ins_deel_key = j.ins_deel_key
GROUP BY asd.prs_afdeling_key1, asd.ins_srtdeel_key, j.jaar) x
ON grid.onderdeel_key = x.onderdeel_key
AND grid.rubriek_key = x.rubriek_key
AND grid.jaar = x.jaar;
CREATE OR REPLACE VIEW HPJI_V_RAP_CNT_HUURCONTRACT
(
CNT_CONTRACT_KEY,
CNT_CONTRACT_NUMMER,
CNT_CONTRACT_NUMMER_INTERN,
CNT_CONTRACT_VERSIE,
ALG_LOCATIE_KEY,
ALG_LOCATIE_OMSCHRIJVING,
ALG_LOCATIE_ADRES,
ALG_LOCATIE_POSTCODE,
ALG_LOCATIE_PLAATS,
ALG_GEBOUW_KEY,
ALG_GEBOUW_CODE,
ALG_GEBOUW_NAAM,
PRS_KOSTENPLAATS_NR_GEB,
PRS_KOSTENPLAATS_OMS_GEB,
CNT_CONTRACT_OPMERKING,
CONTRACTPARTIJ,
CNT_CONTRACT_LOOPTIJD_VAN,
CNT_RAPPELDATUM,
CNT_OPZEGDATUM,
CNT_CONTRACT_LOOPTIJD_TOT,
FASE_ACTIEF,
CNT_CONTRACT_STATUS,
KOSTEN,
CNT_CONTRACT_TERMIJNKOSTEN,
FACTUURTERMIJN,
JAARKOSTEN,
CNT_CONTRACT_KORTING,
BEDDEN,
ZORGSOORT,
BEHEERDER,
KALE_HUUR_MAAND,
NAAM_HUURDER_GEB_DAT,
TUIN,
MAINENERGIE,
WATERBEDRIJF,
ZIGGO,
TOTALGAS
)
AS
SELECT c.cnt_contract_key,
cnt_contract_nummer,
cnt_contract_nummer_intern,
cnt_contract_versie,
alg_locatie_key,
cp.alg_locatie_omschrijving,
alg_locatie_adres,
alg_locatie_postcode,
alg_locatie_plaats,
alg_gebouw_key,
alg_gebouw_code,
alg_gebouw_naam,
pk.prs_kostenplaats_nr,
pk.prs_kostenplaats_omschrijving,
cnt_contract_opmerking,
COALESCE (prs_bedrijf_naam, pf1.prs_perslid_naam_full)
contractpartij,
cnt_contract_looptijd_van,
cnt.cnt_getrappeldatum (c.cnt_contract_key)
cnt_rappeldatum,
cnt.cnt_getopzegdatum (c.cnt_contract_key)
cnt_opzegdatum,
cnt_contract_looptijd_tot,
DECODE (cnt.cnt_contract_status (
c.cnt_contract_looptijd_van,
cnt.cnt_getrappeldatum (c.cnt_contract_key),
cnt.cnt_getopzegdatum (c.cnt_contract_key),
c.cnt_contract_looptijd_tot),
0, lcl.l ('lcl_cnt_future'),
1, lcl.l ('lcl_cnt_topical'),
2, lcl.l ('lcl_cnt_warn'),
3, lcl.l ('lcl_cnt_cancel'),
4, lcl.l ('lcl_cnt_past'))
fase_actief,
DECODE (
c.cnt_contract_status,
0, DECODE (fac.getsetting ('cnt_contract_approval'),
1, lcl.l ('lcl_cnt_active_approval'),
lcl.l ('lcl_cnt_active')),
1, lcl.l ('lcl_cnt_inactive'),
2, lcl.l ('lcl_cnt_new'),
3, lcl.l ('lcl_cnt_forapproval'))
cnt_contract_status,
ROUND (
DECODE (
fac.getsetting ('cnt_scopeverdeling'),
1, cp.cnt_contract_plaats_gewicht,
0, COALESCE (cp.cnt_contract_plaats_gewicht, 1)
* c.cnt_contract_kosten
/ (SELECT DECODE (
SUM (
COALESCE (
cnt_contract_plaats_gewicht,
0)),
0, 1,
SUM (cnt_contract_plaats_gewicht))
FROM cnt_contract_plaats ccp
WHERE ccp.cnt_contract_key = cnt_contract_key),
c.cnt_contract_kosten),
2)
kosten,
c.cnt_contract_termijnkosten,
(SELECT lcl.x ('cnt_termijn_omschrijving',
cnt_termijn_key,
cnt_termijn_omschrijving)
FROM cnt_termijn
WHERE cnt_termijn_key = c.cnt_contract_termijntermijn)
factuurtermijn,
DECODE (
cnt.termijnjaarfactor (c.cnt_contract_termijntermijn),
-1, TO_NUMBER (NULL),
cnt.termijnjaarfactor (c.cnt_contract_termijntermijn)
* cnt_contract_termijnkosten)
jaarkosten,
c.cnt_contract_korting,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract ck
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 281)
bedden,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 241
AND ud.fac_usrtab_key = 385
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
zorgsoort,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 301
AND ud.fac_usrtab_key = 541
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
beheerder,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract ck
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 341)
kale_huur_maand,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract ck
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 342)
naam_huurder_geb_dat,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 423
AND ud.fac_usrtab_key = 643
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
tuin,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 421
AND ud.fac_usrtab_key = 641
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
mainenergie,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 422
AND ud.fac_usrtab_key = 642
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
waterbedrijf,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 561
AND ud.fac_usrtab_key = 681
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
ziggo,
(SELECT fac_usrdata_omschr
FROM cnt_kenmerkcontract ck, fac_usrdata ud
WHERE cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerk_key = 581
AND ud.fac_usrtab_key = 81
AND cnt_kenmerkcontract_waarde = fac_usrdata_key)
totalgas
FROM cnt_contract c,
(SELECT cp_1.cnt_contract_key,
l.alg_locatie_key,
l.alg_locatie_omschrijving,
l.alg_locatie_code,
l.alg_locatie_adres,
l.alg_locatie_postcode,
l.alg_locatie_plaats,
g.alg_gebouw_key,
g.alg_gebouw_code,
g.alg_gebouw_naam,
g.prs_kostenplaats_key,
cp_1.cnt_contract_plaats_gewicht
FROM cnt_contract_plaats cp_1, alg_gebouw g, alg_locatie l
WHERE cp_1.cnt_contract_plaats_verwijder IS NULL
AND cp_1.cnt_alg_plaats_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND cp_1.cnt_alg_plaats_code = 'G'
UNION ALL
SELECT cp_2.cnt_contract_key,
l.alg_locatie_key,
l.alg_locatie_omschrijving,
l.alg_locatie_code,
l.alg_locatie_adres,
l.alg_locatie_postcode,
l.alg_locatie_plaats,
NULL,
NULL,
NULL,
NULL,
cp_2.cnt_contract_plaats_gewicht
FROM cnt_contract_plaats cp_2, alg_locatie l
WHERE cp_2.cnt_contract_plaats_verwijder IS NULL
AND cp_2.cnt_alg_plaats_key = l.alg_locatie_key
AND cp_2.cnt_alg_plaats_code = 'L') cp,
prs_bedrijf b,
prs_v_perslid_fullnames_all pf1,
prs_kostenplaats pk
WHERE c.ins_discipline_key = 1101
AND c.cnt_contract_verwijder IS NULL
AND c.cnt_contract_key = cp.cnt_contract_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND c.cnt_prs_perslid_key = pf1.prs_perslid_key(+)
AND cp.prs_kostenplaats_key = pk.prs_kostenplaats_key(+);
CREATE OR REPLACE VIEW hpji_v_rap_it_inventaris_stuk
(
fclt_f_onderdeel,
fclt_f_rubriek,
obj_id,
fclt_f_merk,
fclt_f_model,
fclt_d_aanschafdatum,
fclt_f_vestiging,
ruimte_nr,
ruimte_oms
)
AS
SELECT a.prs_afdeling_omschrijving,
sd.ins_srtdeel_omschrijving,
asd.ins_deel_omschrijving,
x.merk,
y.model,
TO_CHAR (z.datum, 'dd-mm-yyyy'),
asd.vestiging,
asd.ruimte_nr,
asd.ruimte_oms
FROM (SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
DECODE (rv.aantal, 1, rv.prs_afdeling_key1, -1)
prs_afdeling_key1,
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
vestiging,
aog.alg_ruimte_nr
ruimte_nr,
aog.alg_ruimte_omschrijving
ruimte_oms
FROM ins_v_aanwezigdeel d,
alg_v_allonrgoed_gegevens aog,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key1) prs_afdeling_key1,
COUNT (*) aantal
FROM prs_ruimteafdeling ra, prs_v_afdeling_boom ab
WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
GROUP BY ra.alg_ruimte_key) rv
WHERE d.ins_alg_ruimte_type NOT IN ('A', 'P', 'W')
AND d.ins_alg_ruimte_key = aog.alg_onroerendgoed_keys
AND aog.alg_ruimte_key = rv.alg_ruimte_key
UNION ALL
SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
-1
prs_afdeling_key1,
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
vestiging,
aog.alg_ruimte_nr
ruimte_nr,
aog.alg_ruimte_omschrijving
ruimte_oms
FROM ins_v_aanwezigdeel d, alg_v_allonrgoed_gegevens aog
WHERE d.ins_alg_ruimte_type NOT IN ('A', 'P', 'W')
AND d.ins_alg_ruimte_key = aog.alg_onroerendgoed_keys
AND ( aog.alg_ruimte_key IS NULL
OR NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key = aog.alg_ruimte_key))
UNION ALL
SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
ab.prs_afdeling_key1,
'Onbekend',
NULL ruimte_nr,
NULL ruimte_oms
FROM ins_v_aanwezigdeel d, prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'A'
AND d.ins_alg_ruimte_key = ab.prs_afdeling_key
UNION ALL
SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
ab.prs_afdeling_key1,
'Onbekend',
NULL ruimte_nr,
NULL ruimte_oms
FROM ins_v_aanwezigdeel d,
prs_perslid p,
prs_v_afdeling_boom ab
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
UNION ALL
SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
DECODE (rv.aantal, 1, rv.prs_afdeling_key1, -1)
prs_afdeling_key1,
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
vestiging,
aog.alg_ruimte_nr
ruimte_nr,
aog.alg_ruimte_omschrijving
ruimte_oms
FROM ins_v_aanwezigdeel d,
prs_werkplek w,
( SELECT alg_ruimte_key,
MAX (prs_afdeling_key1) prs_afdeling_key1,
COUNT (*) aantal
FROM prs_ruimteafdeling ra, prs_v_afdeling_boom ab
WHERE ra.prs_afdeling_key = ab.prs_afdeling_key
GROUP BY ra.alg_ruimte_key) rv,
alg_v_allonrgoed_gegevens aog
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = rv.alg_ruimte_key
AND rv.alg_ruimte_key = aog.alg_ruimte_key
UNION ALL
SELECT d.ins_srtdeel_key,
d.ins_deel_key,
d.ins_deel_omschrijving,
-1
prs_afdeling_key1,
aog.alg_gebouw_code || ' - ' || aog.alg_gebouw_naam
vestiging,
aog.alg_ruimte_nr
ruimte_nr,
aog.alg_ruimte_omschrijving
ruimte_oms
FROM ins_v_aanwezigdeel d,
prs_werkplek w,
alg_v_allonrgoed_gegevens aog
WHERE d.ins_alg_ruimte_type = 'W'
AND d.ins_alg_ruimte_key = w.prs_werkplek_key
AND NOT EXISTS
(SELECT 1
FROM prs_ruimteafdeling ra
WHERE ra.alg_ruimte_key = w.prs_alg_ruimte_key)
AND w.prs_alg_ruimte_key = aog.alg_ruimte_key) asd,
ins_srtdeel sd,
ins_srtgroep sg,
(SELECT prs_afdeling_key, prs_afdeling_omschrijving
FROM prs_v_aanwezigafdeling
WHERE prs_afdeling_parentkey IS NULL
UNION ALL
SELECT -1 prs_afdeling_key, 'Onbekend' prs_afdeling_omschrijving
FROM DUAL) a,
(SELECT ins_deel_key, ins_kenmerkdeel_waarde merk
FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 21) x, -- Merk
(SELECT ins_deel_key, ins_kenmerkdeel_waarde model
FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 22) y, -- Model
(SELECT ins_deel_key,
fac.safe_to_date (ins_kenmerkdeel_waarde, 'dd-mm-yyyy') datum
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_kenmerk_key = 101) z -- Aanschafdatum
WHERE asd.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = 401 -- Hardware
AND asd.prs_afdeling_key1 = a.prs_afdeling_key
AND asd.ins_deel_key = x.ins_deel_key(+)
AND asd.ins_deel_key = y.ins_deel_key(+)
AND asd.ins_deel_key = z.ins_deel_key(+);
-- HPJI#28971 Geleverde bestellingen bloemen automatisch afmelden
CREATE OR REPLACE PROCEDURE hpji_export_bes_afmeld (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
-- De bestelopdrachten die ik als compleet geleverd veronderstel,
-- die zouden in principe meer werkdagen geleden geleverd zijn dan
-- de 'notidagen' van de catalogus aangeeft.
-- bes_discipline 201 Bloemen Groningen
-- bes_discipline 202 Bloemen Veenhuizen
CURSOR cbopi IS
SELECT boi.bes_bestelopdr_item_key,
bo.bes_bestelopdr_key,
b.bes_bestelling_key
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_bestelling b,
bes_srtdeel sd,
bes_srtgroep sg,
bes_disc_params bdp
WHERE bo.bes_bestelopdr_status = 4 -- In bestelling
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = bdp.bes_ins_discipline_key
AND sg.ins_discipline_key IN (201, 202)
AND bdp.bes_disc_params_noti_dagen IS NOT NULL
AND ( b.bes_bestelling_leverdatum IS NULL
OR fac.datumtijdplusuitvoertijd (
b.bes_bestelling_leverdatum,
bdp.bes_disc_params_noti_dagen,
'DAGEN') <
SYSDATE);
-- Alle bestelaanvragen die (nu) geheel geleverd zijn sluiten we af.
CURSOR cbesi IS
SELECT bi.bes_bestelling_item_key, b.bes_bestelling_key
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_srtdeel sd,
bes_srtgroep sg
WHERE b.bes_bestelling_status = 5 -- Besteld
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_item_aantal =
boi.bes_bestelopdr_item_aantalontv
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key IN (201, 202);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
FOR r IN cbopi
LOOP
-- Zeg dat alles geleverd is wat besteld is.
UPDATE bes_bestelopdr_item
SET bes_bestelopdr_item_aantalontv = bes_bestelopdr_item_aantal
WHERE bes_bestelopdr_item_key = r.bes_bestelopdr_item_key;
bes.updatebestelopdrstatus (r.bes_bestelopdr_key, NULL);
END LOOP;
FOR r IN cbesi
LOOP
-- Sluit alle aanvraagregels af die nu geheel geleverd zijn.
UPDATE bes_bestelling_item
SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal
WHERE bes_bestelling_item_key = r.bes_bestelling_item_key;
bes.updatebestellingstatus (r.bes_bestelling_key, NULL);
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
ROLLBACK;
v_errormsg :=
'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.writelog (p_applname,
'E',
'Proces afmelden bestellingen afgebroken!',
v_errormsg);
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE hpji_import_prs (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
v_aantal_in_FCLT NUMBER;
BEGIN
v_errorhint := 'Generieke update';
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;7;2;3;5;'
|| '4;0;0;0;0;11;12;13;0;6;'
|| '8;1;0;0;0;0;14;15;16;0;'
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
'Loginnaam;Naam;Tussenvoegsel;Voorletters;Voornaam;Personeelsnummer;Afdelingscode;Functie;Locatie;Ruimte;Telefoon;Mobiel;Email;Datum in dienst;Datum uit dienst;Domain%');
-- op basis van het bedrijf wordt straks de autorisatie groep bepaald
-- het bedrijf dus maar vast bepalen
UPDATE fac_imp_perslid i
SET prs_kenmerk5 =
(SELECT DISTINCT b.prs_bedrijf_key
FROM prs_v_afdeling a, prs_bedrijf b
WHERE UPPER (i.prs_afdeling_naam) = a.prs_afdeling_upper
AND a.prs_bedrijf_key = b.prs_bedrijf_key);
-- Zie #55445: personen met een alternatieve inlogcode moeten worden uitgesloten van bijwerken
-- Deze worden dus uit de importtabel verwijderd, tenzij ze een einddatum hebben in het verleden, dan moeten ze wel netjes be<62>indigd worden
DELETE fac_imp_perslid
WHERE fac.safe_to_date (prs_kenmerk2, 'dd-mm-yyyy') > SYSDATE
AND UPPER (prs_perslid_oslogin) IN
(SELECT UPPER (prs_perslid_oslogin)
FROM prs_perslid p
WHERE p.prs_perslid_oslogin2 IS NOT NULL);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
END hpji_import_prs;
/
CREATE OR REPLACE PROCEDURE hpji_update_prs (p_import_key IN NUMBER)
IS
-- Alle personen verwijderen die in het import import bestand voorkomen met een einddatum < vandaag
-- Personen in de juiste autorisatiegroep zetten.
-- Match bij HPJI is oslogin, hieronder de query om alle personen te verwijderen die:
CURSOR c_del IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
FROM fac_imp_perslid i,
prs_perslid p,
prs_v_perslid_fullnames_all pf
WHERE UPPER (p.prs_perslid_oslogin) =
UPPER (i.prs_perslid_oslogin)
AND pf.prs_perslid_key = p.prs_perslid_key
AND i.prs_kenmerk2 IS NOT NULL
AND fac.safe_to_date (i.prs_kenmerk2, 'dd-mm-yyyy') < SYSDATE;
v_count NUMBER;
BEGIN
-- generic update
-- 'LOGIN' betekent dat op basis van Login wordt gematched.
-- 'NR' betekent dat op basis van Personeelsnummer wordt gematched.
-- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen
prs.update_perslid (p_import_key, 'LOGIN', NULL);
hpji_post_update_perslid (p_import_key);
-- Verwijder personen die niet meer in de import voorkomen.
FOR rec IN c_del
LOOP
BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
END hpji_update_prs;
/
CREATE OR REPLACE PROCEDURE hpji_post_update_perslid (p_import_key IN NUMBER)
AS
--- #72210 alle persleden moeten in de autorisatiegroep Basis Elker (1) als ze daar nog niet in zitten
--- Alle medewerkers moeten het Default profiel krijgen
--- #73431 medewerkers met kostenplaats 960101, 960201, 960301 of 960401 moeten alleen in Basis Portalis komen
--- Dus die sluiten we hier uit (kostenplaats = afdelingscode)
CURSOR c_auth_default IS
SELECT DISTINCT prs_perslid_key
FROM fac_imp_perslid
WHERE fac_import_key = p_import_key
AND prs_afdeling_naam NOT IN ('960101', '960201', '960301', '960401')
AND prs_perslid_key IS NOT NULL
AND prs_perslid_key NOT IN (SELECT prs_perslid_key
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1);
--- #73431 medewerkers met kostenplaats 960101, 960201, 960301 of 960401 moeten in Basis Portalis (1541) komen
--- en eventueel verwijderd worden uit de groep Basis Elker
CURSOR c_auth_portalis IS
SELECT DISTINCT prs_perslid_key
FROM fac_imp_perslid
WHERE fac_import_key = p_import_key
AND prs_afdeling_naam IN ('960101', '960201', '960301', '960401')
AND prs_perslid_key IS NOT NULL
AND prs_perslid_key NOT IN (SELECT prs_perslid_key
FROM fac_gebruikersgroep
WHERE fac_groep_key = 1541);
--- #72210 alle persleden het Default profiel krijgen als ze dat nog niet hebben
CURSOR c_fin_default IS
SELECT DISTINCT prs_perslid_key
FROM fac_imp_perslid
WHERE fac_import_key = p_import_key
AND prs_perslid_key IS NOT NULL
AND prs_perslid_key NOT IN (SELECT prs_perslid_key
FROM prs_perslid );
v_portalis NUMBER;
BEGIN
SELECT fac_groep_key
INTO v_portalis
FROM fac_groep
WHERE fac_groep_upper = 'BASIS PORTALIS';
-- plaats personen in de juiste autorisatie groepen
FOR rec IN c_auth_default
LOOP
BEGIN
INSERT INTO FAC_GEBRUIKERSGROEP (prs_perslid_key, fac_groep_key)
VALUES (rec.prs_perslid_key, 1);
END;
END LOOP;
IF v_portalis IS NOT NULL
THEN
FOR rec IN c_auth_portalis
LOOP
BEGIN
INSERT INTO FAC_GEBRUIKERSGROEP (prs_perslid_key, fac_groep_key)
VALUES (rec.prs_perslid_key, v_portalis);
DELETE FAC_GEBRUIKERSGROEP
WHERE prs_perslid_key = rec.prs_perslid_key
AND fac_groep_key = 1;
END;
END LOOP;
END IF;
FOR rec IN c_fin_default
LOOP
BEGIN
UPDATE prs_perslid p
SET p.fac_profiel_key = 1
WHERE p.prs_perslid_key = rec.prs_perslid_key;
END;
END LOOP;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE hpji_import_organisatie (p_import_key IN NUMBER)
AS
BEGIN
FAC_IMPORT_ORGANISATIE (p_import_key);
END hpji_import_organisatie;
/
CREATE OR REPLACE PROCEDURE hpji_update_organisatie (p_import_key IN NUMBER)
IS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_count NUMBER (10);
v_ongeldig NUMBER (1);
v_count_update NUMBER (10);
v_count_error NUMBER (10);
v_count_tot NUMBER (10);
--
v_bedrijf_key NUMBER (10);
v_kostenplaats_key NUMBER (10);
v_prs_afdeling_parentkey NUMBER (10);
CURSOR cBedrijf IS
SELECT MIN (prs_bedrijf_naam) prs_bedrijf_naam
FROM fac_imp_organisatie
WHERE prs_bedrijf_naam IS NOT NULL
GROUP BY UPPER (prs_bedrijf_naam);
recBedrijf cBedrijf%ROWTYPE;
-- Bij 1-op-1 relatie tussen kostenplaats en afdeling de kostenplaatsomschrijving zetten op
-- de afdelingsomschrijving, ander de kostenplaatsomschrijving leeg laten.
CURSOR cKPN IS
SELECT MIN (prs_kostenplaats_nr)
prs_kostenplaats_nr,
DECODE (COUNT (*), 1, MAX (prs_afdeling_omschrijving), '')
prs_kostenplaats_omschrijving,
'PRS'
prs_kostenplaats_module
FROM FAC_IMP_ORGANISATIE
WHERE prs_kostenplaats_nr IS NOT NULL
GROUP BY UPPER (prs_kostenplaats_nr);
recKPN cKpn%ROWTYPE;
CURSOR cAfdeling1 IS
SELECT MIN (prs_bedrijf_naam)
prs_bedrijf_naam,
UPPER (prs_bedrijf_naam)
prs_bedrijf_naam_upper,
MIN (prs_afdeling_naam)
prs_afdeling_naam,
UPPER (prs_afdeling_naam)
prs_afdeling_upper,
MAX (prs_afdeling_omschrijving)
prs_afdeling_omschrijving,
MIN (prs_afdeling_naam_parent)
prs_afdeling_naam_parent,
MIN (UPPER (prs_afdeling_naam_parent))
prs_afdeling_naam_parent_upper,
MAX (prs_kostenplaats_nr)
prs_kostenplaats_nr,
MAX (UPPER (prs_kostenplaats_nr))
prs_kostenplaats_upper,
NIVEAU
FROM (SELECT 1 NIVEAU,
a1.prs_bedrijf_naam,
a1.prs_afdeling_naam,
a1.prs_afdeling_omschrijving,
a1.prs_kostenplaats_nr,
'' PRS_AFDELING_NAAM_PARENT
FROM FAC_IMP_ORGANISATIE a1
WHERE a1.prs_afdeling_naam_parent IS NULL
UNION ALL
SELECT 2,
a2.prs_bedrijf_naam,
a2.prs_afdeling_naam,
a2.prs_afdeling_omschrijving,
a2.prs_kostenplaats_nr,
a1.prs_afdeling_naam
FROM FAC_IMP_ORGANISATIE a1, FAC_IMP_ORGANISATIE a2
WHERE a2.prs_afdeling_naam_parent = a1.prs_afdeling_naam
AND a1.prs_afdeling_naam_parent IS NULL
UNION ALL
SELECT 3,
a3.prs_bedrijf_naam,
a3.prs_afdeling_naam,
a3.prs_afdeling_omschrijving,
a3.prs_kostenplaats_nr,
a2.prs_afdeling_naam
FROM FAC_IMP_ORGANISATIE a1,
FAC_IMP_ORGANISATIE a2,
FAC_IMP_ORGANISATIE a3
WHERE a3.prs_afdeling_naam_parent = a2.prs_afdeling_naam
AND a2.prs_afdeling_naam_parent = a1.prs_afdeling_naam
AND a1.prs_afdeling_naam_parent IS NULL
UNION ALL
SELECT 4,
a4.prs_bedrijf_naam,
a4.prs_afdeling_naam,
a4.prs_afdeling_omschrijving,
a4.prs_kostenplaats_nr,
a3.prs_afdeling_naam
FROM FAC_IMP_ORGANISATIE a1,
FAC_IMP_ORGANISATIE a2,
FAC_IMP_ORGANISATIE a3,
FAC_IMP_ORGANISATIE a4
WHERE a4.prs_afdeling_naam_parent = a3.prs_afdeling_naam
AND a3.prs_afdeling_naam_parent = a2.prs_afdeling_naam
AND a2.prs_afdeling_naam_parent = a1.prs_afdeling_naam
AND a1.prs_afdeling_naam_parent IS NULL
UNION ALL
SELECT 5,
a5.prs_bedrijf_naam,
a5.prs_afdeling_naam,
a5.prs_afdeling_omschrijving,
a5.prs_kostenplaats_nr,
a4.prs_afdeling_naam
FROM FAC_IMP_ORGANISATIE a1,
FAC_IMP_ORGANISATIE a2,
FAC_IMP_ORGANISATIE a3,
FAC_IMP_ORGANISATIE a4,
FAC_IMP_ORGANISATIE a5
WHERE a5.prs_afdeling_naam_parent = a4.prs_afdeling_naam
AND a4.prs_afdeling_naam_parent = a3.prs_afdeling_naam
AND a3.prs_afdeling_naam_parent = a2.prs_afdeling_naam
AND a2.prs_afdeling_naam_parent = a1.prs_afdeling_naam
AND a1.prs_afdeling_naam_parent IS NULL)
WHERE ( (prs_bedrijf_naam IS NOT NULL)
AND (prs_afdeling_naam IS NOT NULL)) -- geen lege regels
GROUP BY UPPER (prs_bedrijf_naam), UPPER (prs_afdeling_naam), NIVEAU
ORDER BY NIVEAU;
recAfdeling1 cAfdeling1%ROWTYPE;
BEGIN
OPEN cBedrijf;
v_count_update := 0;
v_count_tot := 0;
v_count_error := 0;
IF cBedrijf%ISOPEN
THEN
LOOP
BEGIN
FETCH cBedrijf INTO recBedrijf;
EXIT WHEN cBedrijf%NOTFOUND;
v_count_tot := v_count_tot + 1;
v_aanduiding := recBedrijf.PRS_BEDRIJF_NAAM || '| ';
v_errormsg := '';
v_errorhint := '';
v_errorhint := 'Kijken of bedrijf al bestaat';
SELECT COUNT (*)
INTO v_count
FROM prs_bedrijf
WHERE UPPER (prs_bedrijf_naam_upper) =
UPPER (recBedrijf.prs_bedrijf_naam)
AND prs_bedrijf_verwijder IS NULL;
IF (v_count = 0)
THEN
v_errorhint := 'Fout bij toevoegen bedrijf';
INSERT INTO PRS_BEDRIJF (prs_bedrijf_naam,
prs_bedrijf_intern)
VALUES (recBedrijf.prs_bedrijf_naam, 1);
COMMIT;
v_count_update := v_count_update + 1;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
IF (v_errormsg = '')
THEN
v_errormsg :=
'Fout tijdens verwerken van bedrijf ['
|| recBedrijf.PRS_BEDRIJF_NAAM
|| ']';
END IF;
v_errorhint := v_errorhint || ': ' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT; -- tbv logging
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'Bedrijf: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
'');
fac.imp_writelog (
p_import_key,
'S',
'Bedrijf: verwerkte regels met foutmelding: <b>'
|| TO_CHAR (v_count_error),
'');
END IF;
OPEN cKPN;
v_count_update := 0;
v_count_tot := 0;
v_count_error := 0;
IF cKPN%ISOPEN
THEN
LOOP
BEGIN
v_aanduiding := recKPN.PRS_KOSTENPLAATS_NR || '| ';
v_errormsg := '';
v_errorhint := '';
FETCH cKPN INTO recKPN;
EXIT WHEN cKPN%NOTFOUND;
v_count_tot := v_count_tot + 1;
v_aanduiding := recBedrijf.PRS_BEDRIJF_NAAM || '| ';
v_errormsg := '';
v_errorhint := '';
v_errorhint := 'Kijken of de kostenplaats al bestaat';
SELECT COUNT (*)
INTO v_count
FROM prs_kostenplaats
WHERE prs_kostenplaats_verwijder IS NULL
AND UPPER (prs_kostenplaats_upper) =
UPPER (recKPN.prs_kostenplaats_nr);
IF (v_count = 0)
THEN
v_errorhint := 'Fout bij toevoegen kostenplaats';
INSERT INTO PRS_KOSTENPLAATS (
PRS_KOSTENPLAATS_NR,
PRS_KOSTENPLAATS_OMSCHRIJVING,
PRS_KOSTENPLAATS_MODULE)
VALUES (recKPN.prs_kostenplaats_nr,
recKPN.prs_kostenplaats_omschrijving,
recKPN.prs_kostenplaats_module);
COMMIT;
v_count_update := v_count_update + 1;
END IF;
IF (v_count = 1)
THEN
v_errorhint := 'Fout bij updaten kostenplaats';
UPDATE PRS_KOSTENPLAATS
SET prs_kostenplaats_omschrijving =
recKPN.prs_kostenplaats_omschrijving
WHERE prs_kostenplaats_upper =
recKPN.prs_kostenplaats_nr;
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
IF (v_errormsg = '')
THEN
v_errormsg :=
'Fout tijdens verwerken van kostenplaats ['
|| recKPN.PRS_KOSTENPLAATS_NR
|| ']';
END IF;
v_errorhint := v_errorhint || ': ' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT; -- tbv logging
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'Kostenplaats: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
'');
fac.imp_writelog (
p_import_key,
'S',
'Kostenplaats: verwerkte regels met foutmelding: <b>'
|| TO_CHAR (v_count_error),
'');
END IF;
OPEN cAfdeling1;
v_count_update := 0;
v_count_tot := 0;
v_count_error := 0;
IF cAfdeling1%ISOPEN
THEN
LOOP
BEGIN
FETCH cAfdeling1 INTO recAfdeling1;
EXIT WHEN cAfdeling1%NOTFOUND;
v_count_tot := v_count_tot + 1;
v_aanduiding :=
recAfdeling1.prs_bedrijf_naam
|| '|'
|| recAfdeling1.prs_afdeling_naam
|| '|'
|| recAfdeling1.prs_afdeling_naam_parent
|| '| ';
v_errormsg := '';
v_errorhint := '';
IF (recAfdeling1.niveau = 1)
THEN
v_errorhint := 'Bedrijf niet gevonden bij afdeling';
v_prs_afdeling_parentkey := TO_NUMBER (NULL);
SELECT prs_bedrijf_key
INTO v_bedrijf_key
FROM prs_bedrijf
WHERE prs_bedrijf_verwijder IS NULL
AND prs_bedrijf_naam_upper =
recAfdeling1.prs_bedrijf_naam_upper;
ELSE
v_errorhint := 'Parent van de afdeling niet gevonden';
v_bedrijf_key := TO_NUMBER (NULL);
SELECT prs_afdeling_key
INTO v_prs_afdeling_parentkey
FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL
AND prs_afdeling_upper =
recAfdeling1.prs_afdeling_naam_parent_upper;
END IF;
--- Let op dat het bepalen of de afdeling bestaat gebeurt op basis van de afdelingscode en niet de 'lange' omschrijving
v_errorhint := 'Bepalen of afdeling bestaat';
SELECT COUNT (*)
INTO v_count
FROM prs_afdeling
WHERE UPPER (RTRIM (prs_afdeling_omschrijving)) =
UPPER (
RTRIM (recAfdeling1.prs_afdeling_omschrijving))
AND prs_afdeling_verwijder IS NULL;
v_errorhint := 'Kostenplaats bij afdeling bepalen';
SELECT COUNT (*),
NVL (MAX (prs_kostenplaats_key), TO_NUMBER (NULL))
INTO v_count, v_kostenplaats_key
FROM PRS_KOSTENPLAATS
WHERE prs_kostenplaats_verwijder IS NULL
AND prs_kostenplaats_upper =
UPPER (TRIM (recAfdeling1.prs_kostenplaats_upper))
AND UPPER (prs_kostenplaats_module) = 'PRS';
--- Let op dat het bepalen of de afdeling bestaat gebeurt op basis van de afdelingscode en niet de 'lange' omschrijving
v_errorhint := 'Kostenplaats bij afdeling bepalen';
SELECT COUNT (*)
INTO v_count
FROM PRS_AFDELING
WHERE prs_afdeling_verwijder IS NULL
AND prs_afdeling_upper =
UPPER (TRIM (recAfdeling1.prs_afdeling_upper));
v_errorhint := 'Fout bij toevoegen afdeling';
IF (v_count = 0)
THEN
INSERT INTO PRS_AFDELING (prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_bedrijf_key,
prs_afdeling_parentkey,
prs_kostenplaats_key)
VALUES (recAfdeling1.prs_afdeling_naam,
recAfdeling1.prs_afdeling_omschrijving,
v_bedrijf_key,
v_prs_afdeling_parentkey,
v_kostenplaats_key);
COMMIT;
v_count_update := v_count_update + 1;
ELSE
--- als v_count=1 dan bestaat de afdeling al en doen we een update
UPDATE PRS_AFDELING a
SET a.prs_afdeling_omschrijving =
recAfdeling1.prs_afdeling_omschrijving,
a.prs_bedrijf_key = v_bedrijf_key,
a.prs_afdeling_parentkey =
v_prs_afdeling_parentkey,
a.prs_kostenplaats_key = v_kostenplaats_key
WHERE a.PRS_AFDELING_UPPER =
UPPER (TRIM (recAfdeling1.prs_afdeling_upper));
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
IF (v_errormsg = '')
THEN
v_errormsg :=
'Fout tijdens verwerken van afdeling ['
|| recAfdeling1.PRS_AFDELING_NAAM
|| ']';
END IF;
v_errorhint := v_errorhint || ': ' || oracle_err_mes;
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT; -- tbv logging
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'Afdeling: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
'');
fac.imp_writelog (
p_import_key,
'S',
'Afdeling: verwerkte regels met foutmelding: <b>'
|| TO_CHAR (v_count_error),
'');
END IF;
CLOSE cAfdeling1;
END hpji_update_organisatie;
/
SET DEFINE OFF
BEGIN
adm.systrackscriptId (
'$Id$',
0);
END;
/
-- HPJI#67097 Inrichting module periodieke taken, notificatie op de 1e van de maand
CREATE OR REPLACE VIEW HPJI_V_NOTI_TAKEN
(
TO_KEY,
TO_EMAIL,
TO_OMSCHR,
TAAK_OMSCHR,
INS_DEEL_KEY,
BETREFT
)
AS
WITH
taken
AS
(SELECT deel.ins_srtdeel_omschrijving,
deel.ins_deel_key,
deel.ins_deel_omschrijving,
deel.ins_deel_opmerking,
deel.ins_srtcontrole_omschrijving,
TRUNC (last_insp.ins_deelsrtcontrole_datum)
laatste_insp,
insp_result.ins_controlemode_oms
result_laatste_insp,
TRUNC (deel.ins_deelsrtcontrole_datum),
deel.deelsrtcontrole_status
FROM (SELECT sd.ins_srtdeel_omschrijving,
obj.ins_deel_key,
ins_deel_omschrijving,
ins_deel_opmerking,
sc.ins_srtcontrole_omschrijving,
dc.ins_deelsrtcontrole_datum,
(SELECT icm.ins_controlemode_oms
FROM ins_controlemode icm
WHERE icm.ins_controlemode_key =
dc.ins_controlemode_key)
controlemode_omschrijving,
(SELECT lcl.x ('fc2l.fac_code2label_label',
fc2l.fac_code2label_key,
fc2l.fac_code2label_label)
FROM fac_code2label fc2l
WHERE fc2l.fac_code2label_domein =
'controle'
AND fc2l.fac_code2label_code =
dc.ins_deelsrtcontrole_status)
deelsrtcontrole_status
FROM ins_deel obj,
ins_deelsrtcontrole dc,
ins_srtdeel sd,
ins_srtcontrole sc
WHERE ins_deel_verwijder IS NULL
AND sc.ins_srtcontrole_key =
dc.ins_srtcontrole_key
AND sd.ins_srtdeel_key = obj.ins_srtdeel_key
AND ins_deel_actief = 1
AND dc.ins_deel_key = obj.ins_deel_key
AND dc.ins_deelsrtcontrole_status = 6 -- alle voltooide taken
AND ins_deelsrtcontrole_datum >=
ADD_MONTHS (SYSDATE, -1)
AND ins_deelsrtcontrole_datum <= SYSDATE
UNION ALL
SELECT d.ins_srtdeel_omschrijving,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
d.ins_srtcontrole_omschrijving,
fac.nextcyclusdatedeel (d.ins_deel_key,
d.ins_srtcontrole_key,
1),
''
AS ctrmode,
''
AS status
FROM (SELECT sc.ins_srtcontrole_key,
sc.ins_srtcontrole_omschrijving,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
sc.ins_srtcontrole_periode,
sd.ins_srtdeel_omschrijving
FROM ins_srtcontrole sc,
ins_discipline di,
ins_v_aanwezigsrtgroep sg,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d
WHERE sd.ins_srtdeel_key =
d.ins_srtdeel_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key
AND di.ins_discipline_key =
sg.ins_discipline_key
AND ( COALESCE (d.ins_deel_vervaldatum,
SYSDATE + 2) >=
SYSDATE
OR d.ins_deel_vervaldatum IS NULL))
d
LEFT OUTER JOIN ins_srtcontroledl_xcp xcp
ON xcp.ins_deel_key = d.ins_deel_key
AND xcp.ins_srtcontrole_key =
d.ins_srtcontrole_key
WHERE COALESCE (xcp.ins_srtcontroledl_xcp_periode,
d.ins_srtcontrole_periode) >
0
AND fac.nextcyclusdatedeel (
d.ins_deel_key,
d.ins_srtcontrole_key,
1) <=
ADD_MONTHS (SYSDATE, 2)
AND d.ins_deel_key NOT IN --- als een inspectie al is ingepland weegt dat zwaarder dan de oorspronkelijke datum, object komt op de lijst als plandatum komende maand is
(SELECT ins_deel_key
FROM ins_v_udr_deelinspect ins,
ins_deel obj
WHERE ins_deelsrtcontrole_plandatum
IS NOT NULL
AND ins_deelsrtcontrole_datum
IS NULL
AND obj.ins_deel_key =
ins.deel_key
AND obj.ins_deel_verwijder
IS NULL)
UNION ALL
SELECT sd.ins_srtdeel_omschrijving,
obj.ins_deel_key,
obj.ins_deel_omschrijving,
obj.ins_deel_opmerking,
ins.srtcontrole_omschrijving,
ins_deelsrtcontrole_plandatum,
'' ctrmode,
deelsrtcontrole_status
FROM ins_v_udr_deelinspect ins,
ins_deel obj,
ins_srtdeel sd
WHERE ins_deelsrtcontrole_plandatum IS NOT NULL
AND sd.ins_srtdeel_key = obj.ins_srtdeel_key
AND ins_deelsrtcontrole_datum IS NULL
AND obj.ins_deel_key = ins.deel_key
AND obj.ins_deel_verwijder IS NULL
AND actief = 'ja'
AND ins_deelsrtcontrole_plandatum <=
ADD_MONTHS (SYSDATE, 2)) deel,
( SELECT MAX (sc.ins_deelsrtcontrole_datum)
ins_deelsrtcontrole_datum,
sc.ins_deel_key,
MAX (sc.ins_deelsrtcontrole_key)
ins_deelsrtcontrole_key
FROM ins_deelsrtcontrole sc
WHERE sc.ins_deelsrtcontrole_status = 6
GROUP BY sc.ins_deel_key) last_insp,
(SELECT sc.ins_deelsrtcontrole_key,
cm.ins_controlemode_oms
FROM ins_deelsrtcontrole sc, ins_controlemode cm
WHERE sc.ins_controlemode_key = cm.ins_controlemode_key)
insp_result
WHERE deel.ins_deel_key = last_insp.ins_deel_key(+)
AND last_insp.ins_deelsrtcontrole_key =
insp_result.ins_deelsrtcontrole_key(+))
SELECT p.prs_perslid_key to_key,
p.prs_perslid_email to_email,
DECODE (p.prs_perslid_voornaam,
NULL, '',
p.prs_perslid_voornaam || ' ')
|| DECODE (p.prs_perslid_tussenvoegsel,
NULL, '',
p.prs_perslid_tussenvoegsel || ' ')
|| prs_perslid_naam to_omschr,
ins_srtcontrole_omschrijving,
ins_deel_key,
ins_srtdeel_omschrijving || ' - ' || ins_deel_omschrijving betreft
FROM taken, prs_perslid p
WHERE p.prs_perslid_key = 34541
ORDER BY ins_srtcontrole_omschrijving;
CREATE OR REPLACE PROCEDURE hpji_monthly
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
hpji.hpji_noti_per_controle;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('Monthly', 'E', 'Proces afgebroken!', v_errormsg);
END hpji_monthly;
/
CREATE OR REPLACE PROCEDURE hpji_daily
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
hpji.hpji_acties_verkoopcontracten;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('DAILY', 'E', 'Proces afgebroken!', v_errormsg);
END hpji_daily;
/
CREATE OR REPLACE PROCEDURE hpji_processemail (pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
pemailkey IN NUMBER)
AS
v_sender prs_perslid.prs_perslid_key%TYPE;
v_senderdefault prs_perslid.prs_perslid_key%TYPE;
v_kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
v_kstnpldefault prs_afdeling.prs_kostenplaats_key%TYPE;
v_mldstat mld_melding.mld_melding_status%TYPE;
v_stdmelding mld_stdmelding.mld_stdmelding_key%TYPE;
v_stduitvoer mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE;
v_errormsg fac_result.fac_result_waarde%TYPE;
v_from VARCHAR2 (4000);
v_fromaddr VARCHAR2 (4000);
v_body VARCHAR2 (4000);
m_body VARCHAR2 (4000);
v_mldkey mld_melding.mld_melding_key%TYPE;
v_mailorigin mld_kenmerk.mld_kenmerk_key%TYPE;
v_attachorigin mld_kenmerk.mld_kenmerk_key%TYPE;
BEGIN
v_senderdefault := 4; --Standaard de persoon Facilitor
v_kstnpldefault := 1910; --Standaard kostenplaats Facilitair (persoon Facilitor)
v_stdmelding := fac.safe_to_number (fac.getsetting ('defaultstdmelding'));
v_mailorigin := 2081; --Kenmerk_key originele mail-bijlage
v_attachorigin := 2101; --Kenmerk_key bijlage uit email
-- Verwijder de Bounce Address Tag Validation
v_errormsg := '(0x101)';
IF pfrom LIKE 'prvs=%'
THEN
v_from := SUBSTR (pfrom, INSTR (pfrom, '=', -1) + 1);
ELSE
v_from := pfrom;
END IF;
v_errormsg := '(0x102)';
-- Indien een mail is doorgestuurd, dan moet er teruggevallen worden op de v_fromaddr.
SELECT fac_result_waarde
INTO v_fromaddr
FROM fac_result
WHERE fac_result_sessionid = psessionid AND fac_result_naam = 'fromaddr';
v_fromaddr := REPLACE (REPLACE (v_fromaddr, '>', ''), '<', '');
v_body := pbody;
m_body := pbody;
-- Valideer de sender in pfrom: kennen we deze?
v_errormsg := '(0x111)';
SELECT MIN (p.prs_perslid_key), MIN (d.prs_kostenplaats_key)
INTO v_sender, v_kostenplaats
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL
AND UPPER (prs_perslid_email) = UPPER (v_from);
CASE
WHEN UPPER (pto) LIKE 'ICT@%'
THEN
BEGIN
v_errormsg :=
SUBSTR (('(0x201)' || psessionid || pfrom || m_body),
0,
4000);
-- Valideer de sender in pfromaddr: kennen we deze?
-- Bij ict@hpji.facilitor.nl worden de mails via ict@elker.nl doorgestuurd.
-- In fromaddr zit dan het mailadres van de oorspronkelijke melder.
-- Bij ict meldingen mag de fromaddr de v_sender uit v_from overschrijven.
-- Maar niet altijd is v_fromaddr gevuld (HPJI#76724)
IF v_fromaddr IS NOT NULL
THEN
SELECT MIN (p.prs_perslid_key), MIN (d.prs_kostenplaats_key)
INTO v_sender, v_kostenplaats
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND p.prs_perslid_verwijder IS NULL
AND UPPER (prs_perslid_email) = UPPER (v_fromaddr);
END IF;
-- v_errormsg :=
-- SUBSTR (('(0x202)' || psessionid || pfrom || m_body),
-- 0,
-- 4000);
--
-- -- pas de omschrijving van de melding aan. Verwijder onnodige html ballast.
-- v_body := REPLACE (v_body, '&#x20;', ' '); -- spatie
-- v_body := REPLACE (v_body, '&#x21;', '!');
-- v_body := REPLACE (v_body, '&#x22;', CHR (34)); -- double quote
-- v_body := REPLACE (v_body, '&#x23;', '#');
-- v_body := REPLACE (v_body, '&#x24;', '$');
-- v_body := REPLACE (v_body, '&#x25;', '%');
-- v_body := REPLACE (v_body, '&#x26;', '&');
-- v_body := REPLACE (v_body, '&#x27;', CHR (39)); -- single quote
-- v_body := REPLACE (v_body, '&#x28;', '(');
-- v_body := REPLACE (v_body, '&#x29;', ')');
-- v_body := REPLACE (v_body, '&#x2a;', '*');
-- v_body := REPLACE (v_body, '&#x2b;', '+');
-- v_body := REPLACE (v_body, '&#x2c;', ','); -- komma
-- v_body := REPLACE (v_body, '&#x2d;', '-'); -- min teken
-- v_body := REPLACE (v_body, '&#x2e;', '.'); -- punt
-- v_body := REPLACE (v_body, '&#x2f;', '/');
-- v_body := REPLACE (v_body, '&#x3a;', ':'); -- dubbele punt
-- v_body := REPLACE (v_body, '&#x3b;', ';'); -- punt komma
-- v_body := REPLACE (v_body, '&#x3c;', '<');
-- v_body := REPLACE (v_body, '&#x3d;', '=');
-- v_body := REPLACE (v_body, '&#x3e;', '>');
-- v_body := REPLACE (v_body, '&#x3f;', '?');
-- v_body := REPLACE (v_body, '&#x40;', '@');
-- v_body :=
-- REPLACE (v_body,
-- ' ' || CHR (10) || CHR (13),
-- CHR (10) || CHR (13)); -- soms komt er ineens een een spatie achter de tag.
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (
'PROCESSEMAIL',
'W',
'Mail kon niet geformateerd worden afzender:'
|| pfrom
|| '['
|| v_errormsg
|| ']',
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')');
END;
--Hieronder de acties die gedaan moeten worden.
BEGIN
v_errormsg := '(0x211)' || pfrom || psubject;
v_stdmelding := 641; -- Standaardmelding 'ICT vraag/melding' in vakgroeptype ICT
v_mldstat := 2; -- Standaard de status in Nieuw (2).
v_stduitvoer :=
mld.getstduitvoer (v_stdmelding,
NULL,
NULL,
NULL);
v_errormsg := '(0x212)' || pfrom || v_mldkey || psubject;
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_melding_datum,
mld_melding_onderwerp,
mld_melding_omschrijving,
mld_melding_status,
mld_melding_t_uitvoertijd,
mld_stdmelding_key,
mld_alg_locatie_key,
mld_melding_externnr,
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_spoed)
VALUES (
'MLD',
4, -- email
SYSDATE,
SUBSTR (psubject, 1, 80),
SUBSTR (
REPLACE (
SUBSTR (v_body, 1, 4000),
CHR (13)
|| CHR (10)
|| CHR (13)
|| CHR (10),
CHR (13) || CHR (10)),
1,
4000), -- verwijder onnodige witregels
v_mldstat,
NULL, -- v_stduitvoer
v_stdmelding,
NULL, -- Locatie onbekend
NULL,
COALESCE (v_sender, v_senderdefault),
COALESCE (v_sender, v_senderdefault),
COALESCE (v_kostenplaats, v_kstnpldefault),
3)
RETURNING mld_melding_key
INTO v_mldkey;
v_errormsg := '(0x221)';
mld.setmeldingstatus (v_mldkey, v_mldstat, v_sender);
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
'Geregistreerd onder melding ' || v_mldkey);
END;
IF v_mldkey IS NOT NULL
THEN
BEGIN
-- Bijlagen toevoegen uit email
v_errormsg := '(0x231)' || v_mldkey || psubject;
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (
psessionid,
'kenmerkpath',
'MLD\M'
|| TO_CHAR (TRUNC (v_mldkey / 1000),
'FM0000')
|| '___\M'
|| v_mldkey
|| '\'
|| v_attachorigin
|| '\');
-- Notificatie MLDNEW versturen
v_errormsg := '(0x232)' || v_mldkey || psubject;
IF v_sender <> 4
THEN
FAC.trackaction ('MLDNEW',
v_mldkey,
NULL,
NULL,
NULL);
INSERT INTO fac_notificatie (
fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (
26, -- MLDNEW
2, -- mail
NULL,
v_sender,
'Uw melding '
|| v_mldkey
|| '(ICT/ICT-vraag/melding) is geregistreerd',
v_mldkey,
NULL,
2);
END IF;
END;
END IF;
ELSE
v_errormsg :=
'(0x900)' || v_mldkey || psubject || ' - geen pto herkend';
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid, 'maillog', v_errormsg);
END CASE;
EXCEPTION
WHEN OTHERS
THEN
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid, 'maillog', v_errormsg);
fac.writelog (
'PROCESSEMAIL',
'E',
'Mail kon niet ingelezen worden afzender:'
|| pfrom
|| '['
|| v_errormsg
|| v_mldkey
|| psubject
|| ']',
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')');
END;
/
CREATE OR REPLACE VIEW HPJI_V_RUIMTE_QRC_ALG
(
OMGEVING,
ALG_LOCATIE_KEY,
ALG_LOCATIE_OMSCHRIJVING,
ALG_GEBOUW_KEY,
ALG_GEBOUW_OMSCHRIJVING,
FAC_BOOKMARK_ID,
FAC_BOOKMARK_PATH,
FAC_BOOKMARK_QUERY
)
AS
SELECT DISTINCT USER omgeving,
r.alg_locatie_key,
r.alg_locatie_omschrijving,
r.alg_gebouw_key,
r.alg_gebouw_omschrijving,
b.fac_bookmark_id,
b.fac_bookmark_path,
b.fac_bookmark_query
FROM fac_bookmark b, alg_v_ruimte_gegevens r
WHERE b.fac_bookmark_id = 'XhGDSbzKhi4DfEvo';
CREATE OR REPLACE VIEW HPJI_V_LEVERANCIERS
(
bedrijf_key,
bedrijf_naam,
leveranciersnr
)
AS
SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam, kl.prs_kenmerklink_waarde
FROM prs_bedrijf b, prs_kenmerk k, prs_kenmerklink kl
WHERE b.prs_bedrijf_leverancier = 1
AND b.prs_bedrijf_verwijder IS NULL
AND kl.prs_kenmerk_key = k.prs_kenmerk_key
AND kl.prs_link_key = b.prs_bedrijf_key
AND k.prs_kenmerk_key = 1040;
CREATE OR REPLACE VIEW HPJI_V_AFLEVERADRES
(
adres_key,
adres_omschrijving,
adres,
adres_verwijder
)
AS
SELECT a.mld_adres_key,
a.mld_adres_naam,
a.mld_adres_bezoek_adres
|| ' '
|| a.mld_adres_bezoek_postcode
|| ' '
|| a.mld_adres_bezoek_plaats adres,
a.mld_adres_verwijder
FROM mld_adres a
WHERE a.mld_adres_afleveradres = 1;
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile