1667 lines
72 KiB
SQL
1667 lines
72 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific sql statements for the FACILITOR database
|
||
|
||
DEFINE thisfile = 'bcgv.sql'
|
||
DEFINE dbuser = 'bcgv'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||
SPOOL &fcltlogfile
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
---------------------------------------
|
||
PROMPT &fcltcusttxt
|
||
---------------------------------------
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE PACKAGE BCGV
|
||
AS
|
||
PROCEDURE add_xml_row_p (p_bestand IN VARCHAR2,
|
||
p_prefix IN VARCHAR2,
|
||
p_regel IN VARCHAR2);
|
||
|
||
PROCEDURE add_xml_element_p (p_bestand IN VARCHAR2,
|
||
p_prefix IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2);
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PACKAGE BODY BCGV
|
||
AS
|
||
PROCEDURE add_xml_row_p (p_bestand IN VARCHAR2,
|
||
p_prefix IN VARCHAR2,
|
||
p_regel IN VARCHAR2)
|
||
AS
|
||
v_index NUMBER;
|
||
BEGIN
|
||
SELECT COALESCE( MAX(fac_rapport_volgnr), 0) + 1
|
||
INTO v_index
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = p_bestand;
|
||
|
||
INSERT INTO fac_rapport (
|
||
fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel)
|
||
VALUES (p_bestand,
|
||
v_index,
|
||
p_prefix || p_regel);
|
||
END;
|
||
|
||
PROCEDURE add_xml_element_p (p_bestand IN VARCHAR2,
|
||
p_prefix IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
bcgv.add_xml_row_p(p_bestand,
|
||
p_prefix,
|
||
'<' || p_tag || '>'
|
||
|| xml.char_to_html(p_value)
|
||
|| '</' || p_tag || '>');
|
||
END;
|
||
END;
|
||
/
|
||
|
||
|
||
-- Vastgoed contract views voor huuradministratie
|
||
CREATE OR REPLACE VIEW bcgv_v_sync_alg_ruimte
|
||
(
|
||
alg_ruimte_key,
|
||
alg_verdieping_key,
|
||
cadlabel
|
||
)
|
||
AS
|
||
SELECT rg.alg_ruimte_key,
|
||
rg.alg_verdieping_key,
|
||
DECODE (rg.alg_verdieping_volgnr, 0, REPLACE(alg_ruimte_nr, 'S'),
|
||
1, REPLACE(alg_ruimte_nr, 'BG'),
|
||
2, REPLACE(alg_ruimte_nr, 'ST'),
|
||
3, REPLACE(alg_ruimte_nr, 'ST'),
|
||
alg_ruimte_nr) cadlabel
|
||
FROM alg_v_ruimte_gegevens rg
|
||
WHERE alg_gebouw_upper = 'GV-RVA'
|
||
UNION ALL
|
||
SELECT rg.alg_ruimte_key,
|
||
rg.alg_verdieping_key,
|
||
rg.alg_ruimte_nr cadlabel
|
||
FROM alg_v_ruimte_gegevens rg
|
||
WHERE alg_gebouw_upper <> 'GV-RVA';
|
||
|
||
|
||
-- view om offertestatus in dashbord te tonen
|
||
-- functionaliteit overgenomen uit mld.inc
|
||
CREATE OR REPLACE VIEW bcgv_v_rap_offerte_status
|
||
AS
|
||
SELECT m.melder_key,
|
||
m.melder,
|
||
u.*,
|
||
g.prs_perslid_key_verantw opdracht_gebouw_verantw_key,
|
||
m.kostensoort kostensoort,
|
||
subproductgroepgroep,
|
||
DECODE (
|
||
COALESCE (na.aantal, 0),
|
||
1,
|
||
'Offerte geaccepteerd',
|
||
DECODE (COALESCE (nta.aantal, 0),
|
||
0, 'Niet opgelost',
|
||
'Offerte acceptatie'))
|
||
offerte_status,
|
||
(CASE
|
||
WHEN mo.mld_opdr_flag>0 THEN Lcl.L('lcl_opdr_flag' || mo.mld_opdr_flag)
|
||
ELSE ''
|
||
END) vlag,
|
||
(SELECT ok.waarde_n
|
||
FROM mld_v_udr_opdrachtkenmerk_cnd ok
|
||
WHERE ok.opdracht_key = u.opdracht_key AND ok.kenmerk = 'Offerte bedrag'
|
||
) Offertebedrag,-- Op naam 'Offerte bedrag' ipv Key ivm gebruik afwijkende keys in de diverse HeyDayomgevingen
|
||
(SELECT fac.safe_to_number(kw.mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding kw, mld_kenmerk km, mld_srtkenmerk sk
|
||
WHERE kw.mld_melding_key = m.melding_key AND kw.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'PROJECT LEIDER'
|
||
AND sk.mld_srtkenmerk_kenmerktype = 'S') projectleider_key,
|
||
(SELECT p.prs_perslid_naam
|
||
FROM mld_kenmerkmelding kw, mld_kenmerk km, mld_srtkenmerk sk, prs_perslid p
|
||
WHERE kw.mld_melding_key = m.melding_key AND kw.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND km.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_upper = 'PROJECT LEIDER'
|
||
AND sk.mld_srtkenmerk_kenmerktype = 'S'
|
||
AND fac.safe_to_number (kw.mld_kenmerkmelding_waarde) = p.prs_perslid_key) projectleider
|
||
FROM mld_v_udr_opdracht u,
|
||
mld_opdr mo,
|
||
alg_gebouw g,
|
||
mld_v_udr_melding m,
|
||
ins_tab_discipline d,
|
||
( SELECT o.mld_melding_key, COUNT (o.mld_statusopdr_key) aantal
|
||
FROM mld_opdr o
|
||
WHERE o.mld_statusopdr_key = 6
|
||
AND o.mld_opdr_bedrijfopdr_volgnr >
|
||
COALESCE (
|
||
(SELECT MAX (o1.mld_opdr_bedrijfopdr_volgnr)
|
||
FROM mld_opdr o1, mld_typeopdr mo1
|
||
WHERE o1.mld_typeopdr_key =
|
||
mo1.mld_typeopdr_key
|
||
AND mo1.mld_typeopdr_isofferte = 0
|
||
AND o1.mld_melding_key = o.mld_melding_key),
|
||
0)
|
||
GROUP BY o.mld_melding_key) nta,
|
||
( SELECT o.mld_melding_key, COUNT (o.mld_statusopdr_key) aantal
|
||
FROM mld_opdr o
|
||
WHERE o.mld_statusopdr_key = 9
|
||
AND o.mld_opdr_bedrijfopdr_volgnr >
|
||
COALESCE (
|
||
(SELECT MAX (o1.mld_opdr_bedrijfopdr_volgnr)
|
||
FROM mld_opdr o1, mld_typeopdr mo1
|
||
WHERE o1.mld_typeopdr_key =
|
||
mo1.mld_typeopdr_key
|
||
AND mo1.mld_typeopdr_isofferte = 0
|
||
AND o1.mld_melding_key = o.mld_melding_key),
|
||
0)
|
||
GROUP BY o.mld_melding_key) na
|
||
WHERE u.opdracht_gebouwcode = g.alg_gebouw_code
|
||
AND u.melding_key = m.melding_key
|
||
AND u.opdracht_key = mo.mld_opdr_key
|
||
AND m.fclt_3d_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_verwijder IS NULL
|
||
AND u.melding_key = na.mld_melding_key(+)
|
||
AND u.melding_key = nta.mld_melding_key(+)
|
||
AND (u.opdracht_type = 'RFQ' OR u.opdracht_type = 'Project RFQ') ;
|
||
|
||
|
||
---------------------------------------------------------------------------------
|
||
--
|
||
-- Huuradministratie
|
||
--
|
||
---------------------------------------------------------------------------------
|
||
CREATE OR REPLACE VIEW bcgv_v_huurruimte_geg_bron
|
||
AS
|
||
SELECT alg_ruimte_bruto_vloeropp,
|
||
alg_gebouw_upper,
|
||
alg_verdieping_code,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_key,
|
||
alg_verdieping_key,
|
||
COALESCE(cp.cnt_contract_plaats_gewicht, 1) * fac.safe_to_number(FLX.getflex('ALG', 1000, r.alg_ruimte_key, 'R')) fno_m2,
|
||
COALESCE(cp.cnt_contract_plaats_gewicht, 1) * fac.safe_to_number(FLX.getflex('ALG', 1000, r.alg_ruimte_key, 'R'))
|
||
* (1 + COALESCE(fac.safe_to_number(FLX.getflex('ALG', 1040, r.alg_verdieping_key, 'V')),0)/100)
|
||
* (1 + COALESCE(fac.safe_to_number(FLX.getflex('ALG', 1080, r.alg_gebouw_key, 'G')),0)/100) vvo_m2,
|
||
COALESCE(fac.safe_to_number(FLX.getflex('ALG', 1080, r.alg_gebouw_key, 'G')),0) v_sk_g,
|
||
COALESCE(fac.safe_to_number(FLX.getflex('ALG', 1040, r.alg_verdieping_key, 'V')),0) v_sk_v,
|
||
COALESCE(fac.safe_to_number(FLX.getflex('ALG', 1083, r.alg_gebouw_key, 'G')),0) t_sk,
|
||
COALESCE(fac.safe_to_number(FLX.getflex('ALG', 1085, r.alg_gebouw_key, 'G')),0) t_parkmgt,
|
||
COALESCE(fac.safe_to_number(FLX.getflex('ALG', 1086, r.alg_gebouw_key, 'G')),0) t_parkeer,
|
||
COALESCE(fac.safe_to_number(FLX.getflex('ALG', 1087, r.alg_gebouw_key, 'G')),0) t_ict,
|
||
COALESCE(fac.safe_to_number(FLX.getflex('ALG', 1001, r.alg_ruimte_key, 'R')),sr.alg_srtruimte_prijs) t_fno,
|
||
sr.alg_srtruimte_code,
|
||
sr.alg_srtruimte_omschrijving,
|
||
c.cnt_contract_looptijd_van,
|
||
c.cnt_contract_looptijd_tot,
|
||
cp.cnt_contract_key,
|
||
c.cnt_prs_bedrijf_key,
|
||
COALESCE(FAC.safe_to_number(o.optie), 0) optie
|
||
FROM cnt_contract c,
|
||
cnt_contract_plaats cp,
|
||
alg_v_ruimte_gegevens r,
|
||
alg_srtruimte sr,
|
||
(SELECT cnt_contract_key, cnt_kenmerkcontract_waarde optie
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE cnt_kenmerk_key = 37
|
||
AND cnt_kenmerkcontract_verwijder IS NULL) o
|
||
WHERE cp.cnt_contract_key = c.cnt_contract_key
|
||
AND cp.CNT_ALG_PLAATS_CODE = 'R'
|
||
AND cp.cnt_contract_plaats_verwijder IS NULL
|
||
AND cp.cnt_alg_plaats_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key
|
||
AND c.cnt_contract_key = o.cnt_contract_key(+);
|
||
|
||
|
||
CREATE OR REPLACE VIEW bcgv_v_rap_verhuur_geg
|
||
AS
|
||
SELECT b.cnt_contract_key,
|
||
COALESCE (h.prs_bedrijf_naam,
|
||
CASE
|
||
WHEN cnt_contract_looptijd_van > SYSDATE THEN 'Toekomst'
|
||
WHEN b.optie = 1 THEN 'Optie'
|
||
ELSE 'Leegstand'
|
||
END) prs_bedrijf_naam,
|
||
b.alg_srtruimte_code code,
|
||
rg.alg_srtruimte_omschrijving omschrijving,
|
||
rg.alg_gebouw_upper,
|
||
rg.alg_verdieping_code,
|
||
rg.alg_ruimte_nr,
|
||
rg.alg_ruimte_bruto_vloeropp,
|
||
COALESCE(fno_m2, fac.safe_to_number(FLX.getflex('ALG', 1000, rg.alg_ruimte_key, 'R'))) fno_m2,
|
||
t_fno,
|
||
fno_m2 * t_fno b_fno,
|
||
vvo_m2 - fno_m2 vvo_m2,
|
||
t_sk,
|
||
vvo_m2 * t_sk b_sk,
|
||
t_parkeer,
|
||
vvo_m2 * t_parkeer b_parkeer,
|
||
t_parkmgt,
|
||
vvo_m2 * t_parkmgt b_parkmgt,
|
||
t_ict,
|
||
vvo_m2 * t_ict b_ict,
|
||
(fno_m2 * t_fno) +
|
||
(vvo_m2 * t_sk) +
|
||
(fno_m2 * t_parkeer) +
|
||
(fno_m2 * t_ict) +
|
||
(vvo_m2 * t_parkmgt) tot,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
'Verhuurd' status
|
||
FROM alg_v_ruimte_gegevens rg,
|
||
(SELECT * FROM bcgv_v_huurruimte_geg_bron WHERE cnt_contract_looptijd_tot > SYSDATE) b,
|
||
prs_bedrijf h
|
||
WHERE rg.alg_ruimte_key = b.alg_ruimte_key(+)
|
||
AND h.prs_bedrijf_key(+) = b.cnt_prs_bedrijf_key
|
||
AND rg.alg_locatie_key = 1 -- Venlo
|
||
AND rg.alg_verdieping_volgnr < 20;
|
||
|
||
-- rapportage voor het contracten tabblad in Graphics
|
||
CREATE OR REPLACE VIEW bcgv_v_rap_cnt_graphics
|
||
AS
|
||
SELECT b.alg_ruimte_nr,
|
||
vvo_m2,
|
||
cnt_contract_key,
|
||
h.prs_bedrijf_naam huurder,
|
||
cnt_contract_looptijd_van,
|
||
cnt_contract_looptijd_tot,
|
||
b.alg_ruimte_key highlight,
|
||
b.alg_verdieping_key vkey
|
||
FROM bcgv_v_huurruimte_geg_bron b, prs_bedrijf h
|
||
WHERE h.prs_bedrijf_key = b.cnt_prs_bedrijf_key
|
||
AND SYSDATE BETWEEN cnt_contract_looptijd_van AND cnt_contract_looptijd_tot;
|
||
|
||
CREATE OR REPLACE VIEW bcgv_v_cad_thema_leegstand
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT rg.alg_ruimte_key,
|
||
DECODE (
|
||
COALESCE (prs_verhuurbaar, 0),
|
||
0, 'Niet verhuurbaar',
|
||
CASE
|
||
WHEN -- Heb ik op dit moment een geldig huurcontract
|
||
(SELECT COUNT (*)
|
||
FROM bcgv_v_huurruimte_geg_bron b
|
||
WHERE optie = 0
|
||
AND b.alg_ruimte_key = rg.alg_ruimte_key
|
||
AND SYSDATE BETWEEN cnt_contract_looptijd_van
|
||
AND cnt_contract_looptijd_tot) >
|
||
0
|
||
THEN
|
||
'Verhuurd'
|
||
-- Heb ik op in de toekomst een geldig huurcontract
|
||
WHEN (SELECT COUNT (*)
|
||
FROM bcgv_v_huurruimte_geg_bron b
|
||
WHERE optie = 0
|
||
AND b.alg_ruimte_key = rg.alg_ruimte_key
|
||
AND cnt_contract_looptijd_van > SYSDATE) >
|
||
0
|
||
THEN
|
||
'Toekomst'
|
||
-- Heb ik nu of in de toekomst een optie
|
||
WHEN (SELECT COUNT (*)
|
||
FROM bcgv_v_huurruimte_geg_bron b
|
||
WHERE optie = 1
|
||
AND b.alg_ruimte_key = rg.alg_ruimte_key
|
||
AND cnt_contract_looptijd_tot > SYSDATE) >
|
||
0
|
||
THEN
|
||
'Optie'
|
||
ELSE
|
||
'Leegstand'
|
||
END) status
|
||
FROM alg_v_ruimte_gegevens rg, alg_srtruimte sr
|
||
WHERE rg.alg_srtruimte_key = sr.alg_srtruimte_key
|
||
AND alg_locatie_key = 1;
|
||
|
||
|
||
-- Exact koppeling
|
||
-- eerste opzet voor de view om Exact data voor verhuurcontracten in de verkoopfactuur tabel te laden
|
||
-- factuurnummers, komen deze uit Facilitor?
|
||
-- Alle huidige en toekomstige contracten worden getoond. Bij het vullen van de verkoopfactuur tabel worden
|
||
-- de toekomstige contracten niet meegenomen.
|
||
CREATE OR REPLACE VIEW bcgv_v_export_exact_gv_bron
|
||
AS
|
||
SELECT c.cnt_contract_key,
|
||
b.prs_bedrijf_key,
|
||
b.prs_bedrijf_naam,
|
||
c.cnt_contract_omschrijving,
|
||
b.prs_leverancier_nr,
|
||
fin_btwtabelwaarde_code,
|
||
fin_btwtabelwaarde_perc,
|
||
item,
|
||
bedrag,
|
||
code_exact,
|
||
oms_exact,
|
||
FLX.getflex('CNT', 36, c.cnt_contract_key) opmerking,
|
||
-- voor studentenhuisvesting kennen we andere kostenplaatsen voor huur en servicekosten
|
||
DECODE (cg.kostenplaats,
|
||
'huur', DECODE (FLX.getflex('CNT', 40, c.cnt_contract_key), 1, 414, hs.huur),
|
||
'srvk', DECODE (FLX.getflex('CNT', 40, c.cnt_contract_key), 1, 511, hs.srvk),
|
||
cg.kostenplaats) kostenplaats,
|
||
volgorde,
|
||
c.cnt_contract_looptijd_van,
|
||
c.cnt_contract_looptijd_tot,
|
||
CNT.cnt_getOpzegdatum(c.cnt_contract_key) opzegdatum,
|
||
(SELECT cnt_termijn_omschrijving
|
||
FROM cnt_termijn t
|
||
WHERE t.cnt_termijn_key = cnt_contract_opzegtermijn) opzegtermijn,
|
||
v.fno_m2,
|
||
(v.fno_m2 + v.vvo_m2) vvo_m2
|
||
FROM (SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
FLX.getflex('CNT', 33, cnt_contract_key)
|
||
item,
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 17, cnt_contract_key))
|
||
bedrag,
|
||
'10'
|
||
code_exact,
|
||
'Bijdrage Dienstverlening'
|
||
oms_exact,
|
||
COALESCE(FLX.getflex('CNT', 26, cnt_contract_key), '525')
|
||
kostenplaats,
|
||
50 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
FLX.getflex('CNT', 34, cnt_contract_key),
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 18, cnt_contract_key)),
|
||
'10',
|
||
'Bijdrage Dienstverlening',
|
||
COALESCE(FLX.getflex('CNT', 27, cnt_contract_key), '525')
|
||
kostenplaats,
|
||
50 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
FLX.getflex('CNT', 35, cnt_contract_key),
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 19, cnt_contract_key)),
|
||
'10',
|
||
'Bijdrage Dienstverlening',
|
||
COALESCE(FLX.getflex('CNT', 28, cnt_contract_key), '525')
|
||
kostenplaats,
|
||
50 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'Huur terrein bedrag',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 16, cnt_contract_key)),
|
||
'60',
|
||
'Huur terrein',
|
||
'411'
|
||
kostenplaats,
|
||
10 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'Huur korting',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 21, cnt_contract_key)),
|
||
'110',
|
||
'Huurkorting',
|
||
'huur'
|
||
kostenplaats,
|
||
51 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'VVO Huurbedrag',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 7, cnt_contract_key)), -- VVO Huurbedrag
|
||
'30',
|
||
'Huur ruimte',
|
||
'huur'
|
||
kostenplaats,
|
||
10 volgorde
|
||
FROM cnt_contract k
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'0'
|
||
fin_btwtabelwaarde_code,
|
||
0
|
||
fin_btwtabelwaarde_perc,
|
||
'VVO Huurbedrag geen BTW',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 8, cnt_contract_key)), -- VVO Huurbedrag geen BTW
|
||
'30',
|
||
'Huur ruimte',
|
||
'huur'
|
||
kostenplaats,
|
||
10 volgorde
|
||
FROM cnt_contract k
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'Campusparkeren bedrag',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 14, cnt_contract_key)), -- Campusparkeren bedrag
|
||
'35',
|
||
'Bijdrage Campusparkeren',
|
||
'522'
|
||
kostenplaats,
|
||
60 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'0'
|
||
fin_btwtabelwaarde_code,
|
||
0
|
||
fin_btwtabelwaarde_perc,
|
||
'Borg',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 41, cnt_contract_key)), -- Waarborgsom
|
||
'70',
|
||
'Opbrengst waarborgsommen',
|
||
''
|
||
kostenplaats,
|
||
70 volgorde
|
||
FROM cnt_contract
|
||
WHERE FLX.getflex('CNT', 42, cnt_contract_key) IS NULL -- Waarborg is nog niet eerder ge<67>nd.
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'Service kosten',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 9, cnt_contract_key)), -- Servkost bedrag
|
||
'40',
|
||
'Bijdrage Servicekosten',
|
||
'srvk'
|
||
kostenplaats,
|
||
20 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'ServKost extra bedrag BTW hoog',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 11, cnt_contract_key)), -- ServKost extra bedrag BTW hoog
|
||
'40',
|
||
'Bijdrage Servicekosten',
|
||
'srvk'
|
||
kostenplaats,
|
||
21 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'0'
|
||
fin_btwtabelwaarde_code,
|
||
0
|
||
fin_btwtabelwaarde_perc,
|
||
'ServKost bedrag geen BTW',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 10, cnt_contract_key)), -- ServKost bedrag geen BTW
|
||
'40',
|
||
'Bijdrage Servicekosten',
|
||
'srvk'
|
||
kostenplaats,
|
||
21 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'4'
|
||
fin_btwtabelwaarde_code,
|
||
9
|
||
fin_btwtabelwaarde_perc,
|
||
'ServKost extra bedrag BTW laag',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 12, cnt_contract_key)), -- ServKost extra bedrag BTW laag
|
||
'40',
|
||
'Bijdrage Servicekosten',
|
||
'srvk'
|
||
kostenplaats,
|
||
21 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'4'
|
||
fin_btwtabelwaarde_code,
|
||
9
|
||
fin_btwtabelwaarde_perc,
|
||
'Dienstverlening Water',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 20, cnt_contract_key)), -- Dienstverlening Water
|
||
'10',
|
||
'Bijdrage Dienstverlening',
|
||
'525'
|
||
kostenplaats,
|
||
50 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'Parkmgt',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 13, cnt_contract_key)), -- Parkmgt bedrag
|
||
'100',
|
||
'Bijdrage Parkmanagement',
|
||
'521'
|
||
kostenplaats,
|
||
30 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'ICT',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 15, cnt_contract_key)), -- ICT bedrag
|
||
'120',
|
||
'Bijdrage ICT',
|
||
'535'
|
||
kostenplaats,
|
||
40 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'Flexplek vaste plek bedrag',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 2, cnt_contract_key)), -- Flexplek vaste plek bedrag
|
||
'10',
|
||
'Huur ruimte',
|
||
'534'
|
||
kostenplaats,
|
||
10 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'Flex ongelimiteerd',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 3, cnt_contract_key)), -- Flexplek ongelimiteerd bedrag
|
||
'10',
|
||
'Huur ruimte',
|
||
'534'
|
||
kostenplaats,
|
||
10 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'Flex 12 dagen',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 4, cnt_contract_key)), -- Flexplek 12 dagen per maand bedrag
|
||
'10',
|
||
'Huur ruimte',
|
||
'534'
|
||
kostenplaats,
|
||
10 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'Flex 5 dagen',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 5, cnt_contract_key)), -- Flexplek 5 dagen per maand bedrag
|
||
'10',
|
||
'Huur ruimte',
|
||
'534'
|
||
kostenplaats,
|
||
10 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'3'
|
||
fin_btwtabelwaarde_code,
|
||
21
|
||
fin_btwtabelwaarde_perc,
|
||
'Flex locker',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 6, cnt_contract_key)), -- Flexplek locker
|
||
'10',
|
||
'Huur ruimte',
|
||
'534'
|
||
kostenplaats,
|
||
11 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'0'
|
||
fin_btwtabelwaarde_code,
|
||
0
|
||
fin_btwtabelwaarde_perc,
|
||
'Opslag BTW herziening',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 22, cnt_contract_key)), -- Opslag BTW herziening
|
||
'30',
|
||
'Huur ruimte',
|
||
'huur'
|
||
kostenplaats,
|
||
90 volgorde
|
||
FROM cnt_contract
|
||
UNION ALL
|
||
SELECT cnt_contract_key,
|
||
'0'
|
||
fin_btwtabelwaarde_code,
|
||
0
|
||
fin_btwtabelwaarde_perc,
|
||
'Opslag BTW pro rata',
|
||
FAC.safe_to_number (
|
||
FLX.getflex('CNT', 23, cnt_contract_key)), -- Opslag BTW pro rata
|
||
'30',
|
||
'Huur ruimte',
|
||
'huur'
|
||
kostenplaats,
|
||
90 volgorde
|
||
FROM cnt_contract
|
||
GROUP BY cnt_contract_key) cg,
|
||
cnt_contract c,
|
||
prs_bedrijf b,
|
||
(SELECT cnt_contract_key,
|
||
FLX.getflex ('ALG', 1060, alg_gebouw_key, 'G') huur,
|
||
FLX.getflex ('ALG', 1061, alg_gebouw_key, 'G') srvk
|
||
FROM (SELECT DISTINCT cnt_contract_key, alg_gebouw_key
|
||
FROM cnt_contract_plaats cp, alg_v_allonroerendgoed aog
|
||
WHERE ( ( cp.cnt_alg_plaats_code = 'R'
|
||
AND cp.cnt_alg_plaats_key =
|
||
aog.alg_ruimte_key)
|
||
OR ( cp.cnt_alg_plaats_code = 'V'
|
||
AND cp.cnt_alg_plaats_key =
|
||
aog.alg_verdieping_key)
|
||
OR ( cp.cnt_alg_plaats_code = 'G'
|
||
AND cp.cnt_alg_plaats_key =
|
||
aog.alg_gebouw_key)
|
||
OR ( cp.cnt_alg_plaats_code = 'L'
|
||
AND cp.cnt_alg_plaats_key =
|
||
aog.alg_locatie_key)))) hs,
|
||
(SELECT cnt_contract_key, sum(fno_m2) fno_m2, sum(vvo_m2) vvo_m2
|
||
FROM bcgv_v_rap_verhuur_geg
|
||
WHERE cnt_contract_key IS NOT NULL
|
||
GROUP BY cnt_contract_key) v
|
||
WHERE c.cnt_contract_key = cg.cnt_contract_key
|
||
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND c.cnt_contract_key = hs.cnt_contract_key(+)
|
||
AND c.cnt_contract_key = v.cnt_contract_key(+)
|
||
AND c.ins_discipline_key = 241 -- verhuurcontract
|
||
AND cg.bedrag IS NOT NULL
|
||
AND c.cnt_contract_verwijder IS NULL
|
||
AND c.cnt_contract_looptijd_tot >
|
||
ADD_MONTHS (TRUNC (SYSDATE, 'MM'), 1)
|
||
AND c.cnt_contract_key NOT IN
|
||
(SELECT cnt_contract_key
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE cnt_kenmerk_key = 37 -- optie
|
||
AND cnt_kenmerkcontract_verwijder IS NULL
|
||
AND cnt_kenmerkcontract_waarde = '1');
|
||
|
||
|
||
CREATE OR REPLACE VIEW bcgv_v_export_exact_gv (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'bcgv_EXACT';
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE bcgv_select_exact_gv (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR c
|
||
IS
|
||
SELECT fin_verkoopfactuur_refkey, prs_debiteur_naam, fin_verkoopfactuur_omschr, fin_verkoopfactuur_datum, fin_verkoopfactuur_c8
|
||
FROM fin_verkoopfactuur
|
||
WHERE fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
|
||
AND fin_verkoopfactuur_d1 IS NULL
|
||
GROUP BY fin_verkoopfactuur_refkey, prs_debiteur_naam, fin_verkoopfactuur_omschr, fin_verkoopfactuur_datum, fin_verkoopfactuur_c8;
|
||
|
||
CURSOR c_cnt (c_contract_key NUMBER)
|
||
IS
|
||
SELECT *
|
||
FROM fin_verkoopfactuur
|
||
WHERE fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
|
||
AND fin_verkoopfactuur_d1 IS NULL
|
||
AND fin_verkoopfactuur_refkey = c_contract_key
|
||
ORDER BY fin_verkoopfactuur_n1;
|
||
|
||
|
||
v_order_count NUMBER;
|
||
v_amount_sum NUMBER(10,2);
|
||
v_amount_sum_incl NUMBER(10,2);
|
||
v_count NUMBER;
|
||
v_sub_count NUMBER;
|
||
v_bestand VARCHAR2(12);
|
||
v_boekstuknummer NUMBER;
|
||
v_crdnr PRS_BEDRIJF.PRS_LEVERANCIER_NR%TYPE;
|
||
v_factuur_nr FIN_FACTUUR.FIN_FACTUUR_NR%TYPE;
|
||
v_prefix VARCHAR2(10);
|
||
|
||
BEGIN
|
||
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
v_amount_sum_incl := 0;
|
||
v_bestand := 'bcgv_EXACT';
|
||
v_crdnr := 'Q';
|
||
v_factuur_nr := 'Q';
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
-- verwijder niet verwerkte regels uit de verkoopfactuur tabel
|
||
DELETE fin_verkoopfactuur
|
||
WHERE fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
|
||
AND fin_verkoopfactuur_d1 IS NULL;
|
||
|
||
-- Vul de verkoopfactuurtabel met de nieuwe records
|
||
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuur_id,
|
||
fin_verkoopfactuur_datum,
|
||
fin_verkoopfactuur_omschr,
|
||
fin_verkoopfactuur_xmlnode,
|
||
fin_verkoopfactuur_refkey,
|
||
prs_kostenplaats_nr,
|
||
prs_kostensoort_oms,
|
||
prs_kostensoort_opmerking,
|
||
prs_bedrijf_key,
|
||
prs_debiteur_naam,
|
||
fin_verkoopfactuur_bedrag,
|
||
fin_verkoopfactuur_btw,
|
||
fin_btwtabelwaarde_code,
|
||
fin_btwtabelwaarde_perc,
|
||
fin_verkoopfactuur_maand,
|
||
fin_verkoopfactuur_n1,
|
||
fin_verkoopfactuur_c1,
|
||
fin_verkoopfactuur_c2,
|
||
fin_verkoopfactuur_c4,
|
||
fin_verkoopfactuur_c6, -- vullen met FNO_M2
|
||
fin_verkoopfactuur_c7, -- vullen met VVO_M2
|
||
fin_verkoopfactuur_c8) -- vullen met Opmerking
|
||
SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy') || ' C' || cnt_contract_key,
|
||
SYSDATE,
|
||
'Facturatie Huur en Servicekosten '
|
||
|| TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'Mon yyyy'),
|
||
'contract',
|
||
cnt_contract_key,
|
||
kostenplaats,
|
||
oms_exact,
|
||
code_exact,
|
||
prs_bedrijf_key,
|
||
prs_leverancier_nr,
|
||
bedrag,
|
||
ROUND (bedrag * (fin_btwtabelwaarde_perc / 100), 2),
|
||
fin_btwtabelwaarde_code,
|
||
fin_btwtabelwaarde_perc,
|
||
TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyymm'),
|
||
volgorde,
|
||
cnt_contract_omschrijving,
|
||
item,
|
||
'HuurGreenportVenlo',
|
||
fno_m2,
|
||
vvo_m2,
|
||
opmerking
|
||
FROM bcgv_v_export_exact_gv_bron
|
||
WHERE cnt_contract_looptijd_van <= ADD_MONTHS (TRUNC (SYSDATE, 'MM'), 1);
|
||
|
||
|
||
-- Bepaal het boekstuknummer (key 3) met het hoogste nummer van dit jaar
|
||
-- ## AAIT#36589
|
||
|
||
SELECT MAX(fin_kenmerkfactuur_waarde)
|
||
INTO v_boekstuknummer
|
||
FROM fin_kenmerkfactuur
|
||
WHERE fin_kenmerk_key = 3
|
||
AND SUBSTR(fin_kenmerkfactuur_waarde,1,2) = TO_CHAR(SYSDATE, 'YY');
|
||
|
||
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
v_amount_sum_incl := 0;
|
||
v_prefix := NULL;
|
||
|
||
-- header
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<eExact>');
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<Invoices>');
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
-- Als we een nieuw contract tegenkomen gaan we het factuurnummer ophogen.
|
||
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<Invoice type="8020" status="50">');
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<Journal code="40"/>');
|
||
bcgv.add_xml_element_p (v_bestand, v_prefix, 'OrderDate', rec.fin_verkoopfactuur_datum);
|
||
bcgv.add_xml_element_p (v_bestand, v_prefix, 'InvoiceDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') );
|
||
bcgv.add_xml_element_p (v_bestand, v_prefix, 'Description', xml.char_to_html(rec.fin_verkoopfactuur_omschr));
|
||
bcgv.add_xml_element_p (v_bestand, v_prefix, 'Notes', xml.char_to_html(rec.fin_verkoopfactuur_c8));
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<OrderedBy code="' || rec.prs_debiteur_naam || '"/>');
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<InvoiceTo code="' || rec.prs_debiteur_naam || '"/>');
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<PaymentCondition code="02"/>');
|
||
|
||
v_sub_count := 1;
|
||
FOR rec1 IN c_cnt (rec.fin_verkoopfactuur_refkey)
|
||
LOOP
|
||
BEGIN
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<InvoiceLine line="' || v_sub_count || '">');
|
||
bcgv.add_xml_element_p (v_bestand, v_prefix, 'Description', xml.char_to_html(rec1.prs_kostensoort_oms));
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<Item code="' || rec1.prs_kostensoort_opmerking || '"/>');
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<Costcenter code="' || rec1.prs_kostenplaats_nr || '"/>');
|
||
IF rec1.fin_verkoopfactuur_bedrag < 0
|
||
THEN
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<Quantity>-1</Quantity>');
|
||
ELSE
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<Quantity>1</Quantity>');
|
||
END IF;
|
||
-- bcgv#70153 bcgv.add_xml_row_p (v_bestand, v_prefix, '<Unit code="pc"/>');
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<NetPrice>');
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<Currency code="EUR" />');
|
||
bcgv.add_xml_element_p (v_bestand, v_prefix, 'Value', REPLACE (TO_CHAR (ABS(rec1.fin_verkoopfactuur_bedrag)), ',', '.'));
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '<VAT code="' || rec1.fin_btwtabelwaarde_code || '"/>');
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '</NetPrice>');
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '</InvoiceLine>');
|
||
v_sub_count := v_sub_count + 1;
|
||
v_amount_sum := v_amount_sum + rec1.fin_verkoopfactuur_bedrag;
|
||
END;
|
||
END LOOP;
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '</Invoice>');
|
||
v_order_count := v_order_count + 1;
|
||
END;
|
||
END LOOP;
|
||
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '</Invoices>');
|
||
bcgv.add_xml_row_p (v_bestand, v_prefix, '</eExact>');
|
||
|
||
fac.writelog (p_applname, 'S', 'Exact export Greenport huurfacturen uitgevoerd. Aantal facturen: ' || v_order_count || ' Totaal bedrag: ' || v_amount_sum, '');
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW bcgv_v_export_exact_gv_frozen
|
||
AS
|
||
SELECT fin_verkoopfactuur_refkey cnt_contract_key,
|
||
b.prs_bedrijf_key ,
|
||
b.prs_bedrijf_naam,
|
||
fin_verkoopfactuur_c1 cnt_contract_omschrijving,
|
||
prs_debiteur_naam prs_leverancier_nr,
|
||
fin_btwtabelwaarde_code,
|
||
fin_btwtabelwaarde_perc,
|
||
fin_verkoopfactuur_c2 item,
|
||
fin_verkoopfactuur_bedrag bedrag,
|
||
prs_kostensoort_opmerking,
|
||
prs_kostensoort_oms code_exact,
|
||
prs_kostenplaats_nr oms_exact,
|
||
fin_verkoopfactuur_maand boekmaand,
|
||
fin_verkoopfactuur_datum factuurdatum,
|
||
fin_verkoopfactuur_c6 fno_m2,
|
||
fin_verkoopfactuur_c7 vvo_m2
|
||
FROM fin_verkoopfactuur vf, prs_bedrijf b
|
||
WHERE vf.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
|
||
AND fin_verkoopfactuur_d1 IS NOT NULL;
|
||
|
||
|
||
CREATE OR REPLACE VIEW bcgv_v_export_verwerk_exact_gv (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT 'cnt_contract_key;' ||
|
||
'prs_bedrijf_key;' ||
|
||
'prs_bedrijf_naam;' ||
|
||
'cnt_contract_omschrijving;' ||
|
||
'prs_leverancier_nr;' ||
|
||
'fin_btwtabelwaarde_code;' ||
|
||
'fin_btwtabelwaarde_perc;' ||
|
||
'item;' ||
|
||
'bedrag;' ||
|
||
'prs_kostensoort_opmerking;' ||
|
||
'code_exact;' ||
|
||
'oms_exact;' ||
|
||
'boekmaand', -1
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT fin_verkoopfactuur_refkey || ';' ||
|
||
b.prs_bedrijf_key || ';' ||
|
||
b.prs_bedrijf_naam || ';' ||
|
||
fin_verkoopfactuur_c1 || ';' ||
|
||
prs_debiteur_naam || ';' ||
|
||
fin_btwtabelwaarde_code || ';' ||
|
||
fin_btwtabelwaarde_perc || ';' ||
|
||
fin_verkoopfactuur_c2 || ';' ||
|
||
fin_verkoopfactuur_bedrag || ';' ||
|
||
prs_kostensoort_opmerking || ';' ||
|
||
prs_kostensoort_oms || ';' ||
|
||
prs_kostenplaats_nr || ';' ||
|
||
fin_verkoopfactuur_maand, fin_verkoopfactuur_key
|
||
FROM fin_verkoopfactuur vf, prs_bedrijf b
|
||
WHERE vf.prs_bedrijf_key = b.prs_bedrijf_key
|
||
AND fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
|
||
AND fin_verkoopfactuur_d1 > SYSDATE - 0.1;
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE bcgv_select_verwerk_exact_gv (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT c.cnt_contract_key, 445 cnt_kenmerk_key -- Waarborgsom geint op datum
|
||
FROM cnt_contract c
|
||
WHERE EXISTS
|
||
(SELECT cnt_kenmerkcontract_key
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
||
AND kc.cnt_kenmerk_key = 444) -- Waarborgsom
|
||
AND NOT EXISTS
|
||
(SELECT cnt_kenmerkcontract_key
|
||
FROM cnt_kenmerkcontract kc
|
||
WHERE kc.cnt_contract_key = c.cnt_contract_key
|
||
AND kc.cnt_kenmerk_key = 445);
|
||
|
||
BEGIN
|
||
FOR rec IN c
|
||
LOOP
|
||
INSERT INTO cnt_kenmerkcontract (cnt_contract_key, cnt_kenmerk_key, cnt_kenmerkcontract_waarde)
|
||
VALUES (rec.cnt_contract_key, rec.cnt_kenmerk_key, TO_CHAR(SYSDATE, 'DD-MM-YYYY'));
|
||
END LOOP;
|
||
|
||
UPDATE fin_verkoopfactuur
|
||
SET fin_verkoopfactuur_d1 = SYSDATE
|
||
WHERE fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
|
||
AND fin_verkoopfactuur_d1 IS NULL;
|
||
END;
|
||
/
|
||
|
||
|
||
/* Formatted on 30-9-2024 14:05:23 (QP5 v5.336) */
|
||
CREATE OR REPLACE PROCEDURE bcgv_import_budgettering (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR imp_csv IS
|
||
SELECT fac_imp_csv_key fac_imp_csv_key,
|
||
fac_imp_csv_col01 kostenplaats_nr,
|
||
fac_imp_csv_col02 kostenplaats_oms,
|
||
fac_imp_csv_col03 kostensoort_code,
|
||
fac_imp_csv_col04 kostensoort_oms,
|
||
fac_imp_csv_col05 periode,
|
||
fac_imp_csv_col06 budget
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_csv_key;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_aanduiding VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
v_header_valid NUMBER := 0;
|
||
v_prs_kostenplaats_key NUMBER;
|
||
v_prs_kostensoortgrp_key NUMBER;
|
||
v_prs_kostensoort_key NUMBER;
|
||
v_alg_gebouw_code VARCHAR2 (20);
|
||
BEGIN
|
||
FOR rec IN imp_csv
|
||
LOOP
|
||
IF v_header_valid = 0
|
||
THEN
|
||
IF ( UPPER (rec.kostenplaats_nr) = 'KOSTENPLAATSCODE'
|
||
AND UPPER (rec.kostenplaats_oms) = 'KOSTENPLAATSOMS'
|
||
AND UPPER (rec.kostensoort_code) = 'KOSTENSOORTCODE'
|
||
AND UPPER (rec.kostensoort_oms) = 'KOSTENSOORTOMS'
|
||
AND UPPER (rec.periode) = 'PERIODE'
|
||
AND UPPER (rec.budget) = 'BUDGET (EURO)')
|
||
THEN
|
||
v_header_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_aanduiding := 'Ophalen kostenplaats ' || rec.kostenplaats_nr || ' mislukt';
|
||
|
||
SELECT p.prs_kostenplaats_key
|
||
INTO v_prs_kostenplaats_key
|
||
FROM prs_kostenplaats p
|
||
WHERE p.prs_kostenplaats_nr = rec.kostenplaats_nr AND p.prs_kostenplaats_verwijder IS NULL;
|
||
|
||
IF v_prs_kostenplaats_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errorhint,
|
||
'Kan kostenplaats niet 1-duidig bepalen');
|
||
END IF;
|
||
|
||
v_aanduiding := 'Ophalen kostensoort ' || rec.kostensoort_code || ' mislukt';
|
||
|
||
SELECT k.prs_kostensoort_key
|
||
INTO v_prs_kostensoort_key
|
||
FROM prs_kostensoort k
|
||
WHERE k.prs_kostensoort_upper = UPPER (rec.kostensoort_code)
|
||
AND k.prs_kostensoort_verwijder IS NULL;
|
||
|
||
IF v_prs_kostensoort_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errorhint,
|
||
'Kan kostensoort niet 1-duidig bepalen');
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
IF v_header_valid = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Geen valide header gevonden',
|
||
'Header fout');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE bcgv_update_budgettering (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR bdgt IS
|
||
SELECT fac_imp_csv_key fac_imp_csv_key,
|
||
fac_imp_csv_col01 kostenplaats_nr,
|
||
fac_imp_csv_col02 kostenplaats_oms,
|
||
fac_imp_csv_col03 kostensoort_code,
|
||
fac_imp_csv_col04 kostensoort_oms,
|
||
fac_imp_csv_col05 periode,
|
||
fac_imp_csv_col06 budget
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_csv_key;
|
||
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_aanduiding VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER := 0;
|
||
v_ongeldig NUMBER := 0;
|
||
|
||
v_ins_discipline_key NUMBER;
|
||
v_bgt_project_key NUMBER;
|
||
v_bgt_kostenrubriek_key NUMBER;
|
||
v_kostensoortgrp_key NUMBER;
|
||
v_kostensoort_key NUMBER;
|
||
v_kostenplaatsgrp_key NUMBER;
|
||
v_kostenplaats_key NUMBER;
|
||
v_kostenplaats_omschrijving PRS_KOSTENPLAATS.PRS_KOSTENPLAATS_OMSCHRIJVING%TYPE;
|
||
v_budget NUMBER;
|
||
v_budget_nu NUMBER;
|
||
v_budget_key NUMBER;
|
||
v_periode_start DATE;
|
||
v_periode_eind DATE;
|
||
BEGIN
|
||
BEGIN
|
||
v_aanduiding := 'Ophalen budget project disciplne Investering budgettering mislukt';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_ins_discipline_key
|
||
FROM ins_tab_discipline i
|
||
WHERE i.ins_discipline_module = 'BGT'
|
||
AND i.ins_discipline_omschrijving = 'Investering'
|
||
AND i.ins_discipline_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving,
|
||
ins_discipline_module,
|
||
ins_discipline_aanmaak,
|
||
ins_discipline_kpnverplicht)
|
||
VALUES ('Investering',
|
||
'BGT',
|
||
SYSDATE,
|
||
0)
|
||
RETURNING ins_discipline_key
|
||
INTO v_ins_discipline_key;
|
||
|
||
INSERT INTO bgt_disc_params (bgt_ins_discipline_key)
|
||
VALUES (v_ins_discipline_key);
|
||
END;
|
||
|
||
IF v_ins_discipline_key = NULL
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errorhint,
|
||
'Kan budget project disciplne niet 1-duidig bepalen of aanmaken');
|
||
v_ongeldig := 1;
|
||
ELSE
|
||
BEGIN
|
||
v_aanduiding := 'Ophalen budget project Budgettering mislukt';
|
||
|
||
SELECT p.bgt_project_key
|
||
INTO v_bgt_project_key
|
||
FROM bgt_project p
|
||
WHERE p.bgt_project_code = 'Budgettering'
|
||
AND p.ins_discipline_key = v_ins_discipline_key
|
||
AND bgt_project_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO bgt_project (ins_discipline_key,
|
||
bgt_project_code,
|
||
bgt_project_omschrijving,
|
||
bgt_project_aanmaak)
|
||
VALUES (v_ins_discipline_key,
|
||
'Budgettering',
|
||
'Budgettering',
|
||
SYSDATE)
|
||
RETURNING bgt_project_key
|
||
INTO v_bgt_project_key;
|
||
END;
|
||
END IF;
|
||
|
||
IF v_bgt_project_key = NULL OR v_ongeldig = 1
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errorhint,
|
||
'Kan project niet 1-duidig bepalen of aanmaken');
|
||
v_ongeldig := 1;
|
||
ELSE
|
||
FOR rec IN bdgt
|
||
LOOP
|
||
IF v_count > 0
|
||
THEN
|
||
BEGIN
|
||
v_aanduiding := 'Ophalen budget project Budgettering mislukt';
|
||
|
||
SELECT p.bgt_project_key
|
||
INTO v_bgt_project_key
|
||
FROM bgt_project p
|
||
WHERE p.bgt_project_code = rec.periode
|
||
AND p.ins_discipline_key = v_ins_discipline_key
|
||
AND bgt_project_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO bgt_project (ins_discipline_key,
|
||
bgt_project_code,
|
||
bgt_project_omschrijving,
|
||
bgt_project_aanmaak)
|
||
VALUES (v_ins_discipline_key,
|
||
rec.periode,
|
||
rec.periode,
|
||
SYSDATE)
|
||
RETURNING bgt_project_key
|
||
INTO v_bgt_project_key;
|
||
END;
|
||
|
||
v_aanduiding := 'OPhalen kostenplaatsnr ' || rec.kostenplaats_nr || ' mislukt';
|
||
|
||
SELECT k.prs_kostenplaats_key, k.prs_kostenplaatsgrp_key, k.prs_kostenplaats_omschrijving
|
||
INTO v_kostenplaats_key, v_kostenplaatsgrp_key, v_kostenplaats_omschrijving
|
||
FROM prs_kostenplaats k
|
||
WHERE k.prs_kostenplaats_nr = rec.kostenplaats_nr AND k.prs_kostenplaats_verwijder IS NULL;
|
||
|
||
BEGIN
|
||
v_aanduiding := 'Ophalen budget project kostenrubriek ' || v_kostenplaats_omschrijving || ' mislukt';
|
||
|
||
SELECT k.bgt_kostenrubriek_key
|
||
INTO v_bgt_kostenrubriek_key
|
||
FROM bgt_kostenrubriek k
|
||
WHERE k.bgt_project_key = v_bgt_project_key
|
||
AND k.bgt_kostenrubriek_code = rec.kostenplaats_nr
|
||
AND k.bgt_kostenrubriek_oms = v_kostenplaats_omschrijving;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO bgt_kostenrubriek (bgt_project_key, bgt_kostenrubriek_code, bgt_kostenrubriek_oms)
|
||
VALUES (v_bgt_project_key, rec.kostenplaats_nr, v_kostenplaats_omschrijving)
|
||
RETURNING bgt_kostenrubriek_key
|
||
INTO v_bgt_kostenrubriek_key;
|
||
END;
|
||
|
||
v_aanduiding :=
|
||
'Ophalen kostensoort en kostengroep ' || rec.kostensoort_code || '-' || rec.kostensoort_oms || ' mislukt';
|
||
|
||
SELECT s.prs_kostensoort_key, s.prs_kostensoortgrp_key
|
||
INTO v_kostensoort_key, v_kostensoortgrp_key
|
||
FROM prs_kostensoort s, prs_kostensoortgrp g
|
||
WHERE s.prs_kostensoort_upper = rec.kostensoort_code
|
||
AND s.prs_kostensoortgrp_key = g.prs_kostensoortgrp_key
|
||
AND s.prs_kostensoort_verwijder IS NULL;
|
||
|
||
v_budget := fac.safe_to_number (REPLACE (rec.budget, '.', ''));
|
||
|
||
v_periode_start := fac.safe_to_date ('01-01-' || rec.periode, 'DD-MM-YYYY');
|
||
v_periode_eind := fac.safe_to_date ('31-12-' || rec.periode, 'DD-MM-YYYY');
|
||
|
||
|
||
IF v_kostenplaats_key > 0
|
||
AND v_kostenplaatsgrp_key > 0
|
||
AND v_kostensoort_key > 0
|
||
AND v_kostensoortgrp_key > 0
|
||
AND v_budget > 0
|
||
THEN
|
||
-- Eerst kijken of hij er al is
|
||
BEGIN
|
||
SELECT b.bgt_budget_key, b.bgt_budget_bedrag
|
||
INTO v_budget_key, v_budget_nu
|
||
FROM bgt_budget b
|
||
WHERE b.ins_discipline_key = v_ins_discipline_key
|
||
AND b.bgt_project_key = v_bgt_project_key
|
||
AND b.bgt_kostenrubriek_key = v_bgt_kostenrubriek_key
|
||
AND b.prs_kostensoortgrp_key = v_kostensoortgrp_key
|
||
AND b.prs_kostensoort_key = v_kostensoort_key
|
||
AND b.prs_kostenplaatsgrp_key = v_kostenplaatsgrp_key
|
||
AND b.prs_kostenplaats_key = v_kostenplaats_key
|
||
AND b.bgt_budget_begin = v_periode_start
|
||
AND b.bgt_budget_eind = v_periode_eind;
|
||
|
||
v_aanduiding :=
|
||
'Aanpassen budget van '
|
||
|| rec.kostenplaats_nr
|
||
|| '-'
|
||
|| rec.kostensoort_code
|
||
|| ' van '
|
||
|| v_budget_nu
|
||
|| '-> '
|
||
|| v_budget;
|
||
|
||
UPDATE bgt_budget b
|
||
SET b.bgt_budget_bedrag = v_budget
|
||
WHERE bgt_budget_key = v_budget_key;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
v_aanduiding,
|
||
'Aanpassen budget bedrag');
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO bgt_budget (ins_discipline_key,
|
||
bgt_project_key,
|
||
bgt_kostenrubriek_key,
|
||
prs_kostensoortgrp_key,
|
||
prs_kostensoort_key,
|
||
prs_kostenplaatsgrp_key,
|
||
prs_kostenplaats_key,
|
||
bgt_budget_bedrag,
|
||
bgt_budget_begin,
|
||
bgt_budget_eind)
|
||
VALUES (v_ins_discipline_key,
|
||
v_bgt_project_key,
|
||
v_bgt_kostenrubriek_key,
|
||
v_kostensoortgrp_key,
|
||
v_kostensoort_key,
|
||
v_kostenplaatsgrp_key,
|
||
v_kostenplaats_key,
|
||
v_budget,
|
||
v_periode_start,
|
||
v_periode_eind);
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
|
||
v_count := v_count + 1;
|
||
END LOOP;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW bcgv_v_budgetuitnutting
|
||
AS
|
||
SELECT x.*, budget - COALESCE (opdracht_gefact, opdracht_uitv, offerte) budget_res
|
||
FROM (SELECT kp.prs_kostenplaats_nr || ' - ' || kp.prs_kostenplaats_omschrijving prs_kostenplaats,
|
||
kp.prs_kostenplaats_nr,
|
||
kp.prs_kostenplaats_omschrijving,
|
||
kp.prs_kostenplaats_key,
|
||
kp.prs_perslid_key,
|
||
(SELECT prs_perslid_naam_friendly
|
||
FROM prs_v_perslid_fullnames p
|
||
WHERE p.prs_perslid_key = kp.prs_perslid_key) budgethouder,
|
||
ksg.prs_kostensoortgrp_key,
|
||
ksg.prs_kostensoortgrp_oms,
|
||
ks.prs_kostensoort_key,
|
||
ks.prs_kostensoort_opmerking prs_kostensoort,
|
||
ks.prs_kostensoort_upper,
|
||
b.bgt_budget_bedrag budget,
|
||
TRUNC (b.bgt_budget_begin, 'YYYY') budget_jaar,
|
||
b.bgt_budget_begin,
|
||
b.bgt_budget_eind,
|
||
(SELECT SUM (opdr_kost)
|
||
FROM ( SELECT AVG (mld_opdr_kosten) opdr_kost
|
||
FROM mld_opdr o, mld_typeopdr ot
|
||
WHERE o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND o.prs_kostensoort_key = ks.prs_kostensoort_key
|
||
AND o.mld_typeopdr_key = ot.MLD_TYPEOPDR_KEY
|
||
AND ot.mld_typeopdr_isofferte = 1
|
||
AND NOT EXISTS (SELECT 1 FROM mld_opdr o2, mld_typeopdr to2 WHERE o2.mld_melding_key = o.mld_melding_key AND o2.mld_typeopdr_key = to2.mld_typeopdr_key and to2.mld_typeopdr_kosten = 1)
|
||
AND o.mld_statusopdr_key IN (5,
|
||
6,
|
||
7,
|
||
8,
|
||
9)
|
||
AND o.mld_opdr_datumbegin BETWEEN b.bgt_budget_begin AND b.bgt_budget_eind
|
||
GROUP BY o.mld_melding_key)) offerte,
|
||
(SELECT SUM (mld_opdr_kosten)
|
||
FROM mld_opdr o, mld_typeopdr ot
|
||
WHERE o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND o.prs_kostensoort_key = ks.prs_kostensoort_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 1
|
||
AND o.mld_statusopdr_key IN (3,4,5,6,7,8,9,10) -- Ter fiattering, Gefiatteerd, Toegekend, Afgemeld, Verwerkt, Geaccepteerd, Afgerond, Ter goedkeuring
|
||
AND NOT EXISTS (SELECT 1 FROM fin_factuur f WHERE f.mld_opdr_key = o.mld_opdr_key)
|
||
AND o.mld_opdr_datumbegin BETWEEN b.bgt_budget_begin AND b.bgt_budget_eind) opdracht_uitv,
|
||
(SELECT SUM (mld_opdr_kosten)
|
||
FROM mld_opdr o, mld_typeopdr ot
|
||
WHERE o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND o.prs_kostensoort_key = ks.prs_kostensoort_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND ot.mld_typeopdr_kosten = 1
|
||
AND o.mld_statusopdr_key = 9
|
||
AND o.mld_opdr_datumbegin BETWEEN b.bgt_budget_begin AND b.bgt_budget_eind) opdracht_gefact
|
||
FROM bgt_budget b,
|
||
bgt_project p,
|
||
bgt_kostenrubriek kr,
|
||
prs_kostenplaats kp,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg
|
||
WHERE p.bgt_project_key = b.bgt_project_key
|
||
AND kr.bgt_kostenrubriek_key = b.bgt_kostenrubriek_key
|
||
AND kp.prs_kostenplaats_key = b.prs_kostenplaats_key
|
||
AND ks.prs_kostensoort_key = b.prs_kostensoort_key
|
||
AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key) x;
|
||
|
||
CREATE OR REPLACE VIEW bcgv_v_budgetuitn_detail
|
||
AS
|
||
SELECT k.prs_kostenplaats_key,
|
||
k.prs_kostenplaats_nr || ' - ' || k.prs_kostenplaats_omschrijving prs_kostenplaats,
|
||
k.prs_kostenplaats_nr,
|
||
ksg.prs_kostensoortgrp_key,
|
||
ksg.prs_kostensoortgrp_oms,
|
||
ks.prs_kostensoort_key,
|
||
ks.prs_kostensoort_oms,
|
||
ks.prs_kostensoort_opmerking prs_kostensoort,
|
||
o.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr mld_opdr_nr,
|
||
o.mld_opdr_key,
|
||
so.mld_statusopdr_omschrijving,
|
||
CASE
|
||
WHEN ot.mld_typeopdr_isofferte = 1
|
||
THEN 'Offerte'
|
||
ELSE 'Opdracht'
|
||
END opdracht_soort,
|
||
TO_CHAR (m.mld_melding_omschrijving) omschrijving,
|
||
CASE
|
||
WHEN ot.mld_typeopdr_isofferte = 1
|
||
THEN mld_opdr_kosten
|
||
ELSE 0
|
||
END offerte_bedrag,
|
||
CASE
|
||
WHEN ot.mld_typeopdr_isofferte = 0
|
||
THEN mld_opdr_kosten
|
||
ELSE 0
|
||
END opdracht_bedrag
|
||
FROM mld_opdr o,
|
||
prs_kostenplaats k,
|
||
prs_kostensoort ks,
|
||
prs_kostensoortgrp ksg,
|
||
mld_melding m,
|
||
mld_typeopdr ot,
|
||
mld_statusopdr so
|
||
WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key
|
||
AND ks.prs_kostensoort_key = o.prs_kostensoort_key
|
||
AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND ot.mld_typeopdr_key = o.mld_typeopdr_key
|
||
AND so.mld_statusopdr_key = o.mld_statusopdr_key;
|
||
|
||
-- Ordertracking: Per omgeving ontvang de verantwoordelijke Servicedesk alle notities en mutaties/status-updates op de Opdrachtenstroom die zijn geweest per gestylde mail
|
||
-- Opzet: Job kijkt of er vanaf de laatste job_run nog mutaties zijn geweest en indien geval dan wordt gestyled rapport gemaild naar desbtreffende backoffice-email-adres
|
||
|
||
-- Bronview behorende bij job BCGV_V_NOTIFY_BACKOFFICE_OT
|
||
CREATE OR REPLACE VIEW bcgv_v_rap_ordertracking_bron
|
||
AS
|
||
SELECT -- notitie
|
||
dp.mld_disc_params_emailnw3 vakgroep_email,
|
||
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
|
||
o.mld_opdr_key,
|
||
u.naam uitvoerder,
|
||
po.prs_perslid_naam || ' (' || po.prs_perslid_voornaam || ')' behandelaar,
|
||
ot.mld_typeopdr_omschrijving opdracht_type,
|
||
'Notitie' soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijzigign
|
||
mld_opdr_note_aanmaak datum,
|
||
pn.prs_perslid_naam || ' (' || pn.prs_perslid_voornaam || ')' actie_door,
|
||
'Notitie' actie_omschrijving, -- Subsoort voor status
|
||
mld_opdr_note_omschrijving actie_details,
|
||
note.mld_opdr_note_aanmaak datum_mutatie_filter,
|
||
TO_NUMBER (TO_CHAR (note.mld_opdr_note_aanmaak, 'hh24')) uur_filter
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
mld_v_uitvoerende u,
|
||
mld_opdr_note note,
|
||
prs_perslid pn,
|
||
prs_perslid po,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
alg_locatie l
|
||
WHERE o.mld_opdr_key = note.mld_opdr_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND note.prs_perslid_key = pn.prs_perslid_key
|
||
AND pn.prs_perslid_verwijder IS NULL
|
||
AND o.mld_uitvoerende_keys = u.mld_uitvoerende_key
|
||
AND o.prs_perslid_key = po.prs_perslid_key(+)
|
||
AND note.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND (g.fac_groep_upper = 'HEYDAY' OR g.fac_groep_upper = 'CVGV'))
|
||
UNION
|
||
SELECT -- Voor status -- in geval dsm, rabo en sabic
|
||
dp.mld_disc_params_emailnw3 vakgroep_email,
|
||
m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
|
||
o.mld_opdr_key,
|
||
u.naam uitvoerder,
|
||
po.prs_perslid_naam || ' (' || po.prs_perslid_voornaam || ')' behandelaar,
|
||
ot.mld_typeopdr_omschrijving opdracht_type,
|
||
'Status' soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijzigign
|
||
t.fac_tracking_datum datum,
|
||
pt.prs_perslid_naam || ' (' || pt.prs_perslid_voornaam || ')' actie_door,
|
||
COALESCE (vert.actiecode_tekst, sn.fac_srtnotificatie_code) actie_omschrijving,
|
||
t.fac_tracking_oms actie_details,
|
||
t.fac_tracking_datum datum_mutatie_filter,
|
||
TO_NUMBER (TO_CHAR (t.fac_tracking_datum, 'hh24')) uur_filter
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
mld_typeopdr ot,
|
||
fac_tracking t,
|
||
fac_srtnotificatie sn,
|
||
(SELECT UPPER (SUBSTR (fac_locale_xsl_label, 12)) AS actiecode, fac_locale_xsl_tekst AS actiecode_tekst
|
||
FROM fac_locale_xsl
|
||
WHERE INSTR (fac_locale_xsl_label, 'lcl_ord_is_') > 0 AND fac_locale_xsl_lang = 'NL') vert,
|
||
mld_v_uitvoerende u,
|
||
prs_perslid pt,
|
||
prs_perslid po,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline d,
|
||
mld_disc_params dp,
|
||
alg_locatie l
|
||
WHERE o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = vert.actiecode(+)
|
||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_discipline_module = 'MLD'
|
||
AND d.ins_discipline_key = dp.mld_ins_discipline_key
|
||
AND t.prs_perslid_key = pt.prs_perslid_key
|
||
AND pt.prs_perslid_verwijder IS NULL
|
||
AND o.mld_uitvoerende_keys = u.mld_uitvoerende_key
|
||
AND o.prs_perslid_key = po.prs_perslid_key(+)
|
||
AND t.prs_perslid_key NOT IN
|
||
(SELECT gg.prs_perslid_key
|
||
FROM fac_gebruikersgroep gg, fac_groep g
|
||
WHERE gg.fac_groep_key = g.fac_groep_key
|
||
AND (g.fac_groep_upper = 'HEYDAY' OR g.fac_groep_upper = 'CVGV'));
|
||
|
||
-- Rapportview behorende bij job BCGV_V_NOTIFY_BACKOFFICE_OT
|
||
-- De lijst die gemaild wordt - inclusief filtering op notificatie-interval
|
||
CREATE OR REPLACE VIEW bcgv_v_rap_ordertrackinglijst
|
||
AS
|
||
SELECT vakgroep_email,
|
||
v.opdrachtnr,
|
||
v.mld_opdr_key,
|
||
v.uitvoerder,
|
||
v.behandelaar,
|
||
v.opdracht_type,
|
||
v.soort, -- soort wijziging: Status of notitie of opdrachtgegevens-wijziging
|
||
v.datum,
|
||
v.actie_door,
|
||
v.actie_omschrijving,
|
||
v.actie_details,
|
||
TO_CHAR (d.last_jobrun, 'dd-mm-yyyy hh24:mi:ss') run_deze,
|
||
TO_CHAR (d.last_cust01, 'dd-mm-yyyy hh24:mi:ss') run_vorige
|
||
FROM bcgv_v_rap_ordertracking_bron v,
|
||
(SELECT MAX (COALESCE (ft.fac_tracking_datum, SYSDATE)) last_cust01, -- subview waarin notificatie-interval bepaald wordt (=datums waartussen het resultaat in rapport getoond moet worden)
|
||
MAX ((SELECT COALESCE (fac_notificatie_job_lastrun, SYSDATE)
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'BCGV_V_NOTIFY_BACKOFFICE_OT')) last_jobrun
|
||
FROM fac_tracking ft, fac_srtnotificatie sn
|
||
WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST01'
|
||
AND ft.fac_tracking_datum < (SELECT COALESCE (fac_notificatie_job_lastrun - 1/(24*60), SYSDATE) -- de lastrun kan een latere datum hebben dan de laatste notificatie.
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'BCGV_V_NOTIFY_BACKOFFICE_OT')) d
|
||
WHERE v.datum_mutatie_filter BETWEEN d.last_cust01 AND d.last_jobrun;
|
||
|
||
-- Job voor de ordertrackinglijst te versturen
|
||
CREATE OR REPLACE VIEW bcgv_v_notify_backoffice_ot -- OT = Ordertrackinglijst
|
||
AS
|
||
SELECT (SELECT prs_perslid_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_upper = 'FACILITOR') sender,
|
||
NULL receiver,
|
||
'Ordertrackinglijst' text,
|
||
'CUST01' code,
|
||
(SELECT fac_srtnotificatie_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST01') fac_srtnotificatie_key,
|
||
163 key, -- Ordertrackinglijst
|
||
NULL xkey,
|
||
v.vakgroep_email xemail,
|
||
NULL xmobile
|
||
FROM ( SELECT vakgroep_email
|
||
FROM bcgv_v_rap_ordertracking_bron
|
||
WHERE datum_mutatie_filter >= (SELECT COALESCE (fac_notificatie_job_lastrun, TRUNC (SYSDATE))
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'BCGV_V_NOTIFY_BACKOFFICE_OT')
|
||
AND vakgroep_email IS NOT NULL
|
||
AND LOWER (vakgroep_email) NOT IN ('heyq@heydayfm.nl') -- ticket AAIT#84516
|
||
GROUP BY vakgroep_email) v;
|
||
|
||
|
||
------ payload end ------
|
||
|
||
SET DEFINE OFF
|
||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||
/
|
||
|
||
COMMIT;
|
||
SET ECHO OFF
|
||
SPOOL OFF
|
||
SET DEFINE ON
|
||
PROMPT Logfile of this upgrade is: &fcltlogfile
|