Files
Customer/AA/aaxx.sql
Arthur Egberink fa092bd270 AALB#20839
svn path=/Customer/trunk/; revision=14842
2011-06-23 08:13:26 +00:00

6240 lines
249 KiB
SQL

-- Script containing customer generic configuration sql statements for AAFM
-- (c) 2009 SG|facilitor
-- $Revision: 79 $
-- $Modtime: 23-06-11 10:11 $
--
-- Support: +31 53 4800710
-- tijdelijke aanpassing voor labels op bestelopdrachtbon!!!!!!!!!!!!!!!!!
update fac_locale_xsl set fac_locale_xsl_tekst = 'Alle bedragen zijn exclusief BTW' where fac_locale_xsl_module = 'BES' and FAC_LOCALE_XSL_LANG = 'NL' and FAC_LOCALE_XSL_LABEL = 'inclusief';
update fac_locale_xsl set fac_locale_xsl_tekst = 'All prices exclude VAT' where fac_locale_xsl_module = 'BES' and FAC_LOCALE_XSL_LANG = 'EN' and FAC_LOCALE_XSL_LABEL = 'inclusief';
@@aa_prs_pack.sql;
--=============================================================================
-- EXPORTFUNCTIES GENERIEK
-------------------------------------------------------------------------------
CREATE OR REPLACE FUNCTION aaxx_exp_escape (a VARCHAR2) RETURN VARCHAR2
AS
BEGIN
RETURN replace(a, '"', '''');
END aaxx_exp_escape;
/
CREATE OR REPLACE FUNCTION aaxx_get_user
RETURN VARCHAR2
AS
v_user VARCHAR2 (20);
BEGIN
v_user := SUBSTR (USER, 1, 4);
IF v_user = 'AABT' THEN RETURN 'BT'; END IF;
IF v_user = 'AACE' THEN RETURN 'CE'; END IF;
IF v_user = 'AADO' THEN RETURN 'DOW'; END IF;
IF v_user = 'AADS' THEN RETURN 'DSM'; END IF;
IF v_user = 'AAEN' THEN RETURN 'ENEXIS'; END IF;
IF v_user = 'AAFP' THEN RETURN 'FPC'; END IF;
IF v_user = 'AAIT' THEN RETURN 'IT'; END IF;
IF v_user = 'AALB' THEN RETURN 'LB'; END IF;
IF v_user = 'AANS' THEN RETURN 'NS'; END IF;
IF v_user = 'AANX' THEN RETURN 'NXP'; END IF;
IF v_user = 'AASA' THEN RETURN 'SABIC'; END IF;
RETURN '';
END aaxx_get_user;
/
CREATE OR REPLACE FUNCTION aaxx_get_kenmerkwaarde (
p_kenmerk_type VARCHAR2,
p_ref_objectnaam VARCHAR2,
p_ref_kolomnaam VARCHAR2,
p_ref_kolomtxt VARCHAR2,
p_fac_usrtab_key NUMBER,
p_kenmerk_waarde VARCHAR2)
RETURN VARCHAR2
AS
v_result VARCHAR2(2000);
sql_stmt VARCHAR2(2000);
BEGIN
IF p_kenmerk_type = 'R' OR p_kenmerk_type = 'S' THEN
sql_stmt :='SELECT MIN('
|| p_ref_kolomtxt
|| ')'
|| ' FROM '
|| p_ref_objectnaam
|| ' WHERE '
|| p_ref_kolomnaam
|| ' = '
|| p_kenmerk_waarde;
EXECUTE IMMEDIATE sql_stmt INTO v_result;
ELSIF p_kenmerk_type = 'D' THEN
v_result := TO_CHAR (fac.safe_to_date (p_kenmerk_waarde, 'dd-mm-yyyy'), 'yyyy-mm-dd');
ELSE
v_result := p_kenmerk_waarde;
END IF;
return v_result;
END aaxx_get_kenmerkwaarde;
/
CREATE OR REPLACE FUNCTION aaxx_get_cnt_cont_plaats_index (p_contract_plaats_key number
)
RETURN NUMBER
AS
CURSOR c (c_cnt_contract_key number)
IS
SELECT cnt_contract_plaats_key
FROM cnt_contract_plaats
WHERE cnt_contract_key = c_cnt_contract_key
ORDER BY cnt_contract_plaats_key;
v_contract_key NUMBER (10);
v_index NUMBER (10);
BEGIN
v_index := 1;
SELECT cnt_contract_key
INTO v_contract_key
FROM cnt_contract_plaats
WHERE cnt_contract_plaats_key = p_contract_plaats_key;
FOR rec IN c(v_contract_key)
LOOP
IF rec.cnt_contract_plaats_key = p_contract_plaats_key
THEN
RETURN (v_index);
END IF;
v_index := v_index + 1;
END LOOP;
END;
/
CREATE OR REPLACE FUNCTION aaxx_get_dep_oms (p_prs_kostenplaats_nr VARCHAR2) RETURN VARCHAR2
AS
v_result VARCHAR2(100);
BEGIN
v_result := 'Onbekend - ' || p_prs_kostenplaats_nr;
BEGIN
SELECT prs_afdeling_omschrijving
INTO v_result
FROM prs_v_aanwezigafdeling a, prs_kostenplaats k
WHERE niveau = 1
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
AND k.prs_kostenplaats_nr = p_prs_kostenplaats_nr;
RETURN v_result;
EXCEPTION WHEN NO_DATA_FOUND
THEN
BEGIN
SELECT prs_afdeling_omschrijving
INTO v_result
FROM prs_v_aanwezigafdeling a, prs_kostenplaats k
WHERE niveau = 2
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
AND k.prs_kostenplaats_nr = p_prs_kostenplaats_nr;
RETURN v_result;
EXCEPTION WHEN OTHERS
THEN
RETURN v_result;
END;
END;
END aaxx_get_dep_oms;
/
CREATE OR REPLACE FUNCTION aaxx_get_dep_code (p_prs_kostenplaats_nr VARCHAR2) RETURN VARCHAR2
AS
v_result VARCHAR2(100);
BEGIN
v_result := 'Onbekend - ' || p_prs_kostenplaats_nr;
BEGIN
SELECT prs_afdeling_naam
INTO v_result
FROM prs_v_aanwezigafdeling a, prs_kostenplaats k
WHERE niveau = 1
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
AND k.prs_kostenplaats_nr = p_prs_kostenplaats_nr;
RETURN v_result;
EXCEPTION WHEN NO_DATA_FOUND
THEN
BEGIN
SELECT prs_afdeling_naam
INTO v_result
FROM prs_v_aanwezigafdeling a, prs_kostenplaats k
WHERE niveau = 2
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
AND k.prs_kostenplaats_nr = p_prs_kostenplaats_nr;
RETURN v_result;
EXCEPTION WHEN OTHERS
THEN
RETURN v_result;
END;
END;
END aaxx_get_dep_code;
/
CREATE OR REPLACE FUNCTION aaxx_bestelling_items (bes_key IN NUMBER)
RETURN VARCHAR2
IS
lret VARCHAR2 (512);
lfirst NUMBER;
llast NUMBER;
CURSOR items
IS
SELECT TO_CHAR (bi.bes_bestelling_item_aantal)
|| 'x '
|| s.bes_srtdeel_omschrijving /* lcl.x()?*/
|| ' ('
|| s.bes_srtdeel_eenheid
|| ') ' besitemdsc
FROM bes_bestelling_item bi, bes_srtdeel s
WHERE bi.bes_srtdeel_key = s.bes_srtdeel_key
AND bi.bes_bestelling_key = bes_key;
BEGIN
lret := NULL;
lfirst := 0;
llast := 0;
FOR besitem_rec IN items
LOOP
IF lfirst = 0
THEN
BEGIN
lret := besitem_rec.besitemdsc;
lfirst := 1;
END;
ELSE
IF llast = 0
THEN
IF LENGTH (lret) + LENGTH (besitem_rec.besitemdsc) < (512 - 5)
THEN
lret := lret || CHR (10) || besitem_rec.besitemdsc;
ELSE
lret := lret || CHR (10) || '...';
llast := 1;
END IF;
END IF;
END IF;
END LOOP;
RETURN lret;
END;
/
CREATE OR REPLACE PROCEDURE aaxx_export_login (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
INSERT INTO aaxx_perslid_login
(prs_perslid_key, login_datum)
(SELECT prs_perslid_key, prs_perslid_login
FROM prs_perslid
WHERE TRUNC (prs_perslid_login) = TRUNC (SYSDATE));
END;
/
--=============================================================================
-- EXPORTFUNCTIES EXACT
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - Export exact
-------------------------------------------------------------------------------
-- fin_kenmerk_key 2 is de keuze of dit de laatste factuur van de opdracht is.
CREATE OR REPLACE VIEW aaxx_v_factuur_gegevens (
fin_factuur_key,
opdracht_id,
fin_factuur_datum,
fin_factuur_nr,
prs_bedrijf_key,
fin_factuurregel_totaal,
fin_factuurregel_btw,
fin_btwtabelwaarde_code,
fin_factuurregel_nr,
fin_factuur_debiteur_nr,
fin_factuur_opmerking,
fin_factuur_boekmaand,
opdr_datum,
laatste_factuur,
project_nummer,
prs_kostensoort_refcode,
vk_prs_kostensoort_refcode,
prs_kostensoort_key,
prs_kostenplaats_key,
mld_opdr_key,
cnt_contract_key,
bes_bestelopdr_key,
fin_factuur_statuses_key,
lev_kpn
)
AS
SELECT f.fin_factuur_key,
DECODE (c.cnt_contract_key, null,
DECODE (bo.bes_bestelopdr_key, null,
(SELECT sd.ins_srtdiscipline_prefix
|| m.mld_melding_key
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr
FROM mld_melding m,
mld_stdmelding std,
ins_tab_discipline d,
ins_srtdiscipline sd
WHERE m.mld_melding_key = o.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key)
, bo.bes_bestelopdr_id)
, 'C' || TO_CHAR (cnt_contract_nummer_intern)
)
opdracht_id,
DECODE (to_char(f.fin_factuur_datum, 'yyyy'),
'2010', to_date('20110102', 'YYYYMMDD'),
f.fin_factuur_datum),
f.fin_factuur_nr,
COALESCE (b_c.prs_bedrijf_key, COALESCE(b_o.prs_bedrijf_key, b_b.prs_bedrijf_key)) prs_bedrijf_key,
fr.fin_factuurregel_totaal,
round(fr.fin_factuurregel_totaal*btw.fin_btwtabelwaarde_perc/100,2) fin_factuurregel_btw,
btw.fin_btwtabelwaarde_code,
fr.fin_factuurregel_nr,
f.fin_factuur_debiteur_nr,
f.fin_factuur_opmerking,
f.fin_factuur_boekmaand,
coalesce (o.mld_opdr_datumbegin, coalesce(c.cnt_contract_looptijd_tot, bo.bes_bestelopdr_datum)),
COALESCE ( (SELECT fac.safe_to_number (fac_usrdata_code)
FROM fin_kenmerkfactuur fk, fac_usrdata ud
WHERE fk.fin_factuur_key = f.fin_factuur_key
AND fk.fin_kenmerk_key = 2
AND fac.safe_to_number (fin_kenmerkfactuur_waarde) =
fac_usrdata_key),
1
),
TO_CHAR (DECODE (ot.mld_typeopdr_omschrijving,
'Projectorder', ( (SELECT aaxx_get_user || sd.ins_srtdiscipline_prefix
|| m.mld_melding_key
FROM mld_melding m,
mld_stdmelding std,
ins_tab_discipline d,
ins_srtdiscipline sd
WHERE m.mld_melding_key =
o.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key =
d.ins_discipline_key
AND d.ins_srtdiscipline_key =
sd.ins_srtdiscipline_key)),
NULL)
)
projectnummer,
DECODE (aaxx_get_user,
'BT', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
'2010', DECODE ( substr(prs_kostensoort_upper, instr(prs_kostensoort_upper, ' ')+1),
'C', '1350822',
'NC', '1350823',
'P', '1350823',
'Onbekend'),
k.prs_kostensoort_refcode),
'CE', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'VA', '1350822' ,
'GM', '1350822' ,
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
'Workorder', '1350823',
'Onbekend'),
'Onbekend'),
k.prs_kostensoort_refcode),
'DSM', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
'2010', DECODE (substr(k.prs_kostensoort_upper,1,3), 'ST ', '1350822' ,
'STB', '1350822' ,
'AS ', '1350822' ,
'AE ', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
'Workorder', '1350823',
'Onbekend'),
'Onbekend'),
k.prs_kostensoort_refcode),
'DOW', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '1350822' ,
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
'Workorder', '1350823',
'Onbekend'),
'Onbekend'),
k.prs_kostensoort_refcode),
'LB', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '1350822' ,
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1350817',
'Workorder', '1350823',
'Onbekend'),
'Onbekend'),
k.prs_kostensoort_refcode),
'NS', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
'2009', DECODE (substr(k.prs_kostensoort_upper,1,2), 'PR', '1350819' , '1350818'),
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'PR', '1350817' ,
'MW', '1350823' ,
'1350822'),
k.prs_kostensoort_refcode),
k.prs_kostensoort_refcode),
DECODE (aaxx_get_user,
'CE', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'VA', '1033301' ,
'GM', 'nvt' ,
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1033302',
'Workorder', '1033304',
'Onbekend'),
'Onbekend'),
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'VA', '8210531' ,
'GM', 'nvt' ,
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '8110555',
'Workorder', '8210532',
'Onbekend'),
'Onbekend'),
'Onbekend'),
'DOW', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '1033301' ,
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1033302',
'Workorder', '1033304',
'Onbekend'),
'Onbekend'),
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'CO', '8210530' ,
'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '8110555',
'Workorder', '8210532',
'Onbekend'),
'Onbekend'),
'Onbekend'),
'LB', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
'2010', DECODE (substr(k.prs_kostensoort_upper,1,2), 'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '1033302',
'Workorder', '1033304',
'Onbekend'),
'Onbekend'),
'2011', DECODE (substr(k.prs_kostensoort_upper,1,2), 'NC', DECODE (ot.mld_typeopdr_omschrijving, 'Projectorder', '8110555',
'Workorder', '8210532',
'Onbekend'),
'Onbekend'),
'Onbekend'),
'DSM', DECODE (coalesce (to_char(o.mld_opdr_datumbegin, 'yyyy'), to_char(c.cnt_contract_looptijd_tot,'yyyy')),
'2010', DECODE (substr(k.prs_kostensoort_upper,1,3), 'ST ', '8110521' ,
'STB', '8110521' ,
'AS ', '8110521' ,
'AE ', '8110542'),
'2011', '8' || substr(prs_kostensoort_refcode,2,10),
prs_kostensoort_refcode),
'Onbekend') vk_prs_kostensoort_refcode,
k.prs_kostensoort_key,
COALESCE(o.prs_kostenplaats_key,
COALESCE(c.prs_kostenplaats_key,
(SELECT DISTINCT b.prs_kostenplaats_key
FROM bes_bestelling b,
bes_bestelopdr_item boi,
bes_bestelling_item bi
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key)
)
),
o.mld_opdr_key,
c.cnt_contract_key,
bo.bes_bestelopdr_key,
fin_factuur_statuses_key,
lk.prs_kostenplaats_nr lev_kpn
FROM fin_factuur f,
fin_factuurregel fr,
fin_btwtabelwaarde btw,
mld_opdr o,
mld_typeopdr ot,
cnt_contract c,
bes_bestelopdr bo,
prs_bedrijf b_o,
prs_bedrijf b_c,
prs_bedrijf b_b,
prs_kostensoort k,
prs_kostenplaats lk
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key
AND f.mld_opdr_key = o.mld_opdr_key(+)
AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+)
AND f.cnt_contract_key = c.cnt_contract_key(+)
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
AND bo.prs_bedrijf_key = b_b.prs_bedrijf_key(+)
AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+)
AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+)
AND f.prs_kostensoort_key = k.prs_kostensoort_key(+)
AND k.prs_kostenplaats_key = lk.prs_kostenplaats_key(+);
CREATE OR REPLACE VIEW aaxx_v_export_exact (
result,
result_order,
lev_kpn
)
AS
SELECT REPLACE(REPLACE( regelnummer
|| ','
|| dagb_type
|| ','
|| dagbknr
|| ','
|| periode
|| ','
|| bkjcode
|| ','
|| bkstnr
|| ','
|| oms25
|| ','
|| datum
|| ','
|| empty9
|| ','
|| debnr
|| ','
|| crdnr
|| ','
|| empty12
|| ','
|| bedrag
|| ','
|| drbk_in_val
|| ','
|| valcode
|| ','
|| koers
|| ','
|| kredbep
|| ','
|| bdrkredbep
|| ','
|| vervdatfak
|| ','
|| vervdatkrd
|| ','
|| empty21
|| ','
|| empty22
|| ','
|| weeknummer
|| ','
|| betaalref
|| ','
|| betwijze
|| ','
|| grek_bdr
|| ','
|| empty27
|| ','
|| empty28
|| ','
|| empty29
|| ','
|| empty30
|| ','
|| empty31
|| ','
|| transsubtype
|| ','
|| empty33
|| ','
|| empty34
|| ','
|| empty35
|| ','
|| empty36
|| ','
|| empty37
|| ','
|| empty38
|| ','
|| projectnr
|| ','
|| empty40,CHR (13), ''), CHR (10), '<ret>'),
(10000000 + bkstnr) * 100 + regelnummer,
lev_kpn
FROM (SELECT 0 regelnummer,
'I' dagb_type,
'42' dagbknr,
'' periode,
'' bkjcode,
TO_CHAR (fin_factuur_key) bkstnr,
opdracht_id || ' - ' || replace(substr(fin_factuur_opmerking,1,30),',','') oms25,
TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
'' empty9,
'' debnr,
(SELECT prs_leverancier_nr
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
crdnr,
'' empty12,
REPLACE (TO_CHAR (bedrag), ',', '.') bedrag,
'' drbk_in_val,
'' valcode,
'' koers,
'' kredbep,
'' bdrkredbep,
'' vervdatfak,
'' vervdatkrd,
'' empty21,
'' empty22,
'' weeknummer,
fin_factuur_nr || '/' || fin_factuur_debiteur_nr betaalref,
'' betwijze,
'' grek_bdr,
'' empty27,
'' empty28,
'' empty29,
'' empty30,
'' empty31,
'' transsubtype,
'' empty33,
'' empty34,
'' empty35,
'' empty36,
'' empty37,
'' empty38,
'' projectnr,
'!' empty40,
lev_kpn
FROM (SELECT fin_factuur_key,
opdracht_id,
fin_factuur_datum,
fin_factuur_nr,
prs_bedrijf_key,
fin_factuur_debiteur_nr,
fin_factuur_opmerking,
SUM (fin_factuurregel_totaal + fin_factuurregel_btw)
bedrag,
lev_kpn
FROM aaxx_v_factuur_gegevens
WHERE fin_factuur_statuses_key = 6
GROUP BY fin_factuur_key,
opdracht_id,
fin_factuur_datum,
fin_factuur_nr,
prs_bedrijf_key,
fin_factuur_debiteur_nr,
fin_factuur_opmerking,
lev_kpn) fg
UNION ALL
SELECT fin_factuurregel_nr regelnummer,
'I' dagb_type,
'42' dagbknr,
'' periode,
'' bkjcode,
TO_CHAR (fin_factuur_key) boekstuknummer,
opdracht_id || ' - ' || replace(substr(fin_factuur_opmerking,1,30),',','') oms25,
TO_CHAR (fin_factuur_datum, 'ddmmyyyy') datum,
prs_kostensoort_refcode reknr,
'' debnr,
(SELECT prs_leverancier_nr
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = fg.prs_bedrijf_key)
crdnr,
'' empty12,
REPLACE (TO_CHAR (fin_factuurregel_totaal), ',', '.') bedrag,
'' drbk_in_val,
'' val_code,
'' koers,
'' kredbep,
'' bdrkredbep,
'' vervdatfak,
'' vervdatkrd,
fin_btwtabelwaarde_code btw_code,
REPLACE (TO_CHAR (fin_factuurregel_btw), ',', '.') btw_bdr,
'' weeknummer,
'' empty24,
'' empty25,
'' empty26,
DECODE (aaxx_get_user, 'IT', DECODE (lev_kpn, '2000700', ( DECODE (fg.mld_opdr_key, NULL, 'KP00770015',
( SELECT COALESCE (alg_onrgoedkenmerk_waarde, alg_gebouw_code)
FROM mld_opdr o,
mld_melding m,
alg_v_onroerendgoed og,
alg_gebouw g,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1021) ken
WHERE fg.mld_opdr_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.alg_gebouw_key = ken.alg_onrgoed_key(+)
)
)
)
, ( SELECT DECODE(SUBSTR(PRS_KOSTENPLAATS_NR, 1,1), '2', 'KP999999', PRS_KOSTENPLAATS_NR)
FROM prs_kostenplaats kp
WHERE kp.prs_kostenplaats_key = fg.prs_kostenplaats_key))
, 'CE', '02410001'
, 'LB', '02610001'
, 'FPC', '00780164'
, 'KP999999') kstplcode,
'KD999999' kstdrcode,
'' empty29,
'' empty30,
'' empty31,
'' transsubtype,
'' empty33,
'' empty34,
'' emtpy35,
'' empty36,
'' empty37,
'' empty38,
project_nummer projectnr,
'!' empty40,
lev_kpn
FROM aaxx_v_factuur_gegevens fg
WHERE fin_factuur_statuses_key = 6
ORDER BY bkstnr, regelnummer);
-- Procedure om alle facturen te exporteren naar exact.
-- Administratie geeft aan dat de export voor twee of meerdere gescheiden
-- administraties zal plaatsvinden.
CREATE OR REPLACE PROCEDURE aaxx_export_exact_adm (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2,
p_administratie IN VARCHAR2
)
AS
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- Bewaar de factuur keys in een tijdelijke tabel zodat bij het verwerken (nieuwe export)
-- deze keys gebruikt kunnen worden.
DELETE AAXX_EXP_FACTUUR WHERE COALESCE(p_administratie, 'GEEN') = COALESCE(administratie,'GEEN');
INSERT INTO AAXX_EXP_FACTUUR (fin_factuur_key, administratie)
( SELECT DISTINCT fin_factuur_key, p_administratie
FROM aaxx_v_factuur_gegevens
WHERE fin_factuur_statuses_key = 6
AND ( p_administratie IS NULL
OR
(p_administratie = 'FAC' AND lev_kpn = '2000700')
OR
(p_administratie = 'IT' AND COALESCE (lev_kpn, 'GEEN') <> '2000700')
)
);
END;
/
-- voor de niet AAIT accounts is de administratie niet belangrijk. Zij kunnen deze
-- procedure blijven aanroepen.
CREATE OR REPLACE PROCEDURE aaxx_export_exact (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_adm (p_applname, p_applrun, p_filedir, p_filename, null);
END;
/
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - Export exact verwerk
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_verwerk_exact (
result,
result_order
)
AS
SELECT REPLACE(REPLACE(f.fin_factuur_key
|| ';'
|| opdracht_id
|| ';'
|| fin_factuur_datum
|| ';'
|| fin_factuur_nr
|| ';'
|| prs_bedrijf_key
|| ';'
|| fin_factuurregel_totaal
|| ';'
|| fin_factuurregel_btw
|| ';'
|| fin_factuurregel_nr
|| ';'
|| fin_factuur_debiteur_nr
|| ';'
|| project_nummer
|| ';'
|| prs_kostensoort_refcode
|| ';'
|| mld_opdr_key
|| ';'
|| cnt_contract_key
,CHR (13), ''), CHR (10), '<ret>'), f.fin_factuur_key
FROM aaxx_exp_factuur f,
aaxx_v_factuur_gegevens fg
WHERE f.fin_factuur_key = fg.fin_factuur_key
AND fg.fin_factuur_statuses_key = 6;
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
CREATE OR REPLACE PROCEDURE aaxx_export_verwerk_exact_adm (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2,
p_administratie IN VARCHAR2
)
AS
CURSOR c_fact
IS
SELECT f.fin_factuur_key
FROM aaxx_exp_factuur f
, aaxx_v_factuur_gegevens fg
WHERE f.fin_factuur_key = fg.fin_factuur_key
AND fg.fin_factuur_statuses_key = 6
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
CURSOR c_opdr
IS
SELECT fg.mld_opdr_key, mld_statusopdr_key, m.mld_melding_status
FROM aaxx_exp_factuur f
, aaxx_v_factuur_gegevens fg
, mld_opdr o
, mld_melding m
WHERE f.fin_factuur_key = fg.fin_factuur_key
AND fg.mld_opdr_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND laatste_factuur = 1
AND fg.fin_factuur_statuses_key = 6
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
CURSOR c_bes
IS
SELECT bo.*
FROM aaxx_exp_factuur f
, aaxx_v_factuur_gegevens fg
, bes_bestelopdr bo
WHERE f.fin_factuur_key = fg.fin_factuur_key
AND fg.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND laatste_factuur = 1
AND fg.fin_factuur_statuses_key = 6
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanvrager NUMBER;
v_bestelling_key NUMBER;
v_logdate DATE;
BEGIN
v_errormsg := 'Geen akties';
-- Facilitor user
IF aaxx_get_user = 'DSM' THEN v_aanvrager := 6524; END IF;
IF aaxx_get_user = 'NS' THEN v_aanvrager := 4; END IF;
IF aaxx_get_user = 'ENEXIS' THEN v_aanvrager := 4; END IF;
IF aaxx_get_user = 'IT' THEN v_aanvrager := 4; END IF;
v_logdate := SYSDATE;
-- voeg SA en ST opdrachten toe aan de verkoopbuffer
-- BTW tarief in verkoopbuffer is altijd 19 procent (AADS#18338)
INSERT INTO aaxx_verkoopbuffer
(
module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw
)
SELECT 'MLD',
v_logdate,
DECODE (aaxx_get_user, 'DOW', aaxx_get_dep_code(k.prs_kostenplaats_nr),
'DSM', aaxx_get_dep_code(k.prs_kostenplaats_nr),
'CE', aaxx_get_dep_code(k.prs_kostenplaats_nr),
'LB', aaxx_get_dep_code(k.prs_kostenplaats_nr),
SUBSTR (prs_kostenplaats_nr, 1, 30)),
DECODE (aaxx_get_user, 'DOW', aaxx_get_dep_oms(k.prs_kostenplaats_nr),
'DSM', aaxx_get_dep_oms(k.prs_kostenplaats_nr),
'CE', aaxx_get_dep_oms(k.prs_kostenplaats_nr),
'LB', aaxx_get_dep_oms(k.prs_kostenplaats_nr),
SUBSTR(prs_kostenplaats_nr, 1, 30)),
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
ks.prs_kostensoort_opmerking,
vk_prs_kostensoort_refcode,
(SELECT prs_kostensoortgrp_oms FROM prs_kostensoortgrp ksg WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key),
sd.ins_srtdiscipline_prefix
|| m.mld_melding_key
|| '/'
|| mld_opdr_bedrijfopdr_volgnr
|| ' '
|| d.ins_discipline_omschrijving
|| ' ('
|| (SELECT MAX(mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 143 -- opdrachtnummer
AND km.mld_melding_key = m.mld_melding_key)
|| ')'
omschrijving,
ROUND (fg.bedrag
* COALESCE ( (SELECT u.uplift
FROM aaxx_imp_uplift u
WHERE u.prs_leverancier_nr = b.prs_leverancier_nr
AND UPPER(soort_order) = 'WO'
AND UPPER (u.prs_kostensoort_oms) =
ks.prs_kostensoort_upper
AND fg.fin_factuur_boekmaand =
u.jaar
|| '-'
|| LTRIM (TO_CHAR (u.maand, '00'))),
DECODE (aaxx_get_user, 'DSM', 1, 'NS', 1.065, 'CE', 1, 'DOW', 1, 'LB', 1)
),
2
),
0 btw, -- deprecated
fin_btwtabelwaarde_code,
to_char(opdr_datum, 'YYYY'),
COALESCE(exact_code, alg_gebouw_code)
FROM mld_opdr o,
mld_typeopdr ot,
prs_bedrijf b,
prs_kostenplaats k,
mld_melding m,
mld_stdmelding std,
ins_tab_discipline d,
ins_srtdiscipline sd,
prs_kostensoort ks,
aaxx_exp_factuur f,
alg_gebouw g,
alg_v_onroerendgoed og,
(SELECT alg_onrgoed_key alg_gebouw_key,
alg_onrgoedkenmerk_waarde exact_code
FROM alg_onrgoedkenmerk
WHERE alg_onrgoed_niveau = 'G' AND alg_kenmerk_key = 1009) exact,
(SELECT fin_factuur_key,
mld_opdr_key,
SUM (fin_factuurregel_totaal) bedrag,
19 btw,
4 fin_btwtabelwaarde_code,
prs_kostenplaats_key,
prs_kostensoort_key,
vk_prs_kostensoort_refcode,
fin_factuur_boekmaand,
opdr_datum,
fin_factuur_datum
FROM aaxx_v_factuur_gegevens
WHERE fin_factuur_statuses_key = 6
GROUP BY fin_factuur_key,
mld_opdr_key,
prs_kostenplaats_key,
prs_kostensoort_key,
fin_factuur_boekmaand,
opdr_datum,
fin_factuur_datum,
fin_factuurregel_btw,
fin_btwtabelwaarde_code,
vk_prs_kostensoort_refcode,
fin_factuurregel_totaal) fg
WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND fg.mld_opdr_key = o.mld_opdr_key
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
AND og.alg_gebouw_key = exact.alg_gebouw_key(+)
AND fg.fin_factuur_key = f.fin_factuur_key
AND o.mld_melding_key = m.mld_melding_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND (sd.ins_srtdiscipline_prefix = 'SA'
OR (ks.prs_kostensoort_upper LIKE 'ST ONDH%' -- DSM
AND ot.mld_typeopdr_omschrijving = 'Workorder')
OR (ks.prs_kostensoort_upper LIKE 'VAR%' -- CE
AND ot.mld_typeopdr_omschrijving = 'Workorder'))
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
-- voeg contract orders toe aan de verkoopbuffer
INSERT INTO aaxx_verkoopbuffer
(
module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw
)
SELECT 'CNT',
v_logdate,
DECODE (aaxx_get_user,
'LB',
aaxx_get_dep_code (k.prs_kostenplaats_nr),
'DOW',
aaxx_get_dep_code (k.prs_kostenplaats_nr),
'DSM',
aaxx_get_dep_code (k.prs_kostenplaats_nr),
'CE',
aaxx_get_dep_code (k.prs_kostenplaats_nr),
'NS',
SUBSTR (prs_kostenplaats_nr, 1, 30)
),
DECODE (aaxx_get_user,
'LB',
aaxx_get_dep_oms (k.prs_kostenplaats_nr),
'DOW',
aaxx_get_dep_oms (k.prs_kostenplaats_nr),
'DSM',
aaxx_get_dep_oms (k.prs_kostenplaats_nr),
'CE',
aaxx_get_dep_oms (k.prs_kostenplaats_nr),
'NS',
SUBSTR (prs_kostenplaats_nr, 1, 30)
),
ks.prs_kostensoort_oms || DECODE(TO_CHAR(opdr_datum,'YYYY'), TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))-1), ' VJ','') ,
ks.prs_kostensoort_opmerking,
vk_prs_kostensoort_refcode,
(SELECT prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key),
'C'
|| cnt_contract_nummer_intern
|| DECODE (cnt_contract_versie, NULL, '', '.' || cnt_contract_versie)
omschrijving,
DECODE (aaxx_get_user,
'LB', fg.bedrag,
'DOW', fg.bedrag,
'DSM', COALESCE((SELECT ROUND (fg.bedrag * u.uplift, 2)
FROM aaxx_imp_uplift u
WHERE u.prs_leverancier_nr = b.prs_leverancier_nr
AND UPPER (soort_order) = 'CO'
AND UPPER (u.prs_kostensoort_oms) = ks.prs_kostensoort_upper
AND fg.fin_factuur_boekmaand =
TO_CHAR (u.jaar) || '-' || LTRIM (TO_CHAR (u.maand, '00'))), fg.bedrag),
'CE', fg.bedrag,
'NS', ROUND (fg.bedrag * 1.065,2)),
0 btw, -- deprecated
fin_btwtabelwaarde_code,
to_char(opdr_datum, 'YYYY'),
(SELECT MIN (alg_gebouw_code)
FROM cnt_contract_plaats cp, alg_gebouw g
WHERE cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_contract_key = c.cnt_contract_key
AND cp.cnt_alg_plaats_code = 'G'
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key)
FROM cnt_contract c,
prs_bedrijf b,
prs_kostenplaats k,
ins_tab_discipline d,
prs_kostensoort ks,
aaxx_exp_factuur f,
(SELECT fin_factuur_key,
cnt_contract_key,
SUM (fin_factuurregel_totaal) bedrag,
fin_factuurregel_btw btw,
fin_btwtabelwaarde_code,
prs_kostenplaats_key,
prs_kostensoort_key,
vk_prs_kostensoort_refcode,
fin_factuur_boekmaand,
opdr_datum,
fin_factuur_datum
FROM aaxx_v_factuur_gegevens
WHERE fin_factuur_statuses_key = 6
GROUP BY fin_factuur_key,
cnt_contract_key,
prs_kostenplaats_key,
prs_kostensoort_key,
fin_factuur_boekmaand,
opdr_datum,
fin_factuur_datum,
fin_factuurregel_btw,
fin_btwtabelwaarde_code,
vk_prs_kostensoort_refcode,
fin_factuurregel_totaal) fg
WHERE fg.prs_kostenplaats_key = k.prs_kostenplaats_key
AND fg.cnt_contract_key = c.cnt_contract_key
AND fg.fin_factuur_key = f.fin_factuur_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.ins_discipline_key = d.ins_discipline_key
AND fg.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND ( ( aaxx_get_user = 'DSM' AND (ks.prs_kostensoort_upper LIKE 'AE%'
OR ks.prs_kostensoort_upper LIKE 'AS ONDH%'
OR ks.prs_kostensoort_upper LIKE 'ST ONDH%')
)
OR
( aaxx_get_user = 'CE' AND (ks.prs_kostensoort_upper LIKE 'VAR%')
)
OR
( aaxx_get_user = 'DOW'
)
)
AND COALESCE(f.administratie, 'GEEN') = COALESCE(p_administratie,'GEEN');
IF aaxx_get_user = 'CE' THEN
INSERT INTO aaxx_verkoopbuffer
(
module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw
)
SELECT module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'BASE FEE 2%', round(bedrag*0.02,2), btw, fin_btwtabelwaarde_code, opdr_jaar, 'X'
FROM aaxx_verkoopbuffer
WHERE export_datum = v_logdate
UNION ALL
SELECT module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'BASE FEE 4.75%', round(bedrag*0.0475,2), btw, fin_btwtabelwaarde_code, opdr_jaar, 'X'
FROM aaxx_verkoopbuffer
WHERE export_datum = v_logdate;
END IF;
IF aaxx_get_user = 'DOW' THEN
INSERT INTO aaxx_verkoopbuffer
(
module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw
)
SELECT module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'BASE FEE 3%', round(bedrag*0.03,2), btw, fin_btwtabelwaarde_code, opdr_jaar, 'X'
FROM aaxx_verkoopbuffer
WHERE export_datum = v_logdate
UNION ALL
SELECT module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'BASE FEE 0.5%', round(bedrag*0.005,2), btw, fin_btwtabelwaarde_code, opdr_jaar, 'X'
FROM aaxx_verkoopbuffer
WHERE export_datum = v_logdate;
END IF;
IF aaxx_get_user = 'LB' THEN
INSERT INTO aaxx_verkoopbuffer
(
module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw
)
SELECT module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'BASE FEE 2%', round(bedrag*0.02,2), btw, fin_btwtabelwaarde_code, opdr_jaar, 'X'
FROM aaxx_verkoopbuffer
WHERE export_datum = v_logdate
UNION ALL
SELECT module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, 'BASE FEE' || DECODE (instr(prs_kostensoort_oms, ' VJ'), 0 , '', ' VJ'), prs_kostensoort_opmerking, decode(substr(prs_kostensoort_refcode, 1,1), '8', '8210511', '1033305'), prs_kostensoortgrp_oms, 'BASE FEE 5,5%', round(bedrag*0.0055,2), btw, fin_btwtabelwaarde_code, opdr_jaar, 'X'
FROM aaxx_verkoopbuffer
WHERE export_datum = v_logdate;
END IF;
FOR rec1 IN c_bes
LOOP
BEGIN
-- indien nog niet afgemeld, dan maar even afmelden.
IF rec1.bes_bestelopdr_status = 3 THEN -- in behandeling
UPDATE bes_bestelopdr
SET bes_bestelopdr_status = 4
WHERE bes_bestelopdr_key= rec1.bes_bestelopdr_key
AND bes_bestelopdr_status = 3;
END IF;
IF rec1.bes_bestelopdr_status = 5 -- bevestigd
OR rec1.bes_bestelopdr_status = 4 -- in bestelling
OR rec1.bes_bestelopdr_status = 3 THEN
UPDATE bes_bestelopdr_item B
SET bes_bestelopdr_item_aantalontv = COALESCE(bes_bestelopdr_item_aantal, 0),
bes_bestelopdr_item_ontvangen = SYSDATE
WHERE b.bes_bestelopdr_key = rec1.bes_bestelopdr_key;
UPDATE bes_bestelling_item bi
SET bes_bestelling_item_aantalontv = COALESCE(bes_bestelling_item_aantal, 0)
WHERE EXISTS (SELECT bes_bestelopdr_key
FROM bes_bestelopdr_item boi
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND bes_bestelopdr_key = rec1.bes_bestelopdr_key);
SELECT distinct bes_bestelling_key
INTO v_bestelling_key
FROM bes_bestelling_item bi, bes_bestelopdr_item boi
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND bes_bestelopdr_key = rec1.bes_bestelopdr_key;
bes.updatebestelopdrstatus(rec1.bes_bestelopdr_key, v_aanvrager);
bes.updatebestellingstatus(v_bestelling_key, v_aanvrager);
END IF;
END;
END LOOP;
FOR rec1 IN c_opdr
LOOP
BEGIN
-- indien nog niet afgemeld, dan maar even afmelden.
IF rec1.mld_statusopdr_key <> 6 AND rec1.mld_statusopdr_key <> 7 AND rec1.mld_statusopdr_key <> 9 THEN
mld.setopdrachtstatus (rec1.mld_opdr_key, 6, v_aanvrager);
mld.setopdrachtstatus (rec1.mld_opdr_key, 9, v_aanvrager);
END IF;
UPDATE mld_opdr o
SET mld_opdr_kosten =
(SELECT SUM (fin_factuurregel_totaal)
FROM fin_factuur f
, fin_factuurregel fr
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND f.mld_opdr_key = o.mld_opdr_key
AND f.fin_factuur_statuses_key >= 6)
WHERE o.mld_opdr_key = rec1.mld_opdr_key
AND rec1.mld_melding_status IN (4, 5, 7); -- anders faalt de trigger sowieso
-- zet de status naar afgemeld (user is facilitor)
mld.setopdrachtstatus (rec1.mld_opdr_key, 7, v_aanvrager);
END;
END LOOP;
FOR rec1 IN c_fact
LOOP
BEGIN
UPDATE fin_factuur f
SET fin_factuur_statuses_key = 7
WHERE f.fin_factuur_key = rec1.fin_factuur_key;
fac.trackaction ('FINVER', rec1.fin_factuur_key, v_aanvrager, NULL, NULL);
END;
END LOOP;
END;
/
CREATE OR REPLACE PROCEDURE aaxx_export_verwerk_exact (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_verwerk_exact_adm (p_applname, p_applrun, p_filedir, p_filename, null);
END;
/
--=============================================================================
-- EXPORTFUNCTIES VERKOOPFACTUREN
-------------------------------------------------------------------------------
-- btw code is 19 procent als percentage is 19 of 0;
CREATE OR REPLACE VIEW aaxx_v_export_exact_verkoop_t (
result,
opdr_jaar,
result_order
)
AS
SELECT '0' || ',' || '3' || ',' || prs_kostenplaats_nr
|| ','
|| replace(prs_kostensoortgrp_oms, ',', '')
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| TO_CHAR (SYSDATE, 'ddmmyyyy')
|| ','
|| '1'
|| ','
|| ''
|| ','
|| ''
|| ','
|| DECODE(aaxx_get_user, 'LB', '02610001', 'DOW', '02510001', 'DSM', '02210001', 'CE', '02410001', 'NS',exact_code_gebouw)
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| 'EUR'
|| ','
|| ''
|| ','
|| DECODE(aaxx_get_user, 'LB', '60', 'DOW', '60', 'DSM', 'E9', 'NS','E6', 'CE', '45')
|| ','
|| '1'
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| TO_CHAR (0)
|| ','
|| TO_CHAR (0)
|| ','
|| TO_CHAR (0)
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| 'V'
|| ','
|| ''
|| ','
|| ''
|| ','
|| 'N'
|| ','
|| prs_kostenplaats_nr
|| ','
|| ''
|| ','
|| '',
opdr_jaar,
replace(prs_kostensoortgrp_oms, ',', '') || prs_kostenplaats_nr || '0'
FROM aaxx_verkoopbuffer
WHERE naar_exact IS NULL
GROUP BY replace(prs_kostensoortgrp_oms, ',', ''), prs_kostenplaats_nr, DECODE(aaxx_get_user, 'LB', '02610001', 'DOW', '02510001', 'DSM', '02210001','CE', '02410001', 'NS',exact_code_gebouw), opdr_jaar
UNION ALL
SELECT '1'
|| ','
|| '3'
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| '1'
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ' '
|| prs_kostensoort_oms
|| ','
|| 'V'
|| ','
|| replace(omschrijving, ',', '')
|| ','
|| '1'
|| ','
|| fin_btwtabelwaarde_code
|| ','
|| ''
|| ','
|| '0'
|| ','
|| REPLACE (TO_CHAR (sum(bedrag)), ',', '.')
|| ','
|| ''
|| ','
|| DECODE (aaxx_get_user, 'DSM', substr(prs_kostensoort_oms, 1, instr(prs_kostensoort_oms, ' ')-1)||prs_kostenplaats_nr,
'CE', DECODE (omschrijving, 'BASE FEE 2%', '999999', prs_kostenplaats_nr),
'DOW', DECODE (omschrijving, 'BASE FEE 3%', '999999', prs_kostenplaats_nr),
'LB', DECODE (omschrijving, 'BASE FEE 2%', '999999', prs_kostenplaats_nr),
prs_kostenplaats_nr)
|| ','
|| ''
|| ','
|| prs_kostensoort_refcode
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| ''
|| ','
|| exact_code_gebouw
|| ','
|| '',
opdr_jaar,
replace(prs_kostensoortgrp_oms, ',', '') || prs_kostenplaats_nr|| '1' || replace(omschrijving, ',', '')
FROM aaxx_verkoopbuffer
WHERE naar_exact IS NULL
GROUP BY replace(prs_kostensoortgrp_oms, ',', ''), omschrijving, replace(omschrijving, ',', ''), prs_kostenplaats_nr, exact_code_gebouw, prs_kostensoort_oms, fin_btwtabelwaarde_code, prs_kostensoort_refcode, opdr_jaar;
CREATE OR REPLACE VIEW aaxx_v_export_exact_verkoop (
result,
result_order
)
AS
SELECT result,
result_order
FROM aaxx_exp_exact_verkoop;
-- Voordat de verkoopfacturen naar Exact geexporteerd wordt moet de volgorde van de subregels gecorrigeerd worden
CREATE OR REPLACE PROCEDURE aaxx_select_exact_verkoop (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_opdr_jaar IN VARCHAR2
)
AS
CURSOR c1 IS
SELECT result, result_order
FROM aaxx_v_export_exact_verkoop_t
WHERE opdr_jaar = p_opdr_jaar
ORDER BY result_order;
v_first NUMBER;
v_count NUMBER;
BEGIN
v_count := 0;
DELETE aaxx_exp_exact_verkoop;
FOR rec IN c1
LOOP
BEGIN
v_first := substr(rec.result, 1,1);
IF v_first = 0 THEN
v_count := 0;
ELSE
v_count := v_count + 1;
END IF;
INSERT INTO aaxx_exp_exact_verkoop (
result,
result_order)
VALUES (
v_count || substr (rec.result, 2),
rec.result_order||v_count);
END;
END LOOP;
END;
/
-- Na dat de verkoopfacturen naar Exact geexporteerd zijn wordt de timestamp gezet.
CREATE OR REPLACE PROCEDURE aaxx_export_exact_verkoop (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2,
p_opdr_jaar IN VARCHAR2
)
AS
BEGIN
UPDATE aaxx_verkoopbuffer
SET naar_exact = sysdate
WHERE naar_exact IS NULL
AND opdr_jaar = p_opdr_jaar;
INSERT INTO imp_schedule (imp_schedule_name) VALUES ('EXACT_VERKOOP_VJ');
END;
/
--=============================================================================
-- EXPORTFUNCTIES BUNDEL_CATERING
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_bundel_catering (
result,
result_order
)
AS
SELECT REPLACE(REPLACE('RES'
|| ';'
|| SYSDATE
|| ';'
|| SUBSTR (prs_kostenplaats_nr, 1, 30)
|| ';'
|| SUBSTR (prs_kostenplaats_omschrijving, 1, 60)
|| ';'
|| SUBSTR (prs_kostensoort_oms, 1, 60)
|| ';'
|| rra.res_rsv_artikel_aantal || ' * ' || ra.res_artikel_omschrijving
|| ';'
|| to_char(rra.res_rsv_artikel_prijs)
|| ';'
|| to_char(ra.res_artikel_inkoopprijs)
|| ';'
|| rra.res_rsv_artikel_key
,CHR (13), ''), CHR (10), '<ret>'), res_rsv_artikel_key
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
res_artikel ra,
ins_tab_discipline d,
prs_kostensoort ks,
prs_kostenplaats k
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_status_bo_key = 5
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = d.ins_discipline_key
AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key
AND NVL (rra.res_rsv_artikel_levering,
TO_DATE ('20070101', 'yyyymmdd')
) <
TO_DATE ( TO_CHAR (SYSDATE, 'yyyy')
|| TO_CHAR (SYSDATE, 'mm')
|| '01',
'yyyymmdd'
);
-- Procedure om alle geexporteerde facturen naar status verwerkt te zetten.
CREATE OR REPLACE PROCEDURE aaxx_export_bundel_catering (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_laatste_export DATE;
v_mld_melding_key NUMBER;
v_prs_bedrijf_key NUMBER;
v_prs_kostenplaats_key NUMBER;
v_mld_opdr_bedrijfopdr_volgnr NUMBER;
v_aanvrager NUMBER;
v_mld_workorder_key NUMBER;
BEGIN
IF aaxx_get_user = 'DSM' THEN
-- DSM: Sodexo BV
v_prs_bedrijf_key := 10442;
-- DSM: Servicedesk AA
v_aanvrager := 6524;
-- DSM: Arcadis Aqumen
v_prs_kostenplaats_key := 209;
-- key van opdrachttype workorder
v_mld_workorder_key := 167;
END IF;
IF aaxx_get_user = 'NS' THEN
-- NS: Eurest catering
v_prs_bedrijf_key := 1581;
-- NS: xxx
v_aanvrager := 4;
-- NS: xxx
v_prs_kostenplaats_key := 0;
-- key van opdrachttype workorder
v_mld_workorder_key := 121;
END IF;
v_errormsg := 'Controle exportdatum';
SELECT max(export_datum)
INTO v_laatste_export
FROM aaxx_verkoopbuffer
WHERE module = 'RES';
IF v_laatste_export IS NOT NULL AND v_laatste_export >
TO_DATE ( TO_CHAR (SYSDATE, 'yyyy')
|| TO_CHAR (SYSDATE, 'mm')
|| '01',
'yyyymmdd') THEN
-- foutmelding bundeling voor deze maand heeft al plaatsgevonden op v_laatste_export
fac.imp_writelog (p_applname, p_applrun,'E', 'bundeling voor deze maand heeft al plaatsgevonden op: ' || v_laatste_export, '');
RETURN;
END IF;
v_errormsg := 'Aanmaken catering melding';
BEGIN
INSERT INTO mld_melding
(
mld_melding_omschrijving,
mld_kosten_klant,
prs_perslid_key,
prs_kostenplaats_key,
mld_stdmelding_key,
mld_alg_locatie_key,
mld_melding_einddatum,
mld_melding_datum,
mld_melding_uitvoertijd,
mld_meldbron_key,
mld_melding_module,
mld_melding_spoed
)
VALUES (
'Hospitality maand:' || TO_CHAR (TO_DATE ( '01'
|| TO_CHAR (SYSDATE, 'mm')
|| TO_CHAR (SYSDATE, 'yyyy'),
'ddmmyyyy'
)
- 1,
'Mon'
),
1,
v_aanvrager,
v_prs_kostenplaats_key,
DECODE (aaxx_get_user, 'DSM', 603, 'NS', 641),
DECODE (aaxx_get_user, 'DSM', 1, 'NS', 0), -- alg_locatie
sysdate + 14,
sysdate,
2,
5,
'MLD',
3
) RETURNING mld_melding_key INTO v_mld_melding_key;
BEGIN mld.setmeldingstatus(v_mld_melding_key, 2, v_aanvrager); END;
BEGIN mld.setmeldingstatus(v_mld_melding_key, 4, v_aanvrager); END;
UPDATE mld_melding SET mld_melding_behandelaar_key= v_aanvrager WHERE mld_melding_key = v_mld_melding_key ;
END;
v_errormsg := 'Voeg catering to aan verkoopbuffer';
-- rra.res_status_bo_key = 5 is afgemeld
INSERT INTO aaxx_verkoopbuffer
(
module, export_datum, prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostensoort_oms, prs_kostensoort_opmerking, prs_kostensoort_refcode, prs_kostensoortgrp_oms, omschrijving, bedrag, btw, fin_btwtabelwaarde_code, opdr_jaar, exact_code_gebouw
)
SELECT 'RES',
SYSDATE,
DECODE (aaxx_get_user, 'DSM', aaxx_get_dep_code(k.prs_kostenplaats_nr), 'NS', SUBSTR (prs_kostenplaats_nr, 1, 30)),
DECODE (aaxx_get_user, 'DSM', aaxx_get_dep_oms(k.prs_kostenplaats_nr),'NS', SUBSTR(prs_kostenplaats_nr, 1, 30)),
SUBSTR (prs_kostensoort_oms, 1, 60),
SUBSTR (prs_kostensoort_opmerking, 1, 255),
SUBSTR (prs_kostensoort_refcode, 1, 255),
(SELECT SUBSTR(prs_kostensoortgrp_oms,1,60) FROM prs_kostensoortgrp ksg WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key),
SUBSTR ('Hospitality' || ' '
|| TO_CHAR (TO_DATE ( '01'
|| TO_CHAR (SYSDATE, 'mm')
|| TO_CHAR (SYSDATE, 'yyyy'),
'ddmmyyyy'
)
- 1,
'Mon'
),
1,
100
),
SUM (rra.res_rsv_artikel_prijs),
0, -- deprecated
DECODE (res_artikel_btw, 19, '4', 6, '2', 0, '4', '-1'),
to_char(add_months(sysdate, -1),'yyyy'),
COALESCE(exact_code, alg_gebouw_code)
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
res_artikel ra,
ins_tab_discipline d,
prs_kostensoort ks,
prs_kostenplaats k,
(SELECT alg_onrgoed_key alg_gebouw_key,
alg_onrgoedkenmerk_waarde exact_code
FROM alg_onrgoedkenmerk
WHERE alg_onrgoed_niveau = 'G' AND alg_kenmerk_key = 1009) exact,
(SELECT COALESCE (MAX (ir2a.alg_ruimte_key), irrr.alg_ruimte_key)
alg_ruimte_key,
irrr.res_rsv_ruimte_key
FROM res_rsv_ruimte irrr, res_v_rsv_ruimte_2_alg_ruimte ir2a
WHERE irrr.res_rsv_ruimte_key = ir2a.res_rsv_ruimte_key(+)
GROUP BY irrr.res_rsv_ruimte_key, irrr.alg_ruimte_key) r2a
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND r2a.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = exact.alg_gebouw_key(+)
AND v.alg_gebouw_key = g.alg_gebouw_key
AND rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_status_bo_key = 5
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = d.ins_discipline_key
AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key
AND rra.res_rsv_artikel_levering <
TO_DATE ( TO_CHAR (SYSDATE, 'yyyy')
|| TO_CHAR (SYSDATE, 'mm')
|| '01',
'yyyymmdd'
)
GROUP BY prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
k.prs_kostenplaats_key,
prs_kostensoort_oms,
prs_kostensoort_opmerking,
prs_kostensoort_refcode,
ks.prs_kostensoortgrp_key,
res_artikel_btw,
alg_gebouw_code,
exact_code;
v_errormsg := 'Meld de catering af die zojuist in de verkoopbuffer geplaatst zijn';
-- pas alle cateringartikelen aan die hierboven in de verkoopbuffer geplaatst zijn
-- res_status_bo_key = 6 is verwerkt
UPDATE res_rsv_artikel
SET res_rsv_artikel_verwerkt = SYSDATE, res_status_bo_key = 6
WHERE res_rsv_artikel_key IN
(SELECT res_rsv_artikel_key
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
res_artikel ra,
ins_tab_discipline d,
prs_kostenplaats k
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_status_bo_key = 5
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = d.ins_discipline_key
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key
AND NVL (rra.res_rsv_artikel_levering,
TO_DATE ('20070101', 'yyyymmdd')
) <
TO_DATE ( TO_CHAR (SYSDATE, 'yyyy')
|| TO_CHAR (SYSDATE, 'mm')
|| '01',
'yyyymmdd'
));
v_errormsg := 'Zoek kostenplaats';
SELECT prs_kostenplaats_key
INTO v_prs_kostenplaats_key
FROM mld_melding
WHERE mld_melding_key = v_mld_melding_key;
v_mld_opdr_bedrijfopdr_volgnr := mld.BepaalOpdrMeldingVolgnr (v_mld_melding_key);
v_errormsg := 'Maak opdracht aan om factuur van cateraar te matchen';
-- maak opdracht aan om cateringfactuur van leverancier te matchen
-- de cateraar hoeft de opslag van 6,5% niet te ontvangen
INSERT INTO mld_opdr (mld_melding_key
, prs_kostenplaats_key
, mld_statusopdr_key
, mld_typeopdr_key
, prs_perslid_key
, mld_uitvoerende_keys
, mld_opdr_datumbegin
, mld_opdr_einddatum
, mld_opdr_module
, mld_opdr_omschrijving
, mld_opdr_materiaal
, mld_opdr_kosten
, mld_opdr_bedrijfopdr_volgnr)
( SELECT v_mld_melding_key
, v_prs_kostenplaats_key
, 5 -- uitgegeven
, v_mld_workorder_key
, v_aanvrager
, v_prs_bedrijf_key
, sysdate
, FAC.DatumTijdPlusUitvoerTijd(sysdate, 1, 'DAGEN')
, 'MLD'
, max(omschrijving)
, round((sum(bedrag)/1.065),2)
, round((sum(bedrag)/1.065),2)
, v_mld_opdr_bedrijfopdr_volgnr
FROM aaxx_verkoopbuffer
WHERE module = 'RES'
AND trunc(export_datum) = trunc(sysdate));
v_errormsg := 'Update melding status';
MLD.updatemeldingstatus (v_mld_melding_key, 0, v_aanvrager); -- Facilitor
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_applname, p_applrun,'E', v_errormsg, '');
COMMIT;
END;
/
--=============================================================================
-- EXPORTFUNCTIES BUDGET TRACKER
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_budget_tracker (result, result_order)
AS
SELECT '"nummer";' ||
'"datum";' ||
'"status";' ||
'"laatste_actie";' ||
'"vakgroeptype";' ||
'"vakgroep";' ||
'"kostensoort_code";' ||
'"kostensoort_omschrijving";' ||
'"financiele_waarde";' ||
'"kostensoortgroep_omschrijving";' ||
'"melding";' ||
'"omschrijving";' ||
'"organisatie";' ||
'"naam";' ||
'"kostenplaats";' ||
'"kostenplaats_omschrijving";' ||
'"plaats";' ||
'"locatie";' ||
'"gebouw";' ||
'"code_exact";' ||
'"opdracht_status";' ||
'"uitvoerende";' ||
'"contactpersoon";' ||
'"uren";' ||
'"uurloon";' ||
'"materiaal";' ||
'"kosten";' ||
'"gefactureerd"', 0
FROM dual
UNION ALL
SELECT REPLACE(REPLACE( '"'
|| nummer
|| '";"'
|| datum
|| '";"'
|| status
|| '";"'
|| laatste_actie
|| '";"'
|| vakgroeptype
|| '";"'
|| vakgroep
|| '";"'
|| kostensoort_code
|| '";"'
|| kostensoort_omschrijving
|| '";"'
|| financiele_waarde
|| '";"'
|| kostensoortgroep_omschrijving
|| '";"'
|| melding
|| '";"'
|| aaxx_exp_escape (omschrijving)
|| '";"'
|| organisatie
|| '";"'
|| naam
|| '";"'
|| kostenplaats
|| '";"'
|| kostenplaats_omschrijving
|| '";"'
|| plaats
|| '";"'
|| locatie
|| '";"'
|| gebouw
|| '";"'
|| code_exact
|| '";"'
|| opdracht_status
|| '";"'
|| uitvoerende
|| '";"'
|| contactpersoon
|| '";"'
|| uren
|| '";"'
|| uurloon
|| '";"'
|| materiaal
|| '";"'
|| kosten
|| '";"'
|| gefactureerd
|| '"',CHR (13), ''), CHR (10), '<ret>'),
1
FROM (SELECT m.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr nummer,
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY HH24:MI') datum,
(SELECT mld_statusopdr_omschrijving
FROM mld_statusopdr s
WHERE o.mld_statusopdr_key = s.mld_statusopdr_key)
status,
TO_CHAR (mld.getopdrachtstatusdate (o.mld_opdr_key, mld_statusopdr_key)
, 'DD-MM-YYYY HH24:MI'
)
laatste_actie,
sd.ins_srtdiscipline_prefix vakgroeptype,
md.ins_discipline_omschrijving vakgroep,
COALESCE (kstd.prs_kostensoort_oms, kvg.prs_kostensoort_oms)
kostensoort_code,
COALESCE (kstd.prs_kostensoort_opmerking,
kvg.prs_kostensoort_opmerking
)
kostensoort_omschrijving,
COALESCE (kstd.prs_kostensoort_refcode,
kvg.prs_kostensoort_refcode
)
financiele_waarde,
(SELECT prs_kostensoortgrp_oms FROM prs_kostensoortgrp ksg
WHERE ksg.prs_kostensoortgrp_key = COALESCE (kstd.prs_kostensoortgrp_key, kvg.prs_kostensoortgrp_key)) kostensoortgroep_omschrijving,
std.mld_stdmelding_omschrijving melding,
SUBSTR (REPLACE (mld_melding_omschrijving,
CHR (13) || CHR (10),
'<ret>'
),
1,
2000
)
omschrijving,
(SELECT d.prs_afdeling_naam
FROM prs_v_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key)
organisatie,
p.prs_perslid_naam
|| DECODE (NVL (p.prs_perslid_voorletters, ''),
'', '',
', ' || p.prs_perslid_voorletters)
|| DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
'', '',
' ' || p.prs_perslid_tussenvoegsel)
|| DECODE (NVL (p.prs_perslid_voornaam, ''),
'', '',
' (' || p.prs_perslid_voornaam || ')')
naam,
(SELECT k.prs_kostenplaats_nr
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
kostenplaats,
(SELECT k.prs_kostenplaats_omschrijving
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
kostenplaats_omschrijving,
(SELECT alg_locatie_code
FROM alg_locatie l
WHERE m.mld_alg_locatie_key = l.alg_locatie_key)
|| (SELECT CASE COALESCE(G.alg_gebouw_code, '')
WHEN '' THEN '' ELSE '-' || G.alg_gebouw_code
END
|| CASE COALESCE(G.alg_verdieping_code, '')
WHEN '' THEN '' ELSE '-' || G.alg_verdieping_code
END
|| CASE COALESCE(G.alg_ruimte_nr, '')
WHEN '' THEN '' ELSE '-' || G.alg_ruimte_nr
END
FROM alg_v_allonrgoed_gegevens g
WHERE m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys) plaats,
alg_locatie_code locatie,
alg_gebouw_code gebouw,
COALESCE ((SELECT alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ogk
WHERE ogk.alg_kenmerk_key = 1009
AND ogk.alg_onrgoed_key = v.alg_gebouw_key), v.alg_gebouw_code)
code_exact,
(SELECT mld_statusopdr_omschrijving
FROM mld_statusopdr so
WHERE o.mld_statusopdr_key = so.mld_statusopdr_key)
opdracht_status,
COALESCE ( (SELECT prs_bedrijf_naam
FROM prs_bedrijf b
WHERE o.mld_uitvoerende_keys = prs_bedrijf_key),
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all
WHERE o.mld_uitvoerende_keys = prs_perslid_key)
)
uitvoerende,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE o.prs_perslid_key = pf.prs_perslid_key)
contactpersoon,
replace(to_char (o.mld_opdr_uren, '999999990.99'), '.', ',') uren,
replace(to_char (o.mld_opdr_uurloon, '999999990.99'), '.', ',') uurloon,
replace(to_char (o.mld_opdr_materiaal, '999999990.99'), '.', ',') materiaal,
replace(to_char (o.mld_opdr_kosten, '999999990.99'), '.', ',') kosten,
COALESCE ( (SELECT trim(to_char (SUM (f.fin_factuur_totaal), '999999990.99'))
FROM fin_factuur f
WHERE f.mld_opdr_key = o.mld_opdr_key), '0'
)
gefactureerd
FROM mld_melding m,
mld_discipline md,
ins_srtdiscipline sd,
alg_v_allonrgoed_gegevens v,
alg_locatie l,
alg_district di,
prs_perslid p,
mld_opdr o,
mld_stdmelding std,
prs_kostensoort kstd,
prs_kostensoort kvg
WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = di.alg_district_key(+)
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)
AND m.mld_alg_onroerendgoed_keys = v.alg_onroerendgoed_keys(+)
AND m.prs_perslid_key = p.prs_perslid_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_melding_key = o.mld_melding_key
AND std.prs_kostensoort_key = kstd.prs_kostensoort_key(+)
AND md.prs_kostensoort_key = kvg.prs_kostensoort_key(+)
UNION ALL
SELECT cnt_contract_nummer_intern,
TO_CHAR (c.cnt_contract_looptijd_van, 'DD-MM-YYYY HH24:MI') datum,
DECODE (SIGN (cnt_contract_looptijd_van - SYSDATE),
1,
'Toekomst',
-1,
DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
1,
'Actueel',
-1,
'Verlopen'
)
)
status,
TO_CHAR (c.cnt_contract_looptijd_tot, 'DD-MM-YYYY HH24:MI')
laatste_actie,
'Contract' vakgroeptype,
d.ins_discipline_omschrijving vakgroep,
k.prs_kostensoort_oms kostensoort_code,
k.prs_kostensoort_opmerking kostensoort_omschrijving,
k.prs_kostensoort_refcode financiele_waarde,
(SELECT prs_kostensoortgrp_oms FROM prs_kostensoortgrp ksg
WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key) kostensoortgroep_omschrijving,
c.cnt_contract_omschrijving melding,
SUBSTR (REPLACE (cnt_contract_document, CHR (13) || CHR (10), '<ret>'),
1,
2000
)
omschrijving,
prs_afdeling_naam organisatie,
p.prs_perslid_naam
|| DECODE (NVL (p.prs_perslid_voorletters, ''),
'', '',
', ' || p.prs_perslid_voorletters)
|| DECODE (NVL (p.prs_perslid_tussenvoegsel, ''),
'', '',
' ' || p.prs_perslid_tussenvoegsel)
|| DECODE (NVL (p.prs_perslid_voornaam, ''),
'', '',
' (' || p.prs_perslid_voornaam || ')')
naam,
kp.prs_kostenplaats_nr kostenplaats,
kp.prs_kostenplaats_omschrijving kostenplaats_omschrijving,
alg_locatie_code || '-' || alg_gebouw_code plaats,
alg_locatie_code locatie,
alg_gebouw_code gebouw,
COALESCE ((SELECT alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ogk
WHERE ogk.alg_kenmerk_key = 1009
AND ogk.alg_onrgoed_key = g.alg_gebouw_key), g.alg_gebouw_code)
code_exact,
'-' opdracht_status,
prs_bedrijf_naam uitvoerende,
'-' contactpersoon,
'0' uren,
'0' uurloon,
'0' materiaal,
COALESCE ( trim(to_char (DECODE (cnt_gew.cnt_contract_plaats_gewicht,
0,
1,
(cp.cnt_contract_plaats_gewicht
/ cnt_gew.cnt_contract_plaats_gewicht)
* c.cnt_contract_kosten), '999999990.99'))
,
'0'
)
kosten,
COALESCE ( trim(to_char (DECODE (cnt_gew.cnt_contract_plaats_gewicht,
0,
1,
(cp.cnt_contract_plaats_gewicht
/ cnt_gew.cnt_contract_plaats_gewicht)
* (SELECT SUM(fin_factuur_totaal)
FROM fin_factuur f
WHERE f.cnt_contract_key = c.cnt_contract_key
AND fin_factuur_statuses_key > 1
)), '999999990.99'))
,
'0'
)
gefactureerd
FROM cnt_contract c,
cnt_discipline d,
cnt_contract_plaats cp,
prs_bedrijf b,
prs_kostensoort k,
prs_kostenplaats kp,
prs_afdeling a,
prs_perslid p,
alg_locatie l,
alg_gebouw g,
prs_contactpersoon cop,
(SELECT cnt_contract_key,
SUM (cnt_contract_plaats_gewicht) cnt_contract_plaats_gewicht
FROM cnt_contract_plaats
GROUP BY cnt_contract_key) cnt_gew,
(SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
WHERE aog.alg_type = cp.cnt_alg_plaats_code
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog
WHERE c.cnt_contract_key = cp.cnt_contract_key(+)
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.ins_discipline_key = d.ins_discipline_key
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
AND c.prs_perslid_key_beh = p.prs_perslid_key
AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+)
AND c.prs_contactpersoon_key = cop.prs_contactpersoon_key(+)
AND cog.alg_locatie_key = l.alg_locatie_key(+)
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
AND cnt_contract_verwijder IS NULL
);
--=============================================================================
-- EXPORTFUNCTIES DATAWAREHOUSE
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_PRS_BEDRIJF
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_prs_bedrijf (RESULT, result_order)
AS
SELECT '"PRS_BEDRIJF_KEY";"PRS_BEDRIJF_NAAM";"PRS_BEDRIJF_NAAM_UPPER";"PRS_BEDRIJF_POST_ADRES";"PRS_BEDRIJF_POST_POSTCODE";' ||
'"PRS_BEDRIJF_POST_PLAATS";"PRS_BEDRIJF_POST_LAND";"PRS_BEDRIJF_BEZOEK_ADRES";"PRS_BEDRIJF_BEZOEK_POSTCODE";"PRS_BEDRIJF_BEZOEK_PLAATS";' ||
'"PRS_BEDRIJF_BEZOEK_LAND";"PRS_BEDRIJF_TELEFOON";"PRS_BEDRIJF_FAX";"PRS_BEDRIJF_TELEFOON2";"PRS_BEDRIJF_CONTACT_PERSOON";' ||
'"PRS_BEDRIJF_CONTACT_TELEFOON";"PRS_BEDRIJF_CONTACT_FAX";"PRS_BEDRIJF_OPMERKING";"PRS_BEDRIJF_OPMERKING2";"PRS_BEDRIJF_UURLOON";' ||
'"PRS_LEVERANCIER_NR";"PRS_OVEREENKOMST_NR";"PRS_OVEREENKOMST_DATUM";"PRS_BEDRIJF_AANMAAK";"PRS_BEDRIJF_VERWIJDER";' ||
'"PRS_BEDRIJF_LEVERANCIER";"PRS_BEDRIJF_UITVOERENDE";"PRS_BEDRIJF_CONTRACT";"PRS_BEDRIJF_INTERN";"PRS_BEDRIJF_HUURDER";' ||
'"PRS_BEDRIJF_EMAIL";"PRS_BEDRIJF_INGIDS"',0
FROM DUAL
UNION ALL
SELECT REPLACE(REPLACE('"' || PRS_BEDRIJF_KEY || '";"' || PRS_BEDRIJF_NAAM || '";"' || PRS_BEDRIJF_NAAM_UPPER || '";"' || PRS_BEDRIJF_POST_ADRES || '";"' || PRS_BEDRIJF_POST_POSTCODE || '";"' ||
PRS_BEDRIJF_POST_PLAATS || '";"' || PRS_BEDRIJF_POST_LAND || '";"' || PRS_BEDRIJF_BEZOEK_ADRES || '";"' || PRS_BEDRIJF_BEZOEK_POSTCODE || '";"' || PRS_BEDRIJF_BEZOEK_PLAATS || '";"' ||
PRS_BEDRIJF_BEZOEK_LAND || '";"' || PRS_BEDRIJF_TELEFOON || '";"' || PRS_BEDRIJF_FAX || '";"' || PRS_BEDRIJF_TELEFOON2 || '";"' || PRS_BEDRIJF_CONTACT_PERSOON || '";"' ||
PRS_BEDRIJF_CONTACT_TELEFOON || '";"' || PRS_BEDRIJF_CONTACT_FAX || '";"' || PRS_BEDRIJF_OPMERKING || '";"' || PRS_BEDRIJF_OPMERKING2 || '";"' || PRS_BEDRIJF_UURLOON || '";"' ||
PRS_LEVERANCIER_NR || '";"' || PRS_OVEREENKOMST_NR || '";"' || to_char(PRS_OVEREENKOMST_DATUM, 'yyyy-mm-dd') || '";"' || to_char(PRS_BEDRIJF_AANMAAK, 'yyyy-mm-dd') || '";"' || to_char(PRS_BEDRIJF_VERWIJDER, 'yyyy-mm-dd') || '";"' ||
PRS_BEDRIJF_LEVERANCIER || '";"' || PRS_BEDRIJF_UITVOERENDE || '";"' || PRS_BEDRIJF_CONTRACT || '";"' || PRS_BEDRIJF_INTERN || '";"' || PRS_BEDRIJF_HUURDER || '";"' ||
PRS_BEDRIJF_EMAIL || '";"' || PRS_BEDRIJF_INGIDS ||'"',CHR (13), ''), CHR (10), '<ret>'),1
FROM PRS_V_QVW_BEDRIJF;
/
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_PRS_AFDELING
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_prs_afdeling (
result,
result_order
)
AS
SELECT '"PRS_AFDELING_PARENT_NAAM";"PRS_AFDELING_NAAM";"PRS_AFDELING_OMSCHRIJVING";"PRS_KOSTENPLAATS_NR";"PRS_BEDRIJF_NAAM";"NIVEAU"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| ap.prs_afdeling_naam
|| '";"'
|| a.prs_afdeling_naam
|| '";"'
|| a.prs_afdeling_omschrijving
|| '";"'
|| prs_kostenplaats_nr
|| '";"'
|| prs_bedrijf_naam
|| '";"'
|| niveau
|| '"',
1
FROM prs_v_afdeling a, prs_kostenplaats k, prs_bedrijf b, prs_afdeling ap
WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND a.prs_bedrijf_key = b.prs_bedrijf_key(+)
AND a.prs_afdeling_parentkey = ap.prs_afdeling_key(+);
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_PRS_PERSOON
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_prs_perslid (
result,
result_order
)
AS
SELECT '"PRS_PERSLID_KEY";"PRS_AFDELING_NAAM";"PRS_PERSLID_NAAM";"PRS_PERSLID_TUSSENVOEGSEL";"PRS_PERSLID_VOORNAAM";"PRS_PERSLID_FULL";"PRS_PERSLID_LOGIN";"PRS_PERSLID_TELEFOON";"PRS_PERSLID_EMAIL";"PRS_PERSLID_LASTLOGIN";"PRS_PERSLID_AANMAAK";"PRS_PERSLID_VERWIJDER"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| p.prs_perslid_key
|| '";"'
|| DECODE (aaxx_get_user,'CE', a.prs_afdeling_omschrijving, a.prs_afdeling_naam)
|| '";"'
|| p.prs_perslid_naam
|| '";"'
|| p.prs_perslid_tussenvoegsel
|| '";"'
|| p.prs_perslid_voornaam
|| '";"'
|| pf.prs_perslid_naam_full
|| '";"'
|| p.prs_perslid_oslogin
|| '";"'
|| p.prs_perslid_telefoonnr
|| '";"'
|| p.prs_perslid_email
|| '";"'
|| TO_CHAR (p.prs_perslid_login, 'yyyy-mm-dd hh24:mi')
|| '";"'
|| TO_CHAR (p.prs_perslid_aanmaak, 'yyyy-mm-dd')
|| '";"'
|| TO_CHAR (p.prs_perslid_verwijder, 'yyyy-mm-dd')
|| '"',
1
FROM prs_perslid p, prs_afdeling a, prs_v_perslid_fullnames_all pf
WHERE a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = pf.prs_perslid_key;
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_PRS_KOSTENPLAATS
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_prs_kostenpl (
result,
result_order
)
AS
SELECT '"PRS_KOSTENPLAATS_NR";"PRS_KOSTENPLAATS_OMSCHRIJVING";"PRS_KOSTENPLAATS_BUDGETHOUDER";"PRS_KOSTENPLAATS_AANMAAK";"PRS_KOSTENPLAATS_VERWIJDER"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| k.prs_kostenplaats_nr
|| '";"'
|| k.prs_kostenplaats_omschrijving
|| '";"'
|| pf.prs_perslid_naam_full
|| '";"'
|| TO_CHAR (k.prs_kostenplaats_aanmaak, 'yyyy-mm-dd')
|| '";"'
|| TO_CHAR (k.prs_kostenplaats_verwijder, 'yyyy-mm-dd')
|| '"',
1
FROM prs_kostenplaats k, prs_v_perslid_fullnames_all pf
WHERE k.prs_perslid_key = pf.prs_perslid_key(+);
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_PRS_KOSTENSOORT
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_prs_kostensr (
result,
result_order
)
AS
SELECT '"PRS_KOSTENSOORT_CODE";"PRS_KOSTENSOORT_OMSCHRIJVING";"PRS_KOSTENSOORT_FIN_WAARDE";"PRS_KOSTENSOORTGROEP";"PRS_KOSTENSOORT_AANMAAK"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| k.prs_kostensoort_oms
|| '";"'
|| k.prs_kostensoort_opmerking
|| '";"'
|| k.prs_kostensoort_refcode
|| '";"'
|| (select prs_kostensoortgrp_oms from prs_kostensoortgrp ksg where ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key)
|| '";"'
|| TO_CHAR (k.prs_kostensoort_aanmaak, 'yyyy-mm-dd')
|| '"',
1
FROM prs_kostensoort k;
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_CNT_ALGEMEEN
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_cnt_algemeen (
result,
result_order
)
AS
SELECT '"INTERNNR";"EXTERNNR";"BESCHRIJVING";"CONTRACTSOORT";"TYPECONTRACT";"VERSIE";"INGANGSDATUM";"RAPPELDATUM";'
|| '"OPZEGDATUM";"EINDDATUM";"EIGENAAR";"BEHEERDER";"UITVOERDER";'
|| '"KOSTENPLAATS";"TERMIJNBEDRAG";"CONTRACTBEDRAG";"VOLGNUMMER";"LOCATIE_CODE";"GEBOUW_CODE";"GEBOUW_KOSTEN";"GEBOUW_GEFACTUREERD"',
0
FROM DUAL
UNION ALL
SELECT REPLACE (REPLACE ( '"'
|| cnt_contract_nummer_intern
|| '.'
|| COALESCE (cnt_contract_versie, '0')
|| '";"'
|| cnt_contract_nummer
|| '";"'
|| aaxx_exp_escape (cnt_contract_omschrijving)
|| '";"'
|| d.ins_discipline_omschrijving
|| '";"'
|| tc.cnt_typecontract_omschrijving
|| '";"'
|| c.cnt_contract_versie
|| '";"'
|| TO_CHAR (cnt_contract_looptijd_van,
'yyyy-mm-dd'
)
|| '";"'
|| TO_CHAR (cnt.cnt_getrappeldatum(c.cnt_contract_key),
'yyyy-mm-dd'
)
|| '";"'
|| TO_CHAR (cnt.cnt_getopzegdatum(c.cnt_contract_key),
'yyyy-mm-dd'
)
|| '";"'
|| TO_CHAR (c.cnt_contract_looptijd_tot,
'yyyy-mm-dd'
)
|| '";"'
|| a.prs_afdeling_naam
|| '";"'
|| prs_perslid_naam_full
|| '";"'
|| prs_bedrijf_naam
|| '";'
|| '"'
|| prs_kostenplaats_nr
|| '";"'
|| cnt_contract_termijnkosten
|| '";"'
|| cnt_contract_kosten
|| '";"'
|| aaxx_get_cnt_cont_plaats_index(cp.cnt_contract_plaats_key)
|| '";"'
|| alg_locatie_code
|| '";"'
|| COALESCE ( (SELECT alg_onrgoedkenmerk_waarde
FROM alg_onrgoedkenmerk ogk
WHERE ogk.alg_kenmerk_key = 1009
AND ogk.alg_onrgoed_key =
g.alg_gebouw_key),
g.alg_gebouw_code
)
|| '";"'
|| DECODE (cnt_gew.cnt_contract_plaats_gewicht,
0,
TO_CHAR (NULL),
COALESCE ( (TRIM(TO_CHAR ( (cp.cnt_contract_plaats_gewicht
/ cnt_gew.cnt_contract_plaats_gewicht)
* c.cnt_contract_kosten,
'999999990.99'
))),
'0'
)
)
|| '";"'
|| COALESCE (TRIM(TO_CHAR (DECODE (cnt_gew.cnt_contract_plaats_gewicht,
0,
1,
(cp.cnt_contract_plaats_gewicht
/ cnt_gew.cnt_contract_plaats_gewicht)
)
* fin.fin_factuur_totaal,
'999999990.99'
)),
'0'
)
|| '"',
CHR (13),
''
),
CHR (10),
'<ret>'
),
1000 * c.cnt_contract_key
+ aaxx_get_cnt_cont_plaats_index (cp.cnt_contract_plaats_key)
FROM cnt_contract c,
cnt_discipline d,
cnt_disc_params cd,
cnt_typecontract tc,
cnt_contract_plaats cp,
prs_bedrijf b,
prs_kostensoort k,
prs_kostenplaats kp,
prs_afdeling a,
prs_v_perslid_fullnames pf,
alg_locatie l,
alg_gebouw g,
(SELECT cnt_contract_key,
SUM (fin_factuurregel_totaal) fin_factuur_totaal
FROM fin_factuur f, fin_factuurregel fr
WHERE f.fin_factuur_key = fr.fin_factuur_key
GROUP BY cnt_contract_key) fin,
(SELECT cnt_contract_key,
SUM (cnt_contract_plaats_gewicht) cnt_contract_plaats_gewicht
FROM cnt_contract_plaats
WHERE cnt_contract_plaats_verwijder IS NULL
GROUP BY cnt_contract_key) cnt_gew,
(SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
WHERE aog.alg_type = cp.cnt_alg_plaats_code
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog
WHERE c.cnt_contract_key = cp.cnt_contract_key(+)
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_key = cd.cnt_ins_discipline_key
AND cd.cnt_srtcontract_type = tc.cnt_typecontract_key
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
AND c.prs_perslid_key_beh = pf.prs_perslid_key
AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+)
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cog.alg_locatie_key = l.alg_locatie_key(+)
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
AND c.cnt_contract_key = fin.cnt_contract_key(+)
AND cnt_contract_verwijder IS NULL;
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_FIN_FACTUUR
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_fin_factuur (
result,
result_order
)
AS
SELECT '"FIN_FACTUUR_KEY";"FIN_FACTUUR_NR";"FIN_FACTUUR_TOTAAL_BTW";"OPDR_ID";"CONTRACT_ID";"BESTEL_ID";"FIN_FACTUUR_DATUM";"FIN_FACTUUR_BOEKMAAND";"FIN_FACTUUR_DEBITEUR_NR";"KOSTENSOORT";"FIN_FACTUUR_DATUMFIAT_OK";"FIN_FACTUUR_DATUMFIAT_NOK";"FIN_FACTUUR_FIAT_USER";"FIN_FACTUUR_OPMERKING";"FIN_FACTUUR_DATUM_EXPORT";"FIN_FACTUUR_STATUS";"FIN_FACTUUR_AANMAAK";"FIN_FACTUUR_VERWERKT";"FIN_FACTUUR_BADGEID";"FIN_FACTUURREGEL_NR";"FIN_FACTUURREGEL_TOTAAL";"FIN_FACTUURREGEL_BTW";"UPLIFT";"INCL_UPLIFT";"FIN_FACTUURREGEL_OMSCHRIJVING";"FIN_FACTUURREGEL_REFERENTIE"',
0
FROM DUAL
UNION ALL
SELECT REPLACE (REPLACE ( '"'
|| f.fin_factuur_key
|| '";"'
|| f.fin_factuur_nr
|| '";"'
|| f.fin_factuur_totaal_btw
|| '";"'
|| (SELECT mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr
FROM mld_opdr
WHERE mld_opdr_key = f.mld_opdr_key)
|| '";"'
|| (SELECT cc.cnt_contract_nummer_intern || '.' || COALESCE(cc.cnt_contract_versie, '0')
FROM cnt_contract cc
WHERE cc.cnt_contract_key = f.cnt_contract_key)
|| '";"'
|| (SELECT bes_bestelopdr_id
FROM bes_bestelopdr
WHERE bes_bestelopdr_key =
f.bes_bestelopdr_key)
|| '";"'
|| TO_CHAR (f.fin_factuur_datum, 'yyyy-mm-dd')
|| '";"'
|| f.fin_factuur_boekmaand
|| '";"'
|| f.fin_factuur_debiteur_nr
|| '";"'
|| (SELECT prs_kostensoort_oms
FROM prs_kostensoort
WHERE prs_kostensoort_key =
f.prs_kostensoort_key)
|| '";"'
|| TO_CHAR (fac.gettrackingdate ('FINFOK',
f.fin_factuur_key
),
'yyyy-mm-dd'
)
|| '";"'
|| TO_CHAR (fac.gettrackingdate ('FINFNO',
f.fin_factuur_key
),
'yyyy-mm-dd'
)
|| '";"'
|| (SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key =
fac.gettrackinguserkey ('FINFOK',
f.fin_factuur_key
))
|| '";"'
|| f.fin_factuur_opmerking
|| '";"'
|| TO_CHAR (fac.gettrackingdate ('FINVER',
f.fin_factuur_key
),
'yyyy-mm-dd'
)
|| '";"'
|| (SELECT fin_factuur_statuses_omschr
FROM fin_factuur_statuses s
WHERE s.fin_factuur_statuses_key =
f.fin_factuur_statuses_key)
|| '";"'
|| TO_CHAR (COALESCE(fac.gettrackingdate ('FINNEW',
f.fin_factuur_key
), fin_factuur_datum),
'yyyy-mm-dd'
)
|| '";"'
|| TO_CHAR (fac.gettrackingdate ('FINVER',
f.fin_factuur_key
),
'yyyy-mm-dd'
)
|| '";"'
|| TO_CHAR (fac.gettrackingdate ('FINVER',
f.fin_factuur_key
),
'yyyymmdd'
)
|| '";"'
|| fr.fin_factuurregel_nr
|| '";"'
|| fr.fin_factuurregel_totaal
|| '";"'
|| fr.fin_factuurregel_btw
|| '";"'
|| uplift
|| '";"'
|| uplift * fr.fin_factuurregel_totaal
|| '";"'
|| aaxx_exp_escape(fr.fin_factuurregel_omschrijving)
|| '";"'
|| fr.fin_factuurregel_referentie
|| '"',
CHR (13),
''
),
CHR (10),
'<ret>'
),
1
FROM fin_factuur f,
fin_factuurregel fr,
(SELECT f2.fin_factuur_key, uplift
FROM aaxx_imp_uplift u,
prs_bedrijf b,
prs_kostensoort ks,
fin_factuur f2,
mld_opdr o,
cnt_contract c
WHERE u.prs_leverancier_nr = b.prs_leverancier_nr
AND f2.mld_opdr_key = o.mld_opdr_key(+)
AND f2.cnt_contract_key = c.cnt_contract_key(+)
AND COALESCE (o.mld_uitvoerende_keys, c.cnt_prs_bedrijf_key) =
b.prs_bedrijf_key
AND UPPER (u.prs_kostensoort_oms) = ks.prs_kostensoort_upper
AND f2.prs_kostensoort_key = ks.prs_kostensoort_key
AND soort_order = DECODE (o.mld_opdr_key, NULL, 'CO', 'WO')
AND f2.fin_factuur_boekmaand =
u.jaar || '-' || LTRIM (TO_CHAR (u.maand, '00'))) UP
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND f.fin_factuur_key = UP.fin_factuur_key(+);
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_MLD_ALGEMEEN
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_mld_algemeen (
mld_melding_key,
meldingnummer,
alg_district_omschrijving,
locatie,
locatie_omschrijving,
alg_locatie_key,
gebouw,
gebouw_naam,
verdieping,
ruimtenr,
ruimte_omschrijving,
melding_ordernr,
kostensoortgroep,
kostensoort,
kostenplaats,
kostenplaats_oms,
melder,
afdeling,
afdeling_omschrijving,
prs_bedrijf_key,
invoerder,
soortmelding,
ins_discipline_key,
productgroep,
subproductgroep,
subproductgroepgroep,
status,
sla_werkdgn,
plan_uitvoertijd,
datum,
ingezien,
geaccepteerd,
afgemeld,
doorlooptijd_werkdgn,
omschrijving,
opmerking,
opdracht_volgnummer,
opdracht_status,
opdracht_duur_gepland,
opdracht_datum,
opdracht_verzonden,
opdracht_geaccepteerd,
opdracht_afgemeld,
opdracht_doorlooptijd,
opdracht_omschrijving,
opdracht_opmerking,
opdracht_uitvoerende,
opdracht_contract,
opdracht_contactpersoon,
opdracht_uren,
opdracht_correctie,
opdracht_materiaal,
opdracht_uurtarief,
opdracht_kosten,
opdracht_kostenplaats,
opdracht_kostenplaats_oms
)
AS
SELECT mld_melding_key,
meldingnummer,
alg_district_omschrijving,
locatie,
locatie_omschrijving,
alg_locatie_key,
gebouw,
gebouw_naam,
verdieping,
ruimte,
ruimte_omschrijving,
melding_ordernr,
kostensoortgroep,
kostensoort,
kostenplaats,
kostenplaats_oms,
melder,
afdeling,
afdeling_omschrijving,
prs_bedrijf_key,
invoerder,
soortmelding,
ins_discipline_key,
productgroep,
subproductgroep,
subproductgroepgroep,
status,
sla_werkdgn,
plan_uitvoertijd,
datum,
ingezien,
geaccepteerd,
afgemeld,
doorlooptijd_werkdgn,
aaxx_exp_escape (SUBSTR (omschrijving, 1, 512)),
aaxx_exp_escape (SUBSTR (opmerking, 1, 512)),
opdracht_volgnummer,
opdracht_status,
opdracht_duur_gepland,
opdracht_datum,
opdracht_verzonden,
opdracht_geaccepteerd,
opdracht_afgemeld,
opdracht_doorlooptijd,
aaxx_exp_escape (SUBSTR (opdracht_omschrijving, 1, 512)),
aaxx_exp_escape (SUBSTR (opdracht_opmerking, 1, 512)),
opdracht_uitvoerende,
opdracht_contract,
opdracht_contactpersoon,
opdracht_uren,
opdracht_correctie,
opdracht_materiaal,
opdracht_uurtarief,
opdracht_kosten,
opdracht_kostenplaats,
opdracht_kostenplaats_oms
FROM (SELECT m.mld_melding_key,
m.mld_melding_key meldingnummer,
alg_district_omschrijving,
alg_locatie_code locatie,
alg_locatie_omschrijving locatie_omschrijving,
l.alg_locatie_key,
og.alg_gebouw_code gebouw,
og.alg_gebouw_naam gebouw_naam,
og.alg_verdieping_code verdieping,
og.alg_ruimte_nr ruimte,
og.alg_ruimte_omschrijving ruimte_omschrijving,
m.mld_melding_ordernr melding_ordernr,
(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 =
(SELECT COALESCE (sm.prs_kostensoort_key,
disc.prs_kostensoort_key
)
FROM mld_stdmelding sm, mld_discipline disc
WHERE sm.mld_ins_discipline_key =
disc.ins_discipline_key
AND sm.mld_stdmelding_key =
s.mld_stdmelding_key))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT COALESCE (sm.prs_kostensoort_key,
disc.prs_kostensoort_key
)
FROM mld_stdmelding sm, mld_discipline disc
WHERE sm.mld_ins_discipline_key =
disc.ins_discipline_key
AND sm.mld_stdmelding_key =
s.mld_stdmelding_key))
kostensoort,
(SELECT k.prs_kostenplaats_nr
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
kostenplaats,
(SELECT k.prs_kostenplaats_omschrijving
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
kostenplaats_oms,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = m.prs_perslid_key)
melder,
(SELECT prs_afdeling_naam
FROM prs_afdeling afd, prs_perslid pp
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
AND pp.prs_perslid_key = m.prs_perslid_key)
afdeling,
(SELECT prs_afdeling_omschrijving
FROM prs_afdeling afd, prs_perslid pp
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
AND pp.prs_perslid_key = m.prs_perslid_key)
afdeling_omschrijving,
(SELECT prs_bedrijf_key
FROM prs_v_afdeling pva, prs_perslid pp
WHERE pva.prs_afdeling_key = pp.prs_afdeling_key
AND pp.prs_perslid_key = m.prs_perslid_key)
prs_bedrijf_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key =
mld.getmeldinguser (m.mld_melding_key))
invoerder,
sd.ins_srtdiscipline_omschrijving soortmelding,
md.ins_discipline_key ins_discipline_key,
md.ins_discipline_omschrijving productgroep,
s.mld_stdmelding_omschrijving subproductgroep,
s.mld_stdmelding_groep subproductgroepgroep,
(SELECT DECODE(m.mld_melding_status, 4, DECODE (o.mld_opdr_key, NULL, mld_statuses_omschrijving, 'Niet opgelost'), mld_statuses_omschrijving)
FROM mld_statuses sta
WHERE sta.mld_statuses_key = m.mld_melding_status)
status,
fac.count_work_days (m.mld_melding_datum,
mld_melding_einddatum
)
sla_werkdgn,
m.mld_melding_uitvoertijd plan_uitvoertijd,
TO_CHAR (m.mld_melding_datum, 'YYYY-MM-DD HH24:MI') datum,
TO_CHAR (mld.getmeldingstatusdate (m.mld_melding_key,
3
),
'YYYY-MM-DD HH24:MI'
) ingezien,
TO_CHAR (mld.getmeldingstatusdate (m.mld_melding_key,
4
),
'YYYY-MM-DD HH24:MI'
) geaccepteerd,
COALESCE (TO_CHAR (mld.getmeldingstatusdate (m.mld_melding_key,
5
),
'YYYY-MM-DD HH24:MI'
),
TO_CHAR (mld.getmeldingstatusdate (m.mld_melding_key,
1
),
'YYYY-MM-DD HH24:MI'
)
)
afgemeld,
TO_CHAR(fac.count_work_days_incltime (m.mld_melding_datum,
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key,
5
),
mld.getmeldingstatusdate (m.mld_melding_key,
1
),
SYSDATE
)
))
doorlooptijd_werkdgn,
m.mld_melding_omschrijving omschrijving,
m.mld_melding_opmerking opmerking,
o.mld_opdr_bedrijfopdr_volgnr opdracht_volgnummer,
(SELECT replace (mld_statusopdr_omschrijving, 'Uitgegeven','Toegekend') mld_statusopdr_omschrijving
FROM mld_statusopdr sta
WHERE sta.mld_statusopdr_key = o.mld_statusopdr_key)
opdracht_status,
fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum) opdracht_duur_gepland,
TO_CHAR (o.mld_opdr_datumbegin, 'YYYY-MM-DD HH24:MI') opdracht_datum,
TO_CHAR (o.mld_opdr_verzonden, 'YYYY-MM-DD HH24:MI') opdracht_verzonden,
TO_CHAR (fac.gettrackingdate ('ORDACP', o.mld_opdr_key),
'YYYY-MM-DD HH24:MI'
)
opdracht_geaccepteerd,
TO_CHAR (mld.getopdrachtstatusdate (o.mld_opdr_key, 6),
'YYYY-MM-DD HH24:MI'
)
opdracht_afgemeld,
fac.count_work_days (o.mld_opdr_datumbegin,
mld.getopdrachtstatusdate (o.mld_opdr_key,
6
)
)
opdracht_doorlooptijd,
o.mld_opdr_omschrijving opdracht_omschrijving,
o.mld_opdr_opmerking opdracht_opmerking,
(SELECT naam
FROM mld_v_uitvoerende u
WHERE u.mld_uitvoerende_key = o.mld_uitvoerende_keys)
opdracht_uitvoerende,
NULL opdracht_contract,
NULL opdracht_contactpersoon,
REPLACE (TO_CHAR (o.mld_opdr_uren, '9999990.99'), '.', ',')
opdracht_uren,
REPLACE (TO_CHAR ( o.mld_opdr_kosten
- o.mld_opdr_materiaal
- (o.mld_opdr_uren * o.mld_opdr_uurloon),
'9999990.99'
),
'.',
','
)
opdracht_correctie,
REPLACE (TO_CHAR (o.mld_opdr_materiaal, '9999990.99'),
'.',
','
)
opdracht_materiaal,
REPLACE (TO_CHAR (o.mld_opdr_uurloon, '9999990.99'), '.', ',')
opdracht_uurtarief,
REPLACE (TO_CHAR (o.mld_opdr_kosten, '9999990.99'), '.', ',')
opdracht_kosten,
(SELECT k.prs_kostenplaats_nr
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
opdracht_kostenplaats,
(SELECT k.prs_kostenplaats_omschrijving
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key)
opdracht_kostenplaats_oms
FROM mld_melding m,
mld_stdmelding s,
alg_locatie l,
alg_district d,
alg_v_allonrgoed_gegevens og,
mld_discipline md,
ins_srtdiscipline sd,
mld_opdr o
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND md.ins_discipline_key = s.mld_ins_discipline_key
AND l.alg_district_key = d.alg_district_key
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)
AND m.mld_melding_key = o.mld_melding_key(+)
AND m.mld_melding_datum >= TO_DATE ('01-01-2000', 'DD-MM-YYYY'));
CREATE OR REPLACE VIEW aaxx_v_export_dwh_mld_algemeen (
result,
result_order
)
AS
SELECT '"MLD_MELDING_KEY";'
|| '"MELDINGNUMMER";'
|| '"ALG_DISTRICT_OMSCHRIJVING";'
|| '"LOCATIE";'
|| '"LOCATIE_OMSCHRIJVING";'
|| '"ALG_LOCATIE_KEY";'
|| '"GEBOUW";'
|| '"GEBOUW_NAAM";'
|| '"VERDIEPING";'
|| '"RUIMTENR";'
|| '"RUIMTE_OMSCHRIJVING";'
|| '"MELDING_ORDERNR";'
|| '"KOSTENSOORTGROEP";'
|| '"KOSTENSOORT";'
|| '"KOSTENPLAATS";'
|| '"KOSTENPLAATS_OMS";'
|| '"MELDER";'
|| '"PRS_PERSLID_KEY";'
|| '"AFDELING";'
|| '"AFDELING_OMSCHRIJVING";'
|| '"PRS_BEDRIJF_KEY";'
|| '"INVOERDER";'
|| '"INVOERDER_KEY";'
|| '"SOORTMELDING";'
|| '"INS_DISCIPLINE_KEY";'
|| '"INS_SRTDISCIPLINE_PREFIX";'
|| '"PRODUCTGROEP";'
|| '"SUBPRODUCTGROEP";'
|| '"SUBPRODUCTGROEPGROEP";'
|| '"STATUS";'
|| '"SLA_WERKDGN";'
|| '"PLAN_UITVOERTIJD";'
|| '"DATUM";'
|| '"INGEZIEN";'
|| '"GEACCEPTEERD";'
|| '"AFGEMELD";'
|| '"DOORLOOPTIJD_WERKDGN";'
|| '"OMSCHRIJVING";'
|| '"OPMERKING";'
|| '"OPDRACHT_VOLGNUMMER";'
|| '"OPDRACHT_TYPE";'
|| '"OPDRACHT_STATUS";'
|| '"OPDRACHT_DUUR_GEPLAND";'
|| '"OPDRACHT_DATUM";'
|| '"OPDRACHT_VERZONDEN";'
|| '"OPDRACHT_GEACCEPTEERD";'
|| '"OPDRACHT_AFGEMELD";'
|| '"OPDRACHT_DOORLOOPTIJD";'
|| '"OPDRACHT_OMSCHRIJVING";'
|| '"OPDRACHT_OPMERKING";'
|| '"OPDRACHT_UITVOERENDE";'
|| '"OPDRACHT_CONTRACT";'
|| '"OPDRACHT_CONTACTPERSOON";'
|| '"OPDRACHT_UREN";'
|| '"OPDRACHT_CORRECTIE";'
|| '"OPDRACHT_MATERIAAL";'
|| '"OPDRACHT_UURTARIEF";'
|| '"OPDRACHT_KOSTEN";'
|| '"OPDRACHT_KOSTENPLAATS";'
|| '"OPDRACHT_KOSTENPLAATS_OMS"',
0
FROM DUAL
UNION ALL
SELECT REPLACE (REPLACE ( '"'
|| qvw.mld_melding_key
|| '";"'
|| meldingnummer
|| '";"'
|| alg_district_omschrijving
|| '";"'
|| locatie
|| '";"'
|| locatie_omschrijving
|| '";"'
|| alg_locatie_key
|| '";"'
|| gebouw
|| '";"'
|| gebouw_naam
|| '";"'
|| verdieping
|| '";"'
|| ruimtenr
|| '";"'
|| ruimte_omschrijving
|| '";"'
|| melding_ordernr
|| '";"'
|| kostensoortgroep
|| '";"'
|| kostensoort
|| '";"'
|| kostenplaats
|| '";"'
|| kostenplaats_oms
|| '";"'
|| melder
|| '";"'
|| prs_perslid_key
|| '";"'
|| afdeling
|| '";"'
|| afdeling_omschrijving
|| '";"'
|| prs_bedrijf_key
|| '";"'
|| invoerder
|| '";"'
|| fac.gettrackinguserkey ('MLDNEW',
m.mld_melding_key
)
|| '";"'
|| soortmelding
|| '";"'
|| ins_discipline_key
|| '";"'
|| (SELECT ins_srtdiscipline_prefix
FROM ins_srtdiscipline sd,
ins_tab_discipline d
WHERE qvw.ins_discipline_key =
d.ins_discipline_key
AND d.ins_srtdiscipline_key =
sd.ins_srtdiscipline_key)
|| '";"'
|| productgroep
|| '";"'
|| subproductgroep
|| '";"'
|| subproductgroepgroep
|| '";"'
|| status
|| '";"'
|| sla_werkdgn
|| '";"'
|| plan_uitvoertijd
|| '";"'
|| datum
|| '";"'
|| ingezien
|| '";"'
|| geaccepteerd
|| '";"'
|| afgemeld
|| '";"'
|| doorlooptijd_werkdgn
|| '";"'
|| omschrijving
|| '";"'
|| opmerking
|| '";"'
|| opdracht_volgnummer
|| '";"'
|| (SELECT mld_typeopdr_omschrijving
FROM mld_opdr o, mld_typeopdr t
WHERE m.mld_melding_key = o.mld_melding_key
AND qvw.opdracht_volgnummer =
o.mld_opdr_bedrijfopdr_volgnr
AND o.mld_typeopdr_key =
t.mld_typeopdr_key)
|| '";"'
|| opdracht_status
|| '";"'
|| opdracht_duur_gepland
|| '";"'
|| opdracht_datum
|| '";"'
|| opdracht_verzonden
|| '";"'
|| opdracht_geaccepteerd
|| '";"'
|| opdracht_afgemeld
|| '";"'
|| opdracht_doorlooptijd
|| '";"'
|| opdracht_omschrijving
|| '";"'
|| opdracht_opmerking
|| '";"'
|| opdracht_uitvoerende
|| '";"'
|| opdracht_contract
|| '";"'
|| opdracht_contactpersoon
|| '";"'
|| opdracht_uren
|| '";"'
|| opdracht_correctie
|| '";"'
|| opdracht_materiaal
|| '";"'
|| opdracht_uurtarief
|| '";"'
|| opdracht_kosten
|| '";"'
|| opdracht_kostenplaats
|| '";"'
|| opdracht_kostenplaats_oms
|| '"',
CHR (13),
''
),
CHR (10),
'<ret>'
),
1
FROM aaxx_v_mld_algemeen qvw, mld_melding m
WHERE qvw.mld_melding_key = m.mld_melding_key
UNION ALL
SELECT REPLACE (REPLACE ( '"'
|| cnt_contract_key
|| '";"'
|| cnt_contract_nummer_intern || '.' || COALESCE(cnt_contract_versie, '0')
|| '";"";"";"";"";"";"";"";"";"";"";"'
|| kg.prs_kostensoortgrp_oms
|| '";"'
|| prs_kostensoort_oms
|| '";"'
|| prs_kostenplaats_nr
|| '";"'
|| prs_kostenplaats_omschrijving
|| '";"'
|| prs_perslid_naam_full
|| '";"'
|| c.prs_perslid_key_beh
|| '";"'
|| prs_afdeling_naam
|| '";"'
|| prs_afdeling_omschrijving
|| '";"'
|| a.prs_bedrijf_key
|| '";"";"";"'
|| 'Contract'
|| '";"'
|| c.ins_discipline_key
|| '";"'
|| 'C'
|| '";"'
|| d.ins_discipline_omschrijving
|| '";"";"";"'
|| DECODE (SIGN(cnt_contract_looptijd_van
- SYSDATE),
1,
'Toekomst',
-1,
DECODE (SIGN(cnt_contract_looptijd_tot
- SYSDATE),
1,
'Actueel',
-1,
'Verlopen'
)
)
|| '";"";"";"";"";"";"";"";"'
|| aaxx_exp_escape(substr(c.cnt_contract_document, 1, 1000))
|| '";"";"'
|| '1'
|| '";"'
|| 'Contract Order'
|| '";"'
|| DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE), 1, 'Uitgegeven',
-1, 'Afgemeld')
|| '";"";"";"";"";"";"";"";"";"'
|| b.prs_bedrijf_naam
|| '";"";"";"";"";"";"";"'
|| REPLACE (TO_CHAR (c.cnt_contract_kosten,
'9999990.99'
),
'.',
','
)
|| '";"'
|| prs_kostenplaats_nr
|| '";"'
|| prs_kostenplaats_omschrijving
|| '"',
CHR (13),
''
),
CHR (10),
'<ret>'
),
2
FROM cnt_contract c,
ins_tab_discipline d,
prs_kostensoort ks,
prs_kostensoortgrp kg,
prs_kostenplaats kp,
prs_v_perslid_fullnames pf,
prs_v_afdeling a,
prs_bedrijf b
WHERE c.ins_discipline_key = d.ins_discipline_key
AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND ks.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND c.prs_perslid_key_beh = pf.prs_perslid_key
AND c.prs_afdeling_key_eig = a.prs_afdeling_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_verwijder IS NULL
UNION ALL
SELECT REPLACE (
REPLACE (
'"'
|| bes_bestelling_key
|| '";"'
|| bestelaanvraagnr
|| '";"'
|| alg_district_omschrijving
|| '";"'
|| alg_locatie_code
|| '";"'
|| alg_locatie_omschrijving
|| '";"'
|| alg_locatie_key
|| '";"'
|| alg_gebouw_code
|| '";"'
|| alg_gebouw_naam
|| '";"' -- verdieping
|| '";"' -- ruimte_nr
|| '";"' -- ruimte_omschrijving
|| '";"'
|| bes_bestelling_ordernr
|| '";"'
|| kostensoortgroep
|| '";"'
|| kostensoort
|| '";"'
|| kpn
|| '";"'
|| kpn_omschrijving
|| '";"'
|| besteller
|| '";"'
|| prs_perslid_key_best
|| '";"'
|| afdeling_code
|| '";"'
|| afdeling_omschrijving
|| '";"'
|| prs_bedrijf_key
|| '";"'
|| invoerder
|| '";"'
|| invoerder_key
|| '";"'
|| 'Bestelling'
|| '";"'
|| ins_discipline_key
|| '";"'
|| 'BE'
|| '";"'
|| ins_discipline_omschrijving
|| '";"' -- stdmelding
|| '";"'
|| kostensoortgroep
|| '";"'
|| status
|| '";"'
|| sla_tijd
|| '";"'
|| sla_tijd
|| '";"'
|| besteldatum
|| '";"' -- datum ingezien
|| '";"'
|| acceptatie_datum
|| '";"'
|| ontvangen_datum
|| '";"'
|| doorlooptijd_werkdgn
|| '";"'
|| omschrijving
|| '";"' -- opmerking
|| '";"'
|| opdr_volgnr
|| '";"'
|| 'Purchase Order'
|| '";"'
|| opdr_status
|| '";"'
|| decode(opdr_volgnr, null, null, sla_tijd)
|| '";"'
|| opdr_datum
|| '";"' -- opdr geaccepteerd
|| '";"'
|| verzonden_datum
|| '";"'
|| opdr_ontv_datum
|| '";"'
|| decode(opdr_volgnr, null, null, doorlooptijd_werkdgn)
|| '";"'
|| opdr_omschrijving
|| '";"'
|| bes_bestelopdr_opmerking
|| '";"'
|| leverancier
|| '";"' -- contract
|| '";"' -- contactpersoon
|| '";"' -- uren
|| '";"' -- correctie
|| '";"' -- materiaal
|| '";"' -- uurtarief
|| '";"'
|| REPLACE (TO_CHAR (opdr_kosten,
'9999990.99'
),
'.',
','
)
|| '";"'
|| decode(opdr_volgnr, null, null, kpn)
|| '";"'
|| decode(opdr_volgnr, null, null, kpn_omschrijving)
|| '"',
CHR (13),
''),
CHR (10),
'<ret>'),
3
FROM (SELECT b.bes_bestelling_key bes_bestelling_key,
b.bes_bestelling_key bestelaanvraagnr,
di.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_key,
g.alg_gebouw_code,
g.alg_gebouw_naam,
b.bes_bestelling_ordernr,
TO_CHAR (b.bes_bestelling_datum, 'YYYY-MM-DD HH24:MI') besteldatum,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
besteller,
p.prs_perslid_key prs_perslid_key_best,
(SELECT MAX (prs_perslid_naam_full)
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key =
fac.gettrackinguserkey ('BESAP2',
b.bes_bestelling_key))
invoerder,
fac.gettrackinguserkey ('BESAP2', b.bes_bestelling_key)
invoerder_key,
TO_CHAR (fac.gettrackingdate ('BESACP', b.bes_bestelling_key), 'YYYY-MM-DD HH24:MI')
acceptatie_datum,
TO_CHAR (fac.gettrackingdate ('BESOTV', b.bes_bestelling_key), 'YYYY-MM-DD HH24:MI')
ontvangen_datum,
aaxx_bestelling_items (b.bes_bestelling_key) 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 = d.prs_kostensoort_key)
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.PRS_KOSTENSOORT_KEY = d.prs_kostensoort_key)
kostensoort,
k.prs_kostenplaats_nr kpn,
k.prs_kostenplaats_omschrijving kpn_omschrijving,
a.prs_afdeling_naam afdeling_code,
a.prs_afdeling_omschrijving afdeling_omschrijving,
d.ins_discipline_key,
d.ins_discipline_omschrijving,
TO_CHAR (b.bes_bestelling_leverdatum, 'YYYY-MM-DD HH24:MI')
afleverdatum,
TO_CHAR(fac.count_work_days (
b.bes_bestelling_datum,
NVL (
fac.gettrackingdate ('BESOTV',
b.bes_bestelling_key),
SYSDATE)))
doorlooptijd_werkdgn,
NVL (
(SELECT bdp.bes_disc_params_leverdagen
FROM bes_disc_params bdp
WHERE d.ins_discipline_key = bdp.bes_ins_discipline_key),
0)
sla_tijd,
(SELECT bes_bestellingstatuses_omschr
FROM bes_bestellingstatuses bs
WHERE bs.bes_bestellingstatuses_key =
b.bes_bestelling_status)
status,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key)
leverancier,
(SELECT bes_bestelopdrstatuses_omschr
FROM bes_bestelopdrstatuses bs
WHERE bs.bes_bestelopdrstatuses_key =
bo.bes_bestelopdr_status)
opdr_status,
SUBSTR (bo.bes_bestelopdr_id,
INSTR (bo.bes_bestelopdr_id, '/') + 1)
opdr_volgnr,
TO_CHAR (bo.bes_bestelopdr_datum, 'YYYY-MM-DD') opdr_datum,
TO_CHAR (fac.gettrackingdate ('BES2SN', bo.bes_bestelopdr_key), 'YYYY-MM-DD HH24:MI')
verzonden_datum,
TO_CHAR (fac.gettrackingdate ('BES2AF', bo.bes_bestelopdr_key), 'YYYY-MM-DD HH24:MI')
opdr_ontv_datum,
bes_bestelopdr_items (bo.bes_bestelopdr_key) opdr_omschrijving,
bes_bestelopdr_opmerking,
(SELECT SUM(bes_bestelopdr_item_aantal
* bes_bestelopdr_item_prijs)
FROM bes_bestelopdr_item boi
WHERE boi.bes_bestelopdr_key = bo.bes_bestelopdr_key)
opdr_kosten,
bo.prs_bedrijf_key
FROM bes_bestelling b,
prs_perslid p,
prs_kostenplaats k,
prs_afdeling a,
mld_adres ma,
bes_bestelopdr bo,
ins_tab_discipline d,
alg_gebouw g,
alg_locatie l,
alg_district di,
(SELECT DISTINCT bes_bestelling_key, bes_bestelopdr_key
FROM bes_bestelling_item bi, bes_bestelopdr_item boi
WHERE bi.bes_bestelopdr_item_key =
boi.bes_bestelopdr_item_key) bes_opdr,
(SELECT DISTINCT bes_bestelling_key, ins_discipline_key
FROM bes_bestelling_item bi,
bes_srtdeel sd,
bes_srtgroep sg
WHERE bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key) cat,
(SELECT mld_adres_key,
max(alg_gebouw_key) alg_gebouw_key
FROM alg_gebouw
GROUP BY mld_adres_key) adr_geb
WHERE b.prs_perslid_key = p.prs_perslid_key
AND b.prs_kostenplaats_key = k.prs_kostenplaats_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND b.mld_adres_key_lev = ma.mld_adres_key
AND b.bes_bestelling_key = bes_opdr.bes_bestelling_key(+)
AND bes_opdr.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
AND ma.alg_locatie_key = l.alg_locatie_key(+)
AND l.alg_district_key = di.alg_district_key(+)
AND b.bes_bestelling_key = cat.bes_bestelling_key
AND cat.ins_discipline_key = d.ins_discipline_key
AND ma.mld_adres_key = adr_geb.mld_adres_key(+)
AND adr_geb.alg_gebouw_key = g.alg_gebouw_key(+));
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_MLD_KENM_MLD
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_mld_kenm_mld (
result,
result_order
)
AS
SELECT '"MLD_MELDING_ID";"MLD_KENMERK_OMSCHRIJVING";"MLD_KENMERK_WAARDE"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| mld_melding_key
|| '";"'
|| sk.mld_srtkenmerk_omschrijving
|| '";"'
|| aaxx_exp_escape (REPLACE (REPLACE (DECODE (sk.mld_srtkenmerk_kenmerktype,
'R', (SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
mld_kenmerkmelding_waarde),
'S', (SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
mld_kenmerkmelding_waarde),
'D', TO_CHAR (fac.safe_to_date (mld_kenmerkmelding_waarde,
'dd-mm-yyyy'
),
'yyyy-mm-dd'
),
mld_kenmerkmelding_waarde),
CHR (13),
''
),
CHR (10),
'<ret>'
))
|| '"',
1
FROM mld_kenmerk k, mld_srtkenmerk sk, mld_kenmerkmelding km
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key;
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_MLD_KENM_OPD
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_mld_kenm_opd (
result,
result_order
)
AS
SELECT '"MLD_OPDR_ID";"MLD_KENMERK_OMSCHRIJVING";"MLD_KENMERK_WAARDE"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr
|| '";"'
|| sk.mld_srtkenmerk_omschrijving
|| '";"'
|| aaxx_exp_escape (REPLACE (REPLACE (DECODE (sk.mld_srtkenmerk_kenmerktype,
'R', (SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
mld_kenmerkopdr_waarde),
'S', (SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
mld_kenmerkopdr_waarde),
'D', TO_CHAR (fac.safe_to_date (mld_kenmerkopdr_waarde,
'dd-mm-yyyy'
),
'yyyy-mm-dd'
),
mld_kenmerkopdr_waarde),
CHR (13),
''
),
CHR (10),
'<ret>'
))
|| '"',
1
FROM mld_kenmerk k, mld_srtkenmerk sk, mld_kenmerkopdr ko, mld_opdr o
WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND ko.mld_opdr_key = o.mld_opdr_key;
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_RES_ALGEMEEN
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_res_algemeen (
res_reservering_key,
nummer,
res_omschrijving,
invoerdatum,
datum,
gastheer,
res_rsv_ruimte_host_key,
contact,
res_rsv_ruimte_contact_key,
invoerder,
invoerder_key,
kostensoortgroep,
kostensoort,
kpn,
kpn_omschrijving,
prs_bedrijf_key,
afdeling_code,
afdeling_omschrijving,
district_omschrijving,
alg_locatie_key,
locatie,
locatie_omschrijving,
gebouw,
verdieping,
ruimte,
opstelling,
no_show,
mandaat,
personeelsnr,
bsn,
werkplek,
ins_discipline_key,
catalogus_ins_discipline_key,
catalogus,
reserveerbare_ruimte,
bezoekers,
van,
tot,
duur,
status,
activiteit,
voorziening_ins_discipline_key,
voorziening_catalogus,
voorziening_product,
voorziening_totaalprijs,
voorziening_van,
voorziening_tot,
voorziening_aantal,
voorziening_prijs,
voorziening_inkoopprijs,
voorziening_btw,
voorziening_afgemeld
)
AS
SELECT res.res_reservering_key,
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
aaxx_exp_escape (rrr.res_rsv_ruimte_omschrijving),
TO_CHAR (NVL (rrr.res_rsv_ruimte_aanmaak, voorz.van), 'YYYY-MM-DD'),
TO_CHAR (NVL (rrr.res_rsv_ruimte_van, voorz.van), 'YYYY-MM-DD'),
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
rrr.res_rsv_ruimte_host_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
rrr.res_rsv_ruimte_contact_key,
(SELECT prs_perslid_naam_full
FROM fac_tracking t, fac_srtnotificatie sn, prs_v_perslid_fullnames_all pf
WHERE sn.fac_srtnotificatie_code = 'RESNEW'
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
AND t.prs_perslid_key = pf.prs_perslid_key
AND fac_tracking_refkey = rrr.res_rsv_ruimte_key),
(SELECT prs_perslid_key
FROM fac_tracking t, fac_srtnotificatie sn
WHERE sn.fac_srtnotificatie_code = 'RESNEW'
AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key
AND fac_tracking_refkey = rrr.res_rsv_ruimte_key),
(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 =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
COALESCE (voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key =
rr.res_ruimte_key
AND rr.res_discipline_key =
d.ins_discipline_key)
)))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
COALESCE (voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key =
rr.res_ruimte_key
AND rr.res_discipline_key =
d.ins_discipline_key)
)))
kostensoort,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving,
(SELECT prs_bedrijf_key
FROM prs_v_afdeling pva
WHERE pva.prs_afdeling_key = a.prs_afdeling_key),
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
(SELECT d.alg_district_omschrijving
FROM alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT l.alg_locatie_key
FROM alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_code
FROM alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_omschrijving
FROM alg_locatie l, alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_verdieping_code
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_ruimte_nr
FROM alg_ruimte r
WHERE r.alg_ruimte_key = r2a.alg_ruimte_key),
r2a.opstelling,
rrr.res_rsv_ruimte_noshow,
NVL ( (SELECT pr.fac_profiel_limiet
FROM fac_profiel pr
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0
),
prs_perslid_nr,
NULL,
wp2.prs_werkplek_aanduiding,
COALESCE (voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key)
),
(SELECT ins_discipline_key
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
TO_CHAR (rrr.res_rsv_ruimte_bezoekers),
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi'),
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi'),
TO_CHAR (NVL ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van)
* 24,
0
),
'999999990.99'
),
(SELECT res_status_bo_omschrijving
FROM res_status_bo rs
WHERE rs.res_status_bo_key = COALESCE (voorz.res_status_bo_key, rrr.res_status_bo_key)),
(SELECT res_activiteit_omschrijving
FROM res_activiteit ra
WHERE ra.res_activiteit_key = rrr.res_activiteit_key),
voorz.ins_discipline_key,
voorz.catalogus,
voorz.product,
REPLACE (TO_CHAR (voorz.totaalprijs), '.', ','),
TO_CHAR (voorz.van, 'hh24:mi'),
TO_CHAR (voorz.tot, 'hh24:mi'),
REPLACE (TO_CHAR (voorz.aantal), '.', ','),
REPLACE (TO_CHAR (voorz.prijs), '.', ','),
REPLACE (TO_CHAR (voorz.inkoopprijs), '.', ','),
REPLACE (TO_CHAR (voorz.btw), '.', ','),
voorz.afgemeld
FROM res_v_aanwezigrsv_ruimte rrr,
res_reservering res,
prs_kostenplaats k,
prs_perslid p,
prs_afdeling a,
(SELECT res_rsv_ruimte_key,
MAX (o.res_opstelling_omschrijving) opstelling,
MAX (ra.alg_ruimte_key) alg_ruimte_key
FROM res_rsv_ruimte r,
res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte rr,
res_alg_ruimte ra
WHERE r.res_rsv_ruimte_verwijder IS NULL
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND ro.res_opstelling_key = o.res_opstelling_key
AND rr.res_ruimte_key = ra.res_ruimte_key
GROUP BY res_rsv_ruimte_key
UNION ALL
SELECT res_rsv_ruimte_key, '' opstelling, alg_ruimte_key
FROM res_rsv_ruimte
WHERE alg_ruimte_key IS NOT NULL) r2a,
(SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key,
d.ins_deel_omschrijving product,
rrd.res_status_bo_key,
DECODE (rd.res_deel_prijs_vast,
1,
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van)
* 24
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
)
totaalprijs,
rrd.res_rsv_deel_van van,
rrd.res_rsv_deel_tot tot,
(rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24 aantal,
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs) prijs,
null inkoopprijs,
null btw,
'' afgemeld,
c.ins_discipline_key ins_discipline_key,
c.ins_discipline_omschrijving catalogus
FROM res_v_aanwezigrsv_deel rrd,
res_deel rd,
ins_deel d,
ins_tab_discipline c
WHERE rrd.res_deel_key = rd.res_deel_key
AND d.ins_deel_key = rd.res_ins_deel_key
AND rrd.res_rsv_ruimte_key IS NOT NULL
AND c.ins_discipline_key = rd.res_discipline_key
UNION ALL
SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key,
ra.res_artikel_omschrijving product,
rra.res_status_bo_key,
NVL (rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal * res_artikel_prijs
)
totaalprijs,
rra.res_rsv_artikel_levering van,
NULL tot,
rra.res_rsv_artikel_aantal aantal,
NVL (rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal,
res_artikel_prijs
)
prijs,
res_artikel_inkoopprijs inkoopprijs,
res_artikel_btw btw,
'' afgemeld,
c.ins_discipline_key ins_discipline_key,
c.ins_discipline_omschrijving catalogus
FROM res_v_aanwezigrsv_artikel rra,
res_artikel ra,
ins_tab_discipline c
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = c.ins_discipline_key) voorz,
(SELECT pw.prs_perslid_key,
MIN (prs_werkplek_aanduiding)
|| DECODE (COUNT ( * ), 1, '', '...')
prs_werkplek_aanduiding
FROM prs_v_werkplek_gegevens wp, prs_perslidwerkplek pw
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
GROUP BY pw.prs_perslid_key) wp2
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND wp2.prs_perslid_key(+) = p.prs_perslid_key
AND (rrr.res_ruimte_opstel_key IS NOT NULL
OR voorz.res_rsv_ruimte_key IS NOT NULL);
CREATE OR REPLACE VIEW aaxx_v_export_dwh_res_algemeen (RESULT, result_order)
AS
SELECT '"RES_RESERVERING_KEY";'||
'"NUMMER";'||
'"RES_OMSCHRIJVING";'||
'"INVOERDATUM";'||
'"DATUM";'||
'"GASTHEER";'||
'"GASTHEER_KEY";'||
'"CONTACT";'||
'"CONTACT_KEY";'||
'"INVOERDER";'||
'"INVOERDER_KEY";'||
'"KOSTENSOORTGROEP";'||
'"KOSTENSOORT";'||
'"KPN";'||
'"KPN_OMSCHRIJVING";'||
'"PRS_BEDRIJF_KEY";'||
'"AFDELING_CODE";'||
'"AFDELING_OMSCHRIJVING";'||
'"DISTRICT_OMSCHRIJVING";'||
'"ALG_LOCATIE_KEY";'||
'"LOCATIE";'||
'"LOCATIE_OMSCHRIJVING";'||
'"GEBOUW";'||
'"VERDIEPING";'||
'"RUIMTE";'||
'"OPSTELLING";'||
'"NO_SHOW";'||
'"MANDAAT";'||
'"PERSONEELSNR";'||
'"BSN";'||
'"WERKPLEK";'||
'"INS_DISCIPLINE_KEY";'||
'"CATALOGUS_INS_DISCIPLINE_KEY";'||
'"CATALOGUS";'||
'"RESERVEERBARE_RUIMTE";'||
'"BEZOEKERS";'||
'"VAN";'||
'"TOT";'||
'"DUUR";'||
'"STATUS";'||
'"ACTIVITEIT";'||
'"VOORZIENING_INS_DISCIPLINE_KEY";'||
'"VOORZIENING_CATALOGUS";'||
'"VOORZIENING_PRODUCT";'||
'"VOORZIENING_TOTAALPRIJS";'||
'"VOORZIENING_VAN";'||
'"VOORZIENING_TOT";'||
'"VOORZIENING_AANTAL";'||
'"VOORZIENING_PRIJS";'||
'"VOORZIENING_INKOOPPRIJS";'||
'"VOORZIENING_BTW";'||
'"VOORZIENING_AFGEMELD"',0
FROM DUAL
UNION ALL
SELECT REPLACE (REPLACE ( '"'
|| res_reservering_key
|| '";"'
|| nummer
|| '";"'
|| res_omschrijving
|| '";"'
|| invoerdatum
|| '";"'
|| datum
|| '";"'
|| gastheer
|| '";"'
|| res_rsv_ruimte_host_key
|| '";"'
|| contact
|| '";"'
|| res_rsv_ruimte_contact_key
|| '";"'
|| invoerder
|| '";"'
|| invoerder_key
|| '";"'
|| kostensoortgroep
|| '";"'
|| kostensoort
|| '";"'
|| kpn
|| '";"'
|| kpn_omschrijving
|| '";"'
|| prs_bedrijf_key
|| '";"'
|| afdeling_code
|| '";"'
|| afdeling_omschrijving
|| '";"'
|| district_omschrijving
|| '";"'
|| alg_locatie_key
|| '";"'
|| locatie
|| '";"'
|| locatie_omschrijving
|| '";"'
|| gebouw
|| '";"'
|| verdieping
|| '";"'
|| ruimte
|| '";"'
|| opstelling
|| '";"'
|| no_show
|| '";"'
|| mandaat
|| '";"'
|| personeelsnr
|| '";"'
|| bsn
|| '";"'
|| werkplek
|| '";"'
|| ins_discipline_key
|| '";"'
|| catalogus_ins_discipline_key
|| '";"'
|| catalogus
|| '";"'
|| reserveerbare_ruimte
|| '";"'
|| bezoekers
|| '";"'
|| van
|| '";"'
|| tot
|| '";"'
|| duur
|| '";"'
|| status
|| '";"'
|| activiteit
|| '";"'
|| voorziening_ins_discipline_key
|| '";"'
|| voorziening_catalogus
|| '";"'
|| voorziening_product
|| '";"'
|| voorziening_totaalprijs
|| '";"'
|| voorziening_van
|| '";"'
|| voorziening_tot
|| '";"'
|| voorziening_aantal
|| '";"'
|| voorziening_prijs
|| '";"'
|| voorziening_inkoopprijs
|| '";"'
|| voorziening_btw
|| '";"'
|| voorziening_afgemeld
|| '"', CHR (13), ''
), CHR (10), '<ret>'
), 1
FROM aaxx_v_res_algemeen;
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_RES_KENMERK
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_res_kenmerk (
result,
result_order
)
AS
SELECT '"NUMMER";"KENMERK_OMSCHRIJVING";"KENMERK_WAARDE"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|| '";"'
|| sk.res_srtkenmerk_omschrijving
|| '";"'
|| aaxx_exp_escape (REPLACE (REPLACE (DECODE (sk.res_srtkenmerk_kenmerktype,
'R', (SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
res_kenmerkreservering_waarde),
'S', (SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
res_kenmerkreservering_waarde),
'D', TO_CHAR (fac.safe_to_date (res_kenmerkreservering_waarde,
'dd-mm-yyyy'
),
'yyyy-mm-dd'
),
res_kenmerkreservering_waarde),
CHR (13),
''
),
CHR (10),
'<ret>'
))
|| '"',
1
FROM res_kenmerk k, res_srtkenmerk sk, res_kenmerkwaarde kw, res_v_aanwezigrsv_ruimte rrr
WHERE rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key;
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_BES_ALGEMEEN
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW AAXX_V_EXPORT_DWH_BES_ALGEMEEN(RESULT, result_order)
AS
SELECT
'"BES_BESTELLING_KEY";'||
'"BESTELAANVRAAGNR";'||
'"BESTELDATUM";'||
'"BESTELLER";'||
'"INVOERDER";'||
'"KOSTENSOORTGROEP";'||
'"KOSTENSOORT";'||
'"KPN";'||
'"KPN_OMSCHRIJVING";'||
'"PRS_BEDRIJF_KEY";'||
'"AFDELING_CODE";'||
'"AFDELING_OMSCHRIJVING";'||
'"ALG_LOCATIE_KEY";'||
'"LOCATIE_CODE";'||
'"DISTRICT_OMSCHIJVING";'||
'"AFLEVERADRES";'||
'"MANDAAT";'||
'"PERSONEELSNR";'||
'"WERKPLEK";'||
'"INS_DISCIPLINE_KEY";'||
'"CATALOGUS";'||
'"GROEP";'||
'"AFLEVERDATUM";'||
'"DOORLOOPTIJD_WERKDGN";'||
'"SLA_TIJD";'||
'"PRODUCTCODE";'||
'"PRIJS";'||
'"INKOOPPRIJS";'||
'"STATUS";'||
'"GEFIATTEERDDOOR";'||
'"BESTELOPDRACHTNUMMER";'||
'"LEVERANCIER";'||
'"AANTAL";'||
'"ITEMPRIJS";'||
'"ITEMINKOOPPRIJS";'||
'"PRODUCTOMSCHRIJVING";'||
'"ITEMPOSNR"',TO_CHAR(0)
FROM DUAL
UNION ALL
SELECT REPLACE (REPLACE ( '"'
|| bes_bestelling_key
|| '";"'
|| bestelaanvraagnr
|| '";"'
|| besteldatum
|| '";"'
|| besteller
|| '";"'
|| invoerder
|| '";"'
|| kostensoortgroep
|| '";"'
|| kostensoort
|| '";"'
|| kpn
|| '";"'
|| kpn_omschrijving
|| '";"'
|| prs_bedrijf_key
|| '";"'
|| afdeling_code
|| '";"'
|| afdeling_omschrijving
|| '";"'
|| alg_locatie_key
|| '";"'
|| locatie_code
|| '";"'
|| district_omschijving
|| '";"'
|| afleveradres
|| '";"'
|| mandaat
|| '";"'
|| personeelsnr
|| '";"'
|| werkplek
|| '";"'
|| ins_discipline_key
|| '";"'
|| catalogus
|| '";"'
|| groep
|| '";"'
|| afleverdatum
|| '";"'
|| doorlooptijd_werkdgn
|| '";"'
|| sla_tijd
|| '";"'
|| productcode
|| '";"'
|| prijs
|| '";"'
|| inkoopprijs
|| '";"'
|| status
|| '";"'
|| gefiatteerddoor
|| '";"'
|| bestelopdrachtnummer
|| '";"'
|| leverancier
|| '";"'
|| aantal
|| '";"'
|| itemprijs
|| '";"'
|| iteminkoopprijs
|| '";"'
|| productomschrijving
|| '";"'
|| itemposnr
|| '"', CHR (13), ''
), CHR (10), '<ret>'
), 1 || bestelopdrachtnummer
FROM (SELECT b.bes_bestelling_key bes_bestelling_key,
b.bes_bestelling_key bestelaanvraagnr,
TO_CHAR (b.bes_bestelling_datum, 'YYYY-MM-DD') besteldatum,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = p.prs_perslid_key)
besteller,
(SELECT MAX (prs_perslid_naam_full)
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key =
fac.gettrackinguserkey ('BESAP2',
b.bes_bestelling_key))
invoerder,
(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 =
(SELECT disc.PRS_KOSTENSOORT_KEY
FROM bes_discipline disc
WHERE disc.ins_DISCIPLINE_KEY =
d.ins_discipline_key))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.PRS_KOSTENSOORT_KEY =
(SELECT disc.PRS_KOSTENSOORT_KEY
FROM bes_discipline disc
WHERE disc.ins_DISCIPLINE_KEY =
d.ins_discipline_key))
kostensoort,
k.prs_kostenplaats_nr kpn,
k.prs_kostenplaats_omschrijving kpn_omschrijving,
(SELECT prs_bedrijf_key
FROM prs_v_afdeling pva
WHERE pva.prs_afdeling_key = a.prs_afdeling_key)
prs_bedrijf_key,
a.prs_afdeling_naam afdeling_code,
a.prs_afdeling_omschrijving afdeling_omschrijving,
ma.alg_locatie_key alg_locatie_key,
(SELECT alg_locatie_code
FROM alg_locatie l
WHERE l.alg_locatie_key = ma.alg_locatie_key)
locatie_code,
(SELECT alg_district_omschrijving
FROM alg_locatie l, alg_district d
WHERE l.alg_district_key = d.alg_district_key
AND l.alg_locatie_key = ma.alg_locatie_key)
district_omschijving,
ma.mld_adres_naam afleveradres,
NVL ( (SELECT pr.fac_profiel_limiet
FROM fac_profiel pr
WHERE p.fac_profiel_key = pr.fac_profiel_key), 0)
mandaat,
prs_perslid_nr personeelsnr,
wp2.prs_werkplek_aanduiding werkplek,
d.ins_discipline_key ins_discipline_key,
d.ins_discipline_omschrijving catalogus,
sg.bes_srtgroep_omschrijving groep,
TO_CHAR (b.bes_bestelling_leverdatum, 'YYYY-MM-DD')
afleverdatum,
TO_CHAR(fac.count_work_days (
b.bes_bestelling_datum,
NVL (
fac.gettrackingdate ('BESOTV',
b.bes_bestelling_key),
SYSDATE)))
doorlooptijd_werkdgn,
NVL (
(SELECT bdp.bes_disc_params_leverdagen
FROM bes_disc_params bdp
WHERE d.ins_discipline_key =
bdp.bes_ins_discipline_key),
0)
sla_tijd,
sd.bes_srtdeel_nr productcode,
REPLACE (
TO_CHAR (
bi.bes_bestelling_item_prijs
* bi.bes_bestelling_item_aantal,
'9999990.99'),
'.',
',')
prijs,
REPLACE (
TO_CHAR (
NVL (sd.bes_srtdeel_inkprijs,
bi.bes_bestelling_item_prijs)
* bi.bes_bestelling_item_aantal,
'9999990.99'),
'.',
',')
inkoopprijs,
(SELECT bes_bestellingstatuses_omschr
FROM bes_bestellingstatuses bs
WHERE bs.bes_bestellingstatuses_key =
b.bes_bestelling_status)
status,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = b.bes_bestelling_fiat_user)
gefiatteerddoor,
bo.bes_bestelopdr_id bestelopdrachtnummer,
(SELECT b.prs_bedrijf_naam
FROM prs_bedrijf b
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key) leverancier,
bi.bes_bestelling_item_aantal aantal,
REPLACE (
TO_CHAR (bi.bes_bestelling_item_prijs, '9999990.99'),
'.',
',')
itemprijs,
REPLACE (
TO_CHAR (
NVL (sd.bes_srtdeel_inkprijs,
bi.bes_bestelling_item_prijs),
'9999990.99'),
'.',
',')
iteminkoopprijs,
sd.bes_srtdeel_omschrijving productomschrijving,
boi.bes_bestelopdr_item_posnr itemposnr
FROM bes_bestelling b,
prs_perslid p,
prs_kostenplaats k,
prs_afdeling a,
mld_adres ma,
( SELECT pw.prs_perslid_key,
MIN (prs_werkplek_aanduiding)
|| DECODE (COUNT ( * ), 1, '', '...')
prs_werkplek_aanduiding
FROM prs_v_werkplek_gegevens wp, prs_perslidwerkplek pw
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
GROUP BY pw.prs_perslid_key) wp2,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_bestelopdr bo,
bes_srtdeel sd,
bes_srtgroep sg,
ins_tab_discipline d
WHERE b.prs_perslid_key = p.prs_perslid_key
AND b.prs_kostenplaats_key = k.prs_kostenplaats_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND b.mld_adres_key_lev = ma.mld_adres_key
AND wp2.prs_perslid_key(+) = p.prs_perslid_key
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_bestelopdr_item_key =
boi.bes_bestelopdr_item_key(+)
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key(+)
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = d.ins_discipline_key);
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_BES_KENMERK
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_bes_kenmerk (
result,
result_order
)
AS
SELECT '"NUMMER";"KENMERK_OMSCHRIJVING";"KENMERK_WAARDE"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| kb.bes_bestelling_key
|| '";"'
|| sk.bes_srtkenmerk_omschrijving
|| '";"'
|| aaxx_exp_escape (
REPLACE (
REPLACE (
aaxx_get_kenmerkwaarde(
sk.bes_srtkenmerk_kenmerktype,
rsk.bes_refsrtkenmerk_objectnaam,
rsk.bes_refsrtkenmerk_kolomnaam,
rsk.bes_refsrtkenmerk_kolomtxt,
rsk.fac_usrtab_key,
bes_kenmerkbestell_waarde), CHR (13), ''
), CHR (10), '<ret>'
)
)
|| '"',
1
FROM bes_kenmerk k, bes_srtkenmerk sk, bes_refsrtkenmerk rsk, bes_kenmerkbestell kb
WHERE kb.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND sk.bes_refsrtkenmerk_key = rsk.bes_refsrtkenmerk_key(+);
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_ALG_ONRGOED
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_alg_onrgoed (
result,
result_order
)
AS
SELECT '"ALG_ONROERENDGOED_KEYS";'
|| '"ALG_ONROERENDGOED_CODE";'
|| '"ALG_ONROERENDGOED_OMSCHRIJVING";'
|| '"ALG_ONROERENDGOED_VERWIJDER";'
|| '"ALG_TYPE";'
|| '"ALG_REGIO_KEY";'
|| '"ALG_REGIO_OMSCHRIJVING";'
|| '"ALG_DISTRICT_KEY";'
|| '"ALG_DISTRICT_OMSCHRIJVING";'
|| '"ALG_LOCATIE_KEY";'
|| '"ALG_LOCATIE_CODE";'
|| '"ALG_LOCATIE_OMSCHRIJVING";'
|| '"ALG_TERREINSECTOR_KEY";'
|| '"ALG_TERREINSECTOR_CODE";'
|| '"ALG_TERREINSECTOR_NAAM";'
|| '"ALG_GEBOUW_KEY";'
|| '"ALG_GEBOUW_CODE";'
|| '"ALG_GEBOUW_NAAM";'
|| '"ALG_VERDIEPING_KEY";'
|| '"ALG_VERDIEPING_CODE";'
|| '"ALG_VERDIEPING_OMSCHRIJVING";'
|| '"ALG_RUIMTE_KEY";'
|| '"ALG_RUIMTE_NR";'
|| '"ALG_RUIMTE_OMSCHRIJVING"',
0
FROM DUAL
UNION ALL
SELECT '"' || alg_onroerendgoed_keys || '";"'
|| DECODE (alg_type,
'T', alg_terreinsector_code,
'G', alg_gebouw_code,
'V', alg_verdieping_code,
'R', alg_ruimte_nr)
|| '";"'
|| DECODE (alg_type,
'T', alg_terreinsector_naam,
'G', alg_gebouw_naam,
'V', alg_verdieping_omschrijving,
'R', alg_ruimte_omschrijving)
|| '";"'
|| TO_CHAR (DECODE (alg_type,
'T', alg_terreinsector_verwijder,
'G', alg_gebouw_verwijder,
'V', alg_verdieping_verwijder,
'R', alg_ruimte_verwijder)
,'YYYY-MM-DD')
|| '";"'
|| aog.alg_type
|| '";"'
|| r.alg_regio_key
|| '";"'
|| r.alg_regio_omschrijving
|| '";"'
|| d.alg_district_key
|| '";"'
|| d.alg_district_omschrijving
|| '";"'
|| l.alg_locatie_key
|| '";"'
|| l.alg_locatie_code
|| '";"'
|| l.alg_locatie_omschrijving
|| '";"'
|| t.alg_terreinsector_key
|| '";"'
|| t.alg_terreinsector_code
|| '";"'
|| t.alg_terreinsector_naam
|| '";"'
|| g.alg_gebouw_key
|| '";"'
|| g.alg_gebouw_code
|| '";"'
|| g.alg_gebouw_naam
|| '";"'
|| v.alg_verdieping_key
|| '";"'
|| v.alg_verdieping_code
|| '";"'
|| v.alg_verdieping_omschrijving
|| '";"'
|| ru.alg_ruimte_key
|| '";"'
|| ru.alg_ruimte_nr
|| '";"'
|| ru.alg_ruimte_omschrijving
|| '"',
1
FROM alg_v_allonroerendgoed aog,
alg_ruimte ru,
alg_verdieping v,
alg_terreinsector t,
alg_gebouw g,
alg_locatie l,
alg_district d,
alg_regio r
WHERE aog.alg_gebouw_key = g.alg_gebouw_key(+)
AND aog.alg_terreinsector_key = t.alg_terreinsector_key(+)
AND aog.alg_verdieping_key = v.alg_verdieping_key(+)
AND aog.alg_ruimte_key = ru.alg_ruimte_key(+)
AND g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = r.alg_regio_key
UNION ALL
SELECT '"";"'
|| alg_locatie_code
|| '";"'
|| alg_locatie_omschrijving
|| '";"'
|| TO_CHAR(l.alg_locatie_verwijder, 'YYYY-MM-DD')
|| '";"'
|| 'L'
|| '";"'
|| r.alg_regio_key
|| '";"'
|| alg_regio_omschrijving
|| '";"'
|| d.alg_district_key
|| '";"'
|| alg_district_omschrijving
|| '";"'
|| l.alg_locatie_key
|| '";"'
|| alg_locatie_code
|| '";"'
|| alg_locatie_omschrijving
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '"',
1
FROM alg_locatie l,
alg_district d,
alg_regio r
WHERE l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = r.alg_regio_key
UNION ALL
SELECT '"";"'
|| '";"'
|| alg_district_omschrijving
|| '";"'
|| TO_CHAR(d.alg_district_verwijder, 'YYYY-MM-DD')
|| '";"'
|| 'D'
|| '";"'
|| r.alg_regio_key
|| '";"'
|| alg_regio_omschrijving
|| '";"'
|| d.alg_district_key
|| '";"'
|| alg_district_omschrijving
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '"',
1
FROM alg_district d,
alg_regio r
WHERE d.alg_regio_key = r.alg_regio_key
UNION ALL
SELECT '"";"'
|| '";"'
|| alg_regio_omschrijving
|| '";"'
|| TO_CHAR(r.alg_regio_verwijder, 'YYYY-MM-DD')
|| '";"'
|| 'R'
|| '";"'
|| r.alg_regio_key
|| '";"'
|| alg_regio_omschrijving
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '";"'
|| '"',
1
FROM alg_regio r;
-------------------------------------------------------------------------------
-- EXPORTFUNCTIE - DWH_ALG_KENMERK
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_export_dwh_alg_kenmerk (
result,
result_order
)
AS
SELECT '"ALG_ONRGOED_KEY";"ALG_KENMERK_NIVEAU";"ALG_KENMERK_OMSCHRIJVING";"ALG_KENMERK_WAARDE"',
0
FROM DUAL
UNION ALL
SELECT '"'
|| aog.alg_onrgoed_key
|| '";"'
|| k.alg_kenmerk_niveau
|| '";"'
|| k.alg_kenmerk_omschrijving
|| '";"'
|| aaxx_exp_escape (REPLACE (REPLACE (DECODE (k.alg_kenmerk_kenmerktype,
'R', (SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
fac.safe_to_number(alg_onrgoedkenmerk_waarde)),
'S', (SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
fac.safe_to_number(alg_onrgoedkenmerk_waarde)),
'D', TO_CHAR (fac.safe_to_date (alg_onrgoedkenmerk_waarde,
'dd-mm-yyyy'
),
'yyyy-mm-dd'
),
alg_onrgoedkenmerk_waarde),
CHR (13),
''
),
CHR (10),
'<ret>'
)
)
|| '"',
1
FROM alg_kenmerk k, alg_onrgoedkenmerk aog
WHERE k.alg_kenmerk_key = aog.alg_kenmerk_key
AND aog.alg_onrgoedkenmerk_verwijder IS NULL;
--=============================================================================
-- IMPORTFUNCTIES
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- IMPORTFUNCTIE - Import srtruimte
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_rap_srtruimte (
key,
omschrijving,
code,
werkplek,
verhuurbaar,
huur,
sk_onderhoud,
sk_utility,
sk_overig,
prijs5
)
AS
SELECT alg_srtruimte_key,
alg_srtruimte_omschrijving,
alg_srtruimte_code,
prs_bevat_werkplek,
prs_verhuurbaar,
alg_srtruimte_prijs,
alg_srtruimte_prijs2,
alg_srtruimte_prijs3,
alg_srtruimte_prijs4,
alg_srtruimte_prijs5
FROM alg_v_aanwezigsrtruimte;
CREATE OR REPLACE PROCEDURE aaxx_import_srtruimte (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
CURSOR c_cursor
IS
SELECT *
FROM fac_imp_file
WHERE fac_imp_file_applicatie = p_applname
ORDER BY fac_imp_file_index;
v_newline VARCHAR2 (1000);
v_aanduiding VARCHAR2 (1000); -- Import line
v_field VARCHAR2 (100); -- Import field
v_fielddelimitor VARCHAR2 (1); -- Field seperator
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_skipfield VARCHAR2 (100);
-- De importvelden
v_key VARCHAR2 (100);
v_omschrijving VARCHAR2 (100);
v_code VARCHAR2 (100);
v_werkplek VARCHAR2 (100);
v_verhuurbaar VARCHAR2 (100);
v_prijs1 VARCHAR2 (100);
v_prijs2 VARCHAR2 (100);
v_prijs3 VARCHAR2 (100);
v_prijs4 VARCHAR2 (100);
v_prijs5 VARCHAR2 (100);
header_found BOOLEAN;
BEGIN
-- Eerst opruiming
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
-- Init
header_found := FALSE;
v_fielddelimitor := ';';
-- Clear my previous imported rows
DELETE FROM aaxx_imp_srtruimte;
FOR rec1 IN c_cursor
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_aanduiding := v_newline;
IF SUBSTR (v_newline, 1, 3) = '?'
THEN
-- EF BB BF aangetroffen
fac.imp_writelog (p_applname,
p_applrun,
'W',
'Byte Order Mark aangetroffen',
'Bestand ' || p_filename || ' heeft onbehandeld UTF-8 formaat.'
);
v_newline := SUBSTR (v_newline, 4);
END IF;
fac.imp_getfield (v_newline, v_fielddelimitor, v_key);
fac.imp_getfield (v_newline, v_fielddelimitor, v_omschrijving);
fac.imp_getfield (v_newline, v_fielddelimitor, v_code);
fac.imp_getfield (v_newline, v_fielddelimitor, v_werkplek);
fac.imp_getfield (v_newline, v_fielddelimitor, v_verhuurbaar);
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs1);
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs2);
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs3);
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs4);
fac.imp_getfield (v_newline, v_fielddelimitor, v_prijs5);
-- Skip until a valid header is found
IF UPPER(v_key) = 'KEY'
AND UPPER(v_code) = 'CODE'
AND UPPER(v_prijs1) = 'HUUR'
AND UPPER(v_prijs5) = 'PRIJS5'
THEN
-- Sla de kopregel over.
header_found := TRUE;
ELSIF (header_found AND v_omschrijving IS NOT NULL)
THEN
INSERT INTO aaxx_imp_srtruimte
(alg_srtruimte_key,
alg_srtruimte_omschrijving,
alg_srtruimte_code,
prs_bevat_werkplek,
prs_verhuurbaar,
alg_srtruimte_prijs,
alg_srtruimte_prijs2,
alg_srtruimte_prijs3,
alg_srtruimte_prijs4,
alg_srtruimte_prijs5 )
VALUES (fac.safe_to_number (v_key),
SUBSTR (v_omschrijving, 1, 30),
SUBSTR (v_code, 1, 10),
fac.safe_to_number (SUBSTR(v_werkplek, 1)),
fac.safe_to_number (SUBSTR(v_verhuurbaar, 1)),
fac.safe_to_number (REPLACE(v_prijs1,',','.')),
fac.safe_to_number (REPLACE(v_prijs2,',','.')),
fac.safe_to_number (REPLACE(v_prijs3,',','.')),
fac.safe_to_number (REPLACE(v_prijs4,',','.')),
fac.safe_to_number (REPLACE(v_prijs5,',','.'))
);
END IF;
COMMIT;
END;
END LOOP;
IF NOT header_found
THEN
fac.imp_writelog (p_applname,
p_applrun,
'E',
'Geen geldige header aangetroffen',
'Bestand ' || p_filename || ' is geen geldig ruimtesoort importbestand.'
);
END IF;
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.imp_writelog (p_applname, p_applrun, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding);
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
DELETE FROM aaxx_imp_srtruimte;
END;
/
CREATE OR REPLACE PROCEDURE aaxx_update_srtruimte (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
CURSOR c
IS
SELECT *
FROM aaxx_imp_srtruimte
WHERE alg_srtruimte_omschrijving is not NULL;
v_oldcount NUMBER;
v_newcount NUMBER;
v_prs_bedrijf_key NUMBER;
v_prs_dienst_key NUMBER;
v_alg_locatie_key NUMBER;
v_alg_gebouw_key NUMBER;
v_errormsg VARCHAR (1000);
v_error_hint VARCHAR (1000);
oracle_err_mes VARCHAR2 (150);
oracle_err_num VARCHAR2 (150);
currentversion fac_module.fac_module_version%TYPE;
BEGIN
SELECT MAX (fac_module_version)
INTO currentversion
FROM fac_module;
fac.imp_writelog (p_applname,
p_applrun,
'I',
'Arcadis Aqumen ruimtesoort import version ' || currentversion,
'$Revision: 79 $'
);
SELECT COUNT (*)
INTO v_newcount
FROM alg_v_aanwezigsrtruimte;
IF v_newcount = 0 THEN
fac.imp_writelog (p_applname,
p_applrun,
'E',
'Arcadis Aqumen ruimtesoort import bevat geen records',
'$Revision: 79 $'
);
return;
END IF;
-- How many active records are now present?
SELECT COUNT (*)
INTO v_oldcount
FROM alg_v_aanwezigsrtruimte;
FOR rec IN c
LOOP
BEGIN
IF rec.alg_srtruimte_key IS NULL THEN
v_errormsg := 'Toevoegen ruimtesoort [' || rec.alg_srtruimte_code || '] ';
INSERT INTO alg_srtruimte (
alg_srtruimte_omschrijving,
alg_srtruimte_code,
prs_bevat_werkplek,
prs_verhuurbaar,
alg_srtruimte_prijs,
alg_srtruimte_prijs2,
alg_srtruimte_prijs3,
alg_srtruimte_prijs4,
alg_srtruimte_prijs5)
VALUES (
rec.alg_srtruimte_omschrijving,
rec.alg_srtruimte_code,
rec.prs_bevat_werkplek,
rec.prs_verhuurbaar,
rec.alg_srtruimte_prijs,
rec.alg_srtruimte_prijs2,
rec.alg_srtruimte_prijs3,
rec.alg_srtruimte_prijs4,
rec.alg_srtruimte_prijs5);
ELSE
v_errormsg := 'Aanpassen ruimtesoort [' || rec.alg_srtruimte_code || '] ';
UPDATE alg_srtruimte SET
alg_srtruimte_omschrijving = rec.alg_srtruimte_omschrijving,
alg_srtruimte_code = rec.alg_srtruimte_code,
prs_bevat_werkplek = rec.prs_bevat_werkplek,
prs_verhuurbaar = rec.prs_verhuurbaar,
alg_srtruimte_prijs = rec.alg_srtruimte_prijs,
alg_srtruimte_prijs2 = rec.alg_srtruimte_prijs2,
alg_srtruimte_prijs3 = rec.alg_srtruimte_prijs3,
alg_srtruimte_prijs4 = rec.alg_srtruimte_prijs4,
alg_srtruimte_prijs5 = rec.alg_srtruimte_prijs5
WHERE alg_srtruimte_key = rec.alg_srtruimte_key;
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
v_error_hint := v_errormsg;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
v_errormsg
|| 'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
'E',
v_errormsg,
v_error_hint
);
COMMIT; -- tbv logging
END;
END LOOP;
SELECT COUNT (*)
INTO v_newcount
FROM alg_v_aanwezigsrtruimte;
fac.imp_writelog (p_applname,
p_applrun,
'S',
'Aantal ruimte soorten vooraf: ' || TO_CHAR (v_oldcount) || ' nu: ' || TO_CHAR (v_newcount),
''
);
END;
/
--------------------------------
-- import contractorders
--------------------------------
CREATE OR REPLACE PROCEDURE aaxx_import_contract (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
) IS
CURSOR cnt
IS
SELECT oms, num referentie
FROM (SELECT 'Contract komt dubbel voor:' oms,
contractcode || '/' || volgnummer num
FROM aaxx_imp_contract) num
GROUP BY num
HAVING COUNT (num) > 1
UNION ALL
SELECT 'Gebouw bestaat niet:' oms, gebouw_code referentie
FROM aaxx_imp_contract
WHERE volgnummer IS NOT NULL
AND gebouw_code NOT IN (SELECT NVL (alg_gebouw_code, 'geen')
FROM alg_gebouw)
UNION ALL
SELECT DISTINCT
'Leverancier bestaat niet:' oms,
leverancier || '[' || leveranciernummer || ']' referentie
FROM aaxx_imp_contract
WHERE fac.safe_to_number (leveranciernummer) NOT IN
(SELECT NVL (fac.safe_to_number (prs_leverancier_nr), 9999999999)
FROM prs_bedrijf
WHERE prs_bedrijf_contract = 1)
UNION ALL
SELECT 'Contractsoort bestaat niet:' oms, i.grootboekrek referentie
FROM aaxx_imp_contract i, cnt_discipline d, prs_kostensoort k
WHERE i.grootboekrek = k.prs_kostensoort_refcode
AND DECODE (pakket, 'Pluspakket', 2, 1) = prs_kostensoortgrp_key
AND d.prs_kostensoort_key(+) = k.prs_kostensoort_key
AND i.volgnummer IS NULL
AND k.prs_kostensoort_key IS NULL;
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR (1000);
v_hint VARCHAR (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
v_ongeldig NUMBER(1);
v_mode NUMBER(1);
v_aanduiding VARCHAR (200);
-- De importvelden:
v_gebouw_code VARCHAR2(100);
v_leverancier VARCHAR2(100);
v_beschrijving VARCHAR2(100);
v_van VARCHAR2(100);
v_pakket VARCHAR2(100);
v_tot VARCHAR2(100);
v_omschrijving VARCHAR2(4000);
v_bedrag VARCHAR2(100);
v_btw VARCHAR2(100);
v_grootboekrek VARCHAR2(100);
v_contractsoort VARCHAR2(100);
v_contractcode VARCHAR2(100);
v_volgnummer VARCHAR2(100);
v_leveranciernummer VARCHAR2(100);
v_dummy VARCHAR2(100);
CURSOR c1(p_imp_file_applicatie VARCHAR2)
IS
SELECT *
FROM fac_imp_file
WHERE fac_imp_file_applicatie = p_imp_file_applicatie
ORDER BY fac_imp_file_index;
rec1 c1%ROWTYPE;
BEGIN
-- Eerst opruiming
DELETE FROM imp_log WHERE imp_log_applicatie = p_applname;
DELETE FROM aaxx_imp_contract;
COMMIT;
OPEN c1(p_applname);
IF (c1%ISOPEN)
THEN
LOOP
BEGIN
v_errormsg := 'Fout FETCH te importeren rij';
FETCH c1 INTO rec1;
EXIT WHEN c1%NOTFOUND;
v_newline := rec1. fac_imp_file_line;
v_newline := replace(v_newline,'""','');
v_errormsg := 'Fout opvragen te importeren rij';
v_aanduiding := '';
v_ongeldig := 0;
IF (1=0)
THEN
fac.imp_writelog (p_applname,
p_applrun,
'E',
v_aanduiding||'Ongeldig importbestand',
'Toelichting: ... '
);
ELSE
-- Lees alle veldwaarden
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_gebouw_code
);
--
v_errormsg := 'Fout opvragen te importeren rij (leverancier)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_leverancier
);
--
v_errormsg := 'Fout opvragen te importeren rij (beschrijving)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_beschrijving
);
--
v_errormsg := 'Fout opvragen te importeren rij (pakket)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_pakket
);
--
v_errormsg := 'Fout opvragen te importeren rij (van)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_van
);
--
v_errormsg := 'Fout opvragen te importeren rij (tot)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_tot
);
--
v_errormsg := 'Fout opvragen te importeren rij (omschrijving)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_omschrijving
);
--
v_errormsg := 'Fout opvragen te importeren rij (bedrag)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_bedrag
);
--
v_errormsg := 'Fout opvragen te importeren rij (btw)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_btw
);
--
v_errormsg := 'Fout opvragen te importeren rij (grootboekrek)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_grootboekrek
);
--
v_errormsg := 'Fout opvragen te importeren rij (dienst)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_contractsoort
);
--
v_errormsg := 'Fout opvragen te importeren rij (contractcode):'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_contractcode
);
--
v_errormsg := 'Fout opvragen te importeren rij (volgnummer)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_volgnummer
);
--
v_errormsg := 'Fout opvragen te importeren rij (leveranciernummer)'||v_gebouw_code;
fac.imp_getfield (v_newline,
C_FIELDDELIMITOR,
v_leveranciernummer
);
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
v_errormsg := 'Fout bij toevoegen te impoteren gebouw ['||v_gebouw_code||']';
INSERT INTO AAXX_IMP_CONTRACT (
gebouw_code
, leverancier
, beschrijving
, van
, tot
, omschrijving
, bedrag
, btw
, grootboekrek
, contractsoort
, contractcode
, volgnummer
, pakket
, leveranciernummer
) VALUES (
v_gebouw_code
,v_leverancier
,v_beschrijving
,fac.safe_to_date(v_van, 'dd-mm-yy')
,fac.safe_to_date(v_tot, 'dd-mm-yy')
,v_omschrijving
,fac.safe_to_number(replace(v_bedrag,',','.'))
,v_btw
,v_grootboekrek
,v_contractsoort
,v_contractcode
,fac.safe_to_number(replace(v_volgnummer,',','.'))
,v_pakket
,v_leveranciernummer
);
END IF;
END IF;
END;
END LOOP;
END IF;
FOR rec IN cnt
LOOP
BEGIN
fac.imp_writelog (p_applname,
p_applrun,
'E',
rec.oms,
rec.referentie
);
END;
END LOOP;
commit;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
v_hint := v_errormsg;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_applname,
p_applrun,
'E',
v_errormsg,
v_hint
);
END aaxx_import_contract;
/
CREATE OR REPLACE PROCEDURE aaxx_update_contract (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
v_oldcountcnt NUMBER;
v_newcountcnt NUMBER;
v_countcnt NUMBER;
v_errormsg VARCHAR (1000);
v_error_hint VARCHAR (1000);
oracle_err_mes VARCHAR2 (150);
oracle_err_num VARCHAR2 (150);
currentversion fac_module.fac_module_version%TYPE;
BEGIN
SELECT MAX (fac_module_version)
INTO currentversion
FROM fac_module;
fac.imp_writelog (p_applname,
p_applrun,
'I',
'Arcadis Aqumen Contract import version ' || currentversion,
'$Revision: 79 $'
);
SELECT COUNT (*)
INTO v_countcnt
FROM aaxx_imp_contract;
IF v_countcnt = 0 THEN
fac.imp_writelog (p_applname,
p_applrun,
'E',
'Arcadis Aqumen Contract import bevat geen records',
'$Revision: 79 $'
);
return;
END IF;
SELECT COUNT (*)
INTO v_oldcountcnt
FROM cnt_contract;
-- voeg de contracten toe
INSERT INTO cnt_contract
(
cnt_contract_nummer,
cnt_contract_nummer_intern,
cnt_contract_omschrijving,
cnt_contract_document,
cnt_contract_looptijd_van,
cnt_contract_looptijd_tot,
cnt_contract_kosten,
cnt_prs_bedrijf_key,
prs_afdeling_key_eig,
ins_discipline_key,
prs_perslid_key_beh,
prs_kostenplaats_key,
cnt_contract_opzegtermijn,
cnt_contract_rappeltermijn
)
(SELECT contractcode,
contractcode,
SUBSTR (beschrijving, 1, 50),
REPLACE (REPLACE (i.omschrijving, '<(>', ''), '<)>', ''),
van,
tot,
bedrag,
prs_bedrijf_key,
DECODE (aaxx_get_user, 'SABIC', 254, 'DSM', 449),
ins_discipline_key,
DECODE (aaxx_get_user, 'SABIC', 3601, 'DSM', 10381 ),
k.prs_kostenplaats_key,
1,
1
FROM aaxx_imp_contract i,
prs_bedrijf b,
cnt_discipline d,
prs_kostenplaats k
WHERE fac.safe_to_number (leveranciernummer) =
NVL (fac.safe_to_number (prs_leverancier_nr), 9999999999)
AND upper(d.ins_discipline_omschrijving) = UPPER(i.contractsoort)
AND i.gebouw_code = k.prs_kostenplaats_nr(+)
AND i.volgnummer IS NULL);
-- Scope van het contract zetten.
INSERT INTO cnt_contract_plaats
(
cnt_contract_key, cnt_alg_plaats_key, cnt_alg_plaats_code, cnt_contract_plaats_gewicht
)
(SELECT cnt_contract_key, alg_gebouw_key, 'G', TRUNC (SUM (bedrag))
FROM aaxx_imp_contract i, alg_gebouw g, cnt_contract c
WHERE cnt_contract_nummer = contractcode
AND (i.gebouw_code = alg_gebouw_code
OR REPLACE (alg_gebouw_code, '-', '') = gebouw_code)
GROUP BY alg_gebouw_key, cnt_contract_key);
-- How many active records are now present?
SELECT COUNT (*)
INTO v_newcountcnt
FROM cnt_contract;
fac.imp_writelog (p_applname,
p_applrun,
'S',
'Aantal contracten vooraf: ' || TO_CHAR (v_oldcountcnt) || ' nu: ' || TO_CHAR (v_newcountcnt),
''
);
END;
/
-------------------------------------------------------------------------------
-- IMPORTFUNCTIE - Import uplift
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_rap_uplift (
jaar,
maand,
kostensoort,
soort_order,
leverancier,
nummer,
uplift
)
AS
SELECT jaar,
maand,
prs_kostensoort_oms,
soort_order,
prs_bedrijf_naam,
prs_leverancier_nr,
uplift
FROM aaxx_imp_uplift;
CREATE OR REPLACE PROCEDURE aaxx_import_uplift (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
CURSOR c_cursor
IS
SELECT *
FROM fac_imp_file
WHERE fac_imp_file_applicatie = p_applname
ORDER BY fac_imp_file_index;
v_newline VARCHAR2 (1000);
v_aanduiding VARCHAR2 (1000); -- Import line
v_field VARCHAR2 (100); -- Import field
v_fielddelimitor VARCHAR2 (1); -- Field seperator
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
v_count NUMBER;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_skipfield VARCHAR2 (100);
-- De importvelden
v_jaar VARCHAR2 (100);
v_maand VARCHAR2 (100);
v_prs_kostensoort_oms VARCHAR2 (100);
v_soort_order VARCHAR2 (100);
v_prs_bedrijf_naam VARCHAR2 (100);
v_prs_leverancier_nr VARCHAR2 (100);
v_uplift VARCHAR2 (100);
header_found BOOLEAN;
BEGIN
-- Eerst opruiming
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
-- Init
header_found := FALSE;
v_fielddelimitor := ';';
FOR rec1 IN c_cursor
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_aanduiding := v_newline;
IF SUBSTR (v_newline, 1, 3) = '?'
THEN
-- EF BB BF aangetroffen
fac.imp_writelog (p_applname,
p_applrun,
'W',
'Byte Order Mark aangetroffen',
'Bestand ' || p_filename || ' heeft onbehandeld UTF-8 formaat.'
);
v_newline := SUBSTR (v_newline, 4);
END IF;
fac.imp_getfield (v_newline, v_fielddelimitor, v_jaar);
fac.imp_getfield (v_newline, v_fielddelimitor, v_maand);
fac.imp_getfield (v_newline, v_fielddelimitor, v_prs_kostensoort_oms);
fac.imp_getfield (v_newline, v_fielddelimitor, v_soort_order);
fac.imp_getfield (v_newline, v_fielddelimitor, v_prs_bedrijf_naam);
fac.imp_getfield (v_newline, v_fielddelimitor, v_prs_leverancier_nr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_uplift);
-- Skip until a valid header is found
IF UPPER(v_jaar) = 'JAAR'
AND UPPER(v_maand) = 'MAAND'
AND UPPER(v_prs_kostensoort_oms) = 'KOSTENSOORT'
AND UPPER(v_prs_leverancier_nr) = 'NUMMER'
AND UPPER(v_uplift) = 'UPLIFT'
THEN
-- Sla de kopregel over.
header_found := TRUE;
ELSIF (header_found AND v_jaar IS NOT NULL)
THEN
-- voeg nieuwe records toe
-- en wijzig bestaande records
-- ken ik de combinatie van jaar,maand, kostensoort, en leveranciernummer al?
SELECT count(*)
INTO v_count
FROM aaxx_imp_uplift
WHERE jaar = v_jaar
AND maand = v_maand
AND prs_kostensoort_oms = v_prs_kostensoort_oms
AND prs_leverancier_nr = v_prs_leverancier_nr;
IF v_count > 0 THEN
-- update de bestaande record(s)
UPDATE aaxx_imp_uplift
SET uplift = fac.safe_to_number (REPLACE(v_uplift,',','.'))
WHERE jaar = v_jaar
AND maand = v_maand
AND prs_kostensoort_oms = v_prs_kostensoort_oms
AND prs_leverancier_nr = v_prs_leverancier_nr;
ELSE
-- voeg nieuwe records toe
INSERT INTO aaxx_imp_uplift
(jaar,
maand,
prs_kostensoort_oms,
soort_order,
prs_bedrijf_naam,
prs_leverancier_nr,
uplift)
VALUES (fac.safe_to_number (v_jaar),
fac.safe_to_number (v_maand),
v_prs_kostensoort_oms,
v_soort_order,
v_prs_bedrijf_naam,
v_prs_leverancier_nr,
fac.safe_to_number (REPLACE(v_uplift,',','.')));
END IF;
SELECT count(*)
INTO v_count
FROM prs_bedrijf
WHERE prs_leverancier_nr = v_prs_leverancier_nr;
IF v_count = 0 THEN
fac.imp_writelog (p_applname,
p_applrun,
'W',
'Geen leverancier met nummer ['||v_prs_leverancier_nr||'] gevonden',
''
);
END IF;
SELECT count(*)
INTO v_count
FROM prs_kostensoort
WHERE prs_kostensoort_upper = upper(v_prs_kostensoort_oms);
IF v_count = 0 THEN
fac.imp_writelog (p_applname,
p_applrun,
'W',
'Geen kostensoort met code ['||v_prs_kostensoort_oms ||'] gevonden',
''
);
END IF;
END IF;
COMMIT;
END;
END LOOP;
IF NOT header_found
THEN
fac.imp_writelog (p_applname,
p_applrun,
'E',
'Geen geldige header aangetroffen',
'Bestand ' || p_filename || ' is geen geldig ruimtesoort importbestand.'
);
END IF;
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.imp_writelog (p_applname, p_applrun, 'E', SUBSTR (v_errormsg, 1, 1000), v_aanduiding);
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
END;
/
CREATE OR REPLACE PROCEDURE aaxx_update_uplift (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
BEGIN
NULL;
END;
/
/*
-------------------------------------------------------------------------------
-- KOPPELINGEN MET LEVERANCIERS
-------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE aaxx_import_opdrstat_strukton (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_dummy VARCHAR2 (200);
header_is_valid NUMBER := 0;
v_count NUMBER;
v_count_tot NUMBER (10) := 0;
v_count_import NUMBER (10) := 0;
v_ongeldig NUMBER (1) := 0;
-- De importvelden
v_mld_opdr_key NUMBER (10);
v_mld_opdr_key_tekst VARCHAR2 (100);
v_extern_nummer VARCHAR2 (100);
v_status NUMBER (10);
v_status_tekst VARCHAR2 (100);
v_status_code VARCHAR2 (100);
v_datumtijd DATE;
v_datumtijd_tekst VARCHAR2 (100);
v_opmerking VARCHAR2 (1000);
-- Overige velden:
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_imp_file_applicatie = p_applname
ORDER BY fac_imp_file_index;
BEGIN
-- Eerst opruiming
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname
AND imp_log_datum < SYSDATE - 28;
DELETE FROM aaxx_imp_opdrstat_strukton;
COMMIT;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout opvragen te importeren rij';
v_aanduiding := '';
v_ongeldig := 0;
fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst);
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
fac.imp_getfield (v_newline, c_delim, v_opmerking);
v_aanduiding :=
'['
|| v_extern_nummer
|| '|'
|| v_mld_opdr_key_tekst
|| '|'
|| v_status_tekst
|| '|'
|| v_opmerking
|| '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID'
AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID'
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Fout inlezen mld_opdr_key [' || v_aanduiding || ']';
v_mld_opdr_key := TRIM (v_mld_opdr_key);
SELECT COUNT (mld_opdr_key)
INTO v_count
FROM mld_opdr o
WHERE o.mld_opdr_key = fac.safe_to_number (v_mld_opdr_key_tekst);
IF v_count <> 1
THEN
v_ongeldig := 1;
v_errormsg :=
'Opdracht kan niet gevonden worden. (aantal gevonden opdrachten: '
|| v_count
|| ') ['
|| v_aanduiding
|| ']';
ELSE
v_mld_opdr_key := TO_CHAR (v_mld_opdr_key_tekst);
END IF;
IF v_ongeldig = 0
THEN
v_errormsg :=
'Fout bij bepalen status [' || v_aanduiding || ']';
CASE
WHEN v_status_code = '5'
THEN
v_status := 5; -- uitgegeven
WHEN v_status_code = '10'
THEN
v_status := 8; -- geaccepteerd
WHEN v_status_code = '20'
THEN
v_status := 6; -- afgemeld
ELSE
v_status := NULL;
-- v_ongeldig := 1; nog te bezien.
END CASE;
END IF;
-- Lees alle veldwaarden
IF v_ongeldig = 0
THEN
v_errormsg :=
'Fout bij converteren datumtijd [' || v_aanduiding || ']';
v_datumtijd :=
fac.safe_to_date (
REPLACE (
SUBSTR (v_datumtijd_tekst,
1,
INSTR (v_datumtijd_tekst, '.') - 1),
'T',
' '),
'yyyy-mm-dd hh24:mi:ss');
IF v_datumtijd = NULL
THEN
v_ongeldig := 0;
END IF;
END IF;
IF v_ongeldig = 0
THEN
v_errormsg :=
'Fout bij aanvullen opmerking [' || v_aanduiding || ']';
IF v_opmerking IS NOT NULL
THEN
v_opmerking :=
'['
|| v_datumtijd_tekst
|| '] - '
|| v_status_tekst
|| CHR (13)
|| CHR (10)
|| v_opmerking;
ELSE
v_opmerking :=
'[' || v_datumtijd_tekst || '] - ' || v_status_tekst;
END IF;
END IF;
-- Insert geformatteerde import record
IF (v_ongeldig = 0)
THEN
BEGIN
v_errormsg :=
'Fout toevoegen opdracht status ['
|| v_aanduiding
|| ']';
INSERT INTO aaxx_imp_opdrstat_strukton (mld_opdr_key,
extern_nummer,
status,
datumtijd,
opmerking)
VALUES (v_mld_opdr_key,
v_extern_nummer,
v_status,
v_datumtijd,
v_opmerking);
v_count_import := v_count_import + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (
p_applname,
p_applrun,
'E',
v_aanduiding || v_errormsg,
'Fout bij toevoegen regel aan importtabel aaxx_imp_opdr_status_strukton.');
END;
ELSE
fac.imp_writelog (p_applname,
p_applrun,
'E',
v_errormsg,
'');
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_applname,
p_applrun,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!');
END IF;
DELETE FROM fac_imp_file
WHERE fac_imp_file_applicatie = p_applname;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| 'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
'E',
v_aanduiding || v_errormsg,
'Inleesproces opdrachtstatusberichten afgebroken!');
END;
/
CREATE OR REPLACE PROCEDURE aaxx_update_opdrstat_strukton (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Cursor loopt - in volgorde! - over alle ingelezen opdrachtstatusberichten.
CURSOR c1
IS
SELECT mld_opdr_key,
extern_nummer,
datumtijd,
status,
opmerking
FROM aaxx_imp_opdrstat_strukton
ORDER BY 1, 3;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_count_tot NUMBER (10);
v_count NUMBER (10);
v_mld_key NUMBER (10) := 0;
v_opdr_key NUMBER (10) := 0;
v_opdr_status NUMBER (10) := 0;
v_mld_typeopdr_key NUMBER (10);
v_mld_kenmerk_key NUMBER (10);
v_mld_kenmerkopdr_key NUMBER (10);
BEGIN
-- Loop door alle geimporteerde opdrachtstatusberichten en verwerk deze.
v_count_tot := 0;
FOR rec IN c1
LOOP
BEGIN
v_aanduiding :=
'['
|| rec.mld_opdr_key
|| '|'
|| SUBSTR (rec.opmerking, 1, 100)
|| '] ';
v_count_tot := v_count_tot + 1;
v_count := 0;
-- Key van melding/opdracht bepalen en externnr bij opdracht opslaan.
IF (rec.mld_opdr_key IS NOT NULL)
THEN
v_errormsg := 'Fout bij bepalen opdracht.';
SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key
INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key
FROM mld_opdr
WHERE mld_opdr_key = rec.mld_opdr_key;
v_errormsg := 'Fout bij bepalen kenmerk extern nummer.';
SELECT k.mld_kenmerk_key, ko.mld_kenmerkopdr_key
INTO v_mld_kenmerk_key, v_mld_kenmerkopdr_key
FROM mld_kenmerk k, mld_kenmerkopdr ko
WHERE k.mld_srtkenmerk_key = 35 -- AASA
AND k.mld_typeopdr_key = v_mld_typeopdr_key
AND k.mld_kenmerk_key = ko.mld_kenmerk_key(+);
v_errormsg := 'Fout bij aanpassen extern nummer.';
IF v_mld_kenmerkopdr_key IS NULL THEN
-- kenmerk toevoegen
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde)
VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer);
ELSE
-- kenmerk aanpassen
UPDATE mld_kenmerkopdr SET mld_kenmerkopdr_waarde = rec.extern_nummer WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key;
END IF;
v_errormsg := 'Fout bij bijwerken opdracht-opmerking.';
v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte!
UPDATE mld_opdr
SET mld_opdr_opmerking =
DECODE (
mld_opdr_opmerking,
NULL,
rec.opmerking,
rec.opmerking
|| CHR (13)
|| CHR (10)
|| SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count)))
WHERE mld_opdr_key = v_opdr_key;
IF v_opdr_status <> rec.status
THEN
IF rec.status = 8 AND v_opdr_status = 5
THEN
-- Accepteer opdracht als de opdracht uitgegeven was
MLD.setopdrachtstatus (v_opdr_key, 8, 4); -- Facilitor
ELSIF rec.status = 6 AND v_opdr_status = 5
THEN
-- Meld de opdracht af als deze uitgegeven was
MLD.setopdrachtstatus (v_opdr_key, 8, 4); -- Facilitor, eerst accepteren
MLD.setopdrachtstatus (v_opdr_key, 6, 4); -- Facilitor
ELSIF rec.status = 6 AND v_opdr_status = 8
THEN
-- Meld de opdracht af als deze geaccepteerd was
MLD.setopdrachtstatus (v_opdr_key, 6, 4); -- Facilitor
END IF;
IF rec.status = 6 AND v_opdr_status <> 6
THEN
UPDATE mld_melding
SET mld_melding_opmerking =
DECODE (
mld_melding_opmerking,
NULL,
rec.opmerking,
rec.opmerking || CHR (13) || CHR (10)
|| SUBSTR (mld_melding_opmerking,
1,
(4000 - v_count)))
WHERE mld_melding_key = v_mld_key
AND mld_melding_status IN (4, 7);
v_errormsg := 'Fout bij sluiten melding.';
SELECT COUNT ( * )
INTO v_count
FROM (SELECT m.mld_melding_key,
(SELECT COUNT ( * )
FROM mld_opdr o
WHERE mld_melding_key = m.mld_melding_key)
aanw_opdr,
(SELECT COUNT ( * )
FROM mld_opdr o
WHERE mld_melding_key = m.mld_melding_key
AND o.mld_statusopdr_key NOT IN
(1, 2, 6, 7, 9))
open_opdr
FROM mld_melding m
WHERE m.mld_melding_key = v_mld_key
AND m.mld_melding_status IN (4, 7))
niet_opgelost
WHERE aanw_opdr > 0 AND open_opdr = 0;
IF (v_count = 1)
THEN
MLD.setmeldingstatus (v_mld_key, 5, 4); -- Facilitor
MLD.mld_nextworkflowstep (v_mld_key, 1); -- Succes
ELSE
BEGIN
MLD.updatemeldingstatus (v_mld_key, 0, 4);
END;
END IF;
END IF;
END IF;
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
'E',
v_aanduiding || v_errormsg,
'Fout bij verwerken opdrachtstatusbericht.');
END;
END LOOP;
COMMIT;
END;
/
*/
-------------------------------------------------------------------------------
-- RAPPORTAGES aaxx_v_rap_gebruikers_auth
-------------------------------------------------------------------------------
CREATE OR REPLACE VIEW aaxx_v_rap_gebruikers_auth (
naam,
afdeling,
functie,
auth_groep,
last_login
)
AS
SELECT prs_perslid_naam_full,
prs_afdeling_omschrijving,
prs_srtperslid_omschrijving,
fac_groep_omschrijving,
prs_perslid_login
FROM prs_v_aanwezigperslid p,
prs_v_perslid_fullnames pf,
fac_gebruikersgroep gg,
prs_afdeling a,
fac_groep g,
prs_srtperslid sp
WHERE p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_perslid_key = gg.prs_perslid_key(+)
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND gg.fac_groep_key = g.fac_groep_key(+)
AND (p.prs_perslid_oslogin IS NOT NULL
OR p.prs_perslid_oslogin2 IS NOT NULL)
AND nvl (p.prs_perslid_oslogin, 'QueQueLeQue') NOT LIKE '\_%' ESCAPE '\';
CREATE OR REPLACE VIEW aaxx_v_rap_dienst_loc_bld (fclt_f_bedrijfnaam
, fclt_f_bedrijf_nr
, fclt_f_dienst
, fclt_f_locatie_code
, fclt_f_gebouw_code
)
AS
SELECT prs_bedrijf_naam bedrijfnaam,
prs_leverancier_nr bedrijfnummer,
prs_dienst_omschrijving dienst,
alg_locatie_code locatie_code,
alg_gebouw_upper gebouw_code
FROM prs_v_aanwezigbedrijf b,
prs_dienst d,
alg_locatie l,
alg_gebouw g,
prs_bedrijfdienstlocatie bdl
WHERE b.prs_bedrijf_key = bdl.prs_bedrijf_key(+)
AND bdl.prs_dienst_key = d.prs_dienst_key(+)
AND bdl.alg_locatie_key = l.alg_locatie_key(+)
AND bdl.alg_gebouw_key = g.alg_gebouw_key(+)
AND COALESCE (b.prs_bedrijf_intern, 0) = 0;
CREATE OR REPLACE VIEW aaxx_v_rap_contractorders (
contractorder,
versie,
fclt_f_gebouwcode,
fclt_f_leverancier,
fclt_f_beschrijving,
fclt_f_pakket,
ingangsdatum,
einddatum,
fclt_f_status,
kosten,
totaalkosten,
gefactureerd,
dienst,
leveranciernr
)
AS
SELECT cnt_contract_nummer contractorder,
cnt_contract_versie,
alg_gebouw_code gebouwcode,
prs_bedrijf_naam leverancier,
k.prs_kostensoort_opmerking beschrijving,
(SELECT prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg
WHERE ksg.prs_kostensoortgrp_key = k.prs_kostensoortgrp_key)
pakket,
TO_CHAR (c.cnt_contract_looptijd_van, 'DD-MM-YYYY') ingangsdatum,
TO_CHAR (c.cnt_contract_looptijd_tot, 'DD-MM-YYYY') einddatum,
DECODE (SIGN (cnt_contract_looptijd_van - SYSDATE),
1,
'Toekomst',
-1,
DECODE (SIGN (cnt_contract_looptijd_tot - SYSDATE),
1,
'Actueel',
-1,
'Verlopen'
)
)
status,
COALESCE (ROUND ( DECODE (cnt_gew.cnt_contract_plaats_gewicht,
0,
1,
(cp.cnt_contract_plaats_gewicht
/ cnt_gew.cnt_contract_plaats_gewicht)
* c.cnt_contract_kosten),
2
),
0
)
kosten,
c.cnt_contract_kosten orderbedrag,
(SELECT SUM (fr.fin_factuurregel_totaal)
FROM fin_factuur f, fin_factuurregel fr
WHERE f.fin_factuur_key = fr.fin_factuur_key
AND f.cnt_contract_key = c.cnt_contract_key)
gefactureerd,
k.prs_kostensoort_refcode dienst,
b.prs_leverancier_nr leveranciernr
FROM cnt_contract c,
cnt_discipline d,
cnt_contract_plaats cp,
prs_bedrijf b,
prs_kostensoort k,
prs_kostenplaats kp,
prs_afdeling a,
prs_perslid p,
alg_locatie l,
alg_gebouw g,
prs_contactpersoon cop,
(SELECT cnt_contract_key,
SUM (cnt_contract_plaats_gewicht) cnt_contract_plaats_gewicht
FROM cnt_contract_plaats
GROUP BY cnt_contract_key) cnt_gew,
(SELECT cp.cnt_contract_plaats_key, alg_locatie_key, alg_gebouw_key
FROM alg_v_allonroerendgoed aog, cnt_contract_plaats cp
WHERE aog.alg_type = cp.cnt_alg_plaats_code
AND aog.alg_onroerendgoed_keys = cp.cnt_alg_plaats_key) cog
WHERE c.cnt_contract_key = cp.cnt_contract_key(+)
AND c.cnt_contract_key = cnt_gew.cnt_contract_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.ins_discipline_key = d.ins_discipline_key
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
AND c.prs_perslid_key_beh = p.prs_perslid_key
AND cp.cnt_contract_plaats_key = cog.cnt_contract_plaats_key(+)
AND c.prs_contactpersoon_key = cop.prs_contactpersoon_key(+)
AND cog.alg_locatie_key = l.alg_locatie_key(+)
AND cog.alg_gebouw_key = g.alg_gebouw_key(+)
AND cnt_contract_verwijder IS NULL;
CREATE OR REPLACE VIEW aaxx_v_rap_stdmelding_gegevens (
vakgroeptype,
vakgroep,
melding,
groep,
acceptatietijd,
uitvoertijd,
kostensoort,
kostensoort_code,
fin_waarde,
dienst,
vereist_dienst,
opdrachttype,
autoorder,
alg_niveau
)
AS
SELECT sd.ins_srtdiscipline_omschrijving,
d.ins_discipline_omschrijving,
m.mld_stdmelding_omschrijving,
m.mld_stdmelding_groep,
m.mld_stdmelding_urgentie,
m.mld_stdmelding_uitvoertijd,
COALESCE (k2.prs_kostensoort_opmerking, k.prs_kostensoort_opmerking),
COALESCE (k2.prs_kostensoort_oms, k.prs_kostensoort_oms),
COALESCE (k2.prs_kostensoort_refcode, k.prs_kostensoort_refcode),
d.prs_dienst_omschrijving,
m.mld_stdmelding_vereisdienst,
ot.mld_typeopdr_omschrijving,
m.mld_stdmelding_autoorder,
alg_onrgoed_niveau
FROM mld_stdmelding m,
mld_discipline d,
ins_srtdiscipline sd,
prs_kostensoort k,
prs_kostensoort k2,
prs_dienst d,
mld_typeopdr ot
WHERE m.mld_stdmelding_verwijder IS NULL
AND m.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND d.prs_kostensoort_key = k.prs_kostensoort_key(+)
AND m.prs_kostensoort_key = k2.prs_kostensoort_key(+)
AND m.prs_dienst_key = d.prs_dienst_key(+)
AND m.mld_typeopdr_key = ot.mld_typeopdr_key(+);
CREATE OR REPLACE VIEW aaxx_v_rap_kostenmutatie
(
opdracht,
vakgroeptype,
vakgroep,
mutatie,
fclt_d_datum,
fclt_f_leverancier,
persoon
)
AS
SELECT o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht,
(SELECT ins_srtdiscipline_omschrijving
FROM ins_srtdiscipline sd
WHERE sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key)
Vakgroeptype,
ins_discipline_omschrijving vakgroep,
SUBSTR (
fac_tracking_oms,
INSTR (fac_tracking_oms, 'Totaal ex. BTW:'),
DECODE (
INSTR (fac_tracking_oms,
CHR (10),
INSTR (fac_tracking_oms, 'Totaal ex. BTW:')),
0,
10000,
INSTR (fac_tracking_oms,
CHR (10),
INSTR (fac_tracking_oms, 'Totaal ex. BTW:')))
- INSTR (fac_tracking_oms, 'Totaal ex. BTW:'))
oud_nieuw,
TO_CHAR (fac_tracking_datum, 'dd-mm-yyyy') datum,
prs_bedrijf_naam leverancier,
prs_perslid_naam_full persoon
FROM fac_tracking t,
mld_opdr o,
mld_melding m,
mld_stdmelding std,
ins_tab_discipline d,
prs_v_perslid_fullnames_all pf,
prs_bedrijf b
WHERE fac_tracking_oms LIKE '%Totaal ex. BTW:%'
AND t.fac_tracking_refkey = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND t.prs_perslid_key = pf.prs_perslid_key(+)
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
AND t.fac_tracking_datum BETWEEN mld.getopdrachtstatusdate (
o.mld_opdr_key,
6) -- afgemeld
AND COALESCE (
mld.getopdrachtstatusdate (
o.mld_opdr_key,
9), -- afgerond
SYSDATE);
CREATE OR REPLACE VIEW aaxx_v_rap_bedrijf_orderadres (
fclt_f_bedrijf,
fclt_f_plaats,
fclt_f_nummer,
fclt_f_email,
fclt_f_orderadres,
stylesheet
)
AS
SELECT prs_bedrijf_naam,
prs_bedrijf_bezoek_plaats,
prs_leverancier_nr,
prs_bedrijf_email,
prs_bedrijf_mldorder_adres,
prs_bedrijf_xsl
FROM prs_bedrijf
WHERE prs_bedrijf_verwijder IS NULL AND NVL (prs_bedrijf_intern, 0) <> 1;
CREATE OR REPLACE VIEW aaxx_v_rap_login_user (hide_f_datum, fclt_d_datum, aantal)
AS
SELECT trunc(sysdate)-trunc(pl.login_datum),
TO_CHAR (pl.login_datum, 'dd-mm-yyyy'),
COUNT (prs_perslid_key)
FROM aaxx_perslid_login pl
GROUP BY trunc(sysdate)-trunc(pl.login_datum),
TO_CHAR (pl.login_datum, 'dd-mm-yyyy');
BEGIN adm.systrackscript('$Workfile: aaxx.sql $', '$Revision: 79 $', 0); END;
/