1272 lines
56 KiB
SQL
1272 lines
56 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
-- Voor dbuser invullen: - indien script voor 1 klant is: 'AADS' (de klantcode, zoals vermeld in fac_version_cust)
|
|
-- - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group)
|
|
-- - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM'
|
|
-- Ook als het script gedraaid wordt voor de verkeerde cust wordt er een logfile gemaakt.
|
|
-- (dit in tegenstelling tot sample_xxxx.sql)
|
|
|
|
DEFINE thisfile = 'WSKO.SQL'
|
|
DEFINE dbuser = 'WSKO'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
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 ------
|
|
|
|
CREATE OR REPLACE PROCEDURE WSKO_IMPORT_BUDGETTERING(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR imp_csv
|
|
IS
|
|
SELECT fac_imp_csv_key fac_imp_csv_key,
|
|
fac_imp_csv_col01 locatie,
|
|
fac_imp_csv_col02 kostenplaats_nr,
|
|
fac_imp_csv_col03 kostengroep,
|
|
fac_imp_csv_col04 kostensoort,
|
|
fac_imp_csv_col05 periode,
|
|
fac_imp_csv_col06 budget,
|
|
fac_imp_csv_col07 omschrijving
|
|
FROM fac_imp_csv
|
|
WHERE fac_import_key=p_import_key
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
|
|
v_header_valid NUMBER;
|
|
v_prs_kostenplaats_key NUMBER;
|
|
v_prs_kostensoortgrp_key NUMBER;
|
|
v_prs_kostensoort_key NUMBER;
|
|
v_alg_gebouw_code VARCHAR2(20);
|
|
BEGIN
|
|
fac_import_file2csv(p_import_key);
|
|
v_header_valid:=0;
|
|
FOR rec IN imp_csv
|
|
LOOP
|
|
|
|
IF v_header_valid = 0
|
|
THEN
|
|
IF ( UPPER(rec.locatie) = 'LOCATIE'
|
|
AND UPPER(rec.kostenplaats_nr) = 'KOSTENPLAATS'
|
|
AND UPPER(rec.kostengroep) = 'KOSTENGROEP'
|
|
AND UPPER(rec.kostensoort) = 'KOSTENSOORT'
|
|
AND UPPER(rec.periode) = 'PERIODE'
|
|
AND UPPER(rec.budget) = 'BUDGET'
|
|
AND UPPER(rec.omschrijving) = 'OMSCHRIJVING')
|
|
THEN
|
|
v_header_valid:=1;
|
|
END IF;
|
|
ELSE
|
|
v_aanduiding:='Ophalen gebouw op basis van kostenplaats '||rec.kostenplaats_nr||' mislukt';
|
|
SELECT g.alg_gebouw_code
|
|
INTO v_alg_gebouw_code
|
|
FROM prs_kostenplaats p,
|
|
alg_gebouw g
|
|
WHERE p.prs_kostenplaats_nr=rec.kostenplaats_nr
|
|
AND g.prs_kostenplaats_key = p.prs_kostenplaats_key
|
|
AND g.alg_gebouw_naam LIKE ('%'||rec.locatie||'%')
|
|
AND p.prs_kostenplaats_verwijder IS NULL;
|
|
|
|
IF v_alg_gebouw_code IS NULL
|
|
THEN
|
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errorhint, 'Kan locatie niet 1-duidig bepalen');
|
|
END IF;
|
|
|
|
v_aanduiding:='Ophalen kostenplaats '||rec.kostenplaats_nr||' mislukt';
|
|
SELECT p.prs_kostenplaats_key
|
|
INTO v_prs_kostenplaats_key
|
|
FROM prs_kostenplaats p
|
|
WHERE p.prs_kostenplaats_nr=rec.kostenplaats_nr
|
|
AND p.prs_kostenplaats_verwijder IS NULL;
|
|
IF v_prs_kostenplaats_key IS NULL
|
|
THEN
|
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errorhint, 'Kan kostenplaats niet 1-duidig bepalen');
|
|
END IF;
|
|
|
|
v_aanduiding:='Ophalen kostengroep '||rec.kostengroep||' mislukt';
|
|
SELECT g.prs_kostensoortgrp_key
|
|
INTO v_prs_kostensoortgrp_key
|
|
FROM prs_kostensoortgrp g
|
|
WHERE g.prs_kostensoortgrp_oms=rec.kostengroep;
|
|
IF v_prs_kostensoortgrp_key IS NULL
|
|
THEN
|
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errorhint, 'Kan kostensoortgroep niet 1-duidig bepalen');
|
|
|
|
END IF;
|
|
|
|
|
|
v_aanduiding:='Ophalen kostensoort '||rec.kostensoort||' mislukt';
|
|
SELECT k.prs_kostensoort_key
|
|
INTO v_prs_kostensoort_key
|
|
FROM prs_kostensoort k
|
|
WHERE k.prs_kostensoort_upper=UPPER(rec.kostensoort)
|
|
AND k.prs_kostensoortgrp_key = v_prs_kostensoortgrp_key
|
|
AND k.prs_kostensoort_verwijder IS NULL;
|
|
IF v_prs_kostensoort_key IS NULL
|
|
THEN
|
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errorhint, 'Kan kostensoort niet 1-duidig bepalen');
|
|
|
|
END IF;
|
|
END IF;
|
|
|
|
|
|
END LOOP;
|
|
|
|
IF v_header_valid=0
|
|
THEN
|
|
fac.imp_writelog (p_import_key, 'E', 'Geen valide header gevonden', 'Header fout');
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE WSKO_UPDATE_BUDGETTERING(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR bdgt
|
|
IS
|
|
SELECT fac_imp_csv_key fac_imp_csv_key,
|
|
fac_imp_csv_col01 locatie,
|
|
fac_imp_csv_col02 kostenplaats_nr,
|
|
fac_imp_csv_col03 kostengroep,
|
|
fac_imp_csv_col04 kostensoort,
|
|
fac_imp_csv_col05 periode,
|
|
fac_imp_csv_col06 budget,
|
|
fac_imp_csv_col07 omschrijving
|
|
FROM fac_imp_csv
|
|
WHERE fac_import_key=p_import_key
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER:=0;
|
|
v_ongeldig NUMBER:=0;
|
|
|
|
v_ins_discipline_key NUMBER;
|
|
v_bgt_project_key NUMBER;
|
|
v_bgt_kostenrubriek_key NUMBER;
|
|
v_kostensoortgrp_key NUMBER;
|
|
v_kostensoort_key NUMBER;
|
|
v_kostenplaatsgrp_key NUMBER;
|
|
v_kostenplaats_key NUMBER;
|
|
v_budget NUMBER;
|
|
v_budget_nu NUMBER;
|
|
v_budget_key NUMBER;
|
|
v_periode_start DATE;
|
|
v_periode_eind DATE;
|
|
v_alg_gebouw_code VARCHAR(20);
|
|
v_alg_gebouw_naam VARCHAR(60);
|
|
v_fac_usrtab_key NUMBER;
|
|
v_fac_usrdata_key NUMBER;
|
|
BEGIN
|
|
|
|
|
|
BEGIN
|
|
v_aanduiding:='Ophalen budget project disciplne Investering budgettering mislukt';
|
|
SELECT ins_discipline_key
|
|
INTO v_ins_discipline_key
|
|
FROM ins_tab_discipline i
|
|
WHERE i.ins_discipline_module='BGT'
|
|
AND i.ins_discipline_omschrijving='Investering'
|
|
AND i.ins_discipline_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
INSERT
|
|
INTO ins_tab_discipline (ins_discipline_omschrijving,
|
|
ins_discipline_module,
|
|
ins_discipline_aanmaak,
|
|
ins_discipline_kpnverplicht)
|
|
VALUES ('Investering',
|
|
'BGT',
|
|
SYSDATE,
|
|
0)
|
|
RETURNING ins_discipline_key
|
|
INTO v_ins_discipline_key;
|
|
INSERT INTO bgt_disc_params (bgt_ins_discipline_key)
|
|
VALUES(v_ins_discipline_key );
|
|
END;
|
|
|
|
IF v_ins_discipline_key = NULL
|
|
THEN
|
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errorhint, 'Kan budget project disciplne niet 1-duidig bepalen of aanmaken');
|
|
v_ongeldig := 1;
|
|
ELSE
|
|
BEGIN
|
|
v_aanduiding:='Ophalen budget project Budgettering mislukt';
|
|
SELECT p.bgt_project_key
|
|
INTO v_bgt_project_key
|
|
FROM bgt_project p
|
|
WHERE p.bgt_project_code='Budgettering'
|
|
AND p.ins_discipline_key = v_ins_discipline_key
|
|
AND bgt_project_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
|
|
INSERT
|
|
INTO bgt_project (ins_discipline_key,
|
|
bgt_project_code,
|
|
bgt_project_omschrijving,
|
|
bgt_project_aanmaak)
|
|
VALUES (v_ins_discipline_key,
|
|
'Budgettering',
|
|
'Budgettering',
|
|
SYSDATE)
|
|
RETURNING bgt_project_key
|
|
INTO v_bgt_project_key;
|
|
END;
|
|
|
|
END IF;
|
|
|
|
IF v_bgt_project_key = NULL OR v_ongeldig=1
|
|
THEN
|
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errorhint, 'Kan project niet 1-duidig bepalen of aanmaken');
|
|
v_ongeldig := 1;
|
|
ELSE
|
|
FOR rec IN bdgt
|
|
LOOP
|
|
IF v_count>0
|
|
THEN
|
|
BEGIN
|
|
v_aanduiding:='Ophalen budget project Budgettering mislukt';
|
|
SELECT p.bgt_project_key
|
|
INTO v_bgt_project_key
|
|
FROM bgt_project p
|
|
WHERE p.bgt_project_code=rec.periode
|
|
AND p.ins_discipline_key = v_ins_discipline_key
|
|
AND bgt_project_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
|
|
INSERT
|
|
INTO bgt_project (ins_discipline_key,
|
|
bgt_project_code,
|
|
bgt_project_omschrijving,
|
|
bgt_project_aanmaak)
|
|
VALUES (v_ins_discipline_key,
|
|
rec.periode,
|
|
rec.periode,
|
|
SYSDATE)
|
|
RETURNING bgt_project_key
|
|
INTO v_bgt_project_key;
|
|
END;
|
|
|
|
|
|
v_aanduiding:='Ophalen locatie '||rec.locatie||' via kostenplaats '||rec.kostenplaats_nr||' is mislukt';
|
|
SELECT g.alg_gebouw_code , g.alg_gebouw_naam
|
|
INTO v_alg_gebouw_code, v_alg_gebouw_naam
|
|
FROM prs_kostenplaats p,
|
|
alg_gebouw g
|
|
WHERE p.prs_kostenplaats_nr=rec.kostenplaats_nr
|
|
AND g.PRS_KOSTENPLAATS_KEY = p.PRS_KOSTENPLAATS_KEY
|
|
AND LOWER(g.alg_gebouw_naam) LIKE LOWER('%'||rec.locatie||'%')
|
|
AND p.prs_kostenplaats_verwijder IS NULL;
|
|
BEGIN
|
|
v_aanduiding:='Ophalen budget project kostenrubriek '||v_alg_gebouw_code||' mislukt';
|
|
SELECT k.bgt_kostenrubriek_key
|
|
INTO v_bgt_kostenrubriek_key
|
|
FROM bgt_kostenrubriek k
|
|
WHERE k.bgt_project_key=v_bgt_project_key
|
|
AND k.bgt_kostenrubriek_code=v_alg_gebouw_code
|
|
AND k.bgt_kostenrubriek_oms=rec.kostenplaats_nr||'-'||SUBSTR(v_alg_gebouw_naam,1,55);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
|
|
INSERT
|
|
INTO bgt_kostenrubriek (bgt_project_key,
|
|
bgt_kostenrubriek_code,
|
|
bgt_kostenrubriek_oms)
|
|
VALUES (v_bgt_project_key,
|
|
v_alg_gebouw_code,
|
|
rec.periode||'-'||SUBSTR(v_alg_gebouw_naam,1,55))
|
|
RETURNING bgt_kostenrubriek_key
|
|
INTO v_bgt_kostenrubriek_key;
|
|
END;
|
|
|
|
v_aanduiding:='OPhalen kostenplaatsnr '||rec.kostenplaats_nr||' mislukt';
|
|
|
|
SELECT k.prs_kostenplaats_key, k.prs_kostenplaatsgrp_key
|
|
INTO v_kostenplaats_key, v_kostenplaatsgrp_key
|
|
FROM prs_kostenplaats k
|
|
WHERE k.prs_kostenplaats_nr=rec.kostenplaats_nr
|
|
AND k.prs_kostenplaats_verwijder IS NULL;
|
|
|
|
v_aanduiding:='OPhalen kostensoort en kostengroep '||rec.kostengroep||'-'||rec.kostensoort||' mislukt';
|
|
SELECT s.prs_kostensoort_key, s.prs_kostensoortgrp_key
|
|
INTO v_kostensoort_key, v_kostensoortgrp_key
|
|
FROM prs_kostensoort s, prs_kostensoortgrp g
|
|
WHERE UPPER(s.prs_kostensoort_oms)=UPPER(rec.kostensoort)
|
|
AND UPPER(g.prs_kostensoortgrp_oms)=UPPER(rec.kostengroep)
|
|
AND s.prs_kostensoortgrp_key=g.prs_kostensoortgrp_key
|
|
AND s.prs_kostensoort_verwijder IS NULL;
|
|
|
|
v_budget := fac.safe_to_number(REPLACE(rec.budget,'.',''));
|
|
|
|
v_periode_start := fac.safe_to_date('01-01-'||rec.periode,'DD-MM-YYYY');
|
|
v_periode_eind := fac.safe_to_date('31-12-'||rec.periode,'DD-MM-YYYY');
|
|
|
|
|
|
IF v_kostenplaats_key>0
|
|
AND v_kostenplaatsgrp_key>0
|
|
AND v_kostensoort_key>0
|
|
AND v_kostensoortgrp_key>0
|
|
AND v_budget>0
|
|
THEN
|
|
|
|
-- Eerst kijken of hij er al is
|
|
BEGIN
|
|
|
|
SELECT b.bgt_budget_key, b.bgt_budget_bedrag
|
|
INTO v_budget_key, v_budget_nu
|
|
FROM bgt_budget b
|
|
WHERE b.ins_discipline_key=v_ins_discipline_key
|
|
AND b.bgt_project_key=v_bgt_project_key
|
|
AND b.bgt_kostenrubriek_key=v_bgt_kostenrubriek_key
|
|
AND b.prs_kostensoortgrp_key=v_kostensoortgrp_key
|
|
AND b.prs_kostensoort_key= v_kostensoort_key
|
|
AND b.prs_kostenplaatsgrp_key=v_kostenplaatsgrp_key
|
|
AND b.prs_kostenplaats_key=v_kostenplaats_key
|
|
AND b.bgt_budget_begin= v_periode_start
|
|
AND b.bgt_budget_eind= v_periode_eind;
|
|
|
|
v_aanduiding := 'Aanpassen budget van '||rec.kostenplaats_nr||'-'||rec.kostengroep||'-'||rec.kostensoort||' van '||v_budget_nu|| '-> '||v_budget;
|
|
UPDATE bgt_budget b
|
|
SET b.bgt_budget_bedrag=v_budget
|
|
WHERE bgt_budget_key=v_budget_key;
|
|
|
|
fac.imp_writelog (p_import_key, 'I', v_aanduiding , 'Aanpassen budget bedrag');
|
|
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_aanduiding := 'Toevoegen budget van '||rec.kostenplaats_nr||'-'||rec.kostengroep||'-'||rec.kostensoort||' van '||v_budget;
|
|
INSERT
|
|
INTO bgt_budget(ins_discipline_key,
|
|
bgt_project_key,
|
|
bgt_kostenrubriek_key,
|
|
prs_kostensoortgrp_key,
|
|
prs_kostensoort_key,
|
|
prs_kostenplaatsgrp_key,
|
|
prs_kostenplaats_key,
|
|
bgt_budget_bedrag,
|
|
bgt_budget_begin,
|
|
bgt_budget_eind)
|
|
VALUES(v_ins_discipline_key,
|
|
v_bgt_project_key,
|
|
v_bgt_kostenrubriek_key,
|
|
v_kostensoortgrp_key,
|
|
v_kostensoort_key,
|
|
v_kostenplaatsgrp_key,
|
|
v_kostenplaats_key,
|
|
v_budget,
|
|
v_periode_start,
|
|
v_periode_eind)
|
|
RETURNING bgt_budget_key
|
|
INTO v_budget_key;
|
|
END;
|
|
|
|
|
|
BEGIN
|
|
v_aanduiding := 'Ophalen eigen tabel Budget_'||rec.periode||' is mislukt';
|
|
SELECT f.fac_usrtab_key
|
|
INTO v_fac_usrtab_key
|
|
FROM fac_usrtab f
|
|
WHERE f.fac_usrtab_naam='Budget_'||rec.periode
|
|
AND f.fac_usrtab_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_aanduiding := 'Toevoegen eigen tabel Budget_'||rec.periode||' is mislukt';
|
|
INSERT
|
|
INTO fac_usrtab (fac_usrtab_naam,fac_usrtab_omschrijving, fac_usrtab_aanmaak)
|
|
VALUES('BUDGET_'||rec.periode,'Omschrijving bij budgetten '||rec.periode, SYSDATE)
|
|
RETURNING fac_usrtab_key
|
|
INTO v_fac_usrtab_key;
|
|
END;
|
|
|
|
BEGIN
|
|
v_aanduiding := 'Ophalen budget omschrijving voor '||rec.kostenplaats_nr||'-'||rec.kostengroep||'-'||rec.kostensoort||' is mislukt';
|
|
SELECT fac_usrdata_key
|
|
INTO v_fac_usrdata_key
|
|
from fac_usrdata
|
|
where fac_usrdata_code = v_budget_key
|
|
AND fac_usrdata_verwijder IS NULL
|
|
AND fac_usrtab_key=v_fac_usrtab_key;
|
|
|
|
v_aanduiding := 'Updaten budget omschrijving voor '||rec.kostenplaats_nr||'-'||rec.kostengroep||'-'||rec.kostensoort||' is mislukt';
|
|
UPDATE fac_usrdata
|
|
SET fac_usrdata_omschr=SUBSTR(rec.omschrijving,1, 60),
|
|
fac_usrdata_omschr2= SUBSTR(rec.omschrijving,61,120)
|
|
WHERE fac_usrtab_key=v_fac_usrtab_key
|
|
AND fac_usrdata_code=v_budget_key
|
|
AND fac_usrdata_verwijder IS NULL;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
v_aanduiding := 'Toevoegen budget omschrijving voor '||rec.kostenplaats_nr||'-'||rec.kostengroep||'-'||rec.kostensoort||' is mislukt';
|
|
INSERT
|
|
INTO fac_usrdata (fac_usrdata_code,
|
|
fac_usrdata_upper,
|
|
fac_usrdata_aanmaak,
|
|
fac_usrdata_omschr,
|
|
fac_usrdata_omschr2,
|
|
fac_usrtab_key)
|
|
VALUES (v_budget_key,
|
|
v_budget_key,
|
|
SYSDATE,
|
|
SUBSTR(rec.omschrijving,1, 60),
|
|
SUBSTR(rec.omschrijving,61,120),
|
|
v_fac_usrtab_key);
|
|
|
|
END;
|
|
|
|
|
|
END IF;
|
|
END IF;
|
|
v_count:=v_count+1;
|
|
|
|
END LOOP;
|
|
END IF;
|
|
|
|
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE WSKO_IMPORT_BUDGET_USRDATA(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR imp_csv
|
|
IS
|
|
SELECT fac_imp_csv_key fac_imp_csv_key,
|
|
fac_imp_csv_col01 locatie,
|
|
fac_imp_csv_col02 kostenplaats_nr,
|
|
fac_imp_csv_col03 kostengroep,
|
|
fac_imp_csv_col04 kostensoort,
|
|
fac_imp_csv_col05 periode,
|
|
fac_imp_csv_col06 budget,
|
|
fac_imp_csv_col07 omschrijving
|
|
FROM fac_imp_csv
|
|
WHERE fac_import_key=p_import_key
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_error NUMBER;
|
|
|
|
v_header_valid NUMBER;
|
|
v_prs_kostenplaats_key NUMBER;
|
|
v_prs_kostensoortgrp_key NUMBER;
|
|
v_prs_kostensoort_key NUMBER;
|
|
v_fac_usrtab_key NUMBER;
|
|
v_alg_gebouw_code VARCHAR2(20);
|
|
v_budget NUMBER;
|
|
v_code VARCHAR2 (200);
|
|
BEGIN
|
|
fac_import_file2csv(p_import_key);
|
|
DELETE FROM fac_imp_usrdata;
|
|
COMMIT;
|
|
v_header_valid:=0;
|
|
v_error:=0;
|
|
v_prs_kostenplaats_key:=0;
|
|
v_prs_kostensoortgrp_key:=0;
|
|
v_prs_kostensoort_key:=0;
|
|
|
|
FOR rec IN imp_csv
|
|
LOOP
|
|
|
|
IF v_header_valid = 0
|
|
THEN
|
|
IF ( UPPER(rec.locatie) = 'LOCATIE'
|
|
AND UPPER(rec.kostenplaats_nr) = 'KPL'
|
|
AND UPPER(rec.kostengroep) = 'CATEGORIE'
|
|
AND UPPER(rec.kostensoort) = 'ITEM'
|
|
AND UPPER(rec.periode) = 'JAAR'
|
|
AND UPPER(rec.budget) = 'BEDRAG'
|
|
AND UPPER(rec.omschrijving) = 'OMSCHRIJVING')
|
|
THEN
|
|
v_header_valid:=1;
|
|
END IF;
|
|
ELSE
|
|
BEGIN
|
|
v_aanduiding:='Ophalen kostenplaats '||rec.kostenplaats_nr||' mislukt';
|
|
SELECT p.prs_kostenplaats_key
|
|
INTO v_prs_kostenplaats_key
|
|
FROM prs_kostenplaats p
|
|
WHERE p.prs_kostenplaats_nr=rec.kostenplaats_nr
|
|
AND p.prs_kostenplaats_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errorhint, 'Kan kostenplaats niet 1-duidig bepalen');
|
|
v_prs_kostenplaats_key:=0;
|
|
END;
|
|
|
|
BEGIN
|
|
v_aanduiding:='Ophalen kostengroep '||rec.kostengroep||' mislukt';
|
|
SELECT g.prs_kostensoortgrp_key
|
|
INTO v_prs_kostensoortgrp_key
|
|
FROM prs_kostensoortgrp g
|
|
WHERE g.prs_kostensoortgrp_oms=rec.kostengroep;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errorhint, 'Kan kostensoortgroep niet 1-duidig bepalen');
|
|
v_prs_kostensoortgrp_key:=0;
|
|
END;
|
|
|
|
BEGIN
|
|
v_aanduiding:='Ophalen kostensoort '||rec.kostensoort||' mislukt';
|
|
SELECT k.prs_kostensoort_key
|
|
INTO v_prs_kostensoort_key
|
|
FROM prs_kostensoort k
|
|
WHERE k.prs_kostensoort_upper=UPPER(rec.kostensoort)
|
|
AND k.prs_kostensoortgrp_key = v_prs_kostensoortgrp_key
|
|
AND k.prs_kostensoort_verwijder IS NULL;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errorhint, 'Kan kostensoort niet 1-duidig bepalen');
|
|
v_prs_kostensoort_key:=0;
|
|
END;
|
|
|
|
|
|
|
|
v_budget := fac.safe_to_number(REPLACE(REPLACE(rec.budget,'.',''),',','.'));
|
|
|
|
IF v_prs_kostenplaats_key >0
|
|
AND v_prs_kostensoortgrp_key>0
|
|
AND v_prs_kostensoort_key>0
|
|
THEN
|
|
v_code:= TO_CHAR(v_prs_kostenplaats_key)||'_'||TO_CHAR(v_prs_kostensoortgrp_key)||'_'||TO_CHAR(v_prs_kostensoort_key);
|
|
fac.imp_writelog (p_import_key, 'I', 'BUDGET_'||rec.periode||'-'||
|
|
v_code||'-'||v_budget,'');
|
|
INSERT into fac_imp_usrdata (fac_usrtab_naam,
|
|
fac_usrdata_code,
|
|
fac_usrdata_omschr,
|
|
fac_usrdata_omschr2,
|
|
fac_usrdata_prijs,
|
|
fac_usrdata_vervaldatum)
|
|
VALUES( 'BUDGET_'||rec.periode,
|
|
v_code,
|
|
SUBSTR(rec.omschrijving,1,60),
|
|
SUBSTR(rec.omschrijving,61,120),
|
|
v_budget,
|
|
fac.safe_to_date('31-12-'||rec.periode,'DD-MM-YYYY')
|
|
);
|
|
END IF;
|
|
END IF;
|
|
END LOOP;
|
|
|
|
IF v_header_valid=0
|
|
THEN
|
|
fac.imp_writelog (p_import_key, 'E', 'Geen valide header gevonden', 'Header fout');
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE WSKO_UPDATE_BUDGET_USRDATA(p_import_key IN NUMBER)
|
|
AS
|
|
BEGIN
|
|
fac_update_usrdata(p_import_key);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE WSKO_IMPORT_MJOB(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR obj
|
|
IS
|
|
SELECT fac_imp_csv_key fac_imp_csv_key,
|
|
fac_imp_csv_col01 locatie_oms,
|
|
fac_imp_csv_col02 locatie_code,
|
|
fac_imp_csv_col03 ins_discipline_oms,
|
|
fac_imp_csv_col04 ins_groep_oms,
|
|
fac_imp_csv_col05 ins_srtdeel_code,
|
|
fac_imp_csv_col06 ins_srtdeel_oms,
|
|
fac_imp_csv_col07 ins_deel_omschrijving,
|
|
fac_imp_csv_col08 ins_deel_bouwjaar,
|
|
fac_imp_csv_col09 ins_deel_aantal,
|
|
fac_imp_csv_col10 ins_srtgroep_eenheid,
|
|
fac_imp_csv_col11 taak_omschrijving,
|
|
fac_imp_csv_col12 taak_opmerking,
|
|
fac_imp_csv_col13 taak_cyclus,
|
|
fac_imp_csv_col14 taak_datum,
|
|
fac_imp_csv_col15 taak_kosten
|
|
FROM fac_imp_csv
|
|
WHERE fac_import_key=p_import_key
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
|
|
v_ins_deel_key NUMBER;
|
|
v_ins_discipline_key NUMBER;
|
|
v_ins_srtgroep_key NUMBER;
|
|
v_ins_srtdeel_key NUMBER;
|
|
v_alg_locatie_key NUMBER;
|
|
v_alg_ruimte_key NUMBER;
|
|
v_prs_kostenplaats_key NUMBER;
|
|
v_aantal NUMBER;
|
|
v_bouwjaar DATE;
|
|
v_count NUMBER;
|
|
v_count_new NUMBER;
|
|
v_error NUMBER;
|
|
|
|
|
|
BEGIN
|
|
fac_import_file2csv(p_import_key);
|
|
v_count:=0;
|
|
|
|
v_error:=0;
|
|
FOR rec in obj
|
|
LOOP
|
|
IF rec.locatie_oms<>'Locatie'
|
|
THEN
|
|
v_error:=0;
|
|
v_aanduiding:='Fout bij ophalen ruimte voor object '||rec.ins_deel_omschrijving;
|
|
|
|
BEGIN
|
|
SELECT alg_ruimte_key, a.alg_locatie_key, g.prs_kostenplaats_key
|
|
INTO v_alg_ruimte_key, v_alg_locatie_key , v_prs_kostenplaats_key
|
|
FROM alg_v_allonrgoed_gegevens a, alg_locatie l, alg_gebouw g
|
|
WHERE l.alg_locatie_code=rec.locatie_code
|
|
AND a.alg_locatie_key = l.alg_locatie_key
|
|
AND a.alg_gebouw_code=rec.locatie_code
|
|
AND a.alg_verdieping_code='0'
|
|
AND a.alg_ruimte_nr='0.00'
|
|
AND g.alg_gebouw_key = a.alg_gebouw_key;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
v_alg_ruimte_key:=-1;
|
|
END;
|
|
|
|
v_errorhint:='Taak wordt overgeslagen.';
|
|
IF rec.ins_deel_omschrijving IS NULL OR LENGTH(rec.ins_deel_omschrijving)=0
|
|
THEN
|
|
v_aanduiding := 'Geen valide object omschrijving bij object:'||rec.ins_deel_omschrijving;
|
|
v_error:=1;
|
|
END IF;
|
|
IF rec.taak_omschrijving IS NULL OR LENGTH(TRIM(rec.taak_omschrijving))=0
|
|
THEN
|
|
v_aanduiding := 'Geen valide taak omschrijving bij object:'||rec.ins_deel_omschrijving;
|
|
v_error:=1;
|
|
END IF;
|
|
IF rec.taak_cyclus IS NULL OR LENGTH(rec.taak_cyclus)=0
|
|
THEN
|
|
v_aanduiding := 'Geen valide taak cyclus.'||rec.ins_deel_omschrijving;
|
|
v_error:=1;
|
|
END IF;
|
|
IF rec.taak_datum IS NULL OR LENGTH(rec.taak_datum)<4
|
|
THEN
|
|
v_aanduiding := 'Geen valide startdatum taak.'||rec.ins_deel_omschrijving;
|
|
v_error:=1;
|
|
END IF;
|
|
IF rec.taak_kosten IS NULL OR LENGTH(rec.taak_kosten)=0
|
|
THEN
|
|
v_aanduiding := 'Geen valide taak kosten.'||rec.ins_deel_omschrijving;
|
|
v_error:=1;
|
|
END IF;
|
|
|
|
IF v_error=0
|
|
AND v_alg_ruimte_key>0
|
|
THEN
|
|
|
|
BEGIN
|
|
SELECT i.ins_deel_key
|
|
INTO v_ins_deel_key
|
|
FROM ins_deel i
|
|
WHERE i.ins_alg_ruimte_key=v_alg_ruimte_key
|
|
AND i.ins_alg_locatie_key=v_alg_locatie_key
|
|
AND i.ins_deel_omschrijving = rec.ins_deel_omschrijving
|
|
AND i.ins_deel_verwijder IS NULL;
|
|
|
|
UPDATE fac_imp_csv
|
|
SET fac_imp_csv_col50=v_ins_deel_key, fac_imp_csv_col51=v_prs_kostenplaats_key
|
|
WHERE fac_imp_csv_key = rec.fac_imp_csv_key;
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
'Object '|| rec.ins_deel_omschrijving||' niet gevonden.',
|
|
v_errorhint);
|
|
END;
|
|
ELSE
|
|
fac.imp_writelog (p_import_key,
|
|
'W',
|
|
v_aanduiding,
|
|
v_errorhint);
|
|
END IF;
|
|
ELSE
|
|
DELETE
|
|
FROM fac_imp_csv
|
|
WHERE fac_imp_csv_key=rec.fac_imp_csv_key;
|
|
COMMIT;
|
|
END IF;
|
|
END LOOP;
|
|
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE WSKO_UPDATE_MJOB(p_import_key IN NUMBER)
|
|
AS
|
|
CURSOR obj
|
|
IS
|
|
SELECT fac_imp_csv_key fac_imp_csv_key,
|
|
fac_imp_csv_col01 locatie_oms,
|
|
fac_imp_csv_col02 locatie_code,
|
|
fac_imp_csv_col03 ins_discipline_oms,
|
|
fac_imp_csv_col04 ins_groep_oms,
|
|
fac_imp_csv_col05 ins_srtdeel_code,
|
|
fac_imp_csv_col06 ins_srtdeel_oms,
|
|
fac_imp_csv_col07 ins_deel_omschrijving,
|
|
fac_imp_csv_col08 ins_deel_bouwjaar,
|
|
fac_imp_csv_col09 ins_deel_aantal,
|
|
fac_imp_csv_col10 ins_srtgroep_eenheid,
|
|
fac_imp_csv_col11 taak_omschrijving,
|
|
fac_imp_csv_col12 taak_opmerking,
|
|
fac_imp_csv_col13 taak_cyclus,
|
|
fac_imp_csv_col14 taak_datum,
|
|
fac_imp_csv_col15 taak_kosten,
|
|
fac_imp_csv_col50 ins_deel_key,
|
|
fac_imp_csv_col51 prs_kostenplaats_key
|
|
FROM fac_imp_csv
|
|
WHERE fac_import_key=p_import_key
|
|
AND fac_imp_csv_col50 IS NOT NULL
|
|
ORDER BY fac_imp_csv_key;
|
|
|
|
|
|
v_errormsg VARCHAR2 (1000);
|
|
v_errorhint VARCHAR2 (1000);
|
|
v_aanduiding VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
|
|
v_srtkenmerk_doc NUMBER;
|
|
v_ins_srtcontrole_niveau VARCHAR2(1);
|
|
v_taakcat_key NUMBER;
|
|
v_srtcontrole_key NUMBER;
|
|
v_srtcontroledl_xcp_key NUMBER;
|
|
v_eenheid NUMBER;
|
|
v_default_eenheid NUMBER;
|
|
v_deel_key NUMBER;
|
|
v_taak_datum DATE;
|
|
v_taak_cyclus NUMBER;
|
|
v_taak_default_cyclus NUMBER;
|
|
v_taak_kosten NUMBER;
|
|
v_ins_srtdeel_key NUMBER;
|
|
v_aantal NUMBER;
|
|
v_count_new NUMBER;
|
|
v_count_update NUMBER;
|
|
BEGIN
|
|
v_ins_srtcontrole_niveau:='S';
|
|
v_count_new:=0;
|
|
v_count_update:=0;
|
|
|
|
|
|
BEGIN
|
|
SELECT ins_srtkenmerk_key
|
|
INTO v_srtkenmerk_doc
|
|
FROM ins_srtkenmerk i
|
|
WHERE i.ins_srtkenmerk_code='DOCUMENTEN'
|
|
AND i.ins_srtkenmerk_verwijder IS NULL;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_srtkenmerk_doc:=-1;
|
|
END;
|
|
|
|
FOR rec IN obj
|
|
LOOP
|
|
IF rec.locatie_oms<>'Locatie'
|
|
THEN
|
|
v_deel_key := rec.ins_deel_key;
|
|
v_eenheid:=4;
|
|
v_default_eenheid:=4;
|
|
|
|
v_errormsg :='Ophalen objctsoort';
|
|
SELECT i.ins_srtdeel_key
|
|
INTO v_ins_srtdeel_key
|
|
FROM ins_deel i
|
|
WHERE i.ins_deel_key=v_deel_key;
|
|
|
|
|
|
v_errormsg :='Ophalen taakcetegorie '||rec.taak_omschrijving;
|
|
-- Gaan we eerst check of er onderhoud controles zijn
|
|
SELECT i.ins_discipline_key
|
|
INTO v_taakcat_key
|
|
FROM ins_tab_discipline i , ctr_disc_params p
|
|
WHERE i.ins_discipline_module='CTR'
|
|
AND UPPER(i.ins_discipline_omschrijving) = UPPER('MJOB FACILITAIR')
|
|
AND i.ins_discipline_verwijder IS NULL
|
|
AND p.ctr_ins_discipline_key=i.ins_discipline_key;
|
|
|
|
v_taak_default_cyclus:=0;
|
|
v_taak_datum := fac.safe_to_date('01-01-'||rec.taak_datum,'DD-MM-YYYY');
|
|
|
|
v_aanduiding:='Ophalen srtcontrole'||rec.taak_omschrijving;
|
|
BEGIN
|
|
SELECT ins_srtcontrole_key
|
|
INTO v_srtcontrole_key
|
|
FROM ins_srtcontrole
|
|
where ins_srtinstallatie_key=v_ins_srtdeel_key
|
|
AND ins_srtcontrole_niveau=v_ins_srtcontrole_niveau
|
|
AND UPPER(ins_srtcontrole_omschrijving) = UPPER(SUBSTR(rec.taak_omschrijving,0,60))
|
|
AND ins_srtcontrole_periode=v_taak_default_cyclus
|
|
AND ins_srtcontrole_eenheid=v_default_eenheid
|
|
AND ins_srtcontrole_mode=1
|
|
AND ctr_discipline_key=v_taakcat_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
-- ins_srtcontrole is er niet dus maken we hem aan,
|
|
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
|
|
ins_srtcontrole_niveau,
|
|
ins_srtcontrole_omschrijving,
|
|
ins_srtcontrole_periode,
|
|
ins_srtcontrole_eenheid,
|
|
ins_srtcontrole_mode,
|
|
ctr_discipline_key
|
|
)
|
|
VALUES (v_ins_srtdeel_key,
|
|
v_ins_srtcontrole_niveau,
|
|
SUBSTR(rec.taak_omschrijving,0,60),
|
|
v_taak_default_cyclus,
|
|
v_default_eenheid,
|
|
1,
|
|
v_taakcat_key
|
|
)
|
|
RETURNING ins_srtcontrole_key
|
|
INTO v_srtcontrole_key;
|
|
IF v_srtkenmerk_doc>0 THEN
|
|
INSERT INTO ins_kenmerk (
|
|
ins_srtkenmerk_key,
|
|
ins_srtinstallatie_key,
|
|
ins_kenmerk_niveau,
|
|
ins_kenmerk_bewerkniveau,
|
|
ins_kenmerk_groep,
|
|
ins_kenmerk_volgnummer,
|
|
ins_kenmerk_hint,
|
|
ins_kenmerk_omschrijving
|
|
)
|
|
VALUES (
|
|
v_srtkenmerk_doc,
|
|
v_srtcontrole_key,
|
|
'C',
|
|
'D',
|
|
0,
|
|
10,
|
|
'',
|
|
'Documenten'
|
|
);
|
|
END IF;
|
|
END;
|
|
IF LENGTH(rec.taak_cyclus)>0 THEN
|
|
v_taak_cyclus:=fac.safe_to_number(rec.taak_cyclus);
|
|
ELSE
|
|
v_taak_cyclus:= v_taak_default_cyclus;
|
|
END IF;
|
|
IF LENGTH(rec.ins_deel_aantal)>0
|
|
THEN
|
|
v_aantal:=fac.safe_to_number(rec.ins_deel_aantal);
|
|
ELSE
|
|
v_aantal:=1;
|
|
END IF;
|
|
IF LENGTH(rec.taak_kosten)>0
|
|
THEN
|
|
v_taak_kosten:=COALESCE(fac.safe_to_number(REPLACE(rec.taak_kosten,'.','')),0)/v_aantal;
|
|
ELSE
|
|
v_taak_kosten:=0;
|
|
END IF;
|
|
|
|
BEGIN
|
|
SELECT ins_srtcontroledl_xcp_key
|
|
INTO v_srtcontroledl_xcp_key
|
|
FROM ins_srtcontroledl_xcp
|
|
WHERE ins_deel_key=v_deel_key
|
|
AND ins_srtcontrole_key=v_srtcontrole_key;
|
|
--AND ins_srtcontroledl_xcp_eenheid=v_eenheid;
|
|
|
|
-- we hebben een xcp record dan updaten we nu alleen de startdatum
|
|
UPDATE ins_srtcontroledl_xcp
|
|
SET INS_SRTCONTROLEDL_XCP_STARTDAT=v_taak_datum,
|
|
ins_srtcontroledl_xcp_periode=v_taak_cyclus,
|
|
ins_srtcontroledl_xcp_kosten=v_taak_kosten,
|
|
ins_srtcontroledl_xcp_eenheid=v_eenheid
|
|
WHERE ins_srtcontroledl_xcp_key = v_srtcontroledl_xcp_key;
|
|
v_count_update:=v_count_update+1;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
-- Er is nog geen XCP record dus maken we er 1 met de verwachte startdatum
|
|
INSERT INTO ins_srtcontroledl_xcp
|
|
(ins_srtcontrole_key,
|
|
ins_deel_key,
|
|
ins_srtcontroledl_xcp_eenheid,
|
|
ins_srtcontroledl_xcp_aantal,
|
|
ins_srtcontroledl_xcp_kosten,
|
|
ins_srtcontroledl_xcp_periode,
|
|
ins_srtcontroledl_xcp_startdat,
|
|
prs_kostenplaats_key)
|
|
VALUES (v_srtcontrole_key,
|
|
v_deel_key,
|
|
v_eenheid,
|
|
v_aantal,
|
|
v_taak_kosten,
|
|
v_taak_cyclus,
|
|
v_taak_datum,
|
|
rec.prs_kostenplaats_key);
|
|
v_count_new:=v_count_new+1;
|
|
END;
|
|
END IF;
|
|
END LOOP;
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Nieuw aangemaakte taken :'||v_count_new,
|
|
v_errorhint);
|
|
fac.imp_writelog (p_import_key,
|
|
'I',
|
|
'Geupdate taken taken :'||v_count_update,
|
|
v_errorhint);
|
|
|
|
END;
|
|
/
|
|
-- EINDE Import functies
|
|
|
|
|
|
|
|
|
|
-- Rapportage VIEWS
|
|
|
|
-- Budget view gebaseerd op de userdata
|
|
CREATE OR REPLACE VIEW WSKO_V_BUDGETUSRDATA
|
|
AS
|
|
SELECT (SUBSTR (fud.fac_usrdata_code,
|
|
0,
|
|
INSTR (fud.fac_usrdata_code, '_') - 1)) prs_kostenplaats_key,
|
|
(SUBSTR (fud.FAC_USRDATA_CODE,
|
|
INSTR (fud.fac_usrdata_code, '_',1,1)+1,
|
|
INSTR (fud.fac_usrdata_code, '_',1,2)-INSTR (fud.fac_usrdata_code, '_',1,1)-1)) prs_kostengroep_key,
|
|
(SUBSTR (fud.FAC_USRDATA_CODE,
|
|
INSTR (fud.fac_usrdata_code, '_',1,2)+1,
|
|
LENGTH(fud.FAC_USRDATA_CODE)-INSTR (fud.fac_usrdata_code, '_',1,2))) prs_kostensoort_key,
|
|
fud.fac_usrdata_omschr||fud.fac_usrdata_omschr2 bgt_budget_omschrijving,
|
|
fud.fac_usrdata_prijs bgt_budget_bedrag,
|
|
TRUNC(fud.fac_usrdata_vervaldatum) bgt_budget_eind,
|
|
TO_DATE('01-01-'||TO_CHAR(TRUNC(fud.fac_usrdata_vervaldatum),'YYYY'),'DD-MM-YYYY') bgt_budget_begin,
|
|
TO_CHAR(TRUNC(fud.fac_usrdata_vervaldatum),'YYYY') bgt_budget_jaar
|
|
FROM fac_usrdata fud,
|
|
fac_usrtab ft
|
|
WHERE REGEXP_LIKE(UPPER(ft.fac_usrtab_naam), 'BUDGET_[0-9]{1,4}$')
|
|
AND fud.fac_usrtab_key = ft.fac_usrtab_key;
|
|
|
|
CREATE OR REPLACE VIEW wsko_v_budgetuitnutting
|
|
AS
|
|
SELECT x.*,
|
|
budget - COALESCE (opdracht_gefact, opdracht_uitv, offerte) budget_res
|
|
FROM (SELECT kp.prs_kostenplaats_nr,
|
|
kp.prs_kostenplaats_key,
|
|
kp.prs_perslid_key,
|
|
(SELECT prs_perslid_naam_friendly
|
|
FROM prs_v_perslid_fullnames p
|
|
WHERE p.prs_perslid_key=kp.prs_perslid_key) budgethouder,
|
|
g.alg_gebouw_naam,
|
|
ksg.prs_kostensoortgrp_key,
|
|
ksg.prs_kostensoortgrp_oms,
|
|
ks.prs_kostensoort_key,
|
|
ks.prs_kostensoort_oms,
|
|
b.bgt_budget_bedrag budget,
|
|
b.bgt_budget_jaar budget_jaar,
|
|
b.bgt_budget_begin,
|
|
b.bgt_budget_eind,
|
|
b.bgt_budget_omschrijving,
|
|
(SELECT SUM (opdr_kost)
|
|
FROM ( SELECT AVG (mld_opdr_kosten) opdr_kost
|
|
FROM mld_opdr o, mld_typeopdr ot
|
|
WHERE o.prs_kostenplaats_key =
|
|
kp.prs_kostenplaats_key
|
|
AND o.prs_kostensoort_key =
|
|
ks.prs_kostensoort_key
|
|
AND o.mld_typeopdr_key = ot.MLD_TYPEOPDR_KEY
|
|
AND UPPER(ot.mld_typeopdr_omschrijving)='OFFERTE INVESTERING'
|
|
AND ot.mld_typeopdr_isofferte=1
|
|
AND o.mld_statusopdr_key IN (5,
|
|
6,
|
|
7,
|
|
8,
|
|
9)
|
|
AND o.mld_opdr_datumbegin BETWEEN b.bgt_budget_begin AND b.bgt_budget_eind
|
|
GROUP BY o.mld_melding_key)) offerte,
|
|
(SELECT SUM (mld_opdr_kosten)
|
|
FROM mld_opdr o, mld_typeopdr ot
|
|
WHERE o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
AND o.prs_kostensoort_key = ks.prs_kostensoort_key
|
|
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
|
AND UPPER(ot.mld_typeopdr_omschrijving)='INVESTERINGS OPDRACHT'
|
|
AND o.mld_statusopdr_key IN (5, 6, 8)
|
|
AND o.mld_opdr_datumbegin BETWEEN b.bgt_budget_begin AND b.bgt_budget_eind) opdracht_uitv,
|
|
(SELECT SUM (mld_opdr_kosten)
|
|
FROM mld_opdr o, mld_typeopdr ot
|
|
WHERE o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
AND o.prs_kostensoort_key = ks.prs_kostensoort_key
|
|
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
|
AND UPPER(ot.mld_typeopdr_omschrijving)='INVESTERINGS OPDRACHT'
|
|
AND o.mld_statusopdr_key = 9
|
|
AND o.mld_opdr_datumbegin BETWEEN b.bgt_budget_begin AND b.bgt_budget_eind) opdracht_gefact
|
|
FROM WSKO_V_BUDGETUSRDATA b,
|
|
-- bgt_budget b,
|
|
-- bgt_project p,
|
|
-- bgt_kostenrubriek kr,
|
|
prs_kostenplaats kp,
|
|
prs_kostensoort ks,
|
|
prs_kostensoortgrp ksg,
|
|
alg_gebouw g
|
|
WHERE kp.prs_kostenplaats_key = b.prs_kostenplaats_key
|
|
AND ks.prs_kostensoort_key = b.prs_kostensoort_key
|
|
AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
|
AND g.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
|
) x;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW wsko_v_budgetuitn_detail
|
|
(
|
|
prs_kostenplaats_key,
|
|
prs_kostenplaats_nr,
|
|
prs_kostensoortgrp_key,
|
|
prs_kostensoortgrp_oms,
|
|
prs_kostensoort_key,
|
|
prs_kostensoort_oms,
|
|
mld_opdr_nr,
|
|
mld_opdr_key,
|
|
opdr_status,
|
|
opdracht_soort,
|
|
omschrijving,
|
|
offerte_bedrag,
|
|
opdracht_bedrag
|
|
)
|
|
AS
|
|
SELECT k.prs_kostenplaats_key,
|
|
k.prs_kostenplaats_nr,
|
|
ksg.prs_kostensoortgrp_key,
|
|
ksg.prs_kostensoortgrp_oms,
|
|
ks.prs_kostensoort_key,
|
|
ks.prs_kostensoort_oms,
|
|
o.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr mld_opdr_nr,
|
|
o.mld_opdr_key,
|
|
so.mld_statusopdr_omschrijving,
|
|
CASE
|
|
WHEN ot.mld_typeopdr_isofferte = 1
|
|
THEN 'Offerte'
|
|
ELSE 'Opdracht'
|
|
END opdracht_soort,
|
|
TO_CHAR (m.mld_melding_omschrijving) omschrijving,
|
|
CASE
|
|
WHEN ot.mld_typeopdr_isofferte = 1
|
|
THEN mld_opdr_kosten
|
|
ELSE 0
|
|
END offerte_bedrag,
|
|
CASE
|
|
WHEN ot.mld_typeopdr_isofferte = 0
|
|
THEN mld_opdr_kosten
|
|
ELSE 0
|
|
END opdracht_bedrag
|
|
FROM mld_opdr o,
|
|
prs_kostenplaats k,
|
|
prs_kostensoort ks,
|
|
prs_kostensoortgrp ksg,
|
|
mld_melding m,
|
|
mld_typeopdr ot,
|
|
mld_statusopdr so
|
|
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key
|
|
AND ks.prs_kostensoort_key = o.prs_kostensoort_key
|
|
AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
|
AND m.mld_melding_key = o.mld_melding_key
|
|
AND ot.mld_typeopdr_key = o.mld_typeopdr_key
|
|
AND so.mld_statusopdr_key = o.mld_statusopdr_key;
|
|
|
|
CREATE OR REPLACE VIEW WSKO_V_INOPSLAG
|
|
(
|
|
ins_deel_key,
|
|
discipline,
|
|
groep,
|
|
soort,
|
|
ins_deel_omschrijving,
|
|
ins_deel_opmerking,
|
|
mld_url
|
|
)
|
|
AS
|
|
SELECT i.ins_deel_key,
|
|
d.ins_discipline_omschrijving,
|
|
isg.ins_srtgroep_omschrijving,
|
|
isd.ins_srtdeel_omschrijving,
|
|
i.ins_deel_omschrijving,
|
|
i.ins_deel_opmerking,
|
|
'appl/mld/mld_melding.asp?urole=fe'||CHR(38)||'mld_defaultstdmelding='||msm.mld_stdmelding_key ||CHR(38)||'ins_key='||i.INS_DEEL_KEY mld_url
|
|
FROM alg_ruimte a,
|
|
alg_srtruimte sr,
|
|
ins_deel i,
|
|
ins_srtdeel isd,
|
|
ins_srtgroep isg,
|
|
ins_discipline d,
|
|
mld_stdmelding msm
|
|
WHERE a.alg_srtruimte_key = sr.alg_srtruimte_key
|
|
AND sr.alg_srtruimte_code='OPSLAG_MEU'
|
|
AND i.ins_alg_ruimte_key=a.alg_ruimte_key
|
|
AND i.ins_deel_verwijder IS NULL
|
|
AND ( i.ins_deel_vervaldatum IS NULL
|
|
OR i.ins_deel_vervaldatum > SYSDATE)
|
|
AND isd.ins_srtdeel_key = i.ins_srtdeel_key
|
|
AND isg.Ins_srtgroep_key = isd.ins_srtgroep_key
|
|
AND d.ins_discipline_key = isg.ins_discipline_key
|
|
AND msm.mld_stdmelding_code='UITOPSLAG'
|
|
AND i.ins_deel_key NOT IN (SELECT mo.ins_deel_key
|
|
FROM mld_melding m ,
|
|
mld_stdmelding ms,
|
|
mld_melding_object mo
|
|
WHERE m.mld_stdmelding_key=ms.mld_stdmelding_key
|
|
AND ms.mld_stdmelding_code='UITOPSLAG'
|
|
AND mo.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_melding_status IN (0,2,3,4));
|
|
|
|
|
|
CREATE OR REPLACE VIEW WSKO_V_INOPSLAG_MOB
|
|
(
|
|
html_ins,
|
|
discipline,
|
|
groep,
|
|
soort,
|
|
ins_deel_omschrijving,
|
|
ins_deel_opmerking,
|
|
html_link
|
|
)
|
|
AS
|
|
SELECT '<a class="details" href="'||'../../appl/pda/ins_deel.asp?ins_key='||i.ins_deel_key||'">Bekijk '||i.ins_deel_omschrijving||'</a>' html_ins_link,
|
|
d.ins_discipline_omschrijving,
|
|
isg.ins_srtgroep_omschrijving,
|
|
isd.ins_srtdeel_omschrijving,
|
|
i.ins_deel_omschrijving,
|
|
i.ins_deel_opmerking,
|
|
'<a class="details" href="'||'../../appl/pda/melding.asp?mld_key=-1'||CHR(38)||'start_key=-1'||CHR(38)||'disc_key='||CHR(38)||'zoom=2'||CHR(38)||'urole=fe'||CHR(38)||'stdm_key='||msm.mld_stdmelding_key ||CHR(38)||'ins_key='||i.INS_DEEL_KEY||'">Deze wil ik</a>' mld_url_mob
|
|
FROM alg_ruimte a,
|
|
alg_srtruimte sr,
|
|
ins_deel i,
|
|
ins_srtdeel isd,
|
|
ins_srtgroep isg,
|
|
ins_discipline d,
|
|
mld_stdmelding msm
|
|
WHERE a.alg_srtruimte_key = sr.alg_srtruimte_key
|
|
AND sr.alg_srtruimte_code='OPSLAG_MEU'
|
|
AND i.ins_alg_ruimte_key=a.alg_ruimte_key
|
|
AND i.ins_deel_verwijder IS NULL
|
|
AND ( i.ins_deel_vervaldatum IS NULL
|
|
OR i.ins_deel_vervaldatum > SYSDATE)
|
|
AND isd.ins_srtdeel_key = i.ins_srtdeel_key
|
|
AND isg.Ins_srtgroep_key = isd.ins_srtgroep_key
|
|
AND d.ins_discipline_key = isg.ins_discipline_key
|
|
AND msm.mld_stdmelding_code='UITOPSLAG'
|
|
AND i.ins_deel_key NOT IN (SELECT mo.ins_deel_key
|
|
FROM mld_melding m ,
|
|
mld_stdmelding ms,
|
|
mld_melding_object mo
|
|
WHERE m.mld_stdmelding_key=ms.mld_stdmelding_key
|
|
AND ms.mld_stdmelding_code='UITOPSLAG'
|
|
AND mo.mld_melding_key = m.mld_melding_key
|
|
AND m.mld_melding_status IN (0,2,3,4));
|
|
|
|
|
|
-- EINDE rapportage views
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|