1991 lines
86 KiB
MySQL
1991 lines
86 KiB
MySQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific sql statements for the FACILITOR database
|
||
|
||
DEFINE thisfile = 'kmmo.sql'
|
||
DEFINE dbuser = 'KMMO'
|
||
|
||
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 KMMO AS
|
||
-- PACKAGES voor de KMMO specifieke rapportages
|
||
TYPE t_cursor IS REF CURSOR;
|
||
PROCEDURE rap_bezetting_rondleider (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
|
||
|
||
PROCEDURE processemail (pfrom IN VARCHAR2,
|
||
pto IN VARCHAR2,
|
||
psubject IN VARCHAR2,
|
||
pbody IN VARCHAR2,
|
||
psessionid IN VARCHAR2,
|
||
pemailkey IN NUMBER);
|
||
|
||
PROCEDURE indexatie_mjob;
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY KMMO AS
|
||
-- PACKAGES voor de KMMO specifieke rapportages
|
||
PROCEDURE rap_bezetting_rondleider (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor
|
||
)
|
||
AS
|
||
v_datum_van DATE;
|
||
BEGIN
|
||
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT p.prs_perslid_naam naam,
|
||
p.prs_perslid_voornaam voornaam,
|
||
sp.prs_srtperslid_omschrijving rondleider_taal,
|
||
(SELECT LISTAGG (
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi')
|
||
|| '-'
|
||
|| TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi')
|
||
|| ' '
|
||
|| ud.fac_usrdata_code,
|
||
CHR (10))
|
||
WITHIN GROUP (ORDER BY rrr.res_rsv_ruimte_van) AS beschikbaarheid
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
res_rsv_ruimte rrr,
|
||
res_kenmerkwaarde kw,
|
||
fac_usrdata ud
|
||
WHERE o.mld_uitvoerende_keys = p.prs_perslid_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_statusopdr_key NOT IN (1,2) -- Afgewezen/Niet akkoord
|
||
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND TRUNC (rrr.res_rsv_ruimte_van) = v_datum_van
|
||
AND kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND kw.res_kenmerk_key = 1 -- taal rondleiding
|
||
AND fac.safe_to_number (kw.res_kenmerkreservering_waarde) =
|
||
ud.fac_usrdata_key) bezetting,
|
||
(SELECT COUNT(*) from kmmo_v_beschikb_raw bo
|
||
WHERE p.prs_perslid_key = bo.prs_perslid_key
|
||
AND TRUNC(bo.van) = v_datum_van
|
||
AND bo.dagdeel = 'ochtend'
|
||
AND bo.beschikbaar = 1) ochtend,
|
||
(SELECT COUNT(*) from kmmo_v_beschikb_raw bo
|
||
WHERE p.prs_perslid_key = bo.prs_perslid_key
|
||
AND TRUNC(bo.van) = v_datum_van
|
||
AND bo.dagdeel = 'middag'
|
||
AND bo.beschikbaar = 1) middag,
|
||
(SELECT COUNT(*)
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
res_rsv_ruimte rrr
|
||
WHERE o.mld_uitvoerende_keys = p.prs_perslid_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND o.mld_statusopdr_key NOT IN (1,2) -- Afgewezen/Niet akkoord
|
||
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND ABS(TRUNC (rrr.res_rsv_ruimte_van) - v_datum_van) < 4) bezetting_week
|
||
FROM prs_perslid p, prs_srtperslid sp, kmmo_v_beschikb_raw b
|
||
WHERE p.prs_perslid_key = b.prs_perslid_key
|
||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||
AND prs_srtperslid_omschrijving LIKE 'Rondleider %'
|
||
AND TRUNC(b.van) = v_datum_van
|
||
AND b.beschikbaar = 1 -- beschikbaar
|
||
GROUP BY p.prs_perslid_key, prs_perslid_naam, prs_perslid_voornaam, prs_srtperslid_omschrijving;
|
||
|
||
END rap_bezetting_rondleider;
|
||
|
||
PROCEDURE processemail (pfrom IN VARCHAR2,
|
||
pto IN VARCHAR2,
|
||
psubject IN VARCHAR2,
|
||
pbody IN VARCHAR2,
|
||
psessionid IN VARCHAR2,
|
||
pemailkey IN NUMBER
|
||
)
|
||
AS
|
||
sender prs_perslid.prs_perslid_key%TYPE;
|
||
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
|
||
newkey mld_melding.mld_melding_key%TYPE;
|
||
defaultstdmelding fac_setting.fac_setting_default%TYPE;
|
||
kkey_att mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
kkey_mail mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
errormsg fac_result.fac_result_waarde%TYPE;
|
||
status_key mld_melding.mld_melding_status%TYPE;
|
||
BEGIN
|
||
|
||
defaultstdmelding := NULL;
|
||
status_key := 2; -- Standaard komt de melding op nieuw.
|
||
|
||
CASE
|
||
WHEN UPPER (pto) LIKE 'FEEDBACK@%'
|
||
THEN
|
||
defaultstdmelding := 441;
|
||
kkey_att := 1;
|
||
kkey_mail := 541;
|
||
sender := 1841; -- Ontvangen feedback
|
||
status_key := 0; -- voor feedback komt de status op FO te staan omdat de FrontOffice hier eerst naar gaat kijken.
|
||
|
||
WHEN UPPER (pto) LIKE 'AANVRAAG@%'
|
||
THEN
|
||
defaultstdmelding := 481;
|
||
kkey_att := 1;
|
||
kkey_mail := 581;
|
||
sender := 1841; -- Ontvangen feedback
|
||
|
||
WHEN UPPER (pto) LIKE 'STORING@%'
|
||
THEN
|
||
defaultstdmelding := 501;
|
||
kkey_att := 1;
|
||
kkey_mail := 582;
|
||
sender := 1841; -- Ontvangen feedback
|
||
|
||
ELSE
|
||
NULL;
|
||
END CASE;
|
||
|
||
IF defaultstdmelding IS NOT NULL
|
||
THEN
|
||
-- suggested extensions:
|
||
-- check for MLDUSE-write autorisations
|
||
-- parse the subject to find an appropriate stdmelding, if uniquely possible
|
||
-- append (as a note?) to an existing melding if #key is found in the subject
|
||
BEGIN
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_melding_status,
|
||
mld_stdmelding_key,
|
||
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 (pbody, 1, 4000),
|
||
CHR (13) || CHR (10) || CHR (13) || CHR (10),
|
||
CHR (13) || CHR (10)),
|
||
1,
|
||
4000), -- verwijder onnodige witregels
|
||
NULL,
|
||
defaultstdmelding,
|
||
sender,
|
||
sender,
|
||
NULL,
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO newkey;
|
||
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'kenmerkpath',
|
||
'MLD\M' || to_char( TRUNC(newkey/1000), 'FM0000') || '___\M' || newkey || '\' || kkey_att || '\');
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'kenmerkorgmailpath',
|
||
'MLD\M' || TO_CHAR (TRUNC (newkey / 1000), 'FM0000') || '___\M' || newkey || '\' || kkey_mail || '\');
|
||
|
||
mld.setmeldingstatus (newkey, status_key, sender);
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'maillog',
|
||
'Geregistreerd onder melding ' || newkey);
|
||
END;
|
||
END IF;
|
||
|
||
IF errormsg IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid, 'errormsg', errormsg);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (
|
||
'PROCESSEMAIL',
|
||
'W',
|
||
'Mail kon niet verwerkt worden afzender: '
|
||
|| pfrom
|
||
|| '['
|
||
|| errormsg
|
||
|| ']',
|
||
'OTHERS (error '
|
||
|| SQLCODE
|
||
|| '/'
|
||
|| SUBSTR (SQLERRM, 1, 100)
|
||
|| ')');
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'errormsg',
|
||
'Database fout - Neem contact op met uw systeembeheerder');
|
||
END;
|
||
|
||
PROCEDURE indexatie_mjob
|
||
AS
|
||
v_indexatie NUMBER;
|
||
BEGIN
|
||
SELECT fac_usrdata_prijs
|
||
INTO v_indexatie
|
||
FROM fac_usrdata
|
||
WHERE fac_usrtab_key = 261 -- Indexatie MJOB
|
||
AND fac_usrdata_vervaldatum = TRUNC (SYSDATE);
|
||
|
||
UPDATE ins_deelsrtcontrole dsc
|
||
SET dsc.ins_deelsrtcontrole_freezecost = dsc.ins_deelsrtcontrole_freezecost * (1 + v_indexatie / 100)
|
||
WHERE TRUNC (dsc.ins_deelsrtcontrole_freezedate, 'yyyy') = TRUNC (SYSDATE, 'yyyy')
|
||
AND dsc.ins_srtcontrole_key IN
|
||
(SELECT sc.ins_srtcontrole_key
|
||
FROM ctr_disc_params dp, ins_srtcontrole sc
|
||
WHERE dp.ctr_ins_discipline_key = sc.ctr_discipline_key AND dp.ctr_disc_params_ismjob = 1);
|
||
|
||
UPDATE ins_srtcontroledl_xcp xcp
|
||
SET xcp.ins_srtcontroledl_xcp_materia = xcp.ins_srtcontroledl_xcp_materia * (1 + v_indexatie / 100)
|
||
WHERE xcp.ins_srtcontrole_key IN
|
||
(SELECT sc.ins_srtcontrole_key
|
||
FROM ctr_disc_params dp, ins_srtcontrole sc
|
||
WHERE dp.ctr_ins_discipline_key = sc.ctr_discipline_key AND dp.ctr_disc_params_ismjob = 1);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
-- Er valt vandaag niets te indexeren.
|
||
NULL;
|
||
END;
|
||
|
||
END;
|
||
/
|
||
|
||
-- Dagelijkse taak
|
||
CREATE OR REPLACE PROCEDURE kmmo_daily
|
||
AS
|
||
BEGIN
|
||
|
||
IF user = 'KMMO_TEST'
|
||
THEN
|
||
-- pas de kleuren voor de testomgeving aan (blauw naar rood)
|
||
UPDATE fac_setting
|
||
SET fac_setting_pvalue = REPLACE(fac_setting_pvalue, '#0085c4', '#e20035')
|
||
WHERE fac_setting_name = 'csstemplate';
|
||
|
||
UPDATE fac_setting
|
||
SET fac_setting_pvalue = REPLACE(fac_setting_pvalue, '#0085c4', '#e20035')
|
||
WHERE fac_setting_name = 'csscust';
|
||
|
||
UPDATE fac_setting
|
||
SET fac_setting_pvalue = REPLACE(fac_setting_pvalue, 'banner.png', 'banner_rood.png')
|
||
WHERE fac_setting_name = 'csstemplate';
|
||
|
||
|
||
END IF;
|
||
|
||
-- Kijk of de MJOB records geindexeerd moeten worden.
|
||
-- De indexatie vindt plaats op de vervaldatum van het record in de Indexatie MJOB eigen tabel
|
||
KMMO.indexatie_mjob;
|
||
|
||
END;
|
||
/
|
||
|
||
-- view om QR codes voor een deel te genereren.
|
||
CREATE OR REPLACE VIEW kmmo_v_rap_qr_deel
|
||
AS
|
||
SELECT fac_bookmark_naam,
|
||
fac_bookmark_id,
|
||
ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
alg_locatie_key,
|
||
alg_gebouw_omschrijving,
|
||
ins_deel_aanmaak,
|
||
ins_deel_key
|
||
FROM fac_bookmark b, ins_v_deel_gegevens d
|
||
WHERE fac_bookmark_expire IS NULL
|
||
AND fac_bookmark_id = 'eYD435Vl666lZdkU';
|
||
|
||
-- view om QR codes voor een ruimte te genereren.
|
||
-- Ieder srtruimte krijgt een eigen bookmark
|
||
-- Om een link tussen bookmark en srtuimte te maken
|
||
-- wordt de omschrijving van de bookmark als volgt gevuld:
|
||
-- QR bij verkeersruimte key:30
|
||
-- De key is dan de key van de srtruimte.
|
||
CREATE OR REPLACE VIEW kmmo_v_rap_qr_ruimte
|
||
AS
|
||
SELECT b.fac_bookmark_naam,
|
||
b.fac_bookmark_id,
|
||
sr.alg_srtruimte_omschrijving,
|
||
rg.alg_ruimte_omschrijving,
|
||
rg.alg_ruimte_nr,
|
||
rg.alg_ruimte_key,
|
||
alg_locatie_omschrijving,
|
||
alg_gebouw_omschrijving,
|
||
alg_verdieping_omschrijving
|
||
FROM fac_bookmark b, alg_srtruimte sr, alg_v_ruimte_gegevens rg
|
||
WHERE b.fac_bookmark_expire IS NULL
|
||
AND COALESCE(FAC.safe_to_number(TRIM(SUBSTR(b.fac_bookmark_naam, INSTR(b.fac_bookmark_naam, ':')+1))),-1) = sr.alg_srtruimte_key
|
||
AND sr.alg_srtruimte_key = rg.alg_srtruimte_key;
|
||
|
||
CREATE OR REPLACE FORCE VIEW kmmo_v_thema_bouwdeel
|
||
(
|
||
ALG_RUIMTE_KEY,
|
||
WAARDE
|
||
)
|
||
AS
|
||
SELECT alg_onrgoed_key, SUBSTR (alg_onrgoedkenmerk_waarde, 1, 1) waarde
|
||
FROM alg_onrgoedkenmerk
|
||
WHERE alg_kenmerk_key = 1003 AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE FORCE VIEW kmmo_v_thema_subbouwdeel
|
||
(
|
||
ALG_RUIMTE_KEY,
|
||
WAARDE
|
||
)
|
||
AS
|
||
SELECT alg_onrgoed_key, SUBSTR (alg_onrgoedkenmerk_waarde, 1, 2) waarde
|
||
FROM alg_onrgoedkenmerk
|
||
WHERE alg_kenmerk_key = 1003 AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE FORCE VIEW kmmo_v_thema_openstelling
|
||
(
|
||
ALG_RUIMTE_KEY,
|
||
WAARDE
|
||
)
|
||
AS
|
||
SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde waarde
|
||
FROM alg_onrgoedkenmerk
|
||
WHERE alg_kenmerk_key = 1004 AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW kmmo_v_label_ruimteomschr
|
||
AS
|
||
SELECT r.alg_ruimte_key, r.alg_ruimte_omschrijving waarde
|
||
FROM alg_v_aanwezigruimte r;
|
||
|
||
|
||
-- View om de resultaten van de inspecties te tonen
|
||
CREATE OR REPLACE VIEW kmmo_v_rap_keuring_resultaat
|
||
AS
|
||
SELECT dsc.ins_deelsrtcontrole_datum,
|
||
dsc.ins_deelsrtcontrole_datum_org,
|
||
dsc.ins_deelsrtcontrole_status,
|
||
pf.prs_perslid_naam_full,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
dg.ins_discipline_omschrijving,
|
||
dg.ins_srtgroep_omschrijving,
|
||
dg.ins_srtdeel_omschrijving,
|
||
dg.ins_deel_omschrijving,
|
||
dg.alg_gebouw_omschrijving,
|
||
dg.alg_verdieping_code,
|
||
dg.alg_ruimte_nr,
|
||
cm.ins_controlemode_oms,
|
||
(SELECT LISTAGG (
|
||
COALESCE (k.ins_kenmerk_omschrijving,
|
||
sk.ins_srtkenmerk_omschrijving),
|
||
CHR (13))
|
||
WITHIN GROUP (ORDER BY
|
||
COALESCE (k.ins_kenmerk_omschrijving,
|
||
sk.ins_srtkenmerk_omschrijving)) AS bevindingen
|
||
FROM ins_kmdeelsrtcontr kdsc, ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE kdsc.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND kdsc.ins_deelsrtcontrole_key = dsc.ins_deelsrtcontrole_key) bevindingen
|
||
FROM ins_deelsrtcontrole dsc,
|
||
ins_srtcontrole sc,
|
||
ins_v_deel_gegevens dg,
|
||
ins_controlemode cm,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE dsc.ins_srtcontrole_key = sc.ins_srtcontrole_key
|
||
AND dsc.ins_deel_key = dg.ins_deel_key
|
||
AND dsc.ins_controlemode_key = cm.ins_controlemode_key
|
||
AND dsc.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-- Overzicht om het resultaat (notities) van de inspecteur te bekijken
|
||
-- rapport om de opmerkingen van de inspecteur te zien
|
||
CREATE OR REPLACE VIEW kmmo_v_rap_deel_notities
|
||
AS
|
||
SELECT n.ins_deel_note_aanmaak,
|
||
n.ins_deel_note_omschrijving,
|
||
pf.prs_perslid_naam_full,
|
||
dg.ins_discipline_omschrijving,
|
||
dg.ins_srtgroep_omschrijving,
|
||
dg.ins_srtdeel_omschrijving,
|
||
dg.ins_srtdeel_upper,
|
||
dg.alg_gebouw_omschrijving,
|
||
dg.alg_gebouw_upper,
|
||
dg.alg_verdieping_omschrijving,
|
||
dg.alg_verdieping_code,
|
||
dg.alg_ruimte_nr,
|
||
dg.ins_deel_omschrijving,
|
||
dg.ins_deel_aantal,
|
||
dg.ins_deel_opmerking,
|
||
dg.ins_deel_vervaldatum
|
||
FROM ins_deel_note n,
|
||
ins_v_deel_gegevens dg,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE n.ins_deel_key = dg.ins_deel_key
|
||
AND n.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-- Importfunctie om Asset en MJOB informatie te importeren.
|
||
CREATE OR REPLACE PROCEDURE kmmo_import_assets (p_import_key IN NUMBER)
|
||
AS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_mode NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_all_null BOOLEAN;
|
||
v_count_error NUMBER (10);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
|
||
-- De importvelden:
|
||
v_alg_ruimte_nr VARCHAR2(100);
|
||
v_ins_deel_aanmaak_txt VARCHAR2(100);
|
||
v_ins_deel_aantal_txt VARCHAR2(100);
|
||
v_ins_deel_eenheid VARCHAR2(100);
|
||
v_ins_deel_omschrijving VARCHAR2(100);
|
||
v_ins_deel_opmerking VARCHAR2(1000);
|
||
v_ins_srtcontrole_periode_txt VARCHAR2(100);
|
||
v_ins_srtcontrole_prijs_txt VARCHAR2(100);
|
||
v_ins_srtdeel_code VARCHAR2(100);
|
||
v_ins_srtdeel_code_txt VARCHAR2(100);
|
||
v_ins_srtdeel_omschrijving VARCHAR2(100);
|
||
v_ins_deel_percentage NUMBER;
|
||
v_ins_srtcontrole_periode NUMBER;
|
||
v_kenmerk1 VARCHAR2(1000);
|
||
v_kenmerk2 VARCHAR2(1000);
|
||
v_kenmerk3 VARCHAR2(1000);
|
||
v_kenmerk4 VARCHAR2(1000);
|
||
v_kenmerk5 VARCHAR2(1000);
|
||
v_kenmerk7 VARCHAR2(1000);
|
||
v_kenmerk9 VARCHAR2(1000);
|
||
v_dumm NUMBER (10,2);
|
||
v_ins_deel_aanmaak DATE;
|
||
v_ins_deel_startjaar DATE;
|
||
v_ins_deel_aantal NUMBER;
|
||
v_ins_srtcontrole_prijs NUMBER(10,2);
|
||
v_alg_locatie_code VARCHAR2(20);
|
||
v_alg_gebouw_code VARCHAR2(20);
|
||
v_alg_verdieping_volgnr NUMBER;
|
||
v_srtk_code_rvb_key NUMBER;
|
||
v_srtk_opm_key NUMBER;
|
||
v_srtk_merk_key NUMBER;
|
||
v_discipline_key NUMBER;
|
||
v_srtgroep_key NUMBER;
|
||
v_ins_discipline_omschrijving VARCHAR2(100);
|
||
v_ins_srtgroep_omschrijving VARCHAR2(100);
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
CURSOR c_dis IS
|
||
SELECT '1 - onderbouw' disc FROM DUAL
|
||
UNION
|
||
SELECT '5 - installaties werktuigbouwkunde' disc FROM DUAL
|
||
UNION
|
||
SELECT '2 - ruwbouw' FROM DUAL
|
||
UNION
|
||
SELECT '7 - vaste voorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '6 - installaties elektrotechniek' FROM DUAL
|
||
UNION
|
||
SELECT '4 - afwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '3 - afbouw' FROM DUAL
|
||
UNION
|
||
SELECT '9 - terrein' FROM DUAL
|
||
UNION
|
||
SELECT '8 - losse inventaris' FROM DUAL;
|
||
|
||
CURSOR c_grp IS
|
||
SELECT '11 - bodemvoorzieningen' groep FROM DUAL
|
||
UNION
|
||
SELECT '13 - vloeren op grondslag' groep FROM DUAL
|
||
UNION
|
||
SELECT '16 - funderingsconstructie' groep FROM DUAL
|
||
UNION
|
||
SELECT '17 - paalfundering' groep FROM DUAL
|
||
UNION
|
||
SELECT '19 - onderhoud algemeen' groep FROM DUAL
|
||
UNION
|
||
SELECT '21 - buitenwanden' groep FROM DUAL
|
||
UNION
|
||
SELECT '22 - binnenwanden' FROM DUAL
|
||
UNION
|
||
SELECT '23 - vloeren, galerijen' FROM DUAL
|
||
UNION
|
||
SELECT '24 - trappen en hellingen' FROM DUAL
|
||
UNION
|
||
SELECT '25 - binnenzijde gevelconstructie' FROM DUAL
|
||
UNION
|
||
SELECT '26 - vloerconstructie' FROM DUAL
|
||
UNION
|
||
SELECT '27 - daken' FROM DUAL
|
||
UNION
|
||
SELECT '28 - hoofddraagkonstrukties' FROM DUAL
|
||
UNION
|
||
SELECT '29 - draagconstructie' FROM DUAL
|
||
UNION
|
||
SELECT '31 - buitenwandopeningen' FROM DUAL
|
||
UNION
|
||
SELECT '32 - binnenwandopeningen' FROM DUAL
|
||
UNION
|
||
SELECT '33 - vloeropeningen' FROM DUAL
|
||
UNION
|
||
SELECT '34 - balustrades en leuningen' FROM DUAL
|
||
UNION
|
||
SELECT '35 - plafonds' FROM DUAL
|
||
UNION
|
||
SELECT '37 - dakopeningen' FROM DUAL
|
||
UNION
|
||
SELECT '38 - inbouwpakketten' FROM DUAL
|
||
UNION
|
||
SELECT '39 - afbouw' FROM DUAL
|
||
UNION
|
||
SELECT '41 - buitenwandafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '42 - binnenwandafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '43 - vloerafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '44 - trap- en hellingafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '45 - plafondafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '47 - dakafwerkingen' FROM DUAL
|
||
UNION
|
||
SELECT '48 - afwerkingspakketten' FROM DUAL
|
||
UNION
|
||
SELECT '49 - afwerking algemeen' FROM DUAL
|
||
UNION
|
||
SELECT '51 - warmte-opwekking' FROM DUAL
|
||
UNION
|
||
SELECT '52 - afvoeren' FROM DUAL
|
||
UNION
|
||
SELECT '53 - water' FROM DUAL
|
||
UNION
|
||
SELECT '54 - gas' FROM DUAL
|
||
UNION
|
||
SELECT '55 - koude-opwekking' FROM DUAL
|
||
UNION
|
||
SELECT '56 - warmtedistributie' FROM DUAL
|
||
UNION
|
||
SELECT '57 - luchtbehandeling' FROM DUAL
|
||
UNION
|
||
SELECT '58 - regeling klimaat en sanitair' FROM DUAL
|
||
UNION
|
||
SELECT '59 - mechanische installaties' FROM DUAL
|
||
UNION
|
||
SELECT '61 - centrale elektrotechnische voorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '62 - kracht' FROM DUAL
|
||
UNION
|
||
SELECT '63 - verlichting' FROM DUAL
|
||
UNION
|
||
SELECT '64 - communicatie' FROM DUAL
|
||
UNION
|
||
SELECT '65 - beveiliging' FROM DUAL
|
||
UNION
|
||
SELECT '66 - transport' FROM DUAL
|
||
UNION
|
||
SELECT '67 - gebouwbeheersysteem' FROM DUAL
|
||
UNION
|
||
SELECT '69 - electrische installaties algemeen' FROM DUAL
|
||
UNION
|
||
SELECT '71 - vaste verkeersvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '72 - vaste gebruikersvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '73 - vaste keukenvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '74 - vaste sanitaire voorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '75 - vaste onderhoudsvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '76 - vaste opslagvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '79 - vaste inrichtingen' FROM DUAL
|
||
UNION
|
||
SELECT '80 - losse inrichting' FROM DUAL
|
||
UNION
|
||
SELECT '81 - losse inventaris voor verkeersruimten' FROM DUAL
|
||
UNION
|
||
SELECT '82 - losse inventaris voor gebruiksruimten' FROM DUAL
|
||
UNION
|
||
SELECT '83 - losse keukeninventaris' FROM DUAL
|
||
UNION
|
||
SELECT '84 - losse sanitaire inventaris' FROM DUAL
|
||
UNION
|
||
SELECT '85 - losse schoonmaakinventaris' FROM DUAL
|
||
UNION
|
||
SELECT '86 - losse opberginventaris' FROM DUAL
|
||
UNION
|
||
SELECT '89 - losse inventaris' FROM DUAL
|
||
UNION
|
||
SELECT '90 - terrein' FROM DUAL
|
||
UNION
|
||
SELECT '91 - grondvoorzieningen' FROM DUAL
|
||
UNION
|
||
SELECT '92 - opstallen' FROM DUAL
|
||
UNION
|
||
SELECT '93 - omeheiningen' FROM DUAL
|
||
UNION
|
||
SELECT '94 - terreinafwerking' FROM DUAL
|
||
UNION
|
||
SELECT '95 - terreininstallaties, werktuigkundig' FROM DUAL
|
||
UNION
|
||
SELECT '96 - terreininstallaties, elektrotechnisch' FROM DUAL
|
||
UNION
|
||
SELECT '97 - terreininrichting standaard' FROM DUAL
|
||
UNION
|
||
SELECT '98 - terreininrichting bijzonder' FROM DUAL
|
||
UNION
|
||
SELECT '99 - terrein algemeen' FROM DUAL;
|
||
|
||
BEGIN
|
||
v_count_error := 0;
|
||
header_is_valid := 0;
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
|
||
DELETE fac_imp_ins;
|
||
|
||
-- Zijn de kenmerksoorten er al?
|
||
BEGIN
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_code_rvb_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'CODE RVB';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('C', 'Code RVB', 20) RETURNING ins_srtkenmerk_key INTO v_srtk_code_rvb_key;
|
||
END;
|
||
|
||
BEGIN
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_opm_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'OPMERKING';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('C', 'Opmerking', 2000) RETURNING ins_srtkenmerk_key INTO v_srtk_opm_key;
|
||
END;
|
||
|
||
BEGIN
|
||
SELECT ins_srtkenmerk_key
|
||
INTO v_srtk_merk_key
|
||
FROM ins_srtkenmerk
|
||
WHERE ins_srtkenmerk_upper = 'MERK';
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_kenmerktype,
|
||
ins_srtkenmerk_omschrijving,
|
||
ins_srtkenmerk_lengte)
|
||
VALUES ('C', 'Merk', 49) RETURNING ins_srtkenmerk_key INTO v_srtk_merk_key;
|
||
END;
|
||
|
||
-- Controleer of de MJOB disciplines al bestaan
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM ins_discipline
|
||
WHERE ins_discipline_omschrijving = '5 - installaties werktuigbouwkunde';
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
|
||
FOR rec IN c_dis
|
||
LOOP
|
||
BEGIN
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_tab_discipline
|
||
WHERE UPPER (ins_discipline_omschrijving) = UPPER (rec.disc);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving,
|
||
ins_discipline_min_level)
|
||
VALUES (rec.disc, 1)
|
||
RETURNING ins_discipline_key
|
||
INTO v_discipline_key;
|
||
|
||
INSERT INTO ins_disc_params (ins_discipline_key,
|
||
ins_disc_params_autonum)
|
||
VALUES (v_discipline_key, 2);
|
||
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_code_rvb_key, v_discipline_key, 'D', 'D', 110);
|
||
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_opm_key, v_discipline_key, 'D', 'D', 120);
|
||
|
||
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_bewerkniveau, ins_kenmerk_volgnummer)
|
||
VALUES (v_srtk_merk_key, v_discipline_key, 'D', 'D', 130);
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec_grp IN c_grp
|
||
LOOP
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_tab_discipline
|
||
WHERE SUBSTR (ins_discipline_omschrijving, 1, 3) =
|
||
SUBSTR (rec_grp.groep, 1, 1) || ' -';
|
||
|
||
BEGIN
|
||
SELECT ins_srtgroep_key
|
||
INTO v_srtgroep_key
|
||
FROM ins_srtgroep
|
||
WHERE UPPER (ins_srtgroep_omschrijving) = UPPER (rec_grp.groep)
|
||
AND ins_discipline_key = v_discipline_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_srtgroep (ins_discipline_key,
|
||
ins_srtgroep_omschrijving)
|
||
VALUES (v_discipline_key, rec_grp.groep);
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen te importeren rij';
|
||
v_aanduiding := '';
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 12, v_alg_ruimte_nr);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 13, v_ins_deel_aanmaak_txt);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 14, v_ins_deel_aantal_txt);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 15, v_ins_deel_eenheid);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_ins_deel_omschrijving);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_ins_deel_opmerking);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 29, v_ins_srtcontrole_periode_txt);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 24, v_ins_srtcontrole_prijs_txt);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_ins_srtdeel_code_txt);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_ins_srtdeel_omschrijving);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_kenmerk1); -- code RVB
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_kenmerk2); -- opmerking
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_kenmerk3); -- taak
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 16, v_kenmerk5); -- fabrikant / merk
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 28, v_kenmerk7); -- percentage
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 30, v_kenmerk9); -- startjaar
|
||
|
||
v_aanduiding := v_ins_deel_omschrijving || '|' || v_kenmerk4;
|
||
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_discipline_omschrijving: ' || v_ins_srtdeel_code_txt;
|
||
SELECT d.ins_discipline_omschrijving
|
||
INTO v_ins_discipline_omschrijving
|
||
FROM ins_discipline d
|
||
WHERE SUBSTR (d.ins_discipline_omschrijving, 1, 1) = SUBSTR (v_ins_srtdeel_code_txt, 1, 1);
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtgroep_omschrijving: ' || v_ins_srtdeel_code_txt;
|
||
SELECT sg.ins_srtgroep_omschrijving
|
||
INTO v_ins_srtgroep_omschrijving
|
||
FROM ins_srtgroep sg
|
||
WHERE SUBSTR (sg.ins_srtgroep_omschrijving, 1, 2) = SUBSTR (v_ins_srtdeel_code_txt, 1, 2);
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren ins_srtdeel_code: ' || v_ins_srtdeel_code_txt;
|
||
IF LENGTH(v_ins_srtdeel_code_txt) > 10
|
||
THEN
|
||
v_ins_srtdeel_code := REPLACE(v_ins_srtdeel_code_txt, '.');
|
||
ELSE
|
||
v_ins_srtdeel_code := v_ins_srtdeel_code_txt;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_alg_ruimte_nr: ' || v_alg_ruimte_nr;
|
||
SELECT alg_locatie_code, alg_gebouw_upper, alg_verdieping_volgnr
|
||
INTO v_alg_locatie_code, v_alg_gebouw_code, v_alg_verdieping_volgnr
|
||
FROM alg_v_ruimte_gegevens rg
|
||
WHERE UPPER(rg.alg_ruimte_nr) = UPPER(v_alg_ruimte_nr);
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_deel_aanmaak_txt: ' || v_ins_deel_aanmaak_txt;
|
||
v_ins_deel_aanmaak := NULL;
|
||
IF v_ins_deel_aanmaak_txt IS NOT NULL
|
||
THEN
|
||
v_ins_deel_aanmaak := to_date('0101' || v_ins_deel_aanmaak_txt, 'ddmmyyyy');
|
||
ELSE
|
||
v_ins_deel_aanmaak := SYSDATE;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_kenmerk9: ' || v_kenmerk9;
|
||
IF v_kenmerk9 IS NOT NULL
|
||
THEN
|
||
v_ins_deel_startjaar := to_date('0101' || v_kenmerk9, 'ddmmyyyy');
|
||
ELSE
|
||
v_ins_deel_startjaar := NULL;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_deel_aantal_txt: ' || v_ins_deel_aantal_txt;
|
||
IF v_ins_deel_aantal_txt IS NOT NULL
|
||
THEN
|
||
v_ins_deel_aantal := to_number(v_ins_deel_aantal_txt);
|
||
ELSE
|
||
v_ins_deel_aantal := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtcontrole_periode_txt: ' || v_ins_srtcontrole_periode_txt;
|
||
IF v_ins_srtcontrole_periode_txt IS NOT NULL
|
||
THEN
|
||
v_ins_srtcontrole_periode := to_number(v_ins_srtcontrole_periode_txt);
|
||
ELSE
|
||
v_ins_srtcontrole_periode := NULL;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtcontrole_prijs_txt: ' || v_ins_srtcontrole_prijs_txt;
|
||
IF v_ins_srtcontrole_prijs_txt IS NOT NULL
|
||
THEN
|
||
v_ins_srtcontrole_prijs := to_number(REPLACE(REPLACE(v_ins_srtcontrole_prijs_txt, '.'), ',', '.'));
|
||
ELSE
|
||
v_ins_srtcontrole_prijs := NULL;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_kenmerk7: ' || v_kenmerk7;
|
||
IF v_kenmerk7 IS NOT NULL
|
||
THEN
|
||
IF INSTR(v_kenmerk7, '%') = 0
|
||
THEN
|
||
v_ins_deel_percentage := to_number(v_kenmerk7)*100;
|
||
ELSE
|
||
v_ins_deel_percentage := to_number(REPLACE(v_kenmerk7, '%'));
|
||
END IF;
|
||
ELSE
|
||
v_ins_deel_percentage := 100;
|
||
END IF;
|
||
|
||
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2,
|
||
ins_kenmerkwaarde3,
|
||
ins_kenmerkwaarde4,
|
||
ins_kenmerkwaarde5,
|
||
ins_kenmerkwaarde6,
|
||
ins_kenmerkwaarde7,
|
||
ins_kenmerkwaarde8,
|
||
ins_kenmerkwaarde9,
|
||
ins_kenmerkwaarde10,
|
||
ins_deel_aanmaak,
|
||
ins_deel_aantal,
|
||
ins_deel_externnr)
|
||
VALUES (SUBSTR(v_ins_discipline_omschrijving, 1,60),
|
||
SUBSTR(v_ins_srtgroep_omschrijving, 1, 60),
|
||
SUBSTR(v_ins_srtdeel_code,1,10),
|
||
SUBSTR(v_ins_srtdeel_omschrijving || ' - ' || v_ins_srtdeel_code_txt, 1, 100),
|
||
SUBSTR(v_ins_deel_omschrijving, 1, 60),
|
||
SUBSTR(v_ins_deel_opmerking, 1, 320),
|
||
SUBSTR(v_alg_locatie_code, 1, 10),
|
||
SUBSTR(v_alg_gebouw_code, 1, 12),
|
||
v_alg_verdieping_volgnr,
|
||
SUBSTR(v_alg_ruimte_nr,1,20),
|
||
DECODE(v_kenmerk1, NULL, NULL, 'Code RVB|0=' || v_kenmerk1),
|
||
DECODE(v_kenmerk2, NULL, NULL, 'Opmerking|0=' || v_kenmerk2),
|
||
v_kenmerk3,
|
||
'',
|
||
DECODE(v_kenmerk5, NULL, NULL, 'Merk|0=' || v_kenmerk5),
|
||
v_ins_srtcontrole_prijs,
|
||
v_ins_deel_percentage,
|
||
v_ins_srtcontrole_periode,
|
||
to_char(v_ins_deel_startjaar, 'ddmmyyyy'),
|
||
to_char(v_ins_deel_aanmaak, 'ddmmyyyy'),
|
||
v_ins_deel_aanmaak,
|
||
to_number(v_ins_deel_aantal),
|
||
v_count_tot);
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
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;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
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 kmmo_import_assets;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE kmmo_update_assets (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c IS SELECT * FROM fac_imp_ins;
|
||
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (100);
|
||
|
||
v_deel_key NUMBER;
|
||
v_srtdeel_key NUMBER;
|
||
v_srtcontrole_key NUMBER;
|
||
v_srtcontroledl_xcp_key NUMBER;
|
||
v_taakcat_key NUMBER;
|
||
v_srtcontrole_periode INS_SRTCONTROLE.INS_SRTCONTROLE_PERIODE%TYPE;
|
||
v_srtcontrole_materiaal INS_SRTCONTROLE.INS_SRTCONTROLE_MATERIAAL%TYPE;
|
||
v_srtcontrole_percentage INS_SRTCONTROLE.INS_SRTCONTROLE_PERCENTAGE%TYPE;
|
||
v_srtcontrole_level INS_SRTCONTROLE.INS_SRTCONTROLE_LEVEL%TYPE;
|
||
v_percentage NUMBER;
|
||
v_materiaal INS_SRTCONTROLEDL_XCP.INS_SRTCONTROLEDL_XCP_MATERIA%TYPE;
|
||
BEGIN
|
||
|
||
fac_update_ins(p_import_key);
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec.ins_deel_omschrijving;
|
||
-- zoek het object
|
||
v_errorhint := 'Zoek het object';
|
||
|
||
SELECT ins_deel_key, ins_srtdeel_key
|
||
INTO v_deel_key, v_srtdeel_key
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving = rec.ins_deel_omschrijving;
|
||
|
||
-- zoek de taakcategorie
|
||
v_errorhint := 'Zoek de taakcategorie';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_taakcat_key
|
||
FROM ctr_discipline
|
||
WHERE UPPER (ins_discipline_omschrijving) =
|
||
UPPER (rec.ins_kenmerkwaarde3);
|
||
|
||
BEGIN
|
||
v_errorhint := 'Bepaal percentage';
|
||
v_percentage := NULL;
|
||
|
||
-- IF rec.ins_kenmerkwaarde7 <> 1
|
||
-- AND rec.ins_kenmerkwaarde7 IS NOT NULL
|
||
-- THEN
|
||
-- v_percentage := rec.ins_kenmerkwaarde7 * 100;
|
||
-- END IF;
|
||
v_percentage := rec.ins_kenmerkwaarde7;
|
||
|
||
v_errorhint := 'Bepaal materiaalkosten';
|
||
v_materiaal :=
|
||
FAC.safe_to_number (
|
||
REPLACE (rec.ins_kenmerkwaarde6, ',', '.'));
|
||
|
||
-- zoek de taak
|
||
v_errorhint := 'Zoek de taak';
|
||
|
||
SELECT ins_srtcontrole_key,
|
||
ins_srtcontrole_periode,
|
||
ins_srtcontrole_materiaal,
|
||
ins_srtcontrole_percentage
|
||
INTO v_srtcontrole_key,
|
||
v_srtcontrole_periode,
|
||
v_srtcontrole_materiaal,
|
||
v_srtcontrole_percentage
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtinstallatie_key = v_srtdeel_key
|
||
AND ins_srtcontrole_niveau = 'S'
|
||
AND ctr_discipline_key = v_taakcat_key;
|
||
|
||
IF v_srtcontrole_periode <>
|
||
COALESCE (rec.ins_kenmerkwaarde8, 0)
|
||
OR v_srtcontrole_materiaal <> v_materiaal
|
||
OR v_srtcontrole_percentage <> v_percentage
|
||
OR ( rec.ins_kenmerkwaarde9 IS NOT NULL
|
||
AND rec.ins_kenmerkwaarde9 <>
|
||
COALESCE (rec.ins_kenmerkwaarde10, '01010000'))
|
||
THEN
|
||
-- dan moeten we een dl_xcp record aanmaken
|
||
v_errorhint := 'Aanmaken xcp';
|
||
|
||
INSERT INTO ins_srtcontroledl_xcp (ins_srtcontrole_key,
|
||
ins_deel_key)
|
||
VALUES (v_srtcontrole_key, v_deel_key)
|
||
RETURNING ins_srtcontroledl_xcp_key
|
||
INTO v_srtcontroledl_xcp_key;
|
||
|
||
v_errorhint := 'Aanpassen periode';
|
||
|
||
IF v_srtcontrole_periode <>
|
||
COALESCE (rec.ins_kenmerkwaarde8, 0)
|
||
THEN
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_periode =
|
||
COALESCE (
|
||
TO_NUMBER (rec.ins_kenmerkwaarde8),
|
||
0)
|
||
WHERE ins_srtcontroledl_xcp_key =
|
||
v_srtcontroledl_xcp_key;
|
||
END IF;
|
||
|
||
v_errorhint :=
|
||
'Aanpassen materiaal: '
|
||
|| rec.ins_kenmerkwaarde6
|
||
|| ' - '
|
||
|| v_materiaal;
|
||
|
||
IF v_srtcontrole_materiaal <> v_materiaal
|
||
THEN
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_materia = v_materiaal
|
||
WHERE ins_srtcontroledl_xcp_key =
|
||
v_srtcontroledl_xcp_key;
|
||
END IF;
|
||
|
||
v_errorhint := 'Aanpassen percentage';
|
||
|
||
IF v_srtcontrole_percentage <> v_percentage
|
||
THEN
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_perc = v_percentage
|
||
WHERE ins_srtcontroledl_xcp_key =
|
||
v_srtcontroledl_xcp_key;
|
||
END IF;
|
||
|
||
v_errorhint := 'Aanpassen startdatum: ' || rec.ins_kenmerkwaarde9;
|
||
|
||
IF rec.ins_kenmerkwaarde9 IS NOT NULL
|
||
AND rec.ins_kenmerkwaarde9 <>
|
||
COALESCE (rec.ins_kenmerkwaarde10, '01010000')
|
||
THEN
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_startdat =
|
||
TRUNC (
|
||
TO_DATE (rec.ins_kenmerkwaarde9,
|
||
'DDMMYYYY'),
|
||
'YYYY')
|
||
WHERE ins_srtcontroledl_xcp_key =
|
||
v_srtcontroledl_xcp_key;
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint := 'Bepalen level';
|
||
v_srtcontrole_level := 10;
|
||
|
||
IF rec.ins_kenmerkwaarde3 <> 'Vervanging'
|
||
THEN
|
||
v_srtcontrole_level := 100;
|
||
END IF;
|
||
|
||
v_errorhint := 'Aanmaken srtcontrole';
|
||
|
||
-- We vullen de controle altijd met een bedrag van 0 euro. De overrule heeft dan het juiste
|
||
-- bedrag. Hiermee voorkomen we een controle met een bepaald bedrag waarbij er voor een bepaald object
|
||
-- die taak niet voorkomt.
|
||
INSERT INTO ins_srtcontrole (
|
||
ins_srtinstallatie_key,
|
||
ins_srtcontrole_niveau,
|
||
ins_srtcontrole_omschrijving,
|
||
ctr_discipline_key,
|
||
ins_Srtcontrole_periode,
|
||
ins_srtcontrole_eenheid,
|
||
ins_srtcontrole_level,
|
||
ins_srtcontrole_materiaal,
|
||
ins_srtcontrole_percentage)
|
||
VALUES (
|
||
v_srtdeel_key,
|
||
'S',
|
||
rec.ins_kenmerkwaarde3
|
||
|| ' - '
|
||
|| rec.ins_srtdeel_code,
|
||
v_taakcat_key,
|
||
COALESCE (
|
||
TO_NUMBER (rec.ins_kenmerkwaarde8),
|
||
0),
|
||
4,
|
||
v_srtcontrole_level,
|
||
0,
|
||
v_srtcontrole_percentage)
|
||
RETURNING ins_srtcontrole_key INTO v_srtcontrole_key;
|
||
|
||
INSERT INTO ins_srtcontroledl_xcp (ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_materia,
|
||
ins_deel_key)
|
||
VALUES (v_srtcontrole_key, v_materiaal, v_deel_key)
|
||
RETURNING ins_srtcontroledl_xcp_key
|
||
INTO v_srtcontroledl_xcp_key;
|
||
|
||
END;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('KMMO.import MJOB',
|
||
'E',
|
||
v_aanduiding || ': ' || v_errormsg,
|
||
v_errorhint);
|
||
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('KMMO.import MJOB',
|
||
'E',
|
||
v_aanduiding || ': ' || v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
/
|
||
|
||
--
|
||
-- Rondleidingen
|
||
--
|
||
CREATE OR REPLACE VIEW kmmo_v_rap_rondl_planning
|
||
AS
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
'R' || rrr.res_reservering_key || '/' || res_rsv_ruimte_volgnr
|
||
reservering,
|
||
FAC.gettrackingdate ('RESNEW', rrr.res_rsv_ruimte_key)
|
||
res_aanmaak,
|
||
res_rsv_ruimte_van,
|
||
res_rsv_ruimte_tot,
|
||
(SELECT fac_usrdata_code
|
||
FROM fac_usrdata ud, res_kenmerkwaarde kw
|
||
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND kw.res_kenmerk_key = 1 -- taal rondleiding
|
||
AND fac.safe_to_number (kw.res_kenmerkreservering_waarde) =
|
||
ud.fac_usrdata_key)
|
||
taal,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
DECODE (rrr.res_status_fo_key,
|
||
1, 'Aanvraag',
|
||
2, 'Bevestigd',
|
||
3, 'Geblokkeerd',
|
||
4, 'Vervallen')
|
||
res_status,
|
||
'Ron' || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht,
|
||
p.prs_perslid_naam_full,
|
||
so.mld_statusopdr_omschrijving,
|
||
rr.res_ruimte_nr
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
res_rsv_ruimte rrr,
|
||
prs_v_perslid_fullnames_all p,
|
||
mld_statusopdr so,
|
||
res_ruimte rr,
|
||
res_ruimte_opstelling ro
|
||
WHERE o.mld_uitvoerende_keys = p.prs_perslid_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND o.mld_statusopdr_key = so.mld_statusopdr_key
|
||
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW kmmo_v_rondleidingen_kijk
|
||
AS
|
||
SELECT res_rsv_ruimte_van,
|
||
res_rsv_ruimte_tot,
|
||
res_reservering_key || '/' || res_rsv_ruimte_volgnr res_rsv_ruimte_nr,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
rrr.res_rsv_ruimte_opmerking,
|
||
pf.prs_perslid_naam_full,
|
||
COALESCE(so.mld_statusopdr_omschrijving, 'Geaccepteerd') mld_statusopdr_omschrijving,
|
||
LISTAGG (rd.res_deel_omschrijving, CHR (10))
|
||
WITHIN GROUP (ORDER BY rd.res_deel_omschrijving) AS voorzieningen,
|
||
ra.res_activiteit_omschrijving,
|
||
FLX.getflex ('RES', 82, rrr.res_rsv_ruimte_key) naam,
|
||
rrr.res_rsv_ruimte_key
|
||
FROM res_rsv_ruimte rrr,
|
||
res_activiteit ra,
|
||
mld_melding m,
|
||
mld_opdr o,
|
||
res_rsv_deel rrd,
|
||
res_deel rd,
|
||
mld_statusopdr so,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT COALESCE (r.res_rsv_ruimte_key, a.res_rsv_ruimte_key) res_rsv_ruimte_key
|
||
FROM (SELECT res_rsv_ruimte_key
|
||
FROM res_rsv_ruimte rrr
|
||
WHERE res_activiteit_key = 30) r
|
||
FULL JOIN
|
||
(SELECT res_rsv_ruimte_key
|
||
FROM res_rsv_ruimte rrr
|
||
WHERE EXISTS
|
||
(SELECT 1
|
||
FROM res_rsv_deel rrd, res_deel rd
|
||
WHERE rrr.res_rsv_ruimte_key =
|
||
rrd.res_rsv_ruimte_key
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_discipline_key = 601 -- audiotours en fluistersets
|
||
)) a
|
||
ON r.res_rsv_ruimte_key = a.res_rsv_ruimte_key) my_rrr
|
||
WHERE my_rrr.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_rsv_ruimte_key = m.res_rsv_ruimte_key(+)
|
||
AND m.mld_melding_key = o.mld_melding_key(+)
|
||
AND rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key(+)
|
||
AND rrr.res_activiteit_key = ra.res_activiteit_key(+)
|
||
AND rrd.res_deel_key = rd.res_deel_key(+)
|
||
AND o.mld_uitvoerende_keys = pf.prs_perslid_key(+)
|
||
AND o.mld_statusopdr_key = so.mld_statusopdr_key(+)
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND rrd.res_rsv_deel_verwijder IS NULL
|
||
GROUP BY rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
pf.prs_perslid_naam_full,
|
||
so.mld_statusopdr_omschrijving,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
rrr.res_rsv_ruimte_opmerking,
|
||
ra.res_activiteit_omschrijving,
|
||
rrr.res_rsv_ruimte_key;
|
||
|
||
CREATE OR REPLACE VIEW kmmo_v_rap_rondl_afwezigheid
|
||
AS
|
||
SELECT pf.prs_perslid_naam_full rondleider,
|
||
m.prs_perslid_key rondleider_key,
|
||
m.mld_melding_key,
|
||
fac.safe_to_date (flx.getflex ('MLD', 421, m.mld_melding_key),
|
||
'dd-mm-yyyy') van,
|
||
fac.safe_to_date (flx.getflex ('MLD', 423, m.mld_melding_key),
|
||
'dd-mm-yyyy') tot,
|
||
CASE
|
||
WHEN fac.safe_to_date (
|
||
flx.getflex ('MLD', 423, m.mld_melding_key),
|
||
'dd-mm-yyyy') >
|
||
SYSDATE
|
||
THEN
|
||
1
|
||
ELSE
|
||
0
|
||
END toekomst
|
||
FROM mld_melding m, prs_v_perslid_fullnames_all pf
|
||
WHERE mld_stdmelding_key = 261 -- Afwezigheid
|
||
AND m.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-- kalender functie voor de rondleiders. Hierin zien ze de eigen opdrachten en de geaccepteerde opdrachten van anderen.
|
||
-- verder komen de aangevraagde vrije dagen in het overzicht.
|
||
CREATE OR REPLACE VIEW kmmo_rap_cal_rondleiders
|
||
AS
|
||
SELECT r.prs_perslid_key user_key,
|
||
o.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr
|
||
|| ' ' || DECODE(SUBSTR(rog.res_ruimte_nr, 1,1), 'V', 'VC', 'B', 'BT', 'T', 'TT') || ' ('
|
||
|| so.mld_statusopdr_omschrijving
|
||
|| DECODE(r.prs_perslid_key, o.mld_uitvoerende_keys, '', ' - ' || p.prs_perslid_voornaam)
|
||
|| ')' title,
|
||
rrr.res_rsv_ruimte_tot tot,
|
||
rrr.res_rsv_ruimte_van van,
|
||
o.mld_opdr_key item_key,
|
||
DECODE (o.mld_statusopdr_key,
|
||
1, DECODE(r.prs_srtperslid_key, 1361, '#FF0000','#C0C0C0'), -- Afgewezen rood voor de planner, grijs voor de rondleider
|
||
5, DECODE(r.prs_srtperslid_key, 1361, '#0000FF', DECODE(r.prs_perslid_key, o.mld_uitvoerende_keys, '#0000FF', '#C0C0C0')), -- Toegekend blauw voor de planner en rondleider, grijs voor de rest
|
||
6, DECODE(r.prs_srtperslid_key, 1361, '#CC0000','#C0C0C0'), -- Afgemeld donkerrood voor de planner grijs voor de rest
|
||
8, DECODE(r.prs_srtperslid_key, 1361, '#008000', DECODE(r.prs_perslid_key, o.mld_uitvoerende_keys, '#008000', '#C0C0C0'))) color, -- Geaccepteerd groen
|
||
DECODE (o.mld_statusopdr_key,
|
||
1, '#FFFFFF', -- Afgewezen
|
||
5, '#FFFFFF', -- Toegekend
|
||
6, '#000000', -- Afgemeld
|
||
8, '#FFFFFF') textcolor, -- Geaccepteerd
|
||
DECODE(r.prs_perslid_key, o.mld_uitvoerende_keys, '?u=opdracht'
|
||
|| CHR (38)
|
||
|| 'internal=1'
|
||
|| CHR (38)
|
||
|| 'k='
|
||
|| o.mld_opdr_key) url
|
||
FROM mld_opdr o, mld_melding m, res_rsv_ruimte rrr, res_v_ruimte_opstel_gegevens rog, mld_statusopdr so, prs_perslid p,
|
||
(SELECT gg.prs_perslid_key, pr.prs_srtperslid_key FROM fac_gebruikersgroep gg, prs_perslid pr WHERE gg.prs_perslid_key = pr.prs_perslid_key AND fac_groep_key = 321) r -- rondleiders
|
||
WHERE mld_typeopdr_key = 241 -- rondleidingen
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_ruimte_opstel_key = rog.res_ruimte_opstel_key
|
||
AND o.mld_statusopdr_key = so.mld_statusopdr_key
|
||
AND o.mld_uitvoerende_keys = p.prs_perslid_key
|
||
AND o.mld_opdr_einddatum > ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -3)
|
||
AND NOT (o.mld_statusopdr_key IN (1,6) AND r.prs_perslid_key <> o.mld_uitvoerende_keys)
|
||
UNION ALL
|
||
SELECT rondleider_key,
|
||
'Verlof ' || mld_melding_key,
|
||
tot + 1,
|
||
DECODE(SIGN(van - ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1)), -1, ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -3), van) van,
|
||
mld_melding_key,
|
||
'#cc0066',
|
||
'#ffffff',
|
||
'?u=melding'
|
||
|| CHR (38)
|
||
|| 'internal=1'
|
||
|| CHR (38)
|
||
|| 'k='
|
||
|| mld_melding_key url
|
||
FROM kmmo_v_rap_rondl_afwezigheid
|
||
WHERE tot > ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -3);
|
||
|
||
|
||
--
|
||
-- Beschikbaarheids kalenders
|
||
--
|
||
|
||
-- afwijkende aanwezigheid die de rondleider via een melding aangeeft.
|
||
CREATE OR REPLACE VIEW kmmo_v_mld_beschikb_raw
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
prs_perslid_key,
|
||
DECODE(kmb.mld_kenmerkmelding_waarde, 362, 'Afwezig', 'Aanwezig') beschikbaar ,
|
||
TO_DATE(kmdv.mld_kenmerkmelding_waarde || ' ' || DECODE(COALESCE(kmddv.mld_kenmerkmelding_waarde, '341'), '341', '10:15', '13:30'), 'dd-mm-yyyy hh24:mi') van,
|
||
TO_DATE(kmdt.mld_kenmerkmelding_waarde || ' ' || DECODE(COALESCE(kmddt.mld_kenmerkmelding_waarde, '342'), '341', '13:30', '17:00'), 'dd-mm-yyyy hh24:mi') tot
|
||
FROM mld_melding m,
|
||
(SELECT mld_melding_key, mld_kenmerkmelding_waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 4741) kmb,
|
||
(SELECT mld_melding_key, mld_kenmerkmelding_waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 421) kmdv,
|
||
(SELECT mld_melding_key, mld_kenmerkmelding_waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 423) kmdt,
|
||
(SELECT mld_melding_key, mld_kenmerkmelding_waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 4721) kmddv,
|
||
(SELECT mld_melding_key, mld_kenmerkmelding_waarde FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 4222) kmddt
|
||
WHERE mld_stdmelding_key = 261 -- melding aan/afwezigheid
|
||
AND m.mld_melding_key = kmb.mld_melding_key
|
||
AND m.mld_melding_key = kmdv.mld_melding_key
|
||
AND m.mld_melding_key = kmdt.mld_melding_key
|
||
AND m.mld_melding_key = kmddv.mld_melding_key(+)
|
||
AND m.mld_melding_key = kmddt.mld_melding_key(+);
|
||
|
||
-- vaste beschikbaarheid die bij de persoon geregistreerd staat.
|
||
CREATE OR REPLACE VIEW kmmo_v_prs_beschikb_raw
|
||
AS
|
||
SELECT 1 dvdw,
|
||
prs_perslid_key,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1006) ochtend,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1200) middag
|
||
FROM prs_perslid p, prs_srtperslid sp
|
||
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key AND sp.prs_srtperslid_omschrijving LIKE 'Rondleider%'
|
||
UNION ALL
|
||
SELECT 2 dvdw,
|
||
prs_perslid_key,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1000) ochtend,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1180) middag
|
||
FROM prs_perslid p, prs_srtperslid sp
|
||
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key AND sp.prs_srtperslid_omschrijving LIKE 'Rondleider%'
|
||
UNION ALL
|
||
SELECT 3 dvdw,
|
||
prs_perslid_key,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1001) ochtend,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1181) middag
|
||
FROM prs_perslid p, prs_srtperslid sp
|
||
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key AND sp.prs_srtperslid_omschrijving LIKE 'Rondleider%'
|
||
UNION ALL
|
||
SELECT 4 dvdw,
|
||
prs_perslid_key,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1002) ochtend,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1182) middag
|
||
FROM prs_perslid p, prs_srtperslid sp
|
||
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key AND sp.prs_srtperslid_omschrijving LIKE 'Rondleider%'
|
||
UNION ALL
|
||
SELECT 5 dvdw,
|
||
prs_perslid_key,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1003) ochtend,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1183) middag
|
||
FROM prs_perslid p, prs_srtperslid sp
|
||
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key AND sp.prs_srtperslid_omschrijving LIKE 'Rondleider%'
|
||
UNION ALL
|
||
SELECT 6 dvdw,
|
||
prs_perslid_key,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1004) ochtend,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1220) middag
|
||
FROM prs_perslid p, prs_srtperslid sp
|
||
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key AND sp.prs_srtperslid_omschrijving LIKE 'Rondleider%'
|
||
UNION ALL
|
||
SELECT 7 dvdw,
|
||
prs_perslid_key,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1005) ochtend,
|
||
(SELECT 1
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1221) middag
|
||
FROM prs_perslid p, prs_srtperslid sp
|
||
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key AND sp.prs_srtperslid_omschrijving LIKE 'Rondleider%';
|
||
|
||
-- Combinatie van persoonlijke beschikbaarheid en de meldingen overrule
|
||
CREATE OR REPLACE VIEW kmmo_v_beschikb_raw
|
||
AS
|
||
WITH
|
||
datums
|
||
AS
|
||
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= 365) -- 1 jaar voorruit
|
||
SELECT datums.datum + 41 / 96 van,
|
||
datums.datum + 54 / 96 tot,
|
||
'ochtend' dagdeel,
|
||
pf.prs_perslid_naam_full,
|
||
DECODE (ochtend, NULL, 'V', 'W') afw_type,
|
||
DECODE (
|
||
ochtend,
|
||
NULL, DECODE (
|
||
(SELECT MAX (1)
|
||
FROM kmmo_v_mld_beschikb_raw mbr
|
||
WHERE mbr.prs_perslid_key = pbr.prs_perslid_key
|
||
AND beschikbaar = 'Aanwezig'
|
||
AND datums.datum + 50 / 96 BETWEEN van AND tot),
|
||
1, 1,
|
||
0),
|
||
DECODE (
|
||
(SELECT MAX (1)
|
||
FROM kmmo_v_mld_beschikb_raw mbr
|
||
WHERE mbr.prs_perslid_key = pbr.prs_perslid_key
|
||
AND beschikbaar = 'Afwezig'
|
||
AND datums.datum + 50 / 96 BETWEEN van AND tot),
|
||
1, -1,
|
||
1)) beschikbaar,
|
||
pf.prs_perslid_key
|
||
FROM kmmo_v_prs_beschikb_raw pbr, datums, prs_v_perslid_fullnames pf
|
||
WHERE pbr.prs_perslid_key = pf.prs_perslid_key AND TO_CHAR (datums.datum, 'D') = pbr.dvdw
|
||
UNION ALL
|
||
SELECT datums.datum + 54 / 96 van,
|
||
datums.datum + 68 / 96 tot,
|
||
'middag' dagdeel,
|
||
pf.prs_perslid_naam_full,
|
||
DECODE (middag, NULL, 'V', 'W') afw_type,
|
||
DECODE (
|
||
middag,
|
||
NULL, DECODE (
|
||
(SELECT MAX (1)
|
||
FROM kmmo_v_mld_beschikb_raw mbr
|
||
WHERE mbr.prs_perslid_key = pbr.prs_perslid_key
|
||
AND beschikbaar = 'Aanwezig'
|
||
AND datums.datum + 60 / 96 BETWEEN van AND tot),
|
||
1, -1,
|
||
0),
|
||
DECODE (
|
||
(SELECT MAX (1)
|
||
FROM kmmo_v_mld_beschikb_raw mbr
|
||
WHERE mbr.prs_perslid_key = pbr.prs_perslid_key
|
||
AND beschikbaar = 'Afwezig'
|
||
AND datums.datum + 60 / 96 BETWEEN van AND tot),
|
||
1, 0,
|
||
1)) beschikbaar,
|
||
pf.prs_perslid_key
|
||
FROM kmmo_v_prs_beschikb_raw pbr, datums, prs_v_perslid_fullnames pf
|
||
WHERE pbr.prs_perslid_key = pf.prs_perslid_key AND TO_CHAR (datums.datum, 'D') = pbr.dvdw;
|
||
|
||
-- aanwezigheidskalender
|
||
CREATE OR REPLACE VIEW kmmo_rap_cal_rondl_aanwezig
|
||
AS
|
||
SELECT NULL user_key,
|
||
prs_perslid_naam_full title,
|
||
tot,
|
||
van,
|
||
DECODE (
|
||
(SELECT COUNT (*)
|
||
FROM mld_opdr
|
||
WHERE mld_statusopdr_key NOT IN (1, 2) -- afgewezen , niet akkoord
|
||
AND mld_uitvoerende_keys = r.prs_perslid_key
|
||
AND mld_opdr_plandatum BETWEEN van AND tot - 1 / (24 * 60)),
|
||
'0', '#008000',
|
||
'#00CCCC') color, -- Geaccepteerd groen
|
||
'#FFFFFF' textcolor, -- Geaccepteerd
|
||
NULL url,
|
||
NULL item_key
|
||
FROM kmmo_v_beschikb_raw r
|
||
WHERE beschikbaar = 1
|
||
UNION ALL
|
||
SELECT NULL user_key,
|
||
prs_perslid_naam_full title,
|
||
res_rsv_ruimte_tot tot,
|
||
res_rsv_ruimte_van + 1 / (24 * 60 * 60) van,
|
||
'#FF8800' color, -- opdracht gevonden oranje
|
||
'#FFFFFF' textcolor,
|
||
'?u=opdracht' || CHR (38) || 'k=' || o.mld_opdr_key url,
|
||
o.mld_opdr_key item_key
|
||
FROM mld_opdr o,
|
||
prs_v_perslid_fullnames pf,
|
||
mld_melding m,
|
||
res_rsv_ruimte rrr
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND o.mld_uitvoerende_keys = pf.prs_perslid_key
|
||
AND o.mld_opdr_plandatum BETWEEN TRUNC (SYSDATE) AND SYSDATE + 365;
|
||
|
||
CREATE OR REPLACE VIEW kmmo_rap_cal_rondl_afw
|
||
AS
|
||
SELECT NULL user_key,
|
||
prs_perslid_naam_full title,
|
||
tot,
|
||
van,
|
||
DECODE (beschikbaar, -1, '#FF8800', '#666666') color, -- Werktijden grijs, vakantie oranje
|
||
'#FFFFFF' textcolor, -- Wit
|
||
NULL url,
|
||
NULL item_key
|
||
FROM kmmo_v_beschikb_raw r
|
||
WHERE beschikbaar <> 1;
|
||
|
||
|
||
-- Kalender voor de backoffice rondleidingen om te zien wie wanneer vakantie heeft.
|
||
CREATE OR REPLACE VIEW kmmo_rap_cal_vakantie
|
||
AS
|
||
SELECT NULL user_key,
|
||
m.mld_melding_key || ' ' || p.prs_perslid_voornaam title,
|
||
tot + 1 tot,
|
||
van,
|
||
m.mld_melding_key item_key,
|
||
'#008000' color,
|
||
'#FFFFFF' textcolor,
|
||
'?u=melding'
|
||
|| CHR (38)
|
||
|| 'internal=1'
|
||
|| CHR (38)
|
||
|| 'k='
|
||
|| m.mld_melding_key url
|
||
FROM kmmo_v_rap_rondl_afwezigheid m, prs_perslid p
|
||
WHERE m.rondleider_key = p.prs_perslid_key
|
||
AND tot > ADD_MONTHS (TRUNC (SYSDATE, 'MM'), -3);
|
||
|
||
|
||
-- view om te zien welke reservering facturabel is. Dat betekent dat <20><>n van de rsv_ruimtes het kenmerk facturabel op 1 heeft staan.
|
||
CREATE OR REPLACE VIEW kmmo_v_res_facturabel
|
||
AS
|
||
SELECT rrr.res_reservering_key
|
||
FROM res_rsv_ruimte rrr, res_kenmerk rk
|
||
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND rk.res_srtkenmerk_key = 101
|
||
AND rrr.res_activiteit_key = rk.res_activiteit_key
|
||
AND COALESCE (
|
||
flx.getflex ('RES',
|
||
rk.res_kenmerk_key,
|
||
rrr.res_rsv_ruimte_key),
|
||
'0') =
|
||
'1'
|
||
GROUP BY rrr.res_reservering_key;
|
||
|
||
-- View om te rapporteren welke factuur bevroren mag worden via de export.
|
||
CREATE OR REPLACE VIEW kmmo_v_rap_res_factuurstatus
|
||
AS
|
||
SELECT r.res_reservering_key,
|
||
r.res_rsv_ruimte_volgnr,
|
||
r.res_reservering_key || '/' || r.res_rsv_ruimte_volgnr res_nr,
|
||
r.type,
|
||
r.res_rsv_ruimte_van,
|
||
r.res_rsv_ruimte_omschrijving,
|
||
bo.res_status_bo_omschrijving,
|
||
bo.res_status_bo_key,
|
||
r.res_rsv_ruimte_key,
|
||
f.factuur_nummer,
|
||
f.export_datum,
|
||
prijs_inc,
|
||
prijs_ex,
|
||
btw_h,
|
||
btw_l
|
||
FROM (SELECT f.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
'R' type,
|
||
res_rsv_ruimte_van,
|
||
res_rsv_ruimte_omschrijving,
|
||
res_status_bo_key,
|
||
rrr.res_rsv_ruimte_key,
|
||
res_rsv_ruimte_prijs - COALESCE(res_rsv_ruimte_korting, 0) prijs_inc,
|
||
(res_rsv_ruimte_prijs - COALESCE(res_rsv_ruimte_korting, 0)) / 1.21 prijs_ex,
|
||
21 * (res_rsv_ruimte_prijs - COALESCE(res_rsv_ruimte_korting, 0)) / 121 btw_h,
|
||
0 btw_l
|
||
FROM kmmo_v_res_facturabel f, res_rsv_ruimte rrr
|
||
WHERE res_rsv_ruimte_verwijder IS NULL
|
||
AND f.res_reservering_key = rrr.res_reservering_key
|
||
UNION ALL
|
||
SELECT f.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
'D' type,
|
||
res_rsv_ruimte_van,
|
||
COUNT (*) || ' * ' || res_deel_omschrijving,
|
||
MIN (rrd.res_status_bo_key),
|
||
rrr.res_rsv_ruimte_key,
|
||
count(*) * res_rsv_deel_prijs,
|
||
count(*) * res_rsv_deel_prijs / 1.21,
|
||
count(*) * 21 * res_rsv_deel_prijs / 121,
|
||
0
|
||
FROM kmmo_v_res_facturabel f,
|
||
res_rsv_ruimte rrr,
|
||
res_rsv_deel rrd,
|
||
res_deel rd
|
||
WHERE res_rsv_ruimte_verwijder IS NULL
|
||
AND f.res_reservering_key = rrr.res_reservering_key
|
||
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrd.res_rsv_deel_verwijder IS NULL
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
GROUP BY f.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
res_rsv_ruimte_van,
|
||
res_deel_omschrijving,
|
||
rrr.res_rsv_ruimte_key,
|
||
res_rsv_deel_prijs
|
||
UNION ALL
|
||
SELECT f.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
'A' type,
|
||
res_rsv_ruimte_van,
|
||
res_rsv_artikel_aantal || ' * ' || res_artikel_omschrijving,
|
||
rra.res_status_bo_key,
|
||
rrr.res_rsv_ruimte_key,
|
||
rra.res_rsv_artikel_prijs,
|
||
res_rsv_artikel_prijs / (1 + ra.res_artikel_btw /100),
|
||
DECODE(ra.res_artikel_btw, 21, 21, 0) * res_rsv_artikel_prijs / (100 + (DECODE(ra.res_artikel_btw, 21, 21, 0))),
|
||
DECODE(ra.res_artikel_btw, 9, 9, 0) * res_rsv_artikel_prijs / (100 + (DECODE(ra.res_artikel_btw, 9, 9, 0)))
|
||
FROM kmmo_v_res_facturabel f,
|
||
res_rsv_ruimte rrr,
|
||
res_rsv_artikel rra,
|
||
res_artikel ra
|
||
WHERE res_rsv_ruimte_verwijder IS NULL
|
||
AND f.res_reservering_key = rrr.res_reservering_key
|
||
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_verwijder IS NULL
|
||
AND rra.res_artikel_key = ra.res_artikel_key) r,
|
||
res_status_bo bo,
|
||
(SELECT res_reservering_key, MAX(res_kenmerkreservering_waarde) factuur_nummer, MAX(res_kenmerkwaarde_aanmaak) export_datum
|
||
FROM res_kenmerkwaarde kw, res_kenmerk k, res_rsv_ruimte rrr
|
||
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND kw.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 102 -- Factuur
|
||
GROUP BY res_reservering_key) f
|
||
WHERE r.res_status_bo_key = bo.res_status_bo_key
|
||
AND r.res_reservering_key = f.res_reservering_key(+);
|
||
|
||
-- factuur export. Tijdens de export wordt het factuurnummer bepaald. Dit nummer zit in de reeks xx-yyy. Hierbij is xx het jaar
|
||
-- waarop de factuur is aangemaakt en yyy is een volgnummer tussen de 700 en 899. In een nieuw jaar wordt weer bij 700 begonnen.
|
||
|
||
-- welke reservering is helemaal afgemeld (5). Er mogen dus geen items meer open staan.
|
||
CREATE OR REPLACE VIEW kmmo_v_export_res_facturen
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT res_reservering_key
|
||
|| ';'
|
||
|| ROUND (SUM (prijs_inc), 2)
|
||
|| ';'
|
||
|| ROUND (SUM (prijs_ex), 2)
|
||
|| ';'
|
||
|| ROUND (SUM (btw_h), 2)
|
||
|| ';'
|
||
|| ROUND (SUM (btw_l), 2),
|
||
res_reservering_key
|
||
FROM kmmo_v_rap_res_factuurstatus fs
|
||
WHERE NOT EXISTS
|
||
(SELECT 1
|
||
FROM kmmo_v_rap_res_factuurstatus fs2
|
||
WHERE fs.res_reservering_key = fs2.res_reservering_key
|
||
AND res_status_bo_key <> 5)
|
||
GROUP BY res_reservering_key;
|
||
|
||
CREATE OR REPLACE PROCEDURE kmmo_export_res_facturen (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
CURSOR c IS
|
||
SELECT DISTINCT res_rsv_ruimte_key, res_reservering_key, res_rsv_ruimte_volgnr
|
||
FROM kmmo_v_rap_res_factuurstatus fs
|
||
WHERE NOT EXISTS
|
||
(SELECT 1
|
||
FROM kmmo_v_rap_res_factuurstatus fs2
|
||
WHERE fs.res_reservering_key =
|
||
fs2.res_reservering_key
|
||
AND res_status_bo_key <> 5) -- Afgemeld
|
||
ORDER BY res_reservering_key, res_rsv_ruimte_volgnr;
|
||
|
||
v_factuurnr NUMBER;
|
||
v_kenmerk_key NUMBER;
|
||
v_reservering_key_prev NUMBER;
|
||
BEGIN
|
||
BEGIN
|
||
SELECT MAX (
|
||
fac.safe_to_number (
|
||
SUBSTR (res_kenmerkreservering_waarde, 4, 100)))
|
||
+ 1
|
||
INTO v_factuurnr
|
||
FROM res_kenmerk k, res_kenmerkwaarde kw
|
||
WHERE res_srtkenmerk_key = 102 -- Factuurnummer
|
||
AND k.res_kenmerk_key = kw.res_kenmerk_key
|
||
AND SUBSTR (res_kenmerkreservering_waarde, 1, 2) =
|
||
TO_CHAR (SYSDATE, 'YY');
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_factuurnr := 700;
|
||
END;
|
||
|
||
IF v_factuurnr IS NULL
|
||
THEN
|
||
v_factuurnr := 700;
|
||
END IF;
|
||
|
||
v_reservering_key_prev := -1;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
IF rec.res_reservering_key <> v_reservering_key_prev
|
||
THEN
|
||
SELECT res_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM res_kenmerk k, res_rsv_ruimte rrr
|
||
WHERE k.res_srtkenmerk_key = 102 -- Factuurnummer
|
||
AND rrr.res_activiteit_key = k.res_activiteit_key
|
||
AND rrr.res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
|
||
FLX.setflex ('RES',
|
||
v_kenmerk_key,
|
||
rec.res_rsv_ruimte_key,
|
||
TO_CHAR (SYSDATE, 'YY') || '.' || v_factuurnr);
|
||
|
||
SELECT res_kenmerk_key
|
||
INTO v_kenmerk_key
|
||
FROM res_kenmerk k, res_rsv_ruimte rrr
|
||
WHERE k.res_srtkenmerk_key = 141 -- Factuurdatum
|
||
AND rrr.res_activiteit_key = k.res_activiteit_key
|
||
AND rrr.res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
|
||
FLX.setflex ('RES',
|
||
v_kenmerk_key,
|
||
rec.res_rsv_ruimte_key,
|
||
TO_CHAR (SYSDATE, 'DD-MM-YYYY'));
|
||
|
||
v_reservering_key_prev := rec.res_reservering_key;
|
||
v_factuurnr := v_factuurnr + 1;
|
||
END IF;
|
||
|
||
UPDATE res_rsv_artikel
|
||
SET res_status_bo_key = 6 -- Verwerkt
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key
|
||
AND res_rsv_artikel_verwijder IS NULL;
|
||
|
||
UPDATE res_rsv_deel
|
||
SET res_status_bo_key = 6 -- Verwerkt
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key
|
||
AND res_rsv_deel_verwijder IS NULL;
|
||
|
||
UPDATE res_rsv_ruimte
|
||
SET res_status_bo_key = 6 -- Verwerkt
|
||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key
|
||
AND res_rsv_ruimte_verwijder IS NULL;
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
-- Notificaties voor meldingen waarbij de acceptatietijd en/of de uitvoertijd verstreken is.
|
||
CREATE OR REPLACE VIEW kmmo_v_mld_sla_telaat
|
||
AS
|
||
SELECT gg.prs_perslid_key extra_key,
|
||
'Uitvoer' type_telaat,
|
||
m.mld_melding_onderwerp onderwerp,
|
||
d.ins_discipline_omschrijving || '/' || mld_stdmelding_omschrijving stdmelding,
|
||
m.mld_melding_key key
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
fac_groeprechten gr,
|
||
fac_functie f,
|
||
fac_groep g,
|
||
fac_gebruikersgroep gg,
|
||
mld_discipline d,
|
||
mld_disc_params dp
|
||
WHERE TRUNC (mld_melding_einddatum) <= TRUNC (SYSDATE) - mld_disc_params_noti_dagen
|
||
AND mld_melding_status not in (1, 5, 6) -- afgewezen, afgemeld, historie
|
||
AND gr.fac_groep_key = g.fac_groep_key
|
||
AND gr.fac_functie_key = f.fac_functie_key
|
||
AND f.fac_functie_code = 'WEB_MLDBOF'
|
||
AND fac_gebruiker_alg_level_write <> 9 -- Je moet wel kunnen schrijven
|
||
AND g.fac_groep_key = gg.fac_groep_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = gr.ins_discipline_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND dp.mld_disc_params_noti_dagen IS NOT NULL
|
||
UNION ALL
|
||
SELECT gg.prs_perslid_key xkey,
|
||
'Acceptatie' type_telaat,
|
||
m.mld_melding_onderwerp onderwerp,
|
||
d.ins_discipline_omschrijving || '/' || mld_stdmelding_omschrijving stdmelding,
|
||
m.mld_melding_key key
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
fac_groeprechten gr,
|
||
fac_functie f,
|
||
fac_groep g,
|
||
fac_gebruikersgroep gg,
|
||
mld_discipline d,
|
||
mld_disc_params dp
|
||
WHERE TRUNC (mld_melding_acceptdatum_std) <= TRUNC (SYSDATE) - mld_disc_params_noti_dagen
|
||
AND mld_melding_acceptdatum_std IS NOT NULL
|
||
AND mld_melding_status IN (2, 3) -- Nieuw of te accepteren
|
||
AND gr.fac_groep_key = g.fac_groep_key
|
||
AND gr.fac_functie_key = f.fac_functie_key
|
||
AND f.fac_functie_code = 'WEB_MLDBOF'
|
||
AND fac_gebruiker_alg_level_write <> 9 -- Je moet wel kunnen schrijven
|
||
AND g.fac_groep_key = gg.fac_groep_key
|
||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = gr.ins_discipline_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND dp.mld_disc_params_noti_dagen IS NOT NULL;
|
||
|
||
CREATE OR REPLACE VIEW kmmo_v_noti_mld_sla_telaat
|
||
AS
|
||
SELECT 'CUST01' code,
|
||
NULL sender,
|
||
extra_key receiver,
|
||
'Meldingen niet op tijd geaccepteerd en/of afgehandeld ' text,
|
||
381 key, -- Rapport meldingen over sla
|
||
extra_key xkey
|
||
FROM kmmo_v_mld_sla_telaat
|
||
WHERE TO_CHAR(SYSDATE, 'D') NOT IN (1, 7) -- Niet op zaterdag en zondag
|
||
GROUP BY extra_key;
|
||
|
||
-- Klachtenafhandeling
|
||
CREATE OR REPLACE VIEW kmmo_v_afzender_klachten
|
||
AS
|
||
SELECT p.prs_perslid_key, pf.prs_perslid_naam_friendly, p.prs_perslid_verwijder, sp.prs_srtperslid_omschrijving, ud.fac_usrdata_omschr afz_info
|
||
FROM prs_perslid p, prs_v_perslid_fullnames_all pf, prs_kenmerklink kl, prs_srtperslid sp, fac_usrdata ud
|
||
WHERE p.prs_perslid_key = kl.prs_link_key
|
||
AND kl.prs_kenmerk_key = 1100 -- Zichtbaarheid klachtenafhandeling
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||
AND FAC.safe_to_number(kl.prs_kenmerklink_waarde) = ud.fac_usrdata_key;
|
||
|
||
-- KMMO#82168 Rapportage klachtenafhandeling
|
||
CREATE OR REPLACE VIEW kmmo_v_rap_klachten_feedback
|
||
AS
|
||
SELECT m.mld_melding_datum,
|
||
d.ins_discipline_omschrijving,
|
||
std.mld_stdmelding_omschrijving,
|
||
-- LISTAGG (n.omschrijving, CHR (10)) WITHIN GROUP (ORDER BY n.mld_melding_key, n.mld_melding_note_wijzigdatum) logline
|
||
LISTAGG (n.omschrijving, CHR (10)) WITHIN GROUP (ORDER BY n.mld_melding_key, n.mld_melding_note_wijzigdatum) logline,
|
||
fac.count_Work_Days_InclTime(mld_melding_datum, COALESCE(MLD.getmeldingstatusdate(m.mld_melding_key, 5), sysdate)) doorlooptijd,
|
||
MLD.getmeldingstatusdate(m.mld_melding_key, 5) datumafgemeld,
|
||
s.mld_statuses_omschrijving
|
||
FROM mld_melding m,
|
||
mld_stdmelding std,
|
||
mld_statuses s,
|
||
mld_discipline d,
|
||
(SELECT TO_CHAR (mld_melding_note_wijzigdatum, 'dd-mm-yyyy hh24:mi:ss')
|
||
|| ' ('
|
||
|| mld_melding_key
|
||
|| ')'
|
||
|| CHR (10)
|
||
|| mld_melding_note_omschrijving omschrijving,
|
||
mld_melding_key,
|
||
mld_melding_note_wijzigdatum
|
||
FROM mld_melding_note) n
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = 2
|
||
AND m.mld_melding_key = n.mld_melding_key(+)
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
GROUP BY d.ins_discipline_omschrijving, std.mld_stdmelding_omschrijving, m.mld_melding_key, mld_melding_datum, s.mld_statuses_omschrijving;
|
||
|
||
|
||
------ 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
|