-- Customer specific once-script MDUX#31775.

SET ECHO ON
SPOOL xMDUX#31775.lst
SET DEFINE OFF

create or replace view fin_v_udr_kostenoverzicht
(
   datum,
   aanvrager,
   organisatie,
   categorie,
   referentie,
   bedrag,
   status,
   kostenplaatsgroep,
   kostenplaatsnr,
   kostenplaats,
   kostensoortgroep,
   kostensoortnr,
   kostensoort,
   ordernr,
   locatie,
   district,
   fclt_3d_locatie_key,
   fclt_3d_afdeling_key
)
AS
     SELECT datum,
               p.prs_perslid_naam
            || NVL2 (p.prs_perslid_voorletters, ', ' || p.prs_perslid_voorletters, '')
            || NVL2 (p.prs_perslid_tussenvoegsel, ' ' || p.prs_perslid_tussenvoegsel, '')
            || NVL2 (p.prs_perslid_voornaam, ' (' || p.prs_perslid_voornaam || ')', '')
               aanvrager,
            d.prs_afdeling_naam organisatie,
            categorie,
            categorienummer,
            SUM (bedrag) bedrag,
            status,
            kpg.prs_kostenplaatsgrp_oms,
            k.prs_kostenplaats_nr,
            lcl.x ('prs_kostenplaats_omschrijving',
                   k.prs_kostenplaats_key,
                   k.prs_kostenplaats_omschrijving),
            ksg.prs_kostensoortgrp_oms,
            ks.prs_kostensoort_oms,
            ks.prs_kostensoort_opmerking,
            ordernr,
            alg_locatie_code,
            alg_district_omschrijving,
            alg_locatie_key,
            d.prs_afdeling_key
       FROM (SELECT rr.prs_kostenplaats_key,
                    rr.res_rsv_ruimte_van datum,
                    res_rsv_ruimte_contact_key prs_perslid_key,
                    'Reservering' categorie,
                    TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr
                       categorienummer,
                    res_rsv_ruimte_prijs bedrag,
                    s.res_status_bo_omschrijving status,
                    'RES' module,
                    dis.prs_kostensoort_key,
                    rr.res_rsv_ruimte_ordernr ordernr,
                    rr.res_reservering_key kostenplaats_item_key,
                    rr.res_rsv_ruimte_key kostenplaats_item_child_key,
                    (SELECT MAX (g.alg_locatie_key)
                       FROM alg_ruimte r,
                            alg_verdieping v,
                            alg_gebouw g,
                            res_alg_ruimte ar
                      WHERE     ar.res_alg_ruimte_verwijder IS NULL
                            AND ar.alg_ruimte_key = r.alg_ruimte_key
                            AND r.alg_verdieping_key = v.alg_verdieping_key
                            AND v.alg_gebouw_key = g.alg_gebouw_key
                            AND ar.res_ruimte_key = ro.res_ruimte_key)
                       locatie_key
               FROM res_v_aanwezigrsv_ruimte rr,
                    res_ruimte_opstelling ro,
                    res_ruimte ru,
                    res_discipline dis,
                    res_status_bo s
              WHERE     ru.res_ruimte_prijs <> 0
                    AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
                    AND ro.res_ruimte_key = ru.res_ruimte_key
                    AND s.res_status_bo_key = rr.res_status_bo_key
                    AND ru.res_discipline_key = dis.ins_discipline_key
             UNION ALL
             SELECT rr.prs_kostenplaats_key,
                    ra.res_rsv_artikel_levering datum,
                    res_rsv_ruimte_contact_key prs_perslid_key,
                    'Reservering' categorie,
                    TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr
                       categorienummer,
                    res_rsv_artikel_prijs bedrag,
                    s.res_status_bo_omschrijving status,
                    'RES' module,
                    dis.prs_kostensoort_key,
                    rr.res_rsv_ruimte_ordernr ordernr,
                    rr.res_reservering_key kostenplaats_item_key,
                    rr.res_rsv_ruimte_key kostenplaats_item_child_key,
                    COALESCE (
                       (SELECT g.alg_locatie_key
                          FROM alg_ruimte r, alg_verdieping v, alg_gebouw g
                         WHERE     rr.alg_ruimte_key = r.alg_ruimte_key
                               AND r.alg_verdieping_key = v.alg_verdieping_key
                               AND v.alg_gebouw_key = g.alg_gebouw_key),
                       (SELECT MAX (g.alg_locatie_key)
                          FROM alg_ruimte r,
                               alg_verdieping v,
                               alg_gebouw g,
                               res_alg_ruimte ar,
                               res_ruimte_opstelling ro
                         WHERE     ar.res_alg_ruimte_verwijder IS NULL
                               AND ar.alg_ruimte_key = r.alg_ruimte_key
                               AND r.alg_verdieping_key = v.alg_verdieping_key
                               AND v.alg_gebouw_key = g.alg_gebouw_key
                               AND ar.res_ruimte_key = ro.res_ruimte_key
                               AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key))
                       locatie_key
               FROM res_v_aanwezigrsv_ruimte rr,
                    res_v_aanwezigrsv_artikel ra,
                    res_artikel a,
                    res_discipline dis,
                    res_status_bo s
              WHERE     COALESCE (ra.res_rsv_artikel_prijs, a.res_artikel_prijs) <> 0
                    AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
                    AND ra.res_artikel_key = a.res_artikel_key
                    AND s.res_status_bo_key = ra.res_status_bo_key
                    AND a.res_discipline_key = dis.ins_discipline_key
             UNION ALL
             SELECT rr.prs_kostenplaats_key,
                    rd.res_rsv_deel_van datum,
                    res_rsv_ruimte_contact_key prs_perslid_key,
                    'Reservering' categorie,
                    TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr
                       categorienummer,
                    res_rsv_deel_prijs bedrag,
                    s.res_status_bo_omschrijving status,
                    'RES' module,
                    dis.prs_kostensoort_key,
                    rr.res_rsv_ruimte_ordernr ordernr,
                    rr.res_reservering_key kostenplaats_item_key,
                    rr.res_rsv_ruimte_key kostenplaats_item_child_key,
                    COALESCE (
                       (SELECT g.alg_locatie_key
                          FROM alg_ruimte r, alg_verdieping v, alg_gebouw g
                         WHERE     rr.alg_ruimte_key = r.alg_ruimte_key
                               AND r.alg_verdieping_key = v.alg_verdieping_key
                               AND v.alg_gebouw_key = g.alg_gebouw_key),
                       (SELECT MAX (g.alg_locatie_key)
                          FROM alg_ruimte r,
                               alg_verdieping v,
                               alg_gebouw g,
                               res_alg_ruimte ar,
                               res_ruimte_opstelling ro
                         WHERE     ar.res_alg_ruimte_verwijder IS NULL
                               AND ar.alg_ruimte_key = r.alg_ruimte_key
                               AND r.alg_verdieping_key = v.alg_verdieping_key
                               AND v.alg_gebouw_key = g.alg_gebouw_key
                               AND ar.res_ruimte_key = ro.res_ruimte_key
                               AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key))
                       locatie_key
               FROM res_v_aanwezigrsv_ruimte rr,
                    res_v_aanwezigrsv_deel rd,
                    res_deel d,
                    res_discipline dis,
                    res_status_bo,
                    res_status_bo s
              WHERE     d.res_deel_prijs <> 0
                    AND rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
                    AND rd.res_deel_key = d.res_deel_key
                    AND s.res_status_bo_key = rd.res_status_bo_key
                    AND d.res_discipline_key = dis.ins_discipline_key
             UNION ALL
             SELECT o.prs_kostenplaats_key,
                    o.mld_opdr_datumbegin datum,
                    m.prs_perslid_key prs_perslid_key,
                    mdis.ins_discipline_omschrijving categorie,
                       sd.ins_srtdiscipline_prefix
                    || m.mld_melding_key
                    || '/'
                    || o.mld_opdr_bedrijfopdr_volgnr
                       categorienummer,
                    COALESCE (o.mld_opdr_kosten, 0) bedrag,
                    s.mld_statusopdr_omschrijving status,
                    'MLD' module,
                    COALESCE (s.prs_kostensoort_key, mdis.prs_kostensoort_key) prs_kostensoort_key,
                    o.mld_opdr_ordernr ordernr,
                    o.mld_opdr_key kostenplaats_item_key,
                    -1 kostenplaats_item_child_key,
                    m.mld_alg_locatie_key locatie_key
               FROM mld_opdr o,
                    mld_typeopdr ot,
                    mld_melding m,
                    mld_stdmelding s,
                    mld_discipline mdis,
                    ins_srtdiscipline sd,
                    mld_statusopdr s
              WHERE     o.mld_opdr_kosten <> 0
                    AND o.mld_typeopdr_key = ot.mld_typeopdr_key
                    AND ot.mld_typeopdr_kosten = 1
                    AND o.mld_melding_key = m.mld_melding_key
                    AND s.mld_statusopdr_key = o.mld_statusopdr_key
                    AND m.mld_stdmelding_key = s.mld_stdmelding_key
                    AND mdis.ins_discipline_key = s.mld_ins_discipline_key
                    AND mdis.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
                    AND o.mld_statusopdr_key NOT IN (1, 2, 3, 4, 10)
             UNION ALL
             SELECT b.prs_kostenplaats_key,
                    bo.bes_bestelopdr_datum datum,
                    b.prs_perslid_key prs_perslid_key,
                    'Bestelling' categorie,
                    TO_CHAR (b.bes_bestelling_key) categorienummer,
                    (boi.bes_bestelopdr_item_aantal * boi.bes_bestelopdr_item_prijs) bedrag,
                    s.bes_bestelopdrstatuses_omschr status,
                    'BES' module,
                    bdis.prs_kostensoort_key,
                    b.bes_bestelling_ordernr ordernr,
                    b.bes_bestelling_key kostenplaats_item_key,
                    -1 kostenplaats_item_child_key,
                    (SELECT alg_locatie_key
                       FROM mld_adres ma
                      WHERE ma.mld_adres_key = b.mld_adres_key_lev)
                       locatie_key
               FROM bes_bestelling b,
                    bes_bestelling_item bi,
                    bes_bestelopdr bo,
                    bes_bestelopdr_item boi,
                    bes_srtdeel isd,
                    bes_srtgroep isg,
                    bes_discipline bdis,
                    bes_bestelopdrstatuses s
              WHERE     b.bes_bestelling_key = bi.bes_bestelling_key
                    AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
                    AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
                    AND s.bes_bestelopdrstatuses_key = bo.bes_bestelopdr_status
                    AND bi.bes_srtdeel_key = isd.bes_srtdeel_key
                    AND isd.bes_srtgroep_key = isg.bes_srtgroep_key
                    AND isg.ins_discipline_key = bdis.ins_discipline_key
                    AND bo.bes_bestelopdr_status IN (4, 6, 7)) tab,
            prs_kostenplaats k,
            prs_kostenplaatsgrp kpg,
            prs_kostensoort ks,
            prs_kostensoortgrp ksg,
            prs_perslid p,
            prs_v_afdeling d,
            alg_locatie l,
            alg_district d
      WHERE     tab.prs_kostenplaats_key(+) = k.prs_kostenplaats_key
            AND tab.prs_kostensoort_key = ks.prs_kostensoort_key(+)
            AND k.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
            AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
            AND tab.prs_perslid_key = p.prs_perslid_key(+)
            AND p.prs_afdeling_key = d.prs_afdeling_key(+)
            AND tab.locatie_key = l.alg_locatie_key(+)
            AND l.alg_district_key = d.alg_district_key(+)
            AND datum >= TO_DATE ('01-01-2010', 'DD-MM-YYYY')
   GROUP BY k.prs_kostenplaats_nr,
            lcl.x ('prs_kostenplaats_omschrijving',
                   k.prs_kostenplaats_key,
                   k.prs_kostenplaats_omschrijving),
            datum,
               p.prs_perslid_naam
            || NVL2 (p.prs_perslid_voorletters, ', ' || p.prs_perslid_voorletters, '')
            || NVL2 (p.prs_perslid_tussenvoegsel, ' ' || p.prs_perslid_tussenvoegsel, '')
            || NVL2 (p.prs_perslid_voornaam, ' (' || p.prs_perslid_voornaam || ')', ''),
            d.prs_afdeling_naam,
            d.prs_afdeling_key,
            categorie,
            categorienummer,
            status,
            kpg.prs_kostenplaatsgrp_oms,
            ksg.prs_kostensoortgrp_oms,
            ks.prs_kostensoort_oms,
            ks.prs_kostensoort_opmerking,
            ordernr,
            ksg.prs_kostensoortgrp_oms,
            alg_locatie_key,
            alg_district_omschrijving,
            alg_locatie_code;

COMMIT;

INSERT INTO fac_usrrap (fac_usrrap_omschrijving,
                        fac_usrrap_view_name,
                        fac_usrrap_info,
                        fac_functie_key,
                        fac_usrrap_functie)
   SELECT   'UDR: Kostenoverzicht',
            'fin_v_udr_kostenoverzicht',
            'Basisrapport kostenoverzicht',
            fac_functie_key,
            32
     FROM   fac_functie
    WHERE   fac_functie_code = 'WEB_PRSSYS'
            AND NOT EXISTS
                  (SELECT   ''
                     FROM   fac_usrrap
                    WHERE   UPPER (fac_usrrap_view_name) =
                               'FIN_V_UDR_KOSTENOVERZICHT');

COMMIT;

BEGIN adm.systrackscriptId('$Id$'); END;
/
SPOOL OFF
