BLOS#81091 -- Projectregistratie voor BLOS opzetten - Afronding
svn path=/Customer/trunk/; revision=64260
This commit is contained in:
404
BLOS/blos.sql
404
BLOS/blos.sql
@@ -248,6 +248,406 @@ EXCEPTION
|
||||
END;
|
||||
/
|
||||
|
||||
----------------------------
|
||||
-- Projectregistratie ----
|
||||
----------------------------
|
||||
|
||||
|
||||
-- Basisview tbv exportfunctie
|
||||
CREATE OR REPLACE VIEW BLOS_V_PROJECTREGISTRATIE
|
||||
(
|
||||
MLD_MELDING_KEY,
|
||||
MLD_STDMELDING_OMSCHRIJVING,
|
||||
INS_DISCIPLINE_OMSCHRIJVING,
|
||||
INS_SRTDISCIPLINE_OMSCHRIJVING,
|
||||
MLD_MELDING_DATUM,
|
||||
MLD_MELDING_ONDERWERP,
|
||||
MLD_MELDING_EINDDATUM,
|
||||
MLD_MELDING_ACTIEDATUM,
|
||||
MLD_STATUSES_OMSCHRIJVING,
|
||||
BEHANDELAAR,
|
||||
LOCATIE,
|
||||
PRS_KOSTENPLAATS_OMS_MLD,
|
||||
PROJECTOMSCHRIJVING,
|
||||
INVESTERINGSBEGROTING,
|
||||
KOSTEN_INSTALLATIES,
|
||||
KOSTEN_GEBOUW,
|
||||
KOSTEN_INSPECTIE,
|
||||
KOSTEN_BUITENRUIMTES,
|
||||
KOSTEN_ACHTERSTALLIG_ONDERHOUD,
|
||||
KOSTEN_OVERIG,
|
||||
KOSTEN_TOTAAL, -- som van alle hofdcategorie-en
|
||||
KOSTEN_TOTAAL_AFGEROND,
|
||||
MLD_OPDR_KEY,
|
||||
MLD_OPDR_NR,
|
||||
MLD_OPDR_DATUMBEGIN,
|
||||
PRS_BEDRIJF_NAAM,
|
||||
MLD_OPDR_EINDDATUM,
|
||||
MLD_STATUSOPDR_OMSCHRIJVING,
|
||||
MLD_OPDR_KOSTEN,
|
||||
PRS_KOSTENPLAATS_OMS,
|
||||
PRS_KOSTENSOORT_OMS,
|
||||
PRS_KOSTENSOORTGRP_OMS
|
||||
)
|
||||
AS
|
||||
SELECT m.mld_melding_key,
|
||||
sm.mld_stdmelding_omschrijving,
|
||||
d.ins_discipline_omschrijving,
|
||||
sd.ins_srtdiscipline_omschrijving,
|
||||
m.mld_melding_datum,
|
||||
m.mld_melding_onderwerp,
|
||||
m.mld_melding_einddatum,
|
||||
m.mld_melding_actiedatum,
|
||||
ms.mld_statuses_omschrijving,
|
||||
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
||||
behandelaar,
|
||||
CASE
|
||||
WHEN l.alg_locatie_key IS NULL
|
||||
THEN
|
||||
FLX.getflex ('MLD', 1405, m.mld_melding_key)
|
||||
|| ' '
|
||||
|| FLX.getflex ('MLD', 1403, m.mld_melding_key)
|
||||
ELSE
|
||||
l.alg_locatie_omschrijving
|
||||
END
|
||||
locatie,
|
||||
kp.prs_kostenplaats_omschrijving
|
||||
prs_kostenplaats_omschrijving_mld,
|
||||
-- kenmerken projectmelding
|
||||
FLX.getflex ('MLD', 703, m.mld_melding_key)
|
||||
projectomschrijving,
|
||||
FLX.getflex ('MLD', 704, m.mld_melding_key)
|
||||
investeringsbegroting,
|
||||
fac.safe_to_number(FLX.getflex ('MLD', 1364, m.mld_melding_key))
|
||||
kosten_installaties,
|
||||
fac.safe_to_number(FLX.getflex ('MLD', 1366, m.mld_melding_key))
|
||||
kosten_gebouw,
|
||||
fac.safe_to_number(FLX.getflex ('MLD', 1365, m.mld_melding_key))
|
||||
kosten_inspectie,
|
||||
fac.safe_to_number(FLX.getflex ('MLD', 1363, m.mld_melding_key))
|
||||
kosten_buitenruimtes,
|
||||
fac.safe_to_number(FLX.getflex ('MLD', 1541, m.mld_melding_key))
|
||||
kosten_achterstallig_onderhoud,
|
||||
fac.safe_to_number(FLX.getflex ('MLD', 1561, m.mld_melding_key))
|
||||
kosten_overig,
|
||||
fac.safe_to_number(FLX.getflex ('MLD', 1367, m.mld_melding_key))
|
||||
kosten_totaal,
|
||||
fac.safe_to_number(FLX.getflex ('MLD', 1581, m.mld_melding_key))
|
||||
kosten_totaal_afgerond,
|
||||
-- opdrachtinformatie
|
||||
o.mld_opdr_key,
|
||||
o.mld_opdr_nr,
|
||||
o.mld_opdr_datumbegin,
|
||||
o.prs_bedrijf_naam,
|
||||
o.mld_opdr_einddatum,
|
||||
o.mld_statusopdr_omschrijving,
|
||||
o.mld_opdr_kosten,
|
||||
o.prs_kostenplaats_omschrijving,
|
||||
COALESCE (o.kostensoort_afwijkend, ks.prs_kostensoort_oms)
|
||||
prs_kostensoort_oms,
|
||||
COALESCE (o.prs_kostensoortgrp_oms, ksg.prs_kostensoortgrp_oms)
|
||||
prs_kostensoortgrp_oms
|
||||
FROM mld_melding m,
|
||||
mld_statuses ms,
|
||||
prs_perslid p,
|
||||
alg_locatie l,
|
||||
prs_kostenplaats kp,
|
||||
mld_stdmelding sm,
|
||||
prs_kostensoort ks,
|
||||
prs_kostensoortgrp ksg,
|
||||
mld_discipline d,
|
||||
ins_srtdiscipline sd,
|
||||
(SELECT o.mld_melding_key,
|
||||
o.mld_opdr_key,
|
||||
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
|
||||
mld_opdr_nr,
|
||||
ot.mld_typeopdr_omschrijving,
|
||||
b.prs_bedrijf_naam,
|
||||
o.mld_opdr_datumbegin,
|
||||
o.mld_opdr_einddatum,
|
||||
o.mld_opdr_plandatum,
|
||||
o.mld_opdr_werkzaamheden,
|
||||
os.mld_statusopdr_omschrijving,
|
||||
o.mld_opdr_kosten,
|
||||
kp.prs_kostenplaats_omschrijving,
|
||||
ks.prs_kostensoort_oms kostensoort_afwijkend,
|
||||
ksg.prs_kostensoortgrp_oms
|
||||
FROM mld_opdr o,
|
||||
mld_typeopdr ot,
|
||||
mld_statusopdr os,
|
||||
prs_bedrijf b,
|
||||
prs_kostensoort ks,
|
||||
prs_kostensoortgrp ksg,
|
||||
prs_kostenplaats kp
|
||||
WHERE o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||||
AND o.mld_statusopdr_key = os.mld_statusopdr_key
|
||||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||||
AND o.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||||
AND ks.prs_kostensoortgrp_key =
|
||||
ksg.prs_kostensoortgrp_key(+)
|
||||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND ot.mld_typeopdr_key = 501 -- type opdracht - project
|
||||
) o
|
||||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||||
AND m.mld_melding_status = ms.mld_statuses_key
|
||||
AND m.mld_melding_behandelaar_key = p.prs_perslid_key(+)
|
||||
AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
|
||||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||||
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||||
AND m.mld_melding_key = o.mld_melding_key(+)
|
||||
AND sm.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||||
AND ks.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key(+)
|
||||
AND sd.ins_srtdiscipline_key = 21 -- Projecten
|
||||
;
|
||||
|
||||
-- Exportfunctie om de opdrachtkosten per project te sommeren en op PR-Melding indicatief weg te schrijven
|
||||
CREATE OR REPLACE VIEW blos_v_export_pr_kosten
|
||||
(
|
||||
result,
|
||||
result_order
|
||||
)
|
||||
AS
|
||||
SELECT '"SYNC - Projectkosten"'
|
||||
|| ';"Bijgewerkt"',
|
||||
0
|
||||
FROM DUAL
|
||||
UNION
|
||||
SELECT 'ERROR: Datum '|| TO_CHAR(imp_log_datum) || ' - ' || imp_log_omschrijving || ' - ' || imp_log_hint,
|
||||
1
|
||||
FROM imp_log
|
||||
WHERE imp_log_applicatie = 'PR_KOSTEN' ;
|
||||
|
||||
CREATE OR REPLACE PROCEDURE blos_select_pr_kosten
|
||||
(
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2
|
||||
)
|
||||
AS
|
||||
CURSOR c
|
||||
IS
|
||||
SELECT m.mld_melding_key,
|
||||
m.mld_kosten_installaties,
|
||||
m.mld_kosten_gebouw,
|
||||
m.mld_kosten_buitenruimtes,
|
||||
m.mld_kosten_achterstallig_oh,
|
||||
m.mld_kosten_inspectie,
|
||||
m.mld_kosten_overig,
|
||||
m.mld_kosten_totaal,
|
||||
m.mld_kosten_totaal_afgerond,
|
||||
(SELECT SUM (v.mld_opdr_kosten)
|
||||
FROM blos_v_projectregistratie v
|
||||
WHERE v.prs_kostensoortgrp_oms = 'PR-INSTALLATIES'
|
||||
AND v.mld_melding_key = m.mld_melding_key)
|
||||
opdr_kosten_installaties,
|
||||
(SELECT SUM (v.mld_opdr_kosten)
|
||||
FROM blos_v_projectregistratie v
|
||||
WHERE v.prs_kostensoortgrp_oms = 'PR-GEBOUW'
|
||||
AND v.mld_melding_key = m.mld_melding_key)
|
||||
opdr_kosten_gebouw,
|
||||
(SELECT SUM (v.mld_opdr_kosten)
|
||||
FROM blos_v_projectregistratie v
|
||||
WHERE v.prs_kostensoortgrp_oms = 'PR-BUITENRUIMTES'
|
||||
AND v.mld_melding_key = m.mld_melding_key)
|
||||
opdr_kosten_buitenruimtes,
|
||||
(SELECT SUM (v.mld_opdr_kosten)
|
||||
FROM blos_v_projectregistratie v
|
||||
WHERE v.prs_kostensoortgrp_oms = 'PR-ACHTERSTALLIG_ONDERHOUD'
|
||||
AND v.mld_melding_key = m.mld_melding_key)
|
||||
opdr_kosten_achterstallig_oh,
|
||||
(SELECT SUM (v.mld_opdr_kosten)
|
||||
FROM blos_v_projectregistratie v
|
||||
WHERE v.prs_kostensoortgrp_oms = 'PR-INSPECTIE'
|
||||
AND v.mld_melding_key = m.mld_melding_key)
|
||||
opdr_kosten_inspectie,
|
||||
(SELECT SUM (v.mld_opdr_kosten)
|
||||
FROM blos_v_projectregistratie v
|
||||
WHERE v.mld_melding_key = m.mld_melding_key)
|
||||
opdr_kosten_totaal,
|
||||
(SELECT SUM (v.mld_opdr_kosten)
|
||||
FROM blos_v_projectregistratie v
|
||||
WHERE INSTR(v.prs_kostensoortgrp_oms, 'PR-') = 0
|
||||
AND v.mld_melding_key = m.mld_melding_key)
|
||||
opdr_kosten_totaal_overig,
|
||||
(SELECT SUM (v.mld_opdr_kosten)
|
||||
FROM blos_v_projectregistratie v
|
||||
WHERE v.mld_statusopdr_omschrijving = 'Afgerond'
|
||||
AND v.mld_melding_key = m.mld_melding_key)
|
||||
opdr_kosten_afgerond
|
||||
FROM ( SELECT mld_melding_key,
|
||||
kosten_installaties
|
||||
mld_kosten_installaties,
|
||||
kosten_gebouw
|
||||
mld_kosten_gebouw,
|
||||
kosten_buitenruimtes
|
||||
mld_kosten_buitenruimtes,
|
||||
kosten_achterstallig_onderhoud
|
||||
mld_kosten_achterstallig_oh,
|
||||
kosten_inspectie
|
||||
mld_kosten_inspectie,
|
||||
kosten_overig
|
||||
mld_kosten_overig,
|
||||
kosten_totaal
|
||||
mld_kosten_totaal,
|
||||
kosten_totaal_afgerond
|
||||
mld_kosten_totaal_afgerond
|
||||
FROM blos_v_projectregistratie
|
||||
GROUP BY mld_melding_key,
|
||||
kosten_installaties,
|
||||
kosten_gebouw,
|
||||
kosten_buitenruimtes,
|
||||
kosten_achterstallig_onderhoud,
|
||||
kosten_inspectie,
|
||||
kosten_overig,
|
||||
kosten_totaal,
|
||||
kosten_totaal_afgerond) m;
|
||||
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
oracle_err_num NUMBER;
|
||||
currentversion fac_module.fac_module_version%TYPE;
|
||||
v_aanduiding VARCHAR2 (1000);
|
||||
v_count NUMBER;
|
||||
|
||||
v_tracking NUMBER(1);
|
||||
v_tracking_afgerond NUMBER(1);
|
||||
v_mld_kosten_totaal_init NUMBER(10);
|
||||
v_mld_kosten_totaal_afg_init NUMBER(10);
|
||||
-- v_mld_kosten_overig NUMBER(10);
|
||||
|
||||
|
||||
BEGIN
|
||||
v_count := 0;
|
||||
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
-- vullen variabelen
|
||||
v_aanduiding := 'Project PR' || rec.mld_melding_key ;
|
||||
v_tracking := 0 ;
|
||||
v_tracking_afgerond := 0 ;
|
||||
v_mld_kosten_totaal_init := rec.mld_kosten_totaal ;
|
||||
v_mld_kosten_totaal_afg_init := rec.mld_kosten_totaal_afgerond ;
|
||||
-- v_mld_kosten_overig := COALESCE(rec.opdr_kosten_totaal, 0) - (COALESCE(rec.opdr_kosten_inspectie, 0) + COALESCE(rec.opdr_kosten_achterstallig_oh, 0) + COALESCE(rec.opdr_kosten_buitenruimtes, 0) + COALESCE(rec.opdr_kosten_gebouw, 0) + COALESCE(rec.opdr_kosten_installaties, 0)) ;
|
||||
|
||||
IF COALESCE(rec.mld_kosten_installaties, 0) <> COALESCE(rec.opdr_kosten_installaties, 0)
|
||||
THEN
|
||||
|
||||
v_errorhint := 'bijwerken kenmerkveld installaties' ;
|
||||
mld.upsertmeldingkenmerk (1364, rec.mld_melding_key, COALESCE(rec.opdr_kosten_installaties, 0));
|
||||
|
||||
v_tracking := 1;
|
||||
|
||||
END IF;
|
||||
|
||||
IF COALESCE(rec.mld_kosten_gebouw, 0) <> COALESCE(rec.opdr_kosten_gebouw, 0)
|
||||
THEN
|
||||
|
||||
v_errorhint := 'bijwerken kenmerkveld gebouw' ;
|
||||
mld.upsertmeldingkenmerk (1366, rec.mld_melding_key, COALESCE(rec.opdr_kosten_gebouw, 0));
|
||||
|
||||
v_tracking := 1;
|
||||
|
||||
END IF;
|
||||
|
||||
IF COALESCE(rec.mld_kosten_buitenruimtes, 0) <> COALESCE(rec.opdr_kosten_buitenruimtes, 0)
|
||||
THEN
|
||||
|
||||
v_errorhint := 'bijwerken kenmerkveld buitenruimtes' ;
|
||||
mld.upsertmeldingkenmerk (1363, rec.mld_melding_key, COALESCE(rec.opdr_kosten_buitenruimtes, 0));
|
||||
|
||||
v_tracking := 1;
|
||||
|
||||
END IF;
|
||||
|
||||
IF COALESCE(rec.mld_kosten_achterstallig_oh, 0) <> COALESCE(rec.opdr_kosten_achterstallig_oh, 0)
|
||||
THEN
|
||||
|
||||
v_errorhint := 'bijwerken kenmerkveld achterstallig onderhoud' ;
|
||||
mld.upsertmeldingkenmerk (1541, rec.mld_melding_key, COALESCE(rec.opdr_kosten_achterstallig_oh, 0));
|
||||
|
||||
v_tracking := 1;
|
||||
|
||||
END IF;
|
||||
|
||||
IF COALESCE(rec.mld_kosten_inspectie, 0) <> COALESCE(rec.opdr_kosten_inspectie, 0)
|
||||
THEN
|
||||
|
||||
v_errorhint := 'bijwerken kenmerkveld inspectie' ;
|
||||
mld.upsertmeldingkenmerk (1365, rec.mld_melding_key, COALESCE(rec.opdr_kosten_inspectie, 0));
|
||||
|
||||
v_tracking := 1;
|
||||
|
||||
END IF;
|
||||
|
||||
-- Totale OVERIGE kosten - zijn kosten die niet op een hoofdcategorie geboekt zijn..
|
||||
IF COALESCE(rec.mld_kosten_overig, 0) <> COALESCE(rec.opdr_kosten_totaal_overig, 0)
|
||||
THEN
|
||||
|
||||
v_errorhint := 'bijwerken kenmerkveld kosten overig' ;
|
||||
mld.upsertmeldingkenmerk (1561, rec.mld_melding_key, COALESCE(rec.opdr_kosten_totaal_overig, 0));
|
||||
|
||||
v_tracking := 1;
|
||||
|
||||
END IF;
|
||||
|
||||
-- Kosten afgerond
|
||||
IF COALESCE(rec.mld_kosten_totaal_afgerond, 0) <> COALESCE(rec.opdr_kosten_afgerond, 0)
|
||||
THEN
|
||||
|
||||
v_errorhint := 'bijwerken kenmerkveld kosten_totaal_afgerond' ;
|
||||
mld.upsertmeldingkenmerk (1581, rec.mld_melding_key, COALESCE(rec.opdr_kosten_afgerond, 0));
|
||||
|
||||
v_tracking_afgerond := 1;
|
||||
|
||||
END IF;
|
||||
|
||||
-- Kosten TOTAAL
|
||||
IF COALESCE(rec.mld_kosten_totaal, 0) <> rec.opdr_kosten_totaal
|
||||
THEN
|
||||
|
||||
v_errorhint := 'bijwerken kenmerkveld kosten totaal' ;
|
||||
mld.upsertmeldingkenmerk (1367, rec.mld_melding_key, rec.opdr_kosten_totaal);
|
||||
|
||||
v_tracking := 1;
|
||||
|
||||
END IF;
|
||||
|
||||
-- logging fac_tracking
|
||||
IF v_tracking = 1
|
||||
THEN
|
||||
|
||||
BEGIN fac.trackaction('MLDUPD', rec.mld_melding_key, 3, NULL, 'Melding PR' || rec.mld_melding_key || ' is gewijzigd' || CHR(10) || 'Kosten totaal: ' || v_mld_kosten_totaal_init || ' --> ' || rec.opdr_kosten_totaal); END;
|
||||
|
||||
END IF;
|
||||
|
||||
IF v_tracking_afgerond = 1
|
||||
THEN
|
||||
|
||||
BEGIN fac.trackaction('MLDUPD', rec.mld_melding_key, 3, NULL, 'Melding PR' || rec.mld_melding_key || ' is gewijzigd' || CHR(10) || 'Kosten totaal (afgerond): ' || v_mld_kosten_totaal_afg_init || ' --> ' || rec.mld_kosten_totaal_afgerond); END;
|
||||
|
||||
END IF;
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.writelog (p_applname,
|
||||
'E',
|
||||
v_errormsg,
|
||||
v_aanduiding || ' - HINT: ' || v_errorhint);
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
-----------------------------------------------------------------------------------
|
||||
-- Systematiek Locatieleiders en Regiomanagers en Werkplekkoppelingen ---
|
||||
----- 1. Personenkaart vinlkboxen Cluster/Label - OUD - VERWIJDERD OKT 2023 ---
|
||||
@@ -3005,7 +3405,6 @@ AS
|
||||
melding_accpt_eenheid,
|
||||
(SELECT m.mld_melding_t_uitvoertijd.eenheid FROM mld_melding m WHERE m.mld_melding_key = y.melding_key)
|
||||
melding_werk_eenheid,
|
||||
1 aantal_meldingen,
|
||||
CASE WHEN LOWER(ms.melding_status_2) IN ('nieuw') THEN 1 ELSE 0 END
|
||||
aantal_mld_nieuw,
|
||||
CASE WHEN LOWER(ms.melding_status_2) IN ('niet opgelost') THEN 1 ELSE 0 END
|
||||
@@ -3105,6 +3504,9 @@ BEGIN
|
||||
blos_select_wp_loc_manager ('WP_LOC_MANAGER', SYSDATE);
|
||||
blos_select_wp_loc_regioman ('WP_LOC_REGIOMAN', SYSDATE);
|
||||
|
||||
-- job om de projectmeldingen te vullen met kosten per PR-hoofdcategorie
|
||||
blos_select_pr_kosten ('PR_KOSTEN', SYSDATE);
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user