2270 lines
95 KiB
SQL
2270 lines
95 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for BLCC.
|
||
DEFINE thisfile = 'BLCC.SQL'
|
||
DEFINE dbuser = '^BLCC'
|
||
DEFINE custid = 'BLCC'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE VIEW blcc_v_rap_import_log
|
||
(
|
||
fclt_f_applicatie,
|
||
datum,
|
||
fclt_f_status,
|
||
omschrijving,
|
||
hint
|
||
)
|
||
AS
|
||
SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
|
||
TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'),
|
||
imp_log_status,
|
||
imp_log_omschrijving,
|
||
imp_log_hint
|
||
FROM imp_log il1, fac_import fi1, fac_import_app fia1
|
||
WHERE il1.fac_import_key = fi1.fac_import_key(+)
|
||
AND fi1.fac_import_app_key = fia1.fac_import_app_key(+)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM imp_log il2, fac_import fi2
|
||
WHERE il2.fac_import_key = fi2.fac_import_key
|
||
AND fi2.fac_import_app_key = fi1.fac_import_app_key
|
||
AND il2.fac_import_key > il1.fac_import_key);
|
||
|
||
/* Formatted on 5-1-2016 18:32:28 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW blcc_v_rap_cat_frozenplus
|
||
(
|
||
fclt_x_verwerkt,
|
||
fclt_f_debiteur,
|
||
fclt_f_organisatie,
|
||
locatie,
|
||
ruimte,
|
||
datum,
|
||
tijd,
|
||
resnr,
|
||
omschrijving,
|
||
artikelnr,
|
||
artikelomschrijving,
|
||
aantal,
|
||
stuksprijs,
|
||
kosten,
|
||
fclt_f_besteller,
|
||
costcenter,
|
||
hide_f_kostenplaats
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (x.res_rsv_artikel_verwerkt, 'dd-mm-yyyy'), -- Verwerkt
|
||
COALESCE (x.prs_kenmerklink_waarde, '???') deb_nr,
|
||
(SELECT prs_afdeling_omschrijving
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_key = x.prs_afdeling_key)
|
||
deb_oms,
|
||
DECODE (
|
||
x.alg_ruimte_key,
|
||
NULL,
|
||
'Onbekend',
|
||
rg.alg_gebouw_upper
|
||
|| '-'
|
||
|| rg.alg_verdieping_code
|
||
|| '-'
|
||
|| rg.alg_ruimte_nr)
|
||
afleveradres,
|
||
COALESCE (rr.res_ruimte_omschrijving, rg.alg_ruimte_omschrijving)
|
||
ruimte,
|
||
TO_CHAR (x.res_rsv_artikel_levering, 'dd-mm-yyyy') datum,
|
||
TO_CHAR (x.res_rsv_artikel_levering, 'hh24:mi') tijd,
|
||
x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr,
|
||
x.res_rsv_ruimte_omschrijving omschrijving,
|
||
x.res_artikel_nr,
|
||
x.res_artikel_omschrijving,
|
||
x.res_rsv_artikel_aantal,
|
||
ROUND ( (x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5)
|
||
stuksprijs,
|
||
x.res_rsv_artikel_aantal
|
||
* ROUND ( (x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5)
|
||
regeltotaal,
|
||
x.prs_perslid_naam_full,
|
||
(SELECT MAX (kw.res_kenmerkreservering_waarde)
|
||
FROM res_kenmerkwaarde kw, res_kenmerk rk
|
||
WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key
|
||
AND kw.res_kenmerkwaarde_verwijder IS NULL
|
||
AND kw.res_kenmerk_key = rk.res_kenmerk_key
|
||
AND rk.res_srtkenmerk_key = 1)
|
||
costcenter,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
FROM (SELECT rra.res_rsv_artikel_verwerkt,
|
||
COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key)
|
||
res_ruimte_key,
|
||
COALESCE (rar1.alg_ruimte_key,
|
||
rar2.alg_ruimte_key,
|
||
rrr.alg_ruimte_key)
|
||
alg_ruimte_key,
|
||
rra.res_rsv_artikel_levering,
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
ra.res_artikel_nr,
|
||
ra.res_artikel_omschrijving,
|
||
rra.res_rsv_artikel_prijs,
|
||
rra.res_rsv_artikel_aantal,
|
||
COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) prs_afdeling_key,
|
||
kl.prs_kenmerklink_waarde,
|
||
pf.prs_perslid_naam_full,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving
|
||
FROM res_rsv_ruimte rrr,
|
||
res_rsv_artikel rra,
|
||
res_artikel ra,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
prs_perslid p,
|
||
prs_v_afdeling_boom ab,
|
||
prs_kenmerklink kl,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_kostenplaats k
|
||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_verwijder IS NULL
|
||
AND rra.res_status_bo_key = 6
|
||
AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
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(+)
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+)
|
||
AND kl.prs_kenmerklink_niveau(+) = 'A'
|
||
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN res_ruimte rr
|
||
ON x.res_ruimte_key = rr.res_ruimte_key
|
||
LEFT JOIN alg_v_ruimte_gegevens_all rg
|
||
ON x.alg_ruimte_key = rg.alg_ruimte_key
|
||
UNION ALL
|
||
SELECT TO_CHAR (x.res_rsv_artikel_levering, 'yyyy-mm') || '*', -- Lopend
|
||
COALESCE (x.prs_kenmerklink_waarde, '???') deb_nr,
|
||
(SELECT prs_afdeling_omschrijving
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_key = x.prs_afdeling_key)
|
||
deb_oms,
|
||
DECODE (
|
||
x.alg_ruimte_key,
|
||
NULL,
|
||
'Onbekend',
|
||
rg.alg_gebouw_upper
|
||
|| '-'
|
||
|| rg.alg_verdieping_code
|
||
|| '-'
|
||
|| rg.alg_ruimte_nr)
|
||
afleveradres,
|
||
COALESCE (rr.res_ruimte_nr, rg.alg_ruimte_omschrijving) ruimte,
|
||
TO_CHAR (x.res_rsv_artikel_levering, 'dd-mm-yyyy') datum,
|
||
TO_CHAR (x.res_rsv_artikel_levering, 'hh24:mi') tijd,
|
||
x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr,
|
||
x.res_rsv_ruimte_omschrijving omschrijving,
|
||
x.res_artikel_nr,
|
||
x.res_artikel_omschrijving,
|
||
x.res_rsv_artikel_aantal,
|
||
ROUND ( (x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5)
|
||
stuksprijs,
|
||
x.res_rsv_artikel_aantal
|
||
* ROUND ( (x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5)
|
||
regeltotaal,
|
||
x.prs_perslid_naam_full,
|
||
(SELECT MAX (kw.res_kenmerkreservering_waarde)
|
||
FROM res_kenmerkwaarde kw, res_kenmerk rk
|
||
WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key
|
||
AND kw.res_kenmerkwaarde_verwijder IS NULL
|
||
AND kw.res_kenmerk_key = rk.res_kenmerk_key
|
||
AND rk.res_srtkenmerk_key = 1)
|
||
costcenter,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
|
||
FROM (SELECT rra.res_rsv_artikel_verwerkt,
|
||
COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key)
|
||
res_ruimte_key,
|
||
COALESCE (rar1.alg_ruimte_key,
|
||
rar2.alg_ruimte_key,
|
||
rrr.alg_ruimte_key)
|
||
alg_ruimte_key,
|
||
rra.res_rsv_artikel_levering,
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
ra.res_artikel_nr,
|
||
ra.res_artikel_omschrijving,
|
||
rra.res_rsv_artikel_prijs,
|
||
rra.res_rsv_artikel_aantal,
|
||
COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) prs_afdeling_key,
|
||
kl.prs_kenmerklink_waarde,
|
||
pf.prs_perslid_naam_full,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving
|
||
FROM res_rsv_ruimte rrr,
|
||
res_rsv_artikel rra,
|
||
res_artikel ra,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
prs_perslid p,
|
||
prs_v_afdeling_boom ab,
|
||
prs_kenmerklink kl,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_kostenplaats k
|
||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_verwijder IS NULL
|
||
AND rra.res_status_bo_key != 6
|
||
AND rra.res_rsv_artikel_levering < SYSDATE
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
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(+)
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+)
|
||
AND kl.prs_kenmerklink_niveau(+) = 'A'
|
||
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN res_ruimte rr
|
||
ON x.res_ruimte_key = rr.res_ruimte_key
|
||
LEFT JOIN alg_v_ruimte_gegevens_all rg
|
||
ON x.alg_ruimte_key = rg.alg_ruimte_key;
|
||
|
||
CREATE OR REPLACE VIEW blcc_v_rap_cat_frozen
|
||
(
|
||
fclt_f_exportjob,
|
||
fclt_f_bedrijf,
|
||
afleveradres,
|
||
fclt_f_afleverdatum,
|
||
tijdstip,
|
||
bestelnummer,
|
||
fclt_f_artikelnummer,
|
||
artikelomschrijving,
|
||
interne_artikelprijs,
|
||
aantal,
|
||
fclt_f_besteller,
|
||
costcenter,
|
||
afdeling,
|
||
fclt_3d_afdeling_key
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (x.res_rsv_artikel_verwerkt, 'dd-mm-yyyy') verwerkt,
|
||
--'Sodexo BV',
|
||
DECODE (
|
||
FLOOR (x.ins_discipline_volgnr / 1000),
|
||
1, 'Sodexo BV', -- Geleen t/m 27-08-2016
|
||
2, 'Hutten', -- Geleen per 28-08-2016
|
||
3, 'Verde', -- Heerlen
|
||
'???')
|
||
bedrijf,
|
||
DECODE (
|
||
x.alg_ruimte_key,
|
||
NULL, 'Onbekend',
|
||
rg.alg_locatie_code
|
||
|| '-'
|
||
|| rg.alg_gebouw_upper
|
||
|| '-'
|
||
|| rg.alg_verdieping_code
|
||
|| '-'
|
||
|| rg.alg_ruimte_nr
|
||
|| ' ('
|
||
|| rg.alg_ruimte_omschrijving
|
||
|| ')')
|
||
afleveradres,
|
||
TO_CHAR (x.res_rsv_artikel_levering, 'dd-mm-yyyy') datum,
|
||
TO_CHAR (x.res_rsv_artikel_levering, 'hh24:mi') tijd,
|
||
x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr bestelnr,
|
||
x.res_artikel_nr,
|
||
x.res_artikel_omschrijving,
|
||
ROUND ( (x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5)
|
||
interneprijs,
|
||
x.res_rsv_artikel_aantal,
|
||
x.prs_perslid_naam_full,
|
||
(SELECT MAX (kw.res_kenmerkreservering_waarde)
|
||
FROM res_kenmerkwaarde kw, res_kenmerk rk
|
||
WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key
|
||
AND kw.res_kenmerkwaarde_verwijder IS NULL
|
||
AND kw.res_kenmerk_key = rk.res_kenmerk_key
|
||
AND rk.res_srtkenmerk_key = 1)
|
||
costcenter,
|
||
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving afd,
|
||
DECODE (
|
||
FLOOR (x.ins_discipline_volgnr / 1000),
|
||
1, 225, -- Geleen t/m 27-08-2016/Sodexo
|
||
2, 961, -- Geleen per 28-08-2016/Hutten
|
||
3, 621, -- Heerlen/Verde
|
||
-1)
|
||
afdeling_key
|
||
FROM (SELECT rra.res_rsv_artikel_verwerkt,
|
||
COALESCE (rar1.alg_ruimte_key,
|
||
rar2.alg_ruimte_key,
|
||
rrr.alg_ruimte_key)
|
||
alg_ruimte_key,
|
||
rra.res_rsv_artikel_levering,
|
||
rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
td.ins_discipline_volgnr, -- Bepaalt de leverancier!
|
||
ra.res_artikel_nr,
|
||
ra.res_artikel_omschrijving,
|
||
rra.res_rsv_artikel_prijs,
|
||
rra.res_rsv_artikel_aantal,
|
||
pf.prs_perslid_naam_full,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving
|
||
FROM res_rsv_ruimte rrr,
|
||
res_rsv_artikel rra,
|
||
res_artikel ra,
|
||
res_discipline td,
|
||
res_ruimte_opstelling rro,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NULL
|
||
GROUP BY res_ruimte_key) rar1,
|
||
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
|
||
FROM res_alg_ruimte
|
||
WHERE res_alg_ruimte_verwijder IS NOT NULL
|
||
GROUP BY res_ruimte_key) rar2,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_kostenplaats k
|
||
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_rsv_artikel_verwijder IS NULL
|
||
AND rra.res_status_bo_key = 6
|
||
AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = td.ins_discipline_key
|
||
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(+)
|
||
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x
|
||
LEFT JOIN
|
||
alg_v_ruimte_gegevens_all rg
|
||
ON x.alg_ruimte_key = rg.alg_ruimte_key;
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE blcc_add_xml_row (p_bestand 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_regel);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE blcc_add_xml_element (p_bestand IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
blcc_add_xml_row (
|
||
p_bestand,
|
||
'<'
|
||
|| p_tag
|
||
|| '>'
|
||
|| xml.char_to_html (p_value)
|
||
|| '</'
|
||
|| p_tag
|
||
|| '>');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW blcc_v_export_proquro (result, result_order)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'PROQURO';
|
||
|
||
/* Formatted on 11-9-2015 11:12:48 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE blcc_select_proquro (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- Markeren te exporteren opdracht-verplichtingen (via ordernr)!
|
||
CURSOR c1
|
||
IS
|
||
SELECT '['
|
||
|| TO_CHAR (o.mld_melding_key)
|
||
|| '|'
|
||
|| TO_CHAR (o.mld_opdr_key)
|
||
|| '] '
|
||
aanduiding,
|
||
o.mld_opdr_key
|
||
FROM mld_opdr o
|
||
WHERE o.mld_opdr_ordernr IS NULL -- Geen ordernr, dus bijwerken!
|
||
AND o.mld_statusopdr_key = 9 -- Afgerond
|
||
--AND o.mld_opdr_kosten > 0 -- Allemaal, ook als kosten=0
|
||
AND o.mld_typeopdr_key != 103 -- Geen RFQs
|
||
ORDER BY 1;
|
||
|
||
-- Markeren te exporteren catering-verplichtingen (via RESAFM/RESVER)!
|
||
-- LET OP: Maandelijks in de nacht na de 2e werkdag van de maand.
|
||
-- BLCC#38809: SCC uitsluiten (alleen regels als volgnr 1000 t/m 2999)!
|
||
CURSOR c2
|
||
IS
|
||
SELECT '['
|
||
|| 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,
|
||
rra.res_status_bo_key,
|
||
rra.res_artikel_key
|
||
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, res_discipline td
|
||
WHERE rra.res_status_bo_key != 6 -- Niet Verwerkt, dus verwerken!
|
||
AND rra.res_rsv_artikel_dirtlevel = 0
|
||
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm') -- Voor 1e
|
||
AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = td.ins_discipline_key
|
||
AND td.ins_discipline_volgnr >= 1000 -- Gedefinieerde catalogi
|
||
AND td.ins_discipline_volgnr <= 2999 -- 1Sodexo/2Hutten/3Verde
|
||
ORDER BY 1;
|
||
|
||
-- Wegschrijven te exporteren verplichting-regels (= factuur naar ProQuro).
|
||
-- BLCC#38809: SCC uitsluiten (alleen regels als volgnr 1000 t/m 2999)!
|
||
CURSOR c3
|
||
IS -- Regel per Afgeronde mld_opdr zojuist gemarkeerd!
|
||
SELECT sd.ins_srtdiscipline_prefix
|
||
|| TO_CHAR (o.mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
externalid,
|
||
p.prs_perslid_nr, -- AdministrationExternalId
|
||
kp.prs_kostenplaats_nr costcentre, -- CostcentreExternalId
|
||
b.prs_leverancier_nr,
|
||
'FACILITOR Ref.nr. '
|
||
|| sd.ins_srtdiscipline_prefix
|
||
|| TO_CHAR (o.mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
|| ' ('
|
||
|| td.ins_discipline_omschrijving
|
||
|| '-'
|
||
|| sm.mld_stdmelding_omschrijving
|
||
|| ')'
|
||
omschrijving,
|
||
o.mld_opdr_kosten price,
|
||
TO_CHAR (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), 'yyyy-mm-dd')
|
||
deliverydate,
|
||
COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms)
|
||
costtype, -- CostTypeExternalId
|
||
DECODE (aog.alg_gebouw_code,
|
||
NULL, 'C-0000-000-00',
|
||
'122-001N', 'C-0122-001-01',
|
||
'122-00TW', 'C-0122-000-00',
|
||
'122-03B', 'C-0122-003-01',
|
||
'122-32A', 'C-0122-032-01',
|
||
'122-93A', 'C-0122-093-01',
|
||
'122-93B', 'C-0122-093-02', -- ???
|
||
'122-93C', 'C-0122-093-03',
|
||
'122-93D', 'C-0122-093-04',
|
||
'122-93E', 'C-0122-093-05', -- ???
|
||
'122-94A', 'C-0122-094-01',
|
||
'122-94B', 'C-0122-094-02',
|
||
'124-037Itter', 'C-0122-037-00',
|
||
'C-0' || aog.alg_gebouw_code || '-00')
|
||
costproject -- CostProjectExternalId
|
||
FROM mld_opdr o,
|
||
--fac_tracking t,
|
||
mld_melding m,
|
||
alg_v_allonrgoed_gegevens aog,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
ins_srtdiscipline sd,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoort ksv,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf b,
|
||
prs_perslid p
|
||
WHERE SUBSTR (o.mld_opdr_ordernr, 1, 10) = TO_CHAR (SYSDATE, 'yyyy-mm-dd')
|
||
--AND o.mld_statusopdr_key = 9 -- Afgerond
|
||
--AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
--AND t.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
--AND t.fac_tracking_datum < TRUNC (SYSDATE, 'mm') -- Voor 1e
|
||
AND o.mld_opdr_kosten > 0
|
||
AND o.mld_typeopdr_key != 103 -- Geen RFQs
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND p.prs_perslid_key(+) = 101
|
||
UNION ALL -- Somregel alle Verwerkte res_rsv_artikel zojuist gemarkeerd!
|
||
SELECT 'BPV' || TO_CHAR(FLOOR (td.ins_discipline_volgnr / 1000)) || '/' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyymm'),
|
||
p.prs_perslid_nr, -- AdministrationExternalId
|
||
'50800' costcentre, -- CostcentreExternalId
|
||
b.prs_leverancier_nr,
|
||
'Cateringkosten ' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||
omschrijving,
|
||
SUM (rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal)
|
||
price,
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm-dd')
|
||
deliverydate, -- Laatste dag voorgaande maand
|
||
'4181' costtype, -- CostTypeExternalId
|
||
NULL costproject
|
||
FROM res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
res_discipline td,
|
||
prs_bedrijf b,
|
||
prs_perslid p
|
||
WHERE TRUNC (rra.res_rsv_artikel_verwerkt) = TRUNC (SYSDATE)
|
||
--AND rra.res_status_bo_key = 6
|
||
--AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm') -- Voor 1e
|
||
--AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = td.ins_discipline_key
|
||
AND b.prs_bedrijf_key =
|
||
DECODE (FLOOR (td.ins_discipline_volgnr / 1000),
|
||
1, 153, -- Geleen t/m 27-08-2016/Sodexo
|
||
2, 4581, -- Geleen per 28-08-2016/Hutten
|
||
3, -1, -- Heerlen/Verde
|
||
-1)
|
||
AND p.prs_perslid_key(+) = 101 -- Pseudo-user
|
||
GROUP BY 'BPV' || TO_CHAR(FLOOR (td.ins_discipline_volgnr / 1000)) || '/' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyymm'),
|
||
p.prs_perslid_nr,
|
||
'50800',
|
||
b.prs_leverancier_nr,
|
||
'Cateringkosten ' || TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm'),
|
||
TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm-dd'),
|
||
'4181',
|
||
'C-0000-000-00' -- Algemene C-code!
|
||
ORDER BY 1;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_holiday NUMBER;
|
||
v_prijs NUMBER (9, 2);
|
||
v_bestand VARCHAR2 (12);
|
||
v_order_count NUMBER;
|
||
v_amount_sum NUMBER (10, 2);
|
||
BEGIN
|
||
v_bestand := SUBSTR (p_applname, 1, 12);
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = v_bestand;
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout bijwerken mld_opdr';
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_ordernr = TO_CHAR (SYSDATE, 'yyyy-mm-dd hh24:mi:ss')
|
||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||
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,
|
||
'Opdracht-verplichtingen');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_holiday
|
||
FROM mld_vrije_dagen
|
||
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1);
|
||
|
||
-- LET OP: ProQuro-export draait dagelijks na middernacht (begin van dag) en
|
||
-- voor de catering-verplichtingen is afgesproken dat deze maandelijks in de
|
||
-- nacht na 1e werkdag (was 2e) van de maand worden verwerkt.
|
||
-- 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) = 1
|
||
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
|
||
AND v_holiday = 0
|
||
THEN
|
||
FOR rec IN c2
|
||
LOOP
|
||
BEGIN
|
||
IF rec.res_status_bo_key = 2
|
||
THEN
|
||
v_errormsg := 'Fout bepalen res_rsv_artikel_prijs';
|
||
|
||
SELECT res.getartikelprijs (rec.res_rsv_artikel_key)
|
||
INTO v_prijs
|
||
FROM DUAL;
|
||
|
||
v_errormsg := 'Fout afmelden res_rsv_artikel';
|
||
|
||
UPDATE res_rsv_artikel
|
||
SET res_status_bo_key = 5,
|
||
res_rsv_artikel_prijs = v_prijs,
|
||
res_rsv_artikel_inkoopprijs =
|
||
(SELECT res_artikel_inkoopprijs
|
||
FROM res_artikel
|
||
WHERE res_artikel_key = rec.res_artikel_key),
|
||
res_rsv_artikel_btw =
|
||
(SELECT res_artikel_btw
|
||
FROM res_artikel
|
||
WHERE res_artikel_key = rec.res_artikel_key)
|
||
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
|
||
|
||
v_errormsg := 'Fout tracken afmelding';
|
||
|
||
fac.trackaction ('RESAFM',
|
||
rec.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
'Catering afgemeld');
|
||
END IF;
|
||
|
||
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_key = rec.res_rsv_artikel_key;
|
||
|
||
v_errormsg := 'Fout tracken verwerking';
|
||
|
||
fac.trackaction ('RESVER',
|
||
rec.res_rsv_ruimte_key,
|
||
NULL,
|
||
NULL,
|
||
'Catering verwerkt');
|
||
|
||
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,
|
||
'Catering-verplichtingen');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
END IF;
|
||
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
FOR rec IN c3
|
||
LOOP
|
||
BEGIN
|
||
v_order_count := v_order_count + 1;
|
||
v_amount_sum := v_amount_sum + rec.price;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF v_order_count > 0
|
||
THEN
|
||
--blcc_add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>'); -- ???
|
||
blcc_add_xml_row (v_bestand, '<Orders>');
|
||
FOR rec IN c3
|
||
LOOP
|
||
BEGIN
|
||
--blcc_add_xml_row (v_bestand, '<AddOrder>');
|
||
blcc_add_xml_row (v_bestand, '<Order>');
|
||
--blcc_add_xml_element (v_bestand, 'securityKey', 'xxx');
|
||
--blcc_add_xml_row (v_bestand, '<parms>');
|
||
blcc_add_xml_element (v_bestand, 'ExternalId', rec.externalid);
|
||
blcc_add_xml_element (v_bestand, 'AdministrationExternalId', rec.prs_perslid_nr); -- Personeelsnummer van API-user
|
||
blcc_add_xml_element (v_bestand, 'OrderTypeId', '9'); -- Hard op '9'
|
||
blcc_add_xml_element (v_bestand, 'ProcessExternalId', '7'); -- Hard op '7'
|
||
blcc_add_xml_element (v_bestand, 'CostcentreExternalId', rec.costcentre); -- Kostenplaats van opdracht
|
||
blcc_add_xml_element (v_bestand, 'ProductgroupExternalId', '1'); -- Hard op '1'
|
||
blcc_add_xml_element (v_bestand, 'SupplierExternalId', rec.prs_leverancier_nr);
|
||
blcc_add_xml_element (v_bestand, 'ProForma', 'False'); -- Hard op 'False'
|
||
blcc_add_xml_row (v_bestand, '<OrderLines>');
|
||
blcc_add_xml_row (v_bestand, '<OrderLine>');
|
||
blcc_add_xml_element (v_bestand, 'LineId', '1'); -- Hard op '1'
|
||
--blcc_add_xml_element (v_bestand, 'ArticleSupplierExternalId', '');
|
||
blcc_add_xml_element (v_bestand, 'ProductName', rec.omschrijving);
|
||
blcc_add_xml_element (v_bestand, 'Quantity', '1'); -- Hard op '1'
|
||
blcc_add_xml_element (v_bestand, 'Price', TO_CHAR (rec.price));
|
||
blcc_add_xml_element (v_bestand, 'CurrencyExternalId', 'EUR'); -- Hard op 'EUR'
|
||
blcc_add_xml_element (v_bestand, 'OrderUnitExternalId', 'Stuks'); -- Hard op 'Stuks'
|
||
blcc_add_xml_element (v_bestand, 'VatExternalId', 'IH'); -- Hard op 'IH'
|
||
blcc_add_xml_element (v_bestand, 'DeliveryDate', rec.deliverydate); -- ORDAFM of laatste dag van maand voor RES
|
||
blcc_add_xml_element (v_bestand, 'CostTypeExternalId', rec.costtype); -- Kostensoort uit soortmelding
|
||
blcc_add_xml_element (v_bestand, 'CostProjectExternalId', rec.costproject); -- Transformatie van MLD-Gebouwcode
|
||
blcc_add_xml_row (v_bestand, '</OrderLine>');
|
||
blcc_add_xml_row (v_bestand, '</OrderLines>');
|
||
--blcc_add_xml_row (v_bestand, '</parms>');
|
||
--blcc_add_xml_row (v_bestand, '</AddOrder>');
|
||
blcc_add_xml_row (v_bestand, '</Order>');
|
||
END;
|
||
END LOOP;
|
||
blcc_add_xml_row (v_bestand, '</Orders>');
|
||
END IF;
|
||
|
||
fac.writelog (
|
||
p_applname,
|
||
'S',
|
||
'ProQuro export/#regels: '
|
||
|| TO_CHAR (v_order_count),
|
||
TO_CHAR (v_amount_sum));
|
||
END;
|
||
/
|
||
|
||
|
||
--BLCC#38809: SSC uitsluiten:
|
||
-- - Voor opdrachten gaat dat goed, want Doorbelasten-vinkje alleen
|
||
-- gebruikt binnen BCC (niet helemaal toekomstvast)!
|
||
-- - Voor reserveringen alleen regels als volgnr 1000 t/m 2999!
|
||
/* Formatted on 11-9-2015 9:16:18 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW blcc_v_rap_tf_actual
|
||
(
|
||
fclt_x_maand,
|
||
fclt_x_debiteur,
|
||
factuurtype,
|
||
debiteur,
|
||
nummer,
|
||
factuurdatum,
|
||
vervaldatum,
|
||
kop,
|
||
voet,
|
||
valuta,
|
||
aantal,
|
||
artikel,
|
||
subartikel,
|
||
omschrijving,
|
||
artikelprijs_excl,
|
||
artikelprijs_incl,
|
||
btw,
|
||
grootboek,
|
||
vrij_tekstveld_1,
|
||
vrij_tekstveld_2,
|
||
vrij_tekstveld_3
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy-mm'),
|
||
(SELECT prs_afdeling_omschrijving
|
||
|| ' ['
|
||
|| kl.prs_kenmerklink_waarde
|
||
|| ']'
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_key = kl.prs_link_key)
|
||
debiteur_oms,
|
||
'FACTUUR',
|
||
kl.prs_kenmerklink_waarde, -- Debiteur
|
||
NULL,
|
||
'Lopend',
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
'EUR',
|
||
1,
|
||
0, -- Eenmalig artikel
|
||
NULL,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| TO_CHAR (o.mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
|| ' ['
|
||
|| td.ins_discipline_omschrijving
|
||
|| '/'
|
||
|| sm.mld_stdmelding_omschrijving
|
||
|| ']'
|
||
|| DECODE (km.mld_kenmerkmelding_waarde, NULL, '', ' (=' || km.mld_kenmerkmelding_waarde || ')'),
|
||
o.mld_opdr_kosten,
|
||
NULL,
|
||
'VH',
|
||
COALESCE (ksm.prs_kostensoort_refcode, ksv.prs_kostensoort_refcode),
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM mld_opdr o,
|
||
fac_tracking t,
|
||
mld_v_aanwezigkenmerkopdr ko,
|
||
mld_kenmerk k,
|
||
mld_melding m,
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkmelding
|
||
WHERE mld_kenmerk_key = 241) km, -- Refnr. aanvrager
|
||
prs_perslid p,
|
||
prs_v_afdeling_boom ab,
|
||
prs_kenmerklink kl,
|
||
alg_v_allonrgoed_gegevens og,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
ins_srtdiscipline sd,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoort ksv,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf b
|
||
WHERE o.mld_statusopdr_key = 9 -- Afgerond
|
||
--AND o.mld_opdr_ordernr IS NULL Sommige wel, sommige niet!
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND o.mld_opdr_key = ko.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key = 61 -- Doorbelasten-vinkje
|
||
AND k.mld_srtkenmerk_key = 241 -- Doorbelasten-Ja/Nee
|
||
AND ko.mld_kenmerkopdr_waarde = '281' -- Ja
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_melding_key = km.mld_melding_key(+)
|
||
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+)
|
||
AND kl.prs_kenmerklink_niveau(+) = 'A'
|
||
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
UNION ALL -- Catering gegroepeerd per debiteur/kostensoort!
|
||
SELECT TO_CHAR (reslev, 'yyyy-mm'),
|
||
debiteur_oms,
|
||
'FACTUUR',
|
||
debiteur,
|
||
NULL,
|
||
'Lopend',
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
'EUR',
|
||
1,
|
||
0, -- Eenmalig artikel
|
||
NULL,
|
||
'Cateringkosten ' || TO_CHAR (reslev, 'yyyy-mm'),
|
||
SUM (verw_prijs),
|
||
NULL,
|
||
'VH',
|
||
prs_kostensoort_refcode,
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
res_id,
|
||
kl.prs_kenmerklink_waarde debiteur,
|
||
(SELECT prs_afdeling_omschrijving
|
||
|| ' ['
|
||
|| kl.prs_kenmerklink_waarde
|
||
|| ']'
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_key = kl.prs_link_key)
|
||
debiteur_oms,
|
||
ks.prs_kostensoort_refcode,
|
||
res_rsv_artikel_key res_item_key,
|
||
LTRIM (ra.res_artikel_omschrijving)
|
||
|| ' ('
|
||
|| COALESCE (ra.res_artikel_eenheid, '')
|
||
|| ')'
|
||
res_voorziening,
|
||
--rra.res_rsv_artikel_aantal aantal,
|
||
--ra.res_artikel_prijs stuksprijs,
|
||
rra.res_rsv_artikel_levering reslev,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs
|
||
FROM res_rsv_ruimte rrr,
|
||
prs_perslid p,
|
||
prs_v_afdeling_boom ab,
|
||
prs_kenmerklink kl,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
res_discipline rd,
|
||
prs_kostensoort ks
|
||
WHERE rrr.alg_ruimte_key IS NULL -- Combi catering
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+)
|
||
AND kl.prs_kenmerklink_niveau(+) = 'A'
|
||
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
--AND rra.res_status_bo_key = 5 Sommige wel, sommige niet!
|
||
--AND (rra.res_rsv_artikel_verwerkt IS NULL
|
||
-- OR rra.res_rsv_artikel_verwerkt > SYSDATE - 5) -- Op 5e Verwerkt en pas op 10e naar Twinfield!
|
||
AND rra.res_rsv_artikel_verwerkt IS NULL
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = rd.ins_discipline_key
|
||
AND rd.ins_discipline_volgnr >= 1000 -- Gedefinieerde catalogi
|
||
AND rd.ins_discipline_volgnr <= 2999 -- 1Sodexo/2Hutten/3VerdeNIET
|
||
--AND ks.prs_kostensoort_doorbelasten(+) = 1
|
||
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND rra.res_rsv_artikel_levering < SYSDATE
|
||
UNION ALL
|
||
SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
resid,
|
||
kl.prs_kenmerklink_waarde debiteur,
|
||
(SELECT prs_afdeling_omschrijving
|
||
|| ' ['
|
||
|| kl.prs_kenmerklink_waarde
|
||
|| ']'
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_key = kl.prs_link_key)
|
||
debiteur_oms,
|
||
ks.prs_kostensoort_refcode,
|
||
res_rsv_artikel_key res_item_key,
|
||
LTRIM (ra.res_artikel_omschrijving)
|
||
|| ' ('
|
||
|| COALESCE (ra.res_artikel_eenheid, '')
|
||
|| ')'
|
||
res_voorziening,
|
||
--rra.res_rsv_artikel_aantal aantal,
|
||
--ra.res_artikel_prijs stuksprijs,
|
||
rra.res_rsv_artikel_levering reslev,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs
|
||
FROM res_rsv_ruimte rrr,
|
||
prs_perslid p,
|
||
prs_v_afdeling_boom ab,
|
||
prs_kenmerklink kl,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
res_discipline rd,
|
||
prs_kostensoort ks
|
||
WHERE rrr.res_ruimte_opstel_key IS NULL -- Losse catering
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+)
|
||
AND kl.prs_kenmerklink_niveau(+) = 'A'
|
||
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
--AND rra.res_status_bo_key = 5 Sommige wel, sommige niet!
|
||
--AND (rra.res_rsv_artikel_verwerkt IS NULL
|
||
-- OR rra.res_rsv_artikel_verwerkt > SYSDATE - 5) -- Op 5e Verwerkt en pas op 10e naar Twinfield!
|
||
AND rra.res_rsv_artikel_verwerkt IS NULL
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = rd.ins_discipline_key
|
||
AND rd.ins_discipline_volgnr >= 1000 -- Gedefinieerde catalogi
|
||
AND rd.ins_discipline_volgnr <= 2999 -- 1Sodexo/2Hutten/3VerdeNIET
|
||
--AND ks.prs_kostensoort_doorbelasten(+) = 1
|
||
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
AND rra.res_rsv_artikel_levering < SYSDATE)
|
||
GROUP BY TO_CHAR (reslev, 'yyyy-mm'),
|
||
debiteur_oms,
|
||
debiteur,
|
||
prs_kostensoort_refcode;
|
||
|
||
/* Formatted on 17-9-2015 10:40:20 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW blcc_v_rap_tf_frozen
|
||
(
|
||
fclt_x_maand,
|
||
fclt_x_debiteur,
|
||
factuurtype,
|
||
debiteur,
|
||
nummer,
|
||
factuurdatum,
|
||
vervaldatum,
|
||
kop,
|
||
voet,
|
||
valuta,
|
||
aantal,
|
||
artikel,
|
||
subartikel,
|
||
omschrijving,
|
||
artikelprijs_excl,
|
||
artikelprijs_incl,
|
||
btw,
|
||
grootboek,
|
||
vrij_tekstveld_1,
|
||
vrij_tekstveld_2,
|
||
vrij_tekstveld_3
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy-mm'),
|
||
(SELECT prs_afdeling_omschrijving || ' [' || kl.prs_kenmerklink_waarde || ']'
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_key = kl.prs_link_key)
|
||
debiteur_oms,
|
||
'FACTUUR',
|
||
kl.prs_kenmerklink_waarde,
|
||
NULL,
|
||
TO_CHAR (t.fac_tracking_datum, 'dd-mm-yyyy'),
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
'EUR',
|
||
1,
|
||
0, -- Eenmalig artikel
|
||
NULL,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| TO_CHAR (o.mld_melding_key)
|
||
|| '/'
|
||
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|
||
|| ' ['
|
||
|| td.ins_discipline_omschrijving
|
||
|| '/'
|
||
|| sm.mld_stdmelding_omschrijving
|
||
|| ']'
|
||
|| DECODE (km.mld_kenmerkmelding_waarde, NULL, '', ' (=' || km.mld_kenmerkmelding_waarde || ')'),
|
||
o.mld_opdr_kosten,
|
||
NULL,
|
||
'VH',
|
||
COALESCE (ksm.prs_kostensoort_refcode, ksv.prs_kostensoort_refcode),
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM mld_opdr o,
|
||
fac_tracking t,
|
||
mld_v_aanwezigkenmerkopdr ko,
|
||
mld_kenmerk k,
|
||
mld_melding m,
|
||
(SELECT *
|
||
FROM mld_v_aanwezigkenmerkmelding
|
||
WHERE mld_kenmerk_key = 241) km, -- Refnr. aanvrager
|
||
prs_perslid p,
|
||
prs_v_afdeling_boom ab,
|
||
prs_kenmerklink kl,
|
||
alg_v_allonrgoed_gegevens og,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
ins_srtdiscipline sd,
|
||
prs_kostensoort ksm,
|
||
prs_kostensoort ksv,
|
||
prs_kostenplaats kp,
|
||
prs_bedrijf b
|
||
WHERE o.mld_opdr_ordernr IS NOT NULL -- Zou zo moeten zijn!
|
||
AND o.mld_statusopdr_key = 7 -- Zou zo moeten zijn!
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND o.mld_opdr_key = ko.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key = 61 -- Doorbelasten-vinkje
|
||
AND k.mld_srtkenmerk_key = 241 -- Doorbelasten-Ja/Nee
|
||
AND ko.mld_kenmerkopdr_waarde = '281' -- Ja
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_melding_key = km.mld_melding_key(+)
|
||
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+)
|
||
AND kl.prs_kenmerklink_niveau(+) = 'A'
|
||
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
|
||
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
|
||
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
UNION ALL -- Catering gegroepeerd per debiteur/kostensoort!
|
||
SELECT TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'),
|
||
debiteur_oms,
|
||
'FACTUUR',
|
||
debiteur,
|
||
NULL,
|
||
TO_CHAR (TRUNC (resver, 'mm') - 1, 'dd-mm-yyyy'),
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
'EUR',
|
||
1,
|
||
0, -- Eenmalig artikel
|
||
NULL,
|
||
'Cateringkosten ' || TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'),
|
||
SUM (verw_prijs),
|
||
NULL,
|
||
'VH',
|
||
prs_kostensoort_refcode,
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
res_id,
|
||
kl.prs_kenmerklink_waarde debiteur,
|
||
(SELECT prs_afdeling_omschrijving || ' [' || kl.prs_kenmerklink_waarde || ']'
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_key = kl.prs_link_key)
|
||
debiteur_oms,
|
||
ks.prs_kostensoort_refcode,
|
||
--TRUNC (rra.res_rsv_artikel_levering) lev_datum,
|
||
--ra.res_discipline_key res_ins_discipline_key,
|
||
res_rsv_artikel_key res_item_key,
|
||
LTRIM (ra.res_artikel_omschrijving) || ' (' || COALESCE (ra.res_artikel_eenheid, '') || ')'
|
||
res_voorziening,
|
||
--rra.res_rsv_artikel_aantal aantal,
|
||
--ra.res_artikel_prijs stuksprijs,
|
||
rra.res_rsv_artikel_verwerkt resver,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs
|
||
FROM res_rsv_ruimte rrr,
|
||
prs_perslid p,
|
||
prs_v_afdeling_boom ab,
|
||
prs_kenmerklink kl,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
res_discipline rd,
|
||
prs_kostensoort ks
|
||
WHERE rrr.alg_ruimte_key IS NULL -- Combi catering
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+)
|
||
AND kl.prs_kenmerklink_niveau(+) = 'A'
|
||
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_status_bo_key = 6 -- AV
|
||
--AND rra.res_rsv_artikel_verwerkt < SYSDATE - 5 -- Op 5e Verwerkt en pas op 10e naar Twinfield!
|
||
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = rd.ins_discipline_key
|
||
--AND ks.prs_kostensoort_doorbelasten(+) = 1
|
||
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
||
UNION ALL
|
||
SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
|
||
resid,
|
||
kl.prs_kenmerklink_waarde debiteur,
|
||
(SELECT prs_afdeling_omschrijving || ' [' || kl.prs_kenmerklink_waarde || ']'
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_key = kl.prs_link_key)
|
||
debiteur_oms,
|
||
ks.prs_kostensoort_refcode,
|
||
--TRUNC (rra.res_rsv_artikel_levering) lev_datum,
|
||
--ra.res_discipline_key res_ins_discipline_key,
|
||
res_rsv_artikel_key res_item_key,
|
||
LTRIM (ra.res_artikel_omschrijving) || ' (' || COALESCE (ra.res_artikel_eenheid, '') || ')'
|
||
res_voorziening,
|
||
--rra.res_rsv_artikel_aantal aantal,
|
||
--ra.res_artikel_prijs stuksprijs,
|
||
rra.res_rsv_artikel_verwerkt resver,
|
||
rra.res_rsv_artikel_prijs verw_prijs,
|
||
rra.res_rsv_artikel_aantal * ra.res_artikel_prijs prijs
|
||
FROM res_rsv_ruimte rrr,
|
||
prs_perslid p,
|
||
prs_v_afdeling_boom ab,
|
||
prs_kenmerklink kl,
|
||
res_v_aanwezigrsv_artikel rra,
|
||
res_artikel ra,
|
||
res_discipline rd,
|
||
prs_kostensoort ks
|
||
WHERE rrr.res_ruimte_opstel_key IS NULL -- Losse catering
|
||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND COALESCE (ab.prs_afdeling_key2, ab.prs_afdeling_key) = kl.prs_link_key(+)
|
||
AND kl.prs_kenmerklink_niveau(+) = 'A'
|
||
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rra.res_status_bo_key = 6 -- AV
|
||
--AND rra.res_rsv_artikel_verwerkt < SYSDATE - 5 -- Op 5e Verwerkt en pas op 10e naar Twinfield!
|
||
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
|
||
AND rra.res_artikel_key = ra.res_artikel_key
|
||
AND ra.res_discipline_key = rd.ins_discipline_key
|
||
--AND ks.prs_kostensoort_doorbelasten(+) = 1
|
||
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+))
|
||
GROUP BY TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'),
|
||
debiteur_oms,
|
||
debiteur,
|
||
TO_CHAR (TRUNC (resver, 'mm') - 1, 'dd-mm-yyyy'),
|
||
prs_kostensoort_refcode;
|
||
|
||
/* Formatted on 30-9-2015 10:15:45 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW blcc_v_export_twinfield
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS -- View bevat alleen inhoud op de dag na de 2e werkdag van de maand!
|
||
SELECT 'factuurtype'
|
||
|| ';debiteur'
|
||
|| ';nummer'
|
||
|| ';factuurdatum'
|
||
|| ';vervaldatum'
|
||
|| ';kop'
|
||
|| ';voet'
|
||
|| ';valuta'
|
||
|| ';aantal'
|
||
|| ';artikel'
|
||
|| ';subartikel'
|
||
|| ';omschrijving'
|
||
|| ';artikelprijs_excl'
|
||
|| ';artikelprijs_incl'
|
||
|| ';btw'
|
||
|| ';grootboek'
|
||
|| ';vrij_tekstveld_1'
|
||
|| ';vrij_tekstveld_2'
|
||
|| ';vrij_tekstveld_3',
|
||
0
|
||
FROM DUAL
|
||
WHERE FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1
|
||
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_vrije_dagen
|
||
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1))
|
||
UNION ALL
|
||
SELECT factuurtype
|
||
|| ';'
|
||
|| debiteur
|
||
|| ';'
|
||
|| nummer
|
||
|| ';'
|
||
|| factuurdatum
|
||
|| ';'
|
||
|| vervaldatum
|
||
|| ';'
|
||
|| kop
|
||
|| ';'
|
||
|| voet
|
||
|| ';'
|
||
|| valuta
|
||
|| ';'
|
||
|| aantal
|
||
|| ';'
|
||
|| artikel
|
||
|| ';'
|
||
|| subartikel
|
||
|| ';'
|
||
|| omschrijving
|
||
|| ';'
|
||
|| artikelprijs_excl
|
||
|| ';'
|
||
|| artikelprijs_incl
|
||
|| ';'
|
||
|| btw
|
||
|| ';'
|
||
|| grootboek
|
||
|| ';'
|
||
|| vrij_tekstveld_1
|
||
|| ';'
|
||
|| vrij_tekstveld_2
|
||
|| ';'
|
||
|| vrij_tekstveld_3,
|
||
ROWNUM
|
||
FROM ( SELECT factuurtype,
|
||
debiteur,
|
||
nummer,
|
||
factuurdatum,
|
||
vervaldatum,
|
||
kop,
|
||
voet,
|
||
valuta,
|
||
aantal,
|
||
artikel,
|
||
subartikel,
|
||
omschrijving,
|
||
artikelprijs_excl,
|
||
artikelprijs_incl,
|
||
btw,
|
||
grootboek,
|
||
vrij_tekstveld_1,
|
||
vrij_tekstveld_2,
|
||
vrij_tekstveld_3
|
||
FROM blcc_v_rap_tf_frozen
|
||
WHERE fclt_x_maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||
ORDER BY debiteur,
|
||
fclt_x_maand || '-' || SUBSTR (factuurdatum, 1, 2),
|
||
grootboek)
|
||
WHERE FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1
|
||
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_vrije_dagen
|
||
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1));
|
||
|
||
/* Formatted on 30-9-2015 10:20:30 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE blcc_select_twinfield (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- Verwerken te exporteren opdracht-verkoop (<28>n de rest)!
|
||
CURSOR c1
|
||
IS
|
||
SELECT '[' || TO_CHAR (o.mld_melding_key) || '|' || TO_CHAR (o.mld_opdr_key) || '] '
|
||
aanduiding,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_kosten,
|
||
--k.mld_kenmerk_key,
|
||
DECODE (ko.mld_kenmerkopdr_waarde, '281', 1, 0) doorbelasten
|
||
FROM mld_opdr o,
|
||
fac_tracking t,
|
||
mld_v_aanwezigkenmerkopdr ko,
|
||
--mld_kenmerk k
|
||
(SELECT * FROM mld_kenmerk WHERE mld_srtkenmerk_key = 241) k -- Doorbelasten-Ja/Nee
|
||
WHERE o.mld_opdr_ordernr IS NOT NULL -- Reeds doorgezet naar ProQuro (of 0)
|
||
AND o.mld_statusopdr_key = 9 -- Afgerond
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 70 -- ORDAFR
|
||
AND t.fac_tracking_datum < TRUNC (SYSDATE, 'mm')
|
||
--AND o.mld_opdr_kosten > 0 -- Allemaal, ook als kosten=0
|
||
AND o.mld_opdr_key = ko.mld_opdr_key(+)
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key(+);
|
||
|
||
CURSOR c2
|
||
IS
|
||
SELECT '[' || debiteur || '] '
|
||
aanduiding,
|
||
artikelprijs_excl
|
||
FROM blcc_v_rap_tf_frozen
|
||
WHERE fclt_x_maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm')
|
||
AND omschrijving LIKE 'Cateringkosten%';
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_holiday NUMBER;
|
||
v_order_count NUMBER;
|
||
v_amount_sum NUMBER (10, 2);
|
||
BEGIN
|
||
v_order_count := 0;
|
||
v_amount_sum := 0;
|
||
|
||
-- Eerst opruiming
|
||
DELETE FROM imp_log
|
||
WHERE imp_log_applicatie = p_applname;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_holiday
|
||
FROM mld_vrije_dagen
|
||
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1);
|
||
|
||
-- LET OP: Twinfield-export draait dagelijks na middernacht (begin van dag)
|
||
-- en de verkoop wordt maandelijks alleen in de nacht na 1e werkdag (was 2e)
|
||
-- van de maand doorgezet.
|
||
-- 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) = 1
|
||
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
|
||
AND v_holiday = 0
|
||
THEN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout verwerken mld_opdr';
|
||
|
||
MLD.setopdrachtstatus (rec.mld_opdr_key, 7, NULL);
|
||
|
||
v_errormsg := 'Fout meetellen mld_opdr';
|
||
|
||
--IF rec.mld_kenmerk_key IS NOT NULL
|
||
IF rec.doorbelasten = 1
|
||
THEN
|
||
v_order_count := v_order_count + 1;
|
||
v_amount_sum := v_amount_sum + rec.mld_opdr_kosten;
|
||
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,
|
||
'Opdracht-verkoop');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
FOR rec IN c2
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout meetellen res_rsv_artikel';
|
||
|
||
v_order_count := v_order_count + 1;
|
||
v_amount_sum := v_amount_sum + rec.artikelprijs_excl;
|
||
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,
|
||
'Catering-verkoop');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname,
|
||
'S',
|
||
'Twinfield export/#regels: ' || TO_CHAR (v_order_count),
|
||
TO_CHAR (v_amount_sum));
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
|
||
/* Formatted on 29-6-2016 18:42:24 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE blcc_import_perslid (p_import_key IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
v_errorhint VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
v_errorhint := 'Generieke import ' || TO_CHAR (p_import_key);
|
||
|
||
-- Afdelingscode-kolom hard op 'XxX' indien leeg (want verplicht)!
|
||
UPDATE fac_imp_file
|
||
SET fac_imp_file_line =
|
||
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 2))
|
||
|| 'XxX'
|
||
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 3))
|
||
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1
|
||
AND SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 2)
|
||
+ 1, INSTR (fac_imp_file_line, ';', 1, 3)
|
||
- INSTR (fac_imp_file_line, ';', 1, 2)
|
||
- 1) IS NULL;
|
||
|
||
COMMIT;
|
||
|
||
-- Functie-kolom negeren en hard op 'Medewerker' (want verplicht)!
|
||
UPDATE fac_imp_file i
|
||
SET fac_imp_file_line =
|
||
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 10))
|
||
|| 'Medewerker'
|
||
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 11))
|
||
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
||
|
||
COMMIT;
|
||
|
||
-- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE.
|
||
prs.import_perslid (
|
||
p_import_key,
|
||
'0;0;0;0;0;0;3;4;5;6;'
|
||
|| '0;0;0;0;10;7;8;9;0;0;'
|
||
|| '11;1;2;0;0;0;12;13;14;15;'
|
||
|| '16;17;18;0;0;0;0;0;0;0;'
|
||
|| '0;0;0;0;0;0',
|
||
'Loginnaam;Wachtwoord;Afdelingscode;Achternaam;Tussenvoegsel;Voornaam;Telefoon;Mobiel;Email;Geslacht;Functie;Taal;SSC FOBO;SSC Digireceptiemedewerker;SSC Huurderadministrator%');
|
||
|
||
-- Klantspecifieke aanpassingen.
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ') ';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg || v_errorhint,
|
||
'Inleesproces personen afgebroken!');
|
||
END blcc_import_perslid;
|
||
/
|
||
|
||
/* Formatted on 30-6-2016 12:30:30 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE blcc_update_perslid (p_import_key IN NUMBER)
|
||
AS
|
||
-- Verwijderen personen niet in import voor afdelingen wel in import!
|
||
CURSOR c_del
|
||
IS
|
||
SELECT p.prs_perslid_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
||
WHERE (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
|
||
AND p.prs_perslid_oslogin2 IS NULL
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_perslid i
|
||
WHERE UPPER (i.prs_afdeling_naam) = a.prs_afdeling_upper)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_perslid i
|
||
WHERE UPPER (i.prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin))
|
||
ORDER BY 1;
|
||
|
||
-- Bijwerken werkplek van personen naar '_' (als nog geen werkplek)!
|
||
CURSOR c_wp
|
||
IS
|
||
SELECT p.prs_perslid_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
||
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslidwerkplek pw
|
||
WHERE pw.prs_perslid_key = p.prs_perslid_key)
|
||
ORDER BY 1;
|
||
|
||
-- Bijwerken language van personen naar 'EN' (volgens importbestand)!
|
||
CURSOR c_lang
|
||
IS
|
||
SELECT p.prs_perslid_key, DECODE (i.prs_kenmerk1, 'EN', 'EN', 'NL') lang
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
||
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
||
ORDER BY 1;
|
||
|
||
-- Bijwerken autorisatiegroepen van personen (volgens importbestand)!
|
||
CURSOR c_rol (
|
||
p_ssc_fobo_key IN NUMBER,
|
||
p_ssc_dmedew_key IN NUMBER,
|
||
p_ssc_hadmin_key IN NUMBER)
|
||
IS
|
||
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk2), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_fobo_key fac_groep_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
||
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
||
UNION ALL
|
||
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk3), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_dmedew_key fac_groep_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
||
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
||
UNION ALL
|
||
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk4), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_hadmin_key fac_groep_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
||
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
||
UNION ALL -- Afnemen _Default
|
||
SELECT p.prs_perslid_key, 0 aanuit, 1 fac_groep_key -- _Default
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
||
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
||
UNION ALL -- Toewijzen SSC FE (LABS-key=241 en PROD-key=321)
|
||
SELECT p.prs_perslid_key, 1 aanuit, 321 fac_groep_key -- SSC FE
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
|
||
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
|
||
ORDER BY 1, 3;
|
||
|
||
c_ruimte_key NUMBER := 2204; -- Fictieve ruimte op SSCH-locatie (LABS-key=2243 en PROD-key=2204)
|
||
c_ssc_fobo_key NUMBER := 341; -- SSC FOBO (LABS-key=241 en PROD-key=341)
|
||
c_ssc_dmedew_key NUMBER := 361; -- SSC Digireceptiemedewerker
|
||
c_ssc_hadmin_key NUMBER := 362; -- SSC Huurderadministrator
|
||
v_bedrijf_key NUMBER (10) := -1;
|
||
v_afdeling_naam VARCHAR2 (15) := '';
|
||
BEGIN
|
||
-- Als import door Huurderadministrator, dan Afdelingscode-kolom negeren en hard op Afdeling-1 van Huurderadministrator!
|
||
SELECT ab.prs_bedrijf_key, a.prs_afdeling_naam
|
||
INTO v_bedrijf_key, v_afdeling_naam
|
||
FROM fac_import i, prs_v_aanwezigperslid p, prs_afdeling a, prs_v_afdeling_boom ab
|
||
WHERE i.fac_import_key = p_import_key
|
||
AND i.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_key = ab.prs_afdeling_key;
|
||
|
||
IF v_bedrijf_key IN (1981, 2442) -- LABS-key+PROD-key van Huurders SSC-bedrijf; TODO: LABS-key nog een keer verwijderen!
|
||
THEN -- Import door Huurderadministrator!
|
||
UPDATE fac_imp_perslid
|
||
SET prs_afdeling_naam = v_afdeling_naam;
|
||
ELSE -- Import door andere administrator!
|
||
UPDATE fac_imp_perslid
|
||
SET prs_afdeling_naam = NULL
|
||
WHERE prs_afdeling_naam = 'XxX';
|
||
END IF;
|
||
|
||
COMMIT;
|
||
|
||
-- Generieke update.
|
||
prs.update_perslid (p_import_key, 'LOGIN', NULL);
|
||
|
||
-- Verwijderen personen niet in import voor afdelingen wel in import!
|
||
FOR rec IN c_del
|
||
LOOP
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
-- Toekennen fictieve werkplek op SSCH-locatie (voor wie daar nog niet een
|
||
-- werkplek heeft)!
|
||
-- Bijwerken werkplek van personen naar '_' (als nog geen werkplek)!
|
||
FOR rec IN c_wp
|
||
LOOP
|
||
prs.movetoruimte (rec.prs_perslid_key, c_ruimte_key, NULL);
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
-- Bijwerken language van personen naar 'EN' (volgens importbestand)!
|
||
FOR rec IN c_lang
|
||
LOOP
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_lang = rec.lang
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
-- Bijwerken autorisatiegroepen van personen (volgens importbestand)!
|
||
FOR rec IN c_rol (c_ssc_fobo_key, c_ssc_dmedew_key, c_ssc_hadmin_key)
|
||
LOOP
|
||
IF rec.aanuit = 1
|
||
THEN
|
||
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||
SELECT rec.fac_groep_key, rec.prs_perslid_key
|
||
FROM DUAL
|
||
WHERE NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = rec.fac_groep_key
|
||
AND prs_perslid_key = rec.prs_perslid_key);
|
||
ELSE
|
||
DELETE FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = rec.fac_groep_key
|
||
AND prs_perslid_key = rec.prs_perslid_key;
|
||
END IF;
|
||
END LOOP;
|
||
END blcc_update_perslid;
|
||
/
|
||
|
||
|
||
-- BLCC#38235: Import vanuit Strukton
|
||
/* Formatted on 22-5-2015 11:52:44 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE PROCEDURE blcc_import_opdrstat_strukton (p_import_key IN NUMBER)
|
||
AS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (1000) := '';
|
||
header_is_valid NUMBER := 0;
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_imp NUMBER (10) := 0;
|
||
v_ongeldig NUMBER (1) := 0;
|
||
-- De importvelden
|
||
v_mld_opdr_key_tekst VARCHAR2 (100);
|
||
v_mld_opdr_key NUMBER (10);
|
||
v_mld_opdr_opmerking VARCHAR2 (4000);
|
||
v_extern_nummer VARCHAR2 (100);
|
||
v_status_code VARCHAR2 (100);
|
||
v_status NUMBER (10);
|
||
v_datumtijd_tekst VARCHAR2 (100);
|
||
v_datumtijd DATE;
|
||
v_status_tekst VARCHAR2 (100);
|
||
v_opmerking VARCHAR2 (4000);
|
||
|
||
-- Overige velden:
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
DELETE FROM blcc_imp_opdrstat_strukton;
|
||
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
|
||
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_opmerking);
|
||
v_opmerking := SUBSTR (v_opmerking, 1, 1000);
|
||
-- Verwijder de markering voor cr/lf die in stylesheet is toegevoegd.
|
||
v_opmerking := REPLACE (v_opmerking, '@@', CHR (13));
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_mld_opdr_key_tekst
|
||
|| '|'
|
||
|| v_extern_nummer
|
||
|| '|'
|
||
|| v_status_code
|
||
|| '|'
|
||
|| v_datumtijd_tekst
|
||
|| '|'
|
||
|| v_status_tekst
|
||
|| '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF header_is_valid = 0
|
||
THEN
|
||
IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID'
|
||
AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID'
|
||
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
|
||
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
|
||
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
-- Controleer alle veldwaarden
|
||
v_errormsg := 'Fout bepalen opdracht';
|
||
v_mld_opdr_key := TRIM (v_mld_opdr_key);
|
||
|
||
BEGIN
|
||
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
|
||
INTO v_mld_opdr_key, v_mld_opdr_opmerking
|
||
FROM mld_opdr o,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
ins_srtdiscipline sd
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_prefix
|
||
|| m.mld_melding_key
|
||
|| '/'
|
||
|| o.mld_opdr_bedrijfopdr_volgnr =
|
||
v_mld_opdr_key_tekst;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_ongeldig := 1;
|
||
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_import_key, 'W', v_aanduiding || v_errormsg, '');
|
||
END;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Fout bepalen status';
|
||
|
||
CASE
|
||
WHEN v_status_code = '5'
|
||
THEN
|
||
v_status := 5; -- uitgegeven
|
||
WHEN v_status_code = '10'
|
||
THEN
|
||
v_status := 8; -- geaccepteerd
|
||
WHEN v_status_code = '20' -- monteur gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '25' -- specialist gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '30' -- technisch gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
-- For future use
|
||
--WHEN v_status_code = '40' -- uitgeprijst
|
||
--THEN
|
||
-- v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '70'
|
||
THEN
|
||
v_status := 1; -- geannuleerd
|
||
WHEN v_status_code = '80'
|
||
THEN
|
||
v_status := 1; -- afgewezen
|
||
ELSE
|
||
v_status := NULL;
|
||
v_ongeldig := 1; -- nog te bezien
|
||
END CASE;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Fout converteren datumtijd';
|
||
|
||
IF INSTR (v_datumtijd_tekst, '.') > 0
|
||
THEN
|
||
v_datumtijd :=
|
||
fac.safe_to_date (
|
||
REPLACE (
|
||
SUBSTR (v_datumtijd_tekst,
|
||
1,
|
||
INSTR (v_datumtijd_tekst, '.') - 1),
|
||
'T',
|
||
' '),
|
||
'yyyy-mm-dd hh24:mi:ss');
|
||
ELSE
|
||
v_datumtijd :=
|
||
fac.safe_to_date (v_datumtijd_tekst,
|
||
'yyyy-mm-dd hh24:mi:ss');
|
||
END IF;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Fout aanvullen opmerking';
|
||
|
||
-- controleer of de opmerking niet leeg is en of dezelfde opmerking al bij een eerdere statusovergang
|
||
-- gemeld is.
|
||
IF v_opmerking IS NOT NULL
|
||
AND INSTR (v_mld_opdr_opmerking, v_opmerking) = 0
|
||
THEN
|
||
v_opmerking :=
|
||
'['
|
||
|| v_datumtijd_tekst
|
||
|| '] - '
|
||
|| v_status_tekst
|
||
|| CHR (13)
|
||
|| CHR (10)
|
||
|| v_opmerking;
|
||
ELSE
|
||
v_opmerking :=
|
||
'[' || v_datumtijd_tekst || '] - ' || v_status_tekst;
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout wegschrijven statusbericht';
|
||
|
||
INSERT INTO blcc_imp_opdrstat_strukton (mld_opdr_key,
|
||
extern_nummer,
|
||
status,
|
||
datumtijd,
|
||
opmerking)
|
||
VALUES (v_mld_opdr_key,
|
||
v_extern_nummer,
|
||
v_status,
|
||
v_datumtijd,
|
||
v_opmerking);
|
||
|
||
v_count_imp := v_count_imp + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
|
||
END;
|
||
ELSE
|
||
IF v_status_code <> '40' AND v_status_code <> '45'
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF header_is_valid = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E',
|
||
'Ongeldig importbestand',
|
||
'Geen header of header niet volgens specificatie!');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key, 'S',
|
||
'Inleesproces/#ingelezen statusberichten: ' || TO_CHAR (v_count_tot),
|
||
'');
|
||
fac.imp_writelog (
|
||
p_import_key, 'S',
|
||
'Inleesproces/#ongeldige niet ingelezen statusberichten: ' || TO_CHAR (v_count_tot - v_count_imp),
|
||
'');
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg,
|
||
'Inleesproces statusberichten afgebroken!');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE blcc_update_opdrstat_strukton (p_import_key IN NUMBER)
|
||
AS
|
||
-- Cursor loopt - in volgorde! - over alle ingelezen statusberichten.
|
||
CURSOR c1
|
||
IS
|
||
SELECT mld_opdr_key, extern_nummer, datumtijd, status, opmerking
|
||
FROM blcc_imp_opdrstat_strukton
|
||
ORDER BY 1, 3;
|
||
|
||
c_user_key NUMBER (10) := 5; -- _STRUKTON-user
|
||
c_refnr_srtkkey NUMBER (10) := 261; -- Refnr. Leverancier
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count NUMBER (10) := 0;
|
||
v_mld_key NUMBER (10) := 0;
|
||
v_opdr_key NUMBER (10) := 0;
|
||
v_opdr_status NUMBER (10) := 0;
|
||
v_mld_typeopdr_key NUMBER (10);
|
||
v_mld_kenmerk_key NUMBER (10);
|
||
v_mld_kenmerkopdr_key NUMBER (10);
|
||
BEGIN
|
||
-- Loop over alle ingelezen Strukton-statusberichten.
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.mld_opdr_key
|
||
|| '|'
|
||
|| SUBSTR (rec.opmerking, 1, 100)
|
||
|| '] ';
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Key van melding/opdracht bepalen en Refnr. bij opdracht opslaan.
|
||
IF rec.mld_opdr_key IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout bepalen opdracht.';
|
||
|
||
SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key
|
||
INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
v_errormsg := 'Fout bepalen Refnr-kenmerk.';
|
||
|
||
SELECT k.mld_kenmerk_key
|
||
INTO v_mld_kenmerk_key
|
||
FROM mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = c_refnr_srtkkey
|
||
AND k.mld_typeopdr_key = v_mld_typeopdr_key;
|
||
|
||
v_errormsg := 'Fout bepalen Refnr-kenmerkopdracht.';
|
||
|
||
SELECT MAX (ko.mld_kenmerkopdr_key)
|
||
INTO v_mld_kenmerkopdr_key
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE ko.mld_opdr_key = v_opdr_key
|
||
AND v_mld_kenmerk_key = ko.mld_kenmerk_key;
|
||
|
||
IF v_mld_kenmerkopdr_key IS NULL
|
||
THEN
|
||
-- Kenmerk toevoegen
|
||
v_errormsg := 'Fout toevoegen Refnr-kenmerkopdracht.';
|
||
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key,
|
||
mld_opdr_key,
|
||
mld_kenmerkopdr_waarde)
|
||
VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer);
|
||
ELSE
|
||
-- Kenmerk bijwerken
|
||
v_errormsg := 'Fout bijwerken Refnr-kenmerkopdracht.';
|
||
|
||
UPDATE mld_kenmerkopdr
|
||
SET mld_kenmerkopdr_waarde = rec.extern_nummer
|
||
WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bijwerken Opmerking (opdracht).';
|
||
|
||
v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte!
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_opmerking =
|
||
DECODE (
|
||
mld_opdr_opmerking,
|
||
NULL,
|
||
rec.opmerking,
|
||
rec.opmerking
|
||
|| CHR (13)
|
||
|| CHR (10)
|
||
|| SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count)))
|
||
WHERE mld_opdr_key = v_opdr_key;
|
||
|
||
v_errormsg := 'Fout bijwerken Status.';
|
||
|
||
IF v_opdr_status <> rec.status
|
||
THEN
|
||
IF rec.status = 8 AND v_opdr_status = 5
|
||
THEN
|
||
-- Accepteer opdracht als de opdracht uitgegeven was
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton
|
||
ELSIF rec.status = 6 AND v_opdr_status = 5
|
||
THEN
|
||
-- Meld de opdracht af als deze uitgegeven was
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton, eerst accepteren
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
||
ELSIF rec.status = 6 AND v_opdr_status = 8
|
||
THEN
|
||
-- Meld de opdracht af als deze geaccepteerd was
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
||
ELSIF rec.status = 1 AND v_opdr_status IN (5, 8)
|
||
THEN
|
||
-- Wijs de opdracht af als deze niet/wel geaccepteerd was
|
||
MLD.setopdrachtstatus (v_opdr_key, 1, c_user_key); -- Strukton
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
||
END IF;
|
||
|
||
IF rec.status = 6 AND v_opdr_status <> 6
|
||
THEN
|
||
v_errormsg := 'Fout bijwerken Opmerking (melding).';
|
||
|
||
UPDATE mld_melding m
|
||
SET mld_melding_opmerking =
|
||
DECODE (
|
||
mld_melding_opmerking,
|
||
NULL,
|
||
rec.opmerking,
|
||
rec.opmerking || CHR (13) || CHR (10)
|
||
|| SUBSTR (mld_melding_opmerking,
|
||
1,
|
||
(4000 - v_count)))
|
||
WHERE mld_melding_key = v_mld_key
|
||
AND mld_melding_status IN (4, 7)
|
||
AND NOT EXISTS
|
||
( -- Afhandeling in melding niet aanpassen voor projecten
|
||
SELECT sm.mld_stdmelding_key
|
||
FROM mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
ins_srtdiscipline sd
|
||
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_prefix = 'QQQ');
|
||
|
||
v_errormsg := 'Fout sluiten melding.';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_count
|
||
FROM (SELECT m.mld_melding_key,
|
||
(SELECT COUNT ( * )
|
||
FROM mld_opdr o
|
||
WHERE mld_melding_key = m.mld_melding_key)
|
||
aanw_opdr,
|
||
(SELECT COUNT ( * )
|
||
FROM mld_opdr o
|
||
WHERE mld_melding_key = m.mld_melding_key
|
||
AND o.mld_statusopdr_key NOT IN (1, 2, 6, 7, 9))
|
||
open_opdr
|
||
FROM mld_melding m
|
||
WHERE m.mld_melding_key = v_mld_key
|
||
AND m.mld_melding_status IN (4, 7))
|
||
niet_opgelost
|
||
WHERE aanw_opdr > 0 AND open_opdr = 0;
|
||
|
||
-- Sinds AADO#30922 wordt de melding niet meer automatisch afgemeld.
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg,
|
||
'Statusbericht-loop');
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
/* Formatted on 7-6-2016 13:24:42 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW blcc_v_autorisatiegroepen
|
||
(
|
||
fac_groep_key,
|
||
fac_groep_oms
|
||
)
|
||
AS
|
||
SELECT fac_groep_key, fac_groep_omschrijving
|
||
FROM fac_groep
|
||
WHERE fac_groep_omschrijving LIKE 'SSC%';
|
||
|
||
|
||
-- BLCC#38512
|
||
/* Formatted on 3-1-2017 12:06:24 (QP5 v5.136.908.31019) */
|
||
CREATE OR REPLACE VIEW blcc_v_rap_mldtrk
|
||
(
|
||
melding,
|
||
aanmaakdatumtijd,
|
||
aanmaakdatum,
|
||
aanmaaktijdstip,
|
||
meldingstatus,
|
||
plan_einddatum,
|
||
sla_einddatum,
|
||
wijzigingsdatumtijd,
|
||
wijzigingsdatum,
|
||
wijzigingstijdstip,
|
||
wijzigingdoor,
|
||
wijzigingcode
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) melding,
|
||
m.mld_melding_datum aanmaakdatumtijd,
|
||
TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy') aanmaakdatum,
|
||
TO_CHAR (m.mld_melding_datum, 'hh24:mi:ss') aanmaaktijdstip,
|
||
ms.mld_statuses_omschrijving meldingstatus,
|
||
TO_CHAR (m.mld_melding_einddatum, 'dd-mm-yyyy hh24:mi:ss') plan_einddatum,
|
||
TO_CHAR (m.mld_melding_einddatum_std, 'dd-mm-yyyy hh24:mi:ss') sla_einddatum,
|
||
t.fac_tracking_datum wijzigingsdatumtijd,
|
||
TO_CHAR (t.fac_tracking_datum, 'dd-mm-yyyy') wijzigingsdatum,
|
||
TO_CHAR (t.fac_tracking_datum, 'hh24:mi:ss') wijzigingstijdstip,
|
||
pf.prs_perslid_naam_full tracking_door,
|
||
sn.fac_srtnotificatie_code tracking_code
|
||
FROM mld_melding m,
|
||
mld_statuses ms,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
ins_srtdiscipline sd,
|
||
fac_tracking t,
|
||
fac_srtnotificatie sn,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE m.mld_melding_status = ms.mld_statuses_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key = 1 -- BCC
|
||
AND m.mld_melding_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'melding'
|
||
AND sn.fac_srtnotificatie_key IN (43, 37, 44, 38, 39, 46, 47, 48, 49) -- MLDNEW, MLDACP, MLDREJ, MLDAFM, MLDAFR, MLDVER, MLDDOO, MLDFWD, MLDBWD
|
||
AND t.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
CREATE OR REPLACE VIEW blcc_v_rap_ordtrk
|
||
(
|
||
opdracht,
|
||
aanmaakdatumtijd,
|
||
aanmaakdatum,
|
||
aanmaaktijdstip,
|
||
opdrachtstatus,
|
||
plan_einddatum,
|
||
wijzigingsdatumtijd,
|
||
wijzigingsdatum,
|
||
wijzigingstijdstip,
|
||
wijzigingdoor,
|
||
wijzigingcode
|
||
)
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) opdracht,
|
||
o.mld_opdr_datumbegin aanmaakdatumtijd,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'dd-mm-yyyy') aanmaakdatum,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'hh24:mi:ss') aanmaaktijdstip,
|
||
os.mld_statusopdr_omschrijving opdrachtstatus,
|
||
TO_CHAR (o.mld_opdr_einddatum, 'dd-mm-yyyy hh24:mi:ss') plan_einddatum, -- Of mld_opdr_plandatum?
|
||
t.fac_tracking_datum wijzigingsdatumtijd,
|
||
TO_CHAR (t.fac_tracking_datum, 'dd-mm-yyyy') wijzigingsdatum,
|
||
TO_CHAR (t.fac_tracking_datum, 'hh24:mi:ss') wijzigingstijdstip,
|
||
pf.prs_perslid_naam_full tracking_door,
|
||
sn.fac_srtnotificatie_code tracking_code
|
||
FROM mld_opdr o,
|
||
mld_statusopdr os,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
ins_tab_discipline td,
|
||
ins_srtdiscipline sd,
|
||
fac_tracking t,
|
||
fac_srtnotificatie sn,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE o.mld_statusopdr_key = os.mld_statusopdr_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_key = 1 -- BCC
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_xmlnode = 'opdracht'
|
||
--AND sn.fac_srtnotificatie_key IN (59 ,65, 64, 69, 58, 70, 66) -- ORDNEW, ORDACP, ORDREJ, ORDCAN, ORDAFM, ORDAFR, ORDVER
|
||
AND sn.fac_srtnotificatie_key NOT IN (60, 73, 40, 56, 57, 68, 135) -- ORDUPD, ORD2GO, MLDAP1, ORDMLI, ORDMLE, ORDSNX, ORDMAI
|
||
AND t.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
------ 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
|