STCH#68440 -- Financiële rapportages toegevoegd

svn path=/Customer/trunk/; revision=59710
This commit is contained in:
Robin Stoker
2023-03-22 19:07:12 +00:00
parent 5b3dcfe313
commit 07d55f415f

View File

@@ -8,10 +8,16 @@ DEFINE dbuser = '^STCH'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
@@ -1972,6 +1978,446 @@ AS
AND u.melding_key = na.mld_melding_key(+)
AND u.melding_key = nta.mld_melding_key(+)
AND u.opdracht_type = 'RFQ';
CREATE OR REPLACE VIEW stch_v_rap_gebouwbezetting
(
alg_gebouw_key,
alg_gebouw_omschrijving,
prs_afdeling_key,
prs_afdeling_omschrijving,
m2,
totaal_m2,
perc_v_totaal,
perc_formatted
)
AS
SELECT g.alg_gebouw_key,
g.alg_gebouw_omschrijving,
pa.prs_afdeling_key,
pa.prs_afdeling_omschrijving,
SUM (r.alg_ruimte_bruto_vloeropp) m2,
x.bezet totaal_m2,
ROUND ((SUM (r.alg_ruimte_bruto_vloeropp) / x.bezet) * 100, 2) perc_v_totaal,
ROUND (SUM (r.alg_ruimte_bruto_vloeropp) / x.bezet, 3)
FROM prs_ruimteafdeling pr,
prs_afdeling pa,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
( SELECT g.alg_gebouw_key, SUM (r.alg_ruimte_bruto_vloeropp) bezet
FROM prs_ruimteafdeling pr,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g
WHERE pr.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 g.alg_gebouw_verwijder IS NULL
AND pr.prs_ruimteafdeling_verwijder IS NULL
AND r.alg_ruimte_bruto_vloeropp > 0
AND g.alg_gebouw_vervaldatum IS NULL
GROUP BY g.alg_gebouw_key) x
WHERE pr.alg_ruimte_key = r.alg_ruimte_key
AND pr.prs_afdeling_key = pa.prs_afdeling_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_gebouw_key = x.alg_gebouw_key
AND g.alg_gebouw_verwijder IS NULL
AND pr.prs_ruimteafdeling_verwijder IS NULL
GROUP BY g.alg_gebouw_key,
g.alg_gebouw_omschrijving,
pa.prs_afdeling_key,
pa.prs_afdeling_omschrijving,
x.bezet;
CREATE OR REPLACE VIEW stch_v_rap_facturatie
(
NUMMER,
NUMMER_EXTERN,
VERSIE,
OMSCHRIJVING,
GEBOUW_KEY,
GEBOUW_OMSCHRIJVING,
AFDELING_KEY,
AFDELING_OMSHCRIJVING,
KENMERK,
WAARDE_C,
WAARDE_N,
WAARDE_D,
WAARDE_X
)
AS
SELECT DISTINCT c.cnt_contract_nummer_intern,
c.cnt_contract_nummer,
c.cnt_contract_versie,
c.cnt_contract_omschrijving,
g.alg_gebouw_key,
g.alg_gebouw_omschrijving,
c.prs_afdeling_key_eig,
pa.prs_afdeling_omschrijving,
COALESCE (
lcl.x ('cnt_kenmerk_omschrijving',
k.cnt_kenmerk_key,
k.cnt_kenmerk_omschrijving),
lcl.x ('cnt_srtkenmerk_omschrijving',
skm.cnt_srtkenmerk_key,
cnt_srtkenmerk_omschrijving)) kenmerk,
CASE
WHEN skm.cnt_srtkenmerk_kenmerktype = 'R'
OR skm.cnt_srtkenmerk_kenmerktype = 'S'
THEN
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key,
km.cnt_kenmerkcontract_waarde)
WHEN skm.cnt_srtkenmerk_kenmerktype = 'C'
OR skm.cnt_srtkenmerk_kenmerktype = 'F'
THEN
km.cnt_kenmerkcontract_waarde
ELSE
NULL
END waarde_c,
CASE
WHEN skm.cnt_srtkenmerk_kenmerktype = 'N'
OR skm.cnt_srtkenmerk_kenmerktype = 'B'
THEN
TO_NUMBER (km.cnt_kenmerkcontract_waarde)
ELSE
TO_NUMBER (NULL)
END waarde_n,
CASE
WHEN skm.cnt_srtkenmerk_kenmerktype = 'D'
THEN
TO_DATE (km.cnt_kenmerkcontract_waarde, 'DD-MM-YYYY')
ELSE
TO_DATE (NULL)
END waarde_d,
CASE
WHEN skm.cnt_srtkenmerk_kenmerktype IN ('R', 'S')
THEN
flx.getdomeinwaarde (skm.fac_kenmerkdomein_key,
km.cnt_kenmerkcontract_waarde)
ELSE
km.cnt_kenmerkcontract_waarde
END waarde_x
FROM cnt_v_aanwezigcontract c,
cnt_contract_plaats cp,
cnt_kenmerkcontract km,
cnt_kenmerk k,
cnt_srtkenmerk skm,
alg_gebouw g,
prs_afdeling pa
WHERE c.ins_discipline_key = 3161 -- Facturatie
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_alg_plaats_code = 'G' -- Het gaat altijd om contracten op gebouwniveau
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
AND c.prs_afdeling_key_eig = pa.prs_afdeling_key
AND km.cnt_contract_key(+) = c.cnt_contract_key
AND km.cnt_kenmerkcontract_verwijder IS NULL
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_kenmerk_key BETWEEN 242 AND 263 -- Kenmerken waar de bedragen in staan
AND skm.cnt_srtkenmerk_verwijder IS NULL
AND km.cnt_kenmerk_key(+) = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = skm.cnt_srtkenmerk_key;
CREATE OR REPLACE VIEW stch_v_rap_gebouwkenmerk
(
gebouw_key,
kenmerk,
kenmerk_waarde
)
AS
SELECT g.alg_gebouw_key,
ak.alg_kenmerk_omschrijving,
fac.safe_to_number (oak.alg_onrgoedkenmerk_waarde)
FROM alg_gebouw g, alg_kenmerk ak, alg_onrgoedkenmerk oak
WHERE oak.alg_kenmerk_key = ak.alg_kenmerk_key
AND oak.alg_onrgoed_key = alg_gebouw_key
AND oak.alg_onrgoed_niveau = 'G'
AND ak.alg_kenmerk_key BETWEEN 1281 AND 1302;
CREATE OR REPLACE VIEW stch_v_rap_faturatieoverzicht
(
bedrijf,
bezettingspercentage,
gebouw,
kenmerk,
kenmerk_waarde,
soort_bedrag
)
AS
SELECT gb.prs_afdeling_omschrijving,
gb.perc_v_totaal,
gb.alg_gebouw_omschrijving,
gk.kenmerk,
COALESCE (f.waarde_n, (gk.kenmerk_waarde * gb.perc_formatted))
bedrag,
CASE
WHEN f.waarde_n IS NOT NULL THEN 'Contract'
ELSE 'Standaard'
END
CASE
FROM stch_v_rap_facturatie f,
stch_v_rap_gebouwkenmerk gk,
stch_v_rap_gebouwbezetting gb
WHERE gb.alg_gebouw_key = gk.gebouw_key
AND gb.alg_gebouw_key = f.gebouw_key(+)
AND gb.prs_afdeling_key = f.afdeling_key(+)
AND gk.kenmerk = f.kenmerk(+);
-- Taken rapportage
CREATE OR REPLACE VIEW stch_v_rap_deelinspect
(
deel_key,
discipline,
soort,
groep,
soortcode,
omschrijving,
plaatseigenaar,
plaatseigenaartype,
plaatsaanduiding,
eigenaar,
eigenaar_key,
opmerking,
regio,
district,
locatie_code,
locatie_omschrijving,
locatie_plaats,
gebouwcode,
gebouw,
terreinsectorcode,
terreinsector,
verdiepingcode,
ruimtenr,
werkplekvolgnr,
werkplek,
uitleenbaar,
uitgeleend,
res_opmerking,
beheerder,
vervaldatum,
actief,
aantal,
state,
statedate,
fclt_3d_discipline_key,
fclt_3d_afdeling_key,
fclt_3d_locatie_key,
ins_deelsrtcontrole_key,
ins_srtcontrole_key,
srtcontrole_omschrijving,
ins_deelsrtcontrole_datum,
controlemode_omschrijving,
ins_deelsrtcontrole_opmerking,
perslid,
ins_deelsrtcontrole_datum_org,
ins_deelsrtcontrole_plandatum,
deelsrtcontrole_status
)
AS
SELECT deel_key,
discipline,
soort,
groep,
soortcode,
omschrijving,
plaatseigenaar,
plaatseigenaartype,
plaatsaanduiding,
eigenaar,
eigenaar_key,
opmerking,
regio,
district,
locatie_code,
locatie_omschrijving,
locatie_plaats,
gebouwcode,
gebouw,
terreinsectorcode,
terreinsector,
verdiepingcode,
ruimtenr,
werkplekvolgnr,
werkplek,
uitleenbaar,
uitgeleend,
res_opmerking,
beheerder,
vervaldatum,
actief,
aantal,
state,
statedate,
fclt_3d_discipline_key,
fclt_3d_afdeling_key,
fclt_3d_locatie_key,
ins_deelsrtcontrole_key,
ins_srtcontrole_key,
srtcontrole_omschrijving,
ins_deelsrtcontrole_datum,
controlemode_omschrijving,
ins_deelsrtcontrole_opmerking,
perslid,
ins_deelsrtcontrole_datum_org,
ins_deelsrtcontrole_plandatum,
deelsrtcontrole_status
FROM ins_v_udr_deelinspect
UNION ALL
SELECT ud.deel_key,
ud.discipline,
ud.soort,
ud.groep,
ud.soortcode,
ud.omschrijving,
ud.plaatseigenaar,
ud.plaatseigenaartype,
ud.plaatsaanduiding,
ud.eigenaar,
ud.eigenaar_key,
ud.opmerking,
ud.regio,
ud.district,
ud.locatie_code,
ud.locatie_omschrijving,
ud.locatie_plaats,
ud.gebouwcode,
ud.gebouw,
ud.terreinsectorcode,
ud.terreinsector,
ud.verdiepingcode,
ud.ruimtenr,
ud.werkplekvolgnr,
ud.werkplek,
ud.uitleenbaar,
ud.uitgeleend,
ud.res_opmerking,
ud.beheerder,
ud.vervaldatum,
ud.actief,
ud.aantal,
ud.state,
ud.statedate,
ud.fclt_3d_discipline_key,
ud.fclt_3d_afdeling_key,
ud.fclt_3d_locatie_key,
NULL,
sc.ins_srtcontrole_key,
sc.ins_srtcontrole_omschrijving,
NULL,
'Nog niet gepland',
NULL,
NULL,
NULL,
fac.nextcyclusdatedeel (d.ins_deel_key, sc.ins_srtcontrole_key),
NULL
FROM ins_v_udr_deel ud,
ins_deel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline disc,
ins_srtcontrole sc
WHERE d.ins_deel_key = ud.deel_key
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
AND disc.ins_discipline_key = sg.ins_discipline_key
AND ( (sd.ins_srtdeel_key = sc.ins_srtinstallatie_key
AND ins_srtcontrole_niveau = 'S')
OR (sg.ins_srtgroep_key = sc.ins_srtinstallatie_key
AND ins_srtcontrole_niveau = 'G')
OR (disc.ins_discipline_key = sc.ins_srtinstallatie_key
AND ins_srtcontrole_niveau = 'D'));
-- Notificaties obv periodieke taken naar objectbeheerders
CREATE OR REPLACE VIEW stch_v_rap_ctrbeh
(
plaats,
gebouw,
verdieping,
ruimte,
discipline,
objectgroep,
objectsoort,
deel_key,
objectomschrijving,
plandatum,
extra_key,
taakomschrijving,
status,
beheerder_key,
beheerder_email
)
AS
SELECT di.locatie_plaats,
di.gebouw,
di.verdiepingcode,
di.ruimtenr,
di.discipline,
di.groep,
di.soort,
di.deel_key,
di.omschrijving,
TRUNC (di.ins_deelsrtcontrole_plandatum),
dsc.ins_deelsrtcontrole_key,
di.srtcontrole_omschrijving,
di.deelsrtcontrole_status,
p.prs_perslid_key,
p.prs_perslid_email
FROM stch_v_rap_deelinspect di,
ins_deel d,
prs_perslid p,
ins_deelsrtcontrole dsc,
ins_tab_discipline disc,
fac_usrtab ut,
fac_usrdata ud
WHERE di.ins_deelsrtcontrole_datum IS NULL
AND (di.vervaldatum > SYSDATE OR di.vervaldatum IS NULL)
AND d.prs_perslid_key_beh = p.prs_perslid_key(+)
AND d.ins_deel_key = di.deel_key
AND dsc.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key
AND d.ins_discipline_key = disc.ins_discipline_key
AND UPPER (ut.fac_usrtab_naam) = 'NOTI_CUST11'
AND ut.fac_usrtab_verwijder IS NULL
AND ut.fac_usrtab_key = ud.fac_usrtab_key
AND fac.safe_to_number (ud.fac_usrdata_code) = d.ins_discipline_key
ORDER BY di.ins_deelsrtcontrole_datum,
TRUNC (di.ins_deelsrtcontrole_plandatum),
di.controlemode_omschrijving,
p.prs_perslid_email;
--Notificaties obv periodieke taken naar objectbeheerders
CREATE OR REPLACE VIEW stch_v_noti_ctrbeh_wk
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT DISTINCT
'CUST11' AS code,
NULL,
beheerder_key,
'Herinnering: '
|| discipline
|| ' - '
|| objectgroep
|| ' - '
|| taakomschrijving
|| ', dient uiterlijk '
|| TO_CHAR (plandatum, 'DD-MM-YYYY')
|| ' te worden afgehandeld',
(SELECT fac_usrrap_key
FROM fac_usrrap
WHERE UPPER (fac_usrrap_code) = 'STCH_V_RAP_CTRBEH')
rapportnr,
extra_key
FROM stch_v_rap_ctrbeh
WHERE TRUNC (plandatum) = TRUNC (SYSDATE) + 7;
-- Opdracht ook via mail naar interne mailbox wanneer verstuurd aan een technische leverancier.
CREATE OR REPLACE VIEW stch_v_noti_opdracht