KFSG#51990 Implementatie facturatieproces+KFSG#57053 Aanv. op rapportage met key=621

svn path=/Customer/trunk/; revision=41783
This commit is contained in:
Maarten van der Heide
2019-03-25 18:34:39 +00:00
parent 3fef1ad4ca
commit c369604b18

View File

@@ -1,8 +1,7 @@
--
-- $Id$
--
-- Script containing customer specific configuration sql statements for aads: Arcadis Aqumen Facility Management
-- Script containing customer specific db-configuration for KFSG.
DEFINE thisfile = 'KFSG.SQL'
DEFINE dbuser = '^KFSG'
@@ -634,8 +633,8 @@ AS -- Vaste contractkosten over de ACTUAL termijn
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_rsv_artikel_verwerkt IS NULL
WHERE rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (SYSDATE, 'mm') AND TRUNC (SYSDATE + 1) -- Actual = Deze maand Geleverd (en nog niet Verwerkt)
AND rra.res_artikel_key = ra.res_artikel_key) rra,
res_discipline rd,
@@ -645,8 +644,7 @@ AS -- Vaste contractkosten over de ACTUAL termijn
cnt_contract mc,
prs_contactpersoon cp,
prs_perslid pcp
WHERE rrr.res_activiteit_key != -1 -- Alle activiteiten?
AND rrr.res_rsv_ruimte_dirtlevel = 0
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
@@ -840,7 +838,7 @@ AS
AND NOT EXISTS -- Nog geen entry in eigen tabel
(SELECT 1
FROM fac_usrdata
WHERE fac_usrtab_key = 61 --TODO:161 -- VasteKostenMnd
WHERE fac_usrtab_key = 161 -- VasteKostenMnd
AND fac_usrdata_code = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') || '/' || c.cnt_contract_key)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
@@ -1009,7 +1007,7 @@ AS
NULL mld_opdr_key,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) bro_id,
1 aantal,
SUM (COALESCE (verw_prijs, prijs, 0)) kosten -- Netto bedrag
SUM (COALESCE (verw_prijs, prijs, 0)) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM (SELECT b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_afdeling_key,
@@ -1089,8 +1087,8 @@ AS
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_rsv_artikel_verwerkt IS NULL
WHERE rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_rsv_artikel_levering BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm') -- Actual = Afgelopen maand Geleverd (en nog niet Verwerkt)
AND rra.res_artikel_key = ra.res_artikel_key) rra,
res_discipline rd,
@@ -1101,8 +1099,7 @@ AS
prs_contactpersoon cp,
prs_perslid pcp,
prs_perslid pcm
WHERE rrr.res_activiteit_key != -1 -- Alle activiteiten?
AND rrr.res_rsv_ruimte_dirtlevel = 0
WHERE rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
@@ -1190,7 +1187,7 @@ AS
o.mld_opdr_key,
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) bro_id,
1 aantal,
o.mld_opdr_kosten kosten
o.mld_opdr_kosten kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM mld_opdr o,
--fac_tracking t,
cnt_contract c,
@@ -1562,7 +1559,7 @@ AS
(SELECT *
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1040) kl -- Factuur rechtstreeks naar SG!
WHERE ud.fac_usrtab_key = 61 --TODO:161 -- VasteKostenMnd
WHERE ud.fac_usrtab_key = 161 -- VasteKostenMnd
AND SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1) = TO_CHAR (c.cnt_contract_key)
--AND SUBSTR (ud.fac_usrdata_omschr, 1, INSTR (ud.fac_usrdata_omschr, '/') - 1) = TO_CHAR (b.prs_bedrijf_key)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
@@ -1571,7 +1568,7 @@ AS
AND cp.prs_perslid_key = pcp.prs_perslid_key(+)
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
AND b.prs_bedrijf_key = kl.prs_link_key(+)
UNION ALL -- Variabele kosten uit FROZEN bestelopdrachten op variabele contracten
UNION ALL -- Variabele kosten uit FROZEN bestelopdrachten op variabele contracten (via bes_bestelling_ordernr!)
SELECT pcp.prs_afdeling_key,
TO_CHAR (TRUNC (fac.gettrackingdate ('BES2VE', bo.bes_bestelopdr_key), 'mm') - 1, 'yyyy-mm') maand,
b.prs_bedrijf_key,
@@ -1628,10 +1625,10 @@ AS
COALESCE (bo.bes_bestelopdr_korting, 0) +
COALESCE (bo.bes_bestelopdr_levkosten, 0))
kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
FROM bes_bestelling b,
bes_bestelling_item bbi,
bes_bestelling b,
bes_bestelopdr_item boi,
bes_bestelopdr bo,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_contract mc,
@@ -1641,12 +1638,13 @@ AS
(SELECT *
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1040) kl -- Factuur rechtstreeks naar SG!
WHERE --bo.bes_bestelopdr_status = 7 -- Bestelopdracht Verwerkt
bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bbi.bes_bestelling_key = b.bes_bestelling_key
WHERE b.bes_bestelling_ordernr IS NOT NULL -- Gefactureerd!
AND b.bes_bestelling_key = bbi.bes_bestelling_key
AND bbi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND bo.bes_bestelopdr_status = 7 -- Verwerkt (TODO: Soms >1 bestelopdrachten en niet allemaal Verwerkt???)
--AND bo.prs_bedrijf_key = b.prs_bedrijf_key
AND b.bes_bestelling_ordernr = TO_CHAR (c.cnt_contract_key)
AND SUBSTR (b.bes_bestelling_ordernr, INSTR (b.bes_bestelling_ordernr, '/') + 1) = TO_CHAR (c.cnt_contract_key)
--AND c.ins_discipline_key = 523 -- Variabele contracten (kan niet anders)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
@@ -1702,9 +1700,9 @@ AS
bo.bes_bestelopdr_id,
DECODE (kl.prs_kenmerklink_waarde, 1, 'Ja', 'Nee'),
1
UNION ALL -- Variabele kosten uit FROZEN reserveringen op variabele contracten
UNION ALL -- Variabele kosten uit FROZEN reserveringen op variabele contracten (via fin_verkoopfactuur_id!)
SELECT x.prs_afdeling_key,
TO_CHAR (TRUNC (x.res_rsv_artikel_verwerkt, 'mm') - 1, 'yyyy-mm') maand,
SUBSTR (x.fin_verkoopfactuur_maand, 1, 4) || '-' || SUBSTR (x.fin_verkoopfactuur_maand, 5, 2) maand,
x.prs_bedrijf_key,
x.prs_bedrijf_naam bedrijf,
x.prs_perslid_key,
@@ -1720,12 +1718,12 @@ AS
NULL bes_bestelopdr_key,
x.res_rsv_ruimte_key,
NULL mld_opdr_key,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) bro_id,
x.fin_verkoopfactuur_omschr bro_id,
DECODE (x.prs_kenmerklink_waarde, 1, 'Ja', 'Nee') fact2sg,
1 aantal,
SUM (COALESCE (x.verw_prijs, x.prijs, 0)) kosten -- Netto bedrag
SUM (COALESCE (x.verw_prijs, x.prijs, 0)) kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM (SELECT pcp.prs_afdeling_key,
rra.res_rsv_artikel_verwerkt,
vf.fin_verkoopfactuur_maand,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
pcp.prs_perslid_key,
@@ -1770,28 +1768,16 @@ AS
pcm.prs_perslid_tussenvoegsel || ' ')
|| pcm.prs_perslid_naam
cm_naam,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
rra.res_rsv_ruimte_key,
vf.fin_verkoopfactuur_omschr,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
rra.btw,
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs,
--DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw), NULL, 'VH', 21, 'VH', 'VL')
-- btw,
kl.prs_kenmerklink_waarde
FROM res_rsv_ruimte rrr,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
ra.res_artikel_prijs,
DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL')
btw
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20190101', 'yyyymmdd')
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
AND rra.res_artikel_key = ra.res_artikel_key) rra,
FROM fin_verkoopfactuur vf,
res_v_aanwezigrsv_artikel rra,
res_artikel ra,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_contract mc,
@@ -1801,8 +1787,12 @@ AS
(SELECT *
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1040) kl -- Factuur rechtstreeks naar SG!
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_ordernr = TO_CHAR (c.cnt_contract_key)
WHERE vf.fin_verkoopfactuur_refkey = rra.res_rsv_ruimte_key
--AND rra.res_status_bo_key = 6 -- Verwerkt (kan niet anders)
--AND rra.res_rsv_artikel_verwerkt IS NOT NULL -- Verwerkt (kan niet anders)
--AND rra.res_rsv_artikel_levering > TO_DATE ('20190101', 'yyyymmdd') -- Kan niet anders
AND rra.res_artikel_key = ra.res_artikel_key
AND fac.safe_to_number (vf.fin_verkoopfactuur_id) = c.cnt_contract_key
--AND c.ins_discipline_key = 523 -- Variabele contracten (kan niet anders)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
@@ -1811,7 +1801,7 @@ AS
AND c.prs_perslid_key_beh = pcm.prs_perslid_key
AND b.prs_bedrijf_key = kl.prs_link_key(+)) x
GROUP BY x.prs_afdeling_key,
TO_CHAR (TRUNC (x.res_rsv_artikel_verwerkt, 'mm') - 1, 'yyyy-mm'),
SUBSTR (x.fin_verkoopfactuur_maand, 1, 4) || '-' || SUBSTR (x.fin_verkoopfactuur_maand, 5, 2),
x.prs_bedrijf_key,
x.prs_bedrijf_naam,
x.prs_perslid_key,
@@ -1827,7 +1817,7 @@ AS
NULL,
x.res_rsv_ruimte_key,
NULL,
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr),
x.fin_verkoopfactuur_omschr,
DECODE (x.prs_kenmerklink_waarde, 1, 'Ja', 'Nee'),
1
UNION ALL -- Variabele kosten uit FROZEN opdrachten op variabele contracten
@@ -1876,7 +1866,7 @@ AS
TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) bro_id,
DECODE (kl.prs_kenmerklink_waarde, 1, 'Ja', 'Nee'),
1 aantal,
o.mld_opdr_kosten kosten -- Netto bedrag
o.mld_opdr_kosten kosten -- Netto bedrag, want alle bedragen excl. BTW, toch?
FROM mld_opdr o,
cnt_contract c,
prs_bedrijf b,
@@ -1887,8 +1877,8 @@ AS
(SELECT *
FROM prs_v_aanwezigkenmerklink
WHERE prs_kenmerk_key = 1040) kl -- Factuur rechtstreeks naar SG!
WHERE o.mld_statusopdr_key = 7 -- Verwerkt
AND o.mld_opdr_ordernr IS NOT NULL -- Zou zo moeten zijn?
WHERE o.mld_opdr_ordernr IS NOT NULL -- Gefactureerd!
--AND o.mld_statusopdr_key = 7 -- Verwerkt (kan niet anders)
AND o.cnt_contract_key = c.cnt_contract_key
--AND c.ins_discipline_key = 523 -- Variabele contracten (kan niet anders)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
@@ -2158,39 +2148,54 @@ AS
-- Bevries vaste contractkosten in eigen tabel.
CURSOR c1
IS
SELECT maand, prs_bedrijf_key, cnt_contract_key, inkoopordernr, kosten
FROM kfsg_v_actual_fact
WHERE bes_bestelopdr_key IS NULL AND res_rsv_ruimte_key IS NULL AND mld_opdr_key IS NULL;
SELECT DISTINCT '[' || TO_CHAR (v.cnt_contract_key) || '] ' aanduiding,
v.maand, v.cnt_contract_key, v.prs_bedrijf_key, v.inkoopordernr, v.kosten
FROM kfsg_v_actual_fact v
WHERE v.bes_bestelopdr_key IS NULL AND v.res_rsv_ruimte_key IS NULL AND v.mld_opdr_key IS NULL
ORDER BY 3;
-- Zet "variabele" bestelopdrachten die voor de 1e zijn geleverd op AV.
-- Zet "variabele" BES-bestelopdrachten die voor de 1e zijn geleverd op AV.
-- Alleen op variabele contracten.
CURSOR c2
IS
SELECT bes_bestelopdr_key, cnt_contract_key
FROM kfsg_v_actual_fact
WHERE bes_bestelopdr_key IS NOT NULL;
SELECT DISTINCT '[' || TO_CHAR (v.bes_bestelopdr_key) || '|' || v.bro_id || '] ' aanduiding,
v.maand, v.bes_bestelopdr_key, bbi.bes_bestelling_key, v.cnt_contract_key
FROM kfsg_v_actual_fact v, bes_bestelopdr_item boi, bes_bestelling_item bbi
WHERE v.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
ORDER BY 3;
-- Zet "variabele" reserveringen die voor de 1e hebben plaatsgevonden op AV
-- (in juiste volgorde!).
-- Alleen op variabele contracten <20>n alleen catering!
-- Zet "variabele" RES-cateringregels die voor de 1e hebben plaatsgevonden op AV
-- en meld - zover niet al gebeurd - de deelreservering af (in juiste volgorde).
-- Alleen op variabele contracten.
CURSOR c3
IS
SELECT DISTINCT '[' || TO_CHAR (rra.res_rsv_ruimte_key) || '|' || TO_CHAR (rra.res_rsv_artikel_key) || '] ' aanduiding,
rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_key,
SELECT DISTINCT '[' || TO_CHAR (v.res_rsv_ruimte_key) || '|' || v.bro_id || '] ' aanduiding,
v.maand, v.res_rsv_ruimte_key,
rra.res_status_bo_key,
rra.res_artikel_key
FROM kfsg_v_actual_fact v, res_v_aanwezigrsv_artikel rra
rra.res_rsv_artikel_key, rra.res_artikel_key,
v.cnt_contract_key, v.bro_id, v.prs_bedrijf_key, v.prs_bedrijf_naam
FROM kfsg_v_actual_fact v, res_v_aanwezigrsv_artikel rra
WHERE v.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
ORDER BY 3, 2;
UNION ALL
SELECT DISTINCT '[' || TO_CHAR (v.res_rsv_ruimte_key) || '|' || v.bro_id || '] ' aanduiding,
v.maand, v.res_rsv_ruimte_key,
rrr.res_status_bo_key,
NULL res_rsv_artikel_key, NULL res_artikel_key,
v.cnt_contract_key, v.bro_id, v.prs_bedrijf_key, v.prs_bedrijf_naam
FROM kfsg_v_actual_fact v, res_v_aanwezigrsv_ruimte rrr
WHERE v.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
ORDER BY 1, 5, 3;
-- Zet "variabele" opdrachten die voor de 1e zijn afgerond op AV.
-- Zet "variabele" MLD-opdrachten die voor de 1e zijn afgerond op AV.
-- Alleen op variabele contracten.
CURSOR c4
IS
SELECT mld_opdr_key
FROM kfsg_v_actual_fact
WHERE mld_opdr_key IS NOT NULL;
SELECT DISTINCT '[' || TO_CHAR (v.mld_opdr_key) || '|' || v.bro_id || '] ' aanduiding,
v.maand, v.mld_opdr_key
FROM kfsg_v_actual_fact v
WHERE v.mld_opdr_key IS NOT NULL
ORDER BY 3;
-- Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV.
-- Afgerond/kosten meerekenen op vaste contracten en geen dispuut
@@ -2198,57 +2203,62 @@ AS
-- Afgerond/kosten niet meerekenen en geen dispuut (= geaccepteerde offerteaanvragen)
CURSOR c5
IS
SELECT mld_opdr_key
FROM mld_opdr o, cnt_contract c, mld_typeopdr ot
WHERE o.mld_statusopdr_key = 9 -- KV
AND o.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 522 -- Vaste contracten
SELECT DISTINCT '[' || TO_CHAR (o.mld_opdr_key) || '] ' aanduiding,
o.mld_opdr_key
FROM mld_opdr o, mld_typeopdr ot, cnt_contract c
WHERE o.mld_statusopdr_key = 9 -- KV
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_kosten = 1 -- Kosten meerekenen=Ja
AND o.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 522 -- Vaste contracten
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
(SELECT 1
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 141 -- Dispuut
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm')
UNION ALL
SELECT mld_opdr_key
SELECT DISTINCT '[' || TO_CHAR (o.mld_opdr_key) || '] ' aanduiding,
o.mld_opdr_key
FROM mld_opdr o, mld_typeopdr ot
WHERE o.mld_statusopdr_key = 6 -- TV
WHERE o.mld_statusopdr_key = 6 -- TV
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
AND ot.mld_typeopdr_key != 220 -- Offerteaanvraag
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
(SELECT 1
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 141 -- Dispuut
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
AND fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
AND fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm')
UNION ALL
SELECT mld_opdr_key
SELECT DISTINCT '[' || TO_CHAR (o.mld_opdr_key) || '] ' aanduiding,
o.mld_opdr_key
FROM mld_opdr o, mld_typeopdr ot
WHERE o.mld_statusopdr_key = 9 -- KV (ooit met kosten en Offerteaanvragen)
WHERE o.mld_statusopdr_key = 9 -- KV (ooit met kosten en Offerteaanvragen)
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
AND ot.mld_typeopdr_kosten = 0 -- Kosten meerekenen=Nee
AND NOT EXISTS -- Niet gemarkeerd als dispuut!
(SELECT 1
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 141 -- Dispuut
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
AND (fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
OR fac.gettrackingdate ('ORDOOK', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm'));
AND (fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm')
OR fac.gettrackingdate ('ORDOOK', o.mld_opdr_key) BETWEEN TO_DATE ('20190101', 'yyyymmdd') AND TRUNC (SYSDATE, 'mm'))
ORDER BY 2;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER (10);
v_prijs NUMBER (9, 2);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER (10);
v_verkoopfactuurkop_key NUMBER (10);
v_prijs NUMBER (9, 2);
BEGIN
-- Op 10e dag van de maand (via scheduled task):
-- 1. Bevries vaste contractkosten in eigen tabel (incl. malus?).
@@ -2262,22 +2272,32 @@ BEGIN
FOR rec IN c1
LOOP
v_errormsg := 'Fout toevoegen vaste contractkosten';
BEGIN
v_errormsg := 'Fout toevoegen vaste contractkosten';
INSERT INTO fac_usrdata (fac_usrtab_key,
fac_usrdata_code,
fac_usrdata_omschr,
fac_usrdata_aanmaak,
fac_usrdata_vervaldatum,
fac_usrdata_prijs)
VALUES (61, --TODO:161, -- VasteKostenMnd
rec.maand || '/' || TO_CHAR (rec.cnt_contract_key),
TO_CHAR (rec.prs_bedrijf_key) || '/' || rec.inkoopordernr, -- TODO: Of weg?
SYSDATE,
NULL,
rec.kosten);
INSERT INTO fac_usrdata (fac_usrtab_key,
fac_usrdata_code,
fac_usrdata_omschr,
fac_usrdata_aanmaak,
fac_usrdata_vervaldatum,
fac_usrdata_prijs)
VALUES (161, -- VasteKostenMnd
rec.maand || '/' || TO_CHAR (rec.cnt_contract_key),
TO_CHAR (rec.prs_bedrijf_key) || '/' || rec.inkoopordernr, -- TODO: Of weg?
SYSDATE,
NULL,
rec.kosten);
v_count := v_count + 1;
v_count := v_count + 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.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-CAV');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', '#Vaste contractkosten bevroren: ' || TO_CHAR (v_count), '');
@@ -2287,22 +2307,42 @@ BEGIN
FOR rec IN c2
LOOP
v_errormsg := 'Fout bijwerken contractlink (BES).';
BEGIN
v_errormsg := 'Fout bijwerken ordernummer (BES).';
UPDATE bes_bestelopdr
SET cnt_contract_key = rec.cnt_contract_key
WHERE bes_bestelopdr_key = rec.bes_bestelopdr_key;
UPDATE bes_bestelling
SET bes_bestelling_ordernr = rec.maand || '/' || TO_CHAR (rec.cnt_contract_key)
WHERE bes_bestelling_key = rec.bes_bestelling_key;
v_errormsg := 'Fout bijwerken status (BES).';
v_errormsg := 'Fout bijwerken status (BES).';
BES.setbestelopdrstatus (rec.bes_bestelopdr_key, 7, 3);
BES.setbestelopdrstatus (rec.bes_bestelopdr_key, 7, 3);
BES.setbestellingstatus (rec.bes_bestelling_key, 7, 3); -- TODO: Soms >1 bestelopdrachten???
v_count := v_count + 1;
v_count := v_count + 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.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-BAV');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', '#Variabele bestelopdrachten bevroren: ' || TO_CHAR (v_count), '');
COMMIT;
-- Maak elke factuurrun voor elke reverse te billen res_rsv_xxx-regel een
-- fin_verkoopfactuur-regel aan onder dezelfde fin_verkoopfactuurkop (<28><>n
-- kop per maand)!
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
VALUES ('RES-billing' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'))
RETURNING fin_verkoopfactuurkop_key
INTO v_verkoopfactuurkop_key;
COMMIT;
v_count := 0;
FOR rec IN c3
@@ -2319,7 +2359,8 @@ BEGIN
FROM DUAL;
v_errormsg := 'Fout afmelden res_rsv_artikel';
UPDATE res_rsv_artikel
UPDATE res_rsv_artikel
SET res_status_bo_key = 5,
res_rsv_artikel_prijs = v_prijs,
res_rsv_artikel_inkoopprijs =
@@ -2332,7 +2373,7 @@ BEGIN
WHERE res_artikel_key = rec.res_artikel_key)
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
v_errormsg := 'Fout tracken afmelding';
v_errormsg := 'Fout tracken afmelding catering';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering afgemeld');
END IF;
@@ -2345,21 +2386,73 @@ BEGIN
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
v_errormsg := 'Fout tracken verwerking';
v_errormsg := 'Fout tracken verwerking catering';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering verwerkt');
END IF;
END IF;
v_count := v_count + 1;
COMMIT;
v_errormsg := 'Fout toevoegen verkoopfactuur';
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_datum,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
prs_bedrijf_key,
prs_debiteur_naam,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_maand)
VALUES (v_verkoopfactuurkop_key,
TO_CHAR (rec.cnt_contract_key), -- Contract
SYSDATE,
rec.bro_id,
'', -- Er bestaat geen xml-node voor res_rsv_artikel!
rec.res_rsv_artikel_key,
rec.prs_bedrijf_key, -- Leverancier-key (crediteur)
rec.prs_bedrijf_naam, -- Leverancier-naam (crediteur)
v_prijs, -- Netto bedrag, want alle bedragen excl. BTW, toch?
SUBSTR (rec.maand, 1, 4) || SUBSTR (rec.maand, 6, 2));
v_count := v_count + 1;
COMMIT;
ELSE -- Ruimte-regel
IF rec.res_status_bo_key = 2
THEN
v_errormsg := 'Fout bepalen res_rsv_ruimte_prijs';
SELECT res.getruimteprijs (rec.res_rsv_ruimte_key)
INTO v_prijs
FROM DUAL;
v_errormsg := 'Fout afmelden res_rsv_ruimte';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 5,
res_rsv_ruimte_prijs = v_prijs
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
v_errormsg := 'Fout tracken afmelding ruimte';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
-- Contract kan niet via RES-ordernr historisch worden opgeslagen,
-- want onder <20><>n res_rsv_ruimte kunnen de artikelen per catalogus
-- worden gefactureerd aan een verschillende leverancier!
--v_errormsg := 'Fout bijwerken ordernummer (RES).';
--UPDATE res_rsv_ruimte
-- SET res_rsv_ruimte_ordernr = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') || '/' || TO_CHAR (rec.cnt_contract_key)
-- WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
END IF;
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.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-AV');
fac.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-RAV');
COMMIT;
END;
END LOOP;
@@ -2371,17 +2464,27 @@ BEGIN
FOR rec IN c4
LOOP
v_errormsg := 'Fout bijwerken ordernummer (MLD).';
BEGIN
v_errormsg := 'Fout bijwerken ordernummer (MLD).';
UPDATE mld_opdr
SET mld_opdr_ordernr = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
WHERE mld_opdr_key = rec.mld_opdr_key;
UPDATE mld_opdr
SET mld_opdr_ordernr = rec.maand
WHERE mld_opdr_key = rec.mld_opdr_key;
v_errormsg := 'Fout bijwerken status (MLD).';
v_errormsg := 'Fout bijwerken status (MLD).';
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 3);
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 3);
v_count := v_count + 1;
v_count := v_count + 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.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-OAV1');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', '#Variabele opdrachten bevroren: ' || TO_CHAR (v_count), '');
@@ -2391,11 +2494,21 @@ BEGIN
FOR rec IN c5
LOOP
v_errormsg := 'Fout bijwerken status (inclusief opdrachten).';
BEGIN
v_errormsg := 'Fout bijwerken status (inclusief opdrachten).';
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 4);
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 3);
v_count := v_count + 1;
v_count := v_count + 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.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'FACT-OAV2');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', '#Inclusief opdrachten bevroren: ' || TO_CHAR (v_count), '');
@@ -2430,7 +2543,7 @@ AS
AND cp1.prs_perslid_key = p1.prs_perslid_key)
SELECT DISTINCT sn.fac_srtnotificatie_code,
NULL,
cp.prs_perslid_key, -- Leverancier-contactpersonen (met noti-vinkje)
7971, --Els Hooft/TODO:cp.prs_perslid_key, -- Leverancier-contactpersonen (met noti-vinkje)
REPLACE (REPLACE (sn.fac_srtnotificatie_oms, '##LEV##', v.prs_bedrijf_naam), '##MND##', v.maand),
r.fac_usrrap_key,
v.extra_key
@@ -2438,7 +2551,7 @@ AS
cp cp,
fac_usrrap r,
fac_srtnotificatie sn
WHERE TO_CHAR (SYSDATE, 'dd') = '11' -- Alleen de 11e van de maand
WHERE TO_CHAR (SYSDATE, 'dd') = '25' -- TODO: Alleen de 10e van de maand
AND v.maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
AND v.extra_key = cp.prs_bedrijf_key
AND UPPER (r.fac_usrrap_view_name) = 'KFSG_V_FROZEN_FACT'
@@ -2454,12 +2567,153 @@ AS
fac_gebruikersgroep gg,
fac_usrrap r,
fac_srtnotificatie sn
WHERE TO_CHAR (SYSDATE, 'dd') = '11' -- Alleen de 11e van de maand
WHERE TO_CHAR (SYSDATE, 'dd') = '25' -- TODO: Alleen de 10e van de maand
AND v.maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
AND gg.fac_groep_key = 181 --TODO:281 -- Schiphol Finance/Control
AND gg.fac_groep_key = 281 -- Schiphol Finance/Control
AND UPPER (r.fac_usrrap_view_name) = 'KFSG_V_FROZEN_FACT'
AND sn.fac_srtnotificatie_code = 'CUST02';
-- Kostenoverzicht
CREATE OR REPLACE VIEW kfsg_v_rap_costs_suppl_dep
AS
SELECT pf.prs_perslid_naam_full naam,
m.mld_melding_onderwerp omschrijving,
a.prs_afdeling_omschrijving
afdeling,
prs_kostenplaats_nr kostenplaats,
M.mld_melding_key || '/' || o.MLD_OPDR_BEDRIJFOPDR_VOLGNR
referentie,
'opdracht'
typekosten,
COALESCE (SUBSTR (a.prs_afdeling_omschrijving,
1,
INSTR (a.prs_afdeling_omschrijving,
'/',
1,
2)
- 1),
a.prs_afdeling_omschrijving)
afdeling2,
d.prs_dienst_omschrijving dienst,
b.prs_bedrijf_naam
bedrijf,
FAC.gettrackingdate ('ORDNEW',mld_opdr_key) datum_aanmaak,
mld_opdr_datumbegin datum_levering,
FAC.gettrackingdate ('ORDAFR',mld_opdr_key) datum_afmeld,
mld_opdr_kosten
kosten
FROM mld_opdr o,
mld_melding m,
prs_perslid p,
prs_afdeling a,
prs_kostenplaats k,
prs_bedrijf b,
prs_dienst d,
mld_stdmelding std,
prs_v_perslid_fullnames pf
WHERE o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.prs_dienst_key = d.prs_dienst_key(+)
AND m.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND o.mld_typeopdr_key IN (521,
218,
219,
961) -- opdr type = 521 adm opdr, 218 mandaatopdr, 219 offerteopdr, 961 offertopdr
AND o.mld_statusopdr_key IN (6, 7, 9) -- afgemeld, verwerkt en afgerond.
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND p.prs_perslid_key = pf.prs_perslid_key
UNION ALL
SELECT pf.prs_perslid_naam_full, bes_srtdeel_omschrijving ,
a.prs_afdeling_omschrijving,
k.prs_kostenplaats_nr,
TO_CHAR (b.bes_bestelling_key),
'bestelling',
COALESCE (SUBSTR (a.prs_afdeling_omschrijving,
1,
INSTR (a.prs_afdeling_omschrijving,
'/',
1,
2)
- 1),
a.prs_afdeling_omschrijving)
afd2,
bd.ins_discipline_omschrijving,
l.prs_bedrijf_naam,
FAC.gettrackingdate ('BES2NE',bo.bes_bestelopdr_key) datum_aanmaak,
bes_bestelling_leverdatum datum_levering,
FAC.gettrackingdate ('BES2AF',bo.bes_bestelopdr_key) datum_geleverd,
bi.bes_bestelling_item_prijs * bi.bes_bestelling_item_aantal
kosten
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
bes_bestelling b,
prs_perslid p,
prs_afdeling a,
prs_kostenplaats k,
bes_srtdeel bsd,
bes_srtgroep bsg,
bes_discipline bd,
prs_bedrijf l,
prs_v_perslid_fullnames pf
WHERE bo.prs_bedrijf_key = l.prs_bedrijf_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND b.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND bi.bes_srtdeel_key = bsd.bes_srtdeel_key
AND bsd.bes_srtgroep_key = bsg.bes_srtgroep_key
AND bsg.ins_discipline_key = bd.ins_discipline_key
AND p.prs_perslid_key = pf.prs_perslid_key
UNION ALL
SELECT pf.prs_perslid_naam_full,
res_artikel_omschrijving,
a.prs_afdeling_omschrijving,
k.prs_kostenplaats_nr,
res_reservering_key || '/' || res_rsv_ruimte_volgnr,
'reservering',
COALESCE (SUBSTR (a.prs_afdeling_omschrijving,
1,
INSTR (a.prs_afdeling_omschrijving,
'/',
1,
2)
- 1),
a.prs_afdeling_omschrijving)
afd2,
rd.ins_discipline_omschrijving,
b.prs_bedrijf_naam,
res_rsv_artikel_aanmaak,
res_rsv_artikel_levering,
res_rsv_artikel_afgemeld,
res_rsv_artikel_prijs
bedrag
FROM res_rsv_artikel rsv,
res_rsv_ruimte rrr,
res_artikel ra,
res_discipline rd,
res_disc_params dp,
prs_bedrijf b,
prs_perslid p,
prs_afdeling a,
prs_kostenplaats k,
prs_v_perslid_fullnames pf
WHERE rsv.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rsv.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rd.ins_discipline_key
AND dp.prs_bedrijf_key = b.prs_bedrijf_key(+)
AND rd.ins_discipline_key = dp.res_ins_discipline_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key;
------ payload end ------
SET DEFINE OFF