VENR#39178 Fin. rapportages/bevriezen (soortgelijk NS)
svn path=/Customer/trunk/; revision=33053
This commit is contained in:
674
VENR/venr.sql
674
VENR/venr.sql
@@ -2626,6 +2626,680 @@ AS
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND a.prs_bedrijf_key = fac.getsetting ('xd_primary_bedrijfkey');
|
||||
|
||||
|
||||
-- VENR#39178: FIN-rapportages per klant/leverancier/contract.
|
||||
/* Formatted on 24-2-2017 13:30:30 (QP5 v5.136.908.31019) */
|
||||
CREATE OR REPLACE VIEW venr_v_rap_actual_cost_tot
|
||||
(
|
||||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||||
maand,
|
||||
fclt_f_klant,
|
||||
fclt_f_leverancier,
|
||||
contractnr,
|
||||
beschrijving,
|
||||
aantal,
|
||||
jaarbudget,
|
||||
kosten_onderweg,
|
||||
kosten_afgerond
|
||||
)
|
||||
AS
|
||||
SELECT b2a.prs_afdeling_key,
|
||||
TO_CHAR (SYSDATE, 'yyyy-mm'), -- Deze maand ORDAFR, volgende maand factureren (achteraf)
|
||||
x.prs_bedrijf_naam klant,
|
||||
b2a.prs_bedrijf_naam leverancier,
|
||||
x.cnt_contract_nummer_intern,
|
||||
x.cnt_contract_omschrijving,
|
||||
COUNT ( * ) aantal,
|
||||
x.cnt_contract_kosten jaarbudget,
|
||||
SUM (DECODE (x.mld_statusopdr_key, 9, 0, COALESCE (x.mld_opdr_kosten, 0)))
|
||||
kosten_onderweg,
|
||||
SUM (DECODE (x.mld_statusopdr_key, 9, COALESCE (x.mld_opdr_kosten, 0), 0))
|
||||
kosten_afgerond
|
||||
FROM (SELECT b.prs_bedrijf_naam, -- Klant
|
||||
o.mld_opdr_key,
|
||||
o.mld_melding_key,
|
||||
o.mld_opdr_bedrijfopdr_volgnr,
|
||||
o.mld_statusopdr_key,
|
||||
o.mld_uitvoerende_keys, -- Leverancier
|
||||
o.mld_opdr_kosten,
|
||||
c.cnt_contract_nummer_intern,
|
||||
c.cnt_contract_omschrijving,
|
||||
c.cnt_contract_kosten
|
||||
FROM mld_opdr o,
|
||||
mld_typeopdr ot,
|
||||
mld_melding m,
|
||||
prs_perslid p,
|
||||
prs_v_afdeling_boom ab,
|
||||
prs_bedrijf b,
|
||||
cnt_contract c
|
||||
WHERE o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||||
AND ot.mld_typeopdr_kosten = 1 -- Kosten meerekenen=Ja
|
||||
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
|
||||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.prs_perslid_key = p.prs_perslid_key
|
||||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||||
(SELECT 1
|
||||
FROM fac_v_aanwezigusrdata
|
||||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||||
AND fac_usrdata_code = TO_CHAR (b.prs_bedrijf_key))
|
||||
AND o.cnt_contract_key = c.cnt_contract_key(+)) x
|
||||
LEFT JOIN fac_tracking ordafr
|
||||
ON ordafr.fac_srtnotificatie_key = 68 -- ORDAFR
|
||||
AND x.mld_opdr_key = ordafr.fac_tracking_refkey
|
||||
LEFT JOIN ( SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
|
||||
MIN (p.prs_afdeling_key) prs_afdeling_key,
|
||||
COUNT ( * ) aantal
|
||||
FROM prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
|
||||
WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key(+)
|
||||
AND cp.prs_perslid_key = p.prs_perslid_key(+)
|
||||
GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam) b2a
|
||||
ON x.mld_uitvoerende_keys = b2a.prs_bedrijf_key
|
||||
GROUP BY b2a.prs_afdeling_key,
|
||||
x.prs_bedrijf_naam,
|
||||
b2a.prs_bedrijf_naam,
|
||||
x.cnt_contract_nummer_intern,
|
||||
x.cnt_contract_omschrijving,
|
||||
x.cnt_contract_kosten
|
||||
UNION ALL
|
||||
SELECT TO_NUMBER (NULL) prs_afdeling_key, -- TODO: prs_afdeling_key van App<70>l?
|
||||
TO_CHAR (SYSDATE, 'yyyy-mm'), -- Deze maand geboekt, volgende maand factureren (achteraf)
|
||||
x.prs_bedrijf_naam klant,
|
||||
'App<EFBFBD>l' leverancier,
|
||||
TO_CHAR (NULL) cnt_contract_nummer_intern,
|
||||
'RES/Banqueting' cnt_contract_omschrijving,
|
||||
COUNT (DISTINCT x.res_rsv_ruimte_key) aantal,
|
||||
TO_NUMBER (NULL) jaarbudget, --x.cnt_contract_kosten,
|
||||
SUM (DECODE (x.res_status_bo_key, 5, 0, x.res_rsv_artikel_prijs))
|
||||
kosten_onderweg,
|
||||
SUM (DECODE (x.res_status_bo_key, 5, x.res_rsv_artikel_prijs, 0))
|
||||
kosten_afgerond
|
||||
FROM (SELECT b.prs_bedrijf_naam, -- Klant
|
||||
rrr.res_rsv_ruimte_key,
|
||||
rrr.res_reservering_key,
|
||||
rrr.res_rsv_ruimte_volgnr,
|
||||
rra.res_status_bo_key,
|
||||
rra.res_rsv_artikel_prijs
|
||||
FROM res_rsv_ruimte rrr,
|
||||
res_rsv_artikel rra,
|
||||
res_artikel ra,
|
||||
prs_perslid p,
|
||||
prs_v_afdeling_boom ab,
|
||||
prs_bedrijf b
|
||||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||||
AND rra.res_artikel_key = ra.res_artikel_key
|
||||
AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key
|
||||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||||
(SELECT 1
|
||||
FROM fac_v_aanwezigusrdata
|
||||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||||
AND fac_usrdata_code = TO_CHAR (b.prs_bedrijf_key))) x
|
||||
LEFT JOIN fac_tracking resafm
|
||||
ON resafm.fac_srtnotificatie_key = 80 -- RESAFM
|
||||
AND x.res_rsv_ruimte_key = resafm.fac_tracking_refkey
|
||||
GROUP BY x.prs_bedrijf_naam;
|
||||
|
||||
-- Actual regels en basis voor oa. te exporteren/bevriezen regels op de 10e van
|
||||
-- de maand; voor de output geldt:
|
||||
-- Actual regels en basis voor oa. te exporteren/bevriezen regels in nacht na
|
||||
-- de 1e werkdag van de maand; voor de output geldt:
|
||||
-- Dat deze de actual opdrachten toont (voor 1e ORDAFR).
|
||||
-- Dat deze de actual reserveringen toont (voor 1e RESAFM).
|
||||
-- Dat deze tot nacht na 1e werkdag van de maand alleen door Kien wijzigbaar
|
||||
-- is.
|
||||
/* Formatted on 24-2-2017 14:10:50 (QP5 v5.136.908.31019) */
|
||||
CREATE OR REPLACE VIEW venr_v_actual_fact -- Tbv. FACT_EXPORT!
|
||||
(
|
||||
prs_afdeling_key,
|
||||
maand,
|
||||
klant_key,
|
||||
klant,
|
||||
leverancier_key,
|
||||
leverancier,
|
||||
cnt_contract_key,
|
||||
contractnr,
|
||||
beschrijving,
|
||||
ref_key,
|
||||
ref_id,
|
||||
aantal,
|
||||
jaarbudget,
|
||||
kosten_afgerond
|
||||
)
|
||||
AS
|
||||
SELECT b2a.prs_afdeling_key,
|
||||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'), -- Voor 1e ORDAFR, deze maand factureren (achteraf)
|
||||
x.prs_bedrijf_key klant_key,
|
||||
x.prs_bedrijf_naam klant,
|
||||
b2a.prs_bedrijf_key leverancier_key,
|
||||
b2a.prs_bedrijf_naam leverancier,
|
||||
x.cnt_contract_key,
|
||||
x.cnt_contract_nummer_intern,
|
||||
x.cnt_contract_omschrijving,
|
||||
x.mld_opdr_key ref_key,
|
||||
TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) ref_id,
|
||||
1 aantal,
|
||||
x.cnt_contract_kosten jaarbudget,
|
||||
x.mld_opdr_kosten kosten_afgerond
|
||||
FROM (SELECT b.prs_bedrijf_key,
|
||||
b.prs_bedrijf_naam, -- Klant
|
||||
o.mld_opdr_key,
|
||||
o.mld_melding_key,
|
||||
o.mld_opdr_bedrijfopdr_volgnr,
|
||||
o.mld_statusopdr_key,
|
||||
o.mld_uitvoerende_keys, -- Leverancier
|
||||
o.mld_opdr_kosten,
|
||||
c.cnt_contract_key,
|
||||
c.cnt_contract_nummer_intern,
|
||||
c.cnt_contract_omschrijving,
|
||||
c.cnt_contract_kosten
|
||||
FROM mld_opdr o,
|
||||
mld_typeopdr ot,
|
||||
mld_melding m,
|
||||
prs_perslid p,
|
||||
prs_v_afdeling_boom ab,
|
||||
prs_bedrijf b,
|
||||
cnt_contract c
|
||||
WHERE o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||||
AND ot.mld_typeopdr_kosten = 1 -- Kosten meerekenen=Ja
|
||||
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
|
||||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.prs_perslid_key = p.prs_perslid_key
|
||||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||||
(SELECT 1
|
||||
FROM fac_v_aanwezigusrdata
|
||||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||||
AND fac_usrdata_code = TO_CHAR (b.prs_bedrijf_key))
|
||||
AND o.cnt_contract_key = c.cnt_contract_key(+)) x
|
||||
LEFT JOIN fac_tracking ordafr
|
||||
ON ordafr.fac_srtnotificatie_key = 68 -- ORDAFR
|
||||
AND x.mld_opdr_key = ordafr.fac_tracking_refkey
|
||||
LEFT JOIN ( SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
|
||||
MIN (p.prs_afdeling_key) prs_afdeling_key,
|
||||
COUNT ( * ) aantal
|
||||
FROM prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
|
||||
WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key(+)
|
||||
AND cp.prs_perslid_key = p.prs_perslid_key(+)
|
||||
GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam) b2a
|
||||
ON x.mld_uitvoerende_keys = b2a.prs_bedrijf_key
|
||||
WHERE ordafr.fac_tracking_datum < TRUNC (SYSDATE, 'mm')
|
||||
UNION ALL
|
||||
SELECT TO_NUMBER (NULL) prs_afdeling_key, -- TODO: prs_afdeling_key van App<70>l?
|
||||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'), -- Voor 1e RESAFM, deze maand factureren (achteraf)
|
||||
x.prs_bedrijf_key klant_key,
|
||||
x.prs_bedrijf_naam klant,
|
||||
12633 leverancier_key,
|
||||
'App<EFBFBD>l' leverancier,
|
||||
TO_NUMBER (NULL) cnt_contract_key,
|
||||
TO_CHAR (NULL) cnt_contract_nummer_intern,
|
||||
'RES/Banqueting' cnt_contract_omschrijving,
|
||||
x.res_rsv_ruimte_key ref_key,
|
||||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) ref_id,
|
||||
1 aantal,
|
||||
TO_NUMBER (NULL) jaarbudget, --x.cnt_contract_kosten,
|
||||
SUM (x.res_rsv_artikel_prijs) kosten_afgerond
|
||||
FROM (SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam, -- Klant
|
||||
rrr.res_rsv_ruimte_key,
|
||||
rrr.res_reservering_key,
|
||||
rrr.res_rsv_ruimte_volgnr,
|
||||
rra.res_status_bo_key,
|
||||
rra.res_rsv_artikel_prijs
|
||||
FROM res_rsv_ruimte rrr,
|
||||
res_rsv_artikel rra,
|
||||
res_artikel ra,
|
||||
prs_perslid p,
|
||||
prs_v_afdeling_boom ab,
|
||||
prs_bedrijf b
|
||||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||||
AND rra.res_artikel_key = ra.res_artikel_key
|
||||
AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key
|
||||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||||
(SELECT 1
|
||||
FROM fac_v_aanwezigusrdata
|
||||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||||
AND fac_usrdata_code = TO_CHAR (b.prs_bedrijf_key))) x
|
||||
LEFT JOIN
|
||||
fac_tracking resafm
|
||||
ON resafm.fac_srtnotificatie_key = 80 -- RESAFM
|
||||
AND x.res_rsv_ruimte_key = resafm.fac_tracking_refkey
|
||||
WHERE resafm.fac_tracking_datum < TRUNC (SYSDATE, 'mm')
|
||||
GROUP BY x.prs_bedrijf_key,
|
||||
x.prs_bedrijf_naam,
|
||||
x.res_rsv_ruimte_key,
|
||||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr);
|
||||
|
||||
-- Te exporteren/bevriezen totalen over voorgaande maand (opdrachten en reserveringen).
|
||||
CREATE OR REPLACE VIEW venr_v_rap_actual_fact_tot
|
||||
(
|
||||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||||
maand,
|
||||
fclt_f_klant,
|
||||
fclt_f_leverancier,
|
||||
contractnr,
|
||||
beschrijving,
|
||||
aantal,
|
||||
jaarbudget,
|
||||
kosten_afgerond
|
||||
)
|
||||
AS
|
||||
SELECT prs_afdeling_key,
|
||||
maand,
|
||||
klant,
|
||||
leverancier,
|
||||
contractnr,
|
||||
beschrijving,
|
||||
SUM (aantal),
|
||||
jaarbudget,
|
||||
SUM (kosten_afgerond)
|
||||
FROM venr_v_actual_fact
|
||||
GROUP BY prs_afdeling_key,
|
||||
maand,
|
||||
klant,
|
||||
leverancier,
|
||||
contractnr,
|
||||
beschrijving,
|
||||
jaarbudget;
|
||||
|
||||
-- Frozen regels en basis voor oa. de notificatie op de 11e van de maand; voor
|
||||
-- de output geldt:
|
||||
-- Frozen regels en basis voor oa. de notificatie in nacht na 1e werkdag van
|
||||
-- de maand; voor de output geldt:
|
||||
-- Dat deze de frozen opdrachten toont.
|
||||
-- Dat deze de frozen reserveringen toont.
|
||||
-- Nog niet in scope:
|
||||
-- Dat de laatst bevroren maand per leverancier in nacht na 1e werkdag van de
|
||||
-- maand wordt genotificeerd (via extra_key-principe) met daarin de kosten
|
||||
-- gegroepeerd per klant/contract.
|
||||
/* Formatted on 24-2-2017 15:00:00 (QP5 v5.136.908.31019) */
|
||||
CREATE OR REPLACE VIEW venr_v_frozen_fact
|
||||
(
|
||||
prs_afdeling_key,
|
||||
maand,
|
||||
klant_key,
|
||||
klant,
|
||||
--leverancier_key,
|
||||
extra_key, -- Moet zo heten!
|
||||
leverancier,
|
||||
cnt_contract_key,
|
||||
contractnr,
|
||||
beschrijving,
|
||||
ref_key,
|
||||
ref_id,
|
||||
aantal,
|
||||
jaarbudget,
|
||||
kosten_afgerond
|
||||
)
|
||||
AS
|
||||
SELECT b2a.prs_afdeling_key,
|
||||
x.mld_opdr_ordernr maand,
|
||||
x.prs_bedrijf_key klant_key,
|
||||
x.prs_bedrijf_naam klant,
|
||||
b2a.prs_bedrijf_key leverancier_key,
|
||||
b2a.prs_bedrijf_naam leverancier,
|
||||
x.cnt_contract_key,
|
||||
x.cnt_contract_nummer_intern,
|
||||
x.cnt_contract_omschrijving,
|
||||
x.mld_opdr_key ref_key,
|
||||
TO_CHAR (x.mld_melding_key) || '/' || TO_CHAR (x.mld_opdr_bedrijfopdr_volgnr) ref_id,
|
||||
1 aantal,
|
||||
x.cnt_contract_kosten jaarbudget,
|
||||
x.mld_opdr_kosten kosten_afgerond
|
||||
FROM (SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam, -- Klant
|
||||
o.mld_opdr_key,
|
||||
o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr,
|
||||
o.mld_opdr_ordernr,
|
||||
o.mld_uitvoerende_keys, -- Leverancier
|
||||
o.mld_opdr_kosten,
|
||||
c.cnt_contract_key,
|
||||
c.cnt_contract_nummer_intern,
|
||||
c.cnt_contract_omschrijving,
|
||||
c.cnt_contract_kosten
|
||||
FROM mld_opdr o,
|
||||
mld_melding m,
|
||||
prs_perslid p,
|
||||
prs_v_afdeling_boom ab,
|
||||
prs_bedrijf b,
|
||||
cnt_contract c
|
||||
WHERE o.mld_statusopdr_key = 7
|
||||
AND o.mld_opdr_ordernr IS NOT NULL
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.prs_perslid_key = p.prs_perslid_key
|
||||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND o.cnt_contract_key = c.cnt_contract_key(+)) x
|
||||
LEFT JOIN
|
||||
( SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam,
|
||||
MIN (p.prs_afdeling_key) prs_afdeling_key,
|
||||
COUNT ( * ) aantal
|
||||
FROM prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
|
||||
WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key(+)
|
||||
AND cp.prs_perslid_key = p.prs_perslid_key(+)
|
||||
GROUP BY b.prs_bedrijf_key, b.prs_bedrijf_naam) b2a
|
||||
ON x.mld_uitvoerende_keys = b2a.prs_bedrijf_key
|
||||
UNION ALL
|
||||
SELECT TO_NUMBER (NULL) prs_afdeling_key, -- TODO: prs_afdeling_key van App<70>l?
|
||||
x.res_rsv_ruimte_ordernr maand,
|
||||
x.prs_bedrijf_key klant_key,
|
||||
x.prs_bedrijf_naam klant,
|
||||
12633 leverancier_key,
|
||||
'App<EFBFBD>l' leverancier,
|
||||
TO_NUMBER (NULL) cnt_contract_key,
|
||||
TO_CHAR (NULL) cnt_contract_nummer_intern,
|
||||
'RES/Banqueting' cnt_contract_omschrijving,
|
||||
x.res_rsv_ruimte_key ref_key,
|
||||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr) ref_id,
|
||||
1 aantal,
|
||||
TO_NUMBER (NULL) jaarbudget, --x.cnt_contract_kosten,
|
||||
SUM (x.res_rsv_artikel_prijs) kosten_afgerond
|
||||
FROM (SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam, -- Klant
|
||||
rrr.res_rsv_ruimte_key,
|
||||
rrr.res_reservering_key, rrr.res_rsv_ruimte_volgnr,
|
||||
rrr.res_rsv_ruimte_ordernr,
|
||||
rra.res_rsv_artikel_prijs
|
||||
FROM res_rsv_ruimte rrr,
|
||||
res_rsv_artikel rra,
|
||||
res_artikel ra,
|
||||
prs_perslid p,
|
||||
prs_v_afdeling_boom ab,
|
||||
prs_bedrijf b
|
||||
WHERE rrr.res_status_bo_key = 6
|
||||
AND rrr.res_rsv_ruimte_ordernr IS NOT NULL
|
||||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||||
AND rra.res_artikel_key = ra.res_artikel_key
|
||||
AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key
|
||||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = b.prs_bedrijf_key) x
|
||||
GROUP BY x.res_rsv_ruimte_ordernr,
|
||||
x.prs_bedrijf_key,
|
||||
x.prs_bedrijf_naam,
|
||||
x.res_rsv_ruimte_key,
|
||||
TO_CHAR (x.res_reservering_key) || '/' || TO_CHAR (x.res_rsv_ruimte_volgnr);
|
||||
|
||||
-- Geexporteerde/bevroren totalen over voorgaande maanden (opdrachten en reserveringen).
|
||||
CREATE OR REPLACE VIEW venr_v_rap_frozen_fact_tot
|
||||
(
|
||||
fclt_3d_afdeling_key, -- Kunnen beperken per leverancier!
|
||||
fclt_f_maand,
|
||||
fclt_f_klant,
|
||||
fclt_f_leverancier,
|
||||
contractnr,
|
||||
beschrijving,
|
||||
aantal,
|
||||
jaarbudget,
|
||||
kosten_afgerond
|
||||
)
|
||||
AS
|
||||
SELECT prs_afdeling_key,
|
||||
maand,
|
||||
klant,
|
||||
leverancier,
|
||||
contractnr,
|
||||
beschrijving,
|
||||
SUM (aantal),
|
||||
jaarbudget,
|
||||
SUM (kosten_afgerond)
|
||||
FROM venr_v_frozen_fact
|
||||
GROUP BY prs_afdeling_key,
|
||||
maand,
|
||||
klant,
|
||||
leverancier,
|
||||
contractnr,
|
||||
beschrijving,
|
||||
jaarbudget;
|
||||
|
||||
/* Formatted on 24-2-2017 16:48:43 (QP5 v5.136.908.31019) */
|
||||
CREATE OR REPLACE PROCEDURE venr_select_fact (p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2)
|
||||
AS
|
||||
-- Zet "kosten" opdrachten die voor de 1e zijn afgerond op AV.
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT '[' || TO_CHAR (ref_key) || '|' || ref_id || '] ' aanduiding,
|
||||
ref_key mld_opdr_key
|
||||
FROM venr_v_actual_fact
|
||||
WHERE beschrijving NOT LIKE 'RES/%'
|
||||
ORDER BY 1;
|
||||
|
||||
-- Zet "kosten" banqueting die voor de 1e zijn afgerond op AV.
|
||||
CURSOR c2
|
||||
IS
|
||||
SELECT '[' || TO_CHAR (ref_key) || '|' || ref_id || '] ' aanduiding,
|
||||
ref_key res_rsv_ruimte_key
|
||||
FROM venr_v_actual_fact
|
||||
WHERE beschrijving LIKE 'RES/%'
|
||||
ORDER BY 1;
|
||||
|
||||
-- Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV.
|
||||
-- Afgerond/kosten meerekenen en geen dispuut
|
||||
-- Afgemeld/kosten niet meerekenen, geen offerteaanvraag en geen dispuut
|
||||
-- Afgerond/kosten niet meerekenen en geen dispuut (= geaccepteerde offerteaanvragen)
|
||||
CURSOR c3
|
||||
IS
|
||||
SELECT o.mld_opdr_key
|
||||
FROM mld_opdr o, mld_typeopdr ot, mld_melding m, prs_perslid p, prs_v_afdeling_boom ab, prs_bedrijf b
|
||||
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 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
|
||||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.prs_perslid_key = p.prs_perslid_key
|
||||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||||
(SELECT 1
|
||||
FROM fac_v_aanwezigusrdata
|
||||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||||
AND fac_usrdata_code = TO_CHAR (b.prs_bedrijf_key))
|
||||
AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
||||
UNION ALL
|
||||
SELECT o.mld_opdr_key
|
||||
FROM mld_opdr o, mld_typeopdr ot, mld_melding m, prs_perslid p, prs_v_afdeling_boom ab, prs_bedrijf b
|
||||
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 != 168 -- 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
|
||||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.prs_perslid_key = p.prs_perslid_key
|
||||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||||
(SELECT 1
|
||||
FROM fac_v_aanwezigusrdata
|
||||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||||
AND fac_usrdata_code = TO_CHAR (b.prs_bedrijf_key))
|
||||
AND fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
||||
UNION ALL
|
||||
SELECT o.mld_opdr_key
|
||||
FROM mld_opdr o, mld_typeopdr ot, mld_melding m, prs_perslid p, prs_v_afdeling_boom ab, prs_bedrijf b
|
||||
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
|
||||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||||
AND k.mld_srtkenmerk_key = -1 -- Dispuut
|
||||
AND ko.mld_kenmerkopdr_waarde = '1') -- Aangevinkt
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.prs_perslid_key = p.prs_perslid_key
|
||||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND EXISTS -- Geconfigureerd als te rapporteren klant!
|
||||
(SELECT 1
|
||||
FROM fac_v_aanwezigusrdata
|
||||
WHERE fac_usrtab_key = 121 -- FinRapKlanten
|
||||
AND fac_usrdata_code = TO_CHAR (b.prs_bedrijf_key))
|
||||
AND (fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
|
||||
OR fac.gettrackingdate ('ORDOOK', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm'))
|
||||
ORDER BY 1;
|
||||
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_holiday NUMBER;
|
||||
v_count NUMBER (10);
|
||||
BEGIN
|
||||
-- In nacht na 1e werkdag van de maand (via scheduled task):
|
||||
-- 1. Zet "kosten" opdrachten die voor de 1e zijn afgerond op AV.
|
||||
-- 1. Zet "kosten" banqueting die voor de 1e zijn afgemeld op AV.
|
||||
-- 3. Zet "inclusief" opdrachten die voor de 1e zijn gesloten op AV. => TODO???
|
||||
-- x. Doe niets met afgewezen/geannuleerde opdrachten?
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO v_holiday
|
||||
FROM mld_vrije_dagen
|
||||
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1);
|
||||
|
||||
-- LET OP: FACT-export draait dagelijks na middernacht (begin van dag) en
|
||||
-- de "freeze" wordt maandelijks alleen in nacht na 1e werkdag van de maand
|
||||
-- uitgevoerd.
|
||||
-- IF nacht na 1e werkdag van de maand (<28>n geen weekend <20>n geen vrije dag)!
|
||||
-- count_work_days (d1,d2) bepaalt het #werkdagen van d1 tot d2 (als d1=d2,
|
||||
-- dan return 0); daarom bepalen tov. laatste dag van vorige maand!
|
||||
IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 4 -- ***EENMALIG nacht/dag na 4e ipv. 1e werkdag van de maand!!!***
|
||||
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
|
||||
AND v_holiday = 0
|
||||
THEN
|
||||
v_count := 0;
|
||||
|
||||
FOR rec IN c1
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errormsg := 'Fout bijwerken ordernummer (kosten opdrachten).';
|
||||
|
||||
UPDATE mld_opdr
|
||||
SET mld_opdr_ordernr = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||||
|
||||
v_errormsg := 'Fout verwerken kosten-mld_opdr.';
|
||||
|
||||
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 4);
|
||||
|
||||
v_count := v_count + 1;
|
||||
|
||||
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.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'Kosten opdrachten');
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
fac.writelog (p_applname, 'S', '#Kosten opdrachten bevroren: ' || TO_CHAR (v_count), '');
|
||||
COMMIT;
|
||||
|
||||
v_count := 0;
|
||||
|
||||
FOR rec IN c2
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errormsg := 'Fout bijwerken ordernummer (kosten banqueting).';
|
||||
|
||||
UPDATE res_rsv_ruimte
|
||||
SET res_rsv_ruimte_ordernr = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||||
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||||
|
||||
v_errormsg := 'Fout verwerken res_rsv_artikel';
|
||||
|
||||
UPDATE res_rsv_artikel
|
||||
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
|
||||
WHERE res_rsv_artikel_dirtlevel = 0
|
||||
AND res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||||
|
||||
v_errormsg := 'Fout tracken res_rsv_ruimte';
|
||||
|
||||
fac.trackaction ('RESVER',
|
||||
rec.res_rsv_ruimte_key,
|
||||
NULL,
|
||||
NULL,
|
||||
'Banqueting verwerkt');
|
||||
|
||||
v_count := v_count + 1;
|
||||
|
||||
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.writelog (p_applname, 'W', rec.aanduiding || v_errormsg, 'Kosten banqueting');
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
fac.writelog (p_applname, 'S', '#Kosten banqueting bevroren: ' || TO_CHAR (v_count), '');
|
||||
COMMIT;
|
||||
|
||||
v_count := 0;
|
||||
|
||||
FOR rec IN c3
|
||||
LOOP
|
||||
v_errormsg := 'Fout verwerken inclusief-mld_opdr.';
|
||||
|
||||
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, 4);
|
||||
|
||||
v_count := v_count + 1;
|
||||
|
||||
COMMIT;
|
||||
END LOOP;
|
||||
|
||||
fac.writelog (p_applname, 'S', '#Inclusief opdrachten bevroren: ' || TO_CHAR (v_count), '');
|
||||
COMMIT;
|
||||
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, 'E', v_errormsg, 'Proces FACT_EXPORT afgebroken!');
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
Reference in New Issue
Block a user