AAEN#34032 niet alleen actieve contracten meer

svn path=/Database/trunk/; revision=26874
This commit is contained in:
Peter Feij
2015-11-03 14:12:06 +00:00
parent 30a23a12cd
commit 42213fa770

View File

@@ -947,207 +947,221 @@ CREATE_VIEW(cnt_v_udr_contract, 1)
dienst_omschrijving
)
AS
SELECT c.cnt_contract_nummer_intern,
c.cnt_contract_nummer,
c.cnt_contract_versie,
c.cnt_contract_omschrijving,
c.cnt_contract_document,
COALESCE (b.prs_bedrijf_naam, afd2.prs_afdeling_naam, pf2.prs_perslid_naam_full),
d.prs_afdeling_omschrijving,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key = prs_perslid_key_eig),
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key = prs_perslid_key_beh),
c.cnt_contract_looptijd_van begindatum,
c.cnt_contract_looptijd_tot einddatum,
cnt.cnt_getopzegdatum (c.cnt_contract_key) cnt_opzegdatum,
cnt.cnt_getrappeldatum (c.cnt_contract_key) cnt_rappeldatum,
(SELECT lcl.x ('cnt_termijn_omschrijving', cnt_termijn_key, cnt_termijn_omschrijving)
FROM cnt_termijn
WHERE cnt_termijn_key = c.cnt_contract_opzegtermijn)
cnt_opzegtermijn,
(SELECT lcl.x ('cnt_termijn_omschrijving', cnt_termijn_key, cnt_termijn_omschrijving)
FROM cnt_termijn
WHERE cnt_termijn_key = c.cnt_contract_rappeltermijn)
cnt_rappeltermijn,
cnt.cnt_contract_status (c.cnt_contract_looptijd_van,
cnt.cnt_getrappeldatum (c.cnt_contract_key),
cnt.cnt_getopzegdatum (c.cnt_contract_key),
c.cnt_contract_looptijd_tot)
fase_actief,
SELECT c.cnt_contract_nummer_intern,
c.cnt_contract_nummer,
c.cnt_contract_versie,
c.cnt_contract_omschrijving,
c.cnt_contract_document,
COALESCE (b.prs_bedrijf_naam, afd2.prs_afdeling_naam, pf2.prs_perslid_naam_full),
d.prs_afdeling_omschrijving,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key = prs_perslid_key_eig),
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key = prs_perslid_key_beh),
c.cnt_contract_looptijd_van begindatum,
c.cnt_contract_looptijd_tot einddatum,
cnt.cnt_getopzegdatum (c.cnt_contract_key) cnt_opzegdatum,
cnt.cnt_getrappeldatum (c.cnt_contract_key) cnt_rappeldatum,
(SELECT lcl.x ('cnt_termijn_omschrijving', cnt_termijn_key, cnt_termijn_omschrijving)
FROM cnt_termijn
WHERE cnt_termijn_key = c.cnt_contract_opzegtermijn)
cnt_opzegtermijn,
(SELECT lcl.x ('cnt_termijn_omschrijving', cnt_termijn_key, cnt_termijn_omschrijving)
FROM cnt_termijn
WHERE cnt_termijn_key = c.cnt_contract_rappeltermijn)
cnt_rappeltermijn,
DECODE (cnt.cnt_contract_status (c.cnt_contract_looptijd_van,
cnt.cnt_getrappeldatum (c.cnt_contract_key),
cnt.cnt_getopzegdatum (c.cnt_contract_key),
c.cnt_contract_looptijd_tot),
0, lcl.l ('lcl_cnt_future'),
1, lcl.l ('lcl_cnt_topical'),
2, lcl.l ('lcl_cnt_warn'),
3, lcl.l ('lcl_cnt_cancel'),
4, lcl.l ('lcl_cnt_past'))
fase_actief,
DECODE (
c.cnt_contract_status,
c.cnt_contract_key cnt_contract_key,
COALESCE (c.ins_discipline_key, -1) disc_key,
c.prs_afdeling_key_eig eigenaar_key,
(SELECT lcl.x ('cnt_typecontract_omschrijving',
dp.cnt_srtcontract_type,
cnt_typecontract_omschrijving)
FROM cnt_typecontract
WHERE cnt_typecontract_key = dp.cnt_srtcontract_type)
cnt_srtcontract_type,
alg_locatie_key,
alg_locatie_oms,
alg_locatie_omschrijving,
alg_district_omschrijving,
alg_locatie_code,
cd.ins_discipline_omschrijving ins_discipline_omschrijving,
(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 = c.prs_kostensoort_key)
kostensoortgroep,
ks.prs_kostensoort_oms kostensoort,
kp.prs_kostenplaats_nr kpn,
kp.prs_kostenplaats_omschrijving kpn_omschrijving,
ROUND (DECODE (fac.getsetting ('cnt_scopeverdeling'),
1, cloc.cnt_contract_plaats_gewicht,
0, cloc.cnt_contract_plaats_gewicht
* c.cnt_contract_kosten
/ (SELECT SUM (cnt_contract_plaats_gewicht)
FROM cnt_contract_plaats ccp
WHERE ccp.cnt_contract_key = cnt_contract_key),
c.cnt_contract_kosten), 2)
kosten,
c.cnt_contract_termijnkosten,
c.cnt_contract_korting,
di.prs_dienst_omschrijving
FROM prs_bedrijf b,
cnt_v_aanwezigcontract c,
prs_dienst di,
prs_v_afdeling d,
prs_afdeling afd2,
prs_v_perslid_fullnames_all pf2,
alg_district ad,
cnt_disc_params dp,
cnt_discipline cd,
prs_kostenplaats kp,
prs_kostensoort ks,
(SELECT alg_locatie_omschrijving || ' (' || alg_locatie_code || ')' alg_locatie_oms,
alg_locatie_omschrijving,
alg_locatie_code,
alg_district_key,
cnt_contract_key,
ll.alg_locatie_key,
cnt_contract_plaats_gewicht
FROM alg_locatie ll,
(SELECT cp.cnt_contract_key,
cp.cnt_alg_plaats_key alg_locatie_key,
cnt_contract_plaats_gewicht
FROM cnt_contract_plaats cp
WHERE cnt_alg_plaats_code = 'L'
UNION ALL
SELECT cp.cnt_contract_key, g.alg_locatie_key, cnt_contract_plaats_gewicht
FROM cnt_contract_plaats cp, alg_gebouw g
WHERE cnt_alg_plaats_code = 'G' AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
UNION ALL
SELECT cp.cnt_contract_key, t.alg_locatie_key, cnt_contract_plaats_gewicht
FROM cnt_contract_plaats cp, alg_terreinsector t
WHERE cnt_alg_plaats_code = 'T'
AND cp.cnt_alg_plaats_key = t.alg_terreinsector_key
UNION ALL
SELECT co.cnt_contract_key, d.ins_alg_locatie_key, NULL
FROM cnt_contract_object co, ins_deel d
WHERE co.cnt_ins_deel_key = d.ins_deel_key
UNION ALL
SELECT co.cnt_contract_key, g.alg_locatie_key, NULL
FROM cnt_contract_onrgoed co,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE co.alg_onrgoed_niveau = 'R'
AND co.alg_onrgoed_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
UNION ALL
SELECT co.cnt_contract_key, t.alg_locatie_key, NULL
FROM cnt_contract_onrgoed co, alg_terreinsector t
WHERE co.alg_onrgoed_niveau = 'T'
AND co.alg_onrgoed_key = t.alg_terreinsector_key) scloc
WHERE ll.alg_locatie_key = scloc.alg_locatie_key) cloc
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND c.cnt_prs_afdeling_key = afd2.prs_afdeling_key(+)
AND c.cnt_prs_perslid_key = pf2.prs_perslid_key(+)
AND c.prs_dienst_key = di.prs_dienst_key(+)
AND d.prs_afdeling_key = c.prs_afdeling_key_eig
AND c.ins_discipline_key = dp.cnt_ins_discipline_key
AND c.ins_discipline_key = cd.ins_discipline_key
AND cloc.cnt_contract_key(+) = c.cnt_contract_key
AND cloc.alg_district_key = ad.alg_district_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND c.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND (c.cnt_contract_status = 0
AND (SYSDATE < c.cnt_contract_looptijd_van
OR (SYSDATE BETWEEN c.cnt_contract_looptijd_van
AND cnt.cnt_getrappeldatum (c.cnt_contract_key))
OR (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
OR (SYSDATE - 1 BETWEEN cnt.cnt_getopzegdatum (c.cnt_contract_key) - 1
AND c.cnt_contract_looptijd_tot)))
AND c.cnt_contract_key IN
(SELECT cnt_contract_key
FROM (SELECT cc.cnt_contract_key,
ins_discipline_key,
di.alg_regio_key,
ll.alg_district_key,
clk.alg_locatie_key
FROM (SELECT cp.cnt_contract_key,
cp.cnt_alg_plaats_key alg_locatie_key
0,
DECODE (fac.getsetting ('cnt_contract_approval'),
1, lcl.l ('lcl_cnt_active_approval'),
lcl.l ('lcl_cnt_active')),
1,
lcl.l ('lcl_cnt_inactive'),
2,
lcl.l ('lcl_cnt_new'),
3,
lcl.l ('lcl_cnt_forapproval'))
cnt_contract_status,
c.cnt_contract_key cnt_contract_key,
COALESCE (c.ins_discipline_key, -1) disc_key,
c.prs_afdeling_key_eig eigenaar_key,
(SELECT lcl.x ('cnt_typecontract_omschrijving',
dp.cnt_srtcontract_type,
cnt_typecontract_omschrijving)
FROM cnt_typecontract
WHERE cnt_typecontract_key = dp.cnt_srtcontract_type)
cnt_srtcontract_type,
alg_locatie_key,
alg_locatie_oms,
alg_locatie_omschrijving,
alg_district_omschrijving,
alg_locatie_code,
cd.ins_discipline_omschrijving ins_discipline_omschrijving,
(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 = c.prs_kostensoort_key)
kostensoortgroep,
ks.prs_kostensoort_oms kostensoort,
kp.prs_kostenplaats_nr kpn,
kp.prs_kostenplaats_omschrijving kpn_omschrijving,
ROUND (
DECODE (
fac.getsetting ('cnt_scopeverdeling'),
1,
cloc.cnt_contract_plaats_gewicht,
0,
COALESCE (cloc.cnt_contract_plaats_gewicht, 1) * c.cnt_contract_kosten
/ (SELECT DECODE (SUM (COALESCE (cnt_contract_plaats_gewicht, 0)),
0, 1,
SUM (cnt_contract_plaats_gewicht))
FROM cnt_contract_plaats ccp
WHERE ccp.cnt_contract_key = cnt_contract_key),
c.cnt_contract_kosten),
2)
kosten,
c.cnt_contract_termijnkosten,
c.cnt_contract_korting,
di.prs_dienst_omschrijving
FROM prs_bedrijf b,
cnt_v_aanwezigcontract c,
prs_dienst di,
prs_v_afdeling d,
prs_afdeling afd2,
prs_v_perslid_fullnames_all pf2,
alg_district ad,
cnt_disc_params dp,
cnt_discipline cd,
prs_kostenplaats kp,
prs_kostensoort ks,
(SELECT alg_locatie_omschrijving || ' (' || alg_locatie_code || ')' alg_locatie_oms,
alg_locatie_omschrijving,
alg_locatie_code,
alg_district_key,
cnt_contract_key,
ll.alg_locatie_key,
cnt_contract_plaats_gewicht
FROM alg_locatie ll,
(SELECT cp.cnt_contract_key,
cp.cnt_alg_plaats_key alg_locatie_key,
cnt_contract_plaats_gewicht
FROM cnt_contract_plaats cp
WHERE cnt_alg_plaats_code = 'L'
UNION ALL
SELECT cp.cnt_contract_key, g.alg_locatie_key, cnt_contract_plaats_gewicht
FROM cnt_contract_plaats cp, alg_gebouw g
WHERE cnt_alg_plaats_code = 'G' AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
UNION ALL
SELECT cp.cnt_contract_key, t.alg_locatie_key, cnt_contract_plaats_gewicht
FROM cnt_contract_plaats cp, alg_terreinsector t
WHERE cnt_alg_plaats_code = 'T'
AND cp.cnt_alg_plaats_key = t.alg_terreinsector_key
UNION ALL
SELECT co.cnt_contract_key, d.ins_alg_locatie_key, NULL
FROM cnt_contract_object co, ins_deel d
WHERE co.cnt_ins_deel_key = d.ins_deel_key
UNION ALL
SELECT co.cnt_contract_key, g.alg_locatie_key, NULL
FROM cnt_contract_onrgoed co,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE co.alg_onrgoed_niveau = 'R'
AND co.alg_onrgoed_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
UNION ALL
SELECT co.cnt_contract_key, t.alg_locatie_key, NULL
FROM cnt_contract_onrgoed co, alg_terreinsector t
WHERE co.alg_onrgoed_niveau = 'T' AND co.alg_onrgoed_key = t.alg_terreinsector_key)
scloc
WHERE ll.alg_locatie_key = scloc.alg_locatie_key) cloc
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND c.cnt_prs_afdeling_key = afd2.prs_afdeling_key(+)
AND c.cnt_prs_perslid_key = pf2.prs_perslid_key(+)
AND c.prs_dienst_key = di.prs_dienst_key(+)
AND d.prs_afdeling_key = c.prs_afdeling_key_eig
AND c.ins_discipline_key = dp.cnt_ins_discipline_key
AND c.ins_discipline_key = cd.ins_discipline_key
AND cloc.cnt_contract_key(+) = c.cnt_contract_key
AND cloc.alg_district_key = ad.alg_district_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND c.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND c.cnt_contract_key IN
(SELECT cnt_contract_key
FROM (SELECT cc.cnt_contract_key,
ins_discipline_key,
di.alg_regio_key,
ll.alg_district_key,
clk.alg_locatie_key
FROM (SELECT cp.cnt_contract_key, cp.cnt_alg_plaats_key alg_locatie_key
FROM cnt_contract_plaats cp
WHERE cnt_alg_plaats_code = 'L'
UNION ALL
SELECT cp.cnt_contract_key, g.alg_locatie_key
FROM cnt_contract_plaats cp, alg_gebouw g
WHERE cnt_alg_plaats_code = 'G'
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
UNION ALL
SELECT cp.cnt_contract_key, t.alg_locatie_key
FROM cnt_contract_plaats cp, alg_terreinsector t
WHERE cnt_alg_plaats_code = 'T'
AND cp.cnt_alg_plaats_key = t.alg_terreinsector_key
UNION ALL
SELECT co.cnt_contract_key, d.ins_alg_locatie_key
FROM cnt_contract_object co, ins_deel d
WHERE co.cnt_ins_deel_key = d.ins_deel_key
UNION ALL
SELECT co.cnt_contract_key, g.alg_locatie_key
FROM cnt_contract_onrgoed co,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE co.alg_onrgoed_niveau = 'R'
AND co.alg_onrgoed_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
UNION ALL
SELECT co.cnt_contract_key, t.alg_locatie_key
FROM cnt_contract_onrgoed co, alg_terreinsector t
WHERE co.alg_onrgoed_niveau = 'T'
AND co.alg_onrgoed_key = t.alg_terreinsector_key) clk,
cnt_contract cc,
alg_locatie ll,
alg_district di
WHERE cc.cnt_contract_key = clk.cnt_contract_key
AND ll.alg_locatie_key(+) = clk.alg_locatie_key
AND ll.alg_district_key = di.alg_district_key(+)) sc,
prs_v_afdeling_boom boom
WHERE boom.prs_afdeling_key = c.prs_afdeling_key_eig
UNION ALL
SELECT cnt_contract_key
FROM cnt_contract c, prs_v_afdeling_boom boom
WHERE NOT EXISTS (SELECT cnt_contract_key
FROM cnt_contract_plaats cp
WHERE cnt_alg_plaats_code = 'L'
UNION ALL
SELECT cp.cnt_contract_key, g.alg_locatie_key
FROM cnt_contract_plaats cp, alg_gebouw g
WHERE cnt_alg_plaats_code = 'G'
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
UNION ALL
SELECT cp.cnt_contract_key, t.alg_locatie_key
FROM cnt_contract_plaats cp, alg_terreinsector t
WHERE cnt_alg_plaats_code = 'T'
AND cp.cnt_alg_plaats_key = t.alg_terreinsector_key
UNION ALL
SELECT co.cnt_contract_key, d.ins_alg_locatie_key
FROM cnt_contract_object co, ins_deel d
WHERE co.cnt_ins_deel_key = d.ins_deel_key
UNION ALL
SELECT co.cnt_contract_key, g.alg_locatie_key
FROM cnt_contract_onrgoed co,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE co.alg_onrgoed_niveau = 'R'
AND co.alg_onrgoed_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
UNION ALL
SELECT co.cnt_contract_key, t.alg_locatie_key
FROM cnt_contract_onrgoed co, alg_terreinsector t
WHERE co.alg_onrgoed_niveau = 'T'
AND co.alg_onrgoed_key = t.alg_terreinsector_key) clk,
cnt_contract cc,
alg_locatie ll,
alg_district di
WHERE cc.cnt_contract_key = clk.cnt_contract_key
AND ll.alg_locatie_key(+) = clk.alg_locatie_key
AND ll.alg_district_key = di.alg_district_key(+)) sc,
prs_v_afdeling_boom boom
WHERE boom.prs_afdeling_key = c.prs_afdeling_key_eig
UNION ALL
SELECT cnt_contract_key
FROM cnt_contract c, prs_v_afdeling_boom boom
WHERE NOT EXISTS (SELECT cnt_contract_key
FROM cnt_contract_plaats cp
WHERE cp.cnt_contract_key = c.cnt_contract_key)
AND NOT EXISTS (SELECT cnt_contract_key
FROM cnt_contract_onrgoed co
WHERE co.cnt_contract_key = c.cnt_contract_key)
AND NOT EXISTS
(SELECT cnt_contract_key
FROM cnt_contract_object co
WHERE co.cnt_contract_key = c.cnt_contract_key
AND co.cnt_ins_deel_key IS NOT NULL)
AND boom.prs_afdeling_key = c.prs_afdeling_key_eig);
WHERE cp.cnt_contract_key = c.cnt_contract_key)
AND NOT EXISTS (SELECT cnt_contract_key
FROM cnt_contract_onrgoed co
WHERE co.cnt_contract_key = c.cnt_contract_key)
AND NOT EXISTS
(SELECT cnt_contract_key
FROM cnt_contract_object co
WHERE co.cnt_contract_key = c.cnt_contract_key
AND co.cnt_ins_deel_key IS NOT NULL)
AND boom.prs_afdeling_key = c.prs_afdeling_key_eig);
REGISTERRUN('$Id$')