#ifdef MLD // 13-03-96 AH /* * $Revision$ * $Id$ */ CREATE_VIEW(MLD_discipline, 0) AS SELECT * FROM ins_tab_discipline WHERE ins_discipline_module = 'MLD'; DEFINIEER_VIEW_AANWEZIG(MLD_discipline, ins_discipline_verwijder, MLD_v_aanwezigdiscipline,0); DEFINIEER_VIEW_AANWEZIG(mld_oorzaak, mld_oorzaak_verwijder, mld_v_aanwezigoorzaak, 0); DEFINIEER_VIEW_AANWEZIG(mld_meldbron, mld_meldbron_verwijder, mld_v_aanwezigmeldbron, 0); DEFINIEER_VIEW_AANWEZIG(mld_standaardopdr, mld_standaardopdr_verwijder, mld_v_aanwezigstandaardopdr, 0); /* LET OP (FSN#21553) * Deze twee views lijken qua naam een tabel, maar is het technisch niet * Hij levert de statustekst in de juiste taal op, van een specifieke statuscode * Voorheen was dit een tabel met deze naam, en werd deze initieel gevuld. Dit is * hiermee dus vanwege de i18n veranderd. */ CREATE_VIEW(mld_statuses, 0) AS SELECT fac_code2label_code mld_statuses_key, COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst) mld_statuses_omschrijving FROM fac_locale_xsl fl, fac_code2label fs WHERE fl.fac_locale_xsl_label = fac_code2label_label AND fac_code2label_domein = 'melding' AND fac_locale_xsl_lang = lcl.getuserlanguage (); CREATE_VIEW(mld_statusopdr, 0) AS SELECT fac_code2label_code mld_statusopdr_key, COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst) mld_statusopdr_omschrijving FROM fac_locale_xsl fl, fac_code2label fs WHERE fl.fac_locale_xsl_label = fac_code2label_label AND fac_code2label_domein = 'opdracht' AND fac_locale_xsl_lang = lcl.getuserlanguage (); /* View met alle sleutels van de gemeenschappelijke sequence prs_s_prs_uitvoerende_keys */ CREATE_VIEW(mld_v_aanweziguitvoerende,0) ( mld_alluitvoerende_keys, prs_bedrijf_key, prs_perslid_key, prs_srtperslid_key, mld_type) AS SELECT prs_v_uitvoerendebedrijf.prs_bedrijf_key, prs_v_uitvoerendebedrijf.prs_bedrijf_key, TO_NUMBER(NULL), TO_NUMBER(NULL), 'B' FROM prs_v_uitvoerendebedrijf WHERE prs_bedrijf_key>0 UNION SELECT prs_v_aanwezigperslid.prs_perslid_key, TO_NUMBER(NULL), prs_v_aanwezigperslid.prs_perslid_key, prs_v_aanwezigperslid.prs_srtperslid_key, 'P' FROM prs_v_aanwezigperslid WHERE prs_perslid_key >0 UNION SELECT prs_v_aanwezigsrtperslid.prs_srtperslid_key, prs_v_aanwezigsrtperslid.prs_bedrijf_key, TO_NUMBER(NULL), prs_v_aanwezigsrtperslid.prs_srtperslid_key, 'S' FROM prs_v_aanwezigsrtperslid; /* View met alle sleutels van de uitvoerenden type: 'B' = bedrijf 'P' = perslid //'S' = srtperslid bij bedrijf */ /* PF: op eigen houtje aangepast, achterhaalde onzin eruitgehaald */ CREATE_VIEW(mld_v_uitvoerende,0) (mld_uitvoerende_key, naam, type, intern) AS SELECT B.prs_bedrijf_key, B.prs_bedrijf_naam, 'B', COALESCE(prs_bedrijf_intern, 0) FROM prs_bedrijf B UNION ALL SELECT P.prs_perslid_key, p.prs_perslid_naam||DECODE(p.prs_perslid_voorletters,null,'',', '||p.prs_perslid_voorletters)||DECODE(p.prs_perslid_tussenvoegsel,null,'',' '||p.prs_perslid_tussenvoegsel)||DECODE(p.prs_perslid_voornaam,null,'',' ('||p.prs_perslid_voornaam||')'), 'P', 1 FROM prs_perslid P; /* * View voor de form mld_215.fmb */ CREATE_VIEW(mld_v_onroerendgoed_locatie,0) ( alg_onroerendgoed_keys, alg_onrgoed_omschrijving, alg_locatie_key, alg_gebouw_key, alg_terreinsector_key, type ) AS SELECT ALG_O.alg_onroerendgoed_keys, ALG_G.alg_gebouw_omschrijving, ALG_G.alg_locatie_key, ALG_G.alg_gebouw_key, to_number(NULL), 'G' FROM alg_v_onroerendgoed ALG_O, alg_v_aanweziggebouw ALG_G WHERE ALG_O.alg_gebouw_key = ALG_G.alg_gebouw_key UNION SELECT ALG_O.alg_onroerendgoed_keys, ALG_T.alg_terreinsector_omschrijving, ALG_T.alg_locatie_key, to_number(NULL), ALG_T.alg_terreinsector_key, 'T' FROM alg_v_onroerendgoed ALG_O, alg_v_aanwezigterreinsector ALG_T WHERE ALG_O.alg_terreinsector_key = ALG_T.alg_terreinsector_key; CREATE_VIEW(mld_v_ins_discipline, 0) AS SELECT * FROM MLD_v_aanwezigdiscipline; DEFINIEER_VIEW_AANWEZIG(mld_melding_object, mld_melding_object_verwijder, mld_v_aanwezigmelding_object,0); DEFINIEER_VIEW_AANWEZIG(mld_kenmerkmelding, mld_kenmerkmelding_verwijder, mld_v_aanwezigkenmerkmelding, 0); DEFINIEER_VIEW_AANWEZIG(mld_adres, mld_adres_verwijder, mld_v_aanwezigadres, 0); CREATE_VIEW(mld_v_afleveradres, 0) AS SELECT * FROM mld_v_aanwezigadres WHERE mld_adres_afleveradres = 1; CREATE_VIEW(mld_v_factuuradres, 0) AS SELECT * FROM mld_v_aanwezigadres WHERE mld_adres_factuuradres = 1; DEFINIEER_VIEW_AANWEZIG(mld_kenmerkopdr, mld_kenmerkopdr_verwijder, mld_v_aanwezigkenmerkopdr, 0); -- Voor een handige standaardrapportage CREATE_VIEW(mld_v_rap_stdmelding, 0) ( hide_f_vakgroeptype, fclt_f_vakgroep, vakgroep_key, notificeren_vakgroep, doorzetten, eerstnaarFO, interactie_fe, fclt_f_melding, melding_key, volgnummer, meldingsgroep, acceptatietijd, /* _normaal zou logisch zijn, maar incompatible */ acceptatietijd_laag, acceptatietijd_hoog, acceptatietijd_kritisch, uitvoertijd_normaal, uitvoertijd_laag, uitvoertijd_hoog, uitvoertijd_kritisch, planbaar, omschrijvingsveld, tekst_bij_afmelden, niet_zichtbaar_fe, notificeren, kostensoort, object_kiezen_verplicht, verplicht_niveau_alg, alleen_ruimtes_eigen_org, aanwijzing, symboolnaam, te_beh_door_dienst, dienst_vereist, standaard_opdrachttype, auto_opdr_aanmaken, beperk_tot_catalogus, kopieerbaar, regime, malusbasis, malus, malusmax, dubbele_mld_controleren, doet_mee_in_kto, vervaldatum ) AS SELECT ins_srtdiscipline_omschrijving vakgroeptype, ins_srtdiscipline_prefix || '-' || vak.ins_discipline_omschrijving vakgroep, vak.ins_discipline_key vakgroep_key, DECODE (mld_disc_params_notify, 0, 'Nooit', 1, 'Altijd', 2, 'Afhankelijk van melding', 'Onbekend') notificeren, DECODE (mld_disc_params_keten, 0, 'Niet', 'Wel') doorzetten, DECODE (COALESCE(mld_stdmelding_directklaar, mld_disc_params_directklaar), 0, 'Nee', 1, 'Ja', 2, 'Initieel ook eerst naar FO', 'Onbekend') eerstnaarFO, DECODE (mld_disc_params_fenotes, 0, 'default niet zichtbaar voor FE', 1, 'default wel zichtbaar voor FE', 2, 'per notitie, default niet zichtbaar voor FE', 3, 'per notitie, default wel zichtbaar voor FE', 'Onbekend') interactiefe, mld_stdmelding_omschrijving melding, std.mld_stdmelding_key melding_key, mld_stdmelding_volgnr volgnummer, mld_stdmeldinggroep_naam meldingsgroep, std.mld_stdmelding_t_accepttijd.tijdsduur||DECODE(std.mld_stdmelding_t_accepttijd.eenheid, 'U', ' Uren', 'D', ' Dagen', '') acceptatietijd, std.mld_stdmelding_t_accept_pr4.tijdsduur||DECODE(std.mld_stdmelding_t_accepttijd.eenheid, 'U', ' Uren', 'D', ' Dagen', '') acceptatietijd_laag, std.mld_stdmelding_t_accept_pr2.tijdsduur||DECODE(std.mld_stdmelding_t_accepttijd.eenheid, 'U', ' Uren', 'D', ' Dagen', '') acceptatietijd_hoog, std.mld_stdmelding_t_accept_pr1.tijdsduur||DECODE(std.mld_stdmelding_t_accepttijd.eenheid, 'U', ' Uren', 'D', ' Dagen', '') acceptatietijd_kritisch, std.mld_stdmelding_t_uitvoertijd.tijdsduur||DECODE(std.mld_stdmelding_t_uitvoertijd.eenheid, 'U', ' Uren', 'D', ' Dagen', '') uitvoertijd_normaal, std.mld_stdmelding_t_uitvtijd_pr4.tijdsduur||DECODE(std.mld_stdmelding_t_uitvtijd_pr4.eenheid, 'U', ' Uren', 'D', ' Dagen', '') uitvoertijd_laag, std.mld_stdmelding_t_uitvtijd_pr2.tijdsduur||DECODE(std.mld_stdmelding_t_uitvtijd_pr2.eenheid, 'U', ' Uren', 'D', ' Dagen', '') uitvoertijd_hoog, std.mld_stdmelding_t_uitvtijd_pr1.tijdsduur||DECODE(std.mld_stdmelding_t_uitvtijd_pr1.eenheid, 'U', ' Uren', 'D', ' Dagen', '') uitvoertijd_kritisch, DECODE (mld_stdmelding_planbaar, 1, 'ja', 'nee') planbaar, DECODE (mld_stdmelding_freetext, 0, 'onzichtbaar', 2, 'verplicht', 'optioneel') omschrijvingsveld, DECODE (mld_stdmelding_afmeldtext, 2, 'verplicht', 'optioneel') tekst_bij_afmelden, DECODE (mld_stdmelding_notfrontend, 1, 'ja', 'nee') niet_zichtbaar_fe, DECODE (mld_stdmelding_notify, 1, 'ja', 'nee') notificeren, pks.prs_kostensoort_oms kostensoort, CASE WHEN ins_srtinst_verplichtstatus = 1 THEN 'Afgewezen' WHEN ins_srtinst_verplichtstatus = 2 THEN 'Altijd verplicht' WHEN ins_srtinst_verplichtstatus = 5 THEN 'Afgemeld' ELSE 'Niet verplicht' END status_object_verplicht, DECODE (alg_onrgoed_niveau, 'R', 'ruimte', 'V', 'verdieping', 'G', 'gebouw', 'L', 'locatie', 'H', 'niet tonen', '' , 'niet verplicht') verplicht_niveau, DECODE (mld_stdmelding_prseigen, 1, 'ja', 'nee') alleen_ruimtes_eigen_org, mld_stdmelding_hint aanwijzing, mld_stdmelding_image symboolnaam, d.prs_dienst_omschrijving te_beh_door_dienst, DECODE (mld_stdmelding_vereisdienst, 1, 'ja', 'nee') dienst_vereist, ot.mld_typeopdr_omschrijving standaard_opdrachttype, DECODE (mld_stdmelding_autoorder, 1, 'ja', 'nee') auto_opdr_aanmaken, bd.ins_discipline_omschrijving beperk_tot_catalogus, DECODE (mld_stdmelding_kopieerbaar, 1, 'ja', 'nee') kopieerbaar, DECODE (mld_stdmelding_regime, 1, 'Kantoortijden', 2, 'Openingstijden', 3, '24/7') regime, mld_stdmelding_malusbasis malusbasis, mld_stdmelding_malus malus, mld_stdmelding_malusmax malusmax, DECODE (mld_stdmelding_doublecheck, 1, 'alleen bij invoeren', 2, 'alleen bij accepteren', 3, 'bij invoeren en accepteren', 'nooit') dubbele_mld_controleren, DECODE (mld_stdmelding_kto, 1, 'Altijd', 2, 'Opt-in', 3, 'Opt-out', 'Nooit') doet_mee_in_kto, mld_stdmelding_vervaldatum vervaldatum FROM mld_stdmelding std, mld_stdmeldinggroep smg, mld_discipline vak, ins_srtdiscipline srt, prs_kostensoort pks, prs_dienst d, mld_disc_params dp, mld_typeopdr ot, bes_discipline bd WHERE std.mld_stdmelding_verwijder IS NULL AND std.mld_ins_discipline_key = vak.ins_discipline_key AND vak.ins_discipline_verwijder IS NULL AND vak.ins_srtdiscipline_key = srt.ins_srtdiscipline_key AND srt.ins_srtdiscipline_verwijder IS NULL AND std.prs_kostensoort_key = pks.prs_kostensoort_key(+) AND std.prs_dienst_key = d.prs_dienst_key(+) AND std.mld_typeopdr_key = ot.mld_typeopdr_key(+) AND std.mld_stdmeldinggroep_key = smg.mld_stdmeldinggroep_key(+) AND bd.ins_discipline_key(+) = std.bes_ins_discipline_key AND vak.ins_discipline_key = dp.mld_ins_discipline_key; -- UWVA#31346: Export tbv. import afmeldteksten! CREATE_VIEW(mld_v_rap_expimp_afmtxt, 0) ( afmeldtekstnaam, afmeldtekstomschrijving, fclt_x_discipline_key, fclt_x_stdmelding_key, discipline_key, stdmelding_key, afmeldtekstusefor ) AS SELECT t.mld_afmeldtekst_naam , t.mld_afmeldtekst_omschrijving , md.ins_discipline_omschrijving || ' [key=' || TO_CHAR (sm.mld_ins_discipline_key) || ']' , sm.mld_stdmelding_omschrijving || ' [key=' || TO_CHAR (sm.mld_stdmelding_key) || ']' , sm.mld_ins_discipline_key , t.mld_stdmelding_key , mld_afmeldtekst_usefor FROM mld_afmeldtekst t , mld_stdmelding sm , mld_discipline md WHERE t.mld_stdmelding_key IS NOT NULL AND t.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = md.ins_discipline_key UNION SELECT t.mld_afmeldtekst_naam , t.mld_afmeldtekst_omschrijving , DECODE ( md.ins_discipline_key, NULL, NULL, md.ins_discipline_omschrijving || ' [key=' || TO_CHAR (md.ins_discipline_key) || ']') , NULL , md.ins_discipline_key , NULL , mld_afmeldtekst_usefor FROM mld_afmeldtekst t , mld_discipline md WHERE t.mld_stdmelding_key IS NULL AND t.mld_ins_discipline_key = md.ins_discipline_key(+); -- Defines the personal todo-list for user fclt_3d_user_key, -- gathering all the variants that an order can be assigned -- To be used as base for a report. First version CREATE_VIEW(mld_v_rap_prs_todolist, 0) ( opdr_key, res_key, taak, referentie, plaatsmelding, prio, begindatum, einddatum, planning_van, planning_tot, gepland, omschrijving, opdrachtstatuscode, opdrachtstatus, behandelaar, behandelaar_alt, plantype, actief, halted, mld_opdr_flag, mld_opdr_actiecode, prs_bedrijf_naam, plaatsbedrijf, fclt_3d_user_key ) AS SELECT o.mld_opdr_key, NULL, lcl.x (std.mld_stdmelding_omschrijving, std.mld_stdmelding_key, std.mld_stdmelding_omschrijving) omschrijving, sd.ins_srtdiscipline_prefix || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht, NVL (va.plaatsmelding, l.alg_locatie_code) plaatsmelding, 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')) prio, o.mld_opdr_datumbegin begindatum, o.mld_opdr_einddatum einddatum, o.mld_opdr_plandatum planning_van, o.mld_opdr_plandatum2 planning_tot, DECODE (o.mld_opdr_plandatum, NULL, lcl.l ('lcl_No'), lcl.l ('lcl_Yes')) gepland, o.mld_opdr_omschrijving, o.mld_statusopdr_key opdrachtstatuscode, so.mld_statusopdr_omschrijving opdrachtstatus, (SELECT p.prs_perslid_naam_friendly FROM prs_v_perslid_fullnames_all p WHERE p.prs_perslid_key = cp.prs_perslid_key) behandelaar, cp.prs_contactpersoon_naam behandelaar_alt, 'OC' plantype, DECODE (o.mld_statusopdr_key, 8, lcl.l ('lcl_Yes'), lcl.l ('lcl_No')) actief, DECODE (o.mld_opdr_halted, 1, lcl.l ('lcl_Yes'), lcl.l ('lcl_No')) halted, o.mld_opdr_flag, o.mld_opdr_actiecode, b.prs_bedrijf_naam, COALESCE (b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaatsbedrijf, cp.prs_perslid_key fclt_3d_user_key FROM mld_opdr o, mld_melding m, mld_stdmelding std, mld_statusopdr so, ins_tab_discipline d, ins_srtdiscipline sd, (SELECT v.alg_onroerendgoed_keys, v.alg_gebouw_key, v.alg_verdieping_key, v.alg_ruimte_key, l.alg_locatie_code || '-' || DECODE ( v.alg_plaatsaanduiding, '', ' (' || l.alg_locatie_omschrijving || ')', v.alg_plaatsaanduiding || DECODE (v.alg_plaatsomschrijving, '', '', ' (' || v.alg_plaatsomschrijving || ')')) plaatsmelding FROM alg_v_allonrgoed_gegevens v, alg_locatie l WHERE l.alg_locatie_key = v.alg_locatie_key) va, alg_locatie l, alg_district di, prs_bedrijf b, prs_contactpersoon cp WHERE o.mld_melding_key = m.mld_melding_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 o.mld_statusopdr_key IN (4, 5, 8) AND so.mld_statusopdr_key = o.mld_statusopdr_key AND m.mld_alg_onroerendgoed_keys = va.alg_onroerendgoed_keys(+) AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND l.alg_district_key = di.alg_district_key(+) --AND o.mld_uitvoerende_keys = cp.prs_bedrijf_key AND o.prs_contactpersoon_key = cp.prs_contactpersoon_key AND cp.prs_bedrijf_key = b.prs_bedrijf_key UNION SELECT o.mld_opdr_key, NULL, lcl.x (std.mld_stdmelding_omschrijving, std.mld_stdmelding_key, std.mld_stdmelding_omschrijving) omschrijving, sd.ins_srtdiscipline_prefix || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht, NVL (va.plaatsmelding, l.alg_locatie_code) plaatsmelding, 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')) prio, o.mld_opdr_datumbegin begindatum, o.mld_opdr_einddatum einddatum, o.mld_opdr_plandatum planning_van, o.mld_opdr_plandatum2 planning_tot, DECODE (o.mld_opdr_plandatum, NULL, lcl.l ('lcl_No'), lcl.l ('lcl_Yes')) gepland, o.mld_opdr_omschrijving, o.mld_statusopdr_key opdrachtstatuscode, so.mld_statusopdr_omschrijving opdrachtstatus, pf.prs_perslid_naam_friendly behandelaar, pf.prs_perslid_naam_full behandelaar_alt, 'OUP' -- opdracht door uitvoerende interne persoon plantype, DECODE (o.mld_statusopdr_key, 8, lcl.l ('lcl_Yes'), lcl.l ('lcl_No')) actief, DECODE (o.mld_opdr_halted, 1, lcl.l ('lcl_Yes'), lcl.l ('lcl_No')) halted, o.mld_opdr_flag, o.mld_opdr_actiecode, b.prs_bedrijf_naam, COALESCE (b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaatsbedrijf, pf.prs_perslid_key fclt_3d_user_key FROM mld_opdr o, mld_melding m, mld_stdmelding std, mld_statusopdr so, ins_tab_discipline d, ins_srtdiscipline sd, (SELECT v.alg_onroerendgoed_keys, v.alg_gebouw_key, v.alg_verdieping_key, v.alg_ruimte_key, l.alg_locatie_code || '-' || DECODE ( v.alg_plaatsaanduiding, '', ' (' || l.alg_locatie_omschrijving || ')', v.alg_plaatsaanduiding || DECODE (v.alg_plaatsomschrijving, '', '', ' (' || v.alg_plaatsomschrijving || ')')) plaatsmelding FROM alg_v_allonrgoed_gegevens v, alg_locatie l WHERE l.alg_locatie_key = v.alg_locatie_key) va, alg_locatie l, alg_district di, prs_v_afdeling afd, prs_bedrijf b, prs_perslid p, prs_v_perslid_fullnames pf WHERE o.mld_melding_key = m.mld_melding_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 o.mld_statusopdr_key IN (4, 5, 8) AND so.mld_statusopdr_key = o.mld_statusopdr_key AND m.mld_alg_onroerendgoed_keys = va.alg_onroerendgoed_keys(+) AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND l.alg_district_key = di.alg_district_key(+) AND o.mld_uitvoerende_keys = p.prs_perslid_key AND pf.prs_perslid_key = p.prs_perslid_key AND o.prs_contactpersoon_key IS NULL AND p.prs_afdeling_key = afd.prs_afdeling_key AND afd.prs_bedrijf_key = b.prs_bedrijf_key UNION SELECT o.mld_opdr_key, NULL, lcl.x (std.mld_stdmelding_omschrijving, std.mld_stdmelding_key, std.mld_stdmelding_omschrijving) omschrijving, sd.ins_srtdiscipline_prefix || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht, NVL (va.plaatsmelding, l.alg_locatie_code) plaatsmelding, 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')) spoed, o.mld_opdr_datumbegin, o.mld_opdr_einddatum, rrd.res_rsv_deel_van planning_van, rrd.res_rsv_deel_tot planning_tot, lcl.l ('lcl_Yes') gepland, o.mld_opdr_omschrijving, o.mld_statusopdr_key, so.mld_statusopdr_omschrijving opdrachtstatus, (SELECT p.prs_perslid_naam_friendly FROM prs_v_perslid_fullnames_all p WHERE p.prs_perslid_key = rd.res_prs_perslid_key) behandelaar, rd.res_deel_omschrijving, 'OR', DECODE (o.mld_statusopdr_key, 8, lcl.l ('lcl_Yes'), lcl.l ('lcl_No')) actief, DECODE (o.mld_opdr_halted, 1, lcl.l ('lcl_Yes'), lcl.l ('lcl_No')) halted, o.mld_opdr_flag, o.mld_opdr_actiecode, b.prs_bedrijf_naam, COALESCE (b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaatsbedrijf, rd.res_prs_perslid_key fclt_3d_user_key FROM mld_opdr o, mld_melding m, mld_stdmelding std, mld_statusopdr so, ins_tab_discipline d, ins_srtdiscipline sd, (SELECT v.alg_onroerendgoed_keys, v.alg_gebouw_key, v.alg_verdieping_key, v.alg_ruimte_key, l.alg_locatie_code || '-' || DECODE ( v.alg_plaatsaanduiding, '', ' (' || l.alg_locatie_omschrijving || ')', v.alg_plaatsaanduiding || DECODE (v.alg_plaatsomschrijving, '', '', ' (' || v.alg_plaatsomschrijving || ')')) plaatsmelding FROM alg_v_allonrgoed_gegevens v, alg_locatie l WHERE l.alg_locatie_key = v.alg_locatie_key) va, alg_locatie l, alg_district di, prs_bedrijf b, res_deel rd, res_rsv_deel rrd, res_rsv_ruimte rrr WHERE o.mld_melding_key = m.mld_melding_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 o.mld_statusopdr_key IN (4, 5, 8) AND so.mld_statusopdr_key = o.mld_statusopdr_key AND m.mld_alg_onroerendgoed_keys = va.alg_onroerendgoed_keys(+) AND m.mld_alg_locatie_key = l.alg_locatie_key(+) AND l.alg_district_key = di.alg_district_key(+) AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrr.mld_opdr_key = o.mld_opdr_key AND rd.res_deel_verwijder IS NULL AND rrd.res_deel_key = rd.res_deel_key AND o.mld_uitvoerende_keys = b.prs_bedrijf_key UNION SELECT NULL, rrr.res_rsv_ruimte_key, lcl.x (ra.res_activiteit_omschrijving, ra.res_activiteit_key, ra.res_activiteit_omschrijving) activiteit, 'R' || rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr opdracht, va.plaatsmelding plaatsmelding, DECODE (3, 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')) spoed, rrr.res_rsv_ruimte_van, rrr.res_rsv_ruimte_tot, rrd.res_rsv_deel_van planning_van, rrd.res_rsv_deel_tot planning_tot, lcl.l ('lcl_Yes') gepland, rrr.res_rsv_ruimte_omschrijving omschrijving, rrr.res_status_fo_key, rs.res_status_fo_omschrijving opdrachtstatus, (SELECT p.prs_perslid_naam_friendly FROM prs_v_perslid_fullnames_all p WHERE p.prs_perslid_key = rd.res_prs_perslid_key) behandelaar, rd.res_deel_omschrijving, 'R', CASE WHEN SYSDATE BETWEEN rrd.res_rsv_deel_van AND rrd.res_rsv_deel_tot THEN lcl.l ('lcl_Yes') ELSE lcl.l ('lcl_No') END actief, NULL halted, res_rsv_ruimte_flag markering, NULL actiecode, b.prs_bedrijf_naam, COALESCE (b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaatsbedrijf, rd.res_prs_perslid_key fclt_3d_user_key FROM (SELECT v.alg_onroerendgoed_keys, v.alg_gebouw_key, v.alg_verdieping_key, v.alg_ruimte_key, l.alg_locatie_code || '-' || DECODE ( v.alg_plaatsaanduiding, '', ' (' || l.alg_locatie_omschrijving || ')', v.alg_plaatsaanduiding || DECODE (v.alg_plaatsomschrijving, '', '', ' (' || v.alg_plaatsomschrijving || ')')) plaatsmelding FROM alg_v_allonrgoed_gegevens v, alg_locatie l WHERE l.alg_locatie_key = v.alg_locatie_key) va, prs_bedrijf b, prs_v_afdeling afd, prs_perslid p, ( SELECT rro.res_ruimte_opstel_key, MIN (rar.alg_ruimte_key) alg_ruimte_key FROM res_ruimte_opstelling rro, res_alg_ruimte rar WHERE rro.res_ruimte_key = rar.res_ruimte_key AND rar.res_alg_ruimte_verwijder IS NULL GROUP BY res_ruimte_opstel_key) opstelalg, -- same old story, todo res_status_fo rs, res_activiteit ra, res_deel rd, res_rsv_deel rrd, res_rsv_ruimte rrr WHERE rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+) AND va.alg_ruimte_key = COALESCE (rrr.alg_ruimte_key, opstelalg.alg_ruimte_key) AND rs.res_status_fo_key = rrr.res_status_fo_key AND ra.res_activiteit_key = rrr.res_activiteit_key AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rd.res_deel_verwijder IS NULL AND rrd.res_deel_key = rd.res_deel_key AND rd.res_prs_perslid_key = p.prs_perslid_key AND p.prs_afdeling_key = afd.prs_afdeling_key AND afd.prs_bedrijf_key = b.prs_bedrijf_key; /* ROOT VIEWS for User defined Reports (UDR) */ /* since melding and opdracht are joined later on, the columns must be unique */ /* Note: als je kolommen toevoegt wil je dat zeer waarschijnlijk ook in mld_v_udr_meldingopdracht */ CREATE_VIEW(mld_v_udr_melding, 1) ( melding_key, meldingnummer, melding_start_key, externnummer, melding_regio, melding_district, melding_locatiecode, melding_locatie, melding_locatieplaats, fclt_3d_locatie_key, gebouw_key, melding_gebouwcode, melding_gebouw, melding_verdieping, melding_ruimtenr, melding_ruimte, melding_ordernr, kostensoortgroep, kostensoort, kostenplaats, kostenplaats_oms, melder, melder_key, melder_email, afdeling, afdeling_omschrijving, fclt_3d_afdeling_key, divisie, divisie_omschrijving, fclt_3d_divisie_key, bedrijf_key, invoerder, meldbron, accepteerder, afmelder, 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_actiedatum, 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, melding_tag, melding_tag_datum ) 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, alg_gebouw_key, gebouw, gebouw_naam, verdieping, ruimte, ruimte_omschrijving, melding_ordernr, kostensoortgroep, kostensoort, kostenplaats, kostenplaats_oms, melder, prs_perslid_key, prs_perslid_email, afdeling, afdeling_omschrijving, afdeling_key, divisie, divisie_omschrijving, divisie_key, prs_bedrijf_key, invoerder, meldbron, accepteerder, afmelder, 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, DECODE(x.sla_accpt.eenheid, 'D', x.sla_accpt.tijdsduur, NULL) sla_accptdgn, DECODE(x.sla_accpt.eenheid, 'U', x.sla_accpt.tijdsduur, NULL) sla_accpturen, plan_uitvoertijd_sla, datum, einddatum, actiedatum, 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.sla_accpt.eenheid , 'D', acceptdatum - COALESCE (accepted, afgemeld, SYSDATE) , NULL ) accept_sla_dagen, CAST ( DECODE ( x.sla_accpt.eenheid , 'U', (acceptdatum - COALESCE (accepted, afgemeld, SYSDATE)) * 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.sla_accpt.eenheid, 'D', acceptdatum - COALESCE (accepted, afgemeld, SYSDATE), 0) + DECODE (x.sla_accpt.eenheid, 'U', (acceptdatum - COALESCE (accepted, afgemeld, SYSDATE)) * 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, mld_melding_tag_naam, mld_melding_tag_datum_tot FROM (SELECT m.mld_melding_key, m.mld_melding_start_key, m.mld_melding_externnr, m.prs_perslid_key, mab.prs_perslid_email, 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, COALESCE(og.alg_gebouw_code, og.alg_terreinsector_code) gebouw, COALESCE(og.alg_gebouw_naam, og.alg_terreinsector_naam) gebouw_naam, og.alg_verdieping_code verdieping, og.alg_gebouw_key, 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, mab.afdeling_naam afdeling, mab.afdeling_omschrijving afdeling_omschrijving, mab.prs_afdeling_key afdeling_key, mab.divisie_naam divisie, mab.divisie_omschrijving, mab.prs_afdeling_key1 divisie_key, mab.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, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = fac.gettrackinguserkey('MLDACP', m.mld_melding_key)) accepteerder, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = fac.gettrackinguserkey('MLDAFM', m.mld_melding_key)) afmelder, 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, CASE WHEN m.mld_melding_spoed = 3 THEN s.mld_stdmelding_t_accepttijd WHEN m.mld_melding_spoed = 1 then s.mld_stdmelding_t_accept_pr1 WHEN m.mld_melding_spoed = 2 then s.mld_stdmelding_t_accept_pr2 WHEN m.mld_melding_spoed = 4 then s.mld_stdmelding_t_accept_pr4 END sla_accpt, 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_actiedatum actiedatum, 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, m.mld_melding_omschrijving omschrijving, m.mld_melding_opmerking opmerking, m.mld_melding_spoed, m.mld_melding_satisfaction, m.mld_melding_satisfaction_op, m.mld_melding_flag, m.mld_melding_actiecode, mmt.mld_melding_tag_naam, mmt.mld_melding_tag_datum_tot 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, mld_melding_tag mmt, ins_srtdiscipline sd, mld_stdmeldinggroep smg, (SELECT mx.mld_melding_key , div.prs_bedrijf_key , ab.prs_afdeling_key1 , div.prs_afdeling_naam divisie_naam , div.prs_afdeling_omschrijving divisie_omschrijving , ab.prs_afdeling_key , afd.prs_afdeling_naam afdeling_naam , afd.prs_afdeling_omschrijving afdeling_omschrijving , px.prs_perslid_key , px.prs_perslid_email FROM mld_melding mx , prs_perslid px , prs_v_afdeling_boom ab , prs_afdeling afd , prs_afdeling div WHERE px.prs_perslid_key = mx.prs_perslid_key AND ab.prs_afdeling_key = coalesce(mx.prs_afdeling_key, px.prs_afdeling_key) AND ab.prs_afdeling_key = afd.prs_afdeling_key AND ab.prs_afdeling_key1 = div.prs_afdeling_key ) mab 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_melding_tag_key = mmt.mld_melding_tag_key(+) AND m.mld_melding_key = mab.mld_melding_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; CREATE_VIEW(mld_v_udr_opdracht, 1) ( opdracht_key, opdracht_nummer, opdracht_regio, opdracht_district, opdracht_locatie_code, opdracht_locatie, opdracht_locatieplaats, fclt_3d_locatie_key, gebouw_key, opdracht_gebouwcode, opdracht_gebouw, opdracht_verdieping, opdracht_ruimtenr, opdracht_ruimte, opdracht_kostenplaats, opdracht_kostenplaats_oms, melding_key, opdracht_int_ext, opdracht_type, opdracht_volgnummer, opdracht_status, opdracht_duur_gepland, opdracht_datum, opdracht_einddatum, opdracht_plandatum, opdracht_acceptdatum, opdracht_afgemeld, opdracht_doorlooptijd, opdracht_accepttijd, opdracht_omschrijving, opdracht_opmerking, opdracht_uitvoerende, opdracht_uitvoerende_contact, opdracht_behandelaar, opdracht_contract, opdracht_contract_versie, opdracht_contactpersoon, opdracht_uren, opdracht_correctie, opdracht_materiaal, opdracht_uurtarief, opdracht_kosten, opdracht_parent_key, opdracht_parent_nummer, opdracht_parent_volgnummer, opdracht_verstrektdatum, opdracht_lev_doorloopdagen, opdracht_lev_doorloopuren, opdracht_gefactureerd_excl, opdracht_gefactureerd_btw, opdracht_gefactureerd_incl ) AS SELECT mld_opdr_key, ins_srtdiscipline_prefix || TO_CHAR (mld_melding_key) || '/' || opdracht_volgnummer, alg_regio_omschrijving, alg_district_omschrijving, locatie, locatie_omschrijving, locatie_plaats, alg_locatie_key, alg_gebouw_key, gebouw, gebouw_naam, verdieping, ruimte, ruimte_omschrijving, kostenplaats, kostenplaats_oms, mld_melding_key, opdracht_int_ext, opdracht_type, opdracht_volgnummer, opdracht_status, opdracht_duur_gepland, opdracht_datum, opdracht_einddatum, opdracht_plandatum, opdracht_acceptdatum, opdracht_afgemeld, opdracht_doorlooptijd, opdracht_accepttijd, opdracht_omschrijving, opdracht_opmerking, opdracht_uitvoerende, opdracht_uitvoerende_contact, opdracht_behandelaar, opdracht_contract, opdracht_contract_versie, opdracht_contactpersoon, opdracht_uren, opdracht_correctie, opdracht_materiaal, opdracht_uurtarief, opdracht_kosten, opdracht_parent_key, CASE WHEN opdracht_parent_key IS NOT NULL THEN ins_srtdiscipline_prefix || TO_CHAR (mld_melding_key) || '/' || opdracht_parent_volgnummer ELSE NULL END opdracht_parent_nummer, opdracht_parent_volgnummer, opdracht_verstrektdatum, MLD.getactualuitvoer ( opdracht_verstrektdatum , opdracht_afgemeld , mld_stdmelding_key , mld_melding_spoed , NULL , NULL , 'D' ).tijdsduur opdracht_lev_doorloopdagen, MLD.getactualuitvoer ( opdracht_verstrektdatum , opdracht_afgemeld , mld_stdmelding_key , mld_melding_spoed , NULL , NULL , 'U' ).tijdsduur opdracht_lev_doorloopuren, gefactureerd_excl, gefactureerd_btw, gefactureerd_incl FROM (SELECT alg_regio_omschrijving, alg_district_omschrijving, alg_locatie_code locatie, alg_locatie_omschrijving locatie_omschrijving, alg_locatie_plaats locatie_plaats, l.alg_locatie_key, COALESCE(og.alg_gebouw_code, og.alg_terreinsector_code) gebouw, COALESCE(og.alg_gebouw_naam, og.alg_terreinsector_naam) gebouw_naam, og.alg_gebouw_key, og.alg_verdieping_code verdieping, og.alg_ruimte_nr ruimte, og.alg_ruimte_omschrijving ruimte_omschrijving, (SELECT k.prs_kostenplaats_nr FROM prs_kostenplaats k WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key ) kostenplaats, (SELECT k.prs_kostenplaats_omschrijving FROM prs_kostenplaats k WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key ) kostenplaats_oms, o.mld_opdr_key, o.mld_melding_key, (SELECT DECODE(u.intern, 0, 'Extern', 1, 'Intern') FROM mld_v_uitvoerende u WHERE u.mld_uitvoerende_key = o.mld_uitvoerende_keys ) opdracht_int_ext, top.mld_typeopdr_key, top.mld_typeopdr_omschrijving opdracht_type, o.mld_opdr_bedrijfopdr_volgnr opdracht_volgnummer, (SELECT mld_statusopdr_omschrijving FROM mld_statusopdr sta WHERE sta.mld_statusopdr_key = o.mld_statusopdr_key ) opdracht_status, fac.count_work_days (o.mld_opdr_datumbegin, o.mld_opdr_einddatum) opdracht_duur_gepland, o.mld_opdr_datumbegin opdracht_datum, o.mld_opdr_einddatum opdracht_einddatum, o.mld_opdr_plandatum opdracht_plandatum, COALESCE(mld.getopdrachtstatusdate (o.mld_opdr_key, 8), mld.getopdrachtstatusdate (o.mld_opdr_key, 1)) opdracht_acceptdatum, COALESCE (mld.getopdrachtstatusdate (o.mld_opdr_key, 6), mld.getopdrachtstatusdate (o.mld_opdr_key, 1)) opdracht_afgemeld, fac.count_work_days (o.mld_opdr_datumbegin, mld.getopdrachtstatusdate (o.mld_opdr_key, 6)) opdracht_doorlooptijd, COALESCE (fac.count_Work_Days (mld.getopdrachtstatusdate (o.mld_opdr_key, 5), COALESCE(mld.getopdrachtstatusdate (o.mld_opdr_key, 8), mld.getopdrachtstatusdate (o.mld_opdr_key, 6))), fac.count_Work_Days (mld.getopdrachtstatusdate (o.mld_opdr_key, 5), mld.getopdrachtstatusdate (o.mld_opdr_key, 1))) opdracht_accepttijd, o.mld_opdr_omschrijving opdracht_omschrijving, o.mld_opdr_opmerking opdracht_opmerking, (SELECT naam FROM mld_v_uitvoerende u WHERE u.mld_uitvoerende_key = o.mld_uitvoerende_keys ) opdracht_uitvoerende, (SELECT contact_naam FROM (SELECT cp.prs_contactpersoon_key, pf.prs_perslid_naam_full contact_naam FROM prs_contactpersoon cp, prs_v_perslid_fullnames_all pf WHERE cp.prs_perslid_key = pf.prs_perslid_key UNION ALL SELECT cp.prs_contactpersoon_key, cp.prs_contactpersoon_naam FROM prs_contactpersoon cp, prs_v_perslid_fullnames_all pf WHERE cp.prs_perslid_key = pf.prs_perslid_key AND cp.prs_perslid_key IS NULL ) cpn WHERE cpn.prs_contactpersoon_key = o.prs_contactpersoon_key ) opdracht_uitvoerende_contact, (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = o.prs_perslid_key ) opdracht_behandelaar, c.cnt_contract_nummer_intern opdracht_contract, c.cnt_contract_versie opdracht_contract_versie, o.mld_opdr_contactpersoon opdracht_contactpersoon, o.mld_opdr_uren opdracht_uren, COALESCE(o.mld_opdr_kosten, 0) - COALESCE(o.mld_opdr_materiaal, 0) - (COALESCE(o.mld_opdr_uren, 0) * COALESCE(o.mld_opdr_uurloon, 0)) opdracht_correctie, o.mld_opdr_materiaal opdracht_materiaal, o.mld_opdr_uurloon opdracht_uurtarief, o.mld_opdr_kosten opdracht_kosten, sdi.ins_srtdiscipline_prefix, o.mld_opdr_parent_key opdracht_parent_key, op.mld_opdr_bedrijfopdr_volgnr opdracht_parent_volgnummer, verstrekt.verstrektdatum opdracht_verstrektdatum, m.mld_stdmelding_key, m.mld_melding_spoed, DECODE (m.mld_melding_spoed, 1, stdm.mld_stdmelding_t_uitvtijd_pr1.eenheid, 2, stdm.mld_stdmelding_t_uitvtijd_pr2.eenheid, 3, stdm.mld_stdmelding_t_uitvoertijd.eenheid, stdm.mld_stdmelding_t_uitvtijd_pr4.eenheid ) eenheid, COALESCE((SELECT SUM(f.fin_factuur_totaal) FROM fin_factuur f WHERE f.mld_opdr_key = o.mld_opdr_key AND f.fin_factuur_statuses_key <> 1 AND f.fin_factuur_verwijder IS NULL ), 0) gefactureerd_excl, COALESCE((SELECT SUM(f.fin_factuur_totaal_btw) FROM fin_factuur f WHERE f.mld_opdr_key = o.mld_opdr_key AND f.fin_factuur_statuses_key <> 1 AND f.fin_factuur_verwijder IS NULL ), 0) gefactureerd_btw, COALESCE((SELECT SUM(f.fin_factuur_totaal + f.fin_factuur_totaal_btw) FROM fin_factuur f WHERE f.mld_opdr_key = o.mld_opdr_key AND f.fin_factuur_statuses_key <> 1 AND f.fin_factuur_verwijder IS NULL ), 0) gefactureerd_incl FROM alg_locatie l, alg_district d, alg_regio r, alg_v_allonrgoed_gegevens og, mld_opdr o, mld_opdr op, mld_typeopdr top, mld_melding m, mld_stdmelding stdm, ins_tab_discipline di, ins_srtdiscipline sdi, cnt_contract c, (SELECT t.fac_tracking_refkey mld_opdr_key , CASE WHEN MAX(t.fac_tracking_datum) < o.mld_opdr_datumbegin THEN o.mld_opdr_datumbegin ELSE MAX(t.fac_tracking_datum) END verstrektdatum FROM fac_tracking t , fac_srtnotificatie n , mld_opdr o WHERE t.fac_tracking_refkey = o.mld_opdr_key(+) AND n.fac_srtnotificatie_key = t.fac_srtnotificatie_key AND n.fac_srtnotificatie_code IN ('ORDNEW','ORDSNT') GROUP BY t.fac_tracking_refkey , o.mld_opdr_datumbegin ) verstrekt WHERE m.mld_alg_locatie_key = l.alg_locatie_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 o.cnt_contract_key = c.cnt_contract_key(+) AND m.mld_stdmelding_key = stdm.mld_stdmelding_key AND stdm.mld_ins_discipline_key = di.ins_discipline_key AND di.ins_srtdiscipline_key = sdi.ins_srtdiscipline_key AND o.mld_melding_key = m.mld_melding_key AND o.mld_typeopdr_key = top.mld_typeopdr_key(+) AND o.mld_opdr_datumbegin >= TO_DATE ('01-01-2010', 'DD-MM-YYYY') AND o.mld_opdr_parent_key = op.mld_opdr_key(+) AND o.mld_opdr_key = verstrekt.mld_opdr_key(+) ) x; -- Noot: SELECT * is een slecht gebruik en leidt tot onoplosbare conflicten CREATE_VIEW(mld_v_udr_meldingopdracht, 1) AS SELECT m.melding_key, m.meldingnummer, m.melding_start_key, m.externnummer, m.melding_regio, m.melding_district, m.melding_locatiecode, m.melding_locatie, m.melding_locatieplaats, m.fclt_3d_locatie_key, m.gebouw_key, m.melding_gebouwcode, m.melding_gebouw, m.melding_verdieping, m.melding_ruimtenr, m.melding_ruimte, m.melding_ordernr, m.kostensoortgroep, m.kostensoort, m.kostenplaats, m.kostenplaats_oms, m.melder, m.melder_key, m.melder_email, m.afdeling, m.afdeling_omschrijving, m.fclt_3d_afdeling_key, m.divisie, m.divisie_omschrijving, m.fclt_3d_divisie_key, m.bedrijf_key, m.invoerder, m.meldbron, m.soortmelding, m.fclt_3d_discipline_key, m.productgroep, m.subproductgroep, m.behandelgroep, m.behandelaar, m.behandelaar_key, m.subproductgroepgroep, m.fclt_3d_discipline2_key, m.actieve_behandelgroep, m.actieve_behandelaar_key, m.actieve_behandelaar, m.melding_status, m.sla_nvt, m.sla_werkdgn, m.sla_werkuren, m.sla_respijtdgn, m.sla_respijturen, m.sla_accptdgn, m.sla_accpturen, m.plan_uitvoertijd_sla, m.melding_datum, m.melding_einddatum, m.melding_einddatum_std, m.melding_acceptdatum, m.melding_afgemeld, m.melding_accepted, m.doorlooptijd_werkdgn, m.doorlooptijd_werkuren, m.onderwerp, m.vomschrijving, m.melding_opmerking, m.prioriteit, m.prioriteittxt, m.rating, m.rating_opmerking, m.bolletje, m.actiecode, m.accept_sla_dagen, m.accept_sla_uren, m.uitvoering_sla_dagen, m.uitvoering_sla_uren, m.afspraak_sla_dagen, m.afspraak_sla_uren, m.accept_sla_optijd, m.uitvoering_sla_optijd, m.afspraak_sla_optijd, m.selfservice, o.opdracht_key, o.opdracht_nummer, o.opdracht_regio, o.opdracht_district, o.opdracht_locatie_code, o.opdracht_locatie, o.opdracht_locatieplaats, --o.fclt_3d_locatie_key, o.opdracht_gebouwcode, o.opdracht_gebouw, o.opdracht_verdieping, o.opdracht_ruimtenr, o.opdracht_ruimte, o.opdracht_kostenplaats, o.opdracht_kostenplaats_oms, --o.melding_key, o.opdracht_int_ext, o.opdracht_type, o.opdracht_volgnummer, o.opdracht_status, o.opdracht_duur_gepland, o.opdracht_datum, o.opdracht_einddatum, o.opdracht_plandatum, o.opdracht_acceptdatum, o.opdracht_afgemeld, o.opdracht_doorlooptijd, o.opdracht_accepttijd, o.opdracht_omschrijving, o.opdracht_opmerking, o.opdracht_uitvoerende, o.opdracht_uitvoerende_contact, o.opdracht_behandelaar, o.opdracht_contract, o.opdracht_contract_versie, o.opdracht_contactpersoon, o.opdracht_uren, o.opdracht_correctie, o.opdracht_materiaal, o.opdracht_uurtarief, o.opdracht_kosten, o.opdracht_verstrektdatum, o.opdracht_lev_doorloopuren, o.opdracht_lev_doorloopdagen FROM mld_v_udr_melding m, mld_v_udr_opdracht o WHERE m.melding_key = o.melding_key(+); // UDR met kenmerken (1 record per kenmerk met waarde in kolom c, n of d afhankelijk van type // Geen kenmerk, geen record. // Obsolete geraakt sinds FCLT#56801, bestaat alleen nog een tijdje om compatibel te blijven CREATE_VIEW(mld_v_udr_meldingkenmerk_cnd, 1) AS SELECT m.*, lcl.x ('mld_srtkenmerk_omschrijving', skm.mld_srtkenmerk_key, mld_srtkenmerk_omschrijving) kenmerk, CASE WHEN skm.mld_srtkenmerk_kenmerktype = 'R' OR skm.mld_srtkenmerk_kenmerktype = 'r' OR skm.mld_srtkenmerk_kenmerktype = 'S' THEN flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde) WHEN skm.mld_srtkenmerk_kenmerktype = 'C' OR skm.mld_srtkenmerk_kenmerktype = 'F' THEN km.mld_kenmerkmelding_waarde ELSE NULL END waarde_c, CASE WHEN skm.mld_srtkenmerk_kenmerktype = 'N' THEN TO_NUMBER (km.mld_kenmerkmelding_waarde) ELSE TO_NUMBER (NULL) END waarde_n, CASE WHEN skm.mld_srtkenmerk_kenmerktype = 'D' THEN TO_DATE (km.mld_kenmerkmelding_waarde, 'DD-MM-YYYY') ELSE TO_DATE (NULL) END waarde_d, CASE WHEN skm.mld_srtkenmerk_kenmerktype IN ('R', 'r', 'S') THEN flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde) ELSE km.mld_kenmerkmelding_waarde END waarde_x FROM mld_v_udr_melding M, mld_kenmerkmelding km, mld_kenmerk K, mld_srtkenmerk skm WHERE km.mld_melding_key = m.melding_key AND km.mld_kenmerkmelding_verwijder IS NULL AND k.mld_kenmerk_verwijder IS NULL AND skm.mld_srtkenmerk_verwijder IS NULL AND km.mld_kenmerk_key = k.mld_kenmerk_key(+) AND k.mld_srtkenmerk_key = skm.mld_srtkenmerk_key(+); // Obsolete geraakt sinds FCLT#56801, bestaat alleen nog een tijdje om compatibel te blijven CREATE_VIEW(mld_v_udr_opdrachtkenmerk_cnd, 1) AS SELECT o.*, lcl.x ('mld_srtkenmerk_omschrijving', skm.mld_srtkenmerk_key, mld_srtkenmerk_omschrijving) kenmerk, CASE WHEN skm.mld_srtkenmerk_kenmerktype = 'R' OR skm.mld_srtkenmerk_kenmerktype = 'r' OR skm.mld_srtkenmerk_kenmerktype = 'S' THEN flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, ko.mld_kenmerkopdr_waarde) WHEN skm.mld_srtkenmerk_kenmerktype = 'C' OR skm.mld_srtkenmerk_kenmerktype = 'F' THEN ko.mld_kenmerkopdr_waarde ELSE NULL END waarde_c, CASE WHEN skm.mld_srtkenmerk_kenmerktype = 'N' THEN TO_NUMBER (ko.mld_kenmerkopdr_waarde) ELSE TO_NUMBER (NULL) END waarde_n, CASE WHEN skm.mld_srtkenmerk_kenmerktype = 'D' THEN TO_DATE (ko.mld_kenmerkopdr_waarde, 'DD-MM-YYYY') ELSE TO_DATE (NULL) END waarde_d, CASE WHEN skm.mld_srtkenmerk_kenmerktype IN ('R', 'r', 'S') THEN flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, ko.mld_kenmerkopdr_waarde) ELSE ko.mld_kenmerkopdr_waarde END waarde_x FROM mld_v_udr_opdracht o, mld_kenmerkopdr ko, mld_kenmerk k, mld_srtkenmerk skm WHERE ko.mld_opdr_key = o.opdracht_key AND ko.mld_kenmerkopdr_verwijder IS NULL AND k.mld_kenmerk_verwijder IS NULL AND skm.mld_srtkenmerk_verwijder IS NULL AND ko.mld_kenmerk_key = k.mld_kenmerk_key(+) AND k.mld_srtkenmerk_key = skm.mld_srtkenmerk_key(+); CREATE_VIEW(mld_v_udr_opdrachtmateriaal, 1) AS SELECT o.*, mld_opdr_materiaal_aantal aantal, mld_opdr_materiaal_eenheid eenheid, mld_opdr_materiaal_eenheidcode eenheidcode, COALESCE (mld_opdr_materiaal_omschr, fu.fac_usrdata_omschr) omschrijving, COALESCE (mld_opdr_materiaal_prijs, fu.fac_usrdata_prijs) prijs, mld_opdr_materiaal_code code, mld_opdr_materiaal_info info, mld_opdr_materiaal_groep groep, mld_opdr_materiaal_id id, mld_opdr_materiaal_extra1 extra1, mld_opdr_materiaal_extra2 extra2, mld_opdr_materiaal_extra3 extra3, mld_opdr_materiaal_extra4 extra4, fin_btwtabelwaarde_code btwcode, fin_btwtabelwaarde_oms btwomschrijving, fin_btwtabelwaarde_perc btw, fin_btwtabelwaarde_verlegd btwverlegd FROM mld_v_udr_opdracht o, mld_opdr_materiaal mo, fac_usrdata fu, fin_btwtabelwaarde btw WHERE mo.mld_opdr_key = o.opdracht_key AND mo.fac_usrdata_key = fu.fac_usrdata_key(+) AND mo.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key(+); CREATE_VIEW(mld_v_nettotijdsbesteding, 0) ( mld_opdr_key, prs_perslid_key, naam, ntb_prs ) AS SELECT o.mld_opdr_key, beh.prs_perslid_key, p.prs_perslid_naam_full, mld.getnettotijdsbesteding(o.mld_opdr_key, beh.prs_perslid_key) ntb_prs FROM mld_opdr o, (SELECT DISTINCT t.prs_perslid_key, fac_tracking_refkey FROM fac_tracking t, fac_srtnotificatie st WHERE t.fac_srtnotificatie_key = st.fac_srtnotificatie_key AND st.fac_srtnotificatie_code IN ('ORDACP','ORDRSM')) beh, prs_v_perslid_fullnames_all p WHERE beh.fac_tracking_refkey = o.mld_opdr_key AND beh.prs_perslid_key = p.prs_perslid_key; CREATE_VIEW(mld_v_mld_stdmelding_srtinst, 0) AS SELECT mss.mld_stdmelding_srtinst_key , mss.mld_stdmelding_key , mss.ins_srtinstallatie_niveau , mss.ins_srtinstallatie_key , insd.ins_deel_key , isd.ins_srtdeel_key , isg.ins_srtgroep_key , isg.ins_discipline_key FROM mld_stdmelding_srtinst mss , ins_srtgroep isg , ins_srtdeel isd , ins_deel insd WHERE isd.ins_srtdeel_key = insd.ins_srtdeel_key AND isg.ins_srtgroep_key = isd.ins_srtgroep_key AND ( mss.ins_srtinstallatie_niveau = 'S' AND mss.ins_srtinstallatie_key = insd.ins_srtdeel_key OR mss.ins_srtinstallatie_niveau = 'G' AND mss.ins_srtinstallatie_key = isg.ins_srtgroep_key OR mss.ins_srtinstallatie_niveau = 'D' AND mss.ins_srtinstallatie_key = isg.ins_discipline_key ); // views voor het bieden van inzicht in behandeling door behandelteams van een melding // de relevante gebeurtenisen bij elkaar CREATE_VIEW(mld_v_behandeltracking, 1) AS SELECT ft.fac_tracking_refkey , ft.fac_tracking_key , ft.fac_tracking_datum , ft.fac_srtnotificatie_key , fsn.fac_srtnotificatie_code , ft.fac_tracking_oms , ft.fac_tracking_subject_refkey , DECODE (ins_discipline_key, NULL, NULL, md.ins_discipline_omschrijving) behandelteam , md.ins_discipline_key FROM fac_tracking ft, fac_srtnotificatie fsn, mld_discipline md WHERE ft.fac_srtnotificatie_key = fsn.fac_srtnotificatie_key AND fsn.fac_srtnotificatie_code IN ('MLDNEW' , 'MLDACP' , 'MLDBHG' , 'MLDBWD' , 'MLDDOO' , 'MLDAFM' , 'MLDREJ') AND ft.fac_tracking_subject_refkey = md.ins_discipline_key(+); // de interpretatie ervan. CREATE_VIEW(mld_v_behandelverloop, 1) AS SELECT mld_melding_key , datum , event , eventkey , eventtext , behandelteam -- in de native taal.. , LEAD (datum, 1) OVER (PARTITION BY mld_melding_key ORDER BY datum, eventkey) AS datumtot -- evt. handig voor kalenderrapportage , -ROUND ((datum - LEAD (datum, 1) OVER (PARTITION BY mld_melding_key ORDER BY datum, eventkey)) * 24 * 60, 0) AS minuten , DECODE ((MAX (datum) OVER (PARTITION BY mld_melding_key) - MIN (datum) OVER (PARTITION BY mld_melding_key)) , 0 -- Niet delen door 0 , 100 / COUNT (datum) OVER (PARTITION BY mld_melding_key) -- Als de eerste fac_tracking_datum gelijk is aan de laatste fac_tracking_datum, verdeel het percentage dan gelijk , -ROUND ( ( (datum - LEAD (datum, 1) OVER (PARTITION BY mld_melding_key ORDER BY datum, eventkey)) / (MAX (datum) OVER (PARTITION BY mld_melding_key) - MIN (datum) OVER (PARTITION BY mld_melding_key))) * 100 , 1)) AS percentage FROM (SELECT fac_tracking_refkey mld_melding_key , GREATEST (fac_tracking_datum, m.mld_melding_datum) datum , fac_srtnotificatie_code event , fac_tracking_key eventkey , fac_tracking_oms eventtext , NULL behandelteam FROM mld_v_behandeltracking, mld_melding m WHERE fac_tracking_refkey = m.mld_melding_key AND fac_srtnotificatie_code = 'MLDNEW' UNION SELECT fac_tracking_refkey , fac_tracking_datum , fac_srtnotificatie_code , fac_tracking_key , fac_tracking_oms , NULL FROM mld_v_behandeltracking WHERE fac_srtnotificatie_code NOT IN ('MLDNEW', 'MLDBHG') -- die behandelen we hier apart UNION SELECT fac_tracking_refkey , fac_tracking_datum , fac_srtnotificatie_code , fac_tracking_key , fac_tracking_oms , behandelteam -- kan historisch NULL zijn FROM mld_v_behandeltracking WHERE fac_srtnotificatie_code = 'MLDBHG' UNION SELECT fac_tracking_refkey-- aanvullen tot vandaag als deze nog loopt , SYSDATE , 'NOW' , NULL , NULL , NULL FROM mld_v_behandeltracking s WHERE NOT EXISTS (SELECT '' FROM mld_v_behandeltracking x WHERE x.fac_tracking_refkey = s.fac_tracking_refkey AND x.fac_srtnotificatie_code IN ('MLDAFM', 'MLDREJ'))); REGISTERRUN('$Id$') #endif // MLD