-- -- $Id$ -- -- Script containing customer specific db-configuration for LOGC. DEFINE thisfile = 'LOGC.SQL' DEFINE dbuser = '^LOGC' SET ECHO ON SET DEFINE ON COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT; WHENEVER SQLERROR EXIT; SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL; WHENEVER SQLERROR CONTINUE; SPOOL &fcltlogfile SET DEFINE OFF ------ payload begin ------ CREATE OR REPLACE PACKAGE LOGC AS PROCEDURE tsk_emailrapport (p_applname IN VARCHAR2); END; / CREATE OR REPLACE PACKAGE BODY LOGC AS PROCEDURE tsk_emailrapport (p_applname IN VARCHAR2) AS v_errorhint VARCHAR2 (1000); v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_today VARCHAR2 (10); v_bijlage VARCHAR2(4000); v_lastRun VARCHAR2 (20); v_notiKey NUMBER; BEGIN SELECT TO_CHAR(SYSDATE,'DD') INTO v_today FROM DUAL; IF v_today = '01' --op de eerste dag vd maand THEN SELECT TO_CHAR(fac_export_app_datum,'DD-MM-YYYY') INTO v_lastRun FROM fac_export_app WHERE fac_export_app_code='OPEN_MLD'; SELECT fac_srtnotificatie_key INTO v_notiKey FROM fac_srtnotificatie WHERE fac_srtnotificatie_code='CUST02'; IF v_LastRun = TO_CHAR(SYSDATE,'DD-MM-YYYY') -- export heeft gedraaid THEN v_bijlage := '/../../Fplace5i/CUST/LOGC/export/mld_export/MLD_LogC_'||to_char(SYSDATE, 'yyyymmdd')||'.csv'; --v_bijlage := '../../Branch20202/CUST/LOGC/export/mld_export/MLD_LogC_'||to_char(SYSDATE, 'yyyymmdd')||'.csv'; INSERT INTO fac_notificatie (fac_srtnotificatie_key, prs_perslid_key_sender, fac_notificatie_status, fac_notificatie_receiver_email, fac_notificatie_oms, fac_notificatie_refkey, fac_notificatie_prioriteit, fac_notificatie_attachments) VALUES ( v_notiKey, 3, 2, 'gerard.mensink@aareon.nl', 'LogCentre meldingen per '|| TO_CHAR(SYSDATE,'DD-MM-YYYY'), 2, 2, v_bijlage); COMMIT; END IF; END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog (p_applname, 'E', 'Email rapport task afgebroken!: ' || v_errormsg, v_errorhint); COMMIT; END; END; / CREATE OR REPLACE PROCEDURE logc_monthly AS v_errorhint VARCHAR2 (1000); v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); BEGIN logc.tsk_emailrapport('LOGC_MONTHLY'); END; / CREATE OR REPLACE VIEW logc_v_my_activity AS SELECT to_date('1900-01-01', 'YYYY-MM-DD') - mld_melding_note_aanmaak HIDE_F_SORT, n.prs_perslid_key, n.mld_melding_note_aanmaak, mld_melding_onderwerp, n.mld_melding_note_omschrijving, n.mld_melding_key FROM mld_melding_note n, mld_melding m WHERE n.mld_melding_key = m.mld_melding_key UNION ALL SELECT to_date('1900-01-01', 'YYYY-MM-DD') - fac_tracking_datum HIDE_F_SORT, tr.prs_perslid_key, tr.fac_tracking_datum, mld_melding_onderwerp, COALESCE (tr.fac_tracking_oms, LCL.L ('lcl_mld_is_' || LOWER (fac_srtnotificatie_code), 1)), fac_tracking_refkey mld_melding_key FROM fac_tracking tr, fac_srtnotificatie str, mld_melding m WHERE tr.fac_tracking_refkey = m.mld_melding_key AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key AND str.fac_srtnotificatie_code <> 'MLDNOT' -- beetje dubbelop AND str.fac_srtnotificatie_xmlnode IN ('melding') ORDER BY mld_melding_note_aanmaak DESC; CREATE OR REPLACE VIEW logc_v_rap_releasenotes AS SELECT m.mld_melding_key, TRIM(NVL ( SUBSTR (mld_melding_opmerking, 0, INSTR (mld_melding_opmerking, '*') - 1), mld_melding_opmerking) || ' (' || m.mld_melding_key || ')') onderwerp, NVL ( SUBSTR (mld_melding_opmerking, INSTR (mld_melding_opmerking, '*') + 2), mld_melding_opmerking) omchrijving, st.mld_statuses_omschrijving status, mld_kenmerkmelding_waarde fixversie, CASE WHEN mld_melding_opmerking LIKE '--%' THEN 'Ja' ELSE 'Nee' END intern FROM mld_melding m, mld_kenmerkmelding mk, mld_statuses st WHERE m.mld_melding_key = mk.mld_melding_key AND mld_kenmerk_key = 25 AND m.mld_melding_status = st.mld_statuses_key; --- IMPORT VAN URENBESTEDING FSN#51729 -- Requires -- een flexkenmerk (op vakgroeptypeniveau) voor registratie van de bestede uren. De key is constante l_bestedingsflexkey -- type iets van 8,2 en geen relevante min/max. Alleen lezen is goed genoeg CREATE OR REPLACE PROCEDURE logc_import_besteding (p_import_key IN NUMBER) IS c_delim VARCHAR2 (1) := ';'; v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200) := ''; header_is_valid NUMBER := 0; v_count_tot NUMBER (10) := 0; v_count_import NUMBER (10) := 0; v_ongeldig NUMBER (1); -- De importvelden: v_transactietekst VARCHAR2 (100); v_projectnummer VARCHAR2 (100); v_uren VARCHAR2 (25); CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN DELETE FROM logc_imp_besteding; COMMIT; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_errormsg := 'Fout bij opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_delim, v_transactietekst); fac.imp_getfield (v_newline, c_delim, v_projectnummer); fac.imp_getfield (v_newline, c_delim, v_uren); v_aanduiding := '[' || v_transactietekst || '] '; -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! -- Ik negeer alles totdat ik een geldige header ben gepasseerd. -- Transactietekst;MaxString(Project);Sum(Uren) IF (header_is_valid = 0) THEN IF UPPER (v_transactietekst) = 'TRANSACTIETEKST' AND UPPER (v_projectnummer) = 'MAXSTRING(PROJECT)' AND UPPER (v_uren) = 'SUM(UREN)' THEN header_is_valid := 1; END IF; ELSE v_count_tot := v_count_tot + 1; -- Controleer alle veldwaarden v_errormsg := 'Transactietekst (logcentrenummer) ongeldig/ongedefinieerd of te lang'; v_transactietekst := TRIM (v_transactietekst); IF v_transactietekst IS NULL OR LENGTH (v_transactietekst) > 20 OR INSTR (v_transactietekst, '#') = 0 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- v_errormsg := 'Projectnummer ongeldig/ongedefinieerd of te lang'; v_projectnummer := TRIM (v_projectnummer); IF v_projectnummer IS NULL OR LENGTH (v_projectnummer) > 100 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- v_errormsg := 'Uren ongeldig'; v_uren := TRIM (v_uren); IF (v_uren IS NOT NULL AND fac.safe_to_number (replace(v_uren,',','.')) IS NULL) THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- Insert geformatteerde import record IF v_ongeldig = 0 THEN BEGIN v_errormsg := 'Fout bij wegschrijven importregel'; INSERT INTO logc_imp_besteding (transactietekst, projectnummer, uren) VALUES (v_transactietekst, v_projectnummer, fac.safe_to_number (replace(v_uren,',','.'))); v_count_import := v_count_import + 1; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, ''); END; COMMIT; END IF; END IF; END; END LOOP; IF (header_is_valid = 0) THEN fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!'); ELSE fac.imp_writelog (p_import_key, 'S', 'Besteding: #ingelezen importregels = ' || TO_CHAR (v_count_tot), ''); fac.imp_writelog (p_import_key, 'S', 'Besteding: #ongeldige importregels = ' || TO_CHAR (v_count_tot - v_count_import), ''); END IF; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces besteding afgebroken!'); END logc_import_besteding; / CREATE OR REPLACE PROCEDURE logc_update_besteding (p_import_key IN NUMBER) AS CURSOR c1 IS SELECT * FROM logc_imp_besteding; v_errormsg VARCHAR2 (1000) := ''; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count NUMBER (10); v_count_tot NUMBER (10); v_count_upd NUMBER (10); l_meldingnr NUMBER (10); l_bestedingsflexkey NUMBER (10) := 141; -- constante BEGIN v_count_tot := 0; v_count_upd := 0; FOR rec IN c1 LOOP BEGIN v_count_tot := v_count_tot + 1; v_errormsg := 'Fout bij bepalen bestaan transactietekst [' || rec.transactietekst || '] '; l_meldingnr := SUBSTR (rec.transactietekst, INSTR (rec.transactietekst, '#') + 1); SELECT COUNT ( * ) INTO v_count FROM mld_melding WHERE mld_melding_key = l_meldingnr; IF (v_count = 1) THEN v_errormsg := 'Fout bij bijwerken besteding [' || rec.transactietekst || ' (' || l_meldingnr || ')] '; mld.upsertmeldingkenmerk (l_bestedingsflexkey, l_meldingnr, rec.uren); -- jammer dat de upsert geen tracking doet END IF; v_count_upd := v_count_upd + 1; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_errormsg, ''); COMMIT; END; END LOOP; fac.imp_writelog (p_import_key, 'S', 'Besteding: #ingelezen = ' || TO_CHAR (v_count_tot), ''); fac.imp_writelog (p_import_key, 'S', 'Besteding: #toegevoegd/bijgewerkt = ' || TO_CHAR (v_count_upd), ''); COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces Besteding afgebroken!'); END logc_update_besteding; / -- import nieuwe versie die ook dag en medewerker registreert (SAP versie) CREATE OR REPLACE PROCEDURE logc_import_uren_besteding (p_import_key IN NUMBER) IS c_delim VARCHAR2 (1) := ';'; v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200) := ''; header_is_valid NUMBER := 0; v_count_tot NUMBER (10) := 0; v_count_import NUMBER (10) := 0; v_ongeldig NUMBER (1); v_field VARCHAR2(100); v_index NUMBER (2); v_maxdate DATE; v_mindate DATE; -- De importvelden: v_transactietekst VARCHAR2 (1000); v_project VARCHAR2 (100); v_project_oms VARCHAR2 (100); v_uren VARCHAR2 (25); v_datum_txt VARCHAR2 (20); v_categorie VARCHAR2 (100); v_werknemer NUMBER (10); i_transactietekst NUMBER(2); i_project NUMBER(2); i_project_oms NUMBER(2); i_uren NUMBER(2); i_datum_txt NUMBER(2); i_categorie NUMBER(2); i_werknemer NUMBER(2); CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN DELETE FROM logc_imp_uren_besteding WHERE datum IS NULL; COMMIT; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_errormsg := 'Fout bij opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; IF rec1.fac_imp_file_index = 1 THEN v_index := 0; v_field := 'QueQeLeQue'; WHILE v_field IS NOT NULL AND v_index < 30 LOOP fac.imp_getfield (v_newline, c_delim, v_field); v_index := v_index + 1; CASE UPPER(v_field) WHEN 'DATUM' THEN i_datum_txt := v_index; WHEN 'ALGEMENE ONTVANGER' THEN i_project := v_index; WHEN 'RUBRICERINGSOMS.' THEN i_project_oms := v_index; WHEN 'PRESTATIESOORT' THEN i_categorie := v_index; WHEN 'PERSONEELSNUMMER' THEN i_werknemer := v_index; WHEN 'AANTAL (MAATEENHEID)' THEN i_uren := v_index; WHEN 'K. TEKST' THEN i_transactietekst := v_index; ELSE NULL; END CASE; END LOOP; IF i_datum_txt > 0 AND i_project > 0 AND i_project_oms > 0 AND i_categorie > 0 AND i_werknemer > 0 AND i_uren > 0 AND i_transactietekst > 0 THEN header_is_valid := 1; END IF; ELSIF v_newline LIKE ';;;;;;%' THEN NULL; -- Lege regels slaan we over ELSE -- Lees alle veldwaarden fac.imp_getfield_nr (v_newline, c_delim, i_transactietekst, v_transactietekst); fac.imp_getfield_nr (v_newline, c_delim, i_project, v_project); fac.imp_getfield_nr (v_newline, c_delim, i_project_oms, v_project_oms); fac.imp_getfield_nr (v_newline, c_delim, i_uren, v_uren); fac.imp_getfield_nr (v_newline, c_delim, i_datum_txt, v_datum_txt); fac.imp_getfield_nr (v_newline, c_delim, i_categorie, v_categorie); fac.imp_getfield_nr (v_newline, c_delim, i_werknemer, v_werknemer); IF (header_is_valid = 1) THEN v_count_tot := v_count_tot + 1; v_aanduiding := SUBSTR(v_transactietekst || ' ' || v_datum_txt || ' ' || v_categorie, 1, 200); -- Controleer alle veldwaarden -- v_errormsg := 'Categorie ongeldig'; v_categorie := TRIM (v_categorie); IF (v_categorie IS NOT NULL AND LENGTH(v_categorie) > 10) THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; v_errormsg := 'Transactietekst (logcentrenummer) ongeldig/ongedefinieerd of te lang'; v_transactietekst := TRIM (v_transactietekst); v_transactietekst := REPLACE (v_transactietekst, '# ', '#'); IF v_transactietekst IS NOT NULL AND INSTR(v_transactietekst, '#') > 0 THEN v_transactietekst := REGEXP_SUBSTR (v_transactietekst , '[[:alpha:]]{0,}#[[:digit:]]{5,}', 1, 1, 'i'); IF v_transactietekst IS NULL THEN --v_ongeldig := 1; fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, ''); END IF; ELSE v_transactietekst := NULL; END IF; -- v_errormsg := 'Project ongeldig/ongedefinieerd of te lang'; v_project := TRIM (v_project); IF v_project IS NULL OR LENGTH (v_project) > 100 THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- v_errormsg := 'Uren ongeldig'; v_uren := TRIM (v_uren); IF (v_uren IS NOT NULL AND fac.safe_to_number (replace(v_uren,',','.')) IS NULL) THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- v_errormsg := 'Datum ongeldig'; v_datum_txt := TRIM (v_datum_txt); IF (v_datum_txt IS NOT NULL AND fac.safe_to_date (v_datum_txt,'dd-mm-yyyy') IS NULL) THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- v_errormsg := 'Werknemer ongeldig'; v_werknemer := TRIM (v_werknemer); IF (v_werknemer IS NOT NULL AND fac.safe_to_number (v_werknemer) IS NULL) THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- Insert geformatteerde import record IF v_ongeldig = 0 THEN BEGIN v_errormsg := 'Fout bij wegschrijven importregel'; INSERT INTO logc_imp_uren_besteding (transactietekst, project, project_oms, uren, datum_txt, categorie, werknemer) VALUES (v_transactietekst, v_project, v_project_oms, fac.safe_to_number (replace(v_uren,',','.')), v_datum_txt, v_categorie, v_werknemer); v_count_import := v_count_import + 1; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, ''); END; COMMIT; END IF; END IF; END IF; END; END LOOP; IF (header_is_valid = 0) THEN fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!' || '(' || i_datum_txt || '-' || i_project || '-' || i_project_oms || '-' || i_categorie || '-' || i_werknemer || '-' || i_uren || '-' || i_transactietekst || ')'); ELSE fac.imp_writelog (p_import_key, 'S', 'Besteding: #ingelezen importregels = ' || TO_CHAR (v_count_tot), ''); fac.imp_writelog (p_import_key, 'S', 'Besteding: #ongeldige importregels = ' || TO_CHAR (v_count_tot - v_count_import), ''); END IF; SELECT MAX (TO_DATE (datum_txt, 'dd-mm-yyyy')) maxdate, MIN (TO_DATE (datum_txt, 'dd-mm-yyyy')) mindate, COUNT(*) INTO v_maxdate, v_mindate, v_count_import FROM logc_imp_uren_besteding WHERE datum IS NULL; SELECT count(*) INTO v_count_tot FROM logc_imp_uren_besteding WHERE datum IS NOT NULL AND datum >= v_mindate AND datum <= v_maxdate; fac.imp_writelog (p_import_key, 'S', 'Besteding: #ingelezen importregels = ' || TO_CHAR (v_count_import) || ' vervangt #regels uit import = ' || TO_CHAR (v_count_tot), ''); COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces besteding afgebroken!'); END logc_import_uren_besteding; / CREATE OR REPLACE PROCEDURE logc_update_uren_besteding (p_import_key IN NUMBER) AS v_errormsg VARCHAR2 (1000) := ''; oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count NUMBER (10); v_count_tot NUMBER (10); v_count_upd NUMBER (10); l_meldingnr NUMBER (10); l_bestedingsflexkey NUMBER (10) := 141; -- constante v_maxdate DATE; v_mindate DATE; BEGIN v_count_tot := 0; v_count_upd := 0; SELECT MAX (TO_DATE (datum_txt, 'dd-mm-yyyy')) maxdate, MIN (TO_DATE (datum_txt, 'dd-mm-yyyy')) mindate INTO v_maxdate, v_mindate FROM logc_imp_uren_besteding WHERE datum IS NULL; -- We verwijderen de data die we nu (opnieuw) ontvangen hebben. Misschien zit er een correctieregel bij. DELETE logc_imp_uren_besteding WHERE datum IS NOT NULL AND datum >= v_mindate AND datum <= v_maxdate; -- Voeg de keys van de meldingen toe. UPDATE logc_imp_uren_besteding i SET mld_melding_key = (SELECT mld_melding_key FROM mld_melding m WHERE m.mld_melding_key = fac.safe_to_number(SUBSTR(i.transactietekst, instr(transactietekst, '#')+1,100))) WHERE datum IS NULL; -- En set de datum om naar een echt datumveld. Dat maakt de rapportages makkelijker. UPDATE logc_imp_uren_besteding i SET datum = TO_DATE (datum_txt, 'dd-mm-yyyy') WHERE datum IS NULL; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces Besteding afgebroken!'); END logc_update_uren_besteding; / CREATE OR REPLACE VIEW logc_v_uren_bron AS SELECT u.project, categorie, uren, m.mld_melding_key, datum, prs_perslid_naam, project_oms, COALESCE ( (SELECT fac.safe_to_number (prs_kenmerklink_waarde) FROM prs_kenmerklink kl WHERE kl.prs_kenmerk_key = 1280 AND kl.prs_link_key = p.prs_perslid_key), 40) upw, ud.fac_usrdata_omschr afdeling, COALESCE ( SUBSTR (su.fac_usrdata_omschr, 1, INSTR (su.fac_usrdata_omschr, ' -- ') - 1), 'Onbekend') srturen, DECODE (project_oms, 'Compensatie', 1, 0) compensatie, p.prs_perslid_key, a.prs_afdeling_naam, COALESCE(a1.prs_afdeling_naam, a.prs_afdeling_naam) prs_afdeling_parent_naam, COALESCE(a1.prs_afdeling_key, a.prs_afdeling_key) fclt_3d_afdeling_key FROM logc_imp_uren_besteding u, prs_perslid p, prs_kenmerklink kl, fac_usrdata ud, prs_afdeling a, prs_afdeling a1, mld_melding m, (SELECT distinct u2.project, ud.fac_usrdata_omschr FROM fac_usrdata ud, logc_imp_uren_besteding u2 WHERE fac_usrtab_key = 281 AND u2.project LIKE ud.fac_usrdata_code) su WHERE u.werknemer = p.prs_perslid_nr AND u.project = su.project(+) AND kl.prs_link_key = p.prs_perslid_key AND kl.prs_kenmerk_key = 1300 -- Afdeling AND FAC.safe_to_number(kl.prs_kenmerklink_waarde) = ud.fac_usrdata_key AND u.mld_melding_key = m.mld_melding_key(+) AND m.prs_afdeling_key = a.prs_afdeling_key(+) and a.prs_afdeling_parentkey = a1.prs_afdeling_key(+) AND datum > TO_DATE ('20200101', 'yyyymmdd'); CREATE OR REPLACE PROCEDURE logc_import_projecten (p_import_key IN NUMBER) IS c_delim VARCHAR2 (1) := ';'; v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_aanduiding VARCHAR2 (200) := ''; header_is_valid NUMBER := 0; v_count_tot NUMBER (10) := 0; v_count_import NUMBER (10) := 0; v_ongeldig NUMBER (1); v_field VARCHAR2 (100); v_index NUMBER (2); v_maxdate DATE; v_mindate DATE; -- De importvelden: v_KlantOmschrijving VARCHAR2 (100); v_WBSelement VARCHAR2 (100); v_Projectsoort VARCHAR2 (100); v_Omschrijving VARCHAR2 (100); v_Status VARCHAR2 (100); v_Debiteur VARCHAR2 (100); v_PlanWorktime VARCHAR2 (100); v_ActualWorktime VARCHAR2 (100); v_ActualWorkCosts VARCHAR2 (100); v_PlanWorkCosts VARCHAR2 (100); v_InvoiceReceived VARCHAR2 (100); v_InvoicePosted VARCHAR2 (100); v_ProjektManagerLogin VARCHAR2 (100); v_SalesPersonNr VARCHAR2 (100); v_NameSalesPerson VARCHAR2 (100); v_EndPlanTxt VARCHAR2 (100); v_prs_kostenplaats_key NUMBER (10); v_budgethouder_key NUMBER (10); v_kostenplaats_key NUMBER (10); v_kostenplaatsgrp_key NUMBER (10); CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_errormsg := 'Fout bij opvragen importregel'; v_aanduiding := ''; v_ongeldig := 0; IF v_newline LIKE ';;;;;;%' THEN NULL; -- Lege regels slaan we over ELSE -- Lees alle veldwaarden fac.imp_getfield_nr (v_newline, c_delim, 2, v_KlantOmschrijving); fac.imp_getfield_nr (v_newline, c_delim, 3, v_WBSelement); fac.imp_getfield_nr (v_newline, c_delim, 4, v_Projectsoort); fac.imp_getfield_nr (v_newline, c_delim, 5, v_Omschrijving); fac.imp_getfield_nr (v_newline, c_delim, 6, v_Status); fac.imp_getfield_nr (v_newline, c_delim, 7, v_Debiteur); fac.imp_getfield_nr (v_newline, c_delim, 10, v_PlanWorktime); fac.imp_getfield_nr (v_newline, c_delim, 11, v_ActualWorktime); fac.imp_getfield_nr (v_newline, c_delim, 12, v_ActualWorkCosts); fac.imp_getfield_nr (v_newline, c_delim, 13, v_PlanWorkCosts); fac.imp_getfield_nr (v_newline, c_delim, 14, v_InvoiceReceived); fac.imp_getfield_nr (v_newline, c_delim, 15, v_InvoicePosted); fac.imp_getfield_nr (v_newline, c_delim, 16, v_ProjektManagerLogin); fac.imp_getfield_nr (v_newline, c_delim, 17, v_SalesPersonNr); fac.imp_getfield_nr (v_newline, c_delim, 18, v_NameSalesPerson); fac.imp_getfield_nr (v_newline, c_delim, 19, v_EndPlanTxt); IF (header_is_valid = 0) THEN IF UPPER (v_KlantOmschrijving) = 'OMSCHRIJVING' AND UPPER (v_WBSelement) = 'WBS-ELEMENT' AND UPPER (v_Projectsoort) = 'PROJECTSOORT' AND UPPER (v_Omschrijving) = 'OMSCHRIJVING' AND UPPER (v_Status) = 'STATUS' AND UPPER (v_Debiteur) = 'KLANT' AND UPPER (v_PlanWorktime) = 'PLAN WORKTIME' AND UPPER (v_ActualWorktime) = 'ACTUAL WORKTIME' AND UPPER (v_ActualWorkCosts) = 'ACTUAL WORK COSTS' AND UPPER (v_PlanWorkCosts) = 'PLAN WORK COSTS' AND UPPER (v_InvoiceReceived) = 'INVOICE RECEIVED' AND UPPER (v_InvoicePosted) = 'INVOICE POSTED' AND UPPER (v_ProjektManagerLogin) = 'PROJEKTLEITER' AND UPPER (v_SalesPersonNr) = 'SALES PERSON' AND UPPER (v_NameSalesPerson) = 'NAME SALES REPRESEN' THEN header_is_valid := 1; END IF; ELSE v_count_tot := v_count_tot + 1; v_aanduiding := v_WBSelement || ' - '; -- We gaan duizendtal tekens verwijderen en vervolgens de komma als scheidingsteken vervangen -- door een punt v_PlanWorktime := REPLACE(REPLACE(v_PlanWorktime, '.'), ',', '.'); v_ActualWorktime := REPLACE(REPLACE(v_ActualWorktime, '.'), ',', '.'); v_ActualWorkCosts := REPLACE(REPLACE(v_ActualWorkCosts, '.'), ',', '.'); v_PlanWorkCosts := REPLACE(REPLACE(v_PlanWorkCosts, '.'), ',', '.'); v_InvoiceReceived := REPLACE(REPLACE(v_InvoiceReceived, '.'), ',', '.'); v_InvoicePosted := REPLACE(REPLACE(v_InvoicePosted, '.'), ',', '.'); -- Controleer alle veldwaarden -- v_errormsg := 'Projectsoort ongeldig ' || v_Projectsoort; IF v_Projectsoort NOT IN ('WF', 'DA') THEN fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); ELSIF v_Projectsoort IS NULL THEN v_ongeldig := 1; ELSE BEGIN SELECT prs_kostenplaatsgrp_key INTO v_kostenplaatsgrp_key FROM prs_kostenplaatsgrp WHERE prs_kostenplaatsgrp_nr = DECODE (v_Projectsoort, 'WF', 'F', 'DA', 'N'); EXCEPTION WHEN NO_DATA_FOUND THEN v_ongeldig := 1; fac.imp_writelog ( p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END; END IF; IF v_Status <> 'R' THEN v_ongeldig := 1; END IF; v_errormsg := 'v_PlanWorktime ongeldig ' || v_PlanWorktime; IF FAC.safe_to_number (v_PlanWorktime) IS NULL THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; v_errormsg := 'v_ActualWorktime ongeldig ' || v_ActualWorktime; IF FAC.safe_to_number (v_ActualWorktime) IS NULL THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; v_errormsg := 'v_ActualWorkCosts ongeldig ' || v_ActualWorkCosts; IF FAC.safe_to_number (v_ActualWorkCosts) IS NULL THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; v_errormsg := 'v_PlanWorkCosts ongeldig ' || v_PlanWorkCosts; IF FAC.safe_to_number (v_PlanWorkCosts) IS NULL THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; v_errormsg := 'v_InvoiceReceived ongeldig ' || v_InvoiceReceived; IF FAC.safe_to_number (v_InvoiceReceived) IS NULL THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; v_errormsg := 'v_InvoicePosted ongeldig ' || v_InvoicePosted; IF FAC.safe_to_number (v_InvoicePosted) IS NULL THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; v_errormsg := 'v_ProjektManagerLogin ongeldig ' || v_ProjektManagerLogin; BEGIN SELECT prs_perslid_key INTO v_budgethouder_key FROM prs_perslid WHERE prs_perslid_oslogin = v_ProjektManagerLogin; EXCEPTION WHEN NO_DATA_FOUND THEN v_ongeldig := 1; END; v_errormsg := 'v_PlanEndTxt ongeldig ' || v_EndPlanTxt; IF v_EndPlanTxt IS NOT NULL AND FAC.safe_to_date (v_EndPlanTxt,'dd-mm-yyyy') IS NULL THEN v_ongeldig := 1; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!'); END IF; -- We gaan eerst de kostenplaats aanpassen IF v_ongeldig = 0 THEN BEGIN v_errormsg := 'Kijken of de kostenplaats al bestaat'; BEGIN SELECT prs_kostenplaats_key INTO v_kostenplaats_key FROM prs_kostenplaats WHERE prs_kostenplaats_nr = v_WBSelement; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO prs_kostenplaats ( prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaatsgrp_key, prs_kostenplaats_module) VALUES ( SUBSTR (v_WBSelement, 1, 30), SUBSTR (v_Omschrijving, 1, 60), v_kostenplaatsgrp_key, 'PRS') RETURNING prs_kostenplaats_key INTO v_kostenplaats_key; END; BEGIN SELECT prs_kostenplaats_key INTO v_kostenplaats_key FROM logc_imp_projecten WHERE prs_kostenplaats_key = v_kostenplaats_key; EXCEPTION WHEN NO_DATA_FOUND THEN INSERT INTO logc_imp_projecten ( prs_kostenplaats_key) VALUES (v_kostenplaats_key); END; UPDATE prs_kostenplaats SET prs_kostenplaats_omschrijving = SUBSTR (v_Omschrijving, 1, 60), prs_kostenplaatsgrp_key = v_kostenplaatsgrp_key, prs_kostenplaats_module = 'PRS', prs_kostenplaats_eind = NULL, prs_perslid_key = v_budgethouder_key WHERE prs_kostenplaats_key = v_kostenplaats_key; UPDATE logc_imp_projecten SET KlantOmschrijving = SUBSTR (v_KlantOmschrijving, 1, 100), WBSelement = SUBSTR (v_WBSelement, 1, 30), Projectsoort = SUBSTR (v_Projectsoort, 1, 2), Omschrijving = SUBSTR (v_Omschrijving, 1, 100), Status = SUBSTR (v_Status, 1, 1), Debiteur = SUBSTR (v_Debiteur, 1, 10), PlanWorktime = FAC.safe_to_number (v_PlanWorktime), ActualWorktime = FAC.safe_to_number (v_ActualWorktime), ActualWorkCosts = FAC.safe_to_number (v_ActualWorkCosts), PlanWorkCosts = FAC.safe_to_number (v_PlanWorkCosts), InvoiceReceived = FAC.safe_to_number (v_InvoiceReceived), InvoicePosted = FAC.safe_to_number (v_InvoicePosted), ProjektManagerLogin = SUBSTR (v_ProjektManagerLogin, 1, 10), SalesPersonNr = SUBSTR (v_SalesPersonNr, 1, 10), NameSalesPerson = SUBSTR (v_NameSalesPerson, 1, 40), End_plan = to_date (v_EndPlanTxt,'dd-mm-yyyy'), fac_import_key = p_import_key WHERE prs_kostenplaats_key = v_kostenplaats_key; COMMIT; END; END IF; END IF; END IF; END; END LOOP; UPDATE prs_kostenplaats SET prs_kostenplaats_eind = SYSDATE WHERE prs_kostenplaats_key NOT IN (SELECT prs_kostenplaats_key FROM logc_imp_projecten WHERE fac_import_key = p_import_key) AND prs_kostenplaatsgrp_key IN (22, 23) -- Nacalculatie, Fixed budget AND prs_kostenplaats_eind IS NULL; IF header_is_valid = 0 THEN fac.imp_writelog ( p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!' || '(' || v_KlantOmschrijving || '-' || v_WBSelement || '-' || v_Projectsoort || '-' || v_Omschrijving || '-' || v_Status || '-' || v_Debiteur || '-' || v_ActualWorktime || '-' || v_ActualWorkCosts || '-' || v_PlanWorkCosts || '-' || v_InvoiceReceived || '-' || v_InvoicePosted || '-' || v_ProjektManagerLogin || '-' || v_SalesPersonNr || '-' || v_NameSalesPerson || ')'); END IF; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := v_errormsg || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces projecten afgebroken!'); END logc_import_projecten; / CREATE OR REPLACE VIEW logc_v_rap_projecten AS SELECT d.prs_afdeling_key fclt_3d_afdeling_key, k.prs_kostenplaats_nr, k.prs_kostenplaats_omschrijving, k.prs_kostenplaats_begin, k.prs_kostenplaats_eind, kg.prs_kostenplaatsgrp_oms, p.klantomschrijving, p.debiteur, p.planworktime, p.actualworktime, DECODE (p.planworktime, 1, TO_NUMBER (NULL), 0, TO_NUMBER (NULL), p.planworktime - p.actualworktime) remainingworktime, p.planworkcosts, p.actualworkcosts, DECODE (p.planworkcosts, 1, TO_NUMBER (NULL), 0, TO_NUMBER (NULL), p.planworkcosts - p.actualworkcosts) remainingworkcosts, p.invoiceposted, p.invoicereceived, pf.prs_perslid_naam_full projectmanager, p.namesalesperson salesconctact, p.end_plan, i.fac_import_datum_gelezen syncdate, 1 dummy FROM prs_kostenplaats k, prs_kostenplaatsgrp kg, logc_imp_projecten p, fac_import i, (SELECT prs_link_key prs_afdeling_key, prs_kenmerklink_waarde debiteur FROM prs_kenmerklink WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1320) d, -- debiteurnummer prs_v_perslid_fullnames_all pf WHERE k.prs_kostenplaats_key = p.prs_kostenplaats_key AND k.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key AND p.fac_import_key = i.fac_import_key(+) AND k.prs_perslid_key = pf.prs_perslid_key(+) AND p.debiteur = d.debiteur(+); -- View voor standaard kwartaalrapportage aan klanten (zie ticket 57657) CREATE OR REPLACE VIEW logc_v_rap_klantoverzicht_mld ( koptekst, bedrijf, hoofdklant, extra_key, fclt_3d_afdeling_key, klantcode_melding, aanvrager, prs_perslid_key, aanvrager_afdeling, aanvrager_kp, melding_datum, melding_datum_tekst, melding_key, melding_nr, onderwerp, omschrijving, samenvatting, soort_melding, vakgroep, vakgroep_type, huidige_status, actie_status, aanspreekpunt_facilitor, behandelteam_actief, streefdatum_gereed, datum_afgemeld, laatste_actiedatum, laatste_notitie, doorlooptijd_werkdagen, klantreferentie, planning, raming, gekoppeld_aan ) AS SELECT (CASE WHEN m.mld_melding_datum >= TRUNC (SYSDATE, 'Q') -- Alle meldingen dit kwartaal THEN '0' -- 'Alle meldingen dit kwartaal' WHEN m.mld_melding_datum >= ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3) AND m.mld_melding_datum <= TRUNC (SYSDATE, 'Q') - 1 THEN '1' -- Alle meldingen afgelopen kwartaal' WHEN m.mld_melding_datum < ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3) AND m.mld_melding_status IN (0, 2, 3, 4, 7, 99) THEN '3' -- Alle LOPENDE meldingen die ouder zijn dan afgelopen kwartaal' ELSE '1' -- 'Alle meldingen die OUDER zijn dan afgelopen kwartaal, maar die wel afgelopen kwartaal zijn behandeld en afgemeld' END) koptekst, b.prs_bedrijf_naam bedrijf, (SELECT prs_afdeling_naam FROM prs_afdeling WHERE prs_afdeling_key = COALESCE (am.prs_afdeling_parentkey, am.prs_afdeling_key)) hoofdklant, COALESCE (am.prs_afdeling_parentkey, am.prs_afdeling_key) hoofdklant_key, COALESCE (am.prs_afdeling_parentkey, am.prs_afdeling_key) fclt_3d_afdeling_key, am.prs_afdeling_naam klantcode_melding, melder.naam, melder.prs_perslid_key, melder.afdeling, melder.prs_kostenplaats_upper, m.mld_melding_datum, TO_CHAR (m.mld_melding_datum, 'DD-MM-YYYY'), m.mld_melding_key, sd.ins_srtdiscipline_prefix || m.mld_melding_key meldingsnr, m.mld_melding_onderwerp, m.mld_melding_omschrijving, m.mld_melding_opmerking, s.mld_stdmelding_omschrijving, md.ins_discipline_omschrijving, sd.ins_srtdiscipline_omschrijving, (SELECT sta.mld_statuses_omschrijving FROM mld_statuses sta WHERE m.mld_melding_status = sta.mld_statuses_key) status, CASE WHEN m.mld_melding_actiecode = 1 AND m.mld_melding_flag = 0 THEN '' WHEN m.mld_melding_actiecode = 1 AND m.mld_melding_flag > 0 THEN lcl.l ('lcl_mld_flag' || m.mld_melding_flag) WHEN m.mld_melding_actiecode = 2 AND m.mld_melding_flag = 0 THEN 'Uw actie gevraagd' WHEN m.mld_melding_actiecode = 2 AND m.mld_melding_flag > 0 THEN 'Uw actie gevraagd - ' || lcl.l ('lcl_mld_flag' || m.mld_melding_flag) WHEN m.mld_melding_actiecode = 129 AND m.mld_melding_flag = 0 THEN '' WHEN m.mld_melding_actiecode = 129 AND m.mld_melding_flag > 0 THEN lcl.l ('lcl_mld_flag' || m.mld_melding_flag) ELSE '' END actiecode, (SELECT p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')' FROM prs_perslid p WHERE m.mld_melding_behandelaar_key = p.prs_perslid_key) aanspreekpunt_facilitor, (SELECT d.ins_discipline_omschrijving FROM ins_tab_discipline d WHERE d.ins_discipline_key = m.mld_ins_discipline_key) actiefbehandelteam, TO_CHAR (m.mld_melding_einddatum, 'DD-MM-YYYY') streefdatumgereed, (SELECT TO_CHAR (MAX (ft.fac_tracking_datum), 'DD-MM-YYYY') FROM fac_tracking ft, fac_srtnotificatie srt WHERE ft.fac_tracking_refkey = m.mld_melding_key AND ft.fac_srtnotificatie_key = srt.fac_srtnotificatie_key AND srt.fac_srtnotificatie_xmlnode = 'melding' AND ft.fac_srtnotificatie_key = 39 -- MLDAFM ) datum_afgemeld, (SELECT TO_CHAR (MAX (ft.fac_tracking_datum), 'DD-MM-YYYY') FROM fac_tracking ft, fac_srtnotificatie srt WHERE ft.fac_tracking_refkey = mld_melding_key AND ft.fac_srtnotificatie_key = srt.fac_srtnotificatie_key AND srt.fac_srtnotificatie_xmlnode = 'melding') laatsteactiedatum, (SELECT CASE WHEN MAX (mn.mld_melding_note_omschrijving) IS NOT NULL AND LENGTH (MAX (mn.mld_melding_note_omschrijving)) < 400 THEN MAX (mn.mld_melding_note_omschrijving) WHEN MAX (mn.mld_melding_note_omschrijving) IS NULL THEN '' ELSE SUBSTR (MAX (mn.mld_melding_note_omschrijving), 1, 400) || ' ...... (zie Facilitor)' END omschrijving FROM mld_melding_note mn WHERE mn.mld_melding_key = m.mld_melding_key AND mld_melding_note_flag = 1) laatstenotitie, (CASE WHEN m.mld_melding_status IN (0, 2, 3, 4, 7, 99) -- Lopend, is ook uitgegeven en 99 niet opgelost... THEN fac.count_work_days (m.mld_melding_datum, SYSDATE) WHEN m.mld_melding_status IN (5, 6) -- Verwerkt THEN fac.count_work_days ( m.mld_melding_datum, (SELECT MAX (ft.fac_tracking_datum) FROM fac_tracking ft WHERE ft.fac_tracking_refkey = m.mld_melding_key AND ft.fac_srtnotificatie_key = 39)) -- MLDAFM ELSE -- Vervallen 0 END) doorlooptijd, (SELECT km.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 61) klantreferentie, (SELECT km.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 25) planning_releaseuitgifte, (SELECT km.mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerk_key = 26) raming_uren, (CASE WHEN mld_melding_parentkey IS NOT NULL THEN 'Wordt behandeld in ' || TO_CHAR (mld_melding_parentkey) ELSE '' END) gekoppeldaan FROM mld_melding m, mld_stdmelding s, mld_discipline md, ins_srtdiscipline sd, prs_kostenplaats pk, prs_perslid p, prs_v_aanwezigafdeling a, prs_afdeling am, prs_bedrijf b, (SELECT p.prs_perslid_key, p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')' naam, prs_afdeling_naam afdeling, kp.prs_kostenplaats_key, kp.prs_kostenplaats_upper FROM prs_perslid p, prs_afdeling a, prs_kostenplaats kp WHERE p.prs_afdeling_key = a.prs_afdeling_key AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key) melder WHERE m.prs_perslid_key = melder.prs_perslid_key AND m.mld_stdmelding_key = s.mld_stdmelding_key AND s.mld_ins_discipline_key = md.ins_discipline_key AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND am.prs_afdeling_key = m.prs_afdeling_key AND p.prs_perslid_key = m.prs_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key AND b.prs_bedrijf_key = a.prs_bedrijf_key AND pk.prs_kostenplaats_key = m.prs_kostenplaats_key AND ( -- Alle meldingen dit kwartaal (m.mld_melding_datum >= TRUNC (SYSDATE, 'Q')) OR -- Alle meldingen afgelopen kwartaal (m.mld_melding_datum >= ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3) AND m.mld_melding_datum <= TRUNC (SYSDATE, 'Q') - 1) OR -- Alle LOPENDE meldingen die ouder zijn dan afgelopen kwartaal (m.mld_melding_datum < ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3) AND m.mld_melding_status IN (0, 2, 3, 4, 7, 99)) OR -- Alle meldingen die OUDER zijn dan afgelopen kwartaal, maar die wel afgelopen kwartaal zijn behandeld en afgemeld) (m.mld_melding_key IN (SELECT mm.mld_melding_key FROM mld_melding mm, fac_tracking ft, fac_srtnotificatie srt WHERE mm.mld_melding_datum < ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3) AND mm.mld_melding_key = ft.fac_tracking_refkey AND ft.fac_srtnotificatie_key = srt.fac_srtnotificatie_key AND srt.fac_srtnotificatie_xmlnode = 'melding' AND ft.fac_srtnotificatie_key = 39 -- MLDAFM AND ft.fac_tracking_datum >= ADD_MONTHS (TRUNC (SYSDATE, 'Q'), -3)))); -- VIEW voor Notificatiejob Kwartaaloverzicht openstaande tickets opsturen naar klanten die hebben aangegeven dat ze dat willen CREATE OR REPLACE VIEW LOGC_V_NOTI_KLANTOVERZICHT ( SENDER, RECEIVER, TEXT, CODE, FAC_SRTNOTIFICATIE_KEY, KEY, XKEY ) AS SELECT NULL sender, v.prs_perslid_key receiver, 'Overzicht meldingen ' || v.hoofdklant text, 'CUST01' code, (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'CUST01') fac_srtnotificatie_key, 741 key, v.extra_key -- Hoofdklant_key = afdeling_key xkey FROM (SELECT a.PRS_AFDELING_UPPER AS HOOFDKLANT, a.prs_afdeling_key AS extra_key, -- HOOFDKLANT_KEY p.prs_perslid_key, p.prs_perslid_email AS EMAIL FROM prs_perslid p, prs_kenmerklink km, prs_afdeling a WHERE p.prs_perslid_key = km.prs_link_key AND km.prs_kenmerk_key = 1020 AND km.prs_kenmerklink_waarde = 1 AND p.prs_afdeling_key = a.prs_afdeling_key AND p.prs_perslid_email IS NOT NULL AND p.prs_perslid_verwijder IS NULL AND a.prs_afdeling_verwijder IS NULL -- and p.prs_perslid_login is not null ) v, (SELECT ADD_MONTHS (TRUNC (SYSDATE - 1, 'Q'), +3) AS NextRun -- Begin_VolgendeKwartaal FROM DUAL) d WHERE d.NextRun = TRUNC (SYSDATE) -- Om de job altijd de 1e van elk kwartaal te laten lopen. ; CREATE OR REPLACE VIEW logc_v_kostenplaats_klant AS SELECT prs_kostenplaats_key, prs_kostenplaats_nr || ' - ' || prs_kostenplaats_omschrijving prs_kostenplaats_omschrijving, COALESCE (prs_kostenplaats_verwijder, prs_kostenplaats_eind) prs_kostenplaats_eind FROM prs_kostenplaats; CREATE OR REPLACE VIEW logc_v_rap_urenbesteding AS SELECT d.prs_afdeling_key fclt_3d_afdeling_key, a1.prs_afdeling_naam parent_afdeling, COALESCE(a2.prs_afdeling_naam, a1.prs_afdeling_naam) afdeling, i.project, pr.omschrijving, i.categorie, i.werknemer, i.uren, (SELECT FAC.safe_to_number (mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km, mld_kenmerk mk WHERE km.mld_kenmerk_key = mk.mld_kenmerk_key AND mk.mld_srtkenmerk_key = 261 AND km.mld_melding_key = m.mld_melding_key) raming, (SELECT SUM (i2.uren) FROM logc_imp_uren_besteding i2 WHERE i.transactietekst = i2.transactietekst) urencum, i.transactietekst, pf.prs_perslid_naam_full, i.datum, m.mld_melding_onderwerp, (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km, mld_kenmerk mk WHERE km.mld_kenmerk_key = mk.mld_kenmerk_key AND mk.mld_srtkenmerk_key = 25 AND km.mld_melding_key = m.mld_melding_key) custref, m.mld_melding_externnr, m.mld_melding_key FROM logc_imp_uren_besteding i, logc_imp_projecten pr, mld_melding m, prs_v_afdeling_boom ab, prs_afdeling a1, prs_afdeling a2, prs_perslid p, prs_v_perslid_fullnames_all pf, (SELECT prs_link_key prs_afdeling_key, prs_kenmerklink_waarde debiteur FROM prs_kenmerklink WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1320) d -- debiteurnummer WHERE i.mld_melding_key = m.mld_melding_key(+) AND m.prs_afdeling_key = ab.prs_afdeling_key(+) AND ab.prs_afdeling_key1 = a1.prs_afdeling_key(+) AND ab.prs_afdeling_key2 = a2.prs_afdeling_key(+) AND i.werknemer = p.prs_perslid_nr(+) AND p.prs_perslid_key = pf.prs_perslid_key(+) AND i.project = pr.wbselement(+) AND pr.debiteur = d.debiteur(+); CREATE OR REPLACE VIEW logc_v_rap_mld_sleeping AS SELECT MAX (actiedatum) laatste_actie, TRUNC (SYSDATE) - TRUNC (MAX (actiedatum)) dagen_stil, p.prs_perslid_naam_full melder, m.mld_melding_key, a.prs_afdeling_naam || '#' || m.mld_melding_key meldingnr, m.mld_melding_datum geregistreerd, md.ins_discipline_omschrijving behandelgroep, mld_stdmelding_omschrijving melding, mld_melding_onderwerp, pb.prs_perslid_naam_full behandelaar, bhg.ins_discipline_omschrijving behandelteam, abh.prs_perslid_naam_full actieve_behandelaar, m.mld_melding_behandelaar2_key actieve_behandelaar_key, a.prs_afdeling_omschrijving klant, DECODE (BITAND (m.mld_melding_actiecode, 1), 1, 'Behandelaar', 'Klant') actie_bij, CASE WHEN mld_melding_flag > 0 THEN lcl.l ('lcl_mld_flag' || mld_melding_flag) END status FROM mld_melding m, mld_stdmelding ms, mld_discipline md, prs_v_perslid_fullnames pb, prs_v_perslid_fullnames p, mld_discipline bhg, prs_v_perslid_fullnames abh, prs_afdeling a, (SELECT n.mld_melding_key, n.mld_melding_note_aanmaak actiedatum FROM mld_melding_note n UNION ALL SELECT fac_tracking_refkey, tr.fac_tracking_datum FROM fac_tracking tr, fac_srtnotificatie str WHERE tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key AND str.fac_srtnotificatie_xmlnode IN ('melding')) d WHERE m.mld_melding_key = d.mld_melding_key AND ms.mld_stdmelding_key = m.mld_stdmelding_key AND md.ins_discipline_key = ms.mld_ins_discipline_key AND mld_melding_behandelaar_key = pb.prs_perslid_key(+) AND m.prs_perslid_key = p.prs_perslid_key AND mld_melding_status NOT IN (1, 5, 6) AND fac_activiteit_key IS NULL AND m.mld_ins_discipline_key = bhg.ins_discipline_key(+) AND m.mld_melding_behandelaar2_key = abh.prs_perslid_key(+) AND m.prs_afdeling_key = a.prs_afdeling_key(+) GROUP BY m.mld_melding_key, m.prs_kostenplaats_key, p.prs_perslid_naam_full, m.prs_perslid_key, mld_melding_datum, md.ins_discipline_omschrijving, bhg.ins_discipline_omschrijving, mld_stdmelding_omschrijving, mld_melding_onderwerp, pb.prs_perslid_naam_full, abh.prs_perslid_naam_full, m.mld_melding_behandelaar2_key, mld_melding_flag, m.mld_melding_actiecode, a.prs_afdeling_naam, a.prs_afdeling_omschrijving ORDER BY MAX (actiedatum); CREATE OR REPLACE VIEW logc_v_rap_mldsaldo ( week, opened, closed, netto, backlog ) AS WITH ticket AS (SELECT * FROM mld_melding mm, mld_stdmelding ms, mld_discipline md WHERE mld_melding_status <> 1 AND mm.mld_stdmelding_key = ms.mld_stdmelding_key AND ms.mld_ins_discipline_key = md.ins_discipline_key AND ins_srtdiscipline_key = 1), uniqueafmelding AS ( SELECT fac_tracking_refkey, MAX (fac_tracking_datum) fac_tracking_datum FROM fac_tracking WHERE fac_srtnotificatie_key = 39 /* MLDAFM */ GROUP BY fac_tracking_refkey), afmelding AS ( SELECT TRUNC (fac_tracking_datum, 'IW') week, COUNT (DISTINCT mld_melding_key) afgemeld FROM uniqueafmelding, ticket mm WHERE fac_tracking_refkey = mm.mld_melding_key GROUP BY TRUNC (fac_tracking_datum, 'IW')), nieuw AS ( SELECT TRUNC (mld_melding_datum, 'IW') week, COUNT (*) nieuw FROM ticket mm GROUP BY TRUNC (mld_melding_datum, 'IW')) SELECT week, nieuw, afgemeld, nieuw - afgemeld netto, SUM (nieuw - afgemeld) OVER (ORDER BY week) backlog FROM (SELECT nieuw.week, nieuw, afgemeld FROM nieuw, afmelding WHERE nieuw.week = afmelding.week); CREATE OR REPLACE VIEW logc_v_rap_melding_note AS SELECT SYSDATE - mld_melding_note_aanmaak hide_f_sort, m.mld_melding_key, CASE WHEN mld_melding_note_aanmaak > SYSDATE - 4 / 24 / 60 THEN 'updated' WHEN mld_melding_note_aanmaak > SYSDATE - 1 / 24 THEN 'updated10' ELSE '' END hide_f_rowclass, mld_melding_note_aanmaak datum, TO_CHAR (mld_melding_note_aanmaak, 'HH24:MI') tijd, p.prs_perslid_naam_friendly door, COALESCE (a.prs_afdeling_naam, prs_kostenplaats_nr) || '#' || m.mld_melding_key nummer, std.mld_stdmelding_omschrijving melding, d.ins_discipline_key fclt_3d_discipline_key, d.ins_discipline_omschrijving vakgroep, sd.ins_srtdiscipline_omschrijving vakgroeptype, p4.prs_perslid_naam_friendly melder, p2.prs_perslid_naam_friendly behandelaar, d2.ins_discipline_omschrijving team, p3.prs_perslid_naam_friendly actieve_behandelaar, mld_melding_note_omschrijving notitie, m.mld_melding_onderwerp, m.mld_melding_omschrijving, COALESCE (a.prs_afdeling_naam, prs_kostenplaats_nr) klantcode, COALESCE (a.prs_afdeling_omschrijving, prs_kostenplaats_omschrijving) klant, COALESCE (a.prs_afdeling_naam, prs_kostenplaats_nr) || ' (' || COALESCE (a.prs_afdeling_omschrijving, prs_kostenplaats_omschrijving) || ')' klantcode2, DECODE (m.prs_kostenplaats_key, 4, 'Intern', 127, 'Intern', 'Klant') melding_klant, DECODE (mn.mld_melding_note_flag, 1, 'Ja', 2, 'Nvt', 'Nee') zichtbaar_fe, (SELECT pf.prs_perslid_naam_full pf FROM prs_kenmerklink pk, prs_v_perslid_fullnames_all pf WHERE pk.prs_kenmerklink_niveau = 'B' AND pk.prs_kenmerk_key = 1060 -- accountmanager AND prs_kenmerklink_verwijder IS NULL AND pf.prs_perslid_key = fac.safe_to_number (pk.prs_kenmerklink_waarde) AND a.prs_bedrijf_key = pk.prs_link_key) accnt_mgr FROM (SELECT mld_melding_note_key, mld_melding_key, mld_melding_note_aanmaak, prs_perslid_key, mld_melding_note_omschrijving, mld_melding_note_flag FROM mld_melding_note UNION ALL SELECT mld_melding_key, mld_melding_key, ft.fac_tracking_datum, -- mld_melding_datum, ft.prs_perslid_key, 'Nieuw: ' || mld_melding_onderwerp || CHR (13) || SUBSTR (mld_melding_omschrijving, 1, 4000 - 80 - 10), 2 FROM mld_melding, fac_tracking ft WHERE ft.fac_tracking_refkey = mld_melding_key AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key FROM fac_srtnotificatie WHERE fac_srtnotificatie_code = 'MLDNEW')) mn, mld_melding m, prs_v_perslid_fullnames_all p, prs_kostenplaats k, mld_stdmelding std, mld_discipline d, ins_srtdiscipline sd, mld_discipline d2, prs_v_perslid_fullnames_all p2, prs_v_perslid_fullnames_all p3, prs_v_perslid_fullnames_all p4, prs_afdeling a WHERE mld_melding_note_aanmaak > SYSDATE - 548 AND m.mld_melding_key = mn.mld_melding_key AND mn.prs_perslid_key = p.prs_perslid_key AND m.prs_perslid_key = p4.prs_perslid_key AND m.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key AND m.fac_activiteit_key IS NULL AND m.mld_ins_discipline_key = d2.ins_discipline_key(+) AND m.mld_melding_behandelaar_key = p2.prs_perslid_key(+) AND m.mld_melding_behandelaar2_key = p3.prs_perslid_key(+) AND m.prs_afdeling_key = a.prs_afdeling_key(+); CREATE OR REPLACE VIEW logc_v_rap_releasenotes2 ( mld_melding_key, notenummer, onderwerp, omschrijving, melding, vakgroep, status_key, status, module, planning, releasenote, note, tech_note, screenshot ) AS SELECT m.mld_melding_key, TO_CHAR (m.mld_melding_key), mld_melding_onderwerp, mld_melding_omschrijving, std.mld_stdmelding_omschrijving, md.ins_discipline_omschrijving, m.mld_melding_status, st.mld_statuses_omschrijving, (SELECT fac_usrdata_omschr FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata fu WHERE mld_srtkenmerk_key = 22 AND fu.fac_usrtab_key = 1 AND km.mld_kenmerk_key = k.mld_kenmerk_key AND mld_kenmerkmelding_waarde = TO_CHAR (fac_usrdata_key) AND km.mld_melding_key = m.mld_melding_key) module, (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km, mld_kenmerk k WHERE mld_srtkenmerk_key = 1 AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = m.mld_melding_key) planning, (SELECT fac_usrdata_omschr FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata fu WHERE mld_srtkenmerk_key = 321 AND fu.fac_usrtab_key = 122 AND km.mld_kenmerk_key = k.mld_kenmerk_key AND mld_kenmerkmelding_waarde = TO_CHAR (fac_usrdata_key) AND km.mld_melding_key = m.mld_melding_key) releasenote, (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km, mld_kenmerk k WHERE mld_srtkenmerk_key = 281 AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = m.mld_melding_key) note, (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km, mld_kenmerk k WHERE mld_srtkenmerk_key = 341 AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_melding_key = m.mld_melding_key) tech_note, (SELECT mld_kenmerk_key FROM mld_kenmerk k WHERE mld_srtkenmerk_key = 701 --- screenshot AND k.mld_stdmelding_key = std.mld_stdmelding_key) scrs_key FROM mld_melding m, mld_kenmerkmelding kmr, mld_kenmerk mr, mld_stdmelding std, mld_discipline md, mld_statuses st WHERE kmr.mld_melding_key = m.mld_melding_key AND kmr.mld_kenmerk_key = mr.mld_kenmerk_key AND mr.mld_srtkenmerk_key = 1 ---- planning AND kmr.mld_kenmerkmelding_waarde LIKE '20%' AND m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = md.ins_discipline_key AND m.mld_melding_status = st.mld_statuses_key AND m.mld_melding_status != 1 --- vervallen AND fac_activiteit_key IS NULL; -- De menselijke versie van de urenbesteding, tevens basis voor de SAP-exportview CREATE OR REPLACE VIEW logc_v_urenoverzicht AS SELECT TO_CHAR (mou.mld_opdr_uren_datum, 'IYYY-IW') weeknr, p_aareon.prs_perslid_nr personeelsnr, k.prs_kostenplaats_nr projectnr, mou.mld_opdr_uren_datum datum, mou.mld_opdr_uren_besteed uren, d.prs_afdeling_naam || '#' || o.mld_melding_key logcentrenr, pf.prs_perslid_naam_friendly medewerker, d.prs_afdeling_naam account, m.mld_melding_onderwerp betreft, b.prs_bedrijf_naam klant, o.mld_melding_key melding_key FROM mld_opdr_uren mou, mld_opdr o, prs_perslid p_aareon, prs_kostenplaats k, mld_melding m, prs_v_perslid_fullnames_all pf, prs_afdeling d, prs_bedrijf b, prs_perslid p_klant WHERE mou.mld_opdr_key = o.mld_opdr_key AND m.mld_melding_key = o.mld_melding_key AND COALESCE (m.prs_afdeling_key, p_klant.prs_afdeling_key) = d.prs_afdeling_key AND p_klant.prs_perslid_key = m.prs_perslid_key AND d.prs_bedrijf_key = b.prs_bedrijf_key AND mou.prs_perslid_key = p_aareon.prs_perslid_key AND k.prs_kostenplaats_key = o.prs_kostenplaats_key AND pf.prs_perslid_key = p_aareon.prs_perslid_key; -- Voor de Export van de urenbesteding naar SAP/CATS ==concept== CREATE OR REPLACE VIEW logc_v_urenexport2cats AS SELECT weeknr, personeelsnr employeenumber, TO_CHAR (datum, 'fmDD-MMfm-YYYY') workdate, projectnr wbs_element, ROUND (uren, 2) catshours, 'H' unit, 'CONS01' acttype, NULL statkeyfig01, NULL statkeyfig02, logcentrenr || ' ' || (CASE WHEN LENGTH (betreft) + 11 > 40 THEN SUBSTR (betreft, 1, 38 - 11) || '..' ELSE betreft END) shorttext FROM logc_v_urenoverzicht; CREATE OR REPLACE VIEW logc_v_rap_prj_jaareffect AS SELECT m.mld_melding_key, std.mld_stdmelding_omschrijving soort, TO_CHAR (m.mld_melding_key) meldingnr, m.mld_melding_onderwerp onderwerp, mld_statuses_omschrijving status, PF.PRS_PERSLID_NAAM_FRIENDLY melder, fac.safe_to_number (km1.mld_kenmerkmelding_waarde) jaareffect, fac.safe_to_date (km2.mld_kenmerkmelding_waarde, 'DD-MM-YYYY') ingangsdatum, ( (fac.safe_to_number (km1.mld_kenmerkmelding_waarde / 12)) * (13 - (EXTRACT ( MONTH FROM fac.safe_to_date ( km2.mld_kenmerkmelding_waarde, 'DD-MM-YYYY'))))) jaareffect_rest, COALESCE ( a.afdoms, (SELECT lkp.PRS_KOSTENPLAATS_OMSCHRIJVING FROM mld_kenmerkmelding km3, LOGC_V_KOSTENPLAATS_KLANT lkp WHERE km3.mld_melding_key = m.mld_melding_key AND km3.mld_kenmerk_key = 201 AND km3.mld_kenmerkmelding_waarde = TO_CHAR (lkp.prs_kostenplaats_key)), (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km4 WHERE km4.mld_melding_key = m.mld_melding_key AND km4.mld_kenmerk_key = 165)) Klant FROM mld_kenmerkmelding km1, mld_kenmerkmelding km2, mld_melding m, mld_statuses ms, (SELECT prs_afdeling_key, prs_afdeling_naam || ' - ' || prs_afdeling_omschrijving afdoms FROM prs_afdeling WHERE prs_afdeling_key != 104) a, --- FCLT doet niet mee mld_stdmelding std, prs_v_perslid_fullnames_all pf WHERE km1.mld_kenmerk_key = 171 --- Jaareffect AND km2.mld_kenmerk_key = 167 --- Ingangsdatum AND m.mld_melding_key = km1.mld_melding_key AND m.prs_afdeling_key = a.prs_afdeling_key(+) AND m.mld_stdmelding_key = std.mld_stdmelding_key AND km2.mld_melding_key = m.mld_melding_key AND m.mld_melding_status != 1 --- afgewezen AND m.mld_melding_status = ms.mld_statuses_key AND pf.prs_perslid_key = m.prs_perslid_key; CREATE OR REPLACE VIEW logc_v_rap_crm_gespreksverslag ( mld_melding_key, melding_datum, melding_einddatum, melder, behandelaar, actieve_behandelaar, omschrijving, onderwerp, omgevingscode, actief, mld_statuses_key, mld_statuses_omschrijving, beslisdatum, maandbedrag, implementatie, training, kans ) AS SELECT mld_melding_key, mld_melding_datum melding_datum, mld_melding_einddatum melding_einddatum, pf1.prs_perslid_naam_full melder, pf2.prs_perslid_naam_full behandelaar, pf3.prs_perslid_naam_full actieve_behandelaar, mld_melding_omschrijving, mld_melding_onderwerp, prs_afdeling_naam omgevingscode, DECODE (mld_statuses_key, 1, 'Gesloten', 6, 'Gesloten', 5, 'Gesloten', 'Open') actief, ms.mld_statuses_key, ms.mld_statuses_omschrijving, (SELECT TO_DATE(mld_kenmerkmelding_waarde, 'DD-MM-YYYY') FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 642 AND km.mld_melding_key = m.mld_melding_key) beslisdatum, (SELECT fac.safe_to_number(mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 643 AND km.mld_melding_key = m.mld_melding_key) maandbedrag, (SELECT fac.safe_to_number(mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 644 AND km.mld_melding_key = m.mld_melding_key) implementatie, (SELECT fac.safe_to_number(mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 645 AND km.mld_melding_key = m.mld_melding_key) training, (SELECT fac.safe_to_number(mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 646 AND km.mld_melding_key = m.mld_melding_key) kans FROM mld_melding m, prs_v_perslid_fullnames_all pf1, prs_v_perslid_fullnames_all pf2, prs_v_perslid_fullnames_all pf3, mld_statuses ms, prs_afdeling a WHERE mld_stdmelding_key = 281 -- gespreksverslag AND fac_activiteit_key IS NULL AND pf1.prs_perslid_key = m.prs_perslid_key AND pf2.prs_perslid_key(+) = m.mld_melding_behandelaar_key AND pf3.prs_perslid_key(+) = m.mld_melding_behandelaar2_key AND m.mld_melding_status = ms.mld_statuses_key AND m.prs_afdeling_key = a.prs_afdeling_key; CREATE OR REPLACE VIEW logc_v_rap_crm_prospects ( mld_melding_key, melding_datum, melding_einddatum, behandelaar, omschrijving, onderwerp, actief, mld_statuses_key, mld_statuses_omschrijving, leadbron, bedrijfsnaam, contactpersoon, telefoon, email, contactpersoon_overig, actietrigger, documentatie, proeftuin, demo_gegeven, offerte_verstuurd, inschatting, beslisdatum, maandbedrag, implementatie, training, contractjaren, kans, contractwaarde, project_fase ) AS SELECT mld_melding_key, mld_melding_datum melding_datum, mld_melding_einddatum melding_einddatum, pf.prs_perslid_naam_friendly behandelaar, mld_melding_omschrijving, mld_melding_onderwerp, DECODE (mld_statuses_key, 1, 'Gesloten', 6, 'Gesloten', 5, 'Gesloten', 'Open') actief, ms.mld_statuses_key, ms.mld_statuses_omschrijving, (SELECT fac_usrdata_omschr FROM mld_kenmerkmelding km, fac_usrdata ud WHERE mld_kenmerk_key = 401 AND km.mld_melding_key = m.mld_melding_key AND km.mld_kenmerkmelding_waarde = ud.fac_usrdata_key AND fac_usrtab_key = 221) leadbron, (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 463 AND km.mld_melding_key = m.mld_melding_key) bedrijfsnaam, (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 470 AND km.mld_melding_key = m.mld_melding_key) contactpersoon, (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 474 AND km.mld_melding_key = m.mld_melding_key) telefoon, (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 469 AND km.mld_melding_key = m.mld_melding_key) email, (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 472 AND km.mld_melding_key = m.mld_melding_key) contactpersoon_overig, CASE WHEN TRUNC (mld_melding_einddatum) < TRUNC (SYSDATE) THEN '!! ' || (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 461 AND km.mld_melding_key = m.mld_melding_key) ELSE (SELECT mld_kenmerkmelding_waarde FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 461 AND km.mld_melding_key = m.mld_melding_key) END actietrigger, (SELECT DECODE (mld_kenmerkmelding_waarde, 1, 'Ja') FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 468 AND km.mld_melding_key = m.mld_melding_key) documentatie, (SELECT DECODE (mld_kenmerkmelding_waarde, 1, 'Ja') FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 473 AND km.mld_melding_key = m.mld_melding_key) proeftuin, (SELECT DECODE (mld_kenmerkmelding_waarde, 1, 'Ja') FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 467 AND km.mld_melding_key = m.mld_melding_key) demo_gegeven, (SELECT DECODE (mld_kenmerkmelding_waarde, 1, 'Ja') FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 471 AND km.mld_melding_key = m.mld_melding_key) offerte_verstuurd, (SELECT fac.safe_to_number (mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 542 AND km.mld_melding_key = m.mld_melding_key) inschatting, (SELECT TO_DATE (mld_kenmerkmelding_waarde, 'DD-MM-YYYY') FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 626 AND km.mld_melding_key = m.mld_melding_key) beslisdatum, (SELECT fac.safe_to_number (mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 623 AND km.mld_melding_key = m.mld_melding_key) maandbedrag, (SELECT fac.safe_to_number (mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 624 AND km.mld_melding_key = m.mld_melding_key) implementatie, (SELECT fac.safe_to_number (mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 625 AND km.mld_melding_key = m.mld_melding_key) training, (SELECT fac.safe_to_number (mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 628 AND km.mld_melding_key = m.mld_melding_key) contractjaren, (SELECT fac.safe_to_number (mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 542 AND km.mld_melding_key = m.mld_melding_key) kans, (SELECT fac.safe_to_number (mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding km WHERE mld_kenmerk_key = 629 AND km.mld_melding_key = m.mld_melding_key) contractwaarde, (SELECT fu.fac_usrdata_omschr FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata fu WHERE mld_srtkenmerk_key = 661 AND k.mld_kenmerk_key = km.mld_kenmerk_key AND km.mld_melding_key = m.mld_melding_key AND fac.safe_to_number (mld_kenmerkmelding_waarde) = fu.fac_usrdata_key) project_fase FROM mld_melding m, prs_v_perslid_fullnames_all pf, mld_statuses ms WHERE mld_stdmelding_key = 341 -- Prospects AND fac_activiteit_key IS NULL AND pf.prs_perslid_key = COALESCE (m.mld_melding_behandelaar2_key, m.mld_melding_behandelaar_key, m.prs_perslid_key) AND m.mld_melding_status = ms.mld_statuses_key; CREATE OR REPLACE VIEW logc_v_crm_contactxbedrijf AS SELECT prs_contactpersoon_key, prs_contactpersoon_naam, prs_contactpersoon_tussenv, prs_contactpersoon_voornaam, cp.prs_contactpersoon_naam || NVL2 (cp.prs_contactpersoon_voorletters, ', ' || cp.prs_contactpersoon_voorletters, '') || NVL2 (cp.prs_contactpersoon_tussenv, ' ' || cp.prs_contactpersoon_tussenv, '') || NVL2 (cp.prs_contactpersoon_voornaam, ' (' || cp.prs_contactpersoon_voornaam || ')', '') naam_full, prs_contactpersoon_telefoon_1, prs_contactpersoon_telefoon_2, prs_contactpersoon_email, prs_bedrijf_naam, prs_bedrijf_post_adres, prs_bedrijf_post_postcode, prs_bedrijf_post_plaats, prs_bedrijf_post_land, prs_bedrijf_bezoek_adres, prs_bedrijf_bezoek_postcode, prs_bedrijf_bezoek_plaats, prs_bedrijf_bezoek_land, prs_leverancier_nr, prs_overeenkomst_nr, (SELECT DECODE (prs_kenmerklink_waarde, 1, 'Ja', 'Nee') FROM prs_kenmerklink pk WHERE prs_kenmerklink_niveau = 'C' AND prs_kenmerk_key = 1240 AND pk.prs_link_key = cp.prs_contactpersoon_key) Magazine, (SELECT DECODE (prs_kenmerklink_waarde, 1, 'Ja', 'Nee') FROM prs_kenmerklink pk WHERE prs_kenmerklink_niveau = 'C' AND prs_kenmerk_key = 1180 AND pk.prs_link_key = cp.prs_contactpersoon_key) Uitnodigen_FUN FROM prs_contactpersoon cp, prs_bedrijf b WHERE cp.prs_bedrijf_key = b.prs_bedrijf_key(+) AND prs_bedrijf_verwijder IS NULL AND prs_contactpersoon_verwijder IS NULL; CREATE OR REPLACE VIEW logc_v_rap_releasemanagement AS SELECT m.mld_melding_key, m.mld_melding_key melding, ms.mld_statuses_omschrijving status, mld_melding_datum datum, a.prs_afdeling_naam klantcode, prs_kostenplaats_nr kostenplaats, pfpb.prs_perslid_naam_full behandelaar, std.mld_stdmelding_omschrijving std_melding, d.ins_discipline_omschrijving vakgroep, mld_melding_onderwerp onderwerp, mld_melding_omschrijving omschrijving, pfm.prs_perslid_naam_full melder, pfab.prs_perslid_naam_full actieve_behandelaar, dbg.ins_discipline_omschrijving behandelgroep, CASE dbg.ins_discipline_key WHEN 41 THEN CASE WHEN pfab.prs_perslid_key IS NOT NULL THEN 'Dev assigned' ELSE 'Dev ToDo' END ELSE dbg.ins_discipline_omschrijving END behandelgroepx, km.mld_kenmerkmelding_waarde planning, (SELECT ud.fac_usrdata_volgnr || '. ' || ud.fac_usrdata_omschr FROM mld_kenmerkmelding mk, mld_kenmerk K, fac_usrdata ud WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 24 AND mk.mld_melding_key = m.mld_melding_key AND fac.safe_to_number (mk.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key AND ud.fac_usrtab_key = 22) moscow, (SELECT fac.safe_to_number (mld_kenmerkmelding_waarde) FROM mld_kenmerkmelding mk, mld_kenmerk K WHERE mk.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 2 AND mk.mld_melding_key = m.mld_melding_key) raming FROM mld_melding M, mld_stdmelding std, mld_discipline d, mld_statuses ms, prs_afdeling a, prs_kostenplaats pk, prs_v_perslid_fullnames_all pfpb, prs_v_perslid_fullnames_all pfm, prs_v_perslid_fullnames_all pfab, mld_discipline dbg, mld_kenmerk k, mld_kenmerkmelding km WHERE mld_melding_status NOT IN (1, 5, 6) AND m.mld_stdmelding_key = std.mld_stdmelding_key AND std.mld_ins_discipline_key = d.ins_discipline_key AND d.ins_srtdiscipline_key = 1 AND m.mld_melding_status = ms.mld_statuses_key AND m.prs_afdeling_key = a.prs_afdeling_key AND m.prs_kostenplaats_key = pk.prs_kostenplaats_key(+) AND m.mld_melding_behandelaar_key = pfpb.prs_perslid_key(+) AND m.prs_perslid_key_voor = pfm.prs_perslid_key AND m.mld_melding_behandelaar2_key = pfab.prs_perslid_key(+) AND m.mld_ins_discipline_key = dbg.ins_discipline_key(+) AND m.mld_melding_key = km.mld_melding_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 1 AND km.mld_kenmerkmelding_waarde LIKE '2%'; CREATE OR REPLACE VIEW logc_v_rap_emmen ( melding_key, module, kostenplaats_oms, subproductgroep, subproductgroepgroep, melding_status, melding_datum, melding_accepted, plan_uitvoertijd_sla, melding_afgemeld, sla_werkdgn, doorlooptijd_werkdgn, sla_werkuren, doorlooptijd_werkuren, uitvoering_sla_optijd, melder, productgroep, prioriteittxt, actieve_behandelgroep, actieve_behandelaar, onderwerp, melding_opmerking, afdeling_omschrijving, melding_einddatum_std ) AS SELECT distinct melding_key, (SELECT ud.fac_usrdata_omschr FROM mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkmelding km, fac_usrtab ut, fac_usrdata ud WHERE sk.mld_srtkenmerk_upper = 'HEEFT BETREKKING OP' AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key AND km.mld_kenmerkmelding_verwijder IS NULL AND ud.fac_usrdata_key = km.mld_kenmerkmelding_waarde AND ut.fac_usrtab_key = ud.fac_usrtab_key AND ut.fac_usrtab_key = 1 AND km.mld_melding_key = melding_key) module, kostenplaats_oms, subproductgroep, subproductgroepgroep, melding_status, melding_datum, melding_accepted, plan_uitvoertijd_sla, melding_afgemeld, sla_werkdgn, doorlooptijd_werkdgn, sla_werkuren, doorlooptijd_werkuren, uitvoering_sla_optijd, melder, productgroep, prioriteittxt, actieve_behandelgroep, actieve_behandelaar, onderwerp, melding_opmerking, afdeling_omschrijving, melding_einddatum_std FROM ( SELECT melding_key, kostenplaats_oms, subproductgroep, subproductgroepgroep, melding_status, melding_datum, melding_accepted, plan_uitvoertijd_sla, melding_afgemeld, sla_werkdgn, doorlooptijd_werkdgn, sla_werkuren, doorlooptijd_werkuren, uitvoering_sla_optijd, melder, productgroep, prioriteittxt, actieve_behandelgroep, actieve_behandelaar, onderwerp, melding_opmerking, afdeling_omschrijving, melding_einddatum_std FROM logc_v_mld_emmen mld WHERE mld.MELDING_DATUM< TO_DATE('01-01-'||to_char(SYSDATE-365,'YYYY'), 'DD-MM-YYYY') AND mld.MELDING_AFGEMELD > TO_DATE('01-01-'||to_char(SYSDATE-365,'YYYY'), 'DD-MM-YYYY') UNION SELECT melding_key, kostenplaats_oms, subproductgroep, subproductgroepgroep, melding_status, melding_datum, melding_accepted, plan_uitvoertijd_sla, melding_afgemeld, sla_werkdgn, doorlooptijd_werkdgn, sla_werkuren, doorlooptijd_werkuren, uitvoering_sla_optijd, melder, productgroep, prioriteittxt, actieve_behandelgroep, actieve_behandelaar, onderwerp, melding_opmerking, afdeling_omschrijving, melding_einddatum_std FROM logc_v_mld_emmen mld WHERE mld.MELDING_DATUM> TO_DATE('01-01-'||TO_CHAR(SYSDATE-365,'YYYY'), 'DD-MM-YYYY') ); CREATE OR REPLACE VIEW logc_v_export_open_mld ( result, result_order ) AS -- SELECT 'Melding key;Kostenplaat oms;Subproductgroep;Subproductgroepgroep;Melding status;Melding datum;Melding accepted;Plan uitvoertijd sla;Melding afgemeld;Sla Werkdgn;Doorlooptijd werkdgn;Doorlooptijd_uren_gepland;Doorlooptijd_uren;uitvoering_sal_optijd;melder;productgroep;Prioriteittxt;Vertantw_behandelgroep;behandelaar;Onderwerp;Melding opmerking;Afdeling_omschrijving;melding_einddatum_stdring sla', FROM dual -- UNION SELECT '"'||module||'";"'|| melding_key||'";"'|| kostenplaats_oms ||'";"'|| melder ||'";"'|| afdeling_omschrijving ||'";"'|| productgroep ||'";"'|| subproductgroep ||'";"'|| subproductgroepgroep ||'";"'|| melding_status||'";"'|| sla_werkdgn||'";"'|| plan_uitvoertijd_sla||'";"'|| melding_datum||'";"'|| melding_einddatum_std||'";"'|| melding_accepted||'";"'|| melding_afgemeld||'";"'|| doorlooptijd_werkdgn||'";"'|| sla_werkuren||'";"'|| doorlooptijd_werkuren||'";"'|| onderwerp||'";"'|| melding_opmerking||'";"'|| prioriteittxt||'";"'|| actieve_behandelgroep||'";"'|| actieve_behandelaar||'";"'|| uitvoering_sla_optijd||'"', to_char (melding_datum, 'yyyymmdd') FROM logc_v_rap_emmen; CREATE OR REPLACE VIEW logc_v_mld_emmen ( melding_key, meldingnummer, melding_start_key, externnummer, melding_regio, melding_district, melding_locatiecode, melding_locatie, melding_locatieplaats, fclt_3d_locatie_key, melding_gebouwcode, melding_gebouw, melding_verdieping, melding_ruimtenr, melding_ruimte, melding_ordernr, kostensoortgroep, kostensoort, kostenplaats, kostenplaats_oms, melder, melder_key, afdeling, afdeling_omschrijving, fclt_3d_afdeling_key, bedrijf_key, invoerder, meldbron, soortmelding, fclt_3d_discipline_key, productgroep, subproductgroep, behandelgroep, behandelaar, behandelaar_key, subproductgroepgroep, fclt_3d_discipline2_key, actieve_behandelgroep, actieve_behandelaar_key, actieve_behandelaar, melding_status, sla_nvt, sla_werkdgn, sla_werkuren, sla_respijtdgn, sla_respijturen, sla_accptdgn, sla_accpturen, plan_uitvoertijd_sla, melding_datum, melding_einddatum, melding_einddatum_std, melding_acceptdatum, melding_afgemeld, melding_accepted, doorlooptijd_werkdgn, doorlooptijd_werkuren, onderwerp, vomschrijving, melding_opmerking, prioriteit, prioriteittxt, rating, rating_opmerking, bolletje, actiecode, accept_sla_dagen, accept_sla_uren, uitvoering_sla_dagen, uitvoering_sla_uren, afspraak_sla_dagen, afspraak_sla_uren, accept_sla_optijd, uitvoering_sla_optijd, afspraak_sla_optijd, selfservice ) AS SELECT mld_melding_key, meldingnummer, mld_melding_start_key, mld_melding_externnr, alg_regio_omschrijving, alg_district_omschrijving, locatie, locatie_omschrijving, locatie_plaats, alg_locatie_key, gebouw, gebouw_naam, verdieping, ruimte, ruimte_omschrijving, melding_ordernr, kostensoortgroep, kostensoort, kostenplaats, kostenplaats_oms, melder, prs_perslid_key, afdeling, afdeling_omschrijving, afdeling_key, prs_bedrijf_key, invoerder, meldbron, soortmelding, stdm_ins_discipline_key, productgroep, subproductgroep, behandelgroep, behandelaar, behandelaar_key, subproductgroepgroep, mld_ins_discipline_key, actieve_behandelgroep, actieve_behandelaar_key, actieve_behandelaar, status, sla_nvt, sla_werkdgn, sla_werkuren, sla_respijtdgn, sla_respijturen, sla_accptdgn, sla_accpturen, plan_uitvoertijd_sla, datum, einddatum, einddatum_std, acceptdatum, afgemeld, accepted, DECODE (x.t_doorlooptijd.eenheid, 'D', x.t_doorlooptijd.tijdsduur, NULL) doorlooptijd_werkdgn, DECODE (x.t_doorlooptijd.eenheid, 'U', x.t_doorlooptijd.tijdsduur, NULL) doorlooptijd_werkuren, onderwerp, omschrijving, opmerking, mld_melding_spoed prioriteit, DECODE(mld_melding_spoed,3,lcl.l('lcl_mld_urg_normaal'),1,lcl.l('lcl_mld_urg_kritiek'),2,lcl.l('lcl_mld_urg_hoog'),4,lcl.l('lcl_mld_urg_laag')), mld_melding_satisfaction, mld_melding_satisfaction_op, mld_melding_flag, mld_melding_actiecode, DECODE (x.t_doorlooptijd.eenheid, 'D', acceptdatum - COALESCE (accepted, afgemeld), NULL) accept_sla_dagen, CAST ( DECODE (x.t_doorlooptijd.eenheid, 'U', (acceptdatum - COALESCE (accepted, afgemeld)) * 24, NULL) AS NUMBER(7,2) ) accept_sla_uren, DECODE ( x.t_doorlooptijd.eenheid, 'D', mld.geteinddatum (mld_melding_key) - COALESCE (afgemeld, SYSDATE) + COALESCE (sla_respijtdgn, 0), NULL) uitvoering_sla_dagen, CAST ( DECODE ( x.t_doorlooptijd.eenheid, 'U', ( (mld.geteinddatum (mld_melding_key) - COALESCE (afgemeld, SYSDATE)) * 24) + COALESCE (sla_respijturen, 0), NULL) AS NUMBER(7,2) ) uitvoering_sla_uren, DECODE (x.t_doorlooptijd.eenheid, 'D', einddatum - COALESCE (afgemeld, SYSDATE) + COALESCE (sla_respijtdgn, 0), NULL) afspraak_sla_dagen, CAST ( DECODE ( x.t_doorlooptijd.eenheid, 'U', ( (einddatum - COALESCE (afgemeld, SYSDATE)) * 24) + COALESCE (sla_respijtdgn, 0), NULL) AS NUMBER(7,2) ) afspraak_sla_uren, CASE WHEN acceptdatum IS NULL OR -- Dan is er geen acceptatietijd gedefinieerd en dus altijd op tijd. DECODE (x.t_doorlooptijd.eenheid, 'D', acceptdatum - COALESCE (accepted, afgemeld), 0) + DECODE (x.t_doorlooptijd.eenheid, 'U', (acceptdatum - COALESCE (accepted, afgemeld)) * 24, 0) >= 0 THEN lcl.l ('lcl_yes') ELSE lcl.l ('lcl_no') END accept_sla_optijd, CASE WHEN DECODE ( x.t_doorlooptijd.eenheid, 'D', mld.geteinddatum (mld_melding_key) - COALESCE (afgemeld, SYSDATE) + COALESCE (sla_respijtdgn, 0), 0) + DECODE ( x.t_doorlooptijd.eenheid, 'U', ( (mld.geteinddatum(mld_melding_key) - COALESCE (afgemeld, SYSDATE)) * 24) + COALESCE (sla_respijturen, 0), 0) >= 0 THEN lcl.l ('lcl_yes') ELSE lcl.l ('lcl_no') END uitvoering_sla_optijd, CASE WHEN DECODE (x.t_doorlooptijd.eenheid, 'D', einddatum - COALESCE (afgemeld, SYSDATE) + COALESCE (sla_respijtdgn, 0), 0) + DECODE ( x.t_doorlooptijd.eenheid, 'U', ( (einddatum - COALESCE (afgemeld, SYSDATE)) * 24) + COALESCE (sla_respijtdgn, 0), 0) >= 0 THEN lcl.l ('lcl_yes') ELSE lcl.l ('lcl_no') END afspraak_sla_optijd, DECODE(invoerder, melder, lcl.l ('lcl_yes'), lcl.l ('lcl_no')) selfservice FROM (SELECT m.mld_melding_key, m.mld_melding_start_key, m.mld_melding_externnr, m.prs_perslid_key, sd.ins_srtdiscipline_prefix || m.mld_melding_key meldingnummer, alg_regio_omschrijving, alg_district_omschrijving, alg_locatie_code locatie, alg_locatie_omschrijving locatie_omschrijving, alg_locatie_plaats locatie_plaats, l.alg_locatie_key, og.alg_gebouw_code gebouw, og.alg_gebouw_naam gebouw_naam, og.alg_verdieping_code verdieping, og.alg_ruimte_nr ruimte, og.alg_ruimte_omschrijving ruimte_omschrijving, m.mld_melding_ordernr melding_ordernr, (SELECT ksg.prs_kostensoortgrp_oms FROM prs_kostensoortgrp ksg, prs_kostensoort ks WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key AND ks.prs_kostensoort_key = (SELECT COALESCE (sm.prs_kostensoort_key, disc.prs_kostensoort_key) FROM mld_stdmelding sm, mld_discipline disc WHERE sm.mld_ins_discipline_key = disc.ins_discipline_key AND sm.mld_stdmelding_key = s.mld_stdmelding_key)) kostensoortgroep, (SELECT ks.prs_kostensoort_oms FROM prs_kostensoort ks WHERE ks.prs_kostensoort_key = (SELECT COALESCE (sm.prs_kostensoort_key, disc.prs_kostensoort_key) FROM mld_stdmelding sm, mld_discipline disc WHERE sm.mld_ins_discipline_key = disc.ins_discipline_key AND sm.mld_stdmelding_key = s.mld_stdmelding_key)) kostensoort, (SELECT k.prs_kostenplaats_nr FROM prs_kostenplaats k WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key) kostenplaats, (SELECT k.prs_kostenplaats_omschrijving FROM prs_kostenplaats k WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key) kostenplaats_oms, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.prs_perslid_key) melder, COALESCE ( (SELECT prs_afdeling_naam FROM prs_afdeling afd WHERE afd.prs_afdeling_key = m.prs_afdeling_key), (SELECT prs_afdeling_naam FROM prs_afdeling afd, prs_perslid pp WHERE afd.prs_afdeling_key = pp.prs_afdeling_key AND pp.prs_perslid_key = m.prs_perslid_key)) afdeling, COALESCE ( (SELECT prs_afdeling_omschrijving FROM prs_afdeling afd WHERE afd.prs_afdeling_key = m.prs_afdeling_key), (SELECT prs_afdeling_omschrijving FROM prs_afdeling afd, prs_perslid pp WHERE afd.prs_afdeling_key = pp.prs_afdeling_key AND pp.prs_perslid_key = m.prs_perslid_key)) afdeling_omschrijving, COALESCE ( (m.prs_afdeling_key), (SELECT prs_afdeling_key FROM prs_perslid pp WHERE pp.prs_perslid_key = m.prs_perslid_key)) afdeling_key, (SELECT prs_bedrijf_key FROM prs_v_afdeling pva, prs_perslid pp WHERE pva.prs_afdeling_key = pp.prs_afdeling_key AND pp.prs_perslid_key = m.prs_perslid_key) prs_bedrijf_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = mld.getmeldinguser (m.mld_melding_key)) invoerder, (SELECT mb.mld_meldbron_omschrijving FROM mld_meldbron mb WHERE mb.mld_meldbron_key = m.mld_meldbron_key) meldbron, m.mld_meldbron_key, sd.ins_srtdiscipline_key ins_srtdiscipline_key, sd.ins_srtdiscipline_omschrijving soortmelding, md.ins_discipline_key stdm_ins_discipline_key, md.ins_discipline_omschrijving productgroep, s.mld_stdmelding_omschrijving subproductgroep, smg.mld_stdmeldinggroep_naam subproductgroepgroep, mbg.mld_behandelgroep_naam behandelgroep, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.mld_melding_behandelaar_key) behandelaar, m.mld_melding_behandelaar_key behandelaar_key, m.mld_ins_discipline_key mld_ins_discipline_key, (SELECT md2.ins_discipline_omschrijving FROM mld_discipline md2 WHERE md2.ins_discipline_key = m.mld_ins_discipline_key) actieve_behandelgroep, m.mld_melding_behandelaar2_key actieve_behandelaar_key, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = m.mld_melding_behandelaar2_key) actieve_behandelaar, (SELECT mld_statuses_omschrijving FROM mld_statuses sta WHERE sta.mld_statuses_key = m.mld_melding_status) status, CASE WHEN m.mld_melding_einddatum > COALESCE (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), fac.gettrackingdate ('MLDREJ', m.mld_melding_key), SYSDATE) THEN 1 ELSE 0 END plan_uitvoertijd_sla, CASE WHEN m.mld_melding_indult = 1 OR s.mld_stdmelding_slabewaken = 0 THEN 1 ELSE 0 END sla_nvt, DECODE (m.mld_melding_t_uitvoertijd.eenheid, 'D', m.mld_melding_t_uitvoertijd.tijdsduur, NULL) sla_werkdgn, DECODE (m.mld_melding_t_uitvoertijd.eenheid, 'U', m.mld_melding_t_uitvoertijd.tijdsduur, NULL) sla_werkuren, DECODE (m.mld_melding_t_respijt.eenheid, 'D', m.mld_melding_t_respijt.tijdsduur, NULL) sla_respijtdgn, DECODE (m.mld_melding_t_respijt.eenheid, 'U', m.mld_melding_t_respijt.tijdsduur, NULL) sla_respijturen, DECODE (m.mld_melding_t_accepttijd.eenheid, 'D', m.mld_melding_t_accepttijd.tijdsduur, NULL) sla_accptdgn, DECODE (m.mld_melding_t_accepttijd.eenheid, 'U', m.mld_melding_t_accepttijd.tijdsduur, NULL) sla_accpturen, m.mld_melding_datum datum, CASE WHEN s.mld_stdmelding_planbaar = 2 THEN TO_DATE(NULL) ELSE m.mld_melding_einddatum END einddatum, mld_melding_einddatum_std einddatum_std, mld_melding_acceptdatum_std acceptdatum, COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5), mld.getmeldingstatusdate (m.mld_melding_key, 1)) afgemeld, COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 4), mld.getmeldingstatusdate (m.mld_melding_key, 1)) accepted, mld.getactualuitvoer (m.mld_melding_key) t_doorlooptijd, m.mld_melding_onderwerp onderwerp, REPLACE(REPLACE(m.mld_melding_omschrijving,CHR(10),''),CHR(13),'') omschrijving, m.mld_melding_opmerking opmerking, m.mld_melding_spoed, m.mld_melding_satisfaction, m.mld_melding_satisfaction_op, m.mld_melding_flag, mld_melding_actiecode FROM mld_melding m, mld_stdmelding s, alg_locatie l, alg_district d, alg_regio r, alg_v_allonrgoed_gegevens og, mld_discipline md, mld_disc_params mdp, mld_behandelgroep mbg, ins_srtdiscipline sd, mld_stdmeldinggroep smg WHERE s.mld_stdmelding_key = m.mld_stdmelding_key AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key AND md.ins_discipline_key = s.mld_ins_discipline_key AND md.ins_discipline_key = mdp.mld_ins_discipline_key AND s.mld_stdmeldinggroep_key = smg.mld_stdmeldinggroep_key(+) AND mdp.mld_behandelgroep_key = mbg.mld_behandelgroep_key(+) AND l.alg_district_key = d.alg_district_key(+) AND d.alg_regio_key = r.alg_regio_key(+) AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+) AND m.fac_activiteit_key IS NULL AND m.mld_melding_datum >= TO_DATE ('01-01-2010', 'DD-MM-YYYY')) x; ------ 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