WEHK#39464 Herinrichting contracten/CUST04-noti en KPIs

svn path=/Customer/trunk/; revision=35000
This commit is contained in:
Maarten van der Heide
2017-08-17 13:41:07 +00:00
parent b3554864b5
commit 24a26dd5d6

View File

@@ -1,13 +1,21 @@
-- Script containing customer specific configuration sql statements for WEHK: Wehkamp
-- (c) 2010 SG|facilitor bv
-- $Revision$
--
-- $Id$
--
-- Support: +31 53 4800700
-- Script containing customer specific db-configuration for WEHK.
DEFINE thisfile = 'WEHK.SQL'
DEFINE dbuser = '^WEHK'
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
SPOOL xwehk.lst;
------ payload begin ------
/* Formatted on 4-4-2012 16:44:36 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW wehk_v_import_log
@@ -1917,14 +1925,12 @@ CREATE OR REPLACE VIEW wehk_v_noti_cntreminder
sender,
receiver,
text,
KEY,
par1,
par2,
key,
xkey
)
AS
SELECT 'CUST01',
'',
NULL,
c.prs_perslid_key_eig,
'Rappel: Contract '
|| c.cnt_contract_nummer_intern
@@ -1935,10 +1941,8 @@ AS
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|| ' worden verlengd of opgezegd.',
|| ' worden verlengd of opgezegd',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
NULL,
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.prs_perslid_key_eig IS NOT NULL
@@ -1947,7 +1951,7 @@ AS
AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE)
UNION ALL
SELECT 'CUST01',
'',
NULL,
c.prs_perslid_key_beh,
'Rappel: Contract '
|| c.cnt_contract_nummer_intern
@@ -1958,10 +1962,8 @@ AS
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|| ' worden verlengd of opgezegd.',
|| ' worden verlengd of opgezegd',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
NULL,
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_contract_status = 0
@@ -1969,8 +1971,8 @@ AS
AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE)
UNION ALL
SELECT 'CUST01',
'',
fac.safe_to_number (kc.cnt_kenmerkcontract_waarde),
NULL,
fac.safe_to_number (epkc.cnt_kenmerkcontract_waarde),
'Rappel: Contract '
|| c.cnt_contract_nummer_intern
|| ' ('
@@ -1980,23 +1982,103 @@ AS
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|| ' worden verlengd of opgezegd.',
|| ' worden verlengd of opgezegd',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract epkc, cnt_kenmerk epk
WHERE c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = epkc.cnt_contract_key
AND epkc.cnt_kenmerkcontract_verwijder IS NULL
AND epkc.cnt_kenmerk_key = epk.cnt_kenmerk_key
AND epk.cnt_kenmerk_verwijder IS NULL
AND epk.cnt_srtkenmerk_key = 301 -- Contracteigenaar procurement
AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE)
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
c.prs_perslid_key_eig,
REPLACE (
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##NR##', c.cnt_contract_nummer_intern),
'##OMS##', c.cnt_contract_omschrijving),
'##BEDR##', b.prs_bedrijf_naam),
'##DAT##', prkc.cnt_kenmerkcontract_waarde),
c.cnt_contract_key,
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract prkc, cnt_kenmerk prk, fac_srtnotificatie sn
WHERE c.prs_perslid_key_eig IS NOT NULL
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_status = 0
AND c.cnt_contract_key = prkc.cnt_contract_key
AND prkc.cnt_kenmerkcontract_verwijder IS NULL
AND prkc.cnt_kenmerk_key = prk.cnt_kenmerk_key
AND prk.cnt_kenmerk_verwijder IS NULL
AND prk.cnt_srtkenmerk_key = 315 -- Performance review rappeldatum
AND fac.safe_to_date (prkc.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') = TRUNC (SYSDATE)
AND sn.fac_srtnotificatie_code = 'CUST04'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
c.prs_perslid_key_beh,
REPLACE (
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##NR##', c.cnt_contract_nummer_intern),
'##OMS##', c.cnt_contract_omschrijving),
'##BEDR##', b.prs_bedrijf_naam),
'##DAT##', prkc.cnt_kenmerkcontract_waarde),
c.cnt_contract_key,
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b, cnt_kenmerkcontract prkc, cnt_kenmerk prk, fac_srtnotificatie sn
WHERE c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = prkc.cnt_contract_key
AND prkc.cnt_kenmerkcontract_verwijder IS NULL
AND prkc.cnt_kenmerk_key = prk.cnt_kenmerk_key
AND prk.cnt_kenmerk_verwijder IS NULL
AND prk.cnt_srtkenmerk_key = 315 -- Performance review rappeldatum
AND fac.safe_to_date (prkc.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') = TRUNC (SYSDATE)
AND sn.fac_srtnotificatie_code = 'CUST04'
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
fac.safe_to_number (epkc.cnt_kenmerkcontract_waarde),
REPLACE (
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##NR##', c.cnt_contract_nummer_intern),
'##OMS##', c.cnt_contract_omschrijving),
'##BEDR##', b.prs_bedrijf_naam),
'##DAT##', prkc.cnt_kenmerkcontract_waarde),
c.cnt_contract_key,
NULL
FROM cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_kenmerkcontract kc,
cnt_kenmerk k
WHERE c.cnt_contract_status = 0
cnt_kenmerkcontract epkc,
cnt_kenmerk epk,
cnt_kenmerkcontract prkc,
cnt_kenmerk prk,
fac_srtnotificatie sn
WHERE c.cnt_discipline_key IN (1564, 1565) -- Non-merchandise/Inhuur!
AND c.cnt_contract_status = 0
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = kc.cnt_contract_key
AND kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 301 -- Contracteigenaar procurement
AND TRUNC (cnt.cnt_getRappeldatum (c.cnt_contract_key)) = TRUNC (SYSDATE);
AND c.cnt_contract_key = epkc.cnt_contract_key
AND epkc.cnt_kenmerkcontract_verwijder IS NULL
AND epkc.cnt_kenmerk_key = epk.cnt_kenmerk_key
AND epk.cnt_kenmerk_verwijder IS NULL
AND epk.cnt_srtkenmerk_key = 301 -- Contracteigenaar procurement
AND c.cnt_contract_key = prkc.cnt_contract_key
AND prkc.cnt_kenmerkcontract_verwijder IS NULL
AND prkc.cnt_kenmerk_key = prk.cnt_kenmerk_key
AND prk.cnt_kenmerk_verwijder IS NULL
AND prk.cnt_srtkenmerk_key = 315 -- Performance review rappeldatum
AND fac.safe_to_date (prkc.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') = TRUNC (SYSDATE)
AND sn.fac_srtnotificatie_code = 'CUST04';
-- WEHK#20113 AutoClose ALLE bestellingen noti-dagen na geplande leverdatum!
@@ -2646,9 +2728,236 @@ AS
AND l.alg_district_key = di.alg_district_key
AND di.alg_regio_key = r.alg_regio_key;
BEGIN fac.registercustversion('WEHK', 23); END;
-- KPIs/Contracten
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_data
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid,
cd.ins_discipline_key,
cd.ins_discipline_omschrijving contractsoort,
a.prs_afdeling_omschrijving contractafd3,
c.cnt_contract_kosten,
DECODE (vrkt.cnt_kenmerkcontract_waarde, NULL, 'Nee', 'Ja') verrijkt,
DECODE (appr.aant, 3, 'Ja', 'Nee') approved,
CASE
WHEN SYSDATE < c.cnt_contract_looptijd_van
THEN 'Toekomstig'
WHEN SYSDATE BETWEEN c.cnt_contract_looptijd_van AND cnt.cnt_getrappeldatum (c.cnt_contract_key)
THEN 'Actueel'
WHEN SYSDATE BETWEEN cnt.cnt_getopzegdatum (c.cnt_contract_key) AND c.cnt_contract_looptijd_tot
THEN 'In opzegtermijn'
WHEN SYSDATE > c.cnt_contract_looptijd_tot
THEN 'Verlopen'
ELSE 'Rappel'
END
contractfase,
afd1.fac_usrdata_omschr afd1_aanvrager,
afd2.fac_usrdata_omschr afd2_aanvrager
FROM cnt_v_aanwezigcontract c, cnt_discipline cd,
prs_v_afdeling_boom ab, prs_afdeling a,
(SELECT kc.*
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 304) vrkt, -- Groepsmaatschappij
( SELECT kc.cnt_contract_key, SUM (DECODE (kc.cnt_kenmerkcontract_waarde, 'Ja', 1, 0)) aant
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key IN (291, 292, 293) -- Approval Budgethouder/Legal/Buyer
GROUP BY kc.cnt_contract_key) appr,
(SELECT kc.cnt_contract_key, ud.fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 288 -- Afdeling 1e level Aanvrager
AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd1,
(SELECT kc.cnt_contract_key, ud.fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 289 -- Afdeling 2e level Aanvrager
AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd2
WHERE c.cnt_contract_status = 0 -- Actief
--AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565)
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
AND COALESCE (ab.prs_afdeling_key3, ab.prs_afdeling_key1) = a.prs_afdeling_key
AND c.cnt_contract_key = vrkt.cnt_contract_key(+)
AND c.cnt_contract_key = appr.cnt_contract_key(+)
AND c.cnt_contract_key = afd1.cnt_contract_key(+)
AND c.cnt_contract_key = afd2.cnt_contract_key(+);
/*
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_coverage -- WEG?
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid,
cd.ins_discipline_omschrijving contractsoort,
a.prs_afdeling_omschrijving contractafd3,
c.cnt_contract_kosten
FROM cnt_v_aanwezigcontract c, cnt_discipline cd,
prs_v_afdeling_boom ab, prs_afdeling a
WHERE c.cnt_contract_status = 0 -- Actief
--AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565)
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key
AND COALESCE (ab.prs_afdeling_key3, ab.prs_afdeling_key1) = a.prs_afdeling_key;
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_verrijkt -- WEG?
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid,
DECODE (vrkt.cnt_kenmerkcontract_waarde, NULL, 'Nee', 'Ja') verrijkt
FROM cnt_v_aanwezigcontract c,
(SELECT kc.*
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 304) vrkt -- Groepsmaatschappij
WHERE c.cnt_contract_status = 0 -- Actief
--AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot
AND c.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565)
AND c.cnt_contract_key = vrkt.cnt_contract_key(+);
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_approved -- WEG?
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid,
DECODE (appr.aant, 3, 'Ja', 'Nee') approved
FROM cnt_v_aanwezigcontract c,
( SELECT kc.cnt_contract_key, SUM (DECODE (kc.cnt_kenmerkcontract_waarde, 'Ja', 1, 0)) aant
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key IN (291, 292, 293) -- Approval Budgethouder/Legal/Buyer
GROUP BY kc.cnt_contract_key) appr
WHERE c.cnt_contract_status = 0 -- Actief
--AND SYSDATE BETWEEN c.cnt_contract_looptijd_van AND c.cnt_contract_looptijd_tot
AND c.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565)
AND c.cnt_contract_key = appr.cnt_contract_key(+);
*/
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_soortfase
(
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_,
FCLT_YAS3_,
FCLT_YAS4_,
FCLT_YAS5_,
FCLT_SORT
)
AS
WITH contracten
AS (SELECT cnt_contract_key, ins_discipline_key,
CASE
WHEN SYSDATE < cnt_contract_looptijd_van
THEN 'Toekomstig'
WHEN SYSDATE BETWEEN cnt_contract_looptijd_van AND cnt.cnt_getrappeldatum (cnt_contract_key)
THEN 'Actueel'
WHEN SYSDATE BETWEEN cnt.cnt_getopzegdatum (cnt_contract_key) AND cnt_contract_looptijd_tot
THEN 'In opzegtermijn'
WHEN SYSDATE > cnt_contract_looptijd_tot
THEN 'Verlopen'
ELSE 'Rappel'
END
contractfase
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_status = 0 -- Actief
AND ins_discipline_key IN (1561, 1562, 1563, 1564, 1565))
SELECT cd.ins_discipline_omschrijving,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'T', 1, 0)) toekomstig,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'A', 1, 0)) actueel,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'R', 1, 0)) rappel,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'I', 1, 0)) opzeg,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'V', 1, 0)) verlopen,
0 - COUNT ( * )
FROM contracten c, cnt_discipline cd
WHERE c.ins_discipline_key = cd.ins_discipline_key
GROUP BY cd.ins_discipline_omschrijving;
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_bandsfase
(
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_,
FCLT_YAS3_,
FCLT_YAS4_,
FCLT_YAS5_,
FCLT_SORT
)
AS
WITH contracten
AS (SELECT cnt_contract_key,
CASE
WHEN SYSDATE < cnt_contract_looptijd_van
THEN 'Toekomstig'
WHEN SYSDATE BETWEEN cnt_contract_looptijd_van AND cnt.cnt_getrappeldatum (cnt_contract_key)
THEN 'Actueel'
WHEN SYSDATE BETWEEN cnt.cnt_getopzegdatum (cnt_contract_key) AND cnt_contract_looptijd_tot
THEN 'In opzegtermijn'
WHEN SYSDATE > cnt_contract_looptijd_tot
THEN 'Verlopen'
ELSE 'Rappel'
END
contractfase
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_status = 0 -- Actief
AND ins_discipline_key IN (1561, 1562, 1563, 1564, 1565))
SELECT COALESCE (afd2.fac_usrdata_omschr, '???') afd2,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'T', 1, 0)) toekomstig,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'A', 1, 0)) actueel,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'R', 1, 0)) rappel,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'I', 1, 0)) opzeg,
SUM (DECODE (SUBSTR (c.contractfase, 1, 1), 'V', 1, 0)) verlopen,
0 - COUNT ( * )
FROM contracten c,
(SELECT kc.cnt_contract_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 288 -- Afdeling 1e level Aanvrager
AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd1,
(SELECT kc.cnt_contract_key, ud.fac_usrdata_key, ud.fac_usrdata_omschr
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, fac_usrdata ud
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = 289 -- Afdeling 2e level Aanvrager
AND kc.cnt_kenmerkcontract_waarde = TO_CHAR (ud.fac_usrdata_key)) afd2
WHERE c.cnt_contract_key = afd1.cnt_contract_key
AND afd1.fac_usrdata_key = 2967 -- Buying and Sales
AND c.cnt_contract_key = afd2.cnt_contract_key(+)
GROUP BY COALESCE (afd2.fac_usrdata_omschr, '???');
CREATE OR REPLACE VIEW wehk_v_kpi_cnt_afloop
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractid,
TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy-mm') afloopmaand
FROM cnt_v_aanwezigcontract c, cnt_discipline cd
WHERE c.cnt_contract_status = 0 -- Actief
AND c.cnt_contract_looptijd_tot BETWEEN TRUNC (SYSDATE, 'mm') AND ADD_MONTHS (TRUNC (SYSDATE, 'mm'), 24) - 1 -- 24 maanden in toekomst
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (1561, 1562, 1563, 1564, 1565);
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
BEGIN adm.systrackscriptId('$Id$', 0); END;
/
commit;
spool off
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile