10746 lines
459 KiB
SQL
10746 lines
459 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific sql statements for the FACILITOR database
|
||
|
||
DEFINE thisfile = 'AKZA.SQL'
|
||
DEFINE dbuser = '^AKZA'
|
||
DEFINE custid = 'AKZA'
|
||
|
||
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 ------
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
------------------------------- LEGACY-MEUK, M.N. VOOR OUTLETBEHEER ------------------------------
|
||
--------------------------------------------------------------------------------------------------
|
||
-- Utilities
|
||
-- De totalen aan verhuurbare ruimte(Opp) per CompanyCode,Afdeling,Soort
|
||
CREATE OR REPLACE PACKAGE AKZ AS
|
||
FUNCTION akz_f_cad_ruimte_bezetting(pBezettingswaarde IN NUMBER) RETURN NUMBER;
|
||
FUNCTION akz_f_pct_gemeensch(VerdiepingKey IN NUMBER) RETURN NUMBER;
|
||
|
||
PROCEDURE Ins_Update_Kenmerkdeel(kenmerkdeel_key IN NUMBER,
|
||
deel_key IN NUMBER,
|
||
kenmerk_key IN NUMBER,
|
||
waarde IN VARCHAR2,
|
||
historymode IN VARCHAR2,
|
||
mselect IN VARCHAR2);
|
||
PROCEDURE Kmd_Update_Kenmerkdeel(kenmerkdeel_key IN NUMBER,
|
||
deel_key IN NUMBER,
|
||
kenmerk_key IN NUMBER,
|
||
waarde IN VARCHAR2,
|
||
historymode IN VARCHAR2,
|
||
mselect IN VARCHAR2);
|
||
PROCEDURE Kmd_Insert(p_deel_key IN NUMBER,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_waarde IN VARCHAR2,
|
||
p_historymode IN VARCHAR2);
|
||
PROCEDURE Kmd_Delete(p_kenmerkdeel_key IN NUMBER,
|
||
p_historymode IN VARCHAR2);
|
||
PROCEDURE Kmd_Update(p_kenmerkdeel_key IN NUMBER,
|
||
p_waarde IN VARCHAR2,
|
||
p_historymode IN VARCHAR2);
|
||
PROCEDURE Ins_Update_Kenmerkdeel_WEB(kenmerkdeel_key IN NUMBER,
|
||
deel_key IN NUMBER,
|
||
kenmerk_key IN NUMBER,
|
||
waarde IN VARCHAR2,
|
||
historymode IN VARCHAR2,
|
||
mselect IN VARCHAR2);
|
||
|
||
PRAGMA RESTRICT_REFERENCES (akz_f_pct_gemeensch,WNDS, WNPS);
|
||
END akz;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PACKAGE BODY AKZ
|
||
AS
|
||
FUNCTION akz_f_cad_ruimte_bezetting (pBezettingswaarde IN NUMBER)
|
||
RETURN NUMBER
|
||
IS
|
||
-- PRE: pBezettingswaarde IS NOT NULL
|
||
v_result NUMBER (3, 0);
|
||
BEGIN
|
||
IF (pBezettingswaarde <= 0)
|
||
THEN
|
||
v_result := 0;
|
||
ELSE
|
||
IF (pBezettingswaarde > 0) AND (pBezettingswaarde < 100)
|
||
THEN
|
||
v_result := 50;
|
||
ELSE
|
||
v_result := 100;
|
||
END IF;
|
||
END IF;
|
||
|
||
RETURN v_result;
|
||
END akz_f_cad_ruimte_bezetting;
|
||
|
||
FUNCTION akz_f_pct_gemeensch (VerdiepingKey IN NUMBER)
|
||
RETURN NUMBER
|
||
IS
|
||
GebouwKey NUMBER (10, 2);
|
||
opp_verhuurbaar_ver NUMBER (10, 2);
|
||
opp_verhuurbaar_hor NUMBER (10, 2);
|
||
opp_gemeenschappelijk_ver NUMBER (10, 2);
|
||
opp_gemeenschappelijk_hor NUMBER (10, 2);
|
||
BEGIN
|
||
-- Levert het percentage van de ruimte dat van gebouw met de gegeven key gemeenschappelijk
|
||
-- zijnde de opp_gemeenschappelijk/opp_netto. Hiermee kan de bruto oppervlakte van een
|
||
-- netto oppervlakte worden berekend met bruto=netto+ pct*netto = (1+pct)*netto
|
||
SELECT ALG_GEBOUW_KEY
|
||
INTO GebouwKey
|
||
FROM ALG_VERDIEPING
|
||
WHERE ALG_VERDIEPING_KEY = VerdiepingKey;
|
||
|
||
SELECT NVL (SUM (alg_ruimte_bruto_vloeropp), 1) -- minstens 1 tegen het delen door nul
|
||
INTO opp_verhuurbaar_ver
|
||
FROM alg_v_aanwezigruimte R, alg_srtruimte SR, alg_verdieping V
|
||
WHERE V.alg_gebouw_key = GebouwKey
|
||
AND V.alg_verdieping_key = R.alg_verdieping_key
|
||
AND R.alg_srtruimte_key = SR.alg_srtruimte_key
|
||
AND SR.prs_verhuurbaar IS NOT NULL
|
||
AND SR.prs_bevat_werkplek IS NOT NULL;
|
||
|
||
SELECT NVL (SUM (alg_ruimte_bruto_vloeropp), 1) -- minstens 1 tegen het delen door nul
|
||
INTO opp_verhuurbaar_hor
|
||
FROM alg_v_aanwezigruimte R, alg_srtruimte SR, alg_verdieping V
|
||
WHERE V.alg_verdieping_key = VerdiepingKey -- Alleen deze verdieping
|
||
AND V.alg_verdieping_key = R.alg_verdieping_key
|
||
AND R.alg_srtruimte_key = SR.alg_srtruimte_key
|
||
AND SR.prs_verhuurbaar IS NOT NULL
|
||
AND SR.prs_bevat_werkplek IS NOT NULL;
|
||
|
||
SELECT NVL (SUM (alg_ruimte_bruto_vloeropp), 0)
|
||
INTO opp_gemeenschappelijk_ver
|
||
FROM alg_v_aanwezigruimte R, alg_srtruimte SR, alg_verdieping V
|
||
WHERE V.alg_gebouw_key = GebouwKey
|
||
AND V.alg_verdieping_key = R.alg_verdieping_key
|
||
AND R.alg_srtruimte_key = SR.alg_srtruimte_key
|
||
AND SR.prs_verhuurbaar IS NOT NULL
|
||
AND SR.alg_srtruimte_upper LIKE '%VERTICAAL%'
|
||
AND SR.prs_bevat_werkplek IS NULL;
|
||
|
||
SELECT NVL (SUM (alg_ruimte_bruto_vloeropp), 0)
|
||
INTO opp_gemeenschappelijk_hor
|
||
FROM alg_v_aanwezigruimte R, alg_srtruimte SR, alg_verdieping V
|
||
WHERE V.alg_verdieping_key = VerdiepingKey
|
||
AND V.alg_verdieping_key = R.alg_verdieping_key
|
||
AND R.alg_srtruimte_key = SR.alg_srtruimte_key
|
||
AND SR.prs_verhuurbaar IS NOT NULL
|
||
AND SR.alg_srtruimte_upper LIKE '%HORIZONTAAL%'
|
||
AND SR.prs_bevat_werkplek IS NULL;
|
||
|
||
RETURN (opp_gemeenschappelijk_ver / opp_verhuurbaar_ver)
|
||
+ (opp_gemeenschappelijk_hor / opp_verhuurbaar_hor);
|
||
END akz_f_pct_gemeensch;
|
||
|
||
PROCEDURE Ins_Update_Kenmerkdeel (kenmerkdeel_key IN NUMBER,
|
||
deel_key IN NUMBER,
|
||
kenmerk_key IN NUMBER,
|
||
waarde IN VARCHAR2,
|
||
historymode IN VARCHAR2,
|
||
mselect IN VARCHAR2)
|
||
IS
|
||
v_history_mode fac_message.fac_message_text%TYPE;
|
||
BEGIN
|
||
-- Het is eigenlijk voldoende om hier alleen Kmd_Update()
|
||
-- aan te roepen omdat daar alle situaties worden
|
||
-- gecontroleerd en de bijbehorende actie wordt uitgevoerd.
|
||
-- De onderstaande Select zorgt er dus alleen voor dat
|
||
-- indien er geen actueel record bestaat, of een die
|
||
-- vandaag is gesloten er een nieuw record wordt gemaakt,
|
||
-- hetgeen in Kmd_Update() ook wordt gedaan zodat de tweede
|
||
-- insert een foutmelding geeft.
|
||
-- Daarom alleen Kmd_Update() aanroepen met een dummy waarde
|
||
-- voor ins_kenmerkdeel_key.
|
||
--
|
||
IF historymode IS NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT DECODE (fac_message_text, 'TRUE', '1', 'FALSE', '0', '0')
|
||
INTO v_history_mode
|
||
FROM fac_message
|
||
WHERE fac_message_code = 'FAC_HISTORYMODE_VALUE';
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_history_mode := '0';
|
||
END;
|
||
ELSE
|
||
v_history_mode := historymode;
|
||
END IF;
|
||
|
||
AKZ.Kmd_Update_Kenmerkdeel (kenmerkdeel_key,
|
||
deel_key,
|
||
kenmerk_key,
|
||
waarde,
|
||
v_history_mode,
|
||
mselect);
|
||
END Ins_Update_Kenmerkdeel;
|
||
|
||
PROCEDURE Kmd_Insert (p_deel_key IN NUMBER,
|
||
p_kenmerk_key IN NUMBER,
|
||
p_waarde IN VARCHAR2,
|
||
p_historymode IN VARCHAR2)
|
||
IS
|
||
BEGIN
|
||
IF p_waarde IS NOT NULL
|
||
THEN
|
||
INSERT INTO ins_kenmerkdeel (ins_kenmerk_key,
|
||
ins_deel_Key,
|
||
ins_kenmerkdeel_waarde)
|
||
VALUES (p_kenmerk_key, p_deel_key, p_waarde);
|
||
END IF;
|
||
END Kmd_Insert;
|
||
|
||
PROCEDURE Kmd_Delete (p_kenmerkdeel_key IN NUMBER,
|
||
p_historymode IN VARCHAR2)
|
||
IS
|
||
BEGIN
|
||
IF p_historymode = '0'
|
||
THEN
|
||
--NON HISTORY MODE
|
||
DELETE FROM ins_kenmerkdeel
|
||
WHERE ins_kenmerkdeel_key = p_kenmerkdeel_key;
|
||
ELSE
|
||
--HISTORY MODE
|
||
UPDATE ins_kenmerkdeel
|
||
SET ins_kenmerkdeel_verwijder = SYSDATE
|
||
WHERE ins_kenmerkdeel_key = p_kenmerkdeel_key;
|
||
END IF;
|
||
END Kmd_Delete;
|
||
|
||
PROCEDURE Kmd_update (p_kenmerkdeel_key IN NUMBER,
|
||
p_waarde IN VARCHAR2,
|
||
p_historymode IN VARCHAR2)
|
||
IS
|
||
BEGIN
|
||
UPDATE ins_kenmerkdeel
|
||
SET ins_kenmerkdeel_waarde = p_waarde,
|
||
ins_kenmerkdeel_verwijder = NULL
|
||
WHERE ins_kenmerkdeel_key = p_kenmerkdeel_key;
|
||
END Kmd_Update;
|
||
|
||
PROCEDURE Kmd_Update_Kenmerkdeel (kenmerkdeel_key IN NUMBER,
|
||
deel_key IN NUMBER,
|
||
kenmerk_key IN NUMBER,
|
||
waarde IN VARCHAR2,
|
||
historymode IN VARCHAR2,
|
||
mselect IN VARCHAR2)
|
||
IS
|
||
v_kenmerkdeelkey NUMBER (10);
|
||
BEGIN
|
||
IF historymode = '0'
|
||
THEN
|
||
IF waarde IS NOT NULL
|
||
THEN
|
||
IF kenmerkdeel_key IS NOT NULL AND mselect = '0'
|
||
THEN
|
||
AKZ.Kmd_Update (kenmerkdeel_key, waarde, historymode);
|
||
ELSIF kenmerkdeel_key IS NULL AND mselect = '1'
|
||
THEN
|
||
-- kenmerkdeel vanuit form in mselectmode is null
|
||
-- deelkey komt uit fac_selectie daar kan kenmerkdeel niet aan toegevoegd worden.
|
||
-- Oplossing : zoek a.h.v. Deelkey en Kenmerkkey de kenmerkdeel_key
|
||
-- Bij Insert is kenmerkdeel_key ook NULL, maar dit gaat goed aangezien mselect daar nooit '1' kan zijn.
|
||
BEGIN
|
||
SELECT ins_kenmerkdeel_Key
|
||
INTO v_kenmerkdeelkey
|
||
FROM ins_v_aanwezigkenmerkdeel
|
||
WHERE ins_deel_key = deel_key
|
||
AND ins_kenmerk_key = kenmerk_key;
|
||
|
||
AKZ.Kmd_Update (v_kenmerkdeelkey, waarde, historymode);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
AKZ.Kmd_Insert (deel_key,
|
||
kenmerk_key,
|
||
waarde,
|
||
historymode);
|
||
END;
|
||
ELSE
|
||
AKZ.Kmd_Insert (deel_key,
|
||
kenmerk_key,
|
||
waarde,
|
||
historymode);
|
||
END IF;
|
||
ELSE
|
||
AKZ.Kmd_Delete (kenmerkdeel_key, historymode);
|
||
END IF;
|
||
ELSIF historymode = '1'
|
||
THEN
|
||
DECLARE
|
||
-- Zoek alle records voor een gegeven object en kenmerk
|
||
-- en zet de meest recente bovenaan.
|
||
--
|
||
CURSOR c_kenmerkdeel (
|
||
p_kenmerk_key IN NUMBER,
|
||
p_deel_key IN NUMBER)
|
||
IS
|
||
SELECT ins_kenmerkdeel_key,
|
||
TRUNC (ins_kenmerkdeel_aanmaak) ins_kenmerkdeel_aanmaak,
|
||
TRUNC (ins_kenmerkdeel_verwijder)
|
||
ins_kenmerkdeel_verwijder,
|
||
ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel
|
||
WHERE ins_kenmerk_key = p_kenmerk_key
|
||
AND ins_deel_key = p_deel_key
|
||
ORDER BY ins_kenmerkdeel_key DESC;
|
||
|
||
r_kenmerkdeel c_kenmerkdeel%ROWTYPE;
|
||
BEGIN
|
||
OPEN c_kenmerkdeel (kenmerk_key, deel_key);
|
||
|
||
FETCH c_kenmerkdeel INTO r_kenmerkdeel;
|
||
|
||
IF c_kenmerkdeel%NOTFOUND
|
||
THEN
|
||
-- Voor dit object en kenmerk bestaat nog geen record
|
||
-- dus toevoegen. Behalve als de toe te voegen waarde
|
||
-- null is, dan wil je niets toevoegen dus dan ook
|
||
-- geen actie.
|
||
IF waarde IS NOT NULL
|
||
THEN
|
||
AKZ.Kmd_Insert (deel_key,
|
||
kenmerk_key,
|
||
waarde,
|
||
historymode);
|
||
END IF;
|
||
ELSE
|
||
-- Er bestaat een record voor het object en kenmerk.
|
||
--
|
||
IF waarde IS NOT NULL
|
||
THEN
|
||
-- Er is een nieuwe waarde voor een bepaald object en kenmerk.
|
||
--
|
||
IF r_kenmerkdeel.ins_kenmerkdeel_aanmaak <= TRUNC (SYSDATE)
|
||
AND r_kenmerkdeel.ins_kenmerkdeel_verwijder IS NULL
|
||
THEN
|
||
-- Het record is nog actueel, dus moet eerst gesloten worden
|
||
-- door het als verwijderd te markeren.
|
||
--
|
||
AKZ.Kmd_Delete (r_kenmerkdeel.ins_kenmerkdeel_key,
|
||
historymode);
|
||
END IF;
|
||
|
||
--
|
||
-- Er bestaat nu tijdelijk geen actueel record meer voor
|
||
-- het object en kenmerk !!
|
||
--
|
||
IF r_kenmerkdeel.ins_kenmerkdeel_aanmaak < TRUNC (SYSDATE)
|
||
AND (r_kenmerkdeel.ins_kenmerkdeel_verwijder <=
|
||
TRUNC (SYSDATE)
|
||
OR r_kenmerkdeel.ins_kenmerkdeel_verwijder IS NULL)
|
||
THEN
|
||
-- Het laatste record voor kenmerk bij een object heeft langer
|
||
-- dan een dag bestaan. Voeg daarom een nieuwe toe.
|
||
--
|
||
AKZ.Kmd_Insert (deel_key,
|
||
kenmerk_key,
|
||
waarde,
|
||
historymode);
|
||
ELSIF r_kenmerkdeel.ins_kenmerkdeel_aanmaak =
|
||
TRUNC (SYSDATE)
|
||
THEN
|
||
-- Het record voor kenmerk bij een object is vandaag
|
||
-- aangemaakt dus wordt er geen nieuwe toegevoegd maar
|
||
-- de huidige aangepast.
|
||
--
|
||
AKZ.Kmd_Update (r_kenmerkdeel.ins_kenmerkdeel_key,
|
||
waarde,
|
||
historymode);
|
||
END IF;
|
||
ELSE
|
||
-- De nieuwe waarde voor het object en kenmerk is leeg, dus
|
||
-- moet het als verwijderd gemarkeerd worden.
|
||
-- Behalve als er in MSelect-mode gewijzigd wordt.
|
||
--
|
||
IF mselect = '0'
|
||
THEN
|
||
AKZ.Kmd_Delete (r_kenmerkdeel.ins_kenmerkdeel_key,
|
||
historymode);
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
CLOSE c_kenmerkdeel;
|
||
END;
|
||
END IF;
|
||
END Kmd_Update_Kenmerkdeel;
|
||
|
||
PROCEDURE Ins_Update_Kenmerkdeel_WEB (kenmerkdeel_key IN NUMBER,
|
||
deel_key IN NUMBER,
|
||
kenmerk_key IN NUMBER,
|
||
waarde IN VARCHAR2,
|
||
historymode IN VARCHAR2,
|
||
mselect IN VARCHAR2)
|
||
IS
|
||
k_key NUMBER (10);
|
||
waarde2 VARCHAR2 (255);
|
||
BEGIN
|
||
k_key := kenmerkdeel_key;
|
||
waarde2 := NULL;
|
||
|
||
IF kenmerkdeel_key IS NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT ins_kenmerkdeel_key, ins_kenmerkdeel_waarde
|
||
INTO k_key, waarde2
|
||
FROM ins_kenmerkdeel
|
||
WHERE INS_KENMERKDEEL_VERWIJDER IS NULL
|
||
AND INS_KENMERK_KEY = kenmerk_key
|
||
AND INS_DEEL_KEY = deel_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
NULL;
|
||
END;
|
||
END IF;
|
||
|
||
IF (waarde IS NOT NULL AND waarde2 IS NOT NULL AND waarde <> waarde2)
|
||
OR (waarde IS NOT NULL AND waarde2 IS NULL)
|
||
OR (waarde IS NULL AND waarde2 IS NOT NULL)
|
||
THEN
|
||
akz.Ins_Update_Kenmerkdeel (k_key,
|
||
deel_key,
|
||
kenmerk_key,
|
||
waarde,
|
||
historymode,
|
||
mselect);
|
||
END IF;
|
||
END Ins_Update_Kenmerkdeel_WEB;
|
||
END AKZ;
|
||
/
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
------------------------------- BASISVIEWS -------------------------------------------------------
|
||
--------------------------------------------------------------------------------------------------
|
||
|
||
-- BELANGRIJKE VIEW, wordt veelal gebruikt ipv kostenplaats-tabel!
|
||
-- Eerste woord van kostenplaatsgroep-omschrijving = debiteurnr voor doorbelastingsexport
|
||
CREATE OR REPLACE VIEW akza_v_kostenplaats
|
||
AS
|
||
SELECT k.prs_kostenplaats_key,
|
||
DECODE( INSTR (prs_kostenplaats_nr, '('),
|
||
0, TRIM (prs_kostenplaats_nr),
|
||
TRIM (SUBSTR (prs_kostenplaats_nr, 1, INSTR (prs_kostenplaats_nr, '(') - 2) )
|
||
) prs_kostenplaats_nr,
|
||
UPPER( DECODE( INSTR (prs_kostenplaats_nr, '('),
|
||
0, TRIM (prs_kostenplaats_nr),
|
||
TRIM (SUBSTR (prs_kostenplaats_nr, 1, INSTR (prs_kostenplaats_nr, '(') - 2) ) )
|
||
) prs_kostenplaats_upper,
|
||
prs_kostenplaats_nr fclt_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving,
|
||
COALESCE( SUBSTR(prs_kostenplaatsgrp_oms, 1, INSTR(prs_kostenplaatsgrp_oms, ' ')-1 ),
|
||
'ONBEKEND') debiteurnr,
|
||
prs_kostenplaatsgrp_oms,
|
||
-- a.companycode,
|
||
k.prs_perslid_key, prs_kostenplaats_module, prs_kostenplaats_begin, prs_kostenplaats_eind,
|
||
k.prs_kostenplaatsgrp_key, prs_kostenplaats_aanmaak, prs_kostenplaats_verwijder,
|
||
kg.prs_perslid_key grp_prs_perslid_key
|
||
FROM prs_kostenplaats k,
|
||
prs_kostenplaatsgrp kg
|
||
WHERE kg.prs_kostenplaatsgrp_key(+) = k.prs_kostenplaatsgrp_key;
|
||
|
||
-- Mapping van afdeling naar company (top-level afdeling)
|
||
CREATE OR REPLACE VIEW akza_v_afdelingcompany
|
||
AS
|
||
SELECT a.prs_afdeling_key,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_upper,
|
||
a.prs_afdeling_omschrijving,
|
||
c.prs_afdeling_key company_key,
|
||
c.prs_afdeling_naam companycode,
|
||
c.prs_afdeling_omschrijving company_oms,
|
||
a.prs_afdeling_aanmaak,
|
||
a.prs_afdeling_verwijder,
|
||
a.prs_kostenplaats_key
|
||
FROM prs_afdeling a,
|
||
prs_afdeling c,
|
||
prs_v_afdeling_boom ab
|
||
WHERE ab.prs_afdeling_key = a.prs_afdeling_key
|
||
AND c.prs_afdeling_key = ab.prs_afdeling_key1;
|
||
|
||
-- AKZA#494: rapportage "doorbelasting outlets" uses this table
|
||
CREATE OR REPLACE VIEW prs_eenheid
|
||
(prs_eenheid_key, prs_eenheid_code, prs_eenheid_upper, prs_eenheid_omschrijving,
|
||
prs_eenheid_aanmaak, prs_eenheid_verwijder, prs_bedrijf_key)
|
||
AS
|
||
SELECT a.prs_afdeling_key,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_upper,
|
||
a.prs_afdeling_omschrijving,
|
||
a.prs_afdeling_aanmaak,
|
||
a.prs_afdeling_verwijder,
|
||
a.prs_bedrijf_key
|
||
FROM prs_afdeling a
|
||
WHERE a.prs_afdeling_parentkey IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_perslid
|
||
AS
|
||
SELECT p.*,
|
||
p.prs_perslid_naam
|
||
|| NVL2( p.prs_perslid_voorletters, ', '|| p.prs_perslid_voorletters, '')
|
||
|| NVL2( p.prs_perslid_tussenvoegsel, ' ' || p.prs_perslid_tussenvoegsel, '')
|
||
|| NVL2( p.prs_perslid_voornaam, ' (' || p.prs_perslid_voornaam || ')', '')
|
||
||DECODE(p.prs_perslid_geslacht,
|
||
1, ' (M)',
|
||
0, ' (V)',
|
||
'') prs_perslid_string
|
||
FROM prs_perslid p
|
||
WHERE prs_perslid_upper NOT LIKE '[%'
|
||
AND prs_perslid_upper NOT LIKE 'LEEG [%';
|
||
|
||
CREATE OR REPLACE VIEW akz_v_aanwezigperslid
|
||
AS
|
||
SELECT *
|
||
FROM akza_v_perslid
|
||
WHERE prs_perslid_verwijder IS NULL;
|
||
|
||
-- Kenmerkdomeinen voor objectenbeheer (Deventer): LoD's, logische objecten etc
|
||
CREATE OR REPLACE VIEW akza_v_list_lods
|
||
AS
|
||
SELECT d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
d.ins_deel_omschrijving||' '||d.ins_deel_opmerking ins_deel_aanduiding,
|
||
d.ins_deel_verwijder
|
||
FROM ins_deel d
|
||
WHERE ins_discipline_key = 1625;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_list_logische_obj
|
||
AS
|
||
SELECT d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
d.ins_deel_omschrijving||' '||d.ins_deel_opmerking ins_deel_aanduiding,
|
||
d.ins_deel_verwijder
|
||
FROM ins_deel d
|
||
WHERE ins_discipline_key = 1645;
|
||
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
------------------------------- RUIMTEDOORBELASTING EN SCHOONMAAK --------------------------------
|
||
--------------------------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW akz_ruimte_eenheid
|
||
(
|
||
alg_ruimte_key,
|
||
prs_afdeling_eenheid
|
||
)
|
||
AS
|
||
SELECT w.prs_alg_ruimte_key "ALG_RUIMTE_KEY", 'NIETVERH' prs_afdeling_eenheid
|
||
FROM prs_perslidwerkplek pw,
|
||
prs_werkplek w,
|
||
prs_afdeling a,
|
||
prs_afdeling e,
|
||
prs_perslid p
|
||
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key
|
||
AND e.prs_afdeling_parentkey IS NULL
|
||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_naam = 'NIET VERH'
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND pw.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
GROUP BY prs_alg_ruimte_key
|
||
UNION
|
||
SELECT w.prs_alg_ruimte_key "ALG_RUIMTE_KEY",
|
||
MAX (e.prs_afdeling_naam) prs_afdeling_eenheid
|
||
FROM prs_perslidwerkplek pw,
|
||
prs_werkplek w,
|
||
prs_afdeling a,
|
||
prs_afdeling e,
|
||
prs_perslid p
|
||
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key
|
||
AND e.prs_afdeling_parentkey IS NULL
|
||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_naam <> 'NIET VERH'
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND pw.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
GROUP BY prs_alg_ruimte_key;
|
||
|
||
-- Now with 3D authorization on Building
|
||
CREATE OR REPLACE VIEW akz_verdiepingopp
|
||
(FCLT_F_GEBOUW, HIDE_F_VOLGNR, VERDIEPING, FCLT_3D_GEBOUW_KEY, OPPERVLAKTE)
|
||
AS
|
||
SELECT l.alg_locatie_code || '-'
|
||
|| alg_gebouw_omschrijving fclt_f_gebouw,
|
||
v.alg_verdieping_volgnr,
|
||
v.alg_verdieping_omschrijving,
|
||
g.alg_gebouw_key,
|
||
SUM (r.alg_ruimte_bruto_vloeropp) oppervlakte
|
||
FROM alg_v_aanweziggebouw g,
|
||
alg_v_aanwezigverdieping v,
|
||
alg_v_aanwezigruimte r,
|
||
alg_v_aanweziglocatie l
|
||
WHERE v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
GROUP BY l.alg_locatie_code || '-' || alg_gebouw_omschrijving,v.alg_verdieping_volgnr,v.alg_verdieping_omschrijving,g.alg_gebouw_key;
|
||
|
||
-- Now with 3D authorization on Building
|
||
CREATE OR REPLACE VIEW akz_gebouwopp
|
||
(FCLT_F_GEBOUW, FCLT_3D_GEBOUW_KEY, OPPERVLAKTE)
|
||
AS
|
||
SELECT l.alg_locatie_code || '-' || g.alg_gebouw_omschrijving,
|
||
g.alg_gebouw_key,
|
||
SUM (r.alg_ruimte_bruto_vloeropp) oppervlakte
|
||
FROM alg_v_aanweziggebouw g,
|
||
alg_v_aanwezigverdieping v,
|
||
alg_v_aanwezigruimte r,
|
||
alg_v_aanweziglocatie l
|
||
WHERE v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
GROUP BY l.alg_locatie_code || '-' || alg_gebouw_omschrijving, g.alg_gebouw_key;
|
||
|
||
-- Now with 3D authorization on Building and organization
|
||
CREATE OR REPLACE VIEW akz_gebruiker_per_ruimte
|
||
(FCLT_F_GEBOUW, BOUWLAAG, RUIMTE, FCLT_F_AFDELING, GEBRUIKER,
|
||
OPPERVLAKTE, BEZETTINGSGRAAD, BEZETOPP, TELEFOON, FCLT_3D_GEBOUW_KEY, FCLT_3D_AFDELING_KEY)
|
||
AS
|
||
SELECT w.alg_gebouw_omschrijving gebouw, w.alg_verdieping_code bouwlaag,
|
||
w.alg_ruimte_nr ruimte, a.prs_afdeling_naam afdeling,
|
||
w.prs_afd_perslid_naam gebruiker,
|
||
ROUND (w.prs_werkplek_opp, 2) oppervlakte,
|
||
w.prs_perslidwerkplek_bezetting bezettingsgraad,
|
||
ROUND (w.prs_werkplek_opp * w.prs_perslidwerkplek_bezetting / 100,
|
||
2
|
||
) bezetopp,
|
||
p.prs_perslid_telefoonnr telefoon,
|
||
w.alg_gebouw_key,
|
||
a.prs_afdeling_key
|
||
FROM prs_v_perslidwerkplek_gegevens w,
|
||
prs_v_aanwezigafdeling a,
|
||
prs_v_aanwezigperslid p
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND w.prs_perslid_key = p.prs_perslid_key;
|
||
|
||
CREATE OR REPLACE VIEW akz_v_ruimte_gegevens
|
||
AS
|
||
SELECT r.*,
|
||
( (akz.akz_f_pct_gemeensch (r.alg_verdieping_key) + 1)
|
||
* (NVL (r.alg_ruimte_bruto_vloeropp, 0))
|
||
) alg_ruimte_bruto_vloeropp_vh
|
||
FROM alg_ruimte r, alg_srtruimte sr
|
||
WHERE alg_ruimte_verwijder IS NULL
|
||
AND sr.alg_srtruimte_key = r.alg_srtruimte_key
|
||
AND sr.prs_verhuurbaar IS NOT NULL
|
||
AND sr.prs_bevat_werkplek IS NOT NULL;
|
||
|
||
-- Now with 3D authorization on Building
|
||
CREATE OR REPLACE VIEW akz_verhruimte_per_gebouw (fclt_f_locatie,
|
||
fclt_f_gebouw,
|
||
fclt_3d_gebouw_key,
|
||
oppervlakte,
|
||
oppervlakte_bruto,
|
||
fclt_3d_locatie_key
|
||
)
|
||
AS
|
||
SELECT l.alg_locatie_code locatie,
|
||
g.alg_gebouw_omschrijving gebouw, g.alg_gebouw_key,
|
||
SUM (NVL (r.alg_ruimte_bruto_vloeropp, 0)) oppervlakte,
|
||
SUM (NVL (r.alg_ruimte_bruto_vloeropp_vh, 0)) oppervlakte_bruto,
|
||
g.alg_locatie_key
|
||
FROM alg_locatie l, alg_gebouw g, alg_verdieping v, akz_v_ruimte_gegevens r
|
||
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND l.alg_locatie_key = g.alg_locatie_key
|
||
GROUP BY g.alg_gebouw_omschrijving, g.alg_gebouw_key, g.alg_locatie_key, l.alg_locatie_code;
|
||
|
||
-- Now with 3D authorization on Building and organization
|
||
CREATE OR REPLACE VIEW akz_huur_verhuurbaar_ruimte
|
||
(
|
||
FCLT_F_COMPANYCODE,
|
||
HIDE_F_COMPANYNAAM,
|
||
FCLT_F_KOSTENPLAATS,
|
||
AFDELING,
|
||
FCLT_X_LOCATIE,
|
||
FCLT_F_GEBOUW,
|
||
VERDIEPING,
|
||
RUIMTENR,
|
||
RUIMTESOORT,
|
||
FCLT_3D_GEBOUW_KEY,
|
||
FCLT_3D_AFDELING_KEY,
|
||
BVO
|
||
)
|
||
AS
|
||
SELECT e.prs_afdeling_naam companycode,
|
||
e.prs_afdeling_omschrijving companynaam,
|
||
kp.prs_kostenplaats_nr,
|
||
a.prs_afdeling_omschrijving,
|
||
rg.alg_locatie_omschrijving||' ('||rg.alg_locatie_code||')',
|
||
rg.alg_gebouw_omschrijving,
|
||
rg.alg_verdieping_code,
|
||
rg.alg_ruimte_nr,
|
||
sr.alg_srtruimte_omschrijving,
|
||
rg.alg_gebouw_key,
|
||
a.prs_afdeling_key,
|
||
ROUND( SUM( COALESCE( rg.alg_ruimte_bruto_vloeropp * ra.prs_ruimteafdeling_bezetting / 100,
|
||
0)),
|
||
1)
|
||
bvo
|
||
FROM prs_v_aanwezigafdeling a,
|
||
prs_v_aanwezigafdeling e,
|
||
prs_v_aanwezigruimteafdeling ra,
|
||
alg_v_ruimte_gegevens rg,
|
||
alg_srtruimte sr,
|
||
akza_v_kostenplaats kp
|
||
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key(+)
|
||
AND e.prs_afdeling_parentkey IS NULL
|
||
AND kp.prs_kostenplaats_key(+) = a.prs_kostenplaats_key
|
||
AND ra.prs_afdeling_key = a.prs_afdeling_key(+)
|
||
AND rg.alg_ruimte_key = ra.alg_ruimte_key(+)
|
||
AND sr.alg_srtruimte_key = rg.alg_srtruimte_key
|
||
GROUP BY e.prs_afdeling_naam,
|
||
e.prs_afdeling_omschrijving,
|
||
kp.prs_kostenplaats_nr,
|
||
a.prs_afdeling_omschrijving,
|
||
rg.alg_locatie_code,
|
||
rg.alg_locatie_omschrijving,
|
||
rg.alg_gebouw_omschrijving,
|
||
rg.alg_gebouw_key,
|
||
rg.alg_verdieping_volgnr,
|
||
rg.alg_verdieping_code,
|
||
rg.alg_ruimte_nr,
|
||
sr.alg_srtruimte_omschrijving,
|
||
a.prs_afdeling_key;
|
||
|
||
CREATE OR REPLACE VIEW akz_huur_verhuurbaar
|
||
AS
|
||
SELECT fclt_f_companycode,
|
||
hide_f_companynaam fclt_f_companynaam,
|
||
fclt_f_kostenplaats,
|
||
afdeling,
|
||
fclt_x_locatie,
|
||
fclt_f_gebouw,
|
||
ruimtesoort,
|
||
fclt_3d_gebouw_key,
|
||
fclt_3d_afdeling_key,
|
||
SUM(bvo) bvo
|
||
FROM akz_huur_verhuurbaar_ruimte
|
||
GROUP BY fclt_f_companycode,
|
||
hide_f_companynaam,
|
||
fclt_f_kostenplaats,
|
||
afdeling,
|
||
fclt_x_locatie,
|
||
fclt_f_gebouw,
|
||
ruimtesoort,
|
||
fclt_3d_gebouw_key,
|
||
fclt_3d_afdeling_key;
|
||
|
||
-- Now with 3D authorization on Building
|
||
CREATE OR REPLACE VIEW akz_schoonmaakrapport (fclt_f_gebouw,
|
||
hide_f_verdieping_volgnummer,
|
||
verdieping,
|
||
ruimte,
|
||
omschrijving,
|
||
opp,
|
||
fclt_f_vloerafwerking,
|
||
fclt_f_schoonmaakniveau,
|
||
kosten,
|
||
fclt_3d_gebouw_key)
|
||
AS
|
||
SELECT alg_g.alg_gebouw_omschrijving fclt_f_gebouw,
|
||
alg_v.alg_verdieping_volgnr,
|
||
alg_v.alg_verdieping_omschrijving verdieping,
|
||
'R' || alg_r.alg_ruimte_nr ruimte,
|
||
alg_r.alg_ruimte_omschrijving omschrijving,
|
||
alg_r.alg_ruimte_bruto_vloeropp opp,
|
||
u.fac_usrdata_omschr fclt_f_vloerafwerking,
|
||
n.fac_usrdata_omschr fclt_f_schoonmaakniveau,
|
||
ROUND(n.fac_usrdata_prijs * alg_r.alg_ruimte_bruto_vloeropp,2) kosten,
|
||
alg_g.alg_gebouw_key
|
||
FROM alg_v_aanweziggebouw alg_g,
|
||
alg_v_aanwezigverdieping alg_v,
|
||
alg_v_aanwezigruimte alg_r,
|
||
alg_onrgoedkenmerk alg_k1,
|
||
alg_onrgoedkenmerk alg_k2,
|
||
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 470) n,
|
||
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 1) u
|
||
WHERE alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
|
||
AND alg_v.alg_verdieping_key = alg_r.alg_verdieping_key
|
||
AND alg_r.alg_ruimte_key = alg_k1.alg_onrgoed_key(+)
|
||
AND alg_k1.alg_kenmerk_key(+) = 1001 --nivo
|
||
AND alg_k1.alg_onrgoedkenmerk_waarde = TO_CHAR(n.fac_usrdata_key)
|
||
AND alg_r.alg_ruimte_key = alg_k2.alg_onrgoed_key(+)
|
||
AND alg_k2.alg_kenmerk_key(+) = 2 -- srtvloer
|
||
AND alg_k2.alg_onrgoedkenmerk_waarde = u.fac_usrdata_key(+)
|
||
AND u.fac_usrtab_key(+) = 1
|
||
ORDER BY alg_v.alg_verdieping_volgnr, alg_r.alg_ruimte_upper_nr;
|
||
|
||
-- AKZA#476/AKZA#669
|
||
CREATE OR REPLACE VIEW akz_v_jaarkosten_per_ordernr (fclt_f_ordernr,
|
||
gebouw,
|
||
fclt_f_jaar,
|
||
besteding)
|
||
AS
|
||
SELECT ordernr fclt_f_ordernr,
|
||
MIN ( gebouw_omschrijving
|
||
|| DECODE ((SELECT COUNT (alg_gebouw_omschrijving)
|
||
FROM ALG_GEBOUW
|
||
WHERE alg_gebouw_ordernr = ordernr),
|
||
'1', '',
|
||
', .....'
|
||
)
|
||
) gebouw,
|
||
jaar fclt_f_jaar, SUM (besteding_som) besteding
|
||
FROM (SELECT g.alg_gebouw_ordernr ordernr,
|
||
g.alg_gebouw_omschrijving gebouw_omschrijving,
|
||
TO_CHAR (m.mld_melding_datum, 'YYYY') jaar,
|
||
SUM
|
||
( o.mld_opdr_kosten
|
||
+ NVL
|
||
((SELECT Fac.safe_to_number
|
||
(mld_kenmerkopdr_waarde)
|
||
FROM MLD_KENMERKOPDR ko
|
||
WHERE mld_kenmerk_key = 2
|
||
AND mld_kenmerkopdr_verwijder IS NULL
|
||
AND o.mld_opdr_key = ko.mld_opdr_key),
|
||
0
|
||
)
|
||
) besteding_som
|
||
FROM MLD_MELDING m,
|
||
MLD_OPDR o,
|
||
ALG_GEBOUW g,
|
||
alg_v_onroerendgoed og,
|
||
akza_v_kostenplaats k
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND og.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
|
||
AND og.alg_gebouw_key = g.alg_gebouw_key
|
||
AND o.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND k.prs_kostenplaats_module = 'ALG'
|
||
GROUP BY g.alg_gebouw_ordernr,
|
||
g.alg_gebouw_omschrijving,
|
||
TO_CHAR (m.mld_melding_datum, 'YYYY'))
|
||
GROUP BY ordernr, jaar
|
||
UNION ALL
|
||
SELECT ordernr fclt_f_ordernr,
|
||
MIN
|
||
( terein_omschrijving
|
||
|| DECODE ((SELECT COUNT (alg_terreinsector_omschrijving)
|
||
FROM ALG_TERREINSECTOR
|
||
WHERE alg_terreinsector_ordernr = ordernr),
|
||
'1', '',
|
||
', .....'
|
||
)
|
||
) terrein,
|
||
jaar fclt_f_jaar, SUM (besteding_som) besteding
|
||
FROM (SELECT g.alg_terreinsector_ordernr ordernr,
|
||
g.alg_terreinsector_omschrijving terein_omschrijving,
|
||
TO_CHAR (m.mld_melding_datum, 'YYYY') jaar,
|
||
SUM
|
||
( o.mld_opdr_kosten
|
||
+ NVL
|
||
((SELECT Fac.safe_to_number
|
||
(mld_kenmerkopdr_waarde)
|
||
FROM MLD_KENMERKOPDR ko
|
||
WHERE mld_kenmerk_key = 2
|
||
AND mld_kenmerkopdr_verwijder IS NULL
|
||
AND o.mld_opdr_key = ko.mld_opdr_key),
|
||
0
|
||
)
|
||
) besteding_som
|
||
FROM MLD_MELDING m,
|
||
MLD_OPDR o,
|
||
ALG_TERREINSECTOR g,
|
||
alg_v_onroerendgoed og,
|
||
akza_v_kostenplaats k
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND og.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
|
||
AND og.alg_terreinsector_key = g.alg_terreinsector_key
|
||
AND o.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND k.prs_kostenplaats_module = 'ALG'
|
||
GROUP BY g.alg_terreinsector_ordernr,
|
||
g.alg_terreinsector_omschrijving,
|
||
TO_CHAR (m.mld_melding_datum, 'YYYY'))
|
||
GROUP BY ordernr, jaar
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
------------------------------- GRAPHICS THEMA'S -------------------------------------------------
|
||
--------------------------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW akza_v_ruimtecode
|
||
(ALG_RUIMTE_KEY, RUIMTECODE)
|
||
AS
|
||
SELECT r.alg_ruimte_key, v.alg_verdieping_code || '.' || SUBSTR(r.alg_ruimte_nr,2) ruimtecode
|
||
FROM alg_ruimte r, alg_verdieping v
|
||
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND r.alg_ruimte_nr LIKE '0%'
|
||
UNION
|
||
SELECT r.alg_ruimte_key, v.alg_verdieping_code || '.' || r.alg_ruimte_nr
|
||
FROM alg_ruimte r, alg_verdieping v
|
||
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND r.alg_ruimte_nr NOT LIKE '0%';
|
||
|
||
CREATE OR REPLACE VIEW cad_v_alg_ruimte
|
||
(ALG_RUIMTE_KEY, ALG_VERDIEPING_KEY, ALG_RUIMTE_CADLABEL, ALG_RUIMTE_NR, ALG_RUIMTE_OMSCHRIJVING,
|
||
ALG_RUIMTE_OPPERVLAKTE, ALG_SRTRUIMTE_OMSCHRIJVING, AKZA_RUIMTECODE)
|
||
AS
|
||
SELECT r.alg_ruimte_key, r.alg_verdieping_key, r.alg_ruimte_nr,
|
||
r.alg_ruimte_nr, r.alg_ruimte_omschrijving,
|
||
TO_CHAR (alg_ruimte_bruto_vloeropp) || ' m2',
|
||
sr.alg_srtruimte_omschrijving, ar.ruimtecode
|
||
FROM alg_v_aanwezigruimte r, alg_srtruimte sr, akza_v_ruimtecode ar
|
||
WHERE sr.alg_srtruimte_key(+) = r.alg_srtruimte_key
|
||
AND r.alg_ruimte_key = ar.alg_ruimte_key;
|
||
|
||
--- voor room_dep thema
|
||
CREATE OR REPLACE VIEW akza_v_cad_ruimte_eenheid (parentkey, code, waarde)
|
||
AS
|
||
SELECT r.alg_verdieping_key, r.alg_ruimte_nr, 'NIETVERH'
|
||
FROM prs_perslidwerkplek pw,
|
||
prs_werkplek w,
|
||
prs_afdeling a,
|
||
prs_afdeling e,
|
||
prs_perslid p,
|
||
alg_ruimte r
|
||
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key
|
||
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
||
AND e.prs_afdeling_parentkey IS NULL
|
||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_naam = 'NIET VERH'
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND pw.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
GROUP BY r.alg_verdieping_key, r.alg_ruimte_nr
|
||
UNION
|
||
SELECT r.alg_verdieping_key, r.alg_ruimte_nr, MAX (e.prs_afdeling_naam)
|
||
FROM prs_perslidwerkplek pw,
|
||
prs_werkplek w,
|
||
prs_afdeling a,
|
||
prs_afdeling e,
|
||
prs_perslid p,
|
||
alg_ruimte r
|
||
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key
|
||
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
|
||
AND e.prs_afdeling_parentkey IS NULL
|
||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND a.prs_afdeling_naam <> 'NIET VERH'
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND pw.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
GROUP BY r.alg_verdieping_key, r.alg_ruimte_nr;
|
||
|
||
--- voor room_cyl thema
|
||
CREATE OR REPLACE VIEW akza_v_cad_ruimte_gasfles (ALG_RUIMTE_KEY, WAARDE)
|
||
AS
|
||
SELECT r.alg_ruimte_key, COUNT (d.ins_deel_key)
|
||
FROM alg_v_aanwezigruimte r, ins_v_aanwezigdeel d
|
||
WHERE r.alg_ruimte_key = d.ins_alg_ruimte_key AND d.ins_srtdeel_key = 425
|
||
GROUP BY r.alg_ruimte_key;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_cad_ruimte_bezetting
|
||
(
|
||
ALG_RUIMTE_KEY,
|
||
WAARDE
|
||
)
|
||
AS
|
||
SELECT ar.alg_ruimte_key,
|
||
-- bepaal bezetting: wel/niet verhuurd, alle/een paar/geen werkplekken vrij
|
||
TO_CHAR(DECODE (
|
||
SUM (bezetting) / (COUNT (prs_werkplek_key) * 100),
|
||
0,
|
||
-- 150 = geen afdeling toegewezen, dus niet verhuurd
|
||
-- 0 = wel een afdeling, maar alle werkplekken vrij
|
||
DECODE ( ( SELECT COUNT (prs_afdeling_key)
|
||
FROM prs_v_aanwezigruimteafdeling ara
|
||
WHERE ara.alg_ruimte_key = ar.alg_ruimte_key
|
||
GROUP BY alg_ruimte_key),
|
||
NULL, 150,
|
||
0, 150,
|
||
0),
|
||
-- alles tussen 0 en 100 wordt 50 ('deels bezet')
|
||
akz.akz_f_cad_ruimte_bezetting (
|
||
SUM (bezetting) / (COUNT (prs_werkplek_key)))))
|
||
FROM ( SELECT awp.prs_alg_ruimte_key alg_ruimte_key,
|
||
awp.prs_werkplek_key,
|
||
SUM (COALESCE (prs_perslidwerkplek_bezetting, 0)) bezetting,
|
||
a2.prs_afdeling_key
|
||
FROM alg_v_aanwezigruimte ar,
|
||
prs_werkplek awp,
|
||
prs_perslidwerkplek apwp,
|
||
prs_v_aanwezigperslid ap,
|
||
prs_afdeling a1,
|
||
prs_afdeling a2,
|
||
prs_v_aanwezigruimteafdeling ara
|
||
WHERE awp.prs_alg_ruimte_key = ar.alg_ruimte_key
|
||
AND apwp.prs_werkplek_key(+) = awp.prs_werkplek_key
|
||
AND ap.prs_perslid_key(+) = apwp.prs_perslid_key
|
||
AND a1.prs_afdeling_key(+) = ap.prs_afdeling_key
|
||
AND ara.alg_ruimte_key(+) = ar.alg_ruimte_key
|
||
AND a2.prs_afdeling_key(+) = ara.prs_afdeling_key
|
||
GROUP BY prs_alg_ruimte_key,
|
||
awp.prs_werkplek_key,
|
||
a2.prs_afdeling_key) x,
|
||
alg_v_aanwezigruimte ar
|
||
WHERE ar.alg_ruimte_key = x.alg_ruimte_key
|
||
GROUP BY ar.alg_ruimte_key;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_thema_ruimteafd
|
||
(
|
||
ALG_RUIMTE_KEY,
|
||
WAARDE,
|
||
WAARDE_KEY
|
||
)
|
||
AS
|
||
SELECT x.alg_ruimte_key,
|
||
DECODE (y.aantal,
|
||
NULL, '[Leegstand]',
|
||
1, SUBSTR (y.sp, 1, 60),
|
||
'[Meerdere afdelingen]'),
|
||
DECODE (y.aantal, NULL, -1, 1, y.sp_key, NULL)
|
||
FROM (SELECT r.alg_ruimte_key
|
||
FROM alg_v_aanwezigruimte r,
|
||
alg_v_aanwezigsrtruimte sr
|
||
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key
|
||
AND sr.prs_verhuurbaar IS NOT NULL
|
||
AND sr.alg_srtruimte_upper NOT LIKE '%VERKEER%') x
|
||
LEFT JOIN
|
||
( SELECT ra.alg_ruimte_key,
|
||
MIN (a.prs_afdeling_naam1) sp,
|
||
MIN (a.prs_afdeling_key) sp_key,
|
||
COUNT (ra.prs_afdeling_key) aantal
|
||
FROM prs_v_aanwezigruimteafdeling ra,
|
||
prs_v_aanwezigafdeling a
|
||
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
|
||
GROUP BY ra.alg_ruimte_key) y
|
||
ON x.alg_ruimte_key = y.alg_ruimte_key
|
||
UNION ALL
|
||
SELECT NULL, SUBSTR (a.prs_afdeling_naam1, 1, 60), a.prs_afdeling_key
|
||
FROM prs_v_aanwezigafdeling a
|
||
WHERE NOT EXISTS (SELECT ra.prs_afdeling_key
|
||
FROM prs_v_aanwezigruimteafdeling ra
|
||
WHERE ra.prs_afdeling_key = a.prs_afdeling_key);
|
||
|
||
--- voor room_cov thema
|
||
CREATE OR REPLACE VIEW akza_v_cad_ruimte_vloersoort (ALG_RUIMTE_KEY, WAARDE)
|
||
AS
|
||
SELECT r.alg_ruimte_nr, COUNT (d.ins_deel_key)
|
||
FROM alg_v_aanwezigruimte r, ins_v_aanwezigdeel d
|
||
WHERE r.alg_ruimte_key = d.ins_alg_ruimte_key AND d.ins_srtdeel_key = 425
|
||
GROUP BY r.alg_ruimte_nr;
|
||
|
||
-- AKZA#13268 Reserverings Plattegrond
|
||
-- dd. 18-10-2007 tonen we alles wat het komende uur komt of wat bezig is.
|
||
CREATE OR REPLACE VIEW akza_v_cad_thema_reservering
|
||
(ALG_RUIMTE_KEY, WAARDE)
|
||
AS
|
||
SELECT rar.alg_ruimte_key alg_ruimte_key, '1' waarde
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte rar,
|
||
res_opstelling ro
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
AND rar.res_ruimte_key = rr.res_ruimte_key
|
||
AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24) AND res_rsv_ruimte_tot;
|
||
|
||
|
||
-- dd. 18-10-2007 tonen we alles wat het komende uur komt of wat bezig is.
|
||
-- Let op: bij eventuele overlap pakken we de laatste van de twee (de aanstaande)
|
||
-- toevallig redden we eenvoudig dat door de strak gedefinieerde tekst
|
||
CREATE OR REPLACE VIEW akza_v_cad_ruimte_reservering
|
||
(ALG_RUIMTE_KEY, WAARDE)
|
||
AS
|
||
SELECT rar.alg_ruimte_key,
|
||
MAX ( res_ruimte_nr
|
||
|| '~'
|
||
|| TO_CHAR (res_rsv_ruimte_van, 'HH24:MI')
|
||
|| '-'
|
||
|| TO_CHAR (res_rsv_ruimte_tot, 'HH24:MI')
|
||
|| '~[s60]host: '
|
||
|| prs_perslid_naam
|
||
|| '~[s80][b]'
|
||
|| res_rsv_ruimte_omschrijving
|
||
) waarde
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_alg_ruimte rar,
|
||
res_opstelling ro,
|
||
prs_perslid pp
|
||
WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rro.res_ruimte_key = rr.res_ruimte_key
|
||
AND rro.res_opstelling_key = ro.res_opstelling_key
|
||
AND rar.res_ruimte_key = rr.res_ruimte_key
|
||
AND SYSDATE BETWEEN res_rsv_ruimte_van - (1 / 24) AND res_rsv_ruimte_tot
|
||
AND pp.prs_perslid_key = res_rsv_ruimte_host_key
|
||
GROUP BY rar.alg_ruimte_key;
|
||
|
||
-- AKZA#22941: Schoonmaak(nivo) in Graphics
|
||
CREATE OR REPLACE VIEW akza_v_thema_schnivo
|
||
(
|
||
alg_ruimte_key,
|
||
waarde,
|
||
waarde_key
|
||
)
|
||
AS
|
||
SELECT a.alg_ruimte_key,
|
||
COALESCE (b.schnivo, '[Onbekend]'),
|
||
COALESCE (b.schnivo_key, -1)
|
||
FROM (SELECT r.alg_ruimte_key
|
||
FROM alg_v_aanwezigruimte r
|
||
WHERE alg_srtruimte_key != 961) a -- 'Fictieve ruimte'
|
||
LEFT JOIN
|
||
(SELECT ok.alg_onrgoed_key,
|
||
ud.fac_usrdata_omschr schnivo,
|
||
ud.fac_usrdata_key schnivo_key
|
||
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
|
||
WHERE ok.alg_kenmerk_key = 1001 -- schoonmaakniveau
|
||
AND ok.alg_onrgoed_niveau = 'R'
|
||
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND ok.alg_onrgoedkenmerk_waarde = TO_CHAR(ud.fac_usrdata_key) ) b
|
||
ON a.alg_ruimte_key = b.alg_onrgoed_key
|
||
UNION ALL
|
||
SELECT NULL,
|
||
ud.fac_usrdata_omschr schnivo,
|
||
ud.fac_usrdata_key schnivo_key
|
||
FROM fac_usrdata ud
|
||
WHERE ud.fac_usrtab_key = 470
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_onrgoedkenmerk ok
|
||
WHERE ok.alg_kenmerk_key = 1001 -- schoonmaakniveau
|
||
AND ok.alg_onrgoedkenmerk_waarde = ud.fac_usrdata_key);
|
||
|
||
CREATE OR REPLACE TRIGGER akza_t_thema_schnivo_i_iu
|
||
INSTEAD OF INSERT OR UPDATE
|
||
ON akza_v_thema_schnivo
|
||
BEGIN
|
||
IF UPDATING -- oude hard weggooien; dus DELETE (lekker opruimen)!
|
||
THEN
|
||
DELETE alg_onrgoedkenmerk
|
||
WHERE alg_onrgoed_key = :new.alg_ruimte_key
|
||
AND alg_onrgoed_niveau = 'R'
|
||
AND alg_kenmerk_key = 1001; -- schoonmaakniveau
|
||
END IF;
|
||
|
||
BEGIN
|
||
IF :new.waarde_key != -1
|
||
THEN
|
||
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
|
||
alg_onrgoed_niveau,
|
||
alg_kenmerk_key,
|
||
alg_onrgoedkenmerk_waarde)
|
||
VALUES (:new.alg_ruimte_key,
|
||
'R',
|
||
1001, -- schoonmaakniveau
|
||
:new.waarde_key);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN DUP_VAL_ON_INDEX -- was al aanwezig
|
||
THEN
|
||
NULL;
|
||
END;
|
||
END;
|
||
/
|
||
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
------------------------------- SERVICEDESK RAPPORTAGE FUNCTIES ----------------------------------
|
||
--------------------------------------------------------------------------------------------------
|
||
|
||
-- 001 Uitgegeven aan uitvoerende: Servicedesk.
|
||
CREATE OR REPLACE VIEW akza_v_rap_uitg_servicedesk
|
||
(
|
||
fclt_f_uitvoerende,
|
||
fclt_f_mldnr,
|
||
omschrijving,
|
||
fclt_f_meldernaam,
|
||
begindatum,
|
||
dagen,
|
||
afmelddatum
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam fclt_f_uitvoerende,
|
||
TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
|
||
o.mld_opdr_omschrijving omschrijving,
|
||
pf.prs_perslid_naam_full fclt_f_meldernaam,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
|
||
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
|
||
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
|
||
FROM mld_opdr o, prs_bedrijf b, mld_melding m, prs_v_perslid_fullnames_all pf
|
||
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND (b.prs_bedrijf_key IN (7665, 7651, 7648))
|
||
AND o.mld_statusopdr_key = 5;
|
||
|
||
-- 002 Uitgegeven aan uitvoerenden: Schoonmaak.
|
||
CREATE OR REPLACE VIEW akza_v_rap_uitg_schoonmaak
|
||
(
|
||
fclt_f_uitvoerende,
|
||
fclt_f_mldnr,
|
||
omschrijving,
|
||
fclt_f_meldernaam,
|
||
begindatum,
|
||
dagen,
|
||
afmelddatum
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam fclt_f_uitvoerende,
|
||
TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
|
||
o.mld_opdr_omschrijving omschrijving,
|
||
pf.prs_perslid_naam_full fclt_f_meldernaam,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
|
||
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
|
||
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
|
||
FROM mld_opdr o, prs_bedrijf b, mld_melding m, prs_v_perslid_fullnames_all pf
|
||
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND o.mld_statusopdr_key = 5
|
||
AND (b.prs_bedrijf_key IN (7622, 8062));
|
||
|
||
-- 003 Uitgegeven aan uitvoerenden: Verhuizen and Kantoorbeheer.
|
||
CREATE OR REPLACE VIEW akza_v_rap_uitg_kantoorbeheer
|
||
(
|
||
fclt_f_uitvoerende,
|
||
fclt_f_mldnr,
|
||
omschrijving,
|
||
fclt_f_meldernaam,
|
||
begindatum,
|
||
dagen,
|
||
afmelddatum
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam fclt_f_uitvoerende,
|
||
TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
|
||
o.mld_opdr_omschrijving omschrijving,
|
||
pf.prs_perslid_naam_full fclt_f_meldernaam,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
|
||
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
|
||
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
|
||
FROM mld_opdr o, prs_bedrijf b, mld_melding m, prs_v_perslid_fullnames_all pf
|
||
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND b.prs_bedrijf_key IN (7643, 7644, 7646, 7654, 7662)
|
||
AND o.mld_statusopdr_key = 5;
|
||
|
||
-- 004 Uitgegeven aan ALF Elektro uitvoerenden.
|
||
CREATE OR REPLACE VIEW akza_v_rap_uitg_electro_alf
|
||
(
|
||
fclt_f_uitvoerende,
|
||
fclt_f_mldnr,
|
||
omschrijving,
|
||
fclt_f_meldernaam,
|
||
begindatum,
|
||
dagen,
|
||
afmelddatum
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam fclt_f_uitvoerende,
|
||
TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
|
||
o.mld_opdr_omschrijving omschrijving,
|
||
pf.prs_perslid_naam_full fclt_f_meldernaam,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
|
||
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
|
||
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
|
||
FROM mld_opdr o, prs_bedrijf b, mld_melding m, prs_v_perslid_fullnames_all pf
|
||
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND b.prs_bedrijf_key IN (7667, 7672, 7676, 7683, 7960, 12393)
|
||
AND o.mld_statusopdr_key = 5;
|
||
|
||
-- 005 Uitgegeven aan uitvoerenden: vakgroepbeheer Elektro.
|
||
CREATE OR REPLACE VIEW akza_v_rap_uitg_electro
|
||
(
|
||
fclt_f_mldnr,
|
||
begindatum,
|
||
dagen,
|
||
opdrachtomschrijving,
|
||
fclt_f_uitvoerende,
|
||
afmelddatum
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
|
||
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
|
||
o.mld_opdr_omschrijving opdrachtomschrijving,
|
||
prs_bedrijf_naam fclt_f_uitvoerende,
|
||
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
|
||
FROM mld_melding m, mld_opdr o, prs_bedrijf b, prs_v_perslid_fullnames_all pf
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND (UPPER (pf.prs_perslid_naam_full) LIKE 'PELGRIM%')
|
||
AND o.mld_statusopdr_key = 5;
|
||
|
||
-- 006 Uitgegeven aan uitvoerenden: accountmanager "Terrein & Derden".
|
||
CREATE OR REPLACE VIEW akza_v_rap_uitg_accman_td
|
||
(
|
||
fclt_f_mldnr,
|
||
begindatum,
|
||
dagen,
|
||
opdrachtomschrijving,
|
||
fclt_f_order_nr,
|
||
fclt_f_uitvoerende,
|
||
afmelddatum
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') begindatum,
|
||
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
|
||
o.mld_opdr_omschrijving opdrachtomschrijving,
|
||
o.mld_opdr_ordernr fclt_f_order_nr,
|
||
prs_bedrijf_naam fclt_f_uitvoerende,
|
||
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') afmelddatum
|
||
FROM mld_melding m, mld_opdr o, prs_bedrijf b, prs_v_perslid_fullnames_all pf
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND (UPPER (pf.prs_perslid_naam_full) LIKE 'SWEERS%')
|
||
AND o.mld_statusopdr_key = 5
|
||
ORDER BY b.prs_bedrijf_naam;
|
||
|
||
-- 007 Uitgegeven aan uitvoerenden: accountmanager "AHQ".
|
||
CREATE OR REPLACE VIEW akza_v_rap_uitg_accman_ahq
|
||
AS
|
||
SELECT b.prs_bedrijf_naam hide_f_prs_bedrijf_naam,
|
||
TO_CHAR (o.mld_melding_key) fclt_f_meldnr,
|
||
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') opdr_datum,
|
||
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) uitv_dgn, o.mld_opdr_omschrijving meldtekst,
|
||
g.alg_gebouw_naam gebouw, b.prs_bedrijf_naam fclt_f_uitvoerende,
|
||
g.alg_verdieping_omschrijving verdieping,
|
||
o.mld_opdr_ordernr fclt_f_int_ord_nr
|
||
FROM mld_melding m, mld_opdr o, prs_bedrijf b, alg_v_allonrgoed_gegevens g, prs_v_perslid_fullnames_all pf
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND (UPPER (pf.prs_perslid_naam_full) LIKE 'RUTJES J%')
|
||
AND o.mld_statusopdr_key = 5;
|
||
|
||
-- 008 Kosten op internal- of bewonersordernummer per periode.
|
||
CREATE OR REPLACE VIEW akza_v_rap_kosten_pp
|
||
(
|
||
fclt_f_ord_nr,
|
||
melddatum,
|
||
datumverw,
|
||
mldnr,
|
||
meldernaam,
|
||
uitvoerder,
|
||
meldtekst,
|
||
meldstatus,
|
||
kosten_k,
|
||
kosten
|
||
)
|
||
AS
|
||
SELECT o.mld_opdr_ordernr fclt_f_ord_nr,
|
||
o.mld_opdr_datumbegin melddatum,
|
||
fac.gettrackingdate ('MLDVER', m.mld_melding_key) datumverw,
|
||
TO_CHAR (o.mld_melding_key) mldnr,
|
||
pf.prs_perslid_naam_full meldernaam,
|
||
b.prs_bedrijf_naam uitvoerder,
|
||
o.mld_opdr_omschrijving meldtekst,
|
||
o.mld_statusopdr_key || '. ' || mld_statusopdr_omschrijving meldstatus,
|
||
m.mld_kosten_klant kosten_k,
|
||
o.mld_opdr_kosten
|
||
+ NVL (
|
||
(SELECT fac.safe_to_number (mld_kenmerkopdr_waarde)
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE mld_kenmerk_key = 2
|
||
AND mld_kenmerkopdr_verwijder IS NULL
|
||
AND o.mld_opdr_key = ko.mld_opdr_key),
|
||
0
|
||
)
|
||
kosten
|
||
FROM mld_melding m, mld_opdr o, prs_bedrijf b, mld_statusopdr so, prs_v_perslid_fullnames_all pf
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND so.mld_statusopdr_key = o.mld_statusopdr_key
|
||
AND m.mld_melding_status <> 6
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND o.mld_statusopdr_key = 6
|
||
AND o.mld_opdr_kosten
|
||
+ (SELECT NVL (fac.safe_to_number (mld_kenmerkopdr_waarde), 0)
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE mld_kenmerk_key = 2
|
||
AND mld_kenmerkopdr_verwijder IS NULL
|
||
AND o.mld_opdr_key = ko.mld_opdr_key) > 0
|
||
AND o.mld_opdr_ordernr IS NOT NULL
|
||
AND (o.mld_opdr_ordernr LIKE 'B-%' OR o.mld_opdr_ordernr LIKE 'I-%' OR o.mld_opdr_ordernr LIKE 'O-%')
|
||
UNION ALL -- ALL want anders worden dubbelen er uit gehaald
|
||
SELECT o.mld_opdr_ordernr fclt_f_ord_nr,
|
||
o.mld_opdr_datumbegin melddatum,
|
||
fac.gettrackingdate ('MLDVER', m.mld_melding_key) datumverw,
|
||
TO_CHAR (o.mld_melding_key) mldnr,
|
||
pf.prs_perslid_naam_full meldernaam,
|
||
b.prs_bedrijf_naam uitvoerder,
|
||
o.mld_opdr_omschrijving meldtekst,
|
||
o.mld_statusopdr_key || '. ' || mld_statusopdr_omschrijving meldstatus,
|
||
m.mld_kosten_klant kosten_k,
|
||
o.mld_opdr_kosten
|
||
+ NVL (
|
||
(SELECT fac.safe_to_number (mld_kenmerkopdr_waarde)
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE mld_kenmerk_key = 2
|
||
AND mld_kenmerkopdr_verwijder IS NULL
|
||
AND o.mld_opdr_key = ko.mld_opdr_key),
|
||
0
|
||
)
|
||
kosten
|
||
FROM mld_melding m, mld_opdr o, prs_bedrijf b, mld_statusopdr so, prs_v_perslid_fullnames_all pf
|
||
WHERE m.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND so.mld_statusopdr_key = o.mld_statusopdr_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND TO_CHAR (fac.gettrackingdate ('MLDVER', m.mld_melding_key), 'YYYY') > '2001'
|
||
AND o.mld_statusopdr_key = 7
|
||
AND o.mld_opdr_kosten
|
||
+ (SELECT NVL (fac.safe_to_number (mld_kenmerkopdr_waarde), 0)
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE mld_kenmerk_key = 2
|
||
AND mld_kenmerkopdr_verwijder IS NULL
|
||
AND o.mld_opdr_key = ko.mld_opdr_key) > 0
|
||
AND o.mld_opdr_ordernr IS NOT NULL
|
||
AND (o.mld_opdr_ordernr LIKE 'B-%' OR o.mld_opdr_ordernr LIKE 'I-%' OR o.mld_opdr_ordernr LIKE 'O-%');
|
||
|
||
CREATE OR REPLACE VIEW akza_v_rap_uitg
|
||
(
|
||
fclt_f_uitvoerende,
|
||
fclt_f_mldnr,
|
||
omschrijving,
|
||
fclt_f_meldernaam,
|
||
begindatum,
|
||
dagen,
|
||
afmelddatum
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf_naam fclt_f_uitvoerende,
|
||
TO_CHAR (m.mld_melding_key) fclt_f_mldnr,
|
||
o.mld_opdr_omschrijving omschrijving,
|
||
pf.prs_perslid_naam_full fclt_f_meldernaam,
|
||
o.mld_opdr_datumbegin begindatum,
|
||
TO_CHAR (fac.count_Work_Days(o.mld_opdr_datumbegin, o.mld_opdr_einddatum)) dagen,
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) afmelddatum
|
||
FROM mld_opdr o, prs_bedrijf b, mld_melding m, prs_v_perslid_fullnames_all pf
|
||
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND o.mld_melding_key = m.mld_melding_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND o.mld_statusopdr_key = 5;
|
||
|
||
-- 010 Uitgegeven aan uitvoerenden: vakgroepbeheer Werktuigbouw
|
||
--aka Toms view
|
||
CREATE OR REPLACE VIEW akza_v_rap_uitg_wtb
|
||
(
|
||
fclt_f_uitvoerende,
|
||
fclt_f_mldnr,
|
||
melding_opdracht_omschrijving,
|
||
datum_opdr,
|
||
dagen,
|
||
afgemeld,
|
||
fclt_f_meldernaam
|
||
)
|
||
AS
|
||
SELECT prs_bedrijf.prs_bedrijf_naam,
|
||
TO_CHAR (mld_opdr.mld_melding_key),
|
||
mld_opdr.mld_opdr_omschrijving,
|
||
TO_CHAR (mld_opdr.mld_opdr_datumbegin, 'DD-MM-YYYY') mld_opdr_datumbegin,
|
||
TO_CHAR (fac.count_Work_Days(mld_opdr.mld_opdr_datumbegin, mld_opdr.mld_opdr_einddatum)),
|
||
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'DD-MM-YYYY') mld_melding_afgemeld,
|
||
pf.prs_perslid_naam_full
|
||
FROM mld_opdr, prs_bedrijf, mld_melding m, prs_v_perslid_fullnames_all pf
|
||
WHERE mld_opdr.mld_uitvoerende_keys = prs_bedrijf.prs_bedrijf_key
|
||
AND mld_opdr.mld_melding_key = m.mld_melding_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND mld_opdr.mld_statusopdr_key = 5
|
||
AND ( prs_bedrijf.prs_bedrijf_key = 7657
|
||
OR prs_bedrijf.prs_bedrijf_key = 8143
|
||
OR prs_bedrijf.prs_bedrijf_key = 8144);
|
||
|
||
-- AKZA#22617: afgemelde meldingen en opdrachten, met kosten.
|
||
-- key 18 = MLDAFM, key 26 = ORDAFM
|
||
CREATE OR REPLACE VIEW akza_v_rap_afmelders_kosten
|
||
AS
|
||
SELECT m.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr hide_f_srt
|
||
,vg.ins_discipline_key fclt_3d_discipline_key
|
||
,m.mld_alg_locatie_key fclt_3d_locatie_key
|
||
,TO_CHAR(m.mld_melding_key) meldingnr
|
||
,vg.ins_discipline_omschrijving fclt_f_vakgroep
|
||
,sm.mld_stdmelding_omschrijving melding
|
||
,TO_CHAR(ft.fac_tracking_datum, 'DD-MM-YYYY') fclt_d_afgemeld
|
||
,pf.prs_perslid_naam_full door
|
||
,CASE
|
||
WHEN o.mld_opdr_key IS NULL THEN NULL
|
||
ELSE m.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr
|
||
END
|
||
opdracht
|
||
,so.mld_statusopdr_omschrijving opdrachtstatus
|
||
,(SELECT pf.prs_perslid_naam_full
|
||
FROM fac_tracking ft
|
||
,prs_v_perslid_fullnames pf
|
||
WHERE ft.fac_srtnotificatie_key = 26
|
||
AND ft.fac_tracking_refkey = o.mld_opdr_key
|
||
AND pf.prs_perslid_key = ft.prs_perslid_key)
|
||
afmelder
|
||
,o.mld_opdr_kosten kosten
|
||
FROM fac_tracking ft
|
||
,mld_melding m
|
||
,mld_stdmelding sm
|
||
,mld_discipline vg
|
||
,mld_opdr o
|
||
,mld_statusopdr so
|
||
,prs_v_perslid_fullnames pf
|
||
WHERE ft.fac_srtnotificatie_key = 18
|
||
AND pf.prs_perslid_key = ft.prs_perslid_key
|
||
AND m.mld_melding_key = ft.fac_tracking_refkey
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND vg.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND o.mld_melding_key(+) = m.mld_melding_key
|
||
AND so.mld_statusopdr_key(+) = o.mld_statusopdr_key;
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
------------------------------- OUTLETBEHEER -----------------------------------------------------
|
||
--------------------------------------------------------------------------------------------------
|
||
|
||
-- AKZA#22294: Voor indienstredingsworkflows
|
||
-- 646: Outlet
|
||
CREATE OR REPLACE VIEW akza_v_outlets
|
||
AS
|
||
SELECT ins_deel_key, ins_deel_omschrijving
|
||
FROM ins_deel
|
||
WHERE ins_srtdeel_key = 646
|
||
AND ins_deel_verwijder IS NULL
|
||
AND ins_deel_parent_key IS NOT NULL;
|
||
|
||
-- views for report INS039
|
||
CREATE OR REPLACE VIEW akz_v_outlet_prijs
|
||
(INS_DEEL_KEY, INS_DEEL_OMSCHRIJVING, INS_DEEL_UPPER, ALG_PLAATSAANDUIDING,
|
||
AANSLUITTYPE_PRIJS, NETWERK_PRIJS, OPTIE2_PRIJS, OPTIE3_PRIJS, OPTIE4_PRIJS, KAMERHUB_PRIJS,
|
||
TOTAALPRIJS, AANSLUITTYPE)
|
||
AS
|
||
SELECT od.ins_deel_key,
|
||
od.ins_deel_omschrijving,
|
||
od.ins_deel_upper,
|
||
(SELECT alg_l.alg_locatie_code
|
||
|| '-'
|
||
|| alg_g.alg_gebouw_code
|
||
|| '-'
|
||
|| alg_v.alg_verdieping_code
|
||
|| '-'
|
||
|| alg_r.alg_ruimte_nr
|
||
FROM alg_ruimte alg_r,
|
||
alg_verdieping alg_v,
|
||
alg_gebouw alg_g,
|
||
alg_locatie alg_l
|
||
WHERE alg_r.alg_verdieping_key = alg_v.alg_verdieping_key
|
||
AND alg_v.alg_gebouw_key = alg_g.alg_gebouw_key
|
||
AND alg_g.alg_locatie_key = alg_l.alg_locatie_key
|
||
AND alg_r.alg_ruimte_key = od.ins_alg_ruimte_key) alg_plaatsaanduiding,
|
||
NVL(fuda.fac_usrdata_prijs, 0) aansluittype_prijs,
|
||
NVL(fudn.fac_usrdata_prijs, 0) netwerk_prijs,
|
||
NVL(fudo2.fac_usrdata_prijs, 0) optie2_prijs,
|
||
NVL(fudo3.fac_usrdata_prijs, 0) optie3_prijs,
|
||
NVL(fudo4.fac_usrdata_prijs, 0) optie4_prijs,
|
||
NVL(fudk.fac_usrdata_prijs, 0) kamerhub_prijs,
|
||
(NVL(fuda.fac_usrdata_prijs, 0)
|
||
+ NVL(fudn.fac_usrdata_prijs, 0)
|
||
+ NVL(fudk.fac_usrdata_prijs, 0)
|
||
+ NVL(fudo2.fac_usrdata_prijs, 0)
|
||
+ NVL(fudo3.fac_usrdata_prijs, 0)
|
||
+ NVL(fudo4.fac_usrdata_prijs, 0)) totaalprijs,
|
||
fuda.fac_usrdata_omschr aansluittype
|
||
FROM ins_v_aanwezigkenmerkdeel kd,
|
||
ins_v_aanwezigkenmerkdeel ka,
|
||
ins_v_aanwezigkenmerkdeel kn,
|
||
ins_v_aanwezigkenmerkdeel kk,
|
||
ins_v_aanwezigkenmerkdeel ko2,
|
||
ins_v_aanwezigkenmerkdeel ko3,
|
||
ins_v_aanwezigkenmerkdeel ko4,
|
||
fac_usrdata fuda,
|
||
fac_usrdata fudn,
|
||
fac_usrdata fudk,
|
||
fac_usrdata fudo2,
|
||
fac_usrdata fudo3,
|
||
fac_usrdata fudo4,
|
||
ins_deel od
|
||
WHERE od.ins_deel_key = kd.ins_deel_key
|
||
AND od.ins_deel_key = ka.ins_deel_key(+)
|
||
AND od.ins_deel_key = kn.ins_deel_key(+)
|
||
AND od.ins_deel_key = kk.ins_deel_key(+)
|
||
AND od.ins_deel_key = ko2.ins_deel_key(+)
|
||
AND od.ins_deel_key = ko3.ins_deel_key(+)
|
||
AND od.ins_deel_key = ko4.ins_deel_key(+)
|
||
AND od.ins_deel_verwijder IS NULL
|
||
AND kd.ins_kenmerkdeel_waarde = TO_CHAR (181) -- doorbelasten_key is ja
|
||
AND kd.ins_kenmerk_key = 51 -- doorbelasten
|
||
AND ka.ins_kenmerk_key(+) = 48 -- type aansluiting
|
||
AND kn.ins_kenmerk_key(+) = 53 -- netwerk
|
||
AND kk.ins_kenmerk_key(+) = 54 -- KamerHUB
|
||
AND ko2.ins_kenmerk_key(+) = 55 -- optie2
|
||
AND ko3.ins_kenmerk_key(+) = 56 -- optie3
|
||
AND ko4.ins_kenmerk_key(+) = 57 -- optie4
|
||
AND ka.ins_kenmerkdeel_waarde = TO_CHAR(fuda.fac_usrdata_key(+))
|
||
AND kn.ins_kenmerkdeel_waarde = TO_CHAR(fudn.fac_usrdata_key(+))
|
||
AND kk.ins_kenmerkdeel_waarde = TO_CHAR(fudk.fac_usrdata_key(+))
|
||
AND ko2.ins_kenmerkdeel_waarde = TO_CHAR(fudo2.fac_usrdata_key(+))
|
||
AND ko3.ins_kenmerkdeel_waarde = TO_CHAR(fudo3.fac_usrdata_key(+))
|
||
AND ko4.ins_kenmerkdeel_waarde = TO_CHAR(fudo4.fac_usrdata_key(+))
|
||
AND od.ins_srtdeel_key = 646 --'OUTLET'
|
||
ORDER BY 1;
|
||
|
||
CREATE OR REPLACE VIEW akz_v_outlet_kostpl
|
||
(INS_DEEL_KEY, INS_DEEL_OMSCHRIJVING, KOSTENPLAATS)
|
||
AS
|
||
SELECT ins_deel_key, ins_deel_omschrijving,
|
||
NVL (rkostenplaats, skostenplaats) kostenplaats
|
||
FROM (SELECT od.ins_deel_key, od.ins_deel_omschrijving,
|
||
(select k.prs_kostenplaats_nr from akza_v_kostenplaats k where k.prs_kostenplaats_key = pa.prs_kostenplaats_key) skostenplaats,
|
||
NULL rkostenplaats, 1 speciaal
|
||
FROM ins_deel od, prs_afdeling pa, ins_v_aanwezigkenmerkdeel ik
|
||
WHERE pa.prs_afdeling_key =
|
||
fac.safe_to_number (ik.ins_kenmerkdeel_waarde)
|
||
AND ik.ins_kenmerk_key = 47
|
||
AND ik.ins_deel_key = od.ins_deel_key
|
||
AND od.ins_deel_parent_key IS NOT NULL
|
||
AND od.ins_deel_verwijder IS NULL
|
||
AND od.ins_srtdeel_key = 646 --'OUTLET'
|
||
UNION
|
||
SELECT od.ins_deel_key, od.ins_deel_omschrijving,
|
||
NULL skostenplaats,
|
||
(select k.prs_kostenplaats_nr from akza_v_kostenplaats k where k.prs_kostenplaats_key = pa.prs_kostenplaats_key) rkostenplaats, 0 speciaal
|
||
FROM ins_deel od, prs_afdeling pa, prs_v_werkplekafdeling_geg wa
|
||
WHERE pa.prs_afdeling_key = wa.prs_afdeling_key
|
||
AND wa.alg_ruimte_key = od.ins_alg_ruimte_key
|
||
AND od.ins_alg_ruimte_type IN ('R', 'W')
|
||
AND od.ins_deel_parent_key IS NOT NULL
|
||
AND od.ins_deel_verwijder IS NULL
|
||
AND od.ins_srtdeel_key = 646 --'OUTLET'
|
||
AND od.ins_deel_key NOT IN (
|
||
SELECT od.ins_deel_key
|
||
FROM ins_deel od,
|
||
prs_afdeling pa,
|
||
ins_v_aanwezigkenmerkdeel ik
|
||
WHERE pa.prs_afdeling_key =
|
||
fac.safe_to_number (ik.ins_kenmerkdeel_waarde)
|
||
AND ik.ins_kenmerk_key = 47
|
||
AND ik.ins_deel_key = od.ins_deel_key
|
||
AND od.ins_deel_parent_key IS NOT NULL
|
||
AND od.ins_deel_verwijder IS NULL
|
||
AND od.ins_srtdeel_key = 646) --'OUTLET'
|
||
)
|
||
ORDER BY 1;
|
||
|
||
CREATE OR REPLACE VIEW akz_v_outlet_prijs_kostpl
|
||
(FCLT_F_KOSTENPLAATS, AANTAL, AANSLUITTYPE, TOTAALPRIJS)
|
||
AS
|
||
SELECT ok.kostenplaats,
|
||
COUNT(*) aantal,
|
||
op.aansluittype,
|
||
SUM(op.totaalprijs)
|
||
FROM akz_v_outlet_prijs op,
|
||
akz_v_outlet_kostpl ok
|
||
WHERE op.ins_deel_key = ok.ins_deel_key
|
||
GROUP BY ok.kostenplaats, op.aansluittype;
|
||
|
||
-- views for report INS040
|
||
CREATE OR REPLACE VIEW akz_v_wallplate_plaats_kenm
|
||
(INS_DEEL_KEY, INS_DEEL_OMSCHRIJVING, MODULE, POORT, NETWERK,
|
||
ALG_PLAATSAANDUIDING, OUTLETTYPE, OPMERKING, ALG_GEBOUW_KEY, ALG_GEBOUW_OMSCHRIJVING,
|
||
ALG_VERDIEPING_KEY, ALG_VERDIEPING_OMSCHRIJVING, ALG_RUIMTE_KEY)
|
||
AS
|
||
SELECT od.ins_deel_key,
|
||
od.ins_deel_omschrijving,
|
||
UPPER(a.ins_deel_hub),
|
||
UPPER(a.ins_deel_poort),
|
||
fud2.fac_usrdata_omschr netwerk,
|
||
l.alg_locatie_code
|
||
|| '-'
|
||
|| g.alg_gebouw_code
|
||
|| '-'
|
||
|| v.alg_verdieping_code
|
||
|| '-'
|
||
|| r.alg_ruimte_nr,
|
||
fud.fac_usrdata_omschr outlettype,
|
||
k3.ins_kenmerkdeel_waarde opmerking,
|
||
g.alg_gebouw_key,
|
||
g.alg_gebouw_omschrijving,
|
||
v.alg_verdieping_key alg_verdieping_key,
|
||
v.alg_verdieping_omschrijving,
|
||
od.ins_alg_ruimte_key
|
||
FROM ins_deel od,
|
||
alg_locatie l,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r,
|
||
-- type aansluiting
|
||
ins_v_aanwezigkenmerkdeel k1,
|
||
fac_usrdata fud,
|
||
-- module
|
||
ins_v_aanwezigkenmerkdeel k2,
|
||
ins_v_ins_poorten a,
|
||
-- opmerking
|
||
ins_v_aanwezigkenmerkdeel k3,
|
||
-- netwerk
|
||
ins_v_aanwezigkenmerkdeel k4,
|
||
fac_usrdata fud2
|
||
WHERE od.ins_deel_verwijder IS NULL
|
||
and r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_locatie_key = od.ins_alg_locatie_key
|
||
AND r.alg_ruimte_key = od.ins_alg_ruimte_key
|
||
AND od.ins_srtdeel_key = 646 --'OUTLET'
|
||
-- type aansluiting
|
||
AND od.ins_deel_key = k1.ins_deel_key(+)
|
||
AND k1.ins_kenmerk_key(+) = 48
|
||
AND k1.ins_kenmerkdeel_waarde = TO_CHAR (fud.fac_usrdata_key(+))
|
||
-- module
|
||
AND od.ins_deel_key = k2.ins_deel_key(+)
|
||
AND k2.ins_kenmerkdeel_waarde = TO_CHAR (a.ins_deel_key(+))
|
||
AND k2.ins_kenmerk_key(+) = 50
|
||
-- opmerking
|
||
AND od.ins_deel_key = k3.ins_deel_key(+)
|
||
AND k3.ins_kenmerk_key(+) = 58
|
||
-- netwerk
|
||
AND od.ins_deel_key = k4.ins_deel_key(+)
|
||
AND k4.ins_kenmerk_key(+) = 53
|
||
AND k4.ins_kenmerkdeel_waarde = TO_CHAR (fud2.fac_usrdata_key(+))
|
||
ORDER BY od.ins_deel_omschrijving;
|
||
|
||
CREATE OR REPLACE VIEW akz_v_wallplate_huurder
|
||
(INS_DEEL_KEY, HUURDER)
|
||
AS
|
||
SELECT g_outlet.ins_deel_key, MIN (wa.prs_afdeling_naam) huurder
|
||
FROM ins_deel g_outlet,
|
||
(SELECT prs_a.prs_afdeling_naam, prs_w.prs_alg_ruimte_key alg_ruimte_key,
|
||
prs_w.prs_werkplek_volgnr
|
||
FROM prs_perslidwerkplek prs_pw,
|
||
prs_perslid prs_p,
|
||
prs_afdeling prs_a,
|
||
prs_werkplek prs_w
|
||
WHERE prs_pw.prs_perslid_key = prs_p.prs_perslid_key
|
||
AND prs_p.prs_afdeling_key = prs_a.prs_afdeling_key
|
||
AND prs_pw.prs_werkplek_key = prs_w.prs_werkplek_key
|
||
UNION
|
||
SELECT to_char(null), alg_ruimte_key,-1 FROM alg_v_aanwezigruimte) wa
|
||
WHERE g_outlet.ins_deel_verwijder IS NULL
|
||
and g_outlet.ins_deel_parent_key IS NOT NULL
|
||
AND g_outlet.ins_alg_ruimte_key = wa.alg_ruimte_key(+)
|
||
AND g_outlet.ins_srtdeel_key = 646 -- OUTLET
|
||
AND wa.prs_werkplek_volgnr =
|
||
NVL((SELECT MIN (prs_werkplek_volgnr)
|
||
FROM prs_perslidwerkplek prs_pw, prs_werkplek prs_w
|
||
WHERE g_outlet.ins_alg_ruimte_key = prs_w.prs_alg_ruimte_key
|
||
AND prs_pw.prs_werkplek_key = prs_w.prs_werkplek_key),-1)
|
||
GROUP BY g_outlet.ins_deel_key;
|
||
|
||
CREATE OR REPLACE VIEW akz_v_wallplate_rapport
|
||
(FCLT_F_OUTLET, FCLT_F_MODULE, FCLT_F_POORT, FCLT_F_RUIMTE, FCLT_F_HUURDER,
|
||
FCLT_F_TYPE_OUTLET, FCLT_F_NETWERK, OPMERKING, FCLT_3D_GEBOUW, FCLT_3D_VERDIEPING)
|
||
AS
|
||
SELECT wpk.ins_deel_omschrijving outlet,
|
||
wpk.module module,
|
||
wpk.poort poort,
|
||
wpk.alg_plaatsaanduiding ruimte,
|
||
wh.huurder fclt_f_huurder,
|
||
wpk.outlettype fclt_f_type_outlet,
|
||
wpk.netwerk,
|
||
wpk.opmerking opmerking,
|
||
wpk.alg_gebouw_key,
|
||
wpk.alg_verdieping_key
|
||
FROM akz_v_wallplate_plaats_kenm wpk,
|
||
akz_v_wallplate_huurder wh
|
||
WHERE wpk.ins_deel_key = wh.ins_deel_key;
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
------------------------------- RITTENADMINISTRATIE ----------------------------------------------
|
||
--------------------------------------------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW akza_v_rit_adres
|
||
AS
|
||
SELECT mld_adres_key,
|
||
mld_adres_naam,
|
||
mld_adres_upper,
|
||
mld_adres_bezoek_adres,
|
||
mld_adres_bezoek_plaats,
|
||
mld_adres_bezoek_plaats || ', ' || mld_adres_bezoek_adres
|
||
|| DECODE (SUBSTR (mld_adres_naam, 1, 5),
|
||
SUBSTR (mld_adres_bezoek_plaats, 1, 5), '',
|
||
', ' || mld_adres_naam)
|
||
mld_adres_plaats_adres_naam
|
||
FROM mld_adres
|
||
WHERE mld_adres_verwijder IS NULL;
|
||
|
||
-- Rittentariefgroep, die uit 3 kosten kan bestaan: constante kosten (c_tarief),
|
||
-- km-kosten (km_tarief) en uur-kosten (uur_tarief).
|
||
CREATE OR REPLACE VIEW akza_v_rit_tariefgroep
|
||
as select fac_usrdata_key akza_v_rit_tariefgroep_key, fac_usrdata_code akza_v_rit_tariefgroep_naam,
|
||
fac.safe_to_number(trim(substr(fac_usrdata_omschr, 1, instr(fac_usrdata_omschr, '-', 1, 1) - 1))) c_tarief,
|
||
fac.safe_to_number(trim(substr(fac_usrdata_omschr, instr(fac_usrdata_omschr, '-', 1, 1) + 1, instr(fac_usrdata_omschr, '-', 1, 2) - 1 - instr(fac_usrdata_omschr, '-', 1, 1) ))) km_tarief,
|
||
fac.safe_to_number(trim(substr(fac_usrdata_omschr, instr(fac_usrdata_omschr, '-', 1, 2) + 1))) uur_tarief
|
||
from fac_usrdata
|
||
where fac_usrtab_key = 460
|
||
and fac_usrdata_volgnr > 0
|
||
and fac_usrdata_verwijder is null;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_ritten_reservering
|
||
as select res.res_reservering_key
|
||
from res_v_aanwezigreservering res, res_v_aanwezigrsv_ruimte ruim
|
||
where res.res_reservering_key = ruim.res_reservering_key
|
||
-- key van activiteit Rit
|
||
and ruim.res_activiteit_key = 41;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_ritten_reservering_geg
|
||
AS SELECT res.res_reservering_key,
|
||
ruim.res_rsv_ruimte_key,
|
||
ruim.res_rsv_ruimte_volgnr,
|
||
chauf.res_ruimte_nr AS chauffeur,
|
||
ruim.res_rsv_ruimte_omschrijving AS omschrijving,
|
||
ruim.res_rsv_ruimte_opmerking AS opmerking,
|
||
auto.ins_deel_omschrijving AS auto,
|
||
ruim.res_rsv_ruimte_van datum_van,
|
||
TO_CHAR (ruim.res_rsv_ruimte_van, 'HH24:MI') tijd_van,
|
||
ruim.res_rsv_ruimte_tot datum_tot,
|
||
TO_CHAR (ruim.res_rsv_ruimte_tot, 'HH24:MI') tijd_tot,
|
||
p.prs_perslid_naam
|
||
|| DECODE (COALESCE (p.prs_perslid_voorletters, ''),
|
||
'', '',
|
||
', ' || p.prs_perslid_voorletters)
|
||
|| DECODE (COALESCE (p.prs_perslid_tussenvoegsel, ''),
|
||
'', '',
|
||
' ' || p.prs_perslid_tussenvoegsel)
|
||
|| DECODE (COALESCE (p.prs_perslid_voornaam, ''),
|
||
'', '',
|
||
' (' || p.prs_perslid_voornaam || ')')
|
||
gastheervrouw,
|
||
p.prs_perslid_key,
|
||
afd.prs_afdeling_naam,
|
||
kpl.prs_kostenplaats_nr,
|
||
kpl.prs_kostenplaats_omschrijving
|
||
FROM res_v_aanwezigreservering res,
|
||
res_v_aanwezigrsv_ruimte ruim,
|
||
res_v_aanwezigrsv_deel deel,
|
||
(SELECT INS_DI.ins_discipline_key,
|
||
INS_SG.ins_srtgroep_key,
|
||
INS_SD.ins_srtdeel_key,
|
||
INS_SD.ins_srtdeel_code
|
||
|| ' - '
|
||
|| INS_SD.ins_srtdeel_omschrijving,
|
||
INS_DE.ins_alg_locatie_key,
|
||
INS_AO.alg_gebouw_key,
|
||
INS_AO.alg_verdieping_key,
|
||
INS_AO.alg_ruimte_key,
|
||
INS_AO.prs_werkplek_key,
|
||
INS_AO.alg_terreinsector_key,
|
||
INS_AO.alg_plaatsaanduiding,
|
||
INS_DE.ins_deel_key,
|
||
INS_DE.ins_deel_omschrijving,
|
||
RES_DE.res_deel_key,
|
||
RES_DE.res_deel_eenheid,
|
||
RES_DE.res_deel_prijs,
|
||
DECODE (RES_DE.res_deel_key, NULL, 0, 1)
|
||
FROM ins_v_aanwezigdeel INS_DE,
|
||
ins_tab_discipline INS_DI,
|
||
ins_v_alg_overzicht INS_AO,
|
||
ins_srtdeel INS_SD,
|
||
ins_srtgroep INS_SG,
|
||
res_v_aanwezigdeel RES_DE
|
||
WHERE INS_DE.ins_deel_key = RES_DE.res_ins_deel_key(+)
|
||
AND INS_DE.ins_deel_module = 'INS'
|
||
AND INS_DE.ins_deel_parent_key IS NULL
|
||
AND INS_AO.alg_onroerendgoed_keys =
|
||
INS_DE.ins_alg_ruimte_key
|
||
AND INS_AO.alg_onroerendgoed_type =
|
||
INS_DE.ins_alg_ruimte_type
|
||
AND INS_AO.alg_locatie_key = INS_DE.ins_alg_locatie_key
|
||
AND INS_SD.ins_srtdeel_key = INS_DE.ins_srtdeel_key
|
||
AND INS_SG.ins_srtgroep_key = INS_SD.ins_srtgroep_key
|
||
AND INS_DI.ins_discipline_key =
|
||
INS_DE.ins_discipline_key
|
||
AND INS_DE.ins_discipline_key IN
|
||
(SELECT ins_discipline_key
|
||
FROM ins_discipline)) auto,
|
||
res_ruimte_opstelling opstel,
|
||
res_ruimte chauf,
|
||
prs_perslid p,
|
||
prs_afdeling afd,
|
||
prs_kostenplaats kpl
|
||
WHERE res.res_reservering_key = ruim.res_reservering_key
|
||
AND ruim.res_rsv_ruimte_key = deel.res_rsv_ruimte_key(+)
|
||
AND deel.res_deel_key = auto.res_deel_key(+)
|
||
AND ruim.res_ruimte_opstel_key = opstel.res_ruimte_opstel_key
|
||
AND opstel.res_ruimte_key = chauf.res_ruimte_key
|
||
AND p.prs_perslid_key = ruim.res_rsv_ruimte_host_key
|
||
AND p.prs_afdeling_key = afd.prs_afdeling_key
|
||
AND ruim.prs_kostenplaats_key = kpl.prs_kostenplaats_key(+)
|
||
-- activiteit Rit
|
||
AND ruim.res_activiteit_key = 41;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_ritten_rapportage
|
||
AS
|
||
SELECT ritres.res_reservering_key,
|
||
ritres.res_rsv_ruimte_volgnr,
|
||
ritres.res_rsv_ruimte_key,
|
||
ritres.chauffeur,
|
||
ritres.omschrijving,
|
||
ritres.opmerking,
|
||
ritres.auto,
|
||
ritres.datum_van,
|
||
ritres.tijd_van,
|
||
ritres.datum_tot,
|
||
ritres.tijd_tot,
|
||
ritres.prs_perslid_key,
|
||
ritres.gastheervrouw,
|
||
ritres.prs_afdeling_naam,
|
||
ritres.prs_kostenplaats_nr,
|
||
ritres.prs_kostenplaats_omschrijving,
|
||
-- 'Vertrektijd (afwijkend)'
|
||
(SELECT fd.fac_usrdata_omschr
|
||
FROM fac_usrdata fd, res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 87
|
||
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key)
|
||
afwijkend_van_tijd,
|
||
-- 'Via-tijd'
|
||
(SELECT fd.fac_usrdata_omschr
|
||
FROM fac_usrdata fd, res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 127
|
||
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key)
|
||
via_tijd,
|
||
-- 'Aankomsttijd (afwijkend)'
|
||
(SELECT fd.fac_usrdata_omschr
|
||
FROM fac_usrdata fd, res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 94
|
||
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key)
|
||
afwijkend_tot_tijd,
|
||
-- 'Standaard vertrekplaats'
|
||
(SELECT van.mld_adres_plaats_adres_naam
|
||
FROM res_kenmerkwaarde k, akza_v_rit_adres van
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 82
|
||
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = van.mld_adres_key)
|
||
standaard_van,
|
||
-- 'Standaard vertrekplaats'
|
||
(SELECT van.mld_adres_bezoek_plaats
|
||
FROM res_kenmerkwaarde k, akza_v_rit_adres van
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 82
|
||
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = van.mld_adres_key)
|
||
standaard_van_plaatsnaam,
|
||
-- 'Vertrekplaatsnaam (afwijkend)'
|
||
(SELECT k.res_kenmerkreservering_waarde
|
||
FROM res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 85)
|
||
afwijkend_van_plaats,
|
||
-- 'Vertrekadres (afwijkend)'
|
||
(SELECT k.res_kenmerkreservering_waarde
|
||
FROM res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 86)
|
||
afwijkend_van_adres,
|
||
-- 'Standaard via-adres'
|
||
(SELECT van.mld_adres_plaats_adres_naam
|
||
FROM res_kenmerkwaarde k, akza_v_rit_adres van
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 124
|
||
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = van.mld_adres_key)
|
||
standaard_via,
|
||
-- 'Standaard via-adres'
|
||
(SELECT van.mld_adres_bezoek_plaats
|
||
FROM res_kenmerkwaarde k, akza_v_rit_adres van
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 124
|
||
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = van.mld_adres_key)
|
||
standaard_via_plaatsnaam,
|
||
-- 'Via-plaatsnaam (afwijkend)'
|
||
(SELECT k.res_kenmerkreservering_waarde
|
||
FROM res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 126)
|
||
afwijkend_via_plaats,
|
||
-- 'Via-adres (afwijkend)'
|
||
(SELECT k.res_kenmerkreservering_waarde
|
||
FROM res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 125)
|
||
afwijkend_via_adres,
|
||
-- 'Standaard aankomstplaats'
|
||
(SELECT naar.mld_adres_plaats_adres_naam
|
||
FROM akza_v_rit_adres naar, res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 89
|
||
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = naar.mld_adres_key)
|
||
standaard_naar,
|
||
-- 'Standaard aankomstplaats'
|
||
(SELECT naar.mld_adres_bezoek_plaats
|
||
FROM akza_v_rit_adres naar, res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 89
|
||
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = naar.mld_adres_key)
|
||
standaard_naar_plaatsnaam,
|
||
-- 'Aankomstplaatsnaam (afwijkend)'
|
||
(SELECT k.res_kenmerkreservering_waarde
|
||
FROM res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 92)
|
||
afwijkend_naar_plaats,
|
||
-- 'Aankomstadres (afwijkend)'
|
||
(SELECT k.res_kenmerkreservering_waarde
|
||
FROM res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 93)
|
||
afwijkend_naar_adres,
|
||
-- 'Vertrektijd (werkelijk)'
|
||
(SELECT fd.fac_usrdata_omschr
|
||
FROM fac_usrdata fd, res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 96
|
||
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key)
|
||
chauff_van_tijd,
|
||
-- 'Aankomsttijd (werkelijk)'
|
||
(SELECT fd.fac_usrdata_omschr
|
||
FROM fac_usrdata fd, res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 97
|
||
AND fac.safe_to_number (k.res_kenmerkreservering_waarde) = fd.fac_usrdata_key)
|
||
chauff_tot_tijd,
|
||
-- 'Gereden km'
|
||
(SELECT fac.safe_to_number (
|
||
REPLACE (k.res_kenmerkreservering_waarde, ',', '.'))
|
||
FROM res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 98)
|
||
chauff_km,
|
||
-- 'Aantal uren'
|
||
(SELECT fac.safe_to_number (
|
||
REPLACE (k.res_kenmerkreservering_waarde, ',', '.'))
|
||
FROM res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 101)
|
||
doorbelast_uren,
|
||
-- 'Aantal km'
|
||
(SELECT fac.safe_to_number (
|
||
REPLACE (k.res_kenmerkreservering_waarde, ',', '.'))
|
||
FROM res_kenmerkwaarde k
|
||
WHERE k.res_rsv_ruimte_key = ritres.res_rsv_ruimte_key
|
||
AND k.res_kenmerk_key = 100)
|
||
doorbelast_km
|
||
FROM akza_v_ritten_reservering_geg ritres;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_ritten_doorbelasting
|
||
AS
|
||
SELECT res.res_reservering_key,
|
||
ruim.res_rsv_ruimte_volgnr,
|
||
ruim.res_rsv_ruimte_key,
|
||
stat.res_status_bo_omschrijving status,
|
||
tariefgrp.akza_v_rit_tariefgroep_naam tariefgroep,
|
||
tariefgrp.c_tarief,
|
||
tariefgrp.km_tarief,
|
||
tariefgrp.uur_tarief
|
||
FROM res_v_aanwezigreservering res,
|
||
res_v_aanwezigrsv_ruimte ruim,
|
||
res_status_bo stat,
|
||
akza_v_rit_tariefgroep tariefgrp,
|
||
res_kenmerkwaarde k_tariefgrp
|
||
WHERE res.res_reservering_key = ruim.res_reservering_key
|
||
AND ruim.res_status_bo_key = stat.res_status_bo_key
|
||
-- key van kenmerk Tariefgroep
|
||
AND k_tariefgrp.res_kenmerk_key = 102
|
||
AND fac.safe_to_number (k_tariefgrp.res_kenmerkreservering_waarde) =
|
||
tariefgrp.akza_v_rit_tariefgroep_key
|
||
AND ruim.res_rsv_ruimte_key = k_tariefgrp.res_rsv_ruimte_key
|
||
-- key van activiteit Rit
|
||
AND ruim.res_activiteit_key = 41;
|
||
|
||
-- key van de special prs_perslid "Non resident passenger"
|
||
CREATE OR REPLACE VIEW akza_v_rit_nonresident_pass
|
||
AS
|
||
SELECT 43667 prs_perslid_key
|
||
FROM DUAL;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_ritten_all_doorbelast
|
||
AS
|
||
SELECT rit_rap.*,
|
||
rit_doorb.status,
|
||
rit_doorb.tariefgroep,
|
||
rit_doorb.c_tarief,
|
||
rit_doorb.km_tarief,
|
||
rit_doorb.uur_tarief,
|
||
ROUND (
|
||
(rit_doorb.c_tarief
|
||
+ (rit_doorb.km_tarief
|
||
* COALESCE (fac.safe_to_number (rit_rap.doorbelast_km), 0))
|
||
+ (rit_doorb.uur_tarief
|
||
* COALESCE (fac.safe_to_number (rit_rap.doorbelast_uren), 0))),
|
||
2)
|
||
AS totaal
|
||
FROM akza_v_ritten_rapportage rit_rap,
|
||
akza_v_ritten_doorbelasting rit_doorb
|
||
WHERE rit_rap.res_rsv_ruimte_key = rit_doorb.res_rsv_ruimte_key(+);
|
||
|
||
CREATE OR REPLACE VIEW akza_v_ritten_doorbelast_sap
|
||
AS
|
||
SELECT a.*, b.prs_perslid_key AS rit_nonresidentpass
|
||
FROM akza_v_ritten_all_doorbelast a, akza_v_rit_nonresident_pass b
|
||
WHERE a.prs_perslid_key = b.prs_perslid_key(+);
|
||
|
||
CREATE OR REPLACE VIEW akza_v_rit_km_spec
|
||
AS
|
||
SELECT chauffeur AS fclt_f_chauffeur,
|
||
auto AS fclt_f_voertuig,
|
||
DECODE (TO_CHAR (datum_van, 'D'),
|
||
1, 'Zondag',
|
||
2, 'Maandag',
|
||
3, 'Dinsdag',
|
||
4, 'Woensdag',
|
||
5, 'Donderdag',
|
||
6, 'Vrijdag',
|
||
7, 'Zaterdag',
|
||
'')
|
||
AS Dag,
|
||
datum_van datum,
|
||
chauff_van_tijd AS Vertrek,
|
||
chauff_tot_tijd AS Aankomst,
|
||
prs_afdeling_naam AS fclt_f_Opdrachtgever,
|
||
DECODE (afwijkend_van_plaats || ', ' || afwijkend_van_adres,
|
||
', ', standaard_van,
|
||
afwijkend_van_plaats || ', ' || afwijkend_van_adres)
|
||
AS Van,
|
||
DECODE (afwijkend_naar_plaats || ', ' || afwijkend_naar_adres,
|
||
', ', standaard_naar,
|
||
afwijkend_naar_plaats || ', ' || afwijkend_naar_adres)
|
||
AS Naar,
|
||
TO_NUMBER (chauff_km) AS Kilometers
|
||
FROM akza_v_ritten_rapportage;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_rit_geplande_ritten
|
||
AS
|
||
SELECT datum_van datum,
|
||
DECODE (TO_CHAR (datum_van, 'D'),
|
||
1, 'Zondag',
|
||
2, 'Maandag',
|
||
3, 'Dinsdag',
|
||
4, 'Woensdag',
|
||
5, 'Donderdag',
|
||
6, 'Vrijdag',
|
||
7, 'Zaterdag',
|
||
'')
|
||
AS Dag,
|
||
COALESCE (chauff_van_tijd, afwijkend_van_tijd, tijd_van) AS Starttijd,
|
||
via_tijd AS Viatijd,
|
||
COALESCE (chauff_tot_tijd, afwijkend_tot_tijd, tijd_tot) AS Tottijd,
|
||
DECODE (afwijkend_van_plaats || ', ' || afwijkend_van_adres,
|
||
', ', standaard_van,
|
||
afwijkend_van_plaats || ', ' || afwijkend_van_adres)
|
||
AS Van,
|
||
DECODE (afwijkend_via_plaats || ', ' || afwijkend_via_adres,
|
||
', ', standaard_via,
|
||
afwijkend_via_plaats || ', ' || afwijkend_via_adres)
|
||
AS Via,
|
||
DECODE (afwijkend_naar_plaats || ', ' || afwijkend_naar_adres,
|
||
', ', standaard_naar,
|
||
afwijkend_naar_plaats || ', ' || afwijkend_naar_adres)
|
||
AS Naar,
|
||
prs_afdeling_naam AS fclt_f_Opdrachtgever,
|
||
chauffeur AS fclt_f_chauffeur,
|
||
auto AS fclt_f_auto,
|
||
opmerking AS Toelichtingen,
|
||
res_reservering_key AS hide_f_reserveringkey,
|
||
res_rsv_ruimte_volgnr AS hide_f_reserveringvolgnr,
|
||
gastheervrouw AS hide_f_gastheervrouw,
|
||
prs_kostenplaats_nr || ' ' || prs_kostenplaats_omschrijving
|
||
AS fclt_f_kostenplaats,
|
||
prs_afdeling_naam AS hide_f_afdeling
|
||
FROM akza_v_ritten_rapportage;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_rit_kostenoverzicht
|
||
AS
|
||
SELECT TO_CHAR (res_reservering_key) AS Code,
|
||
datum_van datum,
|
||
COALESCE (afwijkend_van_plaats, standaard_van_plaatsnaam) AS Van,
|
||
COALESCE (afwijkend_naar_plaats, standaard_naar_plaatsnaam) AS Naar,
|
||
chauffeur AS fclt_f_chauffeur,
|
||
auto AS fclt_f_voertuig,
|
||
prs_afdeling_naam AS fclt_f_Opdrachtgever,
|
||
fac.safe_to_number (doorbelast_km) AS Km,
|
||
fac.safe_to_number (doorbelast_uren) AS Uren,
|
||
status,
|
||
tariefgroep,
|
||
totaal
|
||
FROM akza_v_ritten_all_doorbelast;
|
||
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
------------------------------------ COPIER RAPPORTAGE FUNCTIES ----------------------------------
|
||
--------------------------------------------------------------------------------------------------
|
||
|
||
DROP TABLE AKZA_COPY_XLS;
|
||
CREATE TABLE AKZA_COPY_XLS -- Temporary for copiers
|
||
(
|
||
COMPANY VARCHAR2(110),
|
||
KOSTENPLAATS VARCHAR2(110),
|
||
EIGENAAR VARCHAR2(130),
|
||
COPIER VARCHAR2(150),
|
||
BEHEERSKOSTEN NUMBER(9,2),
|
||
TIKKOSTEN_ZW NUMBER(9,2),
|
||
TIKKOSTEN_KL NUMBER(9,2),
|
||
TOTAAL_TIKKEN NUMBER(9,2),
|
||
PAPIER_A3_NR NUMBER(9),
|
||
PAPIER_A3 NUMBER(9,2),
|
||
PAPIER_A4_NR NUMBER(9),
|
||
PAPIER_A4 NUMBER(9,2),
|
||
TOTAAL_PAPIER NUMBER(9,2),
|
||
GEBRUIKSKOSTEN NUMBER(9,2),
|
||
HUUR_BASIS NUMBER(9,2),
|
||
HUUR_MODULES NUMBER(9,2),
|
||
BASISHUUR NUMBER(9,2),
|
||
TOTAAL_NASHUATEC NUMBER(9,2),
|
||
TOTAAL_COPIER NUMBER(9,2),
|
||
TOTAAL_EIGENAAR VARCHAR2(80),
|
||
TOTAAL_COMPANY VARCHAR2(50)
|
||
);
|
||
|
||
CREATE OR REPLACE PACKAGE AKZA_P_COPIERS AS
|
||
-- PACKAGES voor de AKZA specifieke COPIER rapportages
|
||
TYPE t_cursor IS REF CURSOR;
|
||
PROCEDURE akza_copiers (user_key IN NUMBER, p_session IN VARCHAR2, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_srt_export IN VARCHAR2, p_all_owner IN BOOLEAN);
|
||
PROCEDURE akza_cop_prn (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
|
||
PROCEDURE akza_cop_xls (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
|
||
PROCEDURE akza_cop_all (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
|
||
END;
|
||
/
|
||
CREATE OR REPLACE PACKAGE BODY AKZA_P_COPIERS AS
|
||
v_srt_layout VARCHAR2(3);
|
||
v_tmp_aanmaak DATE;
|
||
v_tmp_datum_van DATE;
|
||
v_tmp_datum_tot DATE;
|
||
v_tmp_company VARCHAR2(10);
|
||
v_tmp_kostenplaats VARCHAR2(30);
|
||
v_tmp_eigenaar VARCHAR2(60);
|
||
v_tmp_copier VARCHAR2(50);
|
||
v_tmp_papier_a3_nr NUMBER(12);
|
||
v_tmp_papier_a4_nr NUMBER(12);
|
||
v_tmp_beheerskosten NUMBER(12,2);
|
||
v_tmp_tikkosten_zw NUMBER(12,2);
|
||
v_tmp_tikkosten_kl NUMBER(12,2);
|
||
v_tmp_papier_a3 NUMBER(12,2);
|
||
v_tmp_papier_a4 NUMBER(12,2);
|
||
v_tmp_gebruikskosten NUMBER(12,2);
|
||
v_tmp_huur_basis NUMBER(12,2);
|
||
v_tmp_huur_modules NUMBER(12,2);
|
||
v_tmp_basishuur NUMBER(12,2);
|
||
v_tmp_totaalcopier NUMBER(12,2);
|
||
v_tmp_totaaleigenaar NUMBER(12,2);
|
||
v_tmp_totaalcompany NUMBER(12,2);
|
||
|
||
-- Algemene procedures en functies.
|
||
FUNCTION PrintReplicate(cKarakter IN VARCHAR2
|
||
,nLengte IN NUMBER
|
||
) RETURN VARCHAR2 IS
|
||
cRegel VARCHAR2(132);
|
||
BEGIN
|
||
cRegel := cKarakter;
|
||
RETURN (RPAD(cRegel, nLengte, cKarakter));
|
||
END;
|
||
--
|
||
FUNCTION RPadEnNvl(cString IN VARCHAR2
|
||
,nAantal IN NUMBER
|
||
) RETURN VARCHAR2 IS
|
||
BEGIN
|
||
RETURN NVL(RPAD(cString, nAantal), PrintReplicate(' ', nAantal));
|
||
END;
|
||
--
|
||
FUNCTION LPadEnNvl(cString IN VARCHAR2
|
||
,nAantal IN NUMBER
|
||
) RETURN VARCHAR2 IS
|
||
BEGIN
|
||
RETURN NVL(LPAD(cString, nAantal), PrintReplicate(' ', nAantal));
|
||
END;
|
||
--
|
||
FUNCTION schrijf_rapport_regel(p_sessionid IN VARCHAR2
|
||
,p_regelnr IN NUMBER
|
||
,p_tekst IN VARCHAR2
|
||
) RETURN NUMBER IS
|
||
BEGIN
|
||
INSERT INTO fac_rapport
|
||
VALUES(p_sessionid,p_regelnr,p_tekst,1);
|
||
RETURN p_regelnr + 1;
|
||
END;
|
||
--
|
||
FUNCTION delete_rapport_regel(p_sessionid IN VARCHAR2
|
||
,p_regelnr_van IN NUMBER
|
||
,p_regelnr_tm IN NUMBER
|
||
) RETURN NUMBER IS
|
||
BEGIN
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = p_sessionid
|
||
AND fac_rapport_volgnr >= p_regelnr_van
|
||
AND fac_rapport_volgnr <= p_regelnr_tm;
|
||
RETURN p_regelnr_van;
|
||
END;
|
||
--
|
||
FUNCTION schrijf_sap_regel(p_sessionid IN VARCHAR2
|
||
,p_regelnr IN NUMBER
|
||
) RETURN NUMBER IS
|
||
v_regel VARCHAR2(2000);
|
||
i NUMBER(10);
|
||
v_totaal_tikken NUMBER(12,2);
|
||
v_totaal_papier NUMBER(12,2);
|
||
v_totaal_nashuatec NUMBER(12,2);
|
||
BEGIN
|
||
v_totaal_tikken := v_tmp_tikkosten_zw + v_tmp_tikkosten_kl;
|
||
v_totaal_papier := v_tmp_papier_a3 + v_tmp_papier_a4;
|
||
v_totaal_nashuatec := v_tmp_basishuur + v_totaal_tikken;
|
||
v_regel := RPadEnNvl(v_tmp_company , 6)
|
||
|| RPadEnNvl(v_tmp_kostenplaats,10)
|
||
|| RPadEnNvl(v_tmp_copier ,10)
|
||
|| 'EUR'
|
||
|| SUBSTR(REPLACE(TO_CHAR(NVL(v_tmp_beheerskosten ,0),'999990.90'),'.',''),2,8)
|
||
|| SUBSTR(REPLACE(TO_CHAR(NVL(v_totaal_nashuatec ,0),'999990.90'),'.',''),2,8)
|
||
|| SUBSTR(REPLACE(TO_CHAR(NVL(v_totaal_papier ,0),'999990.90'),'.',''),2,8)
|
||
|| SUBSTR(REPLACE(TO_CHAR(NVL(ABS(v_tmp_totaalcopier) ,0),'999990.90'),'.',''),2,8)
|
||
|| '2'
|
||
|| RPadEnNvl('Verrekening Kopieermachines',30);
|
||
IF v_tmp_totaalcopier >= 0
|
||
THEN
|
||
v_regel := v_regel || '40';
|
||
ELSE
|
||
v_regel := v_regel || '50'; -- AKZA#545: Het schijnt nog wel eens negatief te kunnen zijn
|
||
END IF;
|
||
i := schrijf_rapport_regel(p_sessionid,p_regelnr,v_regel);
|
||
RETURN i;
|
||
END;
|
||
|
||
-- Merk op dat schrijf_xls_regel nog altijd gewoon FAC_RAPPORT vult. Die vulling
|
||
-- wordt verder niet gebruikt, er wordt namelijk van akza_copy_xls gebruik gemaakt.
|
||
FUNCTION schrijf_xls_regel(p_sessionid IN VARCHAR2
|
||
,p_regelnr IN NUMBER
|
||
) RETURN NUMBER IS
|
||
v_regel VARCHAR2(2000);
|
||
i NUMBER(10);
|
||
v_totaal_tikken NUMBER(12,2);
|
||
v_totaal_papier NUMBER(12,2);
|
||
v_totaal_nashuatec NUMBER(12,2);
|
||
BEGIN
|
||
v_totaal_tikken := v_tmp_tikkosten_zw + v_tmp_tikkosten_kl;
|
||
v_totaal_papier := v_tmp_papier_a3 + v_tmp_papier_a4;
|
||
v_totaal_nashuatec := v_tmp_basishuur + v_totaal_tikken;
|
||
v_regel := RPadEnNvl(v_tmp_company ,10)
|
||
||','|| RPadEnNvl(v_tmp_kostenplaats,10)
|
||
||','|| RPadEnNvl(v_tmp_eigenaar ,30)
|
||
||','|| RPadEnNvl(v_tmp_copier ,50)
|
||
||','|| TO_CHAR(NVL(v_tmp_beheerskosten ,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_tmp_tikkosten_zw ,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_tmp_tikkosten_kl ,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_totaal_tikken ,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_tmp_papier_a3_nr ,0),'99990')
|
||
||','|| TO_CHAR(NVL(v_tmp_papier_a3 ,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_tmp_papier_a4_nr ,0),'99990')
|
||
||','|| TO_CHAR(NVL(v_tmp_papier_a4 ,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_totaal_papier ,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_tmp_gebruikskosten,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_tmp_huur_basis ,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_tmp_huur_modules ,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_tmp_basishuur ,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_totaal_nashuatec ,0),'99990.90')
|
||
||','|| TO_CHAR(NVL(v_tmp_totaalcopier ,0),'99990.90')
|
||
||','|| v_tmp_eigenaar ||'_totaal'
|
||
||','|| v_tmp_company ||'_totaal';
|
||
i := schrijf_rapport_regel(p_sessionid,p_regelnr,v_regel);
|
||
INSERT INTO akza_copy_xls
|
||
VALUES (v_tmp_company, v_tmp_kostenplaats, v_tmp_eigenaar,
|
||
v_tmp_copier, v_tmp_beheerskosten, v_tmp_tikkosten_zw,
|
||
v_tmp_tikkosten_kl, v_totaal_tikken, v_tmp_papier_a3_nr,
|
||
v_tmp_papier_a3, v_tmp_papier_a4_nr, v_tmp_papier_a4,
|
||
v_totaal_papier, v_tmp_gebruikskosten, v_tmp_huur_basis,
|
||
v_tmp_huur_modules, v_tmp_basishuur, v_totaal_nashuatec,
|
||
v_tmp_totaalcopier, v_tmp_eigenaar || '_totaal',
|
||
v_tmp_company || '_totaal');
|
||
RETURN i;
|
||
END;
|
||
--
|
||
FUNCTION f_kenmerk(p_code IN VARCHAR2,
|
||
p_deel_key IN NUMBER
|
||
) RETURN NUMBER IS
|
||
v_kenmerk_key INS_KENMERK.ins_kenmerk_key%TYPE;
|
||
v_dimensie VARCHAR2(100);
|
||
BEGIN
|
||
BEGIN
|
||
SELECT K.ins_kenmerk_key
|
||
, S.ins_srtkenmerk_dimensie
|
||
INTO v_kenmerk_key
|
||
, v_dimensie
|
||
FROM INS_KENMERK K
|
||
, INS_SRTKENMERK S
|
||
, INS_SRTDEEL SD
|
||
, INS_DEEL D
|
||
WHERE S.ins_srtkenmerk_key = K.ins_srtkenmerk_key
|
||
AND S.ins_srtkenmerk_upper = p_code
|
||
AND sd.ins_srtgroep_key = K.ins_srtinstallatie_key
|
||
AND D.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND d.ins_deel_key = p_deel_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN -- Perhaps on srt-level defined?
|
||
BEGIN
|
||
SELECT K.ins_kenmerk_key
|
||
, S.ins_srtkenmerk_dimensie
|
||
INTO v_kenmerk_key
|
||
, v_dimensie
|
||
FROM INS_KENMERK K
|
||
, INS_SRTKENMERK S
|
||
, INS_DEEL D
|
||
WHERE S.ins_srtkenmerk_key = K.ins_srtkenmerk_key
|
||
AND S.ins_srtkenmerk_upper = p_code
|
||
AND D.ins_srtdeel_key = K.ins_srtinstallatie_key
|
||
AND d.ins_deel_key = p_deel_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN v_kenmerk_key := -1;
|
||
WHEN TOO_MANY_ROWS THEN v_kenmerk_key := -2;
|
||
END;
|
||
END;
|
||
RETURN v_kenmerk_key;
|
||
END;
|
||
--
|
||
FUNCTION f_dimensie(p_code IN VARCHAR2
|
||
) RETURN VARCHAR2 IS
|
||
v_dimensie INS_SRTKENMERK.ins_srtkenmerk_dimensie%TYPE;
|
||
BEGIN
|
||
BEGIN
|
||
SELECT ins_srtkenmerk_dimensie
|
||
INTO v_dimensie
|
||
FROM INS_SRTKENMERK
|
||
WHERE ins_srtkenmerk_verwijder IS NULL
|
||
AND ins_srtkenmerk_upper = p_code;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN v_dimensie := '?';
|
||
WHEN TOO_MANY_ROWS THEN v_dimensie := '?';
|
||
END;
|
||
RETURN UPPER(v_dimensie);
|
||
END;
|
||
--
|
||
FUNCTION f_dagprijs(p_dimensie IN VARCHAR2
|
||
,p_module_prijs IN NUMBER
|
||
) RETURN NUMBER IS
|
||
v_dagprijs NUMBER(12,4);
|
||
BEGIN
|
||
IF p_dimensie = 'JAAR'
|
||
THEN
|
||
v_dagprijs := (p_module_prijs / 365);
|
||
ELSIF p_dimensie = 'MAAND'
|
||
THEN
|
||
v_dagprijs := (p_module_prijs * 12)/365;
|
||
ELSIF p_dimensie = 'WEEK'
|
||
THEN
|
||
v_dagprijs := (p_module_prijs /7);
|
||
ELSE
|
||
-- Ga ervan uit dat de prijs per maand is indien
|
||
-- er niets is ingevuld voor ins_srtdeel_eenheid.
|
||
v_dagprijs := (p_module_prijs * 12)/365;
|
||
END IF;
|
||
RETURN NVL(v_dagprijs,0);
|
||
END;
|
||
--
|
||
FUNCTION f_onderdeel(p_parent_key IN NUMBER
|
||
,p_code IN VARCHAR2
|
||
) RETURN NUMBER IS
|
||
v_onderdeel_key INS_DEEL.ins_deel_key%TYPE;
|
||
BEGIN
|
||
BEGIN
|
||
SELECT ins_deel_key
|
||
INTO v_onderdeel_key
|
||
FROM INS_DEEL
|
||
WHERE ins_deel_parent_key = p_parent_key
|
||
AND ins_srtdeel_key = (SELECT ins_srtdeel_key
|
||
FROM ins_v_aanwezigsrtdeel
|
||
WHERE ins_srtdeel_code_upper = p_code
|
||
);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN v_onderdeel_key := -1;
|
||
WHEN TOO_MANY_ROWS THEN v_onderdeel_key := -2;
|
||
END;
|
||
RETURN v_onderdeel_key;
|
||
END;
|
||
--
|
||
FUNCTION f_srtdeel(p_deel_key IN NUMBER
|
||
) RETURN VARCHAR2 IS
|
||
v_srtdeel_naam INS_SRTDEEL.ins_srtdeel_omschrijving%TYPE;
|
||
BEGIN
|
||
BEGIN
|
||
SELECT ins_srtdeel_omschrijving
|
||
INTO v_srtdeel_naam
|
||
FROM INS_DEEL D
|
||
, INS_SRTDEEL S
|
||
WHERE D.ins_srtdeel_key = S.ins_srtdeel_key
|
||
AND D.ins_deel_key = p_deel_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN v_srtdeel_naam := '';
|
||
WHEN TOO_MANY_ROWS THEN v_srtdeel_naam := '';
|
||
END;
|
||
RETURN v_srtdeel_naam;
|
||
END;
|
||
--
|
||
FUNCTION f_srtdeel_prijs(p_deel_key IN NUMBER
|
||
) RETURN NUMBER IS
|
||
v_srtdeel_prijs INS_SRTDEEL.ins_srtdeel_prijs%TYPE;
|
||
BEGIN
|
||
BEGIN
|
||
SELECT ins_srtdeel_prijs
|
||
INTO v_srtdeel_prijs
|
||
FROM INS_DEEL D
|
||
, INS_SRTDEEL S
|
||
WHERE D.ins_srtdeel_key = S.ins_srtdeel_key
|
||
AND D.ins_deel_key = p_deel_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN v_srtdeel_prijs := 0;
|
||
WHEN TOO_MANY_ROWS THEN v_srtdeel_prijs := 0;
|
||
END;
|
||
RETURN v_srtdeel_prijs;
|
||
END;
|
||
|
||
-- Subprocedures voor het rapport kostenoverzicht.
|
||
FUNCTION akzacopiers_6_basis(p_session IN VARCHAR2
|
||
,p_regelnr IN NUMBER
|
||
,p_deel_key IN NUMBER
|
||
,p_datum_van IN DATE
|
||
,p_datum_tot IN DATE
|
||
,p_berekening IN BOOLEAN
|
||
,p_kosten IN OUT NUMBER
|
||
) RETURN NUMBER IS
|
||
CURSOR c_basis(p_deel_key IN NUMBER
|
||
) IS
|
||
SELECT S.ins_srtdeel_omschrijving naam
|
||
, S.ins_srtdeel_prijs prijs
|
||
, S.ins_srtdeel_eenheid dimensie
|
||
, TRUNC(D.ins_deel_aanmaak) begindatum
|
||
, TRUNC(D.ins_deel_verwijder) einddatum
|
||
, TRUNC(S.ins_srtdeel_aanmaak) srt_begindatum
|
||
, TRUNC(S.ins_srtdeel_verwijder) srt_einddatum
|
||
FROM INS_DEEL D
|
||
, INS_SRTDEEL S
|
||
WHERE D.ins_srtdeel_key = S.ins_srtdeel_key
|
||
AND D.ins_deel_key = p_deel_key
|
||
;
|
||
CURSOR c_modules(p_deel_key IN NUMBER
|
||
) IS
|
||
SELECT S.ins_srtdeel_omschrijving naam
|
||
, S.ins_srtdeel_prijs prijs
|
||
, S.ins_srtdeel_eenheid dimensie
|
||
, TRUNC(D.ins_deel_aanmaak) begindatum
|
||
, TRUNC(D.ins_deel_verwijder) einddatum
|
||
, TRUNC(S.ins_srtdeel_aanmaak) srt_begindatum
|
||
, TRUNC(S.ins_srtdeel_verwijder) srt_einddatum
|
||
FROM INS_DEEL D
|
||
, INS_SRTDEEL S
|
||
, INS_SRTGROEP G
|
||
WHERE D.ins_srtdeel_key = S.ins_srtdeel_key
|
||
AND S.ins_srtgroep_key = G.ins_srtgroep_key
|
||
AND D.ins_deel_parent_key = p_deel_key
|
||
AND G.ins_srtgroep_upper = 'MODULES'
|
||
;
|
||
v_dimensie INS_SRTDEEL.ins_srtdeel_eenheid%TYPE;
|
||
v_module_prijs INS_SRTDEEL.ins_srtdeel_prijs%TYPE;
|
||
v_controle_regel VARCHAR2(200);
|
||
v_dagprijs NUMBER(12,4);
|
||
v_periode_kosten NUMBER(12,4);
|
||
v_totaal_object NUMBER(12,4);
|
||
v_begindatum DATE;
|
||
v_einddatum DATE;
|
||
v_beginperiode DATE;
|
||
v_eindeperiode DATE;
|
||
v_dagen NUMBER(12);
|
||
i NUMBER(12);
|
||
lab_basis VARCHAR2(50);
|
||
lab_object VARCHAR2(50);
|
||
--
|
||
FUNCTION f_startperiode(p_datum1 IN DATE
|
||
,p_datum2 IN DATE
|
||
) RETURN DATE IS
|
||
v_startperiode DATE;
|
||
BEGIN
|
||
IF p_datum1 < p_datum2
|
||
THEN
|
||
v_startperiode := p_datum2;
|
||
ELSE
|
||
v_startperiode := p_datum1;
|
||
END IF;
|
||
RETURN v_startperiode;
|
||
END;
|
||
--
|
||
FUNCTION f_eindeperiode(p_datum1 IN DATE
|
||
,p_datum2 IN DATE
|
||
) RETURN DATE IS
|
||
v_eindeperiode DATE;
|
||
BEGIN
|
||
IF p_datum2 IS NULL
|
||
THEN
|
||
v_eindeperiode := p_datum1;
|
||
ELSE
|
||
IF p_datum1 >= p_datum2
|
||
THEN
|
||
v_eindeperiode := p_datum2;
|
||
ELSE
|
||
v_eindeperiode := p_datum1 + 1;
|
||
END IF;
|
||
END IF;
|
||
RETURN v_eindeperiode;
|
||
END;
|
||
--
|
||
BEGIN
|
||
-- function: akzacopiers_6_basis
|
||
-- Bereken de kosten die verbonden zijn zijn aan de huur
|
||
-- van de basismodulen die bij de printer horen.
|
||
--
|
||
i := p_regelnr;
|
||
v_totaal_object := 0;
|
||
v_tmp_huur_basis := 0;
|
||
v_tmp_huur_modules := 0;
|
||
lab_object := SUBSTR('Totaal Basishuur',1,50);
|
||
--
|
||
FOR r_basis IN c_basis(p_deel_key)
|
||
LOOP
|
||
lab_basis := SUBSTR('Basishuur' ||' '|| r_basis.naam,1,50);
|
||
v_dimensie := UPPER(r_basis.dimensie);
|
||
v_module_prijs := r_basis.prijs;
|
||
v_begindatum := r_basis.begindatum;
|
||
v_einddatum := r_basis.einddatum;
|
||
v_dagprijs := f_dagprijs(v_dimensie,v_module_prijs);
|
||
v_beginperiode := f_startperiode(p_datum_van,v_begindatum);
|
||
v_eindeperiode := f_eindeperiode(p_datum_tot,v_einddatum);
|
||
IF v_eindeperiode < v_beginperiode
|
||
THEN
|
||
v_dagen := 0;
|
||
ELSE
|
||
v_dagen := v_eindeperiode - v_beginperiode;
|
||
END IF;
|
||
v_periode_kosten := v_dagen * v_dagprijs;
|
||
v_totaal_object := v_totaal_object + v_periode_kosten;
|
||
v_tmp_huur_basis := v_tmp_huur_basis + v_periode_kosten;
|
||
IF v_srt_layout = 'PRN'
|
||
THEN
|
||
IF p_berekening
|
||
THEN
|
||
v_controle_regel := NVL(TO_CHAR(v_begindatum ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_einddatum ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_module_prijs ,'999990.90'),' .........')
|
||
||' '|| NVL(TO_CHAR(v_dagprijs ,'9990.9990'),' .........')
|
||
||' '|| NVL(TO_CHAR(v_beginperiode ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_eindeperiode ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_dagen ,'9990'),' ....')
|
||
||' '|| NVL(TO_CHAR(v_periode_kosten,'99990.90'),' ........');
|
||
i := schrijf_rapport_regel(p_session,i,RPadEnNvl('* '|| v_controle_regel,98) ||' *');
|
||
END IF;
|
||
i:= schrijf_rapport_regel(p_session,i,PrintReplicate(' ',16)
|
||
|| RPadEnNvl(lab_basis,60)||': '
|
||
|| TO_CHAR(v_periode_kosten,'99990.90'));
|
||
END IF;
|
||
END LOOP;
|
||
--
|
||
FOR r_modules IN c_modules(p_deel_key)
|
||
LOOP
|
||
lab_basis := SUBSTR('Basishuur' ||' '|| r_modules.naam,1,50);
|
||
v_dimensie := UPPER(r_modules.dimensie);
|
||
v_module_prijs := r_modules.prijs;
|
||
--
|
||
IF r_modules.srt_begindatum > r_modules.begindatum
|
||
THEN
|
||
v_begindatum := r_modules.srt_begindatum;
|
||
ELSE
|
||
v_begindatum := r_modules.begindatum;
|
||
END IF;
|
||
IF r_modules.srt_einddatum > r_modules.einddatum
|
||
OR r_modules.srt_einddatum IS NULL
|
||
THEN
|
||
v_einddatum := r_modules.einddatum;
|
||
ELSE
|
||
v_einddatum := r_modules.srt_einddatum;
|
||
END IF;
|
||
--
|
||
v_begindatum := r_modules.begindatum;
|
||
v_einddatum := r_modules.einddatum;
|
||
v_dagprijs := f_dagprijs(v_dimensie,v_module_prijs);
|
||
v_beginperiode := f_startperiode(p_datum_van,v_begindatum);
|
||
v_eindeperiode := f_eindeperiode(p_datum_tot,v_einddatum);
|
||
--
|
||
IF v_eindeperiode < v_beginperiode
|
||
THEN
|
||
-- Als een module binnen de periode niet gebruikt is
|
||
-- dan deze ook niet vermelden.
|
||
v_dagen := 0;
|
||
ELSE
|
||
v_dagen := v_eindeperiode - v_beginperiode;
|
||
--
|
||
v_periode_kosten := v_dagen * v_dagprijs;
|
||
v_totaal_object := v_totaal_object + v_periode_kosten;
|
||
v_tmp_huur_modules := v_tmp_huur_modules + v_periode_kosten;
|
||
--
|
||
IF v_srt_layout = 'PRN'
|
||
THEN
|
||
IF p_berekening
|
||
THEN
|
||
v_controle_regel := NVL(TO_CHAR(v_begindatum ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_einddatum ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_module_prijs ,'999990.90'),' .........')
|
||
||' '|| NVL(TO_CHAR(v_dagprijs ,'9990.9990'),' .........')
|
||
||' '|| NVL(TO_CHAR(v_beginperiode ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_eindeperiode ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_dagen ,'9990'),' ....')
|
||
||' '|| NVL(TO_CHAR(v_periode_kosten,'99990.90'),' ........');
|
||
i := schrijf_rapport_regel(p_session,i,RPadEnNvl('* '|| v_controle_regel,98) ||' *');
|
||
END IF;
|
||
i:= schrijf_rapport_regel(p_session,i,PrintReplicate(' ',16)
|
||
|| RPadEnNvl(lab_basis,60)||': '
|
||
|| TO_CHAR(v_periode_kosten,'99990.90'));
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
--
|
||
IF v_srt_layout = 'PRN'
|
||
THEN
|
||
i := schrijf_rapport_regel(p_session,i,PrintReplicate(' ',16)
|
||
|| PrintReplicate(' ',22)
|
||
|| RPadEnNvl(lab_object,28)||': '
|
||
|| TO_CHAR(v_totaal_object,'99990.90'));
|
||
END IF;
|
||
p_kosten := v_totaal_object;
|
||
RETURN i;
|
||
END; -- function: akzacopiers_6_basis
|
||
--
|
||
FUNCTION akzacopiers_5_papier(p_session IN VARCHAR2
|
||
,p_regelnr IN NUMBER
|
||
,p_deel_key IN NUMBER
|
||
,p_datum_van IN DATE
|
||
,p_datum_tot IN DATE
|
||
,p_berekening IN BOOLEAN
|
||
,p_kosten IN OUT NUMBER
|
||
) RETURN NUMBER IS
|
||
CURSOR c_onderdeel(p_parent_key IN NUMBER
|
||
) IS
|
||
SELECT ins_deel_key
|
||
FROM INS_DEEL
|
||
WHERE ins_deel_parent_key = p_parent_key
|
||
AND ins_srtdeel_key IN (SELECT ins_srtdeel_key
|
||
FROM ins_v_aanwezigsrtdeel
|
||
WHERE ins_srtdeel_code_upper IN ('PA3','PA4')
|
||
)
|
||
;
|
||
CURSOR c_leverdata(p_ins_deel_key IN NUMBER
|
||
,p_geleverd_key IN NUMBER
|
||
,p_datum_van IN DATE
|
||
,p_datum_tot IN DATE
|
||
) IS
|
||
SELECT ins_kenmerkdeel_aanmaak van
|
||
, ins_kenmerkdeel_verwijder tot
|
||
, ins_kenmerkdeel_key sleutel
|
||
, ins_kenmerkdeel_waarde aantal
|
||
FROM INS_KENMERKDEEL
|
||
WHERE ins_deel_key = p_ins_deel_key
|
||
AND ins_kenmerk_key = p_geleverd_key
|
||
AND ins_kenmerkdeel_aanmaak >= p_datum_van
|
||
AND ins_kenmerkdeel_aanmaak < p_datum_tot
|
||
;
|
||
i NUMBER(12);
|
||
v_periode_dozen NUMBER(12);
|
||
v_totaaldozen NUMBER(12);
|
||
v_leveringprijs NUMBER(12,2);
|
||
v_prijs NUMBER(12,2);
|
||
v_totaalprijs NUMBER(12,2);
|
||
v_papier_kosten NUMBER(12,2);
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_srtdeel_naam INS_SRTDEEL.ins_srtdeel_omschrijving%TYPE;
|
||
v_onderdeel_key INS_DEEL.ins_deel_key%TYPE;
|
||
v_geleverd_key INS_KENMERK.ins_kenmerk_key%TYPE;
|
||
v_doosprijs_key INS_KENMERK.ins_kenmerk_key%TYPE;
|
||
v_controle_regel VARCHAR2(200);
|
||
lab_aantal VARCHAR2(50);
|
||
lab_kosten VARCHAR2(50);
|
||
--
|
||
FUNCTION f_laatste_waarde(p_deel_key IN NUMBER
|
||
,p_kenmerk_key IN NUMBER
|
||
,p_datum_aanmaak IN DATE
|
||
) RETURN VARCHAR2 IS
|
||
CURSOR c_laatste_waarde(p_ins_deel_key IN NUMBER
|
||
,p_ins_kenmerk_key IN NUMBER
|
||
,p_datum_aanmaak IN DATE
|
||
) IS
|
||
SELECT ins_kenmerkdeel_waarde waarde
|
||
, ins_kenmerkdeel_aanmaak van
|
||
, ins_kenmerkdeel_verwijder tot
|
||
FROM INS_KENMERKDEEL
|
||
WHERE ins_deel_key = p_ins_deel_key
|
||
AND ins_kenmerk_key = p_ins_kenmerk_key
|
||
AND ins_kenmerkdeel_aanmaak <= p_datum_aanmaak
|
||
ORDER BY ins_kenmerkdeel_aanmaak ASC
|
||
;
|
||
v_return INS_KENMERKDEEL.ins_kenmerkdeel_waarde%TYPE;
|
||
r_laatste_waarde c_laatste_waarde%ROWTYPE;
|
||
BEGIN
|
||
OPEN c_laatste_waarde(p_deel_key
|
||
,p_kenmerk_key
|
||
,p_datum_aanmaak);
|
||
FETCH c_laatste_waarde INTO r_laatste_waarde;
|
||
IF c_laatste_waarde%NOTFOUND
|
||
THEN
|
||
v_return := NULL;
|
||
ELSE
|
||
v_return := r_laatste_waarde.waarde;
|
||
END IF;
|
||
CLOSE c_laatste_waarde;
|
||
RETURN v_return;
|
||
END;
|
||
--
|
||
BEGIN
|
||
-- function: akzacopiers_5_papier
|
||
-- Bereken het aantal dozen A4 en A3 papier die bij de printer in
|
||
-- de opgegeven periode geleverd zijn, met de daarbijbehorende kosten.
|
||
--
|
||
i := p_regelnr;
|
||
v_datum_van := TO_DATE(TO_CHAR(p_datum_van,'dd-mm-yyyy')||' 00:00:00','dd-mm-yyyy hh24:mi:ss');
|
||
v_datum_tot := TO_DATE(TO_CHAR(p_datum_tot,'dd-mm-yyyy')||' 00:00:00','dd-mm-yyyy hh24:mi:ss');
|
||
v_papier_kosten := 0;
|
||
v_tmp_papier_a3 := 0;
|
||
v_tmp_papier_a4 := 0;
|
||
v_tmp_papier_a3_nr := 0;
|
||
v_tmp_papier_a4_nr := 0;
|
||
--
|
||
FOR r_onderdeel IN c_onderdeel(p_deel_key)
|
||
LOOP
|
||
v_onderdeel_key := r_onderdeel.ins_deel_key;
|
||
v_geleverd_key := f_kenmerk('AANTAL GELEVERD', v_onderdeel_key);
|
||
v_doosprijs_key := f_kenmerk('PRIJS PER DOOS', v_onderdeel_key);
|
||
v_prijs := 0;
|
||
v_leveringprijs := 0;
|
||
v_totaalprijs := 0;
|
||
v_totaaldozen := 0;
|
||
--
|
||
FOR r_leverdata IN c_leverdata(v_onderdeel_key
|
||
,v_geleverd_key
|
||
,v_datum_van
|
||
,v_datum_tot)
|
||
LOOP
|
||
v_periode_dozen := r_leverdata.aantal;
|
||
--
|
||
--IF v_doosprijs_key = -1 -- kenmerk voor prijs per doos bestaat niet !
|
||
--THEN
|
||
v_prijs := f_srtdeel_prijs(r_onderdeel.ins_deel_key);
|
||
--ELSE
|
||
-- v_prijs := to_number(f_laatste_waarde(v_onderdeel_key,v_doosprijs_key,r_wijzigdata.van));
|
||
--END IF;
|
||
--
|
||
-- Berekening van kosten papier.
|
||
v_leveringprijs := v_periode_dozen * v_prijs;
|
||
v_totaalprijs := v_totaalprijs + v_leveringprijs;
|
||
v_totaaldozen := v_totaaldozen + v_periode_dozen;
|
||
--
|
||
IF v_srt_layout = 'PRN'
|
||
THEN
|
||
IF p_berekening
|
||
THEN
|
||
v_controle_regel := NVL(TO_CHAR(r_leverdata.van ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(r_leverdata.tot ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_periode_dozen ,'9999999990'),' ..........')
|
||
||' '|| NVL(TO_CHAR(v_prijs ,'99990.9990'),' ..........')
|
||
||' '|| NVL(TO_CHAR(v_leveringprijs ,'99990.9990'),' ..........')
|
||
||' '|| NVL(TO_CHAR(v_totaaldozen ,'9999999990'),' ..........')
|
||
||' '|| NVL(TO_CHAR(v_totaalprijs ,'9999990.90'),' ..........')
|
||
;
|
||
i := schrijf_rapport_regel(p_session,i,RPadEnNvl('* '|| v_controle_regel,98) ||' *');
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
v_papier_kosten := v_papier_kosten + v_totaalprijs;
|
||
v_srtdeel_naam := f_srtdeel(r_onderdeel.ins_deel_key);
|
||
--
|
||
IF INSTR(v_srtdeel_naam,'A3') > 0
|
||
THEN
|
||
v_tmp_papier_a3_nr := v_totaaldozen;
|
||
v_tmp_papier_a3 := v_totaalprijs;
|
||
ELSIF INSTR(v_srtdeel_naam,'A4') > 0
|
||
THEN
|
||
v_tmp_papier_a4_nr := v_totaaldozen;
|
||
v_tmp_papier_a4 := v_totaalprijs;
|
||
END IF;
|
||
--
|
||
lab_aantal := 'Aantal '|| v_srtdeel_naam;
|
||
lab_kosten := 'Kosten';
|
||
IF v_srt_layout = 'PRN'
|
||
THEN
|
||
i := schrijf_rapport_regel(p_session,i,PrintReplicate(' ',16)
|
||
|| RPadEnNvl(lab_aantal,22)||': '
|
||
|| TO_CHAR(v_totaaldozen,'99999990')
|
||
|| PrintReplicate(' ', 5)
|
||
|| RPadEnNvl(lab_kosten,22)||': '
|
||
|| TO_CHAR(v_totaalprijs,'99990.90'));
|
||
END IF;
|
||
END LOOP;
|
||
p_kosten := v_papier_kosten;
|
||
RETURN i;
|
||
END; -- function: akzacopiers_5_papier
|
||
--
|
||
FUNCTION akzacopiers_4_tikken(p_session IN VARCHAR2
|
||
,p_regelnr IN NUMBER
|
||
,p_deel_key IN NUMBER
|
||
,p_datum_van IN DATE
|
||
,p_datum_tot IN DATE
|
||
,p_berekening IN BOOLEAN
|
||
,p_kosten IN OUT NUMBER
|
||
) RETURN NUMBER IS
|
||
CURSOR c_afdruk(p_ins_deel_key IN NUMBER
|
||
,p_ins_kenmerk_key_1 IN NUMBER
|
||
,p_ins_kenmerk_key_2 IN NUMBER
|
||
) IS
|
||
SELECT DISTINCT
|
||
ins_kenmerk_key
|
||
FROM INS_KENMERKDEEL
|
||
WHERE ins_deel_key = p_ins_deel_key
|
||
AND ins_kenmerk_key IN (p_ins_kenmerk_key_1,p_ins_kenmerk_key_2)
|
||
;
|
||
CURSOR c_wijzigdata(p_ins_deel_key IN NUMBER
|
||
,p_tellerstand_key IN NUMBER
|
||
,p_datum_van IN DATE
|
||
,p_datum_tot IN DATE
|
||
) IS
|
||
SELECT ins_kenmerkdeel_waarde waarde
|
||
, ins_kenmerkdeel_aanmaak van
|
||
FROM INS_KENMERKDEEL
|
||
WHERE ins_deel_key = p_ins_deel_key
|
||
AND ins_kenmerk_key = p_tellerstand_key
|
||
AND ins_kenmerkdeel_aanmaak >= p_datum_van
|
||
AND ins_kenmerkdeel_aanmaak <= p_datum_tot
|
||
;
|
||
v_tellerstand_key INS_KENMERK.ins_kenmerk_key%TYPE;
|
||
v_prijspertik_key INS_KENMERK.ins_kenmerk_key%TYPE;
|
||
v_eerste_record BOOLEAN;
|
||
v_controle_regel VARCHAR2(200);
|
||
v_periode_van DATE;
|
||
v_periode_tot DATE;
|
||
v_datumvan DATE;
|
||
v_huidige_datum DATE;
|
||
i NUMBER(12);
|
||
v_subtotaal_tik NUMBER(12);
|
||
v_totaal_tikken NUMBER(12);
|
||
v_aantal_tikken NUMBER(12);
|
||
v_begin_stand NUMBER(12);
|
||
v_einde_stand NUMBER(12);
|
||
v_huidige_stand NUMBER(12);
|
||
v_vorige_stand NUMBER(12);
|
||
v_tikkosten NUMBER(12,4);
|
||
v_prijs NUMBER(12,4);
|
||
v_totaalprijs NUMBER(12,4);
|
||
v_totaal_zw_kl NUMBER(12,4);
|
||
v_afdruk VARCHAR2(10);
|
||
lab_aantal VARCHAR2(50);
|
||
lab_kosten VARCHAR2(50);
|
||
--
|
||
FUNCTION f_laatste_waarde(p_deel_key IN NUMBER
|
||
,p_kenmerk_key IN NUMBER
|
||
,p_datum_aanmaak IN OUT DATE
|
||
) RETURN NUMBER IS
|
||
CURSOR c_laatste_waarde(p_ins_deel_key IN NUMBER
|
||
,p_ins_kenmerk_key IN NUMBER
|
||
,p_datum_aanmaak IN DATE
|
||
) IS
|
||
SELECT ins_kenmerkdeel_waarde waarde
|
||
, ins_kenmerkdeel_aanmaak van
|
||
FROM INS_KENMERKDEEL
|
||
WHERE ins_deel_key = p_ins_deel_key
|
||
AND ins_kenmerk_key = p_ins_kenmerk_key
|
||
AND ins_kenmerkdeel_aanmaak <= p_datum_aanmaak
|
||
ORDER BY ins_kenmerkdeel_aanmaak ASC
|
||
;
|
||
v_return NUMBER;
|
||
BEGIN
|
||
v_return := NULL;
|
||
FOR r_laatste_waarde IN c_laatste_waarde(p_deel_key
|
||
,p_kenmerk_key
|
||
,p_datum_aanmaak)
|
||
LOOP
|
||
BEGIN
|
||
v_return := TO_NUMBER(r_laatste_waarde.waarde);
|
||
EXCEPTION
|
||
WHEN OTHERS THEN v_return := 0; -- Indien er geen getal in Waarde staat.
|
||
END;
|
||
p_datum_aanmaak := r_laatste_waarde.van;
|
||
END LOOP;
|
||
--
|
||
IF v_return IS NULL
|
||
THEN
|
||
v_return := 0;
|
||
p_datum_aanmaak := p_datum_aanmaak;
|
||
END IF;
|
||
RETURN v_return;
|
||
END;
|
||
--
|
||
BEGIN
|
||
-- function: akzacopiers_4_tikken
|
||
-- Bereken het aantal tikken dat de printer in de
|
||
-- opgegeven periode heeft verwerkt.
|
||
--
|
||
i := p_regelnr;
|
||
v_totaal_tikken := 0;
|
||
v_totaal_zw_kl := 0;
|
||
v_tmp_tikkosten_zw := 0;
|
||
v_tmp_tikkosten_kl := 0;
|
||
FOR r_afdruk IN c_afdruk(p_deel_key
|
||
,f_kenmerk('TELLERSTAND', p_deel_key)
|
||
,f_kenmerk('TELLERSTAND KLEUR', p_deel_key)
|
||
)
|
||
LOOP
|
||
IF r_afdruk.ins_kenmerk_key = f_kenmerk('TELLERSTAND', p_deel_key)
|
||
THEN
|
||
v_afdruk := 'z/w';
|
||
v_tellerstand_key := f_kenmerk('TELLERSTAND', p_deel_key);
|
||
v_prijspertik_key := f_kenmerk('PRIJS PER TIK', p_deel_key);
|
||
ELSE
|
||
v_afdruk := 'kleur';
|
||
v_tellerstand_key := f_kenmerk('TELLERSTAND KLEUR', p_deel_key);
|
||
v_prijspertik_key := f_kenmerk('PRIJS PER TIK KLEUR', p_deel_key);
|
||
END IF;
|
||
--
|
||
v_periode_van := TO_DATE(TO_CHAR(p_datum_van,'dd-mm-yyyy')||' 00:00:00','dd-mm-yyyy hh24:mi:ss');
|
||
v_periode_tot := TO_DATE(TO_CHAR(p_datum_tot,'dd-mm-yyyy')||' 23:59:59','dd-mm-yyyy hh24:mi:ss');
|
||
v_eerste_record := TRUE;
|
||
lab_aantal := 'Aantal Tikken';
|
||
lab_kosten := 'Kosten';
|
||
v_totaal_tikken := 0;
|
||
v_subtotaal_tik := 0;
|
||
v_huidige_stand := 0;
|
||
v_vorige_stand := 0;
|
||
v_prijs := 0;
|
||
v_aantal_tikken := 0;
|
||
v_tikkosten := 0;
|
||
v_totaalprijs := 0;
|
||
--
|
||
-- Bepalen van begin- en einddatum van de periode
|
||
-- waaruit de gegevens moeten worden gehaald.
|
||
--
|
||
v_begin_stand := f_laatste_waarde(p_deel_key,v_tellerstand_key,v_periode_van);
|
||
v_einde_stand := f_laatste_waarde(p_deel_key,v_tellerstand_key,v_periode_tot);
|
||
FOR r_wijzigdata IN c_wijzigdata(p_deel_key
|
||
,v_tellerstand_key
|
||
,v_periode_van
|
||
,v_periode_tot)
|
||
LOOP
|
||
v_huidige_datum := r_wijzigdata.van;
|
||
v_huidige_stand := r_wijzigdata.waarde;
|
||
v_datumvan := v_huidige_datum;
|
||
v_tikkosten := f_laatste_waarde(p_deel_key,v_prijspertik_key,v_datumvan);
|
||
--
|
||
IF v_eerste_record
|
||
THEN
|
||
v_vorige_stand := v_huidige_stand;
|
||
v_eerste_record := FALSE;
|
||
END IF;
|
||
--
|
||
-- Berekenen van kosten tikken.
|
||
--
|
||
v_aantal_tikken := v_huidige_stand - v_vorige_stand;
|
||
v_prijs := v_aantal_tikken * v_tikkosten;
|
||
v_totaalprijs := v_totaalprijs + v_prijs;
|
||
--
|
||
-- Tonen van de tijdsopbouw van de kosten.
|
||
--
|
||
IF v_srt_layout = 'PRN'
|
||
THEN
|
||
IF p_berekening
|
||
THEN
|
||
v_controle_regel := NVL(TO_CHAR(v_periode_van ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_periode_tot ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_huidige_datum ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_huidige_stand , '9999990'), ' .......')
|
||
||' '|| NVL(TO_CHAR(v_tikkosten , '90.9990'), ' .......')
|
||
||' ('|| NVL(TO_CHAR(v_datumvan ,'dd-mm-yyyy'),'00-00-0000')
|
||
||') '|| NVL(TO_CHAR(v_aantal_tikken , '9999990'), ' .......')
|
||
||' '|| NVL(TO_CHAR(v_prijs , '9990.90'), ' .......')
|
||
||' '|| NVL(TO_CHAR(v_totaalprijs , '9990.90'), ' .......');
|
||
i := schrijf_rapport_regel(p_session,i,RPadEnNvl('* '|| v_controle_regel,98) ||' *');
|
||
END IF;
|
||
END IF;
|
||
v_subtotaal_tik := v_subtotaal_tik + v_aantal_tikken;
|
||
v_vorige_stand := v_huidige_stand;
|
||
END LOOP;
|
||
v_totaal_tikken := v_totaal_tikken + v_subtotaal_tik;
|
||
--
|
||
IF v_afdruk = 'z/w'
|
||
THEN
|
||
v_tmp_tikkosten_zw := v_totaalprijs;
|
||
ELSIF v_afdruk = 'kleur'
|
||
THEN
|
||
v_tmp_tikkosten_kl := v_totaalprijs;
|
||
END IF;
|
||
--
|
||
IF v_srt_layout = 'PRN'
|
||
THEN
|
||
i := schrijf_rapport_regel(p_session,i,PrintReplicate(' ',16)
|
||
|| RPadEnNvl(lab_aantal ||' '|| v_afdruk,22)||': '
|
||
|| TO_CHAR(NVL(v_totaal_tikken,0) ,'99999990')
|
||
|| PrintReplicate(' ', 5)
|
||
|| RPadEnNvl(lab_kosten,22)||': '
|
||
|| TO_CHAR(NVL(v_totaalprijs,0) ,'99990.90'));
|
||
END IF;
|
||
v_totaal_zw_kl := v_totaal_zw_kl + v_totaalprijs;
|
||
END LOOP;
|
||
p_kosten := v_totaal_zw_kl;
|
||
RETURN i;
|
||
END; -- function: akzacopiers_4_tikken
|
||
--
|
||
FUNCTION akzacopiers_3_norm(p_session IN VARCHAR2
|
||
,p_regelnr IN NUMBER
|
||
,p_deel_key IN NUMBER
|
||
,p_datum_van IN DATE
|
||
,p_datum_tot IN DATE
|
||
,p_berekening IN BOOLEAN
|
||
) RETURN NUMBER IS
|
||
CURSOR c_laatste_waarde(p_ins_deel_key IN NUMBER
|
||
,p_ins_kenmerk_key IN NUMBER
|
||
,p_datum_aanmaak IN DATE
|
||
) IS
|
||
SELECT ins_kenmerkdeel_waarde waarde
|
||
, ins_kenmerkdeel_aanmaak van
|
||
, ins_kenmerkdeel_verwijder tot
|
||
FROM INS_KENMERKDEEL
|
||
WHERE ins_deel_key = p_ins_deel_key
|
||
AND ins_kenmerk_key = p_ins_kenmerk_key
|
||
AND ins_kenmerkdeel_aanmaak <= p_datum_aanmaak
|
||
ORDER BY ins_kenmerkdeel_aanmaak ASC
|
||
;
|
||
v_normverbruik_key INS_KENMERK.ins_kenmerk_key%TYPE;
|
||
i NUMBER(12);
|
||
v_normverbruik NUMBER(12) := 0;
|
||
lab_norm VARCHAR2(50);
|
||
v_datum_tot DATE;
|
||
BEGIN
|
||
-- function: akzacopiers_3_norm
|
||
-- Bepaal het norm aantal afdrukken voor een printer.
|
||
--
|
||
i := p_regelnr;
|
||
lab_norm := 'Normverbruik';
|
||
v_datum_tot := TO_DATE(TO_CHAR(p_datum_tot,'dd-mm-yyyy')||' 00:00:00','dd-mm-yyyy hh24:mi:ss');
|
||
v_normverbruik_key := f_kenmerk('NORMVERBRUIK', p_deel_key);
|
||
--
|
||
FOR r_normverbruik IN c_laatste_waarde(p_deel_key
|
||
,v_normverbruik_key
|
||
,v_datum_tot
|
||
)
|
||
LOOP
|
||
v_normverbruik := TO_NUMBER(r_normverbruik.waarde);
|
||
END LOOP;
|
||
--
|
||
IF v_srt_layout = 'PRN'
|
||
THEN
|
||
i := schrijf_rapport_regel(p_session,i,PrintReplicate(' ',16)
|
||
|| RPadEnNvl(lab_norm,22)||': '
|
||
|| TO_CHAR(v_normverbruik,'99999990'));
|
||
END IF;
|
||
--
|
||
RETURN i;
|
||
END; -- function: akzacopiers_3_norm
|
||
--
|
||
FUNCTION akzacopiers_2_beheer(p_session IN VARCHAR2
|
||
,p_regelnr IN NUMBER
|
||
,p_deel_key IN NUMBER
|
||
,p_datum_van IN DATE
|
||
,p_datum_tot IN DATE
|
||
,p_berekening IN BOOLEAN
|
||
,p_kosten IN OUT NUMBER
|
||
) RETURN NUMBER IS
|
||
CURSOR c_wijzigdata(p_ins_deel_key IN NUMBER
|
||
,p_kenmerk_key1 IN NUMBER
|
||
,p_datum_van IN DATE
|
||
,p_datum_tot IN DATE
|
||
) IS
|
||
SELECT TRUNC(ins_kenmerkdeel_aanmaak) van
|
||
, ins_kenmerkdeel_key sleutel
|
||
FROM INS_KENMERKDEEL
|
||
WHERE ins_deel_key = p_ins_deel_key
|
||
AND ins_kenmerk_key IN (p_kenmerk_key1)
|
||
AND( (ins_kenmerkdeel_aanmaak <= p_datum_van)
|
||
OR (ins_kenmerkdeel_aanmaak <= p_datum_tot)
|
||
)
|
||
AND( ( (ins_kenmerkdeel_verwijder >= p_datum_van)
|
||
OR (ins_kenmerkdeel_verwijder >= p_datum_tot)
|
||
)
|
||
OR ins_kenmerkdeel_verwijder IS NULL
|
||
)
|
||
;
|
||
CURSOR c_laatste_waarde(p_ins_deel_key IN NUMBER
|
||
,p_ins_kenmerk_key IN NUMBER
|
||
,p_datum_aanmaak IN DATE
|
||
) IS
|
||
SELECT ins_kenmerkdeel_waarde waarde
|
||
, TRUNC(ins_kenmerkdeel_aanmaak) van
|
||
, TRUNC(ins_kenmerkdeel_verwijder) tot
|
||
FROM INS_KENMERKDEEL
|
||
WHERE ins_deel_key = p_ins_deel_key
|
||
AND ins_kenmerk_key = p_ins_kenmerk_key
|
||
AND TRUNC(ins_kenmerkdeel_aanmaak) <= TRUNC(p_datum_aanmaak)
|
||
ORDER BY ins_kenmerkdeel_aanmaak ASC
|
||
;
|
||
v_beheerkosten_key INS_KENMERK.ins_kenmerk_key%TYPE;
|
||
v_periode_kosten NUMBER(12,4);
|
||
v_beheer_kosten NUMBER(12,4);
|
||
v_dimensie VARCHAR2(100);
|
||
v_dagkosten NUMBER(12,4);
|
||
v_totaal_beheer NUMBER(12,4);
|
||
v_controle_regel VARCHAR2(200);
|
||
v_begindatum DATE;
|
||
v_einddatum DATE;
|
||
v_beginperiode DATE;
|
||
v_eindeperiode DATE;
|
||
v_dagen NUMBER(12);
|
||
lab_beheer VARCHAR2(50);
|
||
i NUMBER(12);
|
||
BEGIN
|
||
-- function: akzacopiers_2_beheer
|
||
-- Subfunctie voor het berekenen van de beheerkosten per printer.
|
||
--
|
||
i := p_regelnr;
|
||
v_beheerkosten_key := f_kenmerk('BEHEERSKOSTEN', p_deel_key);
|
||
v_dimensie := f_dimensie('BEHEERSKOSTEN');
|
||
v_totaal_beheer := 0;
|
||
FOR r_wijzigdata IN c_wijzigdata(p_deel_key
|
||
,v_beheerkosten_key
|
||
,p_datum_van
|
||
,p_datum_tot
|
||
)
|
||
LOOP
|
||
SELECT ins_kenmerkdeel_aanmaak
|
||
, ins_kenmerkdeel_verwijder
|
||
, TO_NUMBER(NVL(ins_kenmerkdeel_waarde,'0'))
|
||
INTO v_begindatum
|
||
, v_einddatum
|
||
, v_beheer_kosten
|
||
FROM INS_KENMERKDEEL
|
||
WHERE ins_kenmerkdeel_key = r_wijzigdata.sleutel;
|
||
--
|
||
IF v_dimensie = 'EURO P JR'
|
||
THEN
|
||
v_dagkosten := (v_beheer_kosten / 365);
|
||
ELSIF v_dimensie = 'EURO P MND'
|
||
THEN
|
||
v_dagkosten := (v_beheer_kosten * 12)/365;
|
||
ELSIF v_dimensie = 'EURO P WK'
|
||
THEN
|
||
v_dagkosten := (v_beheer_kosten /7);
|
||
ELSIF v_dimensie = 'EURO P DAG'
|
||
THEN
|
||
v_dagkosten := v_beheer_kosten;
|
||
ELSE
|
||
-- Ga ervan uit dat indien er geen eenheid is ingevuld
|
||
-- hiervoor een maand bedoeld wordt.
|
||
v_dagkosten := (v_beheer_kosten * 12)/365;
|
||
END IF;
|
||
--
|
||
IF p_datum_van < v_begindatum
|
||
THEN
|
||
v_beginperiode := v_begindatum;
|
||
ELSE
|
||
v_beginperiode := p_datum_van;
|
||
END IF;
|
||
--
|
||
IF p_datum_tot >= v_einddatum
|
||
THEN
|
||
v_eindeperiode := v_einddatum;
|
||
ELSE
|
||
v_eindeperiode := p_datum_tot;
|
||
END IF;
|
||
--
|
||
IF v_eindeperiode < v_beginperiode
|
||
THEN
|
||
v_dagen := 0;
|
||
ELSE
|
||
v_dagen := TRUNC(v_eindeperiode) - TRUNC(v_beginperiode);
|
||
END IF;
|
||
--
|
||
v_periode_kosten := v_dagen * v_dagkosten;
|
||
v_totaal_beheer := v_totaal_beheer + v_periode_kosten;
|
||
--
|
||
IF v_srt_layout = 'PRN'
|
||
THEN
|
||
IF p_berekening
|
||
THEN
|
||
v_controle_regel := NVL(TO_CHAR(v_begindatum ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_einddatum ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_beheer_kosten ,'999990.90'),' .........')
|
||
||' '|| NVL(TO_CHAR(v_dagkosten ,'9990.9990'),' .........')
|
||
||' '|| NVL(TO_CHAR(v_beginperiode ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_eindeperiode ,'dd-mm-yyyy'),'00-00-0000')
|
||
||' '|| NVL(TO_CHAR(v_dagen ,'9990'),' ....')
|
||
||' '|| NVL(TO_CHAR(v_periode_kosten,'99990.90'),' ........');
|
||
i := schrijf_rapport_regel(p_session,i,RPadEnNvl('* '|| v_controle_regel,98)||' *');
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
lab_beheer := 'Beheerskosten';
|
||
--
|
||
IF v_srt_layout = 'PRN'
|
||
THEN
|
||
i := schrijf_rapport_regel(p_session,i,PrintReplicate(' ',54)
|
||
|| RPadEnNvl(lab_beheer,22)||': '
|
||
|| TO_CHAR(v_totaal_beheer,'99990.90'));
|
||
END IF;
|
||
v_tmp_beheerskosten := v_totaal_beheer;
|
||
p_kosten := v_totaal_beheer;
|
||
RETURN i;
|
||
END; -- function: akzacopiers_2_beheer
|
||
--
|
||
FUNCTION akzacopiers_1_eigenaar(user_key IN NUMBER
|
||
,p_session IN VARCHAR2
|
||
,p_regelnr IN NUMBER
|
||
,p_datum_van IN DATE
|
||
,p_datum_tot IN DATE
|
||
,p_berekening IN BOOLEAN
|
||
,p_alle_eigenaren IN BOOLEAN
|
||
) RETURN NUMBER
|
||
AS
|
||
CURSOR c_owner_copier (p_eigenaar IN NUMBER)
|
||
IS
|
||
SELECT DISTINCT
|
||
w.ins_kenmerkdeel_waarde,
|
||
w.ins_deel_key,
|
||
k.ins_kenmerk_key,
|
||
s.ins_srtkenmerk_key,
|
||
s.fac_kenmerkdomein_key,
|
||
s.ins_srtkenmerk_kenmerktype,
|
||
r.fac_kenmerkdomein_objectnaam,
|
||
r.fac_kenmerkdomein_kolomnaam,
|
||
r.fac_kenmerkdomein_kolomtxt
|
||
FROM ins_kenmerkdeel w,
|
||
ins_kenmerk k,
|
||
ins_srtkenmerk s,
|
||
fac_kenmerkdomein r
|
||
WHERE w.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND s.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND s.fac_kenmerkdomein_key = r.fac_kenmerkdomein_key
|
||
AND s.ins_srtkenmerk_upper = 'EIGENAAR'
|
||
AND k.ins_kenmerk_niveau = 'G'
|
||
AND k.ins_srtinstallatie_key = (SELECT ins_srtgroep_key
|
||
FROM ins_srtgroep
|
||
WHERE ins_srtgroep_upper = 'KOPIEERMACHINES')
|
||
AND w.ins_kenmerkdeel_waarde = DECODE(p_eigenaar,
|
||
0, w.ins_kenmerkdeel_waarde,
|
||
p_eigenaar);
|
||
|
||
CURSOR c_copier (p_deel_key IN NUMBER)
|
||
IS
|
||
SELECT ins_deel_omschrijving object,
|
||
ins_srtdeel_omschrijving objectsoort
|
||
FROM ins_deel d,
|
||
ins_v_aanwezigsrtdeel s
|
||
WHERE d.ins_srtdeel_key = s.ins_srtdeel_key
|
||
AND d.ins_deel_key = p_deel_key;
|
||
|
||
TYPE cursor_type IS REF CURSOR;
|
||
c_company cursor_type;
|
||
c_eigenaren cursor_type;
|
||
v_regel VARCHAR2(2000);
|
||
i NUMBER(10);
|
||
i_machine_start NUMBER(10);
|
||
i_eigenaar_start NUMBER(10);
|
||
i_company_start NUMBER(10);
|
||
v_eerste BOOLEAN := TRUE;
|
||
v_afdelingen VARCHAR2(2000);
|
||
v_Sql_company VARCHAR2(2000);
|
||
v_Sql_afdeling VARCHAR2(2000);
|
||
v_company_code VARCHAR2(10);
|
||
v_kostenplaats VARCHAR2(30);
|
||
v_company_key NUMBER(10);
|
||
v_eigenaar VARCHAR2(60);
|
||
v_ownerkey NUMBER(10);
|
||
lab_company VARCHAR2(30);
|
||
lab_eigenaar VARCHAR2(30);
|
||
lab_machine VARCHAR2(30);
|
||
lab_gebruik VARCHAR2(30);
|
||
lab_totaal_machine VARCHAR2(30);
|
||
lab_totaal VARCHAR2(30);
|
||
v_ins_deel_key NUMBER(10);
|
||
v_beheer_kosten NUMBER(12,2) := 0;
|
||
v_tikken_kosten NUMBER(12,2) := 0;
|
||
v_papier_kosten NUMBER(12,2) := 0;
|
||
v_gebruik_kosten NUMBER(12,2) := 0;
|
||
v_basis_kosten NUMBER(12,2) := 0;
|
||
v_totaal_machine NUMBER(12,2) := 0;
|
||
v_totaal_eigenaar NUMBER(12,2) := 0;
|
||
v_totaal_company NUMBER(12,2) := 0;
|
||
v_regel_eigenaar NUMBER(10);
|
||
v_regel_company NUMBER(10);
|
||
v_user_dep NUMBER(10);
|
||
v_periode_van DATE;
|
||
v_periode_tot DATE;
|
||
--
|
||
FUNCTION p_periode_eigenaar(p_session IN VARCHAR2
|
||
,p_volgnr IN NUMBER
|
||
,p_owner_key IN NUMBER
|
||
,p_deel_key IN NUMBER
|
||
,p_datum_van IN OUT DATE
|
||
,p_datum_tot IN OUT DATE
|
||
) RETURN NUMBER AS
|
||
i NUMBER;
|
||
v_kenmerk_eigenaar NUMBER(10);
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_copier_van DATE;
|
||
v_copier_tot DATE;
|
||
v_periode_van DATE;
|
||
v_periode_tot DATE;
|
||
BEGIN
|
||
-- Bereken de begin- en einddatum binnen de opgegeven periode
|
||
-- dat de copier in het bezit was van de huidige eigenaar.
|
||
i := p_volgnr;
|
||
v_kenmerk_eigenaar := f_kenmerk('EIGENAAR', p_deel_key);
|
||
v_copier_van := TO_DATE(NULL);
|
||
v_copier_tot := TO_DATE(NULL);
|
||
|
||
BEGIN
|
||
SELECT k.ins_kenmerkdeel_aanmaak
|
||
, k.ins_kenmerkdeel_verwijder
|
||
, d.ins_deel_aanmaak
|
||
, d.ins_deel_verwijder
|
||
INTO v_datum_van
|
||
, v_datum_tot
|
||
, v_copier_van
|
||
, v_copier_tot
|
||
FROM ins_kenmerkdeel k
|
||
, ins_deel d
|
||
WHERE k.ins_deel_key = d.ins_deel_key
|
||
AND k.ins_kenmerk_key = v_kenmerk_eigenaar
|
||
AND k.ins_deel_key = p_deel_key
|
||
AND k.ins_kenmerkdeel_waarde = TO_CHAR(p_owner_key);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN v_datum_van := p_datum_van;
|
||
v_datum_tot := p_datum_tot;
|
||
WHEN TOO_MANY_ROWS THEN v_datum_van := p_datum_van;
|
||
v_datum_tot := p_datum_tot;
|
||
END;
|
||
--
|
||
IF p_datum_van < v_datum_van
|
||
THEN
|
||
v_periode_van := v_datum_van;
|
||
ELSE
|
||
v_periode_van := p_datum_van;
|
||
END IF;
|
||
--
|
||
-- Kan pas eigenaar zijn als de copier ook bestaat.
|
||
IF v_copier_van > v_periode_van
|
||
THEN
|
||
v_periode_van := v_copier_van;
|
||
END IF;
|
||
--
|
||
IF v_datum_tot IS NULL
|
||
THEN
|
||
v_periode_tot := p_datum_tot;
|
||
ELSE
|
||
IF p_datum_tot <= v_datum_tot
|
||
THEN
|
||
v_periode_tot := p_datum_tot;
|
||
ELSE
|
||
v_periode_tot := v_datum_tot -1;
|
||
END IF;
|
||
END IF;
|
||
--
|
||
-- Is geen eigenaar meer als copier is verwijderd.
|
||
IF v_copier_tot IS NOT NULL
|
||
AND v_copier_tot < v_periode_tot
|
||
THEN
|
||
v_periode_tot := v_copier_tot;
|
||
END IF;
|
||
--
|
||
p_datum_van := TRUNC(v_periode_van);
|
||
p_datum_tot := TRUNC(v_periode_tot);
|
||
RETURN i;
|
||
END;
|
||
BEGIN
|
||
-- function: akzacopiers_1_eigenaar
|
||
-- Maak fac_rapport regels aan voor een overzicht per gebruiker en
|
||
-- kopieermachine met daarbij de kosten voor de opgegeven periode
|
||
-- met betrekking tot papier- gebruik- en beheerkosten.
|
||
--
|
||
i := p_regelnr;
|
||
lab_company := 'Company code';
|
||
lab_eigenaar := 'Eigenaar';
|
||
lab_machine := 'Kopieermachine';
|
||
lab_gebruik := 'Gebruikskosten';
|
||
lab_totaal_machine := 'Totaal machine';
|
||
lab_totaal := 'Totaal';
|
||
|
||
IF v_srt_layout = 'XLS'
|
||
THEN
|
||
-- Kop van de xls-kolommen
|
||
i := schrijf_rapport_regel(p_session,i,'Kostenoverzicht copiers');
|
||
i := schrijf_rapport_regel(p_session,i,'Van ' ||TO_CHAR(p_datum_van,'dd-mm-yyyy')
|
||
||' Tot '||TO_CHAR(p_datum_tot,'dd-mm-yyyy')
|
||
);
|
||
i := schrijf_rapport_regel(p_session,i,'Datum aanmaak: '||TO_CHAR(SYSDATE,'dd-mm-yyyy'));
|
||
i := schrijf_rapport_regel(p_session,i,'');
|
||
i := schrijf_rapport_regel(p_session,i,RPadEnNvl('Company.cd',10)
|
||
||','|| RPadEnNvl('Kostenplts',10)
|
||
||','|| RPadEnNvl('Eigenaar' ,30)
|
||
||','|| RPadEnNvl('Copier' ,50)
|
||
||','|| LPadEnNvl('Beheer' , 9)
|
||
||','|| LPadEnNvl('Tik. z/w' , 9)
|
||
||','|| LPadEnNvl('Tik. kl' , 9)
|
||
||','|| LPadEnNvl('tot.Tik.' , 9)
|
||
||','|| LPadEnNvl('Pak A3' , 6)
|
||
||','|| LPadEnNvl('Kosten A3' , 9)
|
||
||','|| LPadEnNvl('DoosA4' , 6)
|
||
||','|| LPadEnNvl('Kosten A4' , 9)
|
||
||','|| LPadEnNvl('totPapier' , 9)
|
||
||','|| LPadEnNvl('Gebruik' , 9)
|
||
||','|| LPadEnNvl('Basis' , 9)
|
||
||','|| LPadEnNvl('Modules' , 9)
|
||
||','|| LPadEnNvl('Huur' , 9)
|
||
||','|| LPadEnNvl('Nashuatec' , 9)
|
||
||','|| LPadEnNvl('tot.cop.' , 9)
|
||
||','|| LPadEnNvl('tot.eig.' ,13)
|
||
||','|| LPadEnNvl('tot.comp' ,13));
|
||
i := schrijf_rapport_regel(p_session,i,PrintReplicate('-',10)
|
||
||','|| PrintReplicate('-',10)
|
||
||','|| PrintReplicate('-',30)
|
||
||','|| PrintReplicate('-',50)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 6)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 6)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-', 9)
|
||
||','|| PrintReplicate('-',13)
|
||
||','|| PrintReplicate('-',13));
|
||
END IF;
|
||
|
||
-- Bepaal de afdeling waartoe de huidige gebruiker behoort
|
||
-- of neem all afdelingen in het overzicht op.
|
||
IF p_alle_eigenaren
|
||
THEN
|
||
v_user_dep := 0;
|
||
ELSE
|
||
BEGIN
|
||
SELECT prs_afdeling_key
|
||
INTO v_user_dep
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_key = user_key;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN v_user_dep := 0;
|
||
WHEN TOO_MANY_ROWS THEN v_user_dep := 0;
|
||
END;
|
||
END IF;
|
||
|
||
--DBMS_OUTPUT.PUT_LINE('v_user_dep = '||v_user_dep);
|
||
|
||
-- Welke afdelingen en company-codes moeten in het
|
||
-- overzicht worden meegenomen?
|
||
v_afdelingen := 'AND A.prs_afdeling_key IN (-1';
|
||
FOR r_eigenaar IN c_owner_copier(v_user_dep)
|
||
LOOP
|
||
v_afdelingen := v_afdelingen ||','|| r_eigenaar.ins_kenmerkdeel_waarde;
|
||
END LOOP;
|
||
|
||
--DBMS_OUTPUT.PUT_LINE('v_afdelingen = '||v_afdelingen);
|
||
|
||
-- AKZA#489
|
||
-- AKZA#534: ook als afdeling ondertussen al verwijderd toch in query laten voor doorbelasting
|
||
v_Sql_company := 'SELECT DISTINCT a.prs_afdeling_parentkey prs_eenheid_key, e.prs_afdeling_upper company_code '
|
||
|| ' FROM prs_afdeling a, prs_v_aanwezigafdeling e '
|
||
|| ' WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key '
|
||
|| v_afdelingen
|
||
|| ') '
|
||
||' ORDER BY e.prs_afdeling_upper';
|
||
--
|
||
-- Voor alle company-codes.
|
||
OPEN c_company FOR v_Sql_company;
|
||
LOOP
|
||
v_totaal_company := 0;
|
||
i_company_start := i;
|
||
FETCH c_company INTO v_company_key,
|
||
v_company_code;
|
||
IF c_company%NOTFOUND
|
||
THEN
|
||
--DBMS_OUTPUT.PUT_LINE('Einde c_company');
|
||
EXIT;
|
||
ELSE
|
||
--DBMS_OUTPUT.PUT_LINE('v_company_key/code = '||v_company_key||'/'||v_company_code);
|
||
v_totaal_company := 0;
|
||
v_regel_company := i;
|
||
v_regel := RPadEnNvl(lab_company,14)||': '|| v_company_code;
|
||
IF v_srt_layout = 'SAP'
|
||
THEN
|
||
v_tmp_company := v_company_code;
|
||
ELSIF v_srt_layout = 'XLS'
|
||
THEN
|
||
v_tmp_company := v_company_code;
|
||
ELSIF v_srt_layout = 'PRN'
|
||
THEN
|
||
i := schrijf_rapport_regel(p_session,i,v_regel);
|
||
i := schrijf_rapport_regel(p_session,i,'');
|
||
i := schrijf_rapport_regel(p_session,i,'');
|
||
END IF;
|
||
|
||
-- AKZA#534: ook als afdeling ondertussen al verwijderd toch in query laten voor doorbelasting
|
||
v_Sql_afdeling := 'SELECT a.prs_afdeling_omschrijving tekst '
|
||
|| ', a.prs_afdeling_key naam '
|
||
|| ', (SELECT k.prs_kostenplaats_nr FROM akza_v_kostenplaats k WHERE k.prs_kostenplaats_key = a.prs_kostenplaats_key) kplts '
|
||
|| 'FROM prs_afdeling a '
|
||
|| 'WHERE a.prs_afdeling_parentkey = '|| v_company_key ||' '
|
||
|| v_afdelingen
|
||
|| ') ORDER BY a.prs_afdeling_omschrijving ';
|
||
|
||
-- Voor alle eigenaren die kopieermachines bezitten.
|
||
OPEN c_eigenaren FOR v_Sql_afdeling;
|
||
LOOP
|
||
v_totaal_eigenaar := 0;
|
||
i_eigenaar_start := i;
|
||
FETCH c_eigenaren INTO v_eigenaar,
|
||
v_ownerkey,
|
||
v_kostenplaats;
|
||
IF c_eigenaren%NOTFOUND
|
||
THEN
|
||
--DBMS_OUTPUT.PUT_LINE('Einde c_eigenaren');
|
||
EXIT;
|
||
ELSE
|
||
--DBMS_OUTPUT.PUT_LINE('v_eigenaar/ownerkey/kostenplaats = '||v_eigenaar||'/'||v_ownerkey||'/'||v_kostenplaats);
|
||
v_totaal_eigenaar := 0;
|
||
v_regel_eigenaar := i;
|
||
v_regel := RPadEnNvl(lab_eigenaar,14)||': '|| v_eigenaar;
|
||
IF v_srt_layout = 'SAP'
|
||
THEN
|
||
v_tmp_eigenaar := v_eigenaar;
|
||
v_tmp_kostenplaats := v_kostenplaats;
|
||
ELSIF v_srt_layout = 'XLS'
|
||
THEN
|
||
v_tmp_eigenaar := v_eigenaar;
|
||
v_tmp_kostenplaats := v_kostenplaats;
|
||
ELSIF v_srt_layout = 'PRN'
|
||
THEN
|
||
i := schrijf_rapport_regel(p_session,i,v_regel);
|
||
i := schrijf_rapport_regel(p_session,i,'');
|
||
END IF;
|
||
|
||
-- Voor alle kopieermachines die de eigenaar heeft.
|
||
FOR r_kopieermachine IN c_owner_copier(v_ownerkey)
|
||
LOOP
|
||
--DBMS_OUTPUT.PUT_LINE('r_kopieermachine - ins_deel_key = '||r_kopieermachine.ins_deel_key);
|
||
v_ins_deel_key := r_kopieermachine.ins_deel_key;
|
||
v_totaal_machine := 0;
|
||
i_machine_start := i;
|
||
FOR r_copier IN c_copier(v_ins_deel_key)
|
||
LOOP
|
||
--DBMS_OUTPUT.PUT_LINE('r_copier object/objectsoort = '||r_copier.object||'/'||r_copier.objectsoort);
|
||
v_regel := RPadEnNvl(lab_machine,14)||': ' || r_copier.object
|
||
||' - '|| r_copier.objectsoort;
|
||
IF v_srt_layout = 'SAP'
|
||
THEN
|
||
v_tmp_copier := SUBSTR(r_copier.object,1,10);
|
||
ELSIF v_srt_layout = 'XLS'
|
||
THEN
|
||
v_tmp_copier := SUBSTR(r_copier.object ||' - '|| r_copier.objectsoort,1,50);
|
||
ELSIF v_srt_layout = 'PRN'
|
||
THEN
|
||
i := schrijf_rapport_regel(p_session,i,v_regel);
|
||
END IF;
|
||
|
||
-- Bereken de begin- en einddatum binnen de opgegeven periode
|
||
-- dat de copier in het bezit was van de huidige eigenaar.
|
||
v_periode_van := p_datum_van;
|
||
v_periode_tot := p_datum_tot;
|
||
i := p_periode_eigenaar(p_session,i,v_ownerkey,v_ins_deel_key,v_periode_van,v_periode_tot);
|
||
--
|
||
i := akzacopiers_2_beheer (p_session,i,v_ins_deel_key,v_periode_van,v_periode_tot,p_berekening,v_beheer_kosten);
|
||
--DBMS_OUTPUT.PUT_LINE('v_beheer_kosten = '||v_beheer_kosten);
|
||
i := akzacopiers_3_norm (p_session,i,v_ins_deel_key,v_periode_van,v_periode_tot,p_berekening);
|
||
i := akzacopiers_4_tikken (p_session,i,v_ins_deel_key,v_periode_van,v_periode_tot,p_berekening,v_tikken_kosten);
|
||
--DBMS_OUTPUT.PUT_LINE('v_tikken_kosten = '||v_tikken_kosten);
|
||
i := akzacopiers_5_papier (p_session,i,v_ins_deel_key,v_periode_van,v_periode_tot,p_berekening,v_papier_kosten);
|
||
--DBMS_OUTPUT.PUT_LINE('v_papier_kosten = '||v_papier_kosten);
|
||
v_gebruik_kosten := v_beheer_kosten
|
||
+ v_tikken_kosten
|
||
+ v_papier_kosten;
|
||
v_regel := PrintReplicate(' ',38)
|
||
|| RPadEnNvl(lab_gebruik,26)||': '|| TO_CHAR(v_gebruik_kosten,'9999990.90');
|
||
IF v_srt_layout = 'SAP'
|
||
THEN
|
||
v_tmp_gebruikskosten := v_gebruik_kosten;
|
||
ELSIF v_srt_layout = 'XLS'
|
||
THEN
|
||
v_tmp_gebruikskosten := v_gebruik_kosten;
|
||
ELSIF v_srt_layout = 'PRN'
|
||
THEN
|
||
i := schrijf_rapport_regel(p_session,i,v_regel);
|
||
END IF;
|
||
i := akzacopiers_6_basis (p_session,i,v_ins_deel_key,v_periode_van,v_periode_tot,p_berekening,v_basis_kosten);
|
||
--DBMS_OUTPUT.PUT_LINE('v_basis_kosten = '||v_basis_kosten);
|
||
v_totaal_machine := v_gebruik_kosten
|
||
+ v_basis_kosten;
|
||
v_regel := PrintReplicate(' ',54)
|
||
|| RPadEnNvl(lab_totaal_machine,22)||':'|| TO_CHAR(v_totaal_machine,'999990.90');
|
||
IF v_srt_layout = 'SAP'
|
||
THEN
|
||
v_tmp_basishuur := v_basis_kosten;
|
||
v_tmp_totaalcopier := v_totaal_machine;
|
||
i := schrijf_sap_regel(p_session,i);
|
||
ELSIF v_srt_layout = 'XLS'
|
||
THEN
|
||
v_tmp_basishuur := v_basis_kosten;
|
||
v_tmp_totaalcopier := v_totaal_machine;
|
||
IF (v_tmp_totaalcopier <> 0) THEN
|
||
i := schrijf_xls_regel(p_session,i);
|
||
END IF;
|
||
ELSIF v_srt_layout = 'PRN'
|
||
THEN
|
||
i := schrijf_rapport_regel(p_session,i,v_regel);
|
||
i := schrijf_rapport_regel(p_session,i,'');
|
||
i := schrijf_rapport_regel(p_session,i,'');
|
||
END IF;
|
||
END LOOP;
|
||
IF (v_totaal_machine = 0) THEN
|
||
i := delete_rapport_regel(p_session,i_machine_start,i);
|
||
ELSE
|
||
v_totaal_eigenaar := v_totaal_eigenaar + v_totaal_machine;
|
||
END IF;
|
||
END LOOP;
|
||
v_totaal_company := v_totaal_company + v_totaal_eigenaar;
|
||
--
|
||
IF v_srt_layout = 'SAP'
|
||
THEN
|
||
-- vervang de tekst <v_tmp_eigenaar>_totaal door het totaal bedrag
|
||
-- aan kosten dat deze eigenaar voor het gebruik van zijn copiers
|
||
-- moet betalen.
|
||
-- Dus als een eigenaar meerdere copiers heeft, dan is het totaal-
|
||
-- bedrag op elke regel van deze gebruiker hetzelfde, nl de som van
|
||
-- de totaalkosten per copier.
|
||
--
|
||
v_tmp_totaaleigenaar := v_totaal_eigenaar;
|
||
--DBMS_OUTPUT.PUT_LINE('v_totaal_eigenaar = '||v_totaal_eigenaar);
|
||
UPDATE fac_rapport
|
||
SET fac_rapport_regel = REPLACE(fac_rapport_regel
|
||
,v_tmp_eigenaar ||'_totaal'
|
||
,TO_CHAR(v_totaal_eigenaar,'999999990.90'))
|
||
WHERE fac_rapport_node = p_session
|
||
AND fac_rapport_volgnr BETWEEN v_regel_eigenaar AND (i-1)
|
||
AND fac_rapport_soort = 1;
|
||
ELSIF v_srt_layout = 'XLS'
|
||
THEN
|
||
v_tmp_totaaleigenaar := v_totaal_eigenaar;
|
||
UPDATE fac_rapport
|
||
SET fac_rapport_regel = REPLACE(fac_rapport_regel
|
||
,v_tmp_eigenaar ||'_totaal'
|
||
,TO_CHAR(v_totaal_eigenaar,'999999990.90'))
|
||
WHERE fac_rapport_node = p_session
|
||
AND fac_rapport_volgnr BETWEEN v_regel_eigenaar AND (i-1)
|
||
AND fac_rapport_soort = 1;
|
||
UPDATE akza_copy_xls
|
||
SET totaal_eigenaar = v_totaal_eigenaar
|
||
WHERE eigenaar = v_tmp_eigenaar;
|
||
|
||
ELSIF v_srt_layout = 'PRN'
|
||
THEN
|
||
i := schrijf_rapport_regel(p_session,i,'');
|
||
i := schrijf_rapport_regel(p_session,i,'');
|
||
v_regel := RPadEnNvl(RPadEnNvl(lab_eigenaar,14)||': '|| v_eigenaar,76)
|
||
|| RPadEnNvl(lab_totaal,10) ||': '
|
||
|| TO_CHAR(v_totaal_eigenaar,'999999990.90');
|
||
--
|
||
-- Zet nu achter de regel waarop de huidige eigenaar staat het totaal bedrag
|
||
-- dat deze aan kosten voor kopieermachines heeft.
|
||
UPDATE fac_rapport
|
||
SET fac_rapport_regel = v_regel
|
||
WHERE fac_rapport_node = p_session
|
||
AND fac_rapport_volgnr = v_regel_eigenaar
|
||
AND fac_rapport_soort = 1;
|
||
END IF;
|
||
-- Verwijder de eigenaar regels als de kosten 0 zijn
|
||
IF (v_totaal_eigenaar = 0) THEN
|
||
i := delete_rapport_regel(p_session,i_eigenaar_start,i);
|
||
END IF;
|
||
END IF;
|
||
END LOOP;
|
||
CLOSE c_eigenaren;
|
||
|
||
-- Totaal per company zetten.
|
||
IF v_srt_layout = 'SAP'
|
||
THEN
|
||
v_tmp_totaalcompany := v_totaal_company;
|
||
UPDATE fac_rapport
|
||
SET fac_rapport_regel = REPLACE(fac_rapport_regel
|
||
,v_tmp_company ||'_totaal'
|
||
,TO_CHAR(v_totaal_company,'999999990.90'))
|
||
WHERE fac_rapport_node = p_session
|
||
AND fac_rapport_volgnr BETWEEN v_regel_company AND (i-1)
|
||
AND fac_rapport_soort = 1;
|
||
ELSIF v_srt_layout = 'XLS'
|
||
THEN
|
||
v_tmp_totaalcompany := v_totaal_company;
|
||
UPDATE FAC_RAPPORT
|
||
SET fac_rapport_regel = REPLACE(fac_rapport_regel
|
||
,v_tmp_company ||'_totaal'
|
||
,TO_CHAR(v_totaal_company,'999999990.90'))
|
||
WHERE fac_rapport_node = p_session
|
||
AND fac_rapport_volgnr BETWEEN v_regel_company AND (i-1)
|
||
AND fac_rapport_soort = 1;
|
||
|
||
UPDATE AKZA_COPY_XLS
|
||
SET totaal_company = v_totaal_company
|
||
WHERE company = v_tmp_company;
|
||
ELSIF v_srt_layout = 'PRN'
|
||
THEN
|
||
v_regel := RPadEnNvl(RPadEnNvl(lab_company,14)||': '|| v_company_code,76)
|
||
|| RPadEnNvl(lab_totaal,10) ||': '
|
||
|| TO_CHAR(v_totaal_company,'999999990.90');
|
||
UPDATE FAC_RAPPORT
|
||
SET fac_rapport_regel = v_regel
|
||
WHERE fac_rapport_node = p_session
|
||
AND fac_rapport_volgnr = v_regel_company
|
||
AND fac_rapport_soort = 1;
|
||
END IF;
|
||
|
||
END IF;
|
||
-- Verwijdere de Company regels als de kosten 0 zijn
|
||
IF (v_totaal_company = 0) THEN
|
||
i := delete_rapport_regel(p_session,i_company_start,i);
|
||
END IF;
|
||
|
||
END LOOP;
|
||
CLOSE c_company;
|
||
--
|
||
RETURN i;
|
||
END; -- function: akzacopiers_1_eigenaar
|
||
|
||
-- Hoofdprocedure voor het rapport kostenoverzicht kopieermachines.
|
||
PROCEDURE akza_copiers(user_key IN NUMBER,
|
||
p_session IN VARCHAR2,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_srt_export IN VARCHAR2,
|
||
p_all_owner IN BOOLEAN)
|
||
AS
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_berekening BOOLEAN;
|
||
i NUMBER(12);
|
||
BEGIN
|
||
v_datum_van := TO_DATE(p_datum_van,'dd-mm-yyyy');
|
||
v_datum_tot := TO_DATE(p_datum_tot,'dd-mm-yyyy');
|
||
v_berekening := FALSE; -- JGL: Enable debugging??
|
||
i := 1;
|
||
|
||
v_srt_layout := p_srt_export; -- globale variabele die ervoor zorgt op welke wijze wordt afgedrukt.
|
||
v_tmp_aanmaak := TRUNC(SYSDATE);
|
||
v_tmp_datum_van := TRUNC(v_datum_van);
|
||
v_tmp_datum_tot := TRUNC(v_datum_tot);
|
||
i:= akzacopiers_1_eigenaar(user_key, p_session,
|
||
i, TRUNC(v_datum_van), TRUNC(v_datum_tot),
|
||
v_berekening, p_all_owner);
|
||
|
||
COMMIT;
|
||
END;
|
||
|
||
-- Printer-versie van het kostenoverzicht kopieermachines.
|
||
PROCEDURE akza_cop_prn(user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor) AS
|
||
v_srt_export VARCHAR2(3);
|
||
v_all_owners BOOLEAN;
|
||
BEGIN
|
||
v_srt_export := 'PRN';
|
||
v_all_owners := FALSE;
|
||
-- Tijdelijk session 1 (mis)bruiken
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = TO_CHAR( USERENV('SESSIONID') );
|
||
|
||
akza_copiers(user_key, TO_CHAR( USERENV('SESSIONID') ),
|
||
p_datum_van, p_datum_tot,
|
||
v_srt_export, v_all_owners);
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT fac_rapport_regel FROM fac_rapport
|
||
WHERE fac_rapport_node = TO_CHAR( USERENV('SESSIONID') )
|
||
ORDER BY fac_rapport_volgnr;
|
||
END;
|
||
|
||
-- Printer-versie van het kostenoverzicht kopieermachines
|
||
-- Alle eigenaren.
|
||
PROCEDURE akza_cop_all(user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2,
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor) AS
|
||
v_srt_export VARCHAR2(3);
|
||
v_all_owners BOOLEAN;
|
||
BEGIN
|
||
v_srt_export := 'PRN';
|
||
v_all_owners := TRUE;
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = TO_CHAR( USERENV('SESSIONID') );
|
||
|
||
akza_copiers(user_key, TO_CHAR( USERENV('SESSIONID') ),
|
||
p_datum_van, p_datum_tot,
|
||
v_srt_export, v_all_owners);
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT fac_rapport_regel FROM fac_rapport
|
||
WHERE fac_rapport_node = TO_CHAR( USERENV('SESSIONID') )
|
||
ORDER BY fac_rapport_volgnr;
|
||
END;
|
||
|
||
-- EXCEL-export van het kostenoverzicht kopieermachines.
|
||
PROCEDURE akza_cop_xls (user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT t_cursor)
|
||
AS
|
||
v_srt_export VARCHAR2(3);
|
||
v_all_owners BOOLEAN;
|
||
BEGIN
|
||
v_srt_export := 'XLS';
|
||
v_all_owners := TRUE;
|
||
DELETE akza_copy_xls; -- Vanwege session-pooling kan het nog gevuld zijn
|
||
|
||
-- Merk op dat schrijf_xls_regel nog altijd gewoon FAC_RAPPORT vult. Die vulling
|
||
-- wordt verder niet gebruikt, er wordt namelijk van akza_copy_xls gebruik gemaakt.
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = TO_CHAR( USERENV('SESSIONID') );
|
||
|
||
akza_copiers(user_key, TO_CHAR( USERENV('SESSIONID') ),
|
||
p_datum_van, p_datum_tot,
|
||
v_srt_export, v_all_owners);
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT * FROM akza_copy_xls;
|
||
END;
|
||
|
||
END;
|
||
/
|
||
|
||
--- SAP-EXPORT (AKZA#419) ------------------------------------------------------
|
||
|
||
-- Prepare data for SAP-export copiers in table FAC_RAPPORT
|
||
CREATE OR REPLACE PROCEDURE akza_select_copiers_sap (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
p_datum_tot DATE;
|
||
|
||
v_srt_export VARCHAR2(3);
|
||
v_all_owners BOOLEAN;
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
v_verwerken BOOLEAN;
|
||
i NUMBER(12);
|
||
BEGIN
|
||
DELETE fac_rapport -- Hierin wordt de data tijdelijk klaargezet
|
||
WHERE fac_rapport_node = TO_CHAR( USERENV('SESSIONID') );
|
||
|
||
-- Haal de einddatum van de laatste SAP-export op.
|
||
SELECT MAX(akz_copiers_sap_eind)
|
||
INTO v_datum_tot
|
||
FROM akz_copiers_sap;
|
||
|
||
p_datum_tot := ADD_MONTHS( v_datum_tot, 1 ); --15e volgende maand
|
||
|
||
fac.writelog (p_applname, 'I',
|
||
'Overweeg SAP-export van ' || TO_CHAR(v_datum_tot) || ' tot en met ' || TO_CHAR(p_datum_tot),
|
||
'');
|
||
|
||
IF (p_datum_tot - 8 >= SYSDATE)
|
||
THEN -- Het is nog te vroeg. Dus niets doen. op 9/12 door PF op verzoek van 4 naar 8 gezet
|
||
fac.writelog (p_applname, 'I',
|
||
'Het is nog te vroeg. Het is nog geen: ' || TO_CHAR(p_datum_tot-8),
|
||
''
|
||
);
|
||
COMMIT;
|
||
v_verwerken := FALSE;
|
||
ELSE
|
||
-- Bereken de gegevens vanaf de datum van de laatste export tot en met
|
||
-- een maand later.
|
||
v_datum_van := v_datum_tot;
|
||
v_datum_tot := p_datum_tot;
|
||
v_verwerken := TRUE;
|
||
END IF;
|
||
|
||
IF v_verwerken
|
||
THEN
|
||
-- Bereken het kostenoverzicht en schrijf deze naar het aangegeven bestand.
|
||
-- Sla vervolgens de periode van export op.
|
||
v_srt_export := 'SAP';
|
||
v_all_owners := TRUE;
|
||
akza_p_copiers.akza_copiers(-1, TO_CHAR( USERENV('SESSIONID') ),
|
||
TO_CHAR(v_datum_van,'dd-mm-yyyy'),
|
||
TO_CHAR(v_datum_tot,'dd-mm-yyyy'),
|
||
v_srt_export, v_all_owners);
|
||
INSERT INTO akz_copiers_sap
|
||
(akz_copiers_sap_start,
|
||
akz_copiers_sap_eind)
|
||
VALUES
|
||
(v_datum_van,
|
||
v_datum_tot);
|
||
|
||
fac.writelog (p_applname, 'I',
|
||
'SAP-export is nu klaargezet van '|| v_datum_van ||' tot en met ' || v_datum_tot,
|
||
'');
|
||
END IF;
|
||
END;
|
||
/
|
||
|
||
-- Exporteer de data die door akza_select_copiers_sap is klaargezet in FAC_RAPPORT
|
||
CREATE OR REPLACE PROCEDURE akza_export_copiers_sap (
|
||
p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
Dummy BOOLEAN;
|
||
BEGIN
|
||
-- Opruimen
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = TO_CHAR( USERENV('SESSIONID') );
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW akza_v_export_copiers_sap
|
||
(RESULT, RESULT_ORDER)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = TO_CHAR( USERENV('SESSIONID') );
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
--------- SAP-EXPORTS: DEELOPDRACHTEN, RESERVERINGEN, LOGISTIEK, SPECIFICATIE, FACTUREN ----------
|
||
--------------------------------------------------------------------------------------------------
|
||
|
||
--- BASISVIEWS RESERVERINGEN ---------------------------------------------------
|
||
|
||
--TODO: lege companycode? (wordt nu left outer join gedaan)
|
||
CREATE OR REPLACE VIEW akza_v_export_resdeel
|
||
(
|
||
soort,
|
||
res_rsv_ruimte_key,
|
||
res_rsv_artikel_key,
|
||
res_rsv_deel_key,
|
||
res_rsv_ruimte_kosten_klant,
|
||
res_rsv_ruimte_ordernr,
|
||
ins_discipline_key,
|
||
kostenplaatscode,
|
||
debiteurnr,
|
||
kostensoort,
|
||
einddatum,
|
||
bedrag,
|
||
postkey,
|
||
valuta,
|
||
aantal,
|
||
btw,
|
||
res_reservering_key,
|
||
res_rsv_ruimte_volgnr,
|
||
datum,
|
||
ruimte_art_oms,
|
||
melder_key,
|
||
melder,
|
||
companycode,
|
||
stukprijs,
|
||
artikelgroep,
|
||
catalogus,
|
||
alg_locatie_key
|
||
)
|
||
AS
|
||
SELECT DISTINCT 'deel',
|
||
rr.res_rsv_ruimte_key,
|
||
rr.res_rsv_artikel_key,
|
||
rr.res_rsv_deel_key,
|
||
rr.res_rsv_ruimte_kosten_klant,
|
||
res_rsv_ruimte_ordernr,
|
||
akza_ea.ins_discipline_key,
|
||
akza_k.prs_kostenplaats_nr kostenplaatscode,
|
||
akza_k.debiteurnr,
|
||
akza_ea.kostensoort,
|
||
rr.res_rsv_ruimte_tot einddatum,
|
||
ROUND (COALESCE (res.getdeelprijs (rr.res_rsv_deel_key), 0), 2) bedrag,
|
||
'40' postkey,
|
||
'EUR' valuta,
|
||
akza_ea.aantal,
|
||
'21' btw,
|
||
rr.res_reservering_key,
|
||
rr.res_rsv_ruimte_volgnr,
|
||
TO_CHAR (rr.res_rsv_ruimte_van, 'dd-mm-yyyy')
|
||
|| DECODE (rr.res_rsv_ruimte_van, NULL, NULL, ' / ')
|
||
|| TO_CHAR (rr.res_rsv_ruimte_tot, 'dd-mm-yyyy')
|
||
datum,
|
||
TRIM(akza_ea.res_deel_omschrijving) ruimte_art_oms,
|
||
pf.prs_perslid_key,
|
||
-- Indien non-resident host, dan de omschrijving (waar externe gastheer wordt ingevuld) naar SAP.
|
||
DECODE (pf.prs_perslid_key,
|
||
40727, COALESCE (res_rsv_ruimte_omschrijving, pf.prs_perslid_naam_full, ' '),
|
||
COALESCE (pf.prs_perslid_naam_full, ' ')
|
||
)
|
||
melder,
|
||
COALESCE(ac.companycode, 'LEEG') companycode,
|
||
ROUND ( COALESCE (res.getdeelprijs (rr.res_rsv_deel_key), 0) / akza_ea.aantal, 2)
|
||
stukprijs,
|
||
'' artikelgroep,
|
||
akza_ea.ins_discipline_omschrijving catalogus,
|
||
rg.alg_locatie_key
|
||
FROM (SELECT rr.*, CAST(NULL AS NUMBER) res_rsv_artikel_key, rd.res_rsv_deel_key
|
||
FROM res_rsv_ruimte rr, res_rsv_deel rd
|
||
WHERE 1 = 1
|
||
AND res_rsv_ruimte_verwijder IS NULL
|
||
AND rr.res_rsv_ruimte_key = rd.res_rsv_ruimte_key
|
||
AND rd.res_status_bo_key = 5) rr,
|
||
akza_v_kostenplaats akza_k,
|
||
(SELECT * FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1380
|
||
AND prs_kenmerklink_verwijder IS NULL) kl,
|
||
akza_v_afdelingcompany ac,
|
||
-- FSN#26359: res_deel_omschrijving is per DB19 een kolom in res_deel, dus we hoeven
|
||
-- ins_deel_omschrijving er niet meer bij te halen
|
||
(SELECT rsv_d.res_rsv_deel_key,
|
||
rd.res_deel_omschrijving,
|
||
rsv_d.res_rsv_ruimte_key,
|
||
ins_discipline_key,
|
||
ins_discipline_omschrijving,
|
||
rsv_d.res_rsv_deel_aantal aantal,
|
||
ks.prs_kostensoort_oms kostensoort
|
||
FROM res_rsv_deel rsv_d, res_deel rd, res_discipline dis, prs_kostensoort ks
|
||
WHERE rsv_d.res_deel_key = rd.res_deel_key
|
||
AND rd.res_discipline_key = dis.ins_discipline_key
|
||
AND dis.prs_kostensoort_key = ks.prs_kostensoort_key(+) )
|
||
akza_ea,
|
||
(SELECT l.alg_locatie_key,
|
||
rg.res_reservering_key,
|
||
rg.res_rsv_ruimte_key,
|
||
DECODE (
|
||
rg.res_ruimte_key,
|
||
NULL,
|
||
l.alg_locatie_code
|
||
|| '-'
|
||
|| g.alg_gebouw_code
|
||
|| '-'
|
||
|| v.alg_verdieping_volgnr
|
||
|| '-'
|
||
|| r.alg_ruimte_nr,
|
||
l.alg_locatie_code || '-' || rg.res_ruimte_nr
|
||
)
|
||
res_ruimte_omschrijving
|
||
FROM (SELECT rr2.res_reservering_key,
|
||
rr2.res_rsv_ruimte_key,
|
||
rr.alg_ruimte_key,
|
||
rr.res_ruimte_key,
|
||
r.res_ruimte_nr res_ruimte_nr
|
||
FROM res_v_rsv_ruimte_2_alg_ruimte rr, res_rsv_ruimte rr2, res_ruimte r
|
||
WHERE rr2.res_rsv_ruimte_key = rr.res_rsv_ruimte_key AND rr.res_ruimte_key = r.res_ruimte_key
|
||
UNION
|
||
SELECT rr2.res_reservering_key,
|
||
rr2.res_rsv_ruimte_key,
|
||
rr2.alg_ruimte_key,
|
||
NULL,
|
||
a.alg_ruimte_nr res_ruimte_nr
|
||
FROM res_rsv_ruimte rr2, alg_ruimte a
|
||
WHERE rr2.alg_ruimte_key IS NOT NULL AND rr2.alg_ruimte_key = a.alg_ruimte_key) rg,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND rg.alg_ruimte_key = r.alg_ruimte_key) rg,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE 1 = 1
|
||
AND rr.res_rsv_ruimte_contact_key = pf.prs_perslid_key
|
||
AND rr.prs_kostenplaats_key = akza_k.prs_kostenplaats_key
|
||
AND kl.prs_kenmerklink_waarde(+) = akza_k.debiteurnr
|
||
AND ac.prs_afdeling_key(+) = kl.prs_link_key
|
||
AND akza_ea.res_rsv_deel_key(+) = rr.res_rsv_deel_key
|
||
AND rr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key(+);
|
||
|
||
-- De te exporteren catering met kostenplaats opgevoerd bij een ruimte reservering of losse catering reservering
|
||
-- Locatiekey wordt meegeleverd om later deeloverzicht/export te kunnen doen.
|
||
CREATE OR REPLACE VIEW akza_v_export_catering
|
||
(
|
||
soort,
|
||
res_rsv_ruimte_key,
|
||
res_rsv_artikel_key,
|
||
res_rsv_deel_key,
|
||
res_rsv_ruimte_kosten_klant,
|
||
res_rsv_ruimte_ordernr,
|
||
ins_discipline_key,
|
||
kostenplaatscode,
|
||
debiteurnr,
|
||
kostensoort,
|
||
einddatum,
|
||
bedrag,
|
||
postkey,
|
||
valuta,
|
||
aantal,
|
||
btw,
|
||
res_reservering_key,
|
||
res_rsv_ruimte_volgnr,
|
||
datum,
|
||
ruimte_art_oms,
|
||
melder_key,
|
||
melder,
|
||
companycode,
|
||
stukprijs,
|
||
artikelgroep,
|
||
catalogus,
|
||
alg_locatie_key
|
||
)
|
||
AS
|
||
SELECT DISTINCT 'artikel',
|
||
rr.res_rsv_ruimte_key,
|
||
rr.res_rsv_artikel_key,
|
||
rr.res_rsv_deel_key,
|
||
rr.res_rsv_ruimte_kosten_klant,
|
||
res_rsv_ruimte_ordernr,
|
||
akza_ea.ins_discipline_key,
|
||
akza_k.prs_kostenplaats_nr kostenplaatscode,
|
||
akza_k.debiteurnr,
|
||
akza_ea.kostensoort,
|
||
rr.res_rsv_ruimte_tot einddatum,
|
||
ROUND (COALESCE (res.getartikelprijs (rr.res_rsv_artikel_key), 0), 2) bedrag,
|
||
'40' postkey,
|
||
'EUR' valuta,
|
||
akza_ea.aantal,
|
||
TO_CHAR( COALESCE(akza_ea.res_artikel_btw, 0) ) btw,
|
||
rr.res_reservering_key,
|
||
rr.res_rsv_ruimte_volgnr,
|
||
TO_CHAR (COALESCE (rr.res_rsv_ruimte_van, res_rsv_artikel_levering), 'dd-mm-yyyy')
|
||
|| DECODE (COALESCE (rr.res_rsv_ruimte_van, res_rsv_artikel_levering), NULL, NULL, ' / ')
|
||
|| TO_CHAR (COALESCE (rr.res_rsv_ruimte_tot, res_rsv_artikel_levering), 'dd-mm-yyyy')
|
||
datum,
|
||
TRIM (akza_ea.res_artikel_omschrijving) ruimte_art_oms,
|
||
pf.prs_perslid_key,
|
||
-- Indien non-resident host, dan de omschrijving (waar externe gastheer wordt ingevuld) naar SAP.
|
||
DECODE(pf.prs_perslid_key, 40727, COALESCE(res_rsv_ruimte_omschrijving, pf.prs_perslid_naam_full, ' '), COALESCE (pf.prs_perslid_naam_full, ' ') ) melder,
|
||
COALESCE(ac.companycode, 'LEEG') companycode,
|
||
ROUND (COALESCE (res.getartikelprijs (rr.res_rsv_artikel_key), 0) / akza_ea.aantal, 2)
|
||
stukprijs,
|
||
' ' artikelgroep,
|
||
akza_ea.ins_discipline_omschrijving catalogus,
|
||
rg.alg_locatie_key
|
||
FROM (SELECT rr.*, ra.res_rsv_artikel_key, CAST(NULL AS NUMBER) res_rsv_deel_key
|
||
FROM res_rsv_ruimte rr, res_rsv_artikel ra
|
||
WHERE 1 = 1
|
||
AND res_rsv_ruimte_verwijder IS NULL
|
||
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
|
||
AND ra.res_status_bo_key = 5) rr,
|
||
akza_v_kostenplaats akza_k,
|
||
(SELECT * FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1380
|
||
AND prs_kenmerklink_verwijder IS NULL) kl,
|
||
akza_v_afdelingcompany ac,
|
||
(SELECT rsv_art.res_rsv_artikel_key,
|
||
art.res_artikel_omschrijving,
|
||
rsv_art.res_rsv_ruimte_key,
|
||
ins_discipline_key,
|
||
ins_discipline_omschrijving,
|
||
rsv_art.res_rsv_artikel_aantal aantal,
|
||
rsv_art.res_rsv_artikel_levering,
|
||
art.res_artikel_btw,
|
||
ks.prs_kostensoort_oms kostensoort
|
||
FROM res_rsv_artikel rsv_art, res_artikel art, res_discipline dis, prs_kostensoort ks
|
||
WHERE 1 = 1
|
||
AND rsv_art.res_artikel_key = art.res_artikel_key
|
||
AND art.res_discipline_key = dis.ins_discipline_key
|
||
AND dis.prs_kostensoort_key = ks.prs_kostensoort_key(+) ) akza_ea,
|
||
(SELECT l.alg_locatie_key,
|
||
rg.res_reservering_key,
|
||
rg.res_rsv_ruimte_key,
|
||
DECODE (rg.res_ruimte_key,null,
|
||
l.alg_locatie_code || '-' || g.alg_gebouw_code || '-' || v.alg_verdieping_volgnr || '-' || r.alg_ruimte_nr,
|
||
l.alg_locatie_code || '-' || rg.res_ruimte_nr) res_ruimte_omschrijving
|
||
FROM (SELECT rr2.res_reservering_key, rr2.res_rsv_ruimte_key, rr.alg_ruimte_key, rr.res_ruimte_key, r.res_ruimte_nr res_ruimte_nr
|
||
FROM res_v_rsv_ruimte_2_alg_ruimte rr, res_rsv_ruimte rr2, res_ruimte r
|
||
WHERE rr2.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
||
AND rr.res_ruimte_key = r.res_ruimte_key
|
||
UNION
|
||
SELECT rr2.res_reservering_key, rr2.res_rsv_ruimte_key, rr2.alg_ruimte_key, null, a.alg_ruimte_nr res_ruimte_nr
|
||
FROM res_rsv_ruimte rr2, alg_ruimte a
|
||
WHERE rr2.alg_ruimte_key IS NOT NULL
|
||
AND rr2.alg_ruimte_key = a.alg_ruimte_key) rg,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND rg.alg_ruimte_key = r.alg_ruimte_key) rg,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE 1 = 1
|
||
AND rr.res_rsv_ruimte_contact_key = pf.prs_perslid_key
|
||
AND rr.prs_kostenplaats_key = akza_k.prs_kostenplaats_key
|
||
AND kl.prs_kenmerklink_waarde(+) = akza_k.debiteurnr
|
||
AND ac.prs_afdeling_key(+) = kl.prs_link_key
|
||
AND akza_ea.res_rsv_artikel_key(+) = rr.res_rsv_artikel_key
|
||
AND rr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key(+);
|
||
|
||
|
||
CREATE OR REPLACE VIEW akza_v_export_resruimten
|
||
(
|
||
soort,
|
||
res_rsv_ruimte_key,
|
||
res_rsv_artikel_key,
|
||
res_rsv_deel_key,
|
||
res_rsv_ruimte_kosten_klant,
|
||
res_rsv_ruimte_ordernr,
|
||
ins_discipline_key,
|
||
kostenplaatscode,
|
||
debiteurnr,
|
||
kostensoort,
|
||
einddatum,
|
||
bedrag,
|
||
postkey,
|
||
valuta,
|
||
aantal,
|
||
btw,
|
||
res_reservering_key,
|
||
res_rsv_ruimte_volgnr,
|
||
datum,
|
||
ruimte_art_oms,
|
||
melder_key,
|
||
melder,
|
||
companycode,
|
||
stukprijs,
|
||
artikelgroep,
|
||
catalogus,
|
||
alg_locatie_key
|
||
)
|
||
AS
|
||
SELECT DISTINCT 'ruimte',
|
||
rr.res_rsv_ruimte_key,
|
||
rr.res_rsv_artikel_key,
|
||
rr.res_rsv_deel_key,
|
||
rr.res_rsv_ruimte_kosten_klant,
|
||
res_rsv_ruimte_ordernr,
|
||
akza_ea.ins_discipline_key,
|
||
akza_k.prs_kostenplaats_nr kostenplaatscode,
|
||
akza_k.debiteurnr,
|
||
akza_ea.kostensoort,
|
||
rr.res_rsv_ruimte_tot einddatum,
|
||
ROUND (COALESCE (res.getruimteprijs (rr.res_rsv_ruimte_key), 0), 2)
|
||
bedrag,
|
||
'40' postkey,
|
||
'EUR' valuta,
|
||
1 aantal,
|
||
'21' btw,
|
||
rr.res_reservering_key,
|
||
rr.res_rsv_ruimte_volgnr,
|
||
TO_CHAR (rr.res_rsv_ruimte_van, 'dd-mm-yyyy')
|
||
|| DECODE (rr.res_rsv_ruimte_van, NULL, NULL, ' / ')
|
||
|| TO_CHAR (rr.res_rsv_ruimte_tot, 'dd-mm-yyyy')
|
||
datum,
|
||
TRIM (res_ruimte_omschrijving) ruimte_art_oms,
|
||
pf.prs_perslid_key,
|
||
-- Indien non-resident host, dan de omschrijving (waar externe gastheer wordt ingevuld) naar SAP.
|
||
DECODE(pf.prs_perslid_key, 40727, COALESCE(res_rsv_ruimte_omschrijving, pf.prs_perslid_naam_full, ' '), COALESCE (pf.prs_perslid_naam_full, ' ') ) melder,
|
||
COALESCE(ac.companycode, 'LEEG') companycode,
|
||
ROUND (COALESCE (res.getruimteprijs (rr.res_rsv_ruimte_key), 0), 2)
|
||
stukprijs,
|
||
' ' artikelgroep,
|
||
akza_ea.ins_discipline_omschrijving catalogus,
|
||
rg.alg_locatie_key
|
||
FROM (SELECT rr.*, CAST(NULL AS NUMBER) res_rsv_artikel_key, CAST(NULL AS NUMBER) res_rsv_deel_key
|
||
FROM (SELECT rr.*, r.res_ruimte_key
|
||
FROM res_rsv_ruimte rr, res_ruimte_opstelling ro, res_ruimte r
|
||
WHERE rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = r.res_ruimte_key) rr
|
||
WHERE 1 = 1 AND res_rsv_ruimte_verwijder IS NULL AND rr.res_status_bo_key = 5) rr,
|
||
akza_v_kostenplaats akza_k,
|
||
(SELECT * FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1380
|
||
AND prs_kenmerklink_verwijder IS NULL) kl,
|
||
akza_v_afdelingcompany ac,
|
||
(SELECT rg.res_discipline_key ins_discipline_key, d.ins_discipline_omschrijving, rg.res_ruimte_key,
|
||
ks.prs_kostensoort_oms kostensoort
|
||
FROM res_v_res_ruimte_gegevens rg, ins_tab_discipline d, prs_kostensoort ks
|
||
WHERE d.ins_discipline_key = rg.res_discipline_key
|
||
AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+) ) akza_ea,
|
||
(SELECT l.alg_locatie_key,
|
||
rg.res_reservering_key,
|
||
rg.res_rsv_ruimte_key,
|
||
l.alg_locatie_code || '-' || rg.res_ruimte_nr res_ruimte_omschrijving
|
||
FROM (SELECT rr2.res_reservering_key, rr2.res_rsv_ruimte_key, rr.alg_ruimte_key, rr.res_ruimte_key, r.res_ruimte_nr res_ruimte_nr
|
||
FROM res_v_rsv_ruimte_2_alg_ruimte rr, res_rsv_ruimte rr2, res_ruimte r
|
||
WHERE rr2.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
||
AND rr.res_ruimte_key = r.res_ruimte_key) rg,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key
|
||
AND rg.alg_ruimte_key = r.alg_ruimte_key) rg,
|
||
prs_v_perslid_fullnames_all pf
|
||
WHERE 1 = 1
|
||
AND rr.res_reservering_key NOT IN (SELECT res_reservering_key FROM akza_v_ritten_reservering)
|
||
AND rr.res_rsv_ruimte_contact_key = pf.prs_perslid_key
|
||
AND rr.prs_kostenplaats_key = akza_k.prs_kostenplaats_key
|
||
AND kl.prs_kenmerklink_waarde(+) = akza_k.debiteurnr
|
||
AND ac.prs_afdeling_key(+) = kl.prs_link_key
|
||
AND akza_ea.res_ruimte_key(+) = rr.res_ruimte_key
|
||
AND rr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key(+);
|
||
|
||
CREATE OR REPLACE VIEW akza_v_export_resritten
|
||
(
|
||
soort,
|
||
res_rsv_ruimte_key,
|
||
res_rsv_artikel_key,
|
||
res_rsv_deel_key,
|
||
res_rsv_ruimte_kosten_klant,
|
||
res_rsv_ruimte_ordernr,
|
||
ins_discipline_key,
|
||
kostenplaatscode,
|
||
debiteurnr,
|
||
kostensoort,
|
||
einddatum,
|
||
bedrag,
|
||
postkey,
|
||
valuta,
|
||
aantal,
|
||
btw,
|
||
res_reservering_key,
|
||
res_rsv_ruimte_volgnr,
|
||
datum,
|
||
ruimte_art_oms,
|
||
melder_key,
|
||
melder,
|
||
companycode,
|
||
stukprijs,
|
||
artikelgroep,
|
||
catalogus,
|
||
alg_locatie_key
|
||
)
|
||
AS
|
||
SELECT DISTINCT 'rit',
|
||
rr.res_rsv_ruimte_key,
|
||
rr.res_rsv_artikel_key,
|
||
rr.res_rsv_deel_key,
|
||
rr.res_rsv_ruimte_kosten_klant,
|
||
res_rsv_ruimte_ordernr,
|
||
akza_ea.ins_discipline_key,
|
||
akza_k.prs_kostenplaats_nr kostenplaatscode,
|
||
akza_k.debiteurnr,
|
||
akza_ea.kostensoort,
|
||
rr.res_rsv_ruimte_tot einddatum,
|
||
ROUND ( COALESCE (rit_sap.totaal, 0), 2)
|
||
bedrag,
|
||
'40' postkey,
|
||
'EUR' valuta,
|
||
1 aantal,
|
||
'21' btw,
|
||
rr.res_reservering_key,
|
||
rr.res_rsv_ruimte_volgnr,
|
||
TO_CHAR (rr.res_rsv_ruimte_van, 'dd-mm-yyyy')
|
||
|| DECODE (rr.res_rsv_ruimte_van, NULL, NULL, ' / ')
|
||
|| TO_CHAR (rr.res_rsv_ruimte_tot, 'dd-mm-yyyy')
|
||
datum,
|
||
TRIM (rit_sap.chauffeur) ruimte_art_oms,
|
||
pf.prs_perslid_key,
|
||
DECODE(rit_sap.rit_nonresidentpass,
|
||
NULL, pf.prs_perslid_naam_full,
|
||
res_rsv_ruimte_omschrijving)
|
||
melder,
|
||
COALESCE(ac.companycode, 'LEEG') companycode,
|
||
ROUND ( COALESCE (rit_sap.totaal, 0), 2)
|
||
stukprijs,
|
||
'' artikelgroep,
|
||
akza_ea.ins_discipline_omschrijving catalogus,
|
||
0 alg_locatie_key
|
||
FROM (SELECT rr.*, CAST(NULL AS NUMBER) res_rsv_artikel_key, CAST(NULL AS NUMBER) res_rsv_deel_key
|
||
FROM (SELECT rr.*, r.res_ruimte_key
|
||
FROM res_rsv_ruimte rr, res_ruimte_opstelling ro, res_ruimte r
|
||
WHERE rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = r.res_ruimte_key) rr
|
||
WHERE 1 = 1 AND res_rsv_ruimte_verwijder IS NULL AND rr.res_status_bo_key = 5) rr,
|
||
akza_v_kostenplaats akza_k,
|
||
(SELECT * FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1380
|
||
AND prs_kenmerklink_verwijder IS NULL) kl,
|
||
akza_v_afdelingcompany ac,
|
||
(SELECT rg.res_discipline_key ins_discipline_key, d.ins_discipline_omschrijving, rg.res_ruimte_key,
|
||
ks.prs_kostensoort_oms kostensoort
|
||
FROM res_v_res_ruimte_gegevens rg, ins_tab_discipline d, prs_kostensoort ks
|
||
WHERE d.ins_discipline_key = rg.res_discipline_key
|
||
AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+) ) akza_ea,
|
||
prs_v_perslid_fullnames_all pf,
|
||
akza_v_ritten_doorbelast_sap rit_sap
|
||
WHERE rr.res_rsv_ruimte_contact_key = pf.prs_perslid_key
|
||
AND rr.res_rsv_ruimte_key = rit_sap.res_rsv_ruimte_key
|
||
AND rr.prs_kostenplaats_key = akza_k.prs_kostenplaats_key
|
||
AND kl.prs_kenmerklink_waarde(+) = akza_k.debiteurnr
|
||
AND ac.prs_afdeling_key(+) = kl.prs_link_key
|
||
AND akza_ea.res_ruimte_key(+) = rr.res_ruimte_key;
|
||
|
||
--- BASISVIEWS LOGISTIEK -------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW akza_v_kpn_logistiek
|
||
AS
|
||
SELECT prs_kostenplaats_key,
|
||
prs_kostenplaats_omschrijving || ' - ' || prs_kostenplaats_nr kpn,
|
||
prs_kostenplaats_verwijder
|
||
FROM prs_kostenplaats;
|
||
|
||
-- AKZA#23427: Logistieke dienst / postkamer / expeditie
|
||
-- View voor berekening kosten/opbrengsten van door postkamer verleende diensten.
|
||
-- Views voor rapportage en doorbelasting.
|
||
|
||
----- PRIJSLIJST (Eigen tabel met vaste bedragen voor verleende diensten) -----
|
||
-- Bezorgen van goederen per levering
|
||
-- Bezorgen van goederen op afleveradres (p/levering) 1749
|
||
-- Bezorgen van goederen op pallet (p/levering) 1750
|
||
-- Spoed bezorgen van goederen (p/levering) 1751
|
||
-- Spoed bezorgen van goederen op pallet (p/levering) 1752
|
||
-- Bezorgen toner / papier (p/st) 1753
|
||
-- Expeditie transportkosten
|
||
-- Verzending voorbereiden binnen Europa 1755
|
||
-- Verzending voorbereiden binnen Europa gevaarlijk 1756
|
||
-- Verzending voorbereiden binnenland 1757
|
||
-- Verzending voorbereiden binnenland gevaarlijk 1758
|
||
-- Verzending voorbereiden buiten Europa 1759
|
||
-- Verzending voorbereiden buiten Europa gevaarlijk 1760
|
||
-- Koerierszendingen/aangetekende poststukken ex.verzendkosten
|
||
-- Koerier DHL met bekend adres in het systeem (p/st) 1764
|
||
-- Koerier DHL met onbekend adres in het systeem (p/st) 1765
|
||
-- Koerier DHL terugkoppeling (p/recu) 1766
|
||
-- Afhandeling per levering
|
||
-- Afboeken van ontvangen goederen 1769
|
||
-- Controleren van ontvangen goederen 1770
|
||
-- Ontvangen/sorteren van goederen met naam 1771
|
||
-- Ontvangen/sorteren van goederen zonder naam 1772
|
||
-- Gecombineerd ophalen/bezorgen
|
||
-- Ophalen en bezorgen van bulkpakketten op pallet (OHZ) 1775
|
||
-- Ophalen en bezorgen van (lunch)pakketten (HZ) 1774
|
||
-- Ophalen van goederen
|
||
-- Ophalen van pakketten (HZP) 1777
|
||
-- Ophalen van bulk pakketten op pallet (OHZP) 1778
|
||
-- Algemene maandelijkse kosten
|
||
-- Opslagkosten kelder C2 (p/pallet) 1780
|
||
-- Verwerkingskosten
|
||
-- Verwerkingstijd: mailing, verz.exp., ontv.goed. (p/kwartier) 1782
|
||
-- Toner/papier:
|
||
-- Bezorgen toner/papier (p/st) 2172
|
||
-- Vaste kosten:
|
||
-- Looprondes (p/maand) 2176
|
||
-- Dagblad bezorgen (p/maand) 2177
|
||
-- Opslag container 2197
|
||
|
||
-- View voor berekening kosten/opbrengsten van door postkamer verleende diensten.
|
||
-- Dit zijn diverse meldingen en opdrachten en bezorgde lunchpakketten (RES)
|
||
-- Voor (vrijwel) elke handeling geldt een bepaald basisbedrag, met daarbij een
|
||
-- aantal toeslagen (voor gevaarlijke goederen, spoed etc).
|
||
-- Deze view bevat alle benodigde gegevens voor de management info rapportages en
|
||
-- de view(s) voor doorbelasting.
|
||
-- Alleen afgehandelde zaken zijn relevant, dus de volgende statussen:
|
||
-- - melding:
|
||
-- 5 Afgemeld
|
||
-- 6 Historie
|
||
-- - opdracht:
|
||
-- 6 Afgemeld
|
||
-- 7 Verwerkt
|
||
-- 9 Afgerond
|
||
-- - reservering:
|
||
-- 5 Afgemeld
|
||
-- 6 Verwerkt
|
||
-- Doorbelaste bedragen worden historisch vastgelegd in een read-only kenmerk bij
|
||
-- meldingen en opdrachten (kenmerksoort 462):
|
||
-- - vakgroeptype Logistiek: kenmerk 562
|
||
-- - opdrachttype Verzending NL: kenmerk 566
|
||
-- - opdrachttype Verzending EU: kenmerk 565
|
||
-- - opdrachttype Verzending WW: kenmerk 567
|
||
--TODO: crediteurnr = COALESCE( company_van(behandelaar), '0801')
|
||
CREATE OR REPLACE VIEW akza_v_logistiek_doorbel
|
||
AS
|
||
SELECT key,
|
||
xmlnode,
|
||
nummer,
|
||
melder,
|
||
melding,
|
||
vakgroep,
|
||
datum,
|
||
status,
|
||
einddatum,
|
||
kostenplaats_key,
|
||
kostenplaats_nr,
|
||
kostenplaats_oms,
|
||
ordernr,
|
||
po_nr,
|
||
kostensoort,
|
||
stuks, gewicht, verwerkingstijd,
|
||
opgehaald, onhandzaam, gevaarlijk, spoed,
|
||
onb_adr,
|
||
basistarief, afgeboekt, gecontroleerd, bezorgd,
|
||
aangetekend, terugkoppel,
|
||
mailing, couverteren,
|
||
ophaalkosten, materiaalkosten,
|
||
verwerkingskosten,
|
||
totaal_kosten,
|
||
doorbelast doorbelast_bedrag
|
||
FROM (
|
||
-- Ontvangst goederen:
|
||
-- Goederen op naam 1041
|
||
-- Goederen zonder naam 1042
|
||
-- Kenmerken vakgroep:
|
||
-- Onhandzaam pakket 521
|
||
-- Aantal stuks 401
|
||
-- Afgeboekt 408
|
||
-- Gecontroleerd 417
|
||
-- Bezorgd 413
|
||
-- Verwerkingstijd 447
|
||
-- PO-nummer 434
|
||
-- Prijslijst:
|
||
-- Bezorgen van goederen per levering
|
||
-- Bezorgen van goederen op afleveradres (p/levering) 1749
|
||
-- Bezorgen van goederen op pallet (p/levering) 1750
|
||
-- Spoed bezorgen van goederen (p/levering) 1751
|
||
-- Spoed bezorgen van goederen op pallet (p/levering) 1752
|
||
-- Afhandeling per levering
|
||
-- Afboeken van ontvangen goederen 1769
|
||
-- Controleren van ontvangen goederen 1770
|
||
-- Ontvangen/sorteren van goederen met naam 1771
|
||
-- Ontvangen/sorteren van goederen zonder naam 1772
|
||
-- Verwerkingskosten
|
||
-- Verwerkingstijd: mailing, verz.exp., ontv.goed. (p/kwartier) 1782
|
||
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
|
||
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, po_nr, kostensoort,
|
||
stuks, NULL gewicht, verwerkingstijd,
|
||
NULL opgehaald, onhandzaam, NULL gevaarlijk, spoed,
|
||
NULL onb_adr,
|
||
basistarief, afgeboekt, gecontroleerd, bezorgd,
|
||
NULL aangetekend, NULL terugkoppel,
|
||
NULL mailing, NULL couverteren,
|
||
NULL ophaalkosten, NULL materiaalkosten,
|
||
verwerkingskosten,
|
||
basistarief + afgeboekt + gecontroleerd + bezorgd + verwerkingskosten totaal_kosten,
|
||
doorbelast
|
||
FROM (
|
||
SELECT m.mld_melding_key key,
|
||
'L'||m.mld_melding_key nummer,
|
||
m.mld_melding_status status,
|
||
m.mld_melding_datum datum,
|
||
m.mld_melding_einddatum einddatum,
|
||
s.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
ak.prs_kostenplaats_key kostenplaats_key,
|
||
ak.prs_kostenplaats_nr kostenplaats_nr,
|
||
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
m.mld_melding_ordernr ordernr,
|
||
po_nr.mld_kenmerkmelding_waarde po_nr,
|
||
ks.prs_kostensoort_oms kostensoort,
|
||
pf.prs_perslid_naam_full melder,
|
||
fac.safe_to_number(stuks.mld_kenmerkmelding_waarde) stuks,
|
||
fac.safe_to_number(ohz.mld_kenmerkmelding_waarde) onhandzaam,
|
||
opzondernaam.fac_usrdata_prijs basistarief,
|
||
DECODE(SIGN(2.5-m.mld_melding_spoed),
|
||
-1, NULL,
|
||
1, 1)
|
||
spoed,
|
||
COALESCE( fac.safe_to_number(afgeboekt.mld_kenmerkmelding_waarde), 0)
|
||
* (SELECT fac_usrdata_prijs FROM fac_usrdata
|
||
WHERE fac_usrdata_key = 1769)
|
||
afgeboekt,
|
||
COALESCE( fac.safe_to_number(gecontroleerd.mld_kenmerkmelding_waarde), 0)
|
||
* (SELECT fac_usrdata_prijs FROM fac_usrdata
|
||
WHERE fac_usrdata_key = 1770)
|
||
gecontroleerd,
|
||
COALESCE( fac.safe_to_number(bezorgd.mld_kenmerkmelding_waarde), 0)
|
||
* (SELECT fac_usrdata_prijs FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
DECODE(COALESCE( fac.safe_to_number(ohz.mld_kenmerkmelding_waarde), 0),
|
||
0, DECODE(SIGN(2.5-m.mld_melding_spoed),
|
||
-1, 1749, -- hz, norm
|
||
1, 1751), -- hz, spoed)
|
||
1, DECODE(SIGN(2.5-m.mld_melding_spoed),
|
||
-1, 1750, -- ohz
|
||
1, 1752) ) ) -- ohz, spoed
|
||
bezorgd,
|
||
COALESCE( fac.safe_to_number(verwerkingstijd.mld_kenmerkmelding_waarde), 0) verwerkingstijd,
|
||
COALESCE( fac.safe_to_number(verwerkingstijd.mld_kenmerkmelding_waarde), 0)
|
||
* (SELECT fac_usrdata_prijs FROM fac_usrdata
|
||
WHERE fac_usrdata_key = 1782)
|
||
verwerkingskosten,
|
||
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
|
||
FROM mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline d,
|
||
prs_v_aanwezigkostenplaats ak,
|
||
prs_kostensoort ks,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 521
|
||
AND mld_kenmerkmelding_verwijder IS NULL) ohz,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 401
|
||
AND mld_kenmerkmelding_verwijder IS NULL) stuks,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 408
|
||
AND mld_kenmerkmelding_verwijder IS NULL) afgeboekt,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 417
|
||
AND mld_kenmerkmelding_verwijder IS NULL) gecontroleerd,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 413
|
||
AND mld_kenmerkmelding_verwijder IS NULL) bezorgd,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 447
|
||
AND mld_kenmerkmelding_verwijder IS NULL) verwerkingstijd,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 434
|
||
AND mld_kenmerkmelding_verwijder IS NULL) po_nr,
|
||
fac_usrdata opzondernaam,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
|
||
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
|
||
WHERE m.mld_stdmelding_key IN (1041, 1042)
|
||
AND m.mld_melding_status IN (5,6)
|
||
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND ak.prs_kostenplaats_key = m.prs_kostenplaats_key
|
||
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND opzondernaam.fac_usrdata_key = DECODE(m.mld_stdmelding_key,
|
||
1042, 1772,
|
||
1771)
|
||
AND ohz.mld_melding_key(+) = m.mld_melding_key
|
||
AND stuks.mld_melding_key(+) = m.mld_melding_key
|
||
AND afgeboekt.mld_melding_key(+) = m.mld_melding_key
|
||
AND gecontroleerd.mld_melding_key(+) = m.mld_melding_key
|
||
AND bezorgd.mld_melding_key(+) = m.mld_melding_key
|
||
AND verwerkingstijd.mld_melding_key(+) = m.mld_melding_key
|
||
AND po_nr.mld_melding_key(+) = m.mld_melding_key
|
||
AND doorbel.mld_melding_key(+) = m.mld_melding_key
|
||
)
|
||
UNION ALL
|
||
-- Intern pakket ophalen en bezorgen
|
||
-- stdmelding_key 1043
|
||
-- Kenmerken:
|
||
-- Onhandzaam pakket 431
|
||
-- Prijslijst:
|
||
-- Ophalen en bezorgen van (lunch)pakketten (HZ) 1774
|
||
-- Ophalen en bezorgen van bulkpakketten op pallet (OHZ) 1775
|
||
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
|
||
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
|
||
NULL stuks, NULL gewicht, NULL verwerkingstijd,
|
||
NULL opgehaald, onhandzaam, NULL gevaarlijk, NULL spoed,
|
||
NULL onb_adr,
|
||
totaal_kosten basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
|
||
NULL aangetekend,NULL terugkoppel,
|
||
NULL mailing, NULL couverteren,
|
||
NULL ophaalkosten, NULL materiaalkosten,
|
||
NULL verwerkingskosten,
|
||
totaal_kosten,
|
||
doorbelast
|
||
FROM (
|
||
SELECT m.mld_melding_key key,
|
||
'L'||m.mld_melding_key nummer,
|
||
m.mld_melding_status status,
|
||
m.mld_melding_datum datum,
|
||
m.mld_melding_einddatum einddatum,
|
||
s.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
ak.prs_kostenplaats_key kostenplaats_key,
|
||
ak.prs_kostenplaats_nr kostenplaats_nr,
|
||
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
m.mld_melding_ordernr ordernr,
|
||
ks.prs_kostensoort_oms kostensoort,
|
||
pf.prs_perslid_naam_full melder,
|
||
COALESCE( fac.safe_to_number(ohz.mld_kenmerkmelding_waarde), 0) onhandzaam,
|
||
(SELECT fac_usrdata_prijs FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
DECODE(COALESCE( fac.safe_to_number(ohz.mld_kenmerkmelding_waarde), 0),
|
||
0, 1774,
|
||
1, 1775) )
|
||
totaal_kosten,
|
||
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
|
||
FROM mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline d,
|
||
prs_v_aanwezigkostenplaats ak,
|
||
prs_kostensoort ks,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 431
|
||
AND mld_kenmerkmelding_verwijder IS NULL) ohz,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
|
||
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
|
||
WHERE m.mld_stdmelding_key = 1043
|
||
AND m.mld_melding_status IN (5,6)
|
||
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND ak.prs_kostenplaats_key = m.prs_kostenplaats_key
|
||
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND ohz.mld_melding_key(+) = m.mld_melding_key
|
||
AND doorbel.mld_melding_key(+) = m.mld_melding_key
|
||
)
|
||
UNION ALL
|
||
-- Verzending koerier
|
||
-- stdmelding_key 1044
|
||
-- Kenmerken melding + usrtabs:
|
||
-- Aangetekend verzenden 398
|
||
-- Aangetekend 483
|
||
-- Verzending terugkoppelen 449
|
||
-- Onbekend adres 430
|
||
-- Prijslijst:
|
||
-- Koerier DHL met bekend adres in het systeem (p/st) 1764
|
||
-- Koerier DHL met onbekend adres in het systeem (p/st) 1765
|
||
-- Koerier DHL terugkoppeling (p/recu) 1766
|
||
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
|
||
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
|
||
NULL stuks, NULL gewicht, NULL verwerkingstijd,
|
||
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
|
||
onb_adr,
|
||
basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
|
||
aangetekend, terugkoppel,
|
||
NULL mailing, NULL couverteren,
|
||
NULL ophaalkosten, NULL materiaalkosten,
|
||
NULL verwerkingskosten,
|
||
basistarief + aangetekend + terugkoppel totaal_kosten,
|
||
doorbelast
|
||
FROM (
|
||
SELECT m.mld_melding_key key,
|
||
'L'||m.mld_melding_key nummer,
|
||
m.mld_melding_status status,
|
||
m.mld_melding_datum datum,
|
||
m.mld_melding_einddatum einddatum,
|
||
s.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
ak.prs_kostenplaats_key kostenplaats_key,
|
||
ak.prs_kostenplaats_nr kostenplaats_nr,
|
||
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
m.mld_melding_ordernr ordernr,
|
||
ks.prs_kostensoort_oms kostensoort,
|
||
pf.prs_perslid_naam_full melder,
|
||
COALESCE( fac.safe_to_number(onb_adr.mld_kenmerkmelding_waarde), 0) onb_adr,
|
||
(SELECT fac_usrdata_prijs FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
DECODE(COALESCE( fac.safe_to_number(onb_adr.mld_kenmerkmelding_waarde), 0),
|
||
1, 1765,
|
||
0, 1764) )
|
||
basistarief,
|
||
ud.fac_usrdata_prijs aangetekend,
|
||
COALESCE( fac.safe_to_number(terugkoppel.mld_kenmerkmelding_waarde), 0)
|
||
* (SELECT fac_usrdata_prijs FROM fac_usrdata
|
||
WHERE fac_usrdata_key = 1766)
|
||
terugkoppel,
|
||
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
|
||
FROM mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline d,
|
||
prs_v_aanwezigkostenplaats ak,
|
||
prs_kostensoort ks,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 398
|
||
AND mld_kenmerkmelding_verwijder IS NULL) aangetekend,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 449
|
||
AND mld_kenmerkmelding_verwijder IS NULL) terugkoppel,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 430
|
||
AND mld_kenmerkmelding_verwijder IS NULL) onb_adr,
|
||
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 483) ud,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
|
||
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
|
||
WHERE m.mld_stdmelding_key = 1044
|
||
AND m.mld_melding_status IN (5,6)
|
||
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND ak.prs_kostenplaats_key = m.prs_kostenplaats_key
|
||
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND aangetekend.mld_melding_key(+) = m.mld_melding_key
|
||
AND ud.fac_usrdata_key(+) = fac.safe_to_number(aangetekend.mld_kenmerkmelding_waarde)
|
||
AND terugkoppel.mld_melding_key(+) = m.mld_melding_key
|
||
AND onb_adr.mld_melding_key(+) = m.mld_melding_key
|
||
AND doorbel.mld_melding_key(+) = m.mld_melding_key
|
||
)
|
||
UNION ALL
|
||
-- Mailing
|
||
-- stdmelding_key 1045
|
||
-- Kenmerken melding + usrtabs:
|
||
-- Vellen 443
|
||
-- Mailing 480
|
||
-- Gewicht 482
|
||
-- Couverteren 480
|
||
-- Couverteren 474
|
||
-- Aantal stuks 483
|
||
-- Verwerkingstijd 446
|
||
-- Prijslijst:
|
||
-- Verwerkingstijd: mailing, verz.exp., ontv.goed. (p/kwartier) 1782
|
||
SELECT key,'melding' xmlnode, nummer, datum, einddatum, status, melder,
|
||
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
|
||
stuks, gewicht, verwerkingstijd,
|
||
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
|
||
NULL onb_adr,
|
||
0 basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
|
||
NULL aangetekend, NULL terugkoppel,
|
||
gewicht * vellen mailing, stuks/100 * couverteren couverteren,
|
||
NULL ophaalkosten, NULL materiaalkosten,
|
||
verwerkingskosten,
|
||
gewicht * vellen + stuks/100 * couverteren + verwerkingskosten totaal_kosten,
|
||
doorbelast
|
||
FROM (
|
||
SELECT m.mld_melding_key key,
|
||
'L'||m.mld_melding_key nummer,
|
||
m.mld_melding_status status,
|
||
m.mld_melding_datum datum,
|
||
m.mld_melding_einddatum einddatum,
|
||
s.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
ak.prs_kostenplaats_key kostenplaats_key,
|
||
ak.prs_kostenplaats_nr kostenplaats_nr,
|
||
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
m.mld_melding_ordernr ordernr,
|
||
ks.prs_kostensoort_oms kostensoort,
|
||
pf.prs_perslid_naam_full melder,
|
||
COALESCE( fac.safe_to_number(gewicht.mld_kenmerkmelding_waarde), 0) gewicht,
|
||
COALESCE( fac.safe_to_number(stuks.mld_kenmerkmelding_waarde), 0) stuks,
|
||
COALESCE( fac.safe_to_number(verwerkingstijd.mld_kenmerkmelding_waarde), 0) verwerkingstijd,
|
||
mail.fac_usrdata_prijs vellen,
|
||
couv.fac_usrdata_prijs couverteren,
|
||
COALESCE( fac.safe_to_number(verwerkingstijd.mld_kenmerkmelding_waarde), 0)
|
||
* (SELECT fac_usrdata_prijs FROM fac_usrdata
|
||
WHERE fac_usrdata_key = 1782)
|
||
verwerkingskosten,
|
||
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
|
||
FROM mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline d,
|
||
prs_v_aanwezigkostenplaats ak,
|
||
prs_kostensoort ks,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 443
|
||
AND mld_kenmerkmelding_verwijder IS NULL) vel,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 482
|
||
AND mld_kenmerkmelding_verwijder IS NULL) gewicht,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 480
|
||
AND mld_kenmerkmelding_verwijder IS NULL) couvert,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 483
|
||
AND mld_kenmerkmelding_verwijder IS NULL) stuks,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 446
|
||
AND mld_kenmerkmelding_verwijder IS NULL) verwerkingstijd,
|
||
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 480) mail,
|
||
(SELECT * FROM fac_usrdata WHERE fac_usrtab_key = 474) couv,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
|
||
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
|
||
WHERE m.mld_stdmelding_key = 1045
|
||
AND m.mld_melding_status IN (5,6)
|
||
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND ak.prs_kostenplaats_key = m.prs_kostenplaats_key
|
||
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND vel.mld_melding_key(+) = m.mld_melding_key
|
||
AND mail.fac_usrdata_key(+) = fac.safe_to_number(vel.mld_kenmerkmelding_waarde)
|
||
AND gewicht.mld_melding_key(+) = m.mld_melding_key
|
||
AND couvert.mld_melding_key(+) = m.mld_melding_key
|
||
AND couv.fac_usrdata_key(+) = fac.safe_to_number(couvert.mld_kenmerkmelding_waarde)
|
||
AND stuks.mld_melding_key(+) = m.mld_melding_key
|
||
AND verwerkingstijd.mld_melding_key(+) = m.mld_melding_key
|
||
AND doorbel.mld_melding_key(+) = m.mld_melding_key
|
||
)
|
||
UNION ALL
|
||
-- Maandrapportage postale diensten
|
||
-- stdmelding_key 1046
|
||
-- Kenmerken:
|
||
-- Kostenplaats 420
|
||
-- Bedrag 411
|
||
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
|
||
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
|
||
NULL stuks, NULL gewicht, NULL verwerkingstijd,
|
||
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
|
||
NULL onb_adr,
|
||
bedrag basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
|
||
NULL aangetekend, NULL terugkoppel,
|
||
NULL mailing, NULL couverteren,
|
||
NULL ophaalkosten, NULL materiaalkosten,
|
||
NULL verwerkingskosten,
|
||
bedrag totaal_kosten,
|
||
doorbelast
|
||
FROM (
|
||
SELECT m.mld_melding_key key,
|
||
'L'||m.mld_melding_key nummer,
|
||
m.mld_melding_status status,
|
||
m.mld_melding_datum datum,
|
||
m.mld_melding_einddatum einddatum,
|
||
s.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
ak.prs_kostenplaats_key kostenplaats_key,
|
||
ak.prs_kostenplaats_nr kostenplaats_nr,
|
||
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
m.mld_melding_ordernr ordernr,
|
||
ks.prs_kostensoort_oms kostensoort,
|
||
pf.prs_perslid_naam_full melder,
|
||
COALESCE( fac.safe_to_number(bedrag.mld_kenmerkmelding_waarde), 0) bedrag,
|
||
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
|
||
FROM mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline d,
|
||
prs_v_aanwezigkostenplaats ak,
|
||
prs_kostensoort ks,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 420
|
||
AND mld_kenmerkmelding_verwijder IS NULL) kpn,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 411
|
||
AND mld_kenmerkmelding_verwijder IS NULL) bedrag,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
|
||
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
|
||
WHERE m.mld_stdmelding_key = 1046
|
||
AND m.mld_melding_status IN (5,6)
|
||
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND kpn.mld_melding_key(+) = m.mld_melding_key
|
||
AND ak.prs_kostenplaats_key(+) = fac.safe_to_number(kpn.mld_kenmerkmelding_waarde)
|
||
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND bedrag.mld_melding_key(+) = m.mld_melding_key
|
||
AND doorbel.mld_melding_key(+) = m.mld_melding_key
|
||
)
|
||
UNION ALL
|
||
-- Vaste kosten
|
||
-- stdmelding_key 1101
|
||
-- Kenmerken:
|
||
-- Kostenplaats 564
|
||
-- Postrondes 561
|
||
-- Dagbladen 563
|
||
-- Opslag containers 621
|
||
-- Prijslijst:
|
||
-- Looprondes (p/maand) 2176
|
||
-- Dagblad bezorgen (p/maand) 2177
|
||
-- Opslag container 2197
|
||
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
|
||
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
|
||
NULL stuks, NULL gewicht, NULL verwerkingstijd,
|
||
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
|
||
NULL onb_adr,
|
||
postrondes + dagbladen + containers basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
|
||
NULL aangetekend, NULL terugkoppel,
|
||
NULL mailing, NULL couverteren,
|
||
NULL ophaalkosten, NULL materiaalkosten,
|
||
NULL verwerkingskosten,
|
||
postrondes + dagbladen + containers totaal_kosten,
|
||
doorbelast
|
||
FROM (
|
||
SELECT m.mld_melding_key key,
|
||
'L'||m.mld_melding_key nummer,
|
||
m.mld_melding_status status,
|
||
m.mld_melding_datum datum,
|
||
m.mld_melding_einddatum einddatum,
|
||
s.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
ak.prs_kostenplaats_key kostenplaats_key,
|
||
ak.prs_kostenplaats_nr kostenplaats_nr,
|
||
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
m.mld_melding_ordernr ordernr,
|
||
ks.prs_kostensoort_oms kostensoort,
|
||
pf.prs_perslid_naam_full melder,
|
||
COALESCE( fac.safe_to_number(pr.mld_kenmerkmelding_waarde), 0) postrondes,
|
||
COALESCE( fac.safe_to_number(db.mld_kenmerkmelding_waarde), 0) dagbladen,
|
||
COALESCE( fac.safe_to_number(oc.mld_kenmerkmelding_waarde), 0) containers,
|
||
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
|
||
FROM mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline d,
|
||
prs_v_aanwezigkostenplaats ak,
|
||
prs_kostensoort ks,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 564
|
||
AND mld_kenmerkmelding_verwijder IS NULL) kpn,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 561
|
||
AND mld_kenmerkmelding_verwijder IS NULL) pr,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 563
|
||
AND mld_kenmerkmelding_verwijder IS NULL) db,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 621
|
||
AND mld_kenmerkmelding_verwijder IS NULL) oc,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
|
||
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
|
||
WHERE m.mld_stdmelding_key = 1101
|
||
AND m.mld_melding_status IN (5,6)
|
||
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND kpn.mld_melding_key(+) = m.mld_melding_key
|
||
AND ak.prs_kostenplaats_key(+) = fac.safe_to_number(kpn.mld_kenmerkmelding_waarde)
|
||
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND pr.mld_melding_key(+) = m.mld_melding_key
|
||
AND oc.mld_melding_key(+) = m.mld_melding_key
|
||
AND db.mld_melding_key(+) = m.mld_melding_key
|
||
AND doorbel.mld_melding_key(+) = m.mld_melding_key
|
||
)
|
||
UNION ALL
|
||
-- Toners/olie/nietjes
|
||
-- stdmelding_key 1047
|
||
-- Kenmerken melding + usrtabs:
|
||
-- Kostenplaats 415
|
||
-- #Zwarte toner 452
|
||
-- #Rode toner 440
|
||
-- #Gele toner 418
|
||
-- #Blauwe toner 414
|
||
-- Olie 429
|
||
-- Nietjes 428
|
||
-- Prijslijst:
|
||
-- Bezorgen toner/papier (p/st) 2172
|
||
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
|
||
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
|
||
(z+r+g+b+o+n) stuks, NULL gewicht, NULL verwerkingstijd,
|
||
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
|
||
NULL onb_adr,
|
||
0 basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
|
||
NULL aangetekend, NULL terugkoppel,
|
||
NULL mailing, NULL couverteren,
|
||
NULL ophaalkosten, NULL materiaalkosten,
|
||
NULL verwerkingskosten,
|
||
(z+r+g+b+o+n) * stuksprijs totaal_kosten,
|
||
doorbelast
|
||
FROM (
|
||
SELECT m.mld_melding_key key,
|
||
'L'||m.mld_melding_key nummer,
|
||
m.mld_melding_status status,
|
||
m.mld_melding_datum datum,
|
||
m.mld_melding_einddatum einddatum,
|
||
s.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
ak.prs_kostenplaats_key kostenplaats_key,
|
||
ak.prs_kostenplaats_nr kostenplaats_nr,
|
||
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
m.mld_melding_ordernr ordernr,
|
||
ks.prs_kostensoort_oms kostensoort,
|
||
pf.prs_perslid_naam_full melder,
|
||
fac.safe_to_number(kpn.mld_kenmerkmelding_waarde) fkpn,
|
||
m.prs_kostenplaats_key mkpn,
|
||
COALESCE( fac.safe_to_number(zwart.mld_kenmerkmelding_waarde) , 0 ) z,
|
||
COALESCE( fac.safe_to_number(rood.mld_kenmerkmelding_waarde), 0 ) r,
|
||
COALESCE( fac.safe_to_number(geel.mld_kenmerkmelding_waarde), 0 ) g,
|
||
COALESCE( fac.safe_to_number(blauw.mld_kenmerkmelding_waarde), 0 ) b,
|
||
COALESCE( fac.safe_to_number(olie.mld_kenmerkmelding_waarde), 0 ) o,
|
||
COALESCE( fac.safe_to_number(nietjes.mld_kenmerkmelding_waarde), 0 ) n,
|
||
(SELECT fac_usrdata_prijs FROM fac_usrdata WHERE fac_usrdata_key = 2172) stuksprijs,
|
||
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
|
||
FROM mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline d,
|
||
prs_v_aanwezigkostenplaats ak,
|
||
prs_kostensoort ks,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 415
|
||
AND mld_kenmerkmelding_verwijder IS NULL) kpn,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 452
|
||
AND mld_kenmerkmelding_verwijder IS NULL) zwart,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 440
|
||
AND mld_kenmerkmelding_verwijder IS NULL) rood,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 418
|
||
AND mld_kenmerkmelding_verwijder IS NULL) geel,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 414
|
||
AND mld_kenmerkmelding_verwijder IS NULL) blauw,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 429
|
||
AND mld_kenmerkmelding_verwijder IS NULL) olie,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 428
|
||
AND mld_kenmerkmelding_verwijder IS NULL) nietjes,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
|
||
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
|
||
WHERE m.mld_stdmelding_key = 1047
|
||
AND m.mld_melding_status IN (5,6)
|
||
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND kpn.mld_melding_key(+) = m.mld_melding_key
|
||
AND ak.prs_kostenplaats_key(+) = fac.safe_to_number(kpn.mld_kenmerkmelding_waarde)
|
||
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND zwart.mld_melding_key(+) = m.mld_melding_key
|
||
AND rood.mld_melding_key(+) = m.mld_melding_key
|
||
AND geel.mld_melding_key(+) = m.mld_melding_key
|
||
AND blauw.mld_melding_key(+) = m.mld_melding_key
|
||
AND olie.mld_melding_key(+) = m.mld_melding_key
|
||
AND nietjes.mld_melding_key(+) = m.mld_melding_key
|
||
AND doorbel.mld_melding_key(+) = m.mld_melding_key
|
||
)
|
||
UNION ALL
|
||
-- Papier
|
||
-- stdmelding_key 1048
|
||
-- Kenmerken melding + usrtabs:
|
||
-- Kostenplaats 415
|
||
-- #dozen A4 399
|
||
-- #pakken A3 400
|
||
-- Prijslijst:
|
||
-- Bezorgen toner/papier (p/st) 2172
|
||
-- A4 (doos, inc bezorg, Teijin) 2173
|
||
-- A3 (pak, inc bezorg, Teijin) 2174
|
||
SELECT key, 'melding' xmlnode, nummer, datum, einddatum, status, melder,
|
||
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
|
||
(a4 + a3) stuks, NULL gewicht, NULL verwerkingstijd,
|
||
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
|
||
NULL onb_adr,
|
||
0 basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
|
||
NULL aangetekend, NULL terugkoppel,
|
||
NULL mailing, NULL couverteren,
|
||
NULL ophaalkosten, NULL materiaalkosten,
|
||
NULL verwerkingskosten,
|
||
-- Papier wordt alleen aan Teijin doorbelast; Akzo betaalt alleen bezorging
|
||
CASE
|
||
WHEN prs_kostenplaats_key IN
|
||
(SELECT prs_kostenplaats_key
|
||
FROM prs_v_aanwezigkostenplaats
|
||
WHERE prs_kostenplaatsgrp_key IN (14,15) )
|
||
THEN (a4 * prijs_a4) + (a3 * prijs_a3)
|
||
ELSE (a4 + a3) * bezorging
|
||
END
|
||
totaal_kosten,
|
||
doorbelast
|
||
FROM (
|
||
SELECT m.mld_melding_key key,
|
||
'L'||m.mld_melding_key nummer,
|
||
m.mld_melding_status status,
|
||
m.mld_melding_datum datum,
|
||
m.mld_melding_einddatum einddatum,
|
||
s.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
ak.prs_kostenplaats_key kostenplaats_key,
|
||
ak.prs_kostenplaats_key,
|
||
ak.prs_kostenplaats_nr kostenplaats_nr,
|
||
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
m.mld_melding_ordernr ordernr,
|
||
ks.prs_kostensoort_oms kostensoort,
|
||
pf.prs_perslid_naam_full melder,
|
||
COALESCE( fac.safe_to_number(a4.mld_kenmerkmelding_waarde), 0 ) a4,
|
||
COALESCE( fac.safe_to_number(a3.mld_kenmerkmelding_waarde), 0 ) a3,
|
||
(SELECT fac_usrdata_prijs FROM fac_usrdata WHERE fac_usrdata_key = 2172) bezorging,
|
||
(SELECT fac_usrdata_prijs FROM fac_usrdata WHERE fac_usrdata_key = 2173) prijs_a4,
|
||
(SELECT fac_usrdata_prijs FROM fac_usrdata WHERE fac_usrdata_key = 2174) prijs_a3,
|
||
fac.safe_to_number(doorbel.mld_kenmerkmelding_waarde) doorbelast
|
||
FROM mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline d,
|
||
prs_v_aanwezigkostenplaats ak,
|
||
prs_kostensoort ks,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 415
|
||
AND mld_kenmerkmelding_verwijder IS NULL) kpn,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 399
|
||
AND mld_kenmerkmelding_verwijder IS NULL) a4,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 400
|
||
AND mld_kenmerkmelding_verwijder IS NULL) a3,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 562
|
||
AND mld_kenmerkmelding_verwijder IS NULL) doorbel
|
||
WHERE m.mld_stdmelding_key = 1048
|
||
AND m.mld_melding_status IN (5,6)
|
||
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND kpn.mld_melding_key(+) = m.mld_melding_key
|
||
AND ak.prs_kostenplaats_key(+) = fac.safe_to_number(kpn.mld_kenmerkmelding_waarde)
|
||
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND a4.mld_melding_key(+) = m.mld_melding_key
|
||
AND a3.mld_melding_key(+) = m.mld_melding_key
|
||
AND doorbel.mld_melding_key(+) = m.mld_melding_key
|
||
)
|
||
UNION ALL
|
||
-- Verzending Nederland/Europa/wereldwijd
|
||
-- TODO: opdrachten groeperen per melding
|
||
-- stdmelding_keys:
|
||
-- Verzending Nederland 1049
|
||
-- Verzending Europa 1050
|
||
-- Verzending wereldwijd 1051
|
||
-- typeopdr_keys:
|
||
-- Verzending Nederland 1052
|
||
-- Verzending Europa 1053
|
||
-- Verzending wereldwijd 1054
|
||
-- kenmerkmeldingen melding:
|
||
-- Ophalen op WP 361
|
||
-- Gevaarlijk 353
|
||
-- Onhandzaam 360
|
||
-- kenmerken melding:
|
||
-- Vervoerder (NL) 502 (prijsoverrule DHL Europlus)
|
||
-- kenmerkmeldingen opdracht:
|
||
-- Aantal units 377
|
||
-- prijslijst (usrtab_key 472):
|
||
-- Verzending voorbereiden binnenland 1757
|
||
-- Verzending voorbereiden binnenland gevaarlijk 1758
|
||
-- Verzending voorbereiden binnen Europa 1755
|
||
-- Verzending voorbereiden binnen Europa gevaarlijk 1756
|
||
-- Verzending voorbereiden buiten Europa 1759
|
||
-- Verzending voorbereiden buiten Europa gevaarlijk 1760
|
||
-- Ophalen van pakketten (HZP) 1777
|
||
-- Ophalen van bulk pakketten op pallet (OHZP) 1778
|
||
-- doorbelast bedrag:
|
||
-- kenmerksoort 462
|
||
-- kenmerken 566, 565, 567 (NL, EU, WW)
|
||
SELECT key, 'opdracht' xmlnode, nummer, datum, einddatum, status, melder,
|
||
melding, vakgroep, kostenplaats_key, kostenplaats_nr, kostenplaats_oms, ordernr, NULL po_nr, kostensoort,
|
||
NULL stuks, NULL gewicht, NULL verwerkingstijd,
|
||
opgehaald, onhandzaam, gevaarlijk, NULL spoed,
|
||
NULL onb_adr,
|
||
basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
|
||
NULL aangetekend, NULL terugkoppel,
|
||
NULL mailing, NULL couverteren,
|
||
ophaalkosten, materiaalkosten,
|
||
NULL verwerkingskosten,
|
||
basistarief + ophaalkosten + materiaalkosten totaal_kosten,
|
||
doorbelast
|
||
FROM (
|
||
SELECT mld_opdr_key key,
|
||
'L'||mld_melding_key||'/'||volgnr nummer,
|
||
datum,
|
||
einddatum,
|
||
status,
|
||
melder,
|
||
melding,
|
||
vakgroep,
|
||
kostenplaats_key,
|
||
kostenplaats_nr,
|
||
kostenplaats_oms,
|
||
ordernr,
|
||
kostensoort,
|
||
oph opgehaald, ohz onhandzaam, gvr gevaarlijk,
|
||
(SELECT fac_usrdata_prijs FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
DECODE(gvr,
|
||
1, DECODE(mld_stdmelding_key,
|
||
1051, 1760,
|
||
1050, 1756,
|
||
1049, 1758),
|
||
0, DECODE(mld_stdmelding_key,
|
||
1051, 1759,
|
||
1050, 1755,
|
||
1049, DECODE(vervoerder,
|
||
2165, 2165,
|
||
1757)
|
||
)
|
||
)
|
||
) basistarief,
|
||
DECODE(oph,
|
||
1, (SELECT fac_usrdata_prijs FROM fac_usrdata
|
||
WHERE fac_usrdata_key = DECODE(ohz,
|
||
1, 1778,
|
||
1777) ),
|
||
0 ) ophaalkosten,
|
||
mat materiaalkosten,
|
||
doorbelast
|
||
FROM (
|
||
SELECT mldopdr.*,
|
||
COALESCE( fac.safe_to_number(ophalen.waarde), 0) oph,
|
||
COALESCE( fac.safe_to_number(gevaarlijk.waarde), 0) gvr,
|
||
COALESCE( fac.safe_to_number(onhandzaam.waarde), 0) ohz,
|
||
materiaal.kosten mat
|
||
FROM (
|
||
SELECT m.mld_melding_key,
|
||
m.mld_stdmelding_key,
|
||
s.mld_stdmelding_omschrijving melding,
|
||
d.ins_discipline_omschrijving vakgroep,
|
||
ak.prs_kostenplaats_key kostenplaats_key,
|
||
ak.prs_kostenplaats_nr kostenplaats_nr,
|
||
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
m.mld_melding_ordernr ordernr,
|
||
ks.prs_kostensoort_oms kostensoort,
|
||
pf.prs_perslid_naam_full melder,
|
||
o.mld_opdr_bedrijfopdr_volgnr volgnr,
|
||
o.mld_opdr_key,
|
||
m.mld_melding_datum datum,
|
||
m.mld_melding_einddatum einddatum,
|
||
o.mld_statusopdr_key status,
|
||
o.mld_typeopdr_key,
|
||
t.mld_typeopdr_omschrijving,
|
||
fac.safe_to_number(nl.mld_kenmerkmelding_waarde) vervoerder,
|
||
fac.safe_to_number(doorbel.mld_kenmerkopdr_waarde) doorbelast
|
||
FROM mld_melding m,
|
||
mld_opdr o,
|
||
mld_typeopdr t,
|
||
mld_stdmelding s,
|
||
mld_discipline d,
|
||
prs_v_aanwezigkostenplaats ak,
|
||
prs_kostensoort ks,
|
||
prs_v_perslid_fullnames pf,
|
||
(SELECT * FROM mld_kenmerkmelding WHERE mld_kenmerk_key = 502) nl,
|
||
(SELECT * FROM mld_kenmerkopdr
|
||
WHERE mld_kenmerk_key IN (565, 566, 567)) doorbel
|
||
WHERE m.mld_stdmelding_key IN (1049, 1050, 1051)
|
||
AND m.mld_melding_status IN (5,6)
|
||
AND m.mld_melding_key = o.mld_melding_key(+)
|
||
AND s.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = s.mld_ins_discipline_key
|
||
AND ak.prs_kostenplaats_key = o.prs_kostenplaats_key
|
||
AND ks.prs_kostensoort_key = s.prs_kostensoort_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND o.mld_typeopdr_key IN (1052, 1053, 1054)
|
||
AND o.mld_statusopdr_key IN (6,7,9)
|
||
AND t.mld_typeopdr_key = o.mld_typeopdr_key
|
||
AND nl.mld_melding_key(+) = m.mld_melding_key
|
||
AND doorbel.mld_opdr_key(+) = o.mld_opdr_key ) mldopdr
|
||
LEFT OUTER JOIN (
|
||
SELECT km.mld_melding_key,
|
||
km.mld_kenmerk_key,
|
||
km.mld_kenmerkmelding_waarde waarde
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = 361
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL ) ophalen
|
||
ON ophalen.mld_melding_key = mldopdr.mld_melding_key
|
||
LEFT OUTER JOIN (
|
||
SELECT km.mld_melding_key,
|
||
km.mld_kenmerk_key,
|
||
km.mld_kenmerkmelding_waarde waarde
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = 353
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL ) gevaarlijk
|
||
ON gevaarlijk.mld_melding_key = mldopdr.mld_melding_key
|
||
LEFT OUTER JOIN (
|
||
SELECT km.mld_melding_key,
|
||
km.mld_kenmerk_key,
|
||
km.mld_kenmerkmelding_waarde waarde
|
||
FROM mld_kenmerkmelding km,
|
||
mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = 360
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) onhandzaam
|
||
ON onhandzaam.mld_melding_key = mldopdr.mld_melding_key
|
||
LEFT OUTER JOIN (
|
||
SELECT om.mld_opdr_key,
|
||
SUM(mld_opdr_materiaal_aantal * mld_opdr_materiaal_prijs) kosten
|
||
FROM mld_opdr_materiaal om,
|
||
mld_opdr o
|
||
WHERE om.mld_opdr_key = o.mld_opdr_key
|
||
AND o.mld_typeopdr_key IN (1052, 1053, 1054)
|
||
AND o.mld_statusopdr_key IN (6,7,9)
|
||
AND om.fac_usrdata_key IS NOT NULL
|
||
GROUP BY om.mld_opdr_key) materiaal
|
||
ON materiaal.mld_opdr_key = mldopdr.mld_opdr_key
|
||
)
|
||
)
|
||
UNION ALL
|
||
-- Bezorgen lunchpakketten
|
||
-- catalogus "Te bezorgen lunchpakket SSCA" 875
|
||
-- Prijslijst
|
||
-- Ophalen en bezorgen van (lunch)pakketten (HZ) 1774
|
||
SELECT DISTINCT rr.res_rsv_ruimte_key key,
|
||
'reservering' xmlnode,
|
||
TO_CHAR(rr.res_reservering_key) nummer,
|
||
ra.res_rsv_artikel_levering datum,
|
||
rr.res_rsv_ruimte_tot einddatum,
|
||
ra.res_status_bo_key status,
|
||
pf.prs_perslid_naam_full melder,
|
||
'Lunchpakket bezorgen' melding,
|
||
'Reserveringen' vakgroep,
|
||
ak.prs_kostenplaats_key kostenplaats_key,
|
||
ak.prs_kostenplaats_nr kostenplaats_nr,
|
||
ak.prs_kostenplaats_omschrijving kostenplaats_oms,
|
||
rr.res_rsv_ruimte_ordernr ordernr,
|
||
NULL po_nr,
|
||
'SPOE' kostensoort,
|
||
NULL stuks, NULL gewicht, NULL verwerkingstijd,
|
||
NULL opgehaald, NULL onhandzaam, NULL gevaarlijk, NULL spoed,
|
||
NULL onb_adr,
|
||
ud.fac_usrdata_prijs basistarief, NULL afgeboekt, NULL gecontroleerd, NULL bezorgd,
|
||
NULL aangetekend, NULL terugkoppel,
|
||
NULL mailing, NULL couverteren,
|
||
NULL ophaalkosten, NULL materiaalkosten,
|
||
NULL verwerkingskosten,
|
||
ud.fac_usrdata_prijs totaal_prijs,
|
||
NULL doorbelast
|
||
FROM res_artikel a,
|
||
res_discipline d,
|
||
res_rsv_artikel ra,
|
||
res_rsv_ruimte rr,
|
||
prs_v_aanwezigkostenplaats ak,
|
||
prs_v_perslid_fullnames pf,
|
||
fac_usrdata ud
|
||
WHERE a.res_discipline_key = 875
|
||
AND d.ins_discipline_key = a.res_discipline_key
|
||
AND ra.res_artikel_key = a.res_artikel_key
|
||
AND ra.res_rsv_artikel_verwijder IS NULL
|
||
AND ra.res_status_bo_key IN (5,6)
|
||
AND TRUNC(ra.res_rsv_artikel_levering) BETWEEN TRUNC(TO_DATE('08-10-2012', 'DD-MM-YYYY'))
|
||
AND TRUNC(SYSDATE)
|
||
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
|
||
AND ak.prs_kostenplaats_key = rr.prs_kostenplaats_key
|
||
AND pf.prs_perslid_key = rr.res_rsv_ruimte_contact_key
|
||
AND ud.fac_usrdata_key = 1774);
|
||
|
||
--- PACKAGE MET REKENPROCEDURES; DEZE VULLEN DE EXPORTTABEL --------------------
|
||
|
||
CREATE OR REPLACE PACKAGE akza_p_sap
|
||
AS
|
||
FUNCTION isnumber (pstring IN VARCHAR2) RETURN BOOLEAN;
|
||
FUNCTION getBewonersOrdernr (pOpdracht_key IN NUMBER) RETURN VARCHAR2;
|
||
FUNCTION getInternalOrdernr (pMelding_key IN NUMBER) RETURN VARCHAR2;
|
||
|
||
PROCEDURE exp_mld (p_applname IN VARCHAR2,
|
||
p_doUpdate IN BOOLEAN);
|
||
PROCEDURE exp_res (p_applname IN VARCHAR2,
|
||
p_doUpdate IN BOOLEAN);
|
||
PROCEDURE exp_logistiek (p_applname IN VARCHAR2,
|
||
p_doUpdate IN BOOLEAN);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY akza_p_sap
|
||
AS
|
||
FUNCTION isnumber (pstring IN VARCHAR2)
|
||
RETURN BOOLEAN
|
||
IS
|
||
lnnumber NUMBER (10);
|
||
lbisnumber BOOLEAN;
|
||
BEGIN
|
||
lbisnumber := TRUE;
|
||
|
||
BEGIN
|
||
lnnumber := fac.safe_to_number (pstring);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
lbisnumber := FALSE;
|
||
END;
|
||
|
||
RETURN lbisnumber;
|
||
END;
|
||
|
||
FUNCTION getbewonersordernr (popdracht_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
IS
|
||
lresult VARCHAR2 (1024);
|
||
BEGIN
|
||
BEGIN
|
||
SELECT mld_opdr_ordernr
|
||
INTO lresult
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = popdracht_key;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
lresult := '';
|
||
END;
|
||
|
||
RETURN lresult;
|
||
END;
|
||
|
||
FUNCTION getinternalordernr (pmelding_key IN NUMBER)
|
||
RETURN VARCHAR2
|
||
IS
|
||
lresult VARCHAR2 (1024);
|
||
lonroerendgoed_key NUMBER (10);
|
||
lgebouw_key NUMBER (10);
|
||
lterrien_key NUMBER (10);
|
||
lonroerendgoed_type VARCHAR (2);
|
||
BEGIN
|
||
-- alg_gebouw_ordernr OR alg_terreinsector_ordernr
|
||
BEGIN
|
||
lresult := '';
|
||
|
||
SELECT mld_alg_onroerendgoed_keys
|
||
INTO lonroerendgoed_key
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = pmelding_key;
|
||
|
||
SELECT alg_type, alg_terreinsector_key, alg_gebouw_key
|
||
INTO lonroerendgoed_type, lterrien_key, lgebouw_key
|
||
FROM alg_v_allonroerendgoed
|
||
WHERE alg_onroerendgoed_keys = lonroerendgoed_key;
|
||
|
||
IF (lonroerendgoed_type = 'T')
|
||
THEN
|
||
SELECT alg_terreinsector_ordernr
|
||
INTO lresult
|
||
FROM alg_terreinsector
|
||
WHERE alg_terreinsector_key = lterrien_key;
|
||
ELSE -- lOnroerendgoed_type in ('R','V','G')
|
||
SELECT alg_gebouw_ordernr
|
||
INTO lresult
|
||
FROM alg_gebouw
|
||
WHERE alg_gebouw_key = lgebouw_key;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
lresult := '';
|
||
END;
|
||
|
||
RETURN lresult;
|
||
END;
|
||
|
||
-- Specify p_doUpdate to set TV/AV statusses in MLD
|
||
-- Voorheen werd hier het leveranciernr (altijd bedrijf) opgehaald. Behandelaar lijkt me relevanter om
|
||
-- te achterhalen wie de dienst geleverd heeft.
|
||
PROCEDURE exp_mld (p_applname IN VARCHAR2, p_doUpdate IN BOOLEAN)
|
||
IS
|
||
-- Alle afgemelde deelopdrachten waarbij opdrachtkosten + aanneemsom != 0
|
||
-- Alleen de Afvalverwijdering-opdrachten waarbij kenmerk "Correct op factuur" = "Ja"
|
||
-- moeten worden ge<67>xporteerd.
|
||
-- mld_kenmerk Aanneemsom 2
|
||
-- mld_typeopdr Deelopdracht-afvalverwijdering 921
|
||
-- mld_srtkenmerk Correct op factuur aangetroffen? 208
|
||
-- fac_usrdata Reeds gefactureerd-->Ja 1236
|
||
CURSOR sap_meldingen
|
||
IS
|
||
SELECT m.mld_melding_key,
|
||
m.mld_alg_onroerendgoed_keys,
|
||
COALESCE( TRIM( ks.prs_kostensoort_oms), 'ONBEKEND') prs_kostensoort_oms,
|
||
pf.prs_perslid_naam_full,
|
||
k.prs_kostenplaats_nr,
|
||
k.prs_kostenplaats_key,
|
||
k.debiteurnr,
|
||
k.prs_kostenplaats_module,
|
||
d.ins_discipline_omschrijving||' / '||sm.mld_stdmelding_omschrijving
|
||
mld_stdmelding_omschrijving,
|
||
o.mld_opdr_key,
|
||
sd.ins_srtdiscipline_prefix
|
||
|| TO_CHAR(m.mld_melding_key)||'/'
|
||
|| TO_CHAR(o.mld_opdr_bedrijfopdr_volgnr)
|
||
nummer,
|
||
o.mld_uitvoerende_keys,
|
||
o.mld_opdr_kosten,
|
||
m.prs_perslid_key,
|
||
o.mld_typeopdr_key,
|
||
ac.companycode crediteurnr,
|
||
m.mld_melding_einddatum einddatum,
|
||
COALESCE(fac.safe_to_number(aanneemsom.mld_kenmerkopdr_waarde), 0) aanneemsom
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline d,
|
||
ins_srtdiscipline sd,
|
||
mld_opdr o,
|
||
akza_v_kostenplaats k,
|
||
prs_kostensoort ks,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_perslid p,
|
||
akza_v_afdelingcompany ac,
|
||
(SELECT * FROM mld_kenmerkopdr
|
||
WHERE mld_kenmerk_key = 2
|
||
AND mld_kenmerkopdr_verwijder IS NULL
|
||
AND mld_kenmerkopdr_waarde != '.00') aanneemsom,
|
||
(SELECT *
|
||
FROM mld_kenmerkopdr ko, mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = 208
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND ko.mld_kenmerkopdr_verwijder IS NULL
|
||
AND ko.mld_kenmerkopdr_waarde = '1236') correct
|
||
WHERE o.mld_statusopdr_key = 6
|
||
AND m.mld_melding_key = o.mld_melding_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND d.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND sd.ins_srtdiscipline_key = d.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_alg = 1 -- AKZA#684
|
||
AND ks.prs_kostensoort_key(+) = d.prs_kostensoort_key
|
||
AND k.prs_kostenplaats_key(+) = o.prs_kostenplaats_key
|
||
AND p.prs_perslid_key = o.prs_perslid_key
|
||
AND ac.prs_afdeling_key = p.prs_afdeling_key
|
||
AND pf.prs_perslid_key = m.prs_perslid_key
|
||
AND aanneemsom.mld_opdr_key(+) = o.mld_opdr_key
|
||
AND correct.mld_opdr_key(+) = o.mld_opdr_key
|
||
-- Alleen als er kosten zijn
|
||
AND o.mld_opdr_kosten + COALESCE(fac.safe_to_number(aanneemsom.mld_kenmerkopdr_waarde), 0) != 0
|
||
-- Als afvalverwijdering, dan ook correct op factuur
|
||
AND NOT ( o.mld_typeopdr_key = 921
|
||
AND ( correct.mld_kenmerkopdr_waarde IS NULL
|
||
OR correct.mld_kenmerkopdr_waarde != '1236') )
|
||
ORDER BY m.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr;
|
||
|
||
rec sap_meldingen%ROWTYPE;
|
||
v_kostenplaats VARCHAR2 (10);
|
||
v_melding_key NUMBER;
|
||
v_debiteurnr VARCHAR2 (12);
|
||
v_companycode VARCHAR2 (10);
|
||
v_disciplinekostensoort prs_kostensoort.prs_kostensoort_oms%TYPE;
|
||
v_bewonersordernr prs_kostenplaats.prs_kostenplaats_nr%TYPE;
|
||
v_internalordernr VARCHAR2 (255);
|
||
v_opdrkosten mld_opdr.mld_opdr_kosten%TYPE;
|
||
v_leveranciernr prs_bedrijf.prs_leverancier_nr%TYPE;
|
||
v_opdrachten NUMBER (10);
|
||
v_aanneemsom NUMBER (10, 2);
|
||
v_count NUMBER;
|
||
v_aanduiding VARCHAR2(255);
|
||
v_errormsg VARCHAR2(255);
|
||
v_errorhint VARCHAR2(255);
|
||
BEGIN
|
||
-- INIT
|
||
v_errormsg := 'init';
|
||
v_errorhint := 'init';
|
||
v_aanduiding := 'init';
|
||
|
||
DELETE akza_exp_sap
|
||
WHERE soort = 'opdracht';
|
||
|
||
DELETE imp_log
|
||
WHERE imp_log_applicatie = p_applname
|
||
AND imp_log_datum < SYSDATE - 185;
|
||
|
||
FOR rec IN sap_meldingen
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec.nummer;
|
||
v_debiteurnr := NULL;
|
||
v_companycode := NULL;
|
||
|
||
v_errormsg := rec.prs_kostenplaats_module||'-kostenplaats '
|
||
||rec.prs_kostenplaats_nr||' (#'||rec.prs_kostenplaats_key||')';
|
||
|
||
v_errorhint := 'Fout bij overnemen gegevens';
|
||
v_melding_key := rec.mld_melding_key;
|
||
v_kostenplaats := rec.prs_kostenplaats_nr;
|
||
v_disciplinekostensoort := rec.prs_kostensoort_oms;
|
||
v_opdrkosten := rec.mld_opdr_kosten + rec.aanneemsom;
|
||
|
||
-- Bepaal de Companycode adhv het bij de kostenplaatsgroep geregistreerde debiteurnr
|
||
-- (verliep voorheen via kpn-->afdeling-->parent, maar dat levert soms meerdere resultaten)
|
||
-- nu: kpn-->nr kpngroep = debiteurnr-->flexkenmerk "Debiteurnr" bij toplevel-afdeling = company
|
||
v_errorhint := 'Geen debiteurnr en/of companycode gevonden!';
|
||
SELECT DISTINCT k.debiteurnr, ac.companycode
|
||
INTO v_debiteurnr, v_companycode
|
||
FROM mld_opdr o,
|
||
akza_v_kostenplaats k,
|
||
prs_kenmerklink kl,
|
||
akza_v_afdelingcompany ac
|
||
WHERE o.mld_opdr_key = rec.mld_opdr_key
|
||
AND k.prs_kostenplaats_key = o.prs_kostenplaats_key
|
||
AND kl.prs_kenmerklink_waarde = k.debiteurnr
|
||
AND kl.prs_kenmerk_key = 1380
|
||
AND kl.prs_kenmerklink_verwijder IS NULL
|
||
AND ac.prs_afdeling_key = kl.prs_link_key;
|
||
|
||
-- Eigenlijk is KostenKlant niet meer helemaal bepalend, het is meer of de gekozen kostenplaats
|
||
-- een ALG of een PRS kostenplaats is!
|
||
IF rec.prs_kostenplaats_module = 'PRS'
|
||
THEN
|
||
v_errormsg := 'PRS-kostenplaats';
|
||
|
||
v_errorhint := 'Fout bij bepalen bewonersordernr';
|
||
SELECT akza_p_sap.getbewonersordernr (rec.mld_opdr_key)
|
||
INTO v_bewonersordernr
|
||
FROM DUAL;
|
||
|
||
-- PKO: (bewoners)ordernr wordt niet meer meegegeven in de export. In de nabije toekomst
|
||
-- worden ordernrs als projectkostenplaatsen opgenomen. Daarom niet meer met kostenplaatsen
|
||
-- en kostensoorten goochelen o.b.v. die ordernummers.
|
||
IF 1=0
|
||
THEN
|
||
IF (SUBSTR (v_bewonersordernr, 1, 1) = 'B' OR SUBSTR (v_bewonersordernr, 1, 1) = 'b')
|
||
AND isnumber (SUBSTR (v_bewonersordernr, 3, 1))
|
||
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 3, 1)) >= 1
|
||
AND isnumber (SUBSTR (v_bewonersordernr, 6, 3))
|
||
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 6, 3)) >= 10
|
||
--AND v_companycode = defcompcode
|
||
THEN
|
||
--lgn('B');
|
||
--TODO: uit mail Erik van Asveld d.d. 25-02-2014: "Voor <20>bewoners orders<72> (orders met een B,
|
||
--of zonder beginletter) is er geen <20><>n op <20><>n relatie meer. De meeboekrekening is de GL account
|
||
--waar de kosten uiteindelijk op de ontvangende kostenplaats terecht moet komen."
|
||
v_kostenplaats := '0000000';
|
||
v_disciplinekostensoort := '4310010';
|
||
ELSE
|
||
IF (SUBSTR (v_bewonersordernr, 1, 1) = 'I' OR SUBSTR (v_bewonersordernr, 1, 1) = 'i')
|
||
AND isnumber (SUBSTR (v_bewonersordernr, 3, 1))
|
||
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 3, 1)) >= 1
|
||
AND isnumber (SUBSTR (v_bewonersordernr, 6, 3))
|
||
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 6, 3)) >= 10
|
||
--AND v_companycode = defcompcode
|
||
THEN
|
||
--lgn('I');
|
||
v_kostenplaats := '0000000';
|
||
v_disciplinekostensoort := '6999026';
|
||
ELSE
|
||
IF (SUBSTR (v_bewonersordernr, 1, 1) = 'O' OR SUBSTR (v_bewonersordernr, 1, 1) = 'o')
|
||
AND isnumber (SUBSTR (v_bewonersordernr, 3, 1))
|
||
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 3, 1)) >= 1
|
||
AND isnumber (SUBSTR (v_bewonersordernr, 6, 3))
|
||
AND fac.safe_to_number (SUBSTR (v_bewonersordernr, 6, 3)) >= 10
|
||
--AND v_companycode = defcompcode
|
||
THEN
|
||
--lgn('O');
|
||
v_kostenplaats := '0000000';
|
||
v_disciplinekostensoort := '6999031';
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
-- PRS-kostenplaats, dus bewonersordernr gebruiken, niet internal ordernr.
|
||
v_internalordernr := '';
|
||
ELSE
|
||
v_errormsg := 'ALG-kostenplaats';
|
||
v_disciplinekostensoort := '4301001';
|
||
-- ALG-kostenplaats, dus internal ordernr gebruiken, niet bewonersordernr.
|
||
v_bewonersordernr := NULL;
|
||
|
||
-- Zoek bij pand (of terrein) geregistreerd ordernr
|
||
v_errorhint := 'Fout bij bepalen internal ordernr';
|
||
SELECT SUBSTR( akza_p_sap.getinternalordernr (rec.mld_melding_key), 1, 6)
|
||
INTO v_internalordernr
|
||
FROM DUAL;
|
||
IF fac.safe_to_number (SUBSTR (v_internalordernr, 1, 1)) >= 1
|
||
AND fac.safe_to_number (SUBSTR (v_internalordernr, 4, 3)) >= 10
|
||
THEN
|
||
v_disciplinekostensoort := '4310010';
|
||
END IF;
|
||
END IF;
|
||
|
||
IF v_opdrkosten != 0
|
||
THEN
|
||
v_errormsg := 'Insert record';
|
||
v_errorhint := 'Invoegen record mislukt!';
|
||
INSERT INTO akza_exp_sap
|
||
(soort,
|
||
crediteurnr,
|
||
debiteurnr,
|
||
companycode,
|
||
costcentre,
|
||
ordernr,
|
||
postingkey,
|
||
kostensoort,
|
||
key,
|
||
refnr,
|
||
einddatum,
|
||
bedrag_ex,
|
||
bedrag_inc,
|
||
btwcode,
|
||
omschrijving,
|
||
perslid)
|
||
VALUES
|
||
('opdracht',
|
||
rec.crediteurnr,
|
||
v_debiteurnr,
|
||
v_companycode,
|
||
v_kostenplaats,
|
||
COALESCE(v_bewonersordernr, v_internalordernr),
|
||
CASE
|
||
WHEN v_opdrkosten >= 0 THEN '40'
|
||
ELSE '50'
|
||
END,
|
||
v_disciplinekostensoort,
|
||
rec.mld_opdr_key,
|
||
rec.nummer,
|
||
COALESCE((SELECT MAX(fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE fac_tracking_refkey = rec.mld_opdr_key
|
||
AND fac_srtnotificatie_key = 26),
|
||
rec.einddatum),
|
||
v_opdrkosten,
|
||
ROUND(v_opdrkosten * 1.21, 2),
|
||
'21',
|
||
rec.mld_stdmelding_omschrijving,
|
||
rec.prs_perslid_naam_full);
|
||
|
||
fac.writelog (p_applname, 'I',
|
||
v_aanduiding,
|
||
v_opdrkosten
|
||
);
|
||
END IF;
|
||
|
||
-- Zet de status van de melding op 'Verwerkt'.
|
||
-- Als er opdrachten zijn dan moeten deze op 'Verwerkt' gezet worden,
|
||
-- anders moet de melding zelf op 'Verwerkt' gezet worden.
|
||
IF p_doUpdate
|
||
THEN
|
||
v_errormsg := 'p_doUpdate';
|
||
v_errorhint := 'Fout bij zoeken opdrachten';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_opdrachten
|
||
FROM mld_opdr
|
||
WHERE mld_melding_key = rec.mld_melding_key;
|
||
|
||
IF v_opdrachten > 0 -- Always true, since this is cursor criterium
|
||
THEN
|
||
v_errorhint := 'Fout bij zetten opdrachtstatus';
|
||
FOR opdrrec
|
||
IN (SELECT mld_opdr_key
|
||
FROM mld_opdr
|
||
WHERE mld_statusopdr_key = 6
|
||
AND mld_melding_key = rec.mld_melding_key)
|
||
LOOP
|
||
v_errorhint := 'Opdracht #'||opdrrec.mld_opdr_key||' verwerken';
|
||
mld.setopdrachtstatus (opdrrec.mld_opdr_key, 7, NULL);
|
||
END LOOP;
|
||
|
||
-- Tel het aantal nog niet AV-verklaarde (verwerkte) opdrachten bij deze melding
|
||
-- Als dat er 0 zijn, moet de melding ook status Verwerkt krijgen
|
||
-- 981119/pf #2083
|
||
v_errorhint := 'Fout bij tellen opdrachten';
|
||
SELECT COUNT ( * )
|
||
INTO v_opdrachten
|
||
FROM mld_opdr
|
||
WHERE mld_melding_key = rec.mld_melding_key
|
||
AND mld_statusopdr_key <> 7;
|
||
|
||
IF v_opdrachten = 0
|
||
THEN
|
||
v_errorhint := 'Fout bij verwerken melding '||rec.mld_melding_key;
|
||
mld.setmeldingstatus (rec.mld_melding_key, 6, NULL);
|
||
fac.writelog (p_applname, 'I',
|
||
rec.mld_melding_key,
|
||
'Verwerkt'
|
||
);
|
||
END IF;
|
||
ELSE
|
||
v_errorhint := 'Fout bij verwerken melding '||rec.mld_melding_key||' (zonder opdrachten)';
|
||
mld.setmeldingstatus (rec.mld_melding_key, 6, NULL);
|
||
fac.writelog (p_applname, 'I',
|
||
rec.mld_melding_key,
|
||
'Verwerkt'
|
||
);
|
||
END IF;
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Geen gegevens gevonden (' || SUBSTR (SQLERRM, 1, 9) || ')'
|
||
);
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
|
||
);
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
|
||
);
|
||
COMMIT;
|
||
END;
|
||
|
||
-- Specify p_doUpdate to set TV/AV statuses in Catering
|
||
PROCEDURE exp_res (p_applname IN VARCHAR2, p_doUpdate IN BOOLEAN)
|
||
IS
|
||
-- Alle reserveringen met kosten
|
||
CURSOR c_sapres
|
||
IS
|
||
SELECT r.*,
|
||
DECODE (r.alg_locatie_key,
|
||
2, '0801', -- SSCA
|
||
161, '0801', -- AHO
|
||
0, '0801', -- AHO (rit)
|
||
121, '1435') -- DEV
|
||
crediteurnr
|
||
FROM ( SELECT * FROM akza_v_export_catering
|
||
UNION ALL
|
||
SELECT * FROM akza_v_export_resdeel
|
||
UNION ALL
|
||
SELECT * FROM akza_v_export_resruimten
|
||
UNION ALL
|
||
SELECT * FROM akza_v_export_resritten) r
|
||
WHERE bedrag > 0;
|
||
|
||
rec c_sapres%ROWTYPE;
|
||
|
||
v_companycode VARCHAR2 (12);
|
||
v_kostensoort VARCHAR2 (12);
|
||
v_btw VARCHAR2 (2);
|
||
|
||
v_errorhint VARCHAR2(100);
|
||
v_errormsg VARCHAR2(100);
|
||
v_aanduiding VARCHAR2(100);
|
||
|
||
BEGIN
|
||
v_aanduiding := 'init';
|
||
v_errormsg := 'init';
|
||
v_errorhint := 'init';
|
||
|
||
DELETE akza_exp_sap
|
||
WHERE soort IN ('artikel', 'deel', 'ruimte', 'rit');
|
||
|
||
DELETE imp_log
|
||
WHERE imp_log_applicatie = p_applname
|
||
AND imp_log_datum < SYSDATE - 185;
|
||
|
||
FOR rec IN c_sapres
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec.res_reservering_key||'/'||rec.res_rsv_ruimte_volgnr||' - '||rec.ruimte_art_oms;
|
||
|
||
v_errormsg := 'Start';
|
||
v_errorhint := 'Fout bij overnemen gegevens';
|
||
v_companycode := rec.companycode;
|
||
v_kostensoort := rec.kostensoort;
|
||
|
||
v_errormsg := 'Insert record';
|
||
v_errorhint := 'Invoegen record mislukt!';
|
||
INSERT INTO akza_exp_sap
|
||
(soort,
|
||
crediteurnr,
|
||
debiteurnr,
|
||
companycode,
|
||
costcentre,
|
||
ordernr,
|
||
postingkey,
|
||
kostensoort,
|
||
key,
|
||
refnr,
|
||
einddatum,
|
||
bedrag_ex,
|
||
bedrag_inc,
|
||
btwcode,
|
||
omschrijving,
|
||
perslid)
|
||
VALUES
|
||
(rec.soort,
|
||
rec.crediteurnr,
|
||
rec.debiteurnr,
|
||
rec.companycode,
|
||
rec.kostenplaatscode,
|
||
rec.res_rsv_ruimte_ordernr,
|
||
rec.postkey,
|
||
rec.kostensoort,
|
||
COALESCE(rec.res_rsv_deel_key, rec.res_rsv_artikel_key, rec.res_rsv_ruimte_key),
|
||
TO_CHAR(rec.res_reservering_key)||'/'||TO_CHAR(rec.res_rsv_ruimte_volgnr),
|
||
COALESCE((SELECT MAX(fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE fac_tracking_refkey = rec.res_rsv_ruimte_key
|
||
AND fac_srtnotificatie_key = 32),
|
||
rec.einddatum),
|
||
rec.bedrag,
|
||
ROUND(rec.bedrag * (1 + fac.safe_to_number(rec.btw/100) ), 2),
|
||
rec.btw,
|
||
rec.datum||' '||rec.ruimte_art_oms,
|
||
rec.melder);
|
||
|
||
fac.writelog(p_applname, 'I',
|
||
v_aanduiding,
|
||
rec.bedrag);
|
||
|
||
IF p_doUpdate
|
||
THEN
|
||
v_errormsg := 'Update status';
|
||
v_errorhint := 'Fout bij '||rec.soort;
|
||
|
||
IF (rec.res_rsv_artikel_key IS NOT NULL)
|
||
THEN
|
||
UPDATE res_rsv_artikel
|
||
SET res_status_bo_key = 6
|
||
WHERE res_status_bo_key = 5 AND res_rsv_artikel_key = rec.res_rsv_artikel_key;
|
||
END IF;
|
||
|
||
IF (rec.res_rsv_deel_key IS NOT NULL)
|
||
THEN
|
||
UPDATE res_rsv_deel
|
||
SET res_status_bo_key = 6
|
||
WHERE res_status_bo_key = 5 AND res_rsv_deel_key = rec.res_rsv_deel_key;
|
||
END IF;
|
||
|
||
IF (rec.res_rsv_deel_key IS NULL) AND (rec.res_rsv_artikel_key IS NULL)
|
||
THEN
|
||
UPDATE res_rsv_ruimte
|
||
SET res_status_bo_key = 6
|
||
WHERE res_status_bo_key = 5 AND res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
|
||
END IF;
|
||
|
||
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Geen gegevens gevonden (' || SUBSTR (SQLERRM, 1, 9) || ')'
|
||
);
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
|
||
); -- tbv logging
|
||
END;
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
|
||
);
|
||
COMMIT;
|
||
END;
|
||
|
||
PROCEDURE exp_logistiek (p_applname IN VARCHAR2, p_doUpdate IN BOOLEAN)
|
||
IS
|
||
v_aanduiding VARCHAR(100);
|
||
v_errormsg VARCHAR(200);
|
||
v_errorhint VARCHAR(200);
|
||
v_count NUMBER;
|
||
|
||
-- In een aantal afdelingskenmerken worden maandelijks terugkerende vaste kosten
|
||
-- bijgehouden. Op basis hiervan maken we per (afdelings-)kostenplaats een melding
|
||
-- aan, om zo historie op te bouwen.
|
||
-- Deze cursor bevat een regel per melding, met gesommeerde kosten voor
|
||
-- postrondes en/of dagbladen.
|
||
CURSOR c_vast
|
||
IS
|
||
-- usrdata:
|
||
-- Looprondes (p/maand) 2176
|
||
-- Dagblad bezorgen (p/maand) 2177
|
||
-- Opslag containers 2197
|
||
-- Kenmerken:
|
||
-- Postrondes:
|
||
-- Ophaalplaats 1/2/3 1295 / 1296 / 1297
|
||
-- Dagbladen:
|
||
-- Bezorgplaats 1/2/3 1301 / 1305 / 1308
|
||
-- Containers:
|
||
-- Aantal containers 1321
|
||
SELECT a.prs_kostenplaats_key,
|
||
k.prs_kostenplaats_omschrijving,
|
||
p.postrondes,
|
||
d.dagbladen,
|
||
c.containers
|
||
FROM prs_kostenplaats k,
|
||
prs_afdeling a
|
||
LEFT OUTER JOIN ( SELECT prs_afdeling_key,
|
||
SUM (fac_usrdata_prijs) postrondes
|
||
FROM prs_afdeling, prs_kenmerklink, fac_usrdata
|
||
WHERE prs_link_key = prs_afdeling_key
|
||
AND prs_kenmerk_key IN (1295, 1296, 1297)
|
||
AND prs_kenmerklink_verwijder IS NULL
|
||
AND fac_usrdata_key = 2176
|
||
GROUP BY prs_afdeling_key) p
|
||
ON p.prs_afdeling_key = a.prs_afdeling_key
|
||
LEFT OUTER JOIN ( SELECT prs_afdeling_key,
|
||
SUM (fac_usrdata_prijs) dagbladen
|
||
FROM prs_afdeling, prs_kenmerklink, fac_usrdata
|
||
WHERE prs_link_key = prs_afdeling_key
|
||
AND prs_kenmerk_key IN (1301, 1305, 1308)
|
||
AND prs_kenmerklink_verwijder IS NULL
|
||
AND fac_usrdata_key = 2177
|
||
GROUP BY prs_afdeling_key) d
|
||
ON d.prs_afdeling_key = a.prs_afdeling_key
|
||
LEFT OUTER JOIN ( SELECT prs_afdeling_key,
|
||
SUM ( fac.safe_to_number(prs_kenmerklink_waarde)
|
||
* fac_usrdata_prijs) containers
|
||
FROM prs_afdeling, prs_kenmerklink, fac_usrdata
|
||
WHERE prs_link_key = prs_afdeling_key
|
||
AND prs_kenmerk_key = 1321
|
||
AND prs_kenmerklink_verwijder IS NULL
|
||
AND fac_usrdata_key = 2197
|
||
GROUP BY prs_afdeling_key) c
|
||
ON c.prs_afdeling_key = a.prs_afdeling_key
|
||
WHERE a.prs_afdeling_verwijder IS NULL
|
||
AND k.prs_kostenplaats_key = a.prs_kostenplaats_key
|
||
AND ( p.postrondes IS NOT NULL
|
||
OR d.dagbladen IS NOT NULL
|
||
OR c.containers IS NOT NULL);
|
||
|
||
CURSOR c_insert
|
||
IS
|
||
SELECT xmlnode,
|
||
'0801' crediteurnr,
|
||
k.debiteurnr,
|
||
ac.companycode,
|
||
k.prs_kostenplaats_nr costcentre,
|
||
ordernr,
|
||
CASE
|
||
WHEN (totaal_kosten < 0) THEN 50
|
||
ELSE 40
|
||
END postingkey,
|
||
kostensoort,
|
||
key,
|
||
nummer refnr,
|
||
einddatum,
|
||
totaal_kosten bedrag_ex,
|
||
ROUND(totaal_kosten * 1.21, 2) bedrag_inc,
|
||
'21' btwcode,
|
||
-- Als (Teijin-) PO-nummer gevuld, dan in omschrijving vermelden.
|
||
DECODE(po_nr,
|
||
NULL, '',
|
||
po_nr||' ')
|
||
||vakgroep||' / '||melding omschrijving,
|
||
melder perslid
|
||
FROM akza_v_logistiek_doorbel l,
|
||
akza_v_kostenplaats k,
|
||
(SELECT * FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1380
|
||
AND prs_kenmerklink_verwijder IS NULL) kl,
|
||
akza_v_afdelingcompany ac
|
||
WHERE totaal_kosten != 0
|
||
AND k.prs_kostenplaats_key = l.kostenplaats_key
|
||
AND kl.prs_kenmerklink_waarde = k.debiteurnr
|
||
AND ac.prs_afdeling_key = kl.prs_link_key
|
||
AND ( (xmlnode = 'melding' AND status = 5) -- afgemelde meldingen
|
||
OR (xmlnode = 'opdracht' AND status = 6) -- afgemelde opdrachten
|
||
OR ( xmlnode = 'reservering' -- afgeleverde cateringartikelen
|
||
AND datum BETWEEN (SELECT COALESCE(MAX(fac_tracking_datum),
|
||
TO_DATE('08-10-2012', 'DD-MM-YYYY') )
|
||
FROM fac_tracking t,
|
||
(SELECT key FROM akza_v_logistiek_doorbel
|
||
WHERE xmlnode = 'melding' AND status = 6) d
|
||
WHERE t.fac_srtnotificatie_key = 24 -- MLDVER
|
||
AND d.key = t.fac_tracking_refkey)
|
||
AND SYSDATE ) );
|
||
|
||
|
||
-- stdmelding:
|
||
-- Postale diensten/Vaste kosten 1101
|
||
-- Kenmerken:
|
||
-- Kostenplaats 564
|
||
-- Postrondes 561
|
||
-- Dagbladen 563
|
||
-- Opslag containers 621
|
||
c_stdmelding_key NUMBER := 1101;
|
||
c_flex_kostenplaats NUMBER := 564;
|
||
c_flex_postrondes NUMBER := 561;
|
||
c_flex_dagbladen NUMBER := 563;
|
||
c_flex_containers NUMBER := 621;
|
||
v_melding_key NUMBER;
|
||
|
||
BEGIN
|
||
v_aanduiding := 'init';
|
||
v_errormsg := 'init';
|
||
v_errorhint := 'init';
|
||
|
||
DELETE akza_exp_sap
|
||
WHERE soort IN ('logistiek');
|
||
|
||
DELETE imp_log
|
||
WHERE imp_log_applicatie = p_applname
|
||
AND imp_log_datum < SYSDATE - 185;
|
||
|
||
-- Meldingen voor vaste kosten toevoegen (o.b.v. flexkenmerken bij afdelingen)
|
||
IF (p_doUpdate)
|
||
THEN
|
||
FOR r IN c_vast
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := r.prs_kostenplaats_omschrijving;
|
||
|
||
v_errormsg := 'Meldingen vaste kosten toevoegen';
|
||
v_errorhint := 'Fout bij toevoegen melding';
|
||
-- Einddatum wordt expliciet gezet, omdat er geen tracking toegevoegd
|
||
-- wordt en we eigenlijk de MLDAFM-datum willen gebruiken.
|
||
INSERT INTO mld_melding
|
||
(mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_melding_einddatum,
|
||
mld_stdmelding_key,
|
||
prs_perslid_key,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
prs_kostenplaats_key)
|
||
VALUES
|
||
('MLD',
|
||
45, -- System
|
||
SYSDATE,
|
||
SYSDATE,
|
||
c_stdmelding_key,
|
||
7520, -- Facilitor
|
||
5, -- Afgemeld
|
||
3,
|
||
r.prs_kostenplaats_key)
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
v_errorhint := 'Fout bij toevoegen kenmerk';
|
||
mld.upsertmeldingkenmerk(c_flex_kostenplaats,
|
||
v_melding_key,
|
||
TO_CHAR(r.prs_kostenplaats_key) );
|
||
mld.upsertmeldingkenmerk(c_flex_postrondes,
|
||
v_melding_key,
|
||
TO_CHAR(r.postrondes) );
|
||
mld.upsertmeldingkenmerk(c_flex_dagbladen,
|
||
v_melding_key,
|
||
TO_CHAR(r.dagbladen) );
|
||
mld.upsertmeldingkenmerk(c_flex_containers,
|
||
v_melding_key,
|
||
TO_CHAR(r.containers) );
|
||
|
||
fac.writelog(p_applname, 'I',
|
||
'Melding '||v_melding_key||' toegevoegd',
|
||
'Kostenplaats '||v_aanduiding);
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Geen gegevens gevonden (' || SUBSTR (SQLERRM, 1, 9) || ')'
|
||
);
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
|
||
); -- tbv logging
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
END IF;
|
||
|
||
v_errormsg := 'Insert record';
|
||
v_errorhint := 'Invoegen record mislukt!';
|
||
|
||
-- Logistieke acties voor externe klanten aan doorbelastingstabel toevoegen
|
||
FOR r IN c_insert
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := r.refnr;
|
||
|
||
INSERT INTO akza_exp_sap
|
||
(soort,
|
||
crediteurnr,
|
||
debiteurnr,
|
||
companycode,
|
||
costcentre,
|
||
ordernr,
|
||
postingkey,
|
||
kostensoort,
|
||
key,
|
||
refnr,
|
||
einddatum,
|
||
bedrag_ex,
|
||
bedrag_inc,
|
||
btwcode,
|
||
omschrijving,
|
||
perslid)
|
||
VALUES
|
||
('logistiek',
|
||
r.crediteurnr,
|
||
r.debiteurnr,
|
||
r.companycode,
|
||
r.costcentre,
|
||
r.ordernr,
|
||
r.postingkey,
|
||
r.kostensoort,
|
||
r.key,
|
||
r.refnr,
|
||
COALESCE((SELECT MAX(fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE fac_tracking_refkey = r.key
|
||
AND fac_srtnotificatie_key = DECODE(r.xmlnode,
|
||
'opdracht', 26, -- ORDAFM
|
||
'melding', 18, -- MLDAFM
|
||
32 -- RESAFM
|
||
) ),
|
||
r.einddatum),
|
||
r.bedrag_ex,
|
||
r.bedrag_inc,
|
||
r.btwcode,
|
||
r.omschrijving,
|
||
r.perslid);
|
||
|
||
fac.writelog(p_applname, 'I',
|
||
v_aanduiding,
|
||
r.bedrag_ex);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Geen gegevens gevonden (' || SUBSTR (SQLERRM, 1, 9) || ')'
|
||
);
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
|
||
); -- tbv logging
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
|
||
);
|
||
END exp_logistiek;
|
||
|
||
END;
|
||
/
|
||
|
||
--- EXPORT DEELOPDRACHTEN ------------------------------------------------------
|
||
|
||
-- Export MLD_SAP bepaalt doorbelastingsgegevens voor deelopdrachten. Gegevens worden later gebruikt
|
||
-- gebruikt door de specificatie- en verkoopfactuur-exports (SAP_SPEC resp SAP_FACTUREN)
|
||
CREATE OR REPLACE PROCEDURE akza_select_mld_sap (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
akza_p_sap.exp_mld(p_applname, TRUE); -- p_doUpdate TODO
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW akza_v_export_mld_sap
|
||
(RESULT, RESULT_ORDER)
|
||
AS
|
||
SELECT 'soort;crediteurnr;debiteurnr;companycode;costcentre;ordernr;postingkey;kostensoort;key;refnr;bedrag_ex;bedrag_inc;btwcode;omschrijving;perslid',
|
||
0
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT soort||';'||
|
||
crediteurnr||';'||
|
||
debiteurnr||';'||
|
||
companycode||';'||
|
||
costcentre||';'||
|
||
ordernr||';'||
|
||
postingkey||';'||
|
||
kostensoort||';'||
|
||
key||';'||
|
||
refnr||';'||
|
||
bedrag_ex||';'||
|
||
bedrag_inc||';'||
|
||
btwcode||';'||
|
||
omschrijving||';'||
|
||
perslid,
|
||
key
|
||
FROM akza_exp_sap
|
||
WHERE soort = 'opdracht';
|
||
|
||
CREATE OR REPLACE PROCEDURE akza_export_mld_sap (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
-- Het laatste tenslotte heeft weinig met de export te maken
|
||
-- Maar moet hier wel gebeuren: Alle meldingen die TV zijn en geen
|
||
-- opdrachten hebben, worden AV verklaard, zonder verdere extra acties.
|
||
--lgn('Tenslotte nog AV verklaren van lege (zonder opdrachten) TV meldingen');
|
||
-- AKZA#23427: Meldingen Logistieke dienst (srtdisc 121) vallen hierbuiten; die dus
|
||
-- nooit aanpassen met deze export!
|
||
-- AKZA#37464: ook KPI-meldingen vallen hierbuiten
|
||
FOR rec IN (SELECT mld_melding_key
|
||
FROM mld_melding m,
|
||
mld_stdmelding s,
|
||
mld_discipline d
|
||
WHERE NOT EXISTS (SELECT 1
|
||
FROM mld_opdr o
|
||
WHERE o.mld_melding_key = m.mld_melding_key)
|
||
AND m.mld_melding_status = 5 -- TV
|
||
AND m.mld_stdmelding_key = s.mld_stdmelding_key
|
||
AND s.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key NOT IN (121, 161) ) -- Logistiek, KPI
|
||
LOOP
|
||
mld.setmeldingstatus (rec.mld_melding_key, 6, NULL);
|
||
fac.writelog(p_applname,
|
||
'I',
|
||
'Melding '||rec.mld_melding_key||' verwerkt',
|
||
'');
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
|
||
--- EXPORT RESERVERINGEN -------------------------------------------------------
|
||
|
||
CREATE OR REPLACE PROCEDURE akza_select_res_sap (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
akza_p_sap.exp_res (p_applname, TRUE); -- doUpdate
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW akza_v_export_res_sap
|
||
(RESULT, RESULT_ORDER)
|
||
AS
|
||
SELECT 'soort;crediteurnr;debiteurnr;companycode;costcentre;ordernr;postingkey;kostensoort;key;refnr;bedrag_ex;bedrag_inc;btwcode;omschrijving;perslid',
|
||
0
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT soort||';'||
|
||
crediteurnr||';'||
|
||
debiteurnr||';'||
|
||
companycode||';'||
|
||
costcentre||';'||
|
||
ordernr||';'||
|
||
postingkey||';'||
|
||
kostensoort||';'||
|
||
key||';'||
|
||
refnr||';'||
|
||
bedrag_ex||';'||
|
||
bedrag_inc||';'||
|
||
btwcode||';'||
|
||
omschrijving||';'||
|
||
perslid,
|
||
key
|
||
FROM akza_exp_sap
|
||
WHERE soort IN ('artikel', 'deel', 'ruimte', 'rit');
|
||
|
||
--- EXPORT LOGISTIEK -----------------------------------------------------------
|
||
|
||
-- Voorbereiden export naar SAP; meldingen aanmaken voor vaste kosten vastgelegd in afdelingskenmerken
|
||
CREATE OR REPLACE PROCEDURE akza_select_logistiek (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
akza_p_sap.exp_logistiek(p_applname, TRUE); --doUpdate
|
||
END akza_select_logistiek;
|
||
/
|
||
|
||
-- Exportview naar Foxpro (voor doorbelasting naar SAP)
|
||
CREATE OR REPLACE VIEW akza_v_export_logistiek
|
||
AS
|
||
WITH tmp
|
||
AS
|
||
(SELECT *
|
||
FROM akza_v_logistiek_doorbel l
|
||
WHERE totaal_kosten != 0
|
||
AND ( (xmlnode = 'melding' AND status = 5) -- afgemelde meldingen
|
||
OR (xmlnode = 'opdracht' AND status = 6) -- afgemelde opdrachten
|
||
OR ( xmlnode = 'reservering' -- afgeleverde cateringartikelen
|
||
AND datum BETWEEN (SELECT COALESCE(MAX(fac_tracking_datum),
|
||
TO_DATE('08-10-2012', 'DD-MM-YYYY') )
|
||
FROM fac_tracking t,
|
||
(SELECT key FROM akza_v_logistiek_doorbel
|
||
WHERE xmlnode = 'melding' AND status = 6) d
|
||
WHERE t.fac_srtnotificatie_key = 24 -- MLDVER
|
||
AND d.key = t.fac_tracking_refkey)
|
||
AND SYSDATE ) ) )
|
||
SELECT '<html><head><style>' result, 1 result_order FROM DUAL
|
||
UNION ALL
|
||
SELECT '.num0dec {mso-number-format:0;} .num2dec {mso-number-format:Fixed;} .tekst {mso-number-format:"\@";}' result, 2 result_order FROM DUAL
|
||
UNION ALL
|
||
SELECT '</style></head><body><table>' result, 3 result_order FROM DUAL
|
||
UNION ALL
|
||
SELECT '<tr><td>INT_FACT</td>'||
|
||
'<td>CMPCODE</td>'||
|
||
'<td>KPLCODE</td>'||
|
||
'<td>PK</td>'||
|
||
'<td>VAL</td>'||
|
||
'<td>FAKT.DA</td>'||
|
||
'<td>REFERENTIE</td>'||
|
||
'<td>GRP</td>'||
|
||
'<td>BEDRAG</td>'||
|
||
'<td>AANTAL</td>'||
|
||
'<td>ARTIKEL</td>'||
|
||
'<td>DT</td>'||
|
||
'<td>ARTIKELCODE</td>'||
|
||
'<td>PRIJS</td>'||
|
||
'<td>REFERENTIE 1</td>'||
|
||
'<td>BTW</td></tr>' result, 4 result_order FROM DUAL
|
||
UNION ALL
|
||
SELECT '<tr><td>' ||
|
||
nummer ||
|
||
'</td><td>' ||
|
||
SUBSTR(kostenplaats_nr,
|
||
INSTR(kostenplaats_nr, '(')+1,
|
||
INSTR(kostenplaats_nr, ')') - INSTR(kostenplaats_nr, '(')-1) ||
|
||
'</td><td>' ||
|
||
SUBSTR(kostenplaats_nr,
|
||
1,
|
||
INSTR(kostenplaats_nr, '(')-2) ||
|
||
'</td><td>' ||
|
||
CASE
|
||
WHEN (totaal_kosten < 0) THEN 50
|
||
ELSE 40
|
||
END ||
|
||
'</td><td>' ||
|
||
'EUR'||
|
||
'</td><td>' ||
|
||
TO_CHAR (TRUNC(datum), 'dd-mm-yyyy') ||
|
||
'</td><td>' ||
|
||
melder ||
|
||
'</td><td>' ||
|
||
kostensoort ||
|
||
'</td><td class="num2dec">' ||
|
||
REPLACE(TO_CHAR(COALESCE(totaal_kosten, 0)),'.',',') ||
|
||
'</td><td class="num0dec">' ||
|
||
'1' ||
|
||
'</td><td>' ||
|
||
melding ||
|
||
'</td><td>' ||
|
||
DECODE (SUBSTR(kostenplaats_nr,
|
||
INSTR(kostenplaats_nr, '(')+1,
|
||
INSTR(kostenplaats_nr, ')') - INSTR(kostenplaats_nr, '(')-1),
|
||
'0801', 'NY',
|
||
'MY') ||
|
||
'</td><td>' ||
|
||
'FCLT' ||
|
||
'</td><td class="num2dec">' ||
|
||
REPLACE(TO_CHAR(COALESCE(totaal_kosten, 0)),'.',',') ||
|
||
'</td><td>' ||
|
||
'</td><td>' ||
|
||
'2' ||
|
||
'</td></tr>' result,
|
||
5 result_order
|
||
FROM tmp
|
||
UNION ALL
|
||
SELECT '<tr><td class="num2dec">' || REPLACE(TO_CHAR( SUM(totaal_kosten) ),'.',',') || '</td>' ||
|
||
'<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>' result,
|
||
6 result_order
|
||
FROM tmp
|
||
UNION ALL
|
||
SELECT '<tr><td class="num0dec">1</td>' ||
|
||
'<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>' result,
|
||
7 result_order
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT '</table></body></html>' result, 8 result_order FROM DUAL;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_export_logistiek
|
||
(RESULT, RESULT_ORDER)
|
||
AS
|
||
SELECT 'soort;crediteurnr;debiteurnr;companycode;costcentre;ordernr;postingkey;kostensoort;key;refnr;bedrag_ex;bedrag_inc;btwcode;omschrijving;perslid',
|
||
0
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT soort||';'||
|
||
crediteurnr||';'||
|
||
debiteurnr||';'||
|
||
companycode||';'||
|
||
costcentre||';'||
|
||
ordernr||';'||
|
||
postingkey||';'||
|
||
kostensoort||';'||
|
||
key||';'||
|
||
refnr||';'||
|
||
bedrag_ex||';'||
|
||
bedrag_inc||';'||
|
||
btwcode||';'||
|
||
omschrijving||';'||
|
||
perslid,
|
||
key
|
||
FROM akza_exp_sap
|
||
WHERE soort = 'logistiek';
|
||
|
||
-- Afronden export naar SAP;
|
||
-- meldingen/opdrachten/reserveringen op status Verwerkt zetten
|
||
CREATE OR REPLACE PROCEDURE akza_export_logistiek (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
v_aanduiding VARCHAR(100);
|
||
v_errormsg VARCHAR(200);
|
||
v_errorhint VARCHAR(100);
|
||
v_count NUMBER;
|
||
|
||
-- Alle te-verwerken meldingen en opdrachten.
|
||
-- Doorbelaste logistieke meldingen hebben geen opdrachten, m.u.v. Verzending expeditie.
|
||
-- Bij doorbelaste opdrachten (Verzending expeditie) moet ook de melding op Verwerkt worden gezet
|
||
-- (Reserveringen zijn al op Verwerkt gezet door de RES-exports)
|
||
CURSOR c
|
||
IS
|
||
SELECT key,
|
||
xmlnode,
|
||
nummer,
|
||
melding,
|
||
datum,
|
||
totaal_kosten
|
||
FROM akza_v_logistiek_doorbel l
|
||
WHERE (xmlnode = 'melding' AND status = 5) -- afgemelde meldingen
|
||
OR (xmlnode = 'opdracht' AND status = 6) -- afgemelde opdrachten
|
||
ORDER BY nummer;
|
||
|
||
c_flex_mld_doorbelast NUMBER := 562;
|
||
|
||
c_typeopdr_NL NUMBER := 1052;
|
||
c_typeopdr_EU NUMBER := 1053;
|
||
c_typeopdr_WW NUMBER := 1054;
|
||
c_flex_opdr_NL_doorbelast NUMBER := 566;
|
||
c_flex_opdr_EU_doorbelast NUMBER := 565;
|
||
c_flex_opdr_WW_doorbelast NUMBER := 567;
|
||
|
||
v_melding_key NUMBER;
|
||
v_flex_key NUMBER;
|
||
|
||
BEGIN
|
||
v_aanduiding := 'init';
|
||
v_errormsg := 'init';
|
||
v_errorhint := 'init';
|
||
|
||
-- Meldingen en opdrachten op Verwerkt zetten
|
||
-- (Reserveringen zijn bij de RES-exports al op Verwerkt gezet)
|
||
FOR r IN c
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := r.xmlnode||' '||r.nummer||' (#'||r.key||')';
|
||
|
||
-- Melding zonder opdrachten
|
||
IF (r.xmlnode = 'melding')
|
||
THEN
|
||
v_errormsg := 'Verwerken';
|
||
|
||
-- Melding op Verwerkt zetten (zorgt ook voor tracking)
|
||
v_errorhint := 'Fout bij verwerken melding';
|
||
mld.setmeldingstatus(r.key, 6, NULL);
|
||
fac.writelog(p_applname, 'I',
|
||
v_aanduiding||' verwerkt',
|
||
'');
|
||
-- Voor historie: bewaar doorbelaste bedrag
|
||
v_errorhint := 'Fout bij zetten meldingkenmerk';
|
||
mld.upsertmeldingkenmerk(c_flex_mld_doorbelast,
|
||
r.key,
|
||
TO_CHAR(r.totaal_kosten) );
|
||
|
||
ELSIF (r.xmlnode = 'opdracht')
|
||
THEN
|
||
-- Zet op Verwerkt (zorgt ook voor tracking)
|
||
v_errorhint := 'Fout bij verwerken opdracht';
|
||
mld.setopdrachtstatus (r.key, 7, NULL);
|
||
fac.writelog(p_applname, 'I',
|
||
v_aanduiding||' verwerkt',
|
||
'');
|
||
-- Voor historie: bewaar doorbelaste bedrag
|
||
v_errorhint := 'Fout bij zetten opdrachtkenmerk';
|
||
SELECT DECODE(mld_typeopdr_key,
|
||
c_typeopdr_NL, c_flex_opdr_NL_doorbelast,
|
||
c_typeopdr_EU, c_flex_opdr_EU_doorbelast,
|
||
c_typeopdr_WW, c_flex_opdr_WW_doorbelast)
|
||
INTO v_flex_key
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = r.key;
|
||
|
||
mld.upsertopdrachtkenmerk(v_flex_key,
|
||
r.key,
|
||
TO_CHAR(r.totaal_kosten) );
|
||
|
||
v_errormsg := 'Zoeken overige opdrachten';
|
||
|
||
-- Achterhaal melding bij opdracht; zijn nu alle opdrachten bij deze
|
||
-- melding verwerkt?
|
||
v_errorhint := 'Fout bij bepalen melding';
|
||
SELECT mld_melding_key
|
||
INTO v_melding_key
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = r.key;
|
||
|
||
-- Zijn er andere te-Verwerken opdrachten bij deze melding?
|
||
-- (te-Verwerken is dan: niet Verwerkt (7), niet Afgewezen (1), niet Niet akkoord (2)
|
||
v_errorhint := 'Fout bij tellen opdrachten';
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM mld_opdr
|
||
WHERE mld_melding_key = v_melding_key
|
||
AND mld_opdr_key != r.key
|
||
AND mld_statusopdr_key NOT IN (1,2,7);
|
||
|
||
IF (v_count > 0)
|
||
THEN
|
||
-- Er zijn nog opdrachten; melding kan niet Verwerkt worden
|
||
fac.writelog(p_applname, 'I',
|
||
'Melding L'||v_melding_key||' bij '||v_aanduiding||' wordt (nog) niet verwerkt',
|
||
'Er zijn nog andere openstaande/te verwerken opdrachten');
|
||
|
||
ELSE
|
||
-- Geen andere opdrachten; melding op Verwerkt zetten (zorgt ook voor tracking)
|
||
v_errorhint := 'Fout bij verwerken melding';
|
||
mld.setmeldingstatus(v_melding_key, 6, NULL);
|
||
fac.writelog(p_applname,
|
||
'I',
|
||
'Melding L'||v_melding_key||' bij '||v_aanduiding||' verwerkt',
|
||
'');
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
|
||
);
|
||
END;
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.writelog (p_applname, 'E',
|
||
v_aanduiding||': '||v_errorhint||' ('||v_errormsg||')',
|
||
'Error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100)
|
||
);
|
||
END akza_export_logistiek;
|
||
/
|
||
|
||
|
||
--- SPECIFICATIEREGELS ---------------------------------------------------------
|
||
|
||
-- AKZA#27345: Export verkoopfacturen naar SAP.
|
||
-- Genereert exportbestand met specificatieregels; deze wordt later in een batch-script
|
||
-- gesplitst in bestanden per betalende company(code)
|
||
CREATE OR REPLACE VIEW akza_v_export_sap_spec
|
||
(RESULT, RESULT_ORDER)
|
||
AS
|
||
SELECT 'Seq;CoCd;Doc. Type;Crcy;PK;G/L Acct;Cost Ctr;Network;Ordnr;Text;Pstng Date;Amount;Crcy' result,
|
||
0 result_order
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT seq||';'||cocd||';'||doctype||';'||crcy||';'||pk||';'||glacct||';'||
|
||
costctr||';'||network||';'||ordnr||';'||text||';'||pstngdate||';'||amount||';'||crcy1 result,
|
||
ROWNUM result_order
|
||
FROM (
|
||
SELECT ROW_NUMBER() OVER (PARTITION BY companycode ORDER BY companycode, kostensoort, costcentre) AS seq,
|
||
companycode cocd,
|
||
'MY' doctype,
|
||
'EUR' crcy,
|
||
postingkey pk,
|
||
kostensoort glacct,
|
||
costcentre costctr,
|
||
NULL network,
|
||
TRIM(ordernr) ordnr,
|
||
-- Melder in omschrijving vermelden, maar alleen als dat niet _FACILITOR is.
|
||
refnr||' '
|
||
|| omschrijving
|
||
|| DECODE(perslid,
|
||
'Facilitor', '',
|
||
' ('||perslid||')' ) text,
|
||
TO_CHAR(einddatum, 'DD-MM-YYYY') pstngdate,
|
||
bedrag_ex amount,
|
||
NULL crcy1
|
||
FROM akza_exp_sap );
|
||
|
||
--- VERKOOPFACTUREN ------------------------------------------------------------
|
||
|
||
-- AKZA#27345: Export verkoopfacturen naar SAP.
|
||
-- Facturen worden getotaliseerd per klantbedrijf (company), met daarbij een specificatieregel
|
||
-- per opdracht/melding/reservering en aparte BTW-regels voor hoog/laag
|
||
CREATE OR REPLACE PROCEDURE akza_select_sap_facturen (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
||
AS
|
||
CURSOR c_facturen
|
||
IS
|
||
SELECT TO_CHAR(SYSDATE+2, 'DDMMYYYY') docdate,
|
||
'DA' doctype,
|
||
crediteurnr companycode,
|
||
TO_CHAR(SYSDATE+2, 'DDMMYYYY') postingdate,
|
||
'EUR' currency,
|
||
NULL documentnr,
|
||
DECODE(soort,
|
||
'opdracht', 'Service Orders',
|
||
'artikel', 'Catering',
|
||
'ruimte', 'Bookable rooms',
|
||
'deel', 'Bookable equipment',
|
||
'logistiek', 'Logistic Services',
|
||
soort)
|
||
||TO_CHAR(ADD_MONTHS(SYSDATE,-1), ' YYYY.MM') description,
|
||
companycode||TO_CHAR(ADD_MONTHS(SYSDATE,-1), '-YYYY.MM') referencenr,
|
||
CASE
|
||
WHEN SUM(bedrag_inc) >= 0 THEN '01'
|
||
WHEN SUM(bedrag_inc) < 0 THEN '11'
|
||
END
|
||
postingkey,
|
||
debiteurnr account,
|
||
TRIM( TO_CHAR( SUM(bedrag_inc),
|
||
'99999999D99',
|
||
'NLS_NUMERIC_CHARACTERS=,.') ) amount,
|
||
'**' taxcode,
|
||
NULL network,
|
||
--TODO: Deventer verwacht hier wel een waarde in(?)
|
||
'' assignment,
|
||
'' costcenter,
|
||
DECODE(soort,
|
||
'opdracht', 'Service Orders',
|
||
'artikel', 'Catering',
|
||
'ruimte', 'Bookable rooms',
|
||
'deel', 'Bookable equipment',
|
||
'logistiek', 'Logistic Services',
|
||
soort)
|
||
||TO_CHAR(ADD_MONTHS(SYSDATE,-1), ' YYYY.MM ')
|
||
||COALESCE(aa.prs_afdeling_naam6, 'LEEG') lineitemtext,
|
||
NULL tradingpartner,
|
||
'' ordernr,
|
||
NULL partnerbanktype,
|
||
NULL xref1,
|
||
NULL xref2,
|
||
-- de verschillende company's hebben andere contactpersonen per dienst
|
||
DECODE( crediteurnr1,
|
||
'1435', DECODE( soort,
|
||
'opdracht', 'VONKT',
|
||
'artikel', 'VONKT',
|
||
'ruimte', 'VONKT',
|
||
'deel', 'VONKT',
|
||
'logistiek', 'VONKT',
|
||
NULL),
|
||
DECODE( soort,
|
||
'opdracht', 'BONGERSH',
|
||
'artikel', 'ERMERSJ',
|
||
'ruimte', 'ERMERSJ',
|
||
'deel', 'ERMERSJ',
|
||
'logistiek', 'BOSW',
|
||
NULL) )
|
||
xref3,
|
||
NULL companycodecross,
|
||
NULL profitcenter,
|
||
soort
|
||
-- Diverse HQ-company's hebben dezelfde administratie (0801, 0804, 0806, 0810),
|
||
-- dus daar niet onderling factureren.
|
||
-- Bij incomplete inrichting kan de companycode leeg zijn, daar expliciet op checken
|
||
FROM (SELECT DECODE(companycode, '0804', '0801',
|
||
'0806', '0801',
|
||
'0810', '0801',
|
||
NULL, 'apekool',
|
||
companycode) companycode1,
|
||
DECODE(crediteurnr, '0804', '0801',
|
||
'0806', '0801',
|
||
'0810', '0801',
|
||
NULL, 'quequeleque',
|
||
crediteurnr) crediteurnr1,
|
||
es.*
|
||
FROM akza_exp_sap es),
|
||
prs_v_aanwezigafdeling aa
|
||
WHERE companycode1 != crediteurnr1
|
||
AND aa.prs_afdeling_naam(+) = companycode
|
||
GROUP BY companycode, companycode1, debiteurnr, crediteurnr, crediteurnr1, soort, aa.prs_afdeling_naam6;
|
||
|
||
-- AKZA#32881 factuurregels sommeren per GLaccount (kostensoort) en kostenplaats
|
||
CURSOR c_regels (p_crediteurnr VARCHAR2,
|
||
p_debiteurnr VARCHAR2,
|
||
p_soort VARCHAR2)
|
||
IS
|
||
SELECT CASE
|
||
WHEN SUM(bedrag_ex) >= 0 THEN '50'
|
||
WHEN SUM(bedrag_ex) < 0 THEN '40'
|
||
END
|
||
postingkey,
|
||
kostensoort account,
|
||
TRIM( TO_CHAR( SUM(bedrag_ex),
|
||
'99999999D99',
|
||
'NLS_NUMERIC_CHARACTERS=,.') ) amount,
|
||
'NC' taxcode,
|
||
NULL network,
|
||
NULL assignment,
|
||
costcentre costcenter,
|
||
DECODE(soort,
|
||
'opdracht', 'Service Orders',
|
||
'artikel', 'Catering',
|
||
'ruimte', 'Bookable rooms',
|
||
'deel', 'Bookable equipment',
|
||
'logistiek', 'Logistic Services',
|
||
soort)
|
||
|| TO_CHAR(ADD_MONTHS(SYSDATE,-1), ' YYYY.MM ') lineitemtext,
|
||
NULL tradingpartner,
|
||
'' ordernr
|
||
-- Diverse HQ-company's hebben dezelfde administratie (0801, 0804, 0806, 0810),
|
||
-- dus daar niet onderling factureren.
|
||
-- Bij incomplete inrichting kan de companycode leeg zijn, daar expliciet op checken
|
||
FROM (SELECT DECODE(companycode, '0804', '0801',
|
||
'0806', '0801',
|
||
'0810', '0801',
|
||
NULL, 'apekool',
|
||
companycode) companycode1,
|
||
DECODE(crediteurnr, '0804', '0801',
|
||
'0806', '0801',
|
||
'0810', '0801',
|
||
NULL, 'quequeleque',
|
||
crediteurnr) crediteurnr1,
|
||
es.*
|
||
FROM akza_exp_sap es)
|
||
WHERE companycode1 != crediteurnr1
|
||
AND crediteurnr = p_crediteurnr
|
||
AND debiteurnr = p_debiteurnr
|
||
AND soort = p_soort
|
||
GROUP BY kostensoort, costcentre, soort
|
||
ORDER BY kostensoort, costcentre;
|
||
|
||
CURSOR c_btw (p_crediteurnr VARCHAR2,
|
||
p_debiteurnr VARCHAR2,
|
||
p_soort VARCHAR2)
|
||
IS
|
||
SELECT CASE
|
||
WHEN SUM(bedrag_inc) - SUM(bedrag_ex) >= 0 THEN '50'
|
||
WHEN SUM(bedrag_inc) - SUM(bedrag_ex) < 0 THEN '40'
|
||
END
|
||
postingkey,
|
||
'3571039' account,
|
||
TRIM( TO_CHAR( SUM(bedrag_inc) - SUM(bedrag_ex),
|
||
'99999999D99',
|
||
'NLS_NUMERIC_CHARACTERS=,.') ) amount,
|
||
DECODE(btwcode,
|
||
'21', 'N3',
|
||
'6', 'N1',
|
||
'0', 'N5',
|
||
'NC')
|
||
taxcode,
|
||
NULL network,
|
||
NULL assignment,
|
||
NULL costcenter,
|
||
'BTW '
|
||
|| DECODE(btwcode,
|
||
'21', '21%',
|
||
'6', '6%',
|
||
'onbekend: '||btwcode)
|
||
lineitemtext
|
||
-- Diverse HQ-company's hebben dezelfde administratie (0801, 0804, 0806, 0810),
|
||
-- dus daar niet onderling factureren.
|
||
-- Bij incomplete inrichting kan de companycode leeg zijn, daar expliciet op checken
|
||
FROM (SELECT DECODE(companycode, '0804', '0801',
|
||
'0806', '0801',
|
||
'0810', '0801',
|
||
NULL, 'apekool',
|
||
companycode) companycode1,
|
||
DECODE(crediteurnr, '0804', '0801',
|
||
'0806', '0801',
|
||
'0810', '0801',
|
||
NULL, 'quequeleque',
|
||
crediteurnr) crediteurnr1,
|
||
es.*
|
||
FROM akza_exp_sap es)
|
||
WHERE companycode1 != crediteurnr1
|
||
AND crediteurnr = p_crediteurnr
|
||
AND debiteurnr = p_debiteurnr
|
||
AND soort = p_soort
|
||
GROUP BY postingkey, btwcode;
|
||
|
||
v_aanduiding VARCHAR2(100);
|
||
v_volgnr NUMBER;
|
||
v_errormsg VARCHAR(255);
|
||
v_errorhint VARCHAR(255);
|
||
BEGIN
|
||
v_aanduiding := 'init';
|
||
v_errormsg := 'init';
|
||
v_errorhint := 'init';
|
||
v_volgnr := 1;
|
||
|
||
DELETE fac_rapport
|
||
WHERE fac_rapport_node = p_applname;
|
||
|
||
DELETE imp_log
|
||
WHERE imp_log_applicatie = p_applname
|
||
AND imp_log_datum > SYSDATE - 185;
|
||
|
||
v_errorhint := 'Headerregel';
|
||
|
||
INSERT INTO fac_rapport
|
||
(fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel,
|
||
fac_rapport_soort)
|
||
SELECT p_applname,
|
||
0,
|
||
'<html><head><style>.num0dec {mso-number-format:0;} .num2dec {mso-number-format:Fixed;} .tekst {mso-number-format:"\@"; white-space:nowrap;}</style></head><body><table>',
|
||
1
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT p_applname,
|
||
1,
|
||
'<tr><td>DOCDATE</td>'||
|
||
'<td>DOCTYPE</td>'||
|
||
'<td>COMPANYCODE</td>'||
|
||
'<td>POSTINGDATE</td>'||
|
||
'<td>CURRENCY</td>'||
|
||
'<td>DOCUMENTNR</td>'||
|
||
'<td>DESCRIPTION</td>'||
|
||
'<td>REFERENCENR</td>'||
|
||
'<td>POSTINGKEY</td>'||
|
||
'<td>ACCOUNT</td>'||
|
||
'<td>AMOUNT</td>'||
|
||
'<td>TAXCODE</td>'||
|
||
'<td>NETWORK</td>'||
|
||
'<td>ASSIGNMENT</td>'||
|
||
'<td>COSTCENTER</td>'||
|
||
'<td>LINEITEMTEXT</td>'||
|
||
'<td>TRADINGPARTNER</td>'||
|
||
'<td>ORDERNR</td>'||
|
||
'<td>PARTNERBANKTYPE</td>'||
|
||
'<td>XREF1</td>'||
|
||
'<td>XREF2</td>'||
|
||
'<td>XREF3</td>'||
|
||
'<td>COMPANYCODECROSS</td>'||
|
||
'<td>PROFITCENTER</td></tr>',
|
||
1
|
||
FROM DUAL;
|
||
|
||
v_errorhint := 'Sommatieregel';
|
||
|
||
FOR rec_f IN c_facturen
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec_f.companycode||' --> '||rec_f.account||' ('||rec_f.soort||')';
|
||
v_volgnr := v_volgnr + 1;
|
||
|
||
v_errormsg := 'Sommatieregel aanmaken';
|
||
|
||
INSERT INTO fac_rapport
|
||
(fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel,
|
||
fac_rapport_soort)
|
||
VALUES
|
||
(p_applname,
|
||
v_volgnr,
|
||
'<tr>'||
|
||
'<td class="tekst">'||rec_f.docdate||'</td>'||
|
||
'<td class="tekst">'||rec_f.doctype||'</td>'||
|
||
'<td class="tekst">'||rec_f.companycode||'</td>'||
|
||
'<td class="tekst">'||rec_f.postingdate||'</td>'||
|
||
'<td class="tekst">'||rec_f.currency||'</td>'||
|
||
'<td class="tekst">'||rec_f.documentnr||'</td>'||
|
||
'<td class="tekst">'||rec_f.description||'</td>'||
|
||
'<td class="tekst">'||rec_f.referencenr||'</td>'||
|
||
'<td class="tekst">'||rec_f.postingkey||'</td>'||
|
||
'<td class="tekst">'||rec_f.account||'</td>'||
|
||
'<td class="num2dec">'||rec_f.amount||'</td>'||
|
||
'<td class="tekst">'||rec_f.taxcode||'</td>'||
|
||
'<td class="tekst">'||rec_f.network||'</td>'||
|
||
'<td class="tekst">'||rec_f.assignment||'</td>'||
|
||
'<td class="tekst">'||rec_f.costcenter||'</td>'||
|
||
'<td class="tekst">'||rec_f.lineitemtext||'</td>'||
|
||
'<td class="tekst">'||rec_f.tradingpartner||'</td>'||
|
||
'<td class="tekst">'||rec_f.ordernr||'</td>'||
|
||
'<td class="tekst">'||rec_f.partnerbanktype||'</td>'||
|
||
'<td class="tekst">'||rec_f.xref1||'</td>'||
|
||
'<td class="tekst">'||rec_f.xref2||'</td>'||
|
||
'<td class="tekst">'||rec_f.xref3||'</td>'||
|
||
'<td class="tekst">'||rec_f.companycodecross||'</td>'||
|
||
'<td class="tekst">'||rec_f.profitcenter||'</td></tr>',
|
||
1);
|
||
|
||
v_errorhint := 'Specificatieregels';
|
||
|
||
FOR rec IN c_regels (rec_f.companycode,
|
||
rec_f.account,
|
||
rec_f.soort)
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec_f.companycode||' --> '||rec_f.account||' ('||rec_f.soort||')'
|
||
||' - '||rec.lineitemtext;
|
||
v_volgnr := v_volgnr + 1;
|
||
|
||
v_errormsg := 'Specificatieregel aanmaken';
|
||
|
||
INSERT INTO fac_rapport
|
||
(fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel,
|
||
fac_rapport_soort)
|
||
VALUES
|
||
(p_applname,
|
||
v_volgnr,
|
||
'<tr><td/><td/><td/><td/><td/><td/><td/><td/>'||
|
||
'<td class="tekst">'||rec.postingkey||'</td>'||
|
||
'<td class="tekst">'||rec.account||'</td>'||
|
||
'<td class="num2dec">'||rec.amount||'</td>'||
|
||
'<td class="tekst">'||rec.taxcode||'</td>'||
|
||
'<td class="tekst">'||rec.network||'</td>'||
|
||
'<td class="tekst">'||rec.assignment||'</td>'||
|
||
'<td class="tekst">'||rec.costcenter||'</td>'||
|
||
'<td class="tekst">'||rec.lineitemtext||'</td>'||
|
||
'<td class="tekst">'||rec.tradingpartner||'</td>'||
|
||
'<td class="tekst">'||rec.ordernr||'</td>'||
|
||
'<td/><td/><td/><td/><td/></tr>',
|
||
1);
|
||
EXCEPTION
|
||
WHEN OTHERS THEN fac.writelog(p_applname, 'E',
|
||
v_errormsg||' ('||v_errorhint||')',
|
||
v_aanduiding);
|
||
END;
|
||
END LOOP;
|
||
|
||
v_errorhint := 'BTW-regels';
|
||
|
||
FOR rec_btw IN c_btw (rec_f.companycode,
|
||
rec_f.account,
|
||
rec_f.soort)
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := rec_f.companycode||' --> '||rec_f.account||' ('||rec_f.soort||')'
|
||
||' - '||rec_btw.lineitemtext;
|
||
v_volgnr := v_volgnr + 1;
|
||
|
||
v_errormsg := 'BTW-regel aanmaken';
|
||
|
||
INSERT INTO fac_rapport
|
||
(fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel,
|
||
fac_rapport_soort)
|
||
VALUES
|
||
(p_applname,
|
||
v_volgnr,
|
||
'<tr><td/><td/><td/><td/><td/><td/><td/><td/>'||
|
||
'<td class="tekst">'||rec_btw.postingkey||'</td>'||
|
||
'<td class="tekst">'||rec_btw.account||'</td>'||
|
||
'<td class="num2dec">'||rec_btw.amount||'</td>'||
|
||
'<td class="tekst">'||rec_btw.taxcode||'</td>'||
|
||
'<td class="tekst">'||rec_btw.network||'</td>'||
|
||
'<td class="tekst">'||rec_btw.assignment||'</td>'||
|
||
'<td class="tekst">'||rec_btw.costcenter||'</td>'||
|
||
'<td class="tekst">'||rec_btw.lineitemtext||'</td>'||
|
||
'<td/><td/><td/><td/><td/><td/><td/></tr>',
|
||
1);
|
||
EXCEPTION
|
||
WHEN OTHERS THEN fac.writelog(p_applname, 'E',
|
||
v_errormsg||' ('||v_errorhint||')',
|
||
v_aanduiding);
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog(p_applname, 'S',
|
||
'Verkoopfactuur '||rec_f.companycode||' --> '||rec_f.account||' ('||rec_f.soort||')'||' ge<67>xporteerd',
|
||
'<EFBFBD> '||rec_f.amount);
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS THEN fac.writelog(p_applname, 'E',
|
||
v_errormsg||' ('||v_errorhint||')',
|
||
v_aanduiding);
|
||
END;
|
||
END LOOP;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS THEN fac.writelog(p_applname, 'E',
|
||
v_errormsg||' ('||v_errorhint||')',
|
||
v_aanduiding);
|
||
END akza_select_sap_facturen;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW akza_v_export_sap_facturen
|
||
(RESULT, RESULT_ORDER)
|
||
AS
|
||
SELECT fac_rapport_regel, fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = 'SAP_FACTUREN';
|
||
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
------------------------------- RAPPORTAGES EN NOTIFICATIEJOBS -----------------------------------
|
||
--------------------------------------------------------------------------------------------------
|
||
|
||
--- LOGISTIEK ------------------------------------------------------------------
|
||
|
||
-- Toont o.a. soort en prijs van alle door-te-belasten en al doorbelaste handelingen in een bepaalde periode
|
||
-- mld_srtkenmerk PO-nummer 362
|
||
-- mld_srtkenmerk Pakketnummer 561
|
||
CREATE OR REPLACE VIEW akza_v_rap_logistiek_doorbel
|
||
AS
|
||
SELECT TO_CHAR (datum, 'yyyymmdd')||REPLACE(nummer,'L','') hide_f_sort,
|
||
DECODE (xmlnode,
|
||
'melding', '<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_melding.asp?urole=bo&'||'mld_key='
|
||
|| key || '")''>'
|
||
|| nummer
|
||
|| '</a>',
|
||
'opdracht', '<a class="details" onclick=''FcltMgr.openDetail("appl/mld/mld_opdr.asp?urole=bo&'||'opdr_key='
|
||
|| key || '")''>'
|
||
|| nummer
|
||
|| '</a>',
|
||
'reservering', '<a class="details" onclick=''FcltMgr.openDetail("appl/res/res_reservering.asp?urole=bo&'||'rsv_ruimte_key='
|
||
|| key || '")''>'
|
||
|| nummer
|
||
|| '</a>',
|
||
nummer)
|
||
html_nummer,
|
||
datum,
|
||
melding fclt_f_melding,
|
||
vakgroep fclt_f_vakgroep,
|
||
kostenplaats_nr||' '||kostenplaats_oms fclt_x_kostenplaats,
|
||
kostenplaats_oms||'<br/>'||kostenplaats_nr html_kostenplaats,
|
||
ordernr,
|
||
ponr.mld_kenmerkmelding_waarde po_nummer,
|
||
pakket.mld_kenmerkmelding_waarde pakketnummer,
|
||
melder aanvrager,
|
||
COALESCE (doorbelast_bedrag, totaal_kosten) kosten
|
||
FROM akza_v_logistiek_doorbel ld,
|
||
(SELECT km.* FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL
|
||
AND k.mld_srtkenmerk_key = 362) ponr,
|
||
(SELECT km.* FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL
|
||
AND k.mld_srtkenmerk_key = 561) pakket
|
||
WHERE ponr.mld_melding_key(+) = ld.key
|
||
AND pakket.mld_melding_key(+) = ld.key;
|
||
|
||
-- Doorbelaste handelingen per meldingsoort/opdrachttype
|
||
CREATE OR REPLACE PROCEDURE akza_rap_logistiek_samenv (
|
||
user_key IN NUMBER,
|
||
p_datum_van IN VARCHAR2, -- Let wel: formaat '16-01-2006'
|
||
p_datum_tot IN VARCHAR2,
|
||
p_cursor OUT SYS_REFCURSOR
|
||
)
|
||
AS
|
||
v_datum_van DATE;
|
||
v_datum_tot DATE;
|
||
BEGIN
|
||
v_datum_van := fac.safe_to_date (p_datum_van, 'dd-mm-yyyy');
|
||
v_datum_tot := fac.safe_to_date (p_datum_tot, 'dd-mm-yyyy');
|
||
|
||
OPEN p_cursor FOR
|
||
SELECT vakgroep,
|
||
melding,
|
||
COUNT (nummer) aantal_meldingen,
|
||
SUM (totaal_kosten) totaal_kosten
|
||
FROM akza_v_logistiek_doorbel
|
||
WHERE datum BETWEEN TO_DATE ('1-10-2012', 'DD-MM-YYYY')
|
||
AND SYSDATE
|
||
AND datum BETWEEN v_datum_van
|
||
AND v_datum_tot
|
||
GROUP BY melding, vakgroep
|
||
ORDER BY vakgroep, melding;
|
||
END akza_rap_logistiek_samenv;
|
||
/
|
||
|
||
-- Actueel overzicht van vaste kosten (flexkenmerken bij afdelingen)
|
||
-- usrdata:
|
||
-- Looprondes (p/maand) 2176
|
||
-- Dagblad bezorgen (p/maand) 2177
|
||
-- Opslag containers 2197
|
||
-- Kenmerken
|
||
-- Postrondes:
|
||
-- Ophaalplaats 1 1295
|
||
-- Ophaalplaats 2 1296
|
||
-- Ophaalplaats 3 1297
|
||
-- Dagbladen:
|
||
-- Bezorgplaats 1 1301
|
||
-- Dagblad 1 1299
|
||
-- Abonnee 1 1300
|
||
-- Bezorgplaats 2 1305
|
||
-- Dagblad 2 1304
|
||
-- Abonnee 2 1303
|
||
-- Bezorgplaats 3 1308
|
||
-- Dagblad 3 1307
|
||
-- Abonnee 3 1309
|
||
-- Containers:
|
||
-- Aantal containers 1321
|
||
CREATE OR REPLACE VIEW akza_v_rap_logistiek_vastkost
|
||
AS
|
||
SELECT prs_afdeling_omschrijving||oms hide_f_sort,
|
||
prs_afdeling_omschrijving fclt_x_afdeling,
|
||
'<a class="details" onclick=''FcltMgr.openDetail("appl/prs/prs_afdeling.asp?afd_niveau=2&'||'key='
|
||
|| prs_afdeling_key || '")''>'
|
||
|| htf.escape_sc(prs_afdeling_omschrijving)
|
||
|| '</a>' html_afdeling,
|
||
ruimte "ruimte/persoon",
|
||
oms,
|
||
prs_kostenplaats_nr||' '||prs_kostenplaats_omschrijving fclt_x_kostenplaats,
|
||
prs_kostenplaats_omschrijving||'<br/>'||prs_kostenplaats_nr html_kostenplaats,
|
||
aantal * fac_usrdata_prijs bedrag,
|
||
soort fclt_x_soort
|
||
FROM (
|
||
SELECT a.prs_afdeling_key,
|
||
a.prs_afdeling_omschrijving prs_afdeling_omschrijving,
|
||
a.prs_kostenplaats_key,
|
||
'Looprondes' soort,
|
||
'Postronde' oms,
|
||
ra.alg_ruimte_aanduiding ruimte,
|
||
1 aantal,
|
||
2176 fac_usrdata_key
|
||
FROM prs_afdeling a,
|
||
prs_kenmerklink kl,
|
||
alg_v_ruimte_gegevens ra
|
||
WHERE kl.prs_kenmerk_key IN (1295, 1296, 1297)
|
||
AND kl.prs_kenmerklink_verwijder IS NULL
|
||
AND kl.prs_link_key = a.prs_afdeling_key
|
||
AND ra.alg_ruimte_key = fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
||
UNION ALL
|
||
SELECT a.prs_afdeling_key,
|
||
a.prs_afdeling_omschrijving,
|
||
a.prs_kostenplaats_key,
|
||
'Dagbladen' soort,
|
||
dbl.prs_kenmerklink_waarde oms,
|
||
abo.prs_kenmerklink_waarde ruimte,
|
||
1 aantal,
|
||
2177 fac_usrdata_key
|
||
FROM prs_afdeling a,
|
||
prs_kenmerklink kl,
|
||
alg_v_ruimte_gegevens ra,
|
||
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1299
|
||
AND prs_kenmerklink_verwijder IS NULL) dbl,
|
||
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1300
|
||
AND prs_kenmerklink_verwijder IS NULL) abo
|
||
WHERE kl.prs_kenmerk_key = 1301
|
||
AND kl.prs_kenmerklink_verwijder IS NULL
|
||
AND kl.prs_link_key = a.prs_afdeling_key
|
||
AND ra.alg_ruimte_key = fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
||
AND dbl.prs_link_key(+) = a.prs_afdeling_key
|
||
AND abo.prs_link_key(+) = a.prs_afdeling_key
|
||
UNION ALL
|
||
SELECT a.prs_afdeling_key,
|
||
a.prs_afdeling_omschrijving,
|
||
a.prs_kostenplaats_key,
|
||
'Dagbladen' soort,
|
||
dbl.prs_kenmerklink_waarde oms,
|
||
abo.prs_kenmerklink_waarde ruimte,
|
||
1 aantal,
|
||
2177 fac_usrdata_key
|
||
FROM prs_afdeling a,
|
||
prs_kenmerklink kl,
|
||
alg_v_ruimte_gegevens ra,
|
||
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1304
|
||
AND prs_kenmerklink_verwijder IS NULL) dbl,
|
||
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1303
|
||
AND prs_kenmerklink_verwijder IS NULL) abo
|
||
WHERE kl.prs_kenmerk_key = 1305
|
||
AND kl.prs_kenmerklink_verwijder IS NULL
|
||
AND kl.prs_link_key = a.prs_afdeling_key
|
||
AND ra.alg_ruimte_key = fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
||
AND dbl.prs_link_key(+) = a.prs_afdeling_key
|
||
AND abo.prs_link_key(+) = a.prs_afdeling_key
|
||
UNION ALL
|
||
SELECT a.prs_afdeling_key,
|
||
a.prs_afdeling_omschrijving,
|
||
a.prs_kostenplaats_key,
|
||
'Dagbladen' soort,
|
||
dbl.prs_kenmerklink_waarde oms,
|
||
abo.prs_kenmerklink_waarde ruimte,
|
||
1 aantal,
|
||
2177 fac_usrdata_key
|
||
FROM prs_afdeling a,
|
||
prs_kenmerklink kl,
|
||
alg_v_ruimte_gegevens ra,
|
||
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1307
|
||
AND prs_kenmerklink_verwijder IS NULL) dbl,
|
||
(SELECT * FROM prs_kenmerklink WHERE prs_kenmerk_key = 1309
|
||
AND prs_kenmerklink_verwijder IS NULL) abo
|
||
WHERE kl.prs_kenmerk_key = 1308
|
||
AND kl.prs_kenmerklink_verwijder IS NULL
|
||
AND kl.prs_link_key = a.prs_afdeling_key
|
||
AND ra.alg_ruimte_key = fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
||
AND dbl.prs_link_key(+) = a.prs_afdeling_key
|
||
AND abo.prs_link_key(+) = a.prs_afdeling_key
|
||
UNION ALL
|
||
SELECT a.prs_afdeling_key,
|
||
a.prs_afdeling_omschrijving prs_afdeling_omschrijving,
|
||
a.prs_kostenplaats_key,
|
||
'Opslag containers' soort,
|
||
'Container ('
|
||
|| fac.safe_to_number(kl.prs_kenmerklink_waarde)
|
||
|| 'x)'
|
||
oms,
|
||
NULL ruimte,
|
||
fac.safe_to_number(kl.prs_kenmerklink_waarde) aantal,
|
||
2197 fac_usrdata_key
|
||
FROM prs_afdeling a,
|
||
prs_kenmerklink kl
|
||
WHERE kl.prs_kenmerk_key = 1321
|
||
AND kl.prs_kenmerklink_verwijder IS NULL
|
||
AND kl.prs_link_key = a.prs_afdeling_key) a,
|
||
fac_usrdata ud,
|
||
prs_kostenplaats k
|
||
WHERE ud.fac_usrdata_key = a.fac_usrdata_key
|
||
AND k.prs_kostenplaats_key = a.prs_kostenplaats_key;
|
||
|
||
--- RUIMTEGEGEVENS, PERSOONSGEGEVENS, INFORMATIEGIDS ---------------------------
|
||
|
||
-- AKZA12084: ruimtebeheerders inclusief afdeling als bron voor flexkenmerk bij ruimte (en van belang voor werkvergunning)
|
||
CREATE OR REPLACE VIEW akza_v_ruimtebeheerders
|
||
(prs_perslid_key, persoonafdeling)
|
||
AS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_naam || ' / ' || a.prs_afdeling_naam
|
||
FROM prs_perslid p, prs_afdeling a
|
||
WHERE p.prs_perslid_verwijder IS NULL
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
ORDER BY p.prs_perslid_naam;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_extraphone (fclt_f_groep,
|
||
fclt_f_omschrijving,
|
||
fclt_f_plaats,
|
||
fclt_f_bereiken,
|
||
nummer_email,
|
||
fclt_3d_locatie_key,
|
||
fclt_3d_gebouw_key
|
||
)
|
||
AS
|
||
SELECT ins_srtdeel_omschrijving, idd.ins_deel_omschrijving,
|
||
alg_plaatsaanduiding, ins_srtkenmerk_omschrijving,
|
||
ins_kenmerkdeel_waarde, alg_locatie_key, alg_gebouw_key
|
||
FROM INS_DEEL idd,
|
||
INS_KENMERKDEEL ikd,
|
||
INS_KENMERK ik,
|
||
INS_SRTKENMERK isk,
|
||
INS_SRTDEEL isd,
|
||
ins_v_alg_overzicht o
|
||
WHERE idd.ins_deel_verwijder IS NULL
|
||
AND idd.ins_srtdeel_key = isd.ins_srtdeel_key
|
||
AND idd.ins_deel_key = ikd.ins_deel_key
|
||
AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key
|
||
AND isk.ins_srtkenmerk_key = ik.ins_srtkenmerk_key
|
||
AND ins_kenmerkdeel_verwijder IS NULL
|
||
AND isk.ins_srtkenmerk_kenmerktype NOT IN ('L', 'Q', 'M', 'F')
|
||
AND idd.ins_discipline_key = 825 -- Additieve Bereikbaarheid
|
||
AND isk.ins_srtkenmerk_key IN (3082, 3083, 3084) -- Tel/Fax/Email
|
||
AND o.alg_ruimte_key = idd.ins_alg_ruimte_key
|
||
AND o.alg_onroerendgoed_type = idd.ins_alg_ruimte_type
|
||
ORDER BY idd.ins_deel_omschrijving, ins_kenmerk_volgnummer;
|
||
|
||
-- Ongeacht of een BHV-kenmerk is ingevuld
|
||
CREATE OR REPLACE VIEW akza_v_rap_bhv_all
|
||
AS
|
||
SELECT pf.prs_perslid_key hide_f_key,
|
||
pf.prs_perslid_naam_full fclt_f_naam,
|
||
p.prs_perslid_telefoonnr telefoon,
|
||
d.prs_afdeling_naam fclt_f_afdeling,
|
||
w.alg_gebouw_code fclt_f_gebouw,
|
||
w.alg_verdieping_code verdieping,
|
||
w.alg_ruimte_nr ruimte,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1166),
|
||
'Nooit') fclt_f_laatste_instructie_kb,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1165),
|
||
'Nooit') fclt_f_laatste_instructie_ehbo,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1168),
|
||
'Nooit') fclt_f_ehbo_tot,
|
||
NVL((SELECT fac_usrdata_omschr
|
||
FROM prs_kenmerklink kl, fac_usrdata
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1161
|
||
AND prs_kenmerklink_waarde = fac_usrdata_key),
|
||
'Onbekend') fclt_f_actief_ehbo,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1164),
|
||
'Nooit') fclt_f_laatste_instructie_aed,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1200),
|
||
'Nooit') fclt_f_aed_tot,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1180),
|
||
'Nooit') fclt_f_nibhv_aed_per,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1201),
|
||
'Nooit') fclt_f_nibhv_aed_tot,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1167),
|
||
'Nooit') fclt_f_laatste_instructie_ocp,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1202),
|
||
'Nooit') fclt_f_ocp_tot,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1203),
|
||
'Nooit') fclt_f_nibhv_ocp_per,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1204),
|
||
'Nooit') fclt_f_nibhv_ocp_tot,
|
||
NVL((SELECT kl.prs_kenmerklink_waarde
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1204),
|
||
'Nooit') fclt_f_laatste_instructie_evac,
|
||
NVL((SELECT fac_usrdata_omschr
|
||
FROM prs_kenmerklink kl, fac_usrdata
|
||
WHERE kl.prs_link_key = p.prs_perslid_key
|
||
AND kl.prs_kenmerk_key = 1160
|
||
AND prs_kenmerklink_waarde = fac_usrdata_key),
|
||
'Onbekend') fclt_f_actief_bhv
|
||
FROM prs_perslid p,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_v_werkplek_gegevens w,
|
||
prs_perslidwerkplek pw,
|
||
prs_afdeling d
|
||
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND w.prs_werkplek_key = pw.prs_werkplek_key
|
||
AND p.prs_perslid_key = pw.prs_perslid_key
|
||
AND prs_perslid_upper NOT LIKE '[%'
|
||
AND prs_perslid_upper NOT LIKE 'LEEG [%'
|
||
ORDER BY 1;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_rap_bhv
|
||
AS
|
||
SELECT *
|
||
FROM akza_v_rap_bhv_all
|
||
WHERE EXISTS (
|
||
SELECT *
|
||
FROM prs_kenmerklink kl
|
||
WHERE kl.prs_link_key = hide_f_key
|
||
AND kl.prs_kenmerk_key IN
|
||
-- Zie AKZA_V_RAP_BHV_ALL voor betekenis
|
||
(1166,
|
||
1165,
|
||
1168,
|
||
1161,
|
||
1164,
|
||
1200,
|
||
1180,
|
||
1201,
|
||
1167,
|
||
1202,
|
||
1203,
|
||
1204,
|
||
1205,
|
||
1160
|
||
))
|
||
ORDER BY 1;
|
||
|
||
-- Kentekenoverzicht (nu met flexvelden ipv persoonsgebonden objecten)
|
||
-- AKZA#30421: nu met fullnames en aanklikbare namen
|
||
CREATE OR REPLACE VIEW akza_v_rap_kentekens
|
||
AS
|
||
SELECT * FROM
|
||
(SELECT prs_perslid_naam_full||'1' hide_f_sort
|
||
,prs_perslid_naam_full fclt_x_naam
|
||
, '<a class="details" onclick=''FcltMgr.openDetail("'
|
||
|| 'appl/prs/prs_perslid.asp?key='||pf.prs_perslid_key
|
||
|| '")''>'
|
||
|| htf.escape_sc(prs_perslid_naam_full)
|
||
|| '</a>'
|
||
html_naam
|
||
,knt.prs_kenmerklink_waarde fclt_f_kenteken
|
||
,ud.fac_usrdata_omschr soort
|
||
,mrk.prs_kenmerklink_waarde merk
|
||
,typ.prs_kenmerklink_waarde type
|
||
,klr.prs_kenmerklink_waarde kleur
|
||
FROM prs_v_perslid_fullnames pf
|
||
,prs_v_aanwezigkenmerklink knt
|
||
,prs_v_aanwezigkenmerklink srt
|
||
,fac_usrdata ud
|
||
,prs_v_aanwezigkenmerklink mrk
|
||
,prs_v_aanwezigkenmerklink typ
|
||
,prs_v_aanwezigkenmerklink klr
|
||
WHERE knt.prs_link_key = pf.prs_perslid_key
|
||
AND knt.prs_kenmerk_key = 1260
|
||
AND srt.prs_link_key(+) = pf.prs_perslid_key
|
||
AND srt.prs_kenmerk_key(+) = 1280
|
||
AND srt.prs_kenmerklink_waarde = ud.fac_usrdata_key(+)
|
||
AND mrk.prs_link_key(+) = pf.prs_perslid_key
|
||
AND mrk.prs_kenmerk_key(+) = 1281
|
||
AND typ.prs_link_key(+) = pf.prs_perslid_key
|
||
AND typ.prs_kenmerk_key(+) = 1282
|
||
AND klr.prs_link_key(+) = pf.prs_perslid_key
|
||
AND klr.prs_kenmerk_key(+) = 1283)
|
||
UNION
|
||
(SELECT prs_perslid_naam_full||'2' hide_f_sort
|
||
,prs_perslid_naam_full fclt_x_naam
|
||
, '<a class="details" onclick=''FcltMgr.openDetail("'
|
||
|| 'appl/prs/prs_perslid.asp?key='||pf.prs_perslid_key
|
||
|| '")''>'
|
||
|| htf.escape_sc(prs_perslid_naam_full)
|
||
|| '</a>'
|
||
html_naam
|
||
,knt.prs_kenmerklink_waarde fclt_f_kenteken
|
||
,ud.fac_usrdata_omschr soort
|
||
,mrk.prs_kenmerklink_waarde merk
|
||
,typ.prs_kenmerklink_waarde type
|
||
,klr.prs_kenmerklink_waarde kleur
|
||
FROM prs_v_perslid_fullnames pf
|
||
,prs_v_aanwezigkenmerklink knt
|
||
,prs_v_aanwezigkenmerklink srt
|
||
,fac_usrdata ud
|
||
,prs_v_aanwezigkenmerklink mrk
|
||
,prs_v_aanwezigkenmerklink typ
|
||
,prs_v_aanwezigkenmerklink klr
|
||
WHERE knt.prs_link_key = pf.prs_perslid_key
|
||
AND knt.prs_kenmerk_key = 1284
|
||
AND srt.prs_link_key(+) = pf.prs_perslid_key
|
||
AND srt.prs_kenmerk_key(+) = 1285
|
||
AND srt.prs_kenmerklink_waarde = ud.fac_usrdata_key(+)
|
||
AND mrk.prs_link_key(+) = pf.prs_perslid_key
|
||
AND mrk.prs_kenmerk_key(+) = 1286
|
||
AND typ.prs_link_key(+) = pf.prs_perslid_key
|
||
AND typ.prs_kenmerk_key(+) = 1287
|
||
AND klr.prs_link_key(+) = pf.prs_perslid_key
|
||
AND klr.prs_kenmerk_key(+) = 1288)
|
||
UNION
|
||
(SELECT prs_perslid_naam_full||'3' hide_f_sort
|
||
,prs_perslid_naam_full fclt_x_naam
|
||
, '<a class="details" onclick=''FcltMgr.openDetail("'
|
||
|| 'appl/prs/prs_perslid.asp?key='||pf.prs_perslid_key
|
||
|| '")''>'
|
||
|| htf.escape_sc(prs_perslid_naam_full)
|
||
|| '</a>'
|
||
html_naam
|
||
,knt.prs_kenmerklink_waarde fclt_f_kenteken
|
||
,ud.fac_usrdata_omschr soort
|
||
,mrk.prs_kenmerklink_waarde merk
|
||
,typ.prs_kenmerklink_waarde type
|
||
,klr.prs_kenmerklink_waarde kleur
|
||
FROM prs_v_perslid_fullnames pf
|
||
,prs_v_aanwezigkenmerklink knt
|
||
,prs_v_aanwezigkenmerklink srt
|
||
,fac_usrdata ud
|
||
,prs_v_aanwezigkenmerklink mrk
|
||
,prs_v_aanwezigkenmerklink typ
|
||
,prs_v_aanwezigkenmerklink klr
|
||
WHERE knt.prs_link_key = pf.prs_perslid_key
|
||
AND knt.prs_kenmerk_key = 1289
|
||
AND srt.prs_link_key(+) = pf.prs_perslid_key
|
||
AND srt.prs_kenmerk_key(+) = 1290
|
||
AND srt.prs_kenmerklink_waarde = ud.fac_usrdata_key(+)
|
||
AND mrk.prs_link_key(+) = pf.prs_perslid_key
|
||
AND mrk.prs_kenmerk_key(+) = 1291
|
||
AND typ.prs_link_key(+) = pf.prs_perslid_key
|
||
AND typ.prs_kenmerk_key(+) = 1292
|
||
AND klr.prs_link_key(+) = pf.prs_perslid_key
|
||
AND klr.prs_kenmerk_key(+) = 1293)
|
||
ORDER BY hide_f_sort;
|
||
|
||
-- AKZA#30584: Rapportage ruimte- en gebouwbeheerders (delegates) voor eindgebruikers
|
||
-- alg_kenmerk 1160 Areadelegate
|
||
-- alg_kenmerk 1180 Reserve Area delegate
|
||
-- alg_kenmerk 1181 Reserve Building delegate
|
||
-- alg_kenmerk 1182 Supervisor
|
||
-- alg_kenmerk 1183 Building delegate
|
||
-- alg_kenmerk 1184 Evacuation
|
||
-- alg_kenmerk 1185 Reserve Area delegate (res)
|
||
-- alg_kenmerk 1200 Reserve Ontruimingsfuctionaris
|
||
CREATE OR REPLACE VIEW akza_v_rap_areadelegates
|
||
AS
|
||
SELECT al.alg_locatie_code||'-'||og.alg_gebouw_code||'-'||og.alg_verdieping_code||'-'||og.alg_ruimte_nr hide_f_sort,
|
||
al.alg_locatie_code fclt_f_locatie,
|
||
og.alg_gebouw_code fclt_f_gebouw,
|
||
og.alg_verdieping_code fclt_f_verdieping,
|
||
og.alg_ruimte_nr||' ('||og.alg_ruimte_omschrijving||')' fclt_f_ruimte,
|
||
areadel.prs_perslid_naam_full areagedelegeerde,
|
||
areares.prs_perslid_naam_full reserve_areagedelegeerde,
|
||
arearesres.prs_perslid_naam_full res_reserve_areagedelegeerde,
|
||
builddel.prs_perslid_naam_full gebouwgedelegeerde,
|
||
buildres.prs_perslid_naam_full reserve_gebouwgedelegeerde,
|
||
superv.prs_perslid_naam_full supervisor,
|
||
evac.prs_perslid_naam_full ontruimingsfunctionaris,
|
||
evacres.prs_perslid_naam_full res_ontruimingsfunctionaris
|
||
FROM alg_v_aanweziglocatie al,
|
||
alg_v_onroerendgoed_gegevens og,
|
||
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
||
pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full
|
||
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
|
||
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1160
|
||
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) areadel,
|
||
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
||
pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full
|
||
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
|
||
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1180
|
||
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) areares,
|
||
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
||
pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full
|
||
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
|
||
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1185
|
||
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) arearesres,
|
||
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
||
pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full
|
||
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
|
||
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1183
|
||
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) builddel,
|
||
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
||
pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full
|
||
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
|
||
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1181
|
||
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) buildres,
|
||
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
||
pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full
|
||
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
|
||
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1182
|
||
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) superv,
|
||
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
||
pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full
|
||
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
|
||
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1184
|
||
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) evac,
|
||
(SELECT ok.alg_onrgoed_key alg_ruimte_key,
|
||
pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full
|
||
FROM alg_onrgoedkenmerk ok, prs_v_perslid_fullnames pf
|
||
WHERE ok.alg_onrgoed_niveau = 'R' AND ok.alg_kenmerk_key = 1200
|
||
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
|
||
AND fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = pf.prs_perslid_key) evacres
|
||
WHERE og.alg_locatie_key = al.alg_locatie_key
|
||
AND og.alg_ruimte_key IS NOT NULL
|
||
AND areadel.alg_ruimte_key(+) = og.alg_ruimte_key
|
||
AND areares.alg_ruimte_key(+) = og.alg_ruimte_key
|
||
AND arearesres.alg_ruimte_key(+) = og.alg_ruimte_key
|
||
AND builddel.alg_ruimte_key(+) = og.alg_ruimte_key
|
||
AND buildres.alg_ruimte_key(+) = og.alg_ruimte_key
|
||
AND superv.alg_ruimte_key(+) = og.alg_ruimte_key
|
||
AND evac.alg_ruimte_key(+) = og.alg_ruimte_key
|
||
AND evacres.alg_ruimte_key(+) = og.alg_ruimte_key
|
||
AND ( areadel.alg_ruimte_key IS NOT NULL
|
||
OR areares.alg_ruimte_key IS NOT NULL
|
||
OR arearesres.alg_ruimte_key IS NOT NULL
|
||
OR builddel.alg_ruimte_key IS NOT NULL
|
||
OR buildres.alg_ruimte_key IS NOT NULL
|
||
OR superv.alg_ruimte_key IS NOT NULL
|
||
OR evac.alg_ruimte_key IS NOT NULL
|
||
OR evacres.alg_ruimte_key IS NOT NULL);
|
||
|
||
--- OBJECTBEHEER ---------------------------------------------------------------
|
||
|
||
-- AKZA#29494: Labels met QR-code voor objecten
|
||
CREATE OR REPLACE VIEW akza_v_ins_qrc
|
||
AS
|
||
SELECT i.ins_deel_omschrijving hide_f_sort,
|
||
b.fac_bookmark_naam fclt_f_bookmark,
|
||
i.ins_discipline_key fclt_3d_discipline_key,
|
||
l.alg_locatie_key fclt_3d_locatie_key,
|
||
l.alg_locatie_omschrijving fclt_f_locatie,
|
||
o.alg_gebouw_omschrijving fclt_f_gebouw,
|
||
o.alg_plaatsaanduiding plaats,
|
||
s.ins_srtdeel_omschrijving fclt_f_objectsoort,
|
||
i.ins_deel_omschrijving fclt_f_identificatie,
|
||
i.ins_deel_key,
|
||
(SELECT r.alg_ruimte_omschrijving
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_ruimte_key = i.ins_alg_ruimte_key)
|
||
soortruimte,
|
||
s.ins_srtdeel_code,
|
||
s.ins_srtdeel_key,
|
||
i.ins_alg_ruimte_type,
|
||
o.alg_gebouw_code,
|
||
o.alg_verdieping_code,
|
||
l.alg_district_key,
|
||
i.ins_alg_ruimte_key,
|
||
b.fac_bookmark_id hide_f_bookmark_id
|
||
FROM ins_deel i,
|
||
ins_v_alg_overzicht o,
|
||
ins_srtdeel s,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
fac_bookmark b
|
||
WHERE b.fac_bookmark_path IN ('appl/pda/ins_deel.asp',
|
||
'appl/ins/ins_deel.asp')
|
||
AND ins_deel_verwijder IS NULL
|
||
AND COALESCE(i.ins_deel_vervaldatum, SYSDATE+1) > SYSDATE
|
||
AND i.ins_deel_module = 'INS'
|
||
AND i.ins_deel_parent_key IS NULL
|
||
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
|
||
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
|
||
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND o.alg_locatie_key = i.ins_alg_locatie_key
|
||
AND i.ins_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND s.ins_srtdeel_key = i.ins_srtdeel_key
|
||
UNION ALL
|
||
SELECT i.ins_deel_omschrijving hide_f_sort,
|
||
b.fac_bookmark_naam fclt_f_bookmark,
|
||
i.ins_discipline_key fclt_3d_discipline_key,
|
||
l.alg_locatie_key fclt_3d_locatie_key,
|
||
l.alg_locatie_omschrijving fclt_f_locatie,
|
||
o.alg_gebouw_omschrijving fclt_f_gebouw,
|
||
o.alg_plaatsaanduiding plaats,
|
||
s.ins_srtdeel_omschrijving fclt_f_objectsoort,
|
||
i.ins_deel_omschrijving fclt_f_identificatie,
|
||
i.ins_deel_key,
|
||
(SELECT r.alg_ruimte_omschrijving
|
||
FROM alg_ruimte r
|
||
WHERE r.alg_ruimte_key = i.ins_alg_ruimte_key)
|
||
soortruimte,
|
||
s.ins_srtdeel_code,
|
||
s.ins_srtdeel_key,
|
||
i.ins_alg_ruimte_type,
|
||
o.alg_gebouw_code,
|
||
o.alg_verdieping_code,
|
||
l.alg_district_key,
|
||
i.ins_alg_ruimte_key,
|
||
b.fac_bookmark_id hide_f_bookmark_id
|
||
FROM ins_deel i,
|
||
ins_v_alg_overzicht o,
|
||
ins_srtdeel s,
|
||
ins_srtgroep g,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
fac_bookmark b,
|
||
mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si
|
||
WHERE b.fac_bookmark_path IN ('appl/pda/melding.asp',
|
||
'appl/mld/melding.asp')
|
||
-- AND b.fac_bookmark_query LIKE '%stdm_key='||sm.mld_stdmelding_key||'%'
|
||
AND (b.fac_bookmark_expire IS NULL OR b.fac_bookmark_expire > SYSDATE)
|
||
AND ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_module = 'INS'
|
||
AND i.ins_deel_parent_key IS NULL
|
||
AND s.ins_srtdeel_key = i.ins_srtdeel_key
|
||
AND g.ins_srtgroep_key = s.ins_srtgroep_key
|
||
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
|
||
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
|
||
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND o.alg_locatie_key = i.ins_alg_locatie_key
|
||
AND i.ins_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND si.ins_srtinstallatie_key = DECODE(si.ins_srtinstallatie_niveau,
|
||
'S', i.ins_srtdeel_key,
|
||
'G', s.ins_srtgroep_key,
|
||
'D', g.ins_discipline_key);
|
||
|
||
CREATE OR REPLACE VIEW akza_v_ins_qrc_single
|
||
AS
|
||
SELECT *
|
||
FROM akza_v_ins_qrc;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_ins_qrc_mld
|
||
AS
|
||
SELECT i.ins_deel_omschrijving hide_f_sort,
|
||
l.alg_locatie_code||' '||l.alg_locatie_omschrijving fclt_f_locatie,
|
||
o.alg_gebouw_omschrijving fclt_f_gebouw,
|
||
o.alg_plaatsaanduiding fclt_f_plaats,
|
||
d.ins_discipline_omschrijving fclt_f_discipline,
|
||
g.ins_srtgroep_omschrijving fclt_f_objectgroep,
|
||
s.ins_srtdeel_omschrijving fclt_f_objectsoort,
|
||
i.ins_deel_omschrijving fclt_f_identificatie,
|
||
d.ins_discipline_omschrijving||' / '||sm.mld_stdmelding_omschrijving fclt_f_melding,
|
||
i.ins_deel_key,
|
||
s.ins_srtdeel_key,
|
||
o.alg_gebouw_code,
|
||
o.alg_verdieping_code,
|
||
i.ins_discipline_key fclt_3d_discipline_key,
|
||
l.alg_locatie_key fclt_3d_locatie_key,
|
||
i.ins_alg_ruimte_type,
|
||
i.ins_alg_ruimte_key,
|
||
b.fac_bookmark_id hide_f_bookmark_id
|
||
FROM ins_deel i,
|
||
ins_v_alg_overzicht o,
|
||
ins_srtdeel s,
|
||
ins_srtgroep g,
|
||
ins_discipline d,
|
||
alg_locatie l,
|
||
fac_bookmark b,
|
||
mld_stdmelding sm,
|
||
mld_stdmelding_srtinst si
|
||
WHERE b.fac_bookmark_naam = 'QRC_MELDING'
|
||
AND (b.fac_bookmark_expire IS NULL OR b.fac_bookmark_expire > SYSDATE)
|
||
AND ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_module = 'INS'
|
||
AND i.ins_deel_parent_key IS NULL
|
||
AND s.ins_srtdeel_key = i.ins_srtdeel_key
|
||
AND g.ins_srtgroep_key = s.ins_srtgroep_key
|
||
AND d.ins_discipline_key = g.ins_discipline_key
|
||
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
|
||
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
|
||
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND o.alg_locatie_key = i.ins_alg_locatie_key
|
||
AND i.ins_alg_locatie_key = l.alg_locatie_key
|
||
AND sm.mld_stdmelding_key = si.mld_stdmelding_key
|
||
AND si.ins_srtinstallatie_key = DECODE(si.ins_srtinstallatie_niveau,
|
||
'S', i.ins_srtdeel_key,
|
||
'G', s.ins_srtgroep_key,
|
||
'D', g.ins_discipline_key);
|
||
|
||
CREATE OR REPLACE VIEW AKZA_V_NOTI_OBJBEH
|
||
(
|
||
METHODE,
|
||
TO_KEY,
|
||
TO_OMSCHR,
|
||
REF_KEY,
|
||
REF_OMSCHR,
|
||
KPN_KEY,
|
||
AANTAL,
|
||
BETREFT
|
||
)
|
||
AS
|
||
WITH taken
|
||
AS (/* Formatted on 24-5-2018 14:37:40 (QP5 v5.136.908.31019) */
|
||
SELECT fac.nextcyclusdatedeel (d.ins_deel_key, d.ins_srtcontrole_key, 1)
|
||
volgende_cyclus,
|
||
p.ins_deelsrtcontrole_plandatum datum_gepland,
|
||
COALESCE (
|
||
p.ins_deelsrtcontrole_plandatum,
|
||
fac.nextcyclusdatedeel (d.ins_deel_key, d.ins_srtcontrole_key, 1))
|
||
volgende_ctr,
|
||
d.*,
|
||
xcp.ins_srtcontroledl_xcp_periode
|
||
FROM (SELECT sc.ins_srtcontrole_key,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
sc.ins_srtcontrole_periode,
|
||
sd.ins_srtdeel_omschrijving,
|
||
a.prs_kostenplaats_key,
|
||
pfa.prs_perslid_key,
|
||
pfa.prs_perslid_naam_full,
|
||
ud.fac_usrdata_key,
|
||
ud.fac_usrdata_omschr
|
||
FROM ins_srtcontrole sc,
|
||
ins_discipline di,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_v_aanwezigsrtdeel sd,
|
||
ins_v_aanwezigdeel d,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_v_perslid_fullnames_all pfa,
|
||
(SELECT *
|
||
FROM ins_kenmerkdeel kd, ins_kenmerk k
|
||
WHERE kd.ins_kenmerkdeel_verwijder IS NULL
|
||
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = 3742) kd, -- Uitvoerder regime
|
||
fac_usrdata ud
|
||
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||
AND di.ins_discipline_key = sg.ins_discipline_key
|
||
AND COALESCE (d.ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE
|
||
AND p.prs_perslid_key = d.prs_perslid_key_beh
|
||
AND a.prs_afdeling_key(+) = p.prs_afdeling_key
|
||
AND pfa.prs_perslid_key = d.prs_perslid_key_beh
|
||
AND kd.ins_deel_key = d.ins_deel_key
|
||
AND kd.ins_kenmerkdeel_waarde != '4321' -- 'N.v.t.'
|
||
AND ud.fac_usrdata_key =
|
||
fac.safe_to_number (kd.ins_kenmerkdeel_waarde)
|
||
AND sc.ins_srtinstallatie_key =
|
||
DECODE (ins_srtcontrole_niveau,
|
||
'D', di.ins_discipline_key,
|
||
'G', sg.ins_srtgroep_key,
|
||
'S', sd.ins_srtdeel_key)) d,
|
||
ins_srtcontroledl_xcp xcp,
|
||
(SELECT *
|
||
FROM ins_v_udr_deelinspect ins
|
||
WHERE deelsrtcontrole_status = 'Gepland'
|
||
AND ins_deelsrtcontrole_plandatum IS NOT NULL) p
|
||
WHERE xcp.ins_deel_key = d.ins_deel_key
|
||
AND xcp.ins_srtcontrole_key = d.ins_srtcontrole_key
|
||
AND p.deel_key(+) = d.ins_deel_key
|
||
AND p.ins_srtcontrole_key(+) = d.ins_srtcontrole_key
|
||
AND COALESCE (xcp.ins_srtcontroledl_xcp_periode,
|
||
d.ins_srtcontrole_periode) > 0
|
||
-- De eerste paar dagen van volgende maand ook vast meepakken, dat scheelt verrassingen
|
||
AND COALESCE (
|
||
p.ins_deelsrtcontrole_plandatum,
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
d.ins_srtcontrole_key,
|
||
1)) < ADD_MONTHS (SYSDATE, 1) + 3)
|
||
SELECT 'mail' methode,
|
||
prs_perslid_key to_key,
|
||
prs_perslid_naam_full to_omschr,
|
||
NULL ref_key,
|
||
NULL ref_omschr,
|
||
NULL kpn_key,
|
||
COUNT ( * ) aantal,
|
||
LISTAGG (ins_deel_omschrijving, ', ')
|
||
WITHIN GROUP (ORDER BY ins_deel_omschrijving)
|
||
AS betreft
|
||
FROM taken
|
||
WHERE fac_usrdata_key = 4318 -- Objectbeheerder
|
||
GROUP BY prs_perslid_key, prs_perslid_naam_full
|
||
UNION ALL
|
||
SELECT 'melding' methode,
|
||
fac_usrdata_key to_key,
|
||
fac_usrdata_omschr to_omschr,
|
||
prs_perslid_key ref_key,
|
||
prs_perslid_naam_full ref_omschr,
|
||
prs_kostenplaats_key kpn_key,
|
||
COUNT ( * ) aantal,
|
||
LISTAGG (ins_deel_omschrijving, ', ')
|
||
WITHIN GROUP (ORDER BY ins_deel_omschrijving)
|
||
AS betreft
|
||
FROM taken
|
||
WHERE fac_usrdata_key IN (4319, 4320, 4347) -- TS-EIA / TS-WTB / LDW
|
||
GROUP BY fac_usrdata_key,
|
||
fac_usrdata_omschr,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full
|
||
ORDER BY methode, to_omschr, ref_omschr;
|
||
|
||
CREATE OR REPLACE FORCE VIEW AKZA_V_TAKEN_STOPLICHT
|
||
(
|
||
ALG_LOCATIE_CODE,
|
||
ALG_GEBOUW_CODE,
|
||
ALG_GEBOUW_KEY,
|
||
ALG_VERDIEPING_CODE,
|
||
ALG_VERDIEPING_KEY,
|
||
ALG_RUIMTE_NR,
|
||
ALG_RUIMTE_KEY,
|
||
STATUS
|
||
)
|
||
AS
|
||
WITH taken
|
||
AS (SELECT d.*,
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
d.ins_srtcontrole_key,
|
||
1)
|
||
datum,
|
||
ins_deelsrtcontrole_plandatum,
|
||
CASE
|
||
WHEN ins_deelsrtcontrole_plandatum IS NOT NULL
|
||
THEN
|
||
ins_deelsrtcontrole_plandatum
|
||
ELSE
|
||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||
d.ins_srtcontrole_key,
|
||
1)
|
||
END
|
||
AS next_date
|
||
FROM (SELECT d.ins_alg_ruimte_key,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
sd.ins_srtdeel_omschrijving,
|
||
sc.ins_srtcontrole_key,
|
||
sc.ins_srtcontrole_periode
|
||
FROM ins_srtcontrole sc,
|
||
ins_discipline di,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_v_aanwezigsrtdeel sd,
|
||
ins_v_aanwezigdeel d,
|
||
prs_perslid p
|
||
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||
AND di.ins_discipline_key =
|
||
sg.ins_discipline_key
|
||
AND COALESCE (d.ins_deel_vervaldatum,
|
||
SYSDATE + 1) > SYSDATE
|
||
AND p.prs_perslid_key = d.prs_perslid_key_beh
|
||
AND d.ins_alg_ruimte_type = 'R'
|
||
AND sc.ins_srtinstallatie_key =
|
||
DECODE (ins_srtcontrole_niveau,
|
||
'D', di.ins_discipline_key,
|
||
'G', sg.ins_srtgroep_key,
|
||
'S', sd.ins_srtdeel_key)) d
|
||
LEFT OUTER JOIN ins_srtcontroledl_xcp xcp
|
||
ON xcp.ins_deel_key = d.ins_deel_key
|
||
AND xcp.ins_srtcontrole_key =
|
||
d.ins_srtcontrole_key
|
||
LEFT OUTER JOIN (SELECT d.ins_alg_ruimte_key,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
sd.ins_srtdeel_omschrijving,
|
||
c.ins_srtcontrole_key,
|
||
sc.ins_srtcontrole_periode,
|
||
c.ins_deelsrtcontrole_plandatum
|
||
FROM ins_deelsrtcontrole c,
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtcontrole sc
|
||
WHERE c.ins_deelsrtcontrole_plandatum IS NOT NULL
|
||
AND c.ins_deelsrtcontrole_datum IS NULL
|
||
AND d.ins_deel_key =
|
||
c.ins_deel_key
|
||
AND sd.ins_srtdeel_key =
|
||
d.ins_srtdeel_key
|
||
AND sc.ins_srtcontrole_key =
|
||
c.ins_srtcontrole_key)
|
||
respijt
|
||
ON respijt.ins_deel_key = d.ins_deel_key
|
||
AND respijt.ins_srtcontrole_key =
|
||
d.ins_srtcontrole_key
|
||
WHERE COALESCE (xcp.ins_srtcontroledl_xcp_periode,
|
||
d.ins_srtcontrole_periode) > 0)
|
||
SELECT r."ALG_LOCATIE_CODE",
|
||
r."ALG_GEBOUW_CODE",
|
||
r."ALG_GEBOUW_KEY",
|
||
r."ALG_VERDIEPING_CODE",
|
||
r."ALG_VERDIEPING_KEY",
|
||
r."ALG_RUIMTE_NR",
|
||
r."ALG_RUIMTE_KEY",
|
||
t.status
|
||
FROM (SELECT l.alg_locatie_code,
|
||
g.alg_gebouw_code,
|
||
g.alg_gebouw_key,
|
||
v.alg_verdieping_code,
|
||
v.alg_verdieping_key,
|
||
r.alg_ruimte_nr,
|
||
r.alg_ruimte_key
|
||
FROM alg_v_aanwezigruimte r,
|
||
alg_v_aanwezigverdieping v,
|
||
alg_v_aanweziggebouw g,
|
||
alg_v_aanweziglocatie l
|
||
WHERE v.alg_verdieping_key = r.alg_verdieping_key
|
||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||
AND l.alg_locatie_key = g.alg_locatie_key) r
|
||
LEFT OUTER JOIN
|
||
( SELECT ins_alg_ruimte_key alg_ruimte_key,
|
||
CASE
|
||
WHEN MIN(next_date) < SYSDATE THEN 1 -- 'rood'
|
||
WHEN MIN (next_date) < ADD_MONTHS (SYSDATE, 1) THEN 2 -- 'geel'
|
||
ELSE 3 -- 'groen'
|
||
END
|
||
status
|
||
FROM taken
|
||
GROUP BY ins_alg_ruimte_key) t
|
||
ON r.alg_ruimte_key = t.alg_ruimte_key;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_cad_taken_stoplicht
|
||
AS
|
||
SELECT alg_ruimte_key,
|
||
DECODE(status,
|
||
1, 'rood',
|
||
2, 'geel',
|
||
3, 'groen') waarde
|
||
FROM akza_v_taken_stoplicht;
|
||
|
||
--- SLEUTELBEHEER --------------------------------------------------------------
|
||
|
||
CREATE OR REPLACE VIEW akza_v_rap_sleutelplan
|
||
(
|
||
EXTRA_KEY,
|
||
FCLT_F_BEZITTER,
|
||
PERSONEELSNR,
|
||
AFDELING,
|
||
TELEFOONNR,
|
||
FCLT_F_SLUITPLAN,
|
||
SOORT,
|
||
SLEUTELNR,
|
||
DATUM,
|
||
OPMERKING
|
||
)
|
||
AS
|
||
SELECT p1.prs_perslid_key,
|
||
p.prs_perslid_naam_full,
|
||
p1.prs_perslid_nr,
|
||
a.prs_afdeling_naam1,
|
||
p1.prs_perslid_telefoonnr,
|
||
ins_srtdeel_code Sluitplan,
|
||
s.ins_srtdeel_omschrijving Soort,
|
||
dl.ins_deel_omschrijving Sleutelnr,
|
||
TO_CHAR (
|
||
(SELECT MAX (tr.fac_tracking_datum)
|
||
FROM fac_tracking tr, fac_srtnotificatie str
|
||
WHERE tr.fac_srtnotificatie_key =
|
||
str.fac_srtnotificatie_key
|
||
AND (str.fac_srtnotificatie_xmlnode IN ('deel'))
|
||
AND FAC_SRTNOTIFICATIE_CODE = 'INSOUT'
|
||
AND dl.ins_deel_key = tr.fac_tracking_refkey),
|
||
'DD-MM-YYYY'
|
||
)
|
||
Datum,
|
||
pa.alg_plaatsaanduiding
|
||
|| ' ('
|
||
|| r.alg_ruimte_omschrijving
|
||
|| ')'
|
||
Opmerking
|
||
FROM ins_v_aanwezigdeel dl,
|
||
ins_v_aanwezigsrtdeel s,
|
||
prs_v_perslid_fullnames_all p,
|
||
prs_v_aanwezigperslid p1,
|
||
alg_ruimte r,
|
||
ins_v_alg_overzicht pa,
|
||
prs_v_afdeling a
|
||
WHERE s.ins_srtdeel_key = dl.ins_srtdeel_key
|
||
AND s.ins_srtgroep_key = 925
|
||
AND dl.ins_alg_ruimte_type_org = 'R'
|
||
AND dl.ins_alg_ruimte_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = p1.prs_perslid_key
|
||
AND dl.ins_alg_ruimte_key_org IS NOT NULL
|
||
AND dl.ins_alg_ruimte_key_org = r.alg_ruimte_key
|
||
AND r.alg_ruimte_key = pa.alg_onroerendgoed_keys
|
||
AND a.prs_afdeling_key = p1.prs_afdeling_key
|
||
ORDER BY prs_perslid_naam_full, sluitplan;
|
||
|
||
CREATE OR REPLACE VIEW akza_v_noti_sleutelplan
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT 'CUST01',
|
||
NULL,
|
||
fac.safe_to_number (prs_perslid_key_voor),
|
||
'Overzicht sleutels',
|
||
(SELECT fac_usrrap_key
|
||
FROM fac_usrrap
|
||
WHERE fac_usrrap_omschrijving = 'AKZA_V_RAP_SLEUTELPLAN'),
|
||
fac.safe_to_number (prs_perslid_key_voor)
|
||
FROM mld_melding,
|
||
fac_tracking tr,
|
||
fac_srtnotificatie str
|
||
WHERE mld_stdmelding_key = 1061
|
||
AND mld_melding_status IN (5, 6)
|
||
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
|
||
AND ( (tr.fac_tracking_refkey = mld_melding_key
|
||
AND str.fac_srtnotificatie_xmlnode IN ('melding')))
|
||
AND fac_srtnotificatie_code = 'MLDAFM'
|
||
AND tr.fac_tracking_datum >
|
||
(SELECT fac_notificatie_job_nextrun
|
||
- fac_notificatie_job_interval / 24
|
||
FROM fac_notificatie_job
|
||
WHERE fac_notificatie_job_view = 'AKZA_V_NOTI_SLEUTELPLAN');
|
||
|
||
-- AKZA#30566 notificatie tbv einde tijdelijke badge
|
||
CREATE OR REPLACE VIEW AKZA_V_NOTI_MLD_EINDTMPBADGE
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT 'CUST03',
|
||
NULL,
|
||
m.prs_perslid_key,
|
||
'Melding einde tijdelijke badge (' || m.mld_melding_key || ')',
|
||
m.mld_melding_key,
|
||
NULL
|
||
FROM mld_kenmerkmelding km, mld_melding m
|
||
WHERE mld_kenmerk_key = 305
|
||
AND mld_kenmerkmelding_verwijder IS NULL
|
||
AND mld_kenmerkmelding_waarde IS NOT NULL
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
AND fac.safe_to_date (km.mld_kenmerkmelding_waarde, 'DD-MM-YYYY') =
|
||
TRUNC (SYSDATE + 7);
|
||
|
||
--- EXPORTS --------------------------------------------------------------------
|
||
|
||
-- FACILITOR beoordeelt maandelijks welke taken in de komende periode moeten worden uitgevoerd,
|
||
-- of al uitgevoerd hadden moeten zijn. De beheerders van de objecten van deze taken worden
|
||
-- hiervan op de hoogte gesteld.
|
||
-- * Is de beheerder tevens de eigenaar (owner), dan krijgt deze hierover een e-mail, met een
|
||
-- link naar een overzicht van taken op zijn objecten
|
||
-- * Ligt het beheer bij TS (EIA of WTB), dan wordt per objectbeheerder een melding aangemaakt,
|
||
-- die vanzelf in de actielijst van de juiste backoffice terecht komen. Melder = objectbeheerder
|
||
-- (plus kostenplaats).
|
||
-- NB: een owner ontvangt maximaal <20><>n e-mail per maand; men ontvangt niet over ieder object
|
||
-- een e-mail en er wordt alleen een e-mail verzonden als er in de komende periode taken op
|
||
-- objecten van de owner uitgevoerd moeten worden (of taken te laat zijn).
|
||
CREATE OR REPLACE PROCEDURE akza_export_task_monthly(p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2,
|
||
p_filedir IN VARCHAR2,
|
||
p_filename IN VARCHAR2)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2(200);
|
||
v_errorhint VARCHAR2(100);
|
||
|
||
v_aanduiding VARCHAR2(100);
|
||
v_melding_key NUMBER(10);
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT * FROM akza_v_noti_objbeh;
|
||
|
||
CURSOR noti_clod
|
||
IS
|
||
SELECT prs_perslid_key, prs_perslid_email
|
||
FROM prs_perslid p
|
||
WHERE prs_perslid_verwijder IS NULL
|
||
AND UPPER (p.prs_perslid_email) IN
|
||
('ANDRE.MIDDELBOS@AKZONOBEL.COM',
|
||
'ASTRID.KRAMER@AKZONOBEL.COM',
|
||
'HERMAN.HERBERS@AKZONOBEL.COM',
|
||
'BERT.EMMING@AKZONOBEL.COM',
|
||
'THEO.VONK@AKZONOBEL.COM');
|
||
|
||
BEGIN
|
||
v_errorhint := 'init';
|
||
|
||
DELETE imp_log WHERE imp_log_applicatie = p_applname;
|
||
|
||
FOR rec IN noti_clod
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Add notification';
|
||
|
||
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
||
fac_notificatie_status,
|
||
prs_perslid_key_receiver,
|
||
fac_notificatie_receiver_email,
|
||
fac_notificatie_oms,
|
||
fac_notificatie_refkey,
|
||
prs_perslid_key_sender,
|
||
fac_notificatie_prioriteit,
|
||
fac_notificatie_lang)
|
||
SELECT fac_srtnotificatie_key,
|
||
2,
|
||
rec.prs_perslid_key,
|
||
rec.prs_perslid_email,
|
||
'Informatie cLODs',
|
||
(SELECT fac_usrrap_key
|
||
FROM fac_usrrap
|
||
WHERE UPPER (fac_usrrap_view_name) =
|
||
'AKZA_V_RAP_CTR_LOD')
|
||
refkey, ---- refkey: is het rapport
|
||
7520, --- dit is Facilitor
|
||
2,
|
||
'NL'
|
||
FROM fac_srtnotificatie sn
|
||
WHERE sn.fac_srtnotificatie_code = 'CUST07';
|
||
|
||
fac.writelog (
|
||
p_applname,
|
||
'I',
|
||
'Notificatie cLOD naar Andre Middelbos, Astrid Kramer, Herman herbers, Bert Emming, Theo Vonk',
|
||
'');
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
fac.writelog (
|
||
p_applname,
|
||
'E',
|
||
'Error '
|
||
|| v_aanduiding
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes,
|
||
v_errorhint);
|
||
END;
|
||
END LOOP;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
IF (rec.methode = 'mail')
|
||
THEN
|
||
v_aanduiding := rec.ref_omschr || ' ('||rec.methode||') ';
|
||
ELSE
|
||
v_aanduiding := rec.to_omschr||'/'||rec.ref_omschr || ' ('||rec.methode||') ';
|
||
END IF;
|
||
|
||
IF (rec.methode = 'mail')
|
||
THEN
|
||
v_errorhint := 'Add mail';
|
||
|
||
INSERT INTO fac_notificatie (
|
||
fac_srtnotificatie_key,
|
||
fac_notificatie_status,
|
||
prs_perslid_key_receiver,
|
||
fac_notificatie_receiver_email,
|
||
fac_notificatie_oms,
|
||
fac_notificatie_refkey,
|
||
prs_perslid_key_sender,
|
||
fac_notificatie_prioriteit,
|
||
fac_notificatie_lang)
|
||
SELECT fac_srtnotificatie_key,
|
||
2,
|
||
rec.to_key,
|
||
prs_perslid_email,
|
||
rec.aantal||' uit te voeren taken deze maand',
|
||
rec.to_key,
|
||
7520,
|
||
2,
|
||
'NL'
|
||
FROM fac_srtnotificatie,
|
||
prs_perslid
|
||
WHERE fac_srtnotificatie_code = 'CUST05'
|
||
AND prs_perslid_key = rec.to_key;
|
||
|
||
fac.writelog (p_applname, 'I',
|
||
'Mail naar '||rec.to_omschr,
|
||
rec.aantal||' objecten');
|
||
ELSE
|
||
v_errorhint := 'Add melding';
|
||
|
||
INSERT INTO mld_melding (
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_kosten_klant,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
prs_kostenplaats_key,
|
||
mld_stdmelding_key,
|
||
mld_alg_locatie_key,
|
||
mld_melding_datum,
|
||
mld_meldbron_key,
|
||
mld_melding_status,
|
||
mld_melding_module,
|
||
mld_melding_spoed)
|
||
VALUES (
|
||
'Taken voor '||rec.ref_omschr,
|
||
rec.aantal||' uit te voeren taken deze maand voor objectbeheerder '||rec.ref_omschr
|
||
||CHR(13)||CHR(10)||'Betreft object(en): '||rec.betreft,
|
||
1,
|
||
rec.ref_key,
|
||
rec.ref_key,
|
||
rec.kpn_key,
|
||
DECODE(rec.to_key,
|
||
4320, 1481, -- EIA / Uitvoering regime
|
||
4319, 1482, -- WTB / Uitvoering regime
|
||
4347, 1581), -- LDW/ Uitvoering regime
|
||
121, -- DEV
|
||
SYSDATE,
|
||
45, -- System
|
||
NULL, -- Nieuw
|
||
'MLD',
|
||
3)
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
v_errorhint := 'Set status';
|
||
mld.setmeldingstatus (v_melding_key, 2, 7520);
|
||
|
||
fac.writelog (p_applname, 'I',
|
||
'Melding voor '||rec.to_omschr||', namens '||rec.ref_omschr,
|
||
rec.aantal||' objecten');
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
fac.writelog (p_applname, 'E',
|
||
'Error ' || v_aanduiding || oracle_err_num || '/' || oracle_err_mes,
|
||
v_errorhint);
|
||
END;
|
||
END LOOP;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
fac.writelog (p_applname, 'E',
|
||
'Error ' || oracle_err_num || '/' || oracle_err_mes,
|
||
v_errorhint);
|
||
END akza_export_task_monthly;
|
||
/
|
||
|
||
-- Rapport om te check of alle kostenplaats- en companygegevens volledig zijn ingevuld.
|
||
CREATE OR REPLACE VIEW akza_v_rap_kpn_check
|
||
AS
|
||
SELECT DISTINCT k.prs_kostenplaats_nr||'-'||k.debiteurnr hide_f_sort,
|
||
k.fclt_kostenplaats_nr fclt_f_kostenplaats_nr,
|
||
k.prs_kostenplaats_omschrijving fclt_x_kostenplaats_naam,
|
||
'<a class="details" onclick=''FcltMgr.openDetail("'
|
||
|| 'appl/prs/kpn_kpn.asp?mode=viewUpdate&'||'key='||k.prs_kostenplaats_key
|
||
|| '")''>'
|
||
|| htf.escape_sc(k.prs_kostenplaats_omschrijving)
|
||
|| '</a>'
|
||
html_kostenplaats_naam,
|
||
k.debiteurnr fclt_f_debiteurnr,
|
||
'<a class="details" onclick=''FcltMgr.openDetail("'
|
||
|| 'appl/prs/kpn_kpngroep.asp?mode=viewUpdate&'||'key='||k.prs_kostenplaatsgrp_key
|
||
|| '")''>'
|
||
|| htf.escape_sc(k.prs_kostenplaatsgrp_oms)
|
||
|| '</a>'
|
||
html_kostenplaatsgroep,
|
||
ac.companycode fclt_f_companycode,
|
||
'<a class="details" onclick=''FcltMgr.openDetail("'
|
||
|| 'appl/prs/prs_show_afdeling.asp?afd_niveau=1&'||'afd_key='||ac.company_key
|
||
|| '")''>'
|
||
|| htf.escape_sc(ac.company_oms)
|
||
|| '</a>'
|
||
html_company_omschrijving,
|
||
DECODE( ac.companycode,
|
||
NULL, 'Nee',
|
||
'Ja') fclt_f_ok
|
||
FROM akza_v_kostenplaats k,
|
||
(SELECT * FROM prs_kenmerklink
|
||
WHERE prs_kenmerk_key = 1380
|
||
AND prs_kenmerklink_verwijder IS NULL) kl,
|
||
akza_v_afdelingcompany ac
|
||
WHERE k.prs_kostenplaats_verwijder IS NULL
|
||
AND kl.prs_kenmerklink_waarde(+) = k.debiteurnr
|
||
AND ac.prs_afdeling_key(+) = kl.prs_link_key;
|
||
|
||
-- AKZA#37566 Rapport met ruimte gegevens.
|
||
create or replace view akza_v_rap_ruimte_gegevens
|
||
(
|
||
alg_locatie_omschrijving,
|
||
alg_locatie_code,
|
||
alg_gebouw_omschrijving,
|
||
alg_verdieping_omschrijving,
|
||
alg_verdieping_volgnr,
|
||
alg_verdieping_code,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_srtruimte_omschrijving,
|
||
alg_ruimte_vloer_omschrijving,
|
||
alg_ruimte_bruto_vloeropp,
|
||
alg_ruimte_opp_gevelglas,
|
||
alg_ruimte_opp_separatieglas,
|
||
alg_ruimte_opp_gevelbekleding,
|
||
alg_ruimte_aanduiding,
|
||
alg_ruimte_omtrek,
|
||
alg_ruimte_inhoud,
|
||
alg_ruimte_getekend,
|
||
alg_ruimte_opmerking,
|
||
alg_ruimte_opp_alt1,
|
||
alg_ruimte_opp_alt2
|
||
)
|
||
as
|
||
select alg_locatie_omschrijving,
|
||
alg_locatie_code,
|
||
alg_gebouw_omschrijving,
|
||
alg_verdieping_omschrijving,
|
||
alg_verdieping_volgnr,
|
||
alg_verdieping_code,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_srtruimte_omschrijving,
|
||
alg_ruimte_vloer_omschrijving,
|
||
alg_ruimte_bruto_vloeropp,
|
||
alg_ruimte_opp_gevelglas,
|
||
alg_ruimte_opp_separatieglas,
|
||
alg_ruimte_opp_gevelbekleding,
|
||
alg_ruimte_aanduiding,
|
||
alg_ruimte_omtrek,
|
||
alg_ruimte_inhoud,
|
||
alg_ruimte_getekend,
|
||
alg_ruimte_opmerking,
|
||
alg_ruimte_opp_alt1,
|
||
alg_ruimte_opp_alt2
|
||
from alg_v_ruimte_gegevens;
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
------------------------------- IMPORTS ----------------------------------------------------------
|
||
--------------------------------------------------------------------------------------------------
|
||
|
||
--- RUYS -----------------------------------------------------------------------
|
||
|
||
-- Maandelijkse import voor kosten van postale diensten, geadministreerd in Ruys.
|
||
-- Data mag alleen verwerkt worden, als het importbestand volledig correct is (qua structuur in ieder geval)
|
||
-- Daarom:
|
||
-- * Als een foutieve regel wordt gevonden, worden opvolgende regels niet meer ingelezen
|
||
-- * Als een of meer foutieve regels gevonden zijn, wordt de importtabel weer geleegd, zodat de
|
||
-- update-routine effectief niets doet.
|
||
CREATE OR REPLACE PROCEDURE akza_import_ruys (
|
||
p_import_key IN NUMBER
|
||
)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
c_max_errors NUMBER := 100;
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_count_tot NUMBER (10);
|
||
v_count_error NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_count NUMBER;
|
||
-- De importvelden:
|
||
|
||
v_kpn VARCHAR2 (256);
|
||
v_kpn_grp VARCHAR2 (256);
|
||
v_bedrag VARCHAR2 (256);
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
fac.imp_writelog (p_import_key, 'S',
|
||
'Start inlezen importbestand in importtabel',
|
||
TO_CHAR(SYSDATE, 'DD-MM-YYYY HH24:MI') );
|
||
|
||
DELETE FROM akza_imp_ruys;
|
||
|
||
-- We gaan uit van een geldig bestand, mogelijk verandert dat onderweg
|
||
header_is_valid := 0;
|
||
v_ongeldig := 0;
|
||
v_count_tot := 0;
|
||
v_count_error := 0;
|
||
v_count_import := 0;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_aanduiding := '';
|
||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_kpn);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_kpn_grp);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_bedrag);
|
||
|
||
v_aanduiding := '[' || v_kpn || '(' || v_kpn_grp || '): ' || v_bedrag || '] ';
|
||
|
||
-- 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.
|
||
-- NB: doordat deze import een stylesheet gebruikt, zullen deze kolommen altijd kloppen,
|
||
-- ook al wordt een verkeerd bestand ingelezen (mits de stylesheet klopt)
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER(v_kpn) = 'KP_ZOEKNUMMER'
|
||
AND UPPER(v_kpn_grp) = 'DEB_NUMMER'
|
||
AND UPPER(v_bedrag) = 'TOTALE_PRIJS'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Controleer alle veldwaarden
|
||
v_errorhint := 'Ongeldige kostenplaatscode';
|
||
v_kpn := TRIM(v_kpn);
|
||
|
||
IF (v_kpn IS NOT NULL)
|
||
THEN
|
||
IF LENGTH (v_kpn) > 10
|
||
THEN
|
||
v_ongeldig := 1;
|
||
v_count_error := v_count_error + 1;
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Kostenplaatscode te lang',
|
||
'Er worden geen regels meer in de importtabel geplaatst.' );
|
||
END IF;
|
||
ELSE
|
||
v_ongeldig := 1;
|
||
v_count_error := v_count_error + 1;
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Kostenplaatscode ontbreekt',
|
||
'Er worden geen regels meer in de importtabel geplaatst.' );
|
||
END IF;
|
||
v_errorhint := 'Ongeldige kostenplaatsgroep';
|
||
v_kpn_grp := TRIM(v_kpn_grp);
|
||
|
||
IF (v_kpn_grp IS NOT NULL)
|
||
THEN
|
||
IF LENGTH (v_kpn_grp) > 10
|
||
THEN
|
||
v_ongeldig := 1;
|
||
v_count_error := v_count_error + 1;
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Kostenplaatsgroep te lang',
|
||
'Er worden geen regels meer in de importtabel geplaatst.' );
|
||
END IF;
|
||
ELSE
|
||
v_ongeldig := 1;
|
||
v_count_error := v_count_error + 1;
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Kostenplaatsgroep ontbreekt',
|
||
'Er worden geen regels meer in de importtabel geplaatst.' );
|
||
END IF;
|
||
|
||
v_errorhint := 'Ongeldig bedrag';
|
||
v_bedrag := TRIM (v_bedrag);
|
||
|
||
IF (v_bedrag IS NOT NULL)
|
||
THEN
|
||
IF LENGTH (v_bedrag) > 10
|
||
THEN
|
||
v_ongeldig := 1;
|
||
v_count_error := v_count_error + 1;
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Bedrag te lang',
|
||
'Er worden geen regels meer in de importtabel geplaatst.' );
|
||
END IF;
|
||
ELSE
|
||
v_ongeldig := 1;
|
||
v_count_error := v_count_error + 1;
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Bedrag ontbreekt',
|
||
'Er worden geen regels meer in de importtabel geplaatst.' );
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record, mits we alleen nog maar correcte regels zijn tegengekomen.
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Fout bij toevoegen regel aan importtabel';
|
||
|
||
INSERT INTO akza_imp_ruys
|
||
(kpn, kpn_grp, bedrag)
|
||
VALUES
|
||
(v_kpn, v_kpn_grp, v_bedrag);
|
||
|
||
v_count_import := v_count_import + 1;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog
|
||
(p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Ingelezen regel kan niet worden weggeschreven!'
|
||
);
|
||
COMMIT;
|
||
END;
|
||
END IF;
|
||
|
||
-- Als er teveel foutieve regels zijn, dan zijn we waarschijnlijk een corrupt of verkeerd
|
||
-- bestand aan het inlezen. Dan houden we ermee op.
|
||
IF (v_count_error > c_max_errors)
|
||
THEN
|
||
fac.imp_writelog
|
||
(p_import_key,
|
||
'E',
|
||
'Meer dan '||TO_CHAR(c_max_errors)||' fouten gevonden. Import wordt afgebroken.',
|
||
'Controleer het importbestand; waarschijnlijk klopt het formaat niet.'
|
||
);
|
||
EXIT;
|
||
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.',
|
||
'Heeft u wel het juiste bestand ingelezen?'
|
||
);
|
||
ELSIF (v_ongeldig = 1)
|
||
THEN
|
||
-- Importtabel leeggooien, zodat klikken op "Verwerken" niets doet. We willen een volledig correct bestand.
|
||
DELETE FROM akza_imp_ruys;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Ongeldig importbestand! Bestand bevat een of meer ongeldige regels.',
|
||
'Importtabel geleegd. Corrigeer de fouten en lees het bestand daarna opnieuw in.'
|
||
);
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'Importbestand succesvol ingelezen: '
|
||
|| TO_CHAR (v_count_tot) || ' regels.',
|
||
'(Dit nummer moet gelijk zijn aan "Ingelezen regels" - 1)'
|
||
);
|
||
END IF;
|
||
|
||
COMMIT;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
|
||
-- Importtabel leeggooien, zodat klikken op "Verwerken" niets doet. We willen een volledig correct bestand.
|
||
DELETE FROM akza_imp_ruys;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint
|
||
);
|
||
COMMIT;
|
||
END akza_import_ruys;
|
||
/
|
||
|
||
-- Import voor maandelijkse doorbelasting van postale diensten uit Ruys. Maakt meldingen aan die door
|
||
-- de export naar SAP/Foxpro worden doorbelast.
|
||
-- Gegevens alleen verwerken als:
|
||
-- - geen fouten gevonden bij inlezen (i.e. importtabel niet leeg)
|
||
-- - alle in importbestand aanwezige kostenplaatsen ook aanwezig in Facilitor
|
||
-- (eerst kostenplaatsen checken en pas als allemaal gevonden de meldingen aanmaken)
|
||
CREATE OR REPLACE PROCEDURE akza_update_ruys (
|
||
p_import_key IN NUMBER
|
||
)
|
||
IS
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10);
|
||
v_count_error NUMBER (10);
|
||
v_count NUMBER (10);
|
||
v_sum_bedrag NUMBER (10,2);
|
||
v_ongeldig NUMBER (1);
|
||
v_test NUMBER (10);
|
||
|
||
-- Alle kostenplaatsen in het importbestand
|
||
CURSOR c
|
||
IS
|
||
SELECT DISTINCT kpn, kpn_grp
|
||
FROM akza_imp_ruys
|
||
ORDER BY fac.safe_to_number(kpn);
|
||
|
||
c_stdmelding_key NUMBER := 1046; -- Melding 'maandrapportage'
|
||
c_flex_kpn_key NUMBER := 420; -- Flexkenmerk Kostenplaats
|
||
c_flex_bedrag_key NUMBER := 411; -- Flexkenmerk Bedrag
|
||
v_kpn_nr VARCHAR2(10);
|
||
v_kostenplaats_key NUMBER;
|
||
v_totaalbedrag NUMBER;
|
||
v_melding_key NUMBER;
|
||
|
||
-- Subproc
|
||
PROCEDURE getKostenplaats(p_kpn IN VARCHAR2,
|
||
p_kpn_grp IN VARCHAR2,
|
||
p_kpn_key OUT NUMBER)
|
||
IS
|
||
v_kostenplaatsgrp_key NUMBER;
|
||
BEGIN
|
||
p_kpn_key := NULL;
|
||
|
||
-- Eerst kostenplaatsgroep bepalen, daarna binnen die groep de kostenplaats zoeken
|
||
v_errorhint := 'Fout bij bepalen kostenplaatsgroep';
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM prs_kostenplaatsgrp kg
|
||
WHERE kg.prs_kostenplaatsgrp_oms LIKE UPPER(p_kpn_grp)||'%';
|
||
|
||
-- Geen kostenplaatsgroep gevonden --> error
|
||
IF (v_count = 0)
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
'Geen kostenplaatsgroep gevonden.'
|
||
);
|
||
-- Als kostenplaatsgroep gevonden, dan kostenplaats zoeken
|
||
ELSE
|
||
v_errorhint := 'Fout bij ophalen kostenplaatsgroep';
|
||
SELECT kg.prs_kostenplaatsgrp_key
|
||
INTO v_kostenplaatsgrp_key
|
||
FROM prs_kostenplaatsgrp kg
|
||
WHERE kg.prs_kostenplaatsgrp_oms LIKE UPPER(p_kpn_grp)||'%';
|
||
|
||
v_errorhint := 'Fout bij bepalen kostenplaats';
|
||
v_kpn_nr := LPAD(p_kpn, 10, '0');
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM akza_v_kostenplaats
|
||
WHERE prs_kostenplaats_verwijder IS NULL
|
||
AND LPAD(prs_kostenplaats_upper, 10, '0') = v_kpn_nr
|
||
AND prs_kostenplaatsgrp_key = v_kostenplaatsgrp_key;
|
||
|
||
-- Geen kostenplaats gevonden --> error
|
||
IF (v_count = 0)
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding,
|
||
'Geen kostenplaats gevonden (binnen kostenplaatsgroep).'
|
||
);
|
||
-- Kostenplaats gevonden --> key ophalen
|
||
ELSE
|
||
v_errorhint := 'Fout bij ophalen kostenplaats';
|
||
SELECT prs_kostenplaats_key
|
||
INTO p_kpn_key
|
||
FROM akza_v_kostenplaats
|
||
WHERE prs_kostenplaats_verwijder IS NULL
|
||
AND LPAD(prs_kostenplaats_upper, 10, '0') = v_kpn_nr
|
||
AND prs_kostenplaatsgrp_key = v_kostenplaatsgrp_key;
|
||
END IF; -- kpn
|
||
END IF; -- kpn_grp
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint
|
||
);
|
||
END;
|
||
|
||
BEGIN
|
||
fac.imp_writelog (p_import_key, 'S',
|
||
'Start verwerken ge<67>mporteerde gegevens',
|
||
TO_CHAR(SYSDATE, 'DD-MM-YYYY HH24:MI') );
|
||
|
||
v_count_tot := 0;
|
||
v_count_error := 0;
|
||
v_sum_bedrag := 0;
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
|
||
-- Staat er eigenlijk wel wat in de importtabel?
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM akza_imp_ruys;
|
||
IF (v_count = 0)
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'S',
|
||
'Importtabel is leeg!',
|
||
'Niets te verwerken.' );
|
||
ELSE
|
||
-- Eerst kijken of ik alle kostenplaatsen wel kan vinden. Dan pas meldingen aanmaken.
|
||
FOR chck IN c
|
||
LOOP
|
||
v_aanduiding := 'Kostenplaats ' || chck.kpn || ' (' || chck.kpn_grp || ')';
|
||
v_test := NULL;
|
||
|
||
getKostenplaats(chck.kpn, chck.kpn_grp, v_test);
|
||
IF (v_test IS NULL )
|
||
THEN
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
END LOOP;
|
||
|
||
-- Fout(en) gevonden --> afbreken
|
||
IF (v_ongeldig = 1)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'E<EFBFBD>n of meer kostenplaats(groep)en niet gevonden. Import wordt niet verwerkt.',
|
||
'Corrigeer de fouten in het importbestand.');
|
||
-- Alle kostenplaatsen gevonden --> verwerk importbestand
|
||
ELSE
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding := 'Kostenplaats ' || rec.kpn || ' (' || rec.kpn_grp || ')';
|
||
|
||
-- Kostenplaats-key ophalen
|
||
v_errorhint := 'Fout bij ophalen kostenplaats';
|
||
getKostenplaats(rec.kpn, rec.kpn_grp, v_kostenplaats_key);
|
||
IF (v_kostenplaats_key IS NOT NULL)
|
||
THEN
|
||
-- Als kostenplaats gevonden, dan melding met totaalbedrag maken
|
||
v_errorhint := 'Fout bij bepalen totaalbedrag';
|
||
SELECT ROUND( SUM( fac.safe_to_number( REPLACE(bedrag, ',', '.') ) ), 2)
|
||
INTO v_totaalbedrag
|
||
FROM akza_imp_ruys
|
||
WHERE kpn = rec.kpn
|
||
AND kpn_grp = rec.kpn_grp;
|
||
|
||
v_aanduiding := v_aanduiding || ', <20>' ||v_totaalbedrag;
|
||
|
||
v_errorhint := 'Fout bij toevoegen melding';
|
||
INSERT INTO mld_melding
|
||
(mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_melding_datum,
|
||
mld_stdmelding_key,
|
||
prs_perslid_key,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
prs_kostenplaats_key)
|
||
VALUES
|
||
('MLD',
|
||
45, -- System
|
||
SYSDATE,
|
||
c_stdmelding_key,
|
||
7520, -- Facilitor
|
||
5, -- Afgemeld
|
||
3,
|
||
v_kostenplaats_key)
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
v_errorhint := 'Fout bij toevoegen kenmerk kostenplaats';
|
||
INSERT INTO mld_kenmerkmelding
|
||
(mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde)
|
||
VALUES
|
||
(v_melding_key,
|
||
c_flex_kpn_key,
|
||
v_kostenplaats_key);
|
||
|
||
v_errorhint := 'Fout bij toevoegen kenmerk bedrag';
|
||
INSERT INTO mld_kenmerkmelding
|
||
(mld_melding_key,
|
||
mld_kenmerk_key,
|
||
mld_kenmerkmelding_waarde)
|
||
VALUES
|
||
(v_melding_key,
|
||
c_flex_bedrag_key,
|
||
v_totaalbedrag);
|
||
|
||
v_sum_bedrag := v_sum_bedrag + v_totaalbedrag;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
v_aanduiding||' (key '||v_kostenplaats_key||'): <20>'||v_totaalbedrag,
|
||
'Melding L'||v_melding_key);
|
||
ELSE
|
||
-- Bij de check is de kostenplaats wel gevonden, maar daarna niet?!
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || 'niet gevonden?!',
|
||
v_errorhint
|
||
);
|
||
END IF; -- kpn
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint
|
||
);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog(p_import_key,
|
||
'S',
|
||
'Verwerkte kostenplaatsen zonder foutmelding: '
|
||
|| TO_CHAR (v_count_tot - v_count_error),
|
||
'Totaalbedrag: '||TO_CHAR(v_sum_bedrag)
|
||
);
|
||
|
||
SELECT DECODE(v_count_error,
|
||
0, '',
|
||
'Controleer de logging op fouten en exporteer regels voor deze kostenplaats opnieuw uit Ruys.')
|
||
INTO v_errorhint
|
||
FROM DUAL;
|
||
fac.imp_writelog(p_import_key,
|
||
'S',
|
||
'Verwerkte kostenplaatsen met foutmelding: '
|
||
|| TO_CHAR (v_count_error),
|
||
v_errorhint);
|
||
END IF; -- v_ongeldig
|
||
END IF; -- leeg importbestand?
|
||
|
||
COMMIT;
|
||
|
||
END akza_update_ruys;
|
||
/
|
||
|
||
--- OPDRACHTKOSTEN -------------------------------------------------------------
|
||
|
||
-- AKZA#27387: Import opdrachtkosten (MB)
|
||
CREATE OR REPLACE PROCEDURE akza_import_opdrkosten (
|
||
p_import_key IN NUMBER
|
||
)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER := 0;
|
||
v_ongeldig NUMBER (1);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_count NUMBER;
|
||
-- De importvelden:
|
||
|
||
v_mld_opdr_nr VARCHAR2 (256);
|
||
v_mld_opdr_uren VARCHAR2 (256);
|
||
v_mld_opdr_uurloon VARCHAR2 (256);
|
||
v_mld_opdr_materiaal VARCHAR2 (256);
|
||
-- !!Let op: dit is geen veld in de database, maar wordt via opdrachtkosten teruggerekend!!
|
||
v_correctie_bedrag VARCHAR2 (256);
|
||
v_mld_opdr_opmerking VARCHAR2 (4000);
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
DELETE FROM akza_imp_opdrkosten;
|
||
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_aanduiding := '';
|
||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||
v_ongeldig := 0;
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_mld_opdr_nr);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_mld_opdr_uren);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_mld_opdr_uurloon);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_mld_opdr_materiaal);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 5, v_correctie_bedrag);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_mld_opdr_opmerking);
|
||
|
||
v_aanduiding := '[' || v_mld_opdr_nr || '(' || v_mld_opdr_uren || ',' || v_mld_opdr_uurloon || ',' || v_mld_opdr_materiaal || ',' || v_correctie_bedrag || '): ' || '] ';
|
||
|
||
-- 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(v_mld_opdr_nr) = 'OPDRACHTNUMMER'
|
||
AND UPPER(v_mld_opdr_uren) = 'UREN'
|
||
AND UPPER(v_mld_opdr_uurloon) = 'UURTARIEF'
|
||
AND UPPER(v_mld_opdr_materiaal) = 'MATERIAALKOSTEN'
|
||
AND UPPER(v_correctie_bedrag) = 'CORRECTIEBEDRAG'
|
||
AND UPPER(v_mld_opdr_opmerking) = 'OPMERKINGEN'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Controleer alle veldwaarden
|
||
v_errorhint := 'Ongeldig/onbekend opdrachtnummer';
|
||
v_mld_opdr_nr := TRIM(v_mld_opdr_nr);
|
||
|
||
-- opdrachtnummer is maximaal <prefix> + <meldingkey> + '/' + <volgnr> = 3 + 10 + 1 + 10 = 24 karakters
|
||
IF (v_mld_opdr_nr IS NOT NULL)
|
||
THEN
|
||
IF LENGTH (v_mld_opdr_nr) > 24
|
||
THEN
|
||
v_mld_opdr_nr := SUBSTR (v_mld_opdr_nr, 1, 24);
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Opdrachtnummer te lang',
|
||
'Wordt afgebroken tot [' || v_mld_opdr_nr || ']' );
|
||
END IF;
|
||
ELSE
|
||
v_ongeldig := 1;
|
||
EXIT;
|
||
END IF;
|
||
|
||
|
||
-- opdracht uren is N(7,2), dus maximaal 8 karakters (b.v. 12345.67)
|
||
IF (v_mld_opdr_uren IS NOT NULL)
|
||
THEN
|
||
IF LENGTH (v_mld_opdr_uren) > 8
|
||
THEN
|
||
v_mld_opdr_uren := SUBSTR (v_mld_opdr_uren, 1, 8);
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Uren te lang',
|
||
'Wordt afgebroken tot [' || v_mld_opdr_uren || ']' );
|
||
END IF;
|
||
END IF;
|
||
|
||
|
||
-- uurtarief is N(6,2), dus maximaal 7 karakters (b.v. 1234.56)
|
||
IF (v_mld_opdr_uurloon IS NOT NULL)
|
||
THEN
|
||
IF LENGTH (v_mld_opdr_uurloon) > 8
|
||
THEN
|
||
v_mld_opdr_uurloon := SUBSTR (v_mld_opdr_uurloon, 1, 7);
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Uurtarief te lang',
|
||
'Wordt afgebroken tot [' || v_mld_opdr_uurloon || ']' );
|
||
END IF;
|
||
END IF;
|
||
|
||
-- materiaalkosten is N(8,2), dus maximaal 9 karakters (b.v. 123456.78)
|
||
IF (v_mld_opdr_materiaal IS NOT NULL)
|
||
THEN
|
||
IF LENGTH (v_mld_opdr_materiaal) > 9
|
||
THEN
|
||
v_mld_opdr_materiaal := SUBSTR (v_mld_opdr_materiaal, 1, 7);
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Materiaalkosten te lang',
|
||
'Wordt afgebroken tot [' || v_mld_opdr_materiaal || ']' );
|
||
END IF;
|
||
END IF;
|
||
|
||
-- correctiebedrag is geen DB-veld, maar wordt logischerwijs gelijkgetrokken aan materiaalkosten.
|
||
IF (v_correctie_bedrag IS NOT NULL)
|
||
THEN
|
||
IF LENGTH (v_correctie_bedrag) > 9
|
||
THEN
|
||
v_correctie_bedrag := SUBSTR (v_correctie_bedrag, 1, 7);
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Correctiebedrag te lang',
|
||
'Wordt afgebroken tot [' || v_correctie_bedrag || ']' );
|
||
END IF;
|
||
END IF;
|
||
|
||
-- opmerking is maximaal 4000 karakters
|
||
IF (v_mld_opdr_opmerking IS NOT NULL)
|
||
THEN
|
||
IF LENGTH (v_mld_opdr_opmerking) > 4000
|
||
THEN
|
||
v_mld_opdr_opmerking := SUBSTR (v_mld_opdr_opmerking, 1, 4000);
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Opmerking te lang',
|
||
'Wordt afgebroken tot [' || v_mld_opdr_opmerking || ']' );
|
||
END IF;
|
||
END IF;
|
||
|
||
|
||
IF ( v_mld_opdr_uren IS NULL
|
||
AND v_mld_opdr_uurloon IS NULL
|
||
AND v_mld_opdr_materiaal IS NULL
|
||
AND v_correctie_bedrag IS NULL
|
||
AND v_mld_opdr_opmerking IS NULL
|
||
)
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Alle velden zijn leeg, regel wordt niet verwerkt.',
|
||
'Ingelezen regel kan niet worden weggeschreven!' );
|
||
v_ongeldig := 1;
|
||
EXIT;
|
||
END IF;
|
||
|
||
|
||
IF ( (v_mld_opdr_uren IS NOT NULL AND v_mld_opdr_uurloon IS NULL) OR
|
||
(v_mld_opdr_uren IS NULL AND v_mld_opdr_uurloon IS NOT NULL)
|
||
)
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'W',
|
||
v_aanduiding || 'Resultaat van uren x uurtarief is 0 omdat niet beide velden gevuld zijn.',
|
||
'Wordt derhlave genegeerd' );
|
||
END IF;
|
||
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errorhint :=
|
||
'Fout bij toevoegen regel aan importtabel';
|
||
|
||
INSERT INTO akza_imp_opdrkosten( mld_opdr_nr, mld_opdr_uren, mld_opdr_uurloon, mld_opdr_materiaal, correctie_bedrag, mld_opdr_opmerking)
|
||
VALUES (v_mld_opdr_nr, v_mld_opdr_uren, v_mld_opdr_uurloon, v_mld_opdr_materiaal, v_correctie_bedrag, v_mld_opdr_opmerking);
|
||
|
||
v_count_import := v_count_import + 1;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errorhint
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog
|
||
(p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
'Ingelezen regel kan niet worden weggeschreven!'
|
||
);
|
||
COMMIT;
|
||
END;
|
||
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!'
|
||
);
|
||
ELSIF (v_ongeldig = 1)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Ongeldige regel(s)',
|
||
'Regel '||v_aanduiding||' is ongeldig! (Mogelijk zijn er nog meer ongeldige regels.)'
|
||
);
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'S',
|
||
'OPDRACHT KOSTEN: aantal ingelezen regels: '
|
||
|| TO_CHAR (v_count_tot),
|
||
''
|
||
);
|
||
END IF;
|
||
|
||
COMMIT;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint
|
||
);
|
||
COMMIT;
|
||
END akza_import_opdrkosten;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE akza_update_opdrkosten (
|
||
p_import_key IN NUMBER
|
||
)
|
||
IS
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10);
|
||
v_count_error NUMBER (10);
|
||
v_count NUMBER (10);
|
||
|
||
-- Alle kostenplaatsen in het importbestand
|
||
CURSOR c
|
||
IS
|
||
SELECT mld_opdr_nr,
|
||
ROUND(COALESCE(fac.safe_to_number(REPLACE(mld_opdr_uren, ',','.')),0),2) mld_opdr_uren,
|
||
ROUND(COALESCE(fac.safe_to_number(REPLACE(mld_opdr_uurloon, ',','.')),0),2) mld_opdr_uurloon,
|
||
ROUND(COALESCE(fac.safe_to_number(REPLACE(mld_opdr_materiaal,',','.')),0),2) mld_opdr_materiaal,
|
||
ROUND(COALESCE(fac.safe_to_number(REPLACE(correctie_bedrag, ',','.')),0),2) correctie_bedrag,
|
||
mld_opdr_opmerking
|
||
FROM akza_imp_opdrkosten
|
||
ORDER BY mld_opdr_nr;
|
||
|
||
|
||
v_mld_opdr_key NUMBER (10);
|
||
l_mld_opdr_uurloon MLD_OPDR.mld_opdr_uurloon%TYPE;
|
||
|
||
|
||
|
||
FUNCTION try_getopdracht_id (p_broc_nr IN VARCHAR2, p_leverancier_nr IN VARCHAR2)
|
||
RETURN NUMBER
|
||
AS
|
||
c_prefix1 VARCHAR2 (1);
|
||
-- Ter bepaling van de positie van de slash in bron-nr
|
||
c_index NUMBER;
|
||
c_slash_index NUMBER;
|
||
-- Opdrachtnr voor de slash
|
||
c_broc_s1 VARCHAR2 (20);
|
||
-- Opdrachtnr na de slash
|
||
c_broc_s2 VARCHAR2 (20);
|
||
p_broc_key NUMBER(10);
|
||
BEGIN
|
||
p_broc_key := NULL;
|
||
c_index := 1;
|
||
c_prefix1 := SUBSTR (p_broc_nr, c_index, 1);
|
||
|
||
IF ( ( (ASCII (c_prefix1) >= 65 AND ASCII (c_prefix1) <= 90)
|
||
OR (ASCII (c_prefix1) >= 97 AND ASCII(c_prefix1) <= 122))
|
||
AND ASCII (c_prefix1) != 67
|
||
AND ASCII (c_prefix1) != 99)
|
||
THEN
|
||
-- Eerste karakter is een letter
|
||
-- Heeft opdrachtnr nog meer aan prefix?
|
||
c_index := 2;
|
||
c_prefix1 := SUBSTR (p_broc_nr, c_index, 1);
|
||
|
||
IF ( (ASCII (c_prefix1) >= 65 AND ASCII (c_prefix1) <= 90)
|
||
OR (ASCII (c_prefix1) >= 97 AND ASCII(c_prefix1) <= 122))
|
||
THEN
|
||
-- Eerste 2 karakter zijn letters
|
||
-- Heeft opdrachtnr nog meer aan prefix?
|
||
c_index := 3;
|
||
c_prefix1 := SUBSTR (p_broc_nr, c_index, 1);
|
||
IF ( (ASCII (c_prefix1) >= 65 AND ASCII (c_prefix1) <= 90)
|
||
OR (ASCII (c_prefix1) >= 97 AND ASCII(c_prefix1) <= 122))
|
||
THEN
|
||
-- Opdracht heeft prefix van 3 letters.
|
||
c_index := 4;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
c_slash_index := INSTR (p_broc_nr, '/');
|
||
IF c_slash_index = 0
|
||
THEN
|
||
c_broc_s1 := SUBSTR (p_broc_nr, c_index);
|
||
c_broc_s2 := '';
|
||
ELSE
|
||
c_broc_s1 := SUBSTR (p_broc_nr, c_index, c_slash_index - c_index);
|
||
c_broc_s2 := SUBSTR (p_broc_nr, c_slash_index + 1);
|
||
END IF;
|
||
BEGIN
|
||
SELECT o.mld_opdr_key
|
||
INTO p_broc_key
|
||
FROM mld_opdr o
|
||
WHERE o.mld_melding_key = fac.safe_to_number (c_broc_s1)
|
||
AND mld_opdr_bedrijfopdr_volgnr = fac.safe_to_number (c_broc_s2);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
p_broc_key := NULL;
|
||
END;
|
||
RETURN p_broc_key;
|
||
END;
|
||
|
||
|
||
BEGIN
|
||
v_count_tot := 0;
|
||
v_count_error := 0;
|
||
v_aanduiding := '';
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding := 'Opdrachtnr ' || rec.mld_opdr_nr || '(' || rec.mld_opdr_uren || ',' || rec.mld_opdr_uurloon || ',' || rec.mld_opdr_materiaal || ',' || rec.correctie_bedrag || '): ';
|
||
|
||
v_mld_opdr_key := try_getopdracht_id(rec.mld_opdr_nr, NULL);
|
||
IF (v_mld_opdr_key IS NULL)
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
v_errormsg := 'Opdrachtnummer onbekend / is niet gevonden';
|
||
v_errorhint := 'Fout bij bepalen opdrachtnummer';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint
|
||
);
|
||
COMMIT;
|
||
ELSE
|
||
|
||
-- Opdrachtnummer is gevonden, mld_opdr record is gevonden.
|
||
|
||
-- Stap 1) Uren x tarief
|
||
|
||
-- Als uurtarief bij opdracht niet is ingevuld, of als die wel is ingevuld en gelijk is aan uurtarief uit import regel, dan de uren aanvullen/optellen (en uurtarief invullen)
|
||
IF (rec.mld_opdr_uurloon != 0 AND rec.mld_opdr_uurloon !=0)
|
||
THEN
|
||
v_errorhint := 'Fout bij bepalen/zetten uurloon';
|
||
-- We gaan eerst ff het uurtarief ophalen, misschien is ie wel gelijk aan het importrecord?
|
||
SELECT mld_opdr_uurloon
|
||
INTO l_mld_opdr_uurloon
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = v_mld_opdr_key;
|
||
|
||
IF (l_mld_opdr_uurloon IS NULL OR l_mld_opdr_uurloon = rec.mld_opdr_uurloon)
|
||
THEN
|
||
-- Inderdaad is tarief gelijk aan import-record, of er was nog geen tarief ingevuld, dan ook goed...
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_uren = COALESCE(mld_opdr_uren, 0) + rec.mld_opdr_uren,
|
||
mld_opdr_uurloon = rec.mld_opdr_uurloon,
|
||
mld_opdr_kosten = mld_opdr_kosten + ROUND(rec.mld_opdr_uurloon * rec.mld_opdr_uren, 2)
|
||
WHERE mld_opdr_key = v_mld_opdr_key;
|
||
ELSE
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_kosten = mld_opdr_kosten + ROUND(rec.mld_opdr_uurloon * rec.mld_opdr_uren, 2)
|
||
WHERE mld_opdr_key = v_mld_opdr_key;
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Stap 2) Materiaal kosten
|
||
|
||
IF (rec.mld_opdr_materiaal != 0)
|
||
THEN
|
||
v_errorhint := 'Fout bij zetten materiaalkosten';
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_materiaal = COALESCE(mld_opdr_materiaal,0) + rec.mld_opdr_materiaal,
|
||
mld_opdr_kosten = mld_opdr_kosten + rec.mld_opdr_materiaal
|
||
WHERE mld_opdr_key = v_mld_opdr_key;
|
||
END IF;
|
||
|
||
-- Stap 3) Correctie bedrag
|
||
|
||
IF (rec.correctie_bedrag != 0)
|
||
THEN
|
||
v_errorhint := 'Fout bij zetten correctiebedrag';
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_kosten = mld_opdr_kosten + rec.correctie_bedrag
|
||
WHERE mld_opdr_key = v_mld_opdr_key;
|
||
END IF;
|
||
|
||
-- Stap 4) Aanvullen van opmerking
|
||
|
||
IF (rec.mld_opdr_opmerking IS NOT NULL)
|
||
THEN
|
||
v_errorhint := 'Fout bij zetten opmerking';
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_opmerking = SUBSTR(mld_opdr_opmerking || CHR(10) || rec.mld_opdr_opmerking,1,4000)
|
||
WHERE mld_opdr_key = v_mld_opdr_key;
|
||
END IF;
|
||
|
||
-- Informatieve logging
|
||
SELECT TO_CHAR(mld_opdr_kosten, '99G9999D99MI')
|
||
INTO v_errorhint
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = v_mld_opdr_key;
|
||
fac.imp_writelog (p_import_key,
|
||
'I',
|
||
'Bijgewerkt: '||v_aanduiding,
|
||
'Totaalbedrag: '||v_errorhint
|
||
);
|
||
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_count_error := v_count_error + 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_aanduiding || v_errormsg,
|
||
v_errorhint
|
||
);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog(p_import_key,
|
||
'S',
|
||
'OPDRACHT KOSTEN: verwerkte regels zonder foutmelding: '
|
||
|| TO_CHAR (v_count_tot - v_count_error),
|
||
''
|
||
);
|
||
fac.imp_writelog(p_import_key,
|
||
'S',
|
||
'OPDRACHT KOSTEN: verwerkte regels met foutmelding: '
|
||
|| TO_CHAR (v_count_error),
|
||
''
|
||
);
|
||
|
||
COMMIT;
|
||
|
||
END akza_update_opdrkosten;
|
||
/
|
||
|
||
--- INSPECTIERESULTATEN -------------------------------------------------------------
|
||
|
||
-- AKZA#31258: Import inspectieresultaten
|
||
CREATE OR REPLACE PROCEDURE akza_import_inspectieobj (
|
||
p_import_key IN NUMBER
|
||
)
|
||
IS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (1000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR (200);
|
||
-- De importvelden:
|
||
v_alg_locatie_code VARCHAR2 (255); -- C10
|
||
v_ins_deel_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_srtcontrole_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_controle_datum VARCHAR2 (255); -- DATE
|
||
v_ins_controle_opm VARCHAR2 (1024); -- C500
|
||
v_afgekeurd VARCHAR2 (255); -- C60
|
||
v_bestand VARCHAR2 (255); -- C200
|
||
-- Overig:
|
||
v_ins_controle_datum_d DATE; -- DATE
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
DELETE FROM akza_imp_inspectieobj;
|
||
|
||
COMMIT;
|
||
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
header_is_valid := 0;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout bij opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_locatie_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_controle_datum);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_controle_opm);
|
||
fac.imp_getfield (v_newline, c_delim, v_afgekeurd);
|
||
fac.imp_getfield (v_newline, c_delim, v_bestand);
|
||
|
||
v_aanduiding := '[' || v_ins_deel_omschrijving || ' (' || v_alg_locatie_code || ')] ';
|
||
|
||
-- 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 (v_alg_locatie_code) = 'LOCATIECODE'
|
||
AND UPPER (v_ins_deel_omschrijving) = 'OBJECT_ID'
|
||
AND UPPER (v_ins_srtcontrole_omschrijving) = 'SOORTCONTROLE'
|
||
AND UPPER (v_ins_controle_datum) = 'CONTROLEDATUM'
|
||
AND UPPER (v_ins_controle_opm) = 'CONTROLEOPMERKING'
|
||
AND UPPER (v_afgekeurd) = 'AFGEKEURD'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
-- Controleer alle veldwaarden
|
||
v_errormsg := 'Locatiecode ongeldig';
|
||
v_alg_locatie_code := TRIM (v_alg_locatie_code);
|
||
|
||
IF LENGTH (v_alg_locatie_code) > 10
|
||
THEN
|
||
v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 10);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Locatiecode wordt afgebroken tot ['
|
||
|| v_alg_locatie_code
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Objectomschrijving ongeldig';
|
||
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
|
||
|
||
IF LENGTH (v_ins_deel_omschrijving) > 60
|
||
THEN
|
||
v_ins_deel_omschrijving :=
|
||
SUBSTR (TRIM (v_ins_deel_omschrijving), 1, 60);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Objectomschrijving wordt afgebroken tot ['
|
||
|| v_ins_deel_omschrijving
|
||
|| ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Soortcontrole ongeldig';
|
||
v_ins_srtcontrole_omschrijving := TRIM (v_ins_srtcontrole_omschrijving);
|
||
|
||
IF LENGTH (v_ins_srtcontrole_omschrijving) > 60
|
||
THEN
|
||
v_ins_srtcontrole_omschrijving := SUBSTR (v_ins_srtcontrole_omschrijving, 1, 60);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Soortcontrole wordt afgebroken tot [' || v_ins_srtcontrole_omschrijving || ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Controledatum ongeldig';
|
||
v_ins_controle_datum := TRIM (v_ins_controle_datum);
|
||
v_ins_controle_datum_d := NULL;
|
||
|
||
IF (v_ins_controle_datum IS NOT NULL)
|
||
THEN
|
||
IF (fac.safe_to_date (v_ins_controle_datum, 'dd-mm-yyyy') IS NULL)
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Controledatum wordt genegeerd');
|
||
ELSE
|
||
v_ins_controle_datum_d :=
|
||
fac.safe_to_date (v_ins_controle_datum, 'dd-mm-yyyy');
|
||
END IF;
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Controleopmerking ongeldig';
|
||
v_ins_controle_opm := TRIM (v_ins_controle_opm);
|
||
|
||
IF LENGTH (v_ins_controle_opm) > 500
|
||
THEN
|
||
v_ins_controle_opm := SUBSTR (v_ins_controle_opm, 1, 500);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Controleopmerking wordt afgekapt op 500 posities'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Afgekeurd ongeldig';
|
||
v_afgekeurd := TRIM (v_afgekeurd);
|
||
|
||
IF LENGTH (v_afgekeurd) > 60
|
||
THEN
|
||
v_afgekeurd := SUBSTR (v_afgekeurd, 1, 60);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Afgekeurd wordt afgebroken tot [' || v_afgekeurd || ']'
|
||
);
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Bestandsnaam ongeldig';
|
||
v_bestand := TRIM (v_bestand);
|
||
|
||
IF (v_bestand IS NOT NULL AND LENGTH (v_bestand) > 200 )
|
||
THEN
|
||
v_bestand := SUBSTR (v_bestand, 1, 200);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'Bestandsnaam wordt afgekapt op 200 posities'
|
||
);
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout bij wegschrijven importregel';
|
||
|
||
INSERT INTO akza_imp_inspectieobj (
|
||
alg_locatie_code,
|
||
ins_deel_omschrijving,
|
||
ins_srtcontrole_omschrijving,
|
||
ins_deelsrtcontrole_datum,
|
||
ins_deelsrtcontrole_opmerking,
|
||
afgekeurd,
|
||
bestand
|
||
)
|
||
VALUES (v_alg_locatie_code,
|
||
v_ins_deel_omschrijving,
|
||
v_ins_srtcontrole_omschrijving,
|
||
v_ins_controle_datum_d,
|
||
v_ins_controle_opm,
|
||
v_afgekeurd,
|
||
v_bestand);
|
||
|
||
COMMIT;
|
||
v_count_import := v_count_import + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_aanduiding || v_errormsg,
|
||
'');
|
||
|
||
COMMIT;
|
||
END;
|
||
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',
|
||
'Inspectieobjecten/aantal ingelezen importregels: '
|
||
|| TO_CHAR (v_count_tot),
|
||
''
|
||
);
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'Inspectieobjecten/aantal ongeldige niet ingelezen importregels: '
|
||
|| TO_CHAR (v_count_tot - v_count_import),
|
||
''
|
||
);
|
||
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 inspectieobjecten afgebroken!');
|
||
END akza_import_inspectieobj;
|
||
/
|
||
|
||
-- Leest voor objecten (locatie+object-id) het resultaat van specifieke taken in,
|
||
-- uitgevoerd op bepaalde datums. Met ruimte voor een opmerking en een link naar een
|
||
-- bestandsnaam. Voor de bestandsnaam wordt het bestandsnaam-kenmerk met de laagste key
|
||
-- bij de betreffende taak (controle) gezocht en gebruikt.
|
||
CREATE OR REPLACE PROCEDURE akza_update_inspectieobj (
|
||
p_import_key IN NUMBER
|
||
)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
v_count_tot NUMBER (10);
|
||
v_count_cupdate NUMBER (10);
|
||
v_aanduiding VARCHAR (200);
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT i.alg_locatie_code,
|
||
i.ins_deel_omschrijving,
|
||
sc.ins_srtcontrole_key,
|
||
sc.ins_srtcontrole_omschrijving,
|
||
i.ins_deelsrtcontrole_datum,
|
||
i.ins_deelsrtcontrole_opmerking,
|
||
i.bestand bestandsnaam,
|
||
i.afgekeurd,
|
||
ad.ins_deel_key,
|
||
ad.ins_srtdeel_key,
|
||
g.ins_srtgroep_key,
|
||
ad.ins_discipline_key,
|
||
al.alg_locatie_key
|
||
FROM akza_imp_inspectieobj i,
|
||
ins_srtcontrole sc,
|
||
ins_v_aanwezigdeel ad,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep g,
|
||
alg_v_aanweziglocatie al
|
||
WHERE ad.ins_deel_omschrijving(+) = i.ins_deel_omschrijving
|
||
AND UPPER(sc.ins_srtcontrole_omschrijving(+)) = UPPER(i.ins_srtcontrole_omschrijving)
|
||
AND sd.ins_srtdeel_key(+) = ad.ins_srtdeel_key
|
||
AND g.ins_srtgroep_key(+) = sd.ins_srtgroep_key
|
||
AND al.alg_locatie_key(+) = ad.ins_alg_locatie_key;
|
||
|
||
v_deel_key NUMBER (10);
|
||
v_kenmerk_key NUMBER (10);
|
||
v_kenmerkdeel_key NUMBER (10);
|
||
v_srtcontrole_id VARCHAR2 (20);
|
||
v_controlemode_succes_key NUMBER (10);
|
||
v_controlemode_afkeur_key NUMBER (10);
|
||
v_deelsrtcontrole_key NUMBER(10);
|
||
BEGIN
|
||
v_count := 0;
|
||
v_count_tot := 0;
|
||
v_count_cupdate := 0;
|
||
v_aanduiding := '';
|
||
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding := '['||rec.ins_deel_omschrijving
|
||
||'|'||rec.alg_locatie_code
|
||
||'|'||rec.ins_srtcontrole_omschrijving
|
||
||'|'||rec.ins_deelsrtcontrole_datum
|
||
|| '] ';
|
||
|
||
-- We kunnen alleen iets met objecten die we kennen!
|
||
IF (rec.ins_deel_key IS NULL OR rec.alg_locatie_key IS NULL)
|
||
THEN
|
||
fac.imp_writelog(p_import_key, 'E',
|
||
'Objectcode onbekend (binnen locatie); regel wordt overgeslagen',
|
||
v_aanduiding);
|
||
CONTINUE;
|
||
END IF;
|
||
|
||
-- Zonder datum doen we niks
|
||
IF (rec.ins_deelsrtcontrole_datum IS NULL)
|
||
THEN
|
||
fac.imp_writelog(p_import_key, 'E',
|
||
'Geen datum ingevuld; regel wordt overgeslagen',
|
||
v_aanduiding);
|
||
CONTINUE;
|
||
END IF;
|
||
|
||
-- Kennen we de srtcontrole uberhaupt?
|
||
IF (rec.ins_srtcontrole_key IS NULL)
|
||
THEN
|
||
fac.imp_writelog(p_import_key, 'E',
|
||
'Soort taak onbekend; regel wordt overgeslagen',
|
||
v_aanduiding);
|
||
CONTINUE;
|
||
END IF;
|
||
|
||
-- En hoort die srtcontrole ook bij deze objectsoort/-groep/discipline?
|
||
v_errormsg := 'srtcontrole bij objectsoort';
|
||
SELECT COUNT(*)
|
||
INTO v_count
|
||
FROM ins_srtcontrole sc
|
||
WHERE sc.ins_srtcontrole_key = rec.ins_srtcontrole_key
|
||
AND sc.ins_srtinstallatie_key =
|
||
DECODE( sc.ins_srtcontrole_niveau,
|
||
'S', rec.ins_srtdeel_key,
|
||
'G', rec.ins_srtgroep_key,
|
||
'D', rec.ins_discipline_key);
|
||
|
||
-- Nee --> overslaan
|
||
IF (v_count = 0)
|
||
THEN
|
||
fac.imp_writelog(p_import_key, 'E',
|
||
'Soort taak hoort niet bij object; regel wordt overgeslagen',
|
||
v_aanduiding);
|
||
CONTINUE;
|
||
END IF;
|
||
-- TODO: kan een srtcontrole meerdere malen aan een object gekoppeld zijn? Dan dat nog specifieker bepalen?
|
||
|
||
IF (rec.ins_deelsrtcontrole_datum IS NULL)
|
||
THEN
|
||
fac.imp_writelog(p_import_key, 'E',
|
||
'Geen datum opgegeven; regel wordt overgeslagen',
|
||
v_aanduiding);
|
||
CONTINUE;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij bepalen controlemethode succes';
|
||
SELECT MIN(ins_controlemode_key)
|
||
INTO v_controlemode_succes_key
|
||
FROM ins_controlemode cm,
|
||
ctr_disc_params dp,
|
||
ins_srtcontrole sc
|
||
WHERE cm.ins_controlemode_success = 1
|
||
AND cm.ins_srtcontrole_type = dp.ctr_disc_params_controle_type
|
||
AND dp.ctr_ins_discipline_key = sc.ctr_discipline_key
|
||
AND sc.ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
|
||
v_errormsg := 'Fout bij bepalen controlemethode afgekeurd';
|
||
SELECT MIN(ins_controlemode_key)
|
||
INTO v_controlemode_afkeur_key
|
||
FROM ins_controlemode cm,
|
||
ctr_disc_params dp,
|
||
ins_srtcontrole sc
|
||
WHERE cm.ins_controlemode_success IS NULL
|
||
AND cm.ins_srtcontrole_type = dp.ctr_disc_params_controle_type
|
||
AND dp.ctr_ins_discipline_key = sc.ctr_discipline_key
|
||
AND sc.ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
|
||
-- TODO: ins_deelsrtcontrole_datum_org is de datum waarop de taak eigenlijk gedaan had
|
||
-- moeten worden. Die staat bij taken met standaardperiode 0 in ins_srtcontroledl_xcp en
|
||
-- zal doorgaans afwijken van de datum in het importbestand.
|
||
v_errormsg := 'Fout bij toevoegen controle';
|
||
INSERT INTO ins_deelsrtcontrole (
|
||
ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_deelsrtcontrole_datum,
|
||
ins_deelsrtcontrole_datum_org,
|
||
ins_controlemode_key,
|
||
ins_deelsrtcontrole_opmerking)
|
||
VALUES (
|
||
rec.ins_deel_key,
|
||
rec.ins_srtcontrole_key,
|
||
rec.ins_deelsrtcontrole_datum,
|
||
rec.ins_deelsrtcontrole_datum,
|
||
DECODE(rec.afgekeurd,
|
||
NULL, v_controlemode_succes_key,
|
||
v_controlemode_afkeur_key),
|
||
rec.ins_deelsrtcontrole_opmerking)
|
||
RETURNING ins_deelsrtcontrole_key INTO v_deelsrtcontrole_key;
|
||
|
||
IF (rec.bestandsnaam IS NOT NULL)
|
||
THEN
|
||
v_errormsg := 'Fout bij bepalen bestandskenmerk';
|
||
SELECT MIN(ins_kenmerk_key)
|
||
INTO v_kenmerk_key
|
||
FROM ins_kenmerk k,
|
||
ins_srtkenmerk sk,
|
||
ins_srtcontrole rec
|
||
WHERE k.ins_kenmerk_niveau = 'C'
|
||
AND k.ins_srtinstallatie_key = rec.ins_srtcontrole_key
|
||
AND k.ins_kenmerk_verwijder IS NULL
|
||
AND sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
|
||
AND sk.ins_srtkenmerk_kenmerktype = 'X';
|
||
|
||
v_errormsg := 'Bestandsnaam vastleggen';
|
||
INSERT INTO ins_kmdeelsrtcontr (
|
||
ins_deelsrtcontrole_key,
|
||
ins_kenmerk_key,
|
||
ins_kmdeelsrtcontr_waarde)
|
||
VALUES (
|
||
v_deelsrtcontrole_key,
|
||
v_kenmerk_key,
|
||
REPLACE(
|
||
CASE
|
||
WHEN UPPER(rec.bestandsnaam) LIKE 'R:\TD-EXTERN\ITA-3\REPORTS\RTC%'
|
||
THEN '/RTC'||SUBSTR(rec.bestandsnaam, 31)
|
||
WHEN UPPER(rec.bestandsnaam) LIKE 'R:/TD-EXTERN/ITA-3/REPORTS/RTC%'
|
||
THEN '/RTC'||SUBSTR(rec.bestandsnaam, 31)
|
||
ELSE
|
||
rec.bestandsnaam
|
||
END,
|
||
'\',
|
||
'/')
|
||
);
|
||
END IF;
|
||
|
||
v_count_cupdate := v_count_cupdate + 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_errormsg,
|
||
v_aanduiding);
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S',
|
||
'Aantal ingelezen taken: ' || TO_CHAR (v_count_tot),
|
||
'');
|
||
fac.imp_writelog (p_import_key, 'S',
|
||
'Aantal verwerkte taken: ' || TO_CHAR (v_count_cupdate),
|
||
'');
|
||
COMMIT;
|
||
|
||
END akza_update_inspectieobj;
|
||
/
|
||
|
||
--- view om de locatie van nieuwe apparatuur aan te kunnen geven
|
||
CREATE OR REPLACE VIEW AKZA_V_RUIMTES_DEVENTER
|
||
(
|
||
RUIMTE_KEY,
|
||
RUIMTE,
|
||
VERVALDATUM
|
||
)
|
||
AS
|
||
SELECT ALG_RUIMTE_KEY,
|
||
ALG_GEBOUW_UPPER
|
||
|| '/'
|
||
|| ALG_VERDIEPING_CODE
|
||
|| '/'
|
||
|| ALG_RUIMTE_UPPER_NR
|
||
|| '-'
|
||
|| ALG_RUIMTE_OMSCHRIJVING
|
||
AS RUIMTE,
|
||
ALG_RUIMTE_VERWIJDER
|
||
FROM ALG_V_RUIMTE_GEGEVENS_ALL R
|
||
WHERE ALG_LOCATIE_KEY = 121;
|
||
|
||
--- Overzicht met alle werkvergunningen
|
||
CREATE OR REPLACE VIEW AKZA_V_WERKVERGUNNINGEN
|
||
(
|
||
HIDE_F_MELDING_KEY,
|
||
HTML_AANVRAAG_NR,
|
||
MELDING,
|
||
ONDERWERP,
|
||
STATUS,
|
||
DATUM,
|
||
AANVRAGER,
|
||
AFDELING,
|
||
AFDELING_OMSCHR,
|
||
HTML_BESTAND,
|
||
AANVRAAG_AFGEROND,
|
||
FCLT_3D_LOCATIE_KEY
|
||
)
|
||
AS
|
||
SELECT (1 - s.mld_melding_key) AS sort_desc,
|
||
'<a class="details" onclick=''FcltMgr.openDetail("'
|
||
|| 'appl/mld/mld_melding.asp?urole=fe&'
|
||
|| 'mld_key='
|
||
|| s.mld_melding_key
|
||
|| '")''>'
|
||
|| HTF.escape_sc (s.mld_melding_key)
|
||
|| '</a>',
|
||
t.mld_stdmelding_omschrijving,
|
||
s.mld_melding_onderwerp,
|
||
--- s.mld_melding_status,
|
||
u.mld_statuses_omschrijving,
|
||
s.mld_melding_datum,
|
||
p.prs_perslid_naam_full,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
( '<a target ="_blank" href="'
|
||
|| bestand.mld_kenmerkmelding_waarde
|
||
|| '">'
|
||
|| HTF.escape_sc ('PTW-' || s.mld_melding_key)
|
||
|| '</a>'),
|
||
--- bestand.mld_kenmerkmelding_waarde,
|
||
CASE
|
||
WHEN ptw_volledig.mld_kenmerkmelding_waarde IS NOT NULL
|
||
THEN
|
||
'Ja'
|
||
WHEN ptw_volledig.mld_kenmerkmelding_waarde IS NULL
|
||
THEN
|
||
'Nee'
|
||
END
|
||
AS Ptw_Volledig,
|
||
s.mld_alg_locatie_key
|
||
FROM mld_melding s,
|
||
mld_stdmelding t,
|
||
prs_v_perslid_fullnames_all p,
|
||
prs_perslid pl,
|
||
prs_afdeling a,
|
||
mld_statuses u,
|
||
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding k, mld_kenmerk n
|
||
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND n.mld_srtkenmerk_key = 961) bestand,
|
||
(SELECT k.mld_melding_key, k.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding k, mld_kenmerk n
|
||
WHERE n.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND n.mld_srtkenmerk_key = 962) ptw_volledig
|
||
WHERE p.prs_perslid_key = s.prs_perslid_key_voor
|
||
AND s.mld_stdmelding_key = t.mld_stdmelding_key
|
||
AND s.mld_melding_key = bestand.mld_melding_key
|
||
AND s.mld_melding_key = ptw_volledig.mld_melding_key(+)
|
||
AND s.mld_melding_status = u.mld_statuses_key
|
||
AND p.prs_perslid_key=pl.prs_perslid_key
|
||
AND pl.prs_afdeling_key=a.prs_afdeling_key
|
||
AND s.mld_melding_status NOT IN (1, 5, 6, 99);
|
||
|
||
--- Rapportage tbv ombouwwerkzaamheden Eurest
|
||
CREATE OR REPLACE VIEW AKZA_V_WERKZAAMH_EUREST
|
||
(
|
||
LOCATIECODE,
|
||
LOCATIE,
|
||
RUIMTE,
|
||
DATUM,
|
||
VAN,
|
||
TOT,
|
||
VERW_DAT,
|
||
RESNR,
|
||
AANT_PERS,
|
||
AANT_WERK,
|
||
NO_SHOW,
|
||
WIJZIGINGEN,
|
||
AANT_VOORZ,
|
||
LEV_VOORZ,
|
||
VOORZIENING,
|
||
GASTHEER,
|
||
AANVRAGER,
|
||
TEL_AANVRAGER,
|
||
KOSTENPLAATS,
|
||
ORDERNNR,
|
||
OMSCHRIJVING,
|
||
OPMERKING,
|
||
G_VORPAS,
|
||
VOORZ_AANMAAK,
|
||
VOORZ_VERW,
|
||
VOORZ_MUT,
|
||
WIJZ_LAST_MINUTE,
|
||
DEL_LAST_MINUTE
|
||
)
|
||
AS
|
||
SELECT rg.alg_locatie_code,
|
||
rg.alg_locatie_omschrijving,
|
||
r.res_ruimte_nr,
|
||
TRUNC (
|
||
COALESCE (rr.res_rsv_ruimte_van, ra.res_rsv_artikel_levering))
|
||
datum,
|
||
TO_CHAR (rr.res_rsv_ruimte_van, 'HH24:MI') van,
|
||
TO_CHAR (rr.res_rsv_ruimte_tot, 'HH24:MI') tot,
|
||
TRUNC (rr.res_rsv_ruimte_verwijder),
|
||
res.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr resnr,
|
||
rr.res_rsv_ruimte_bezoekers aant_pers,
|
||
'' aant_werk,
|
||
'' no_show,
|
||
'' wijzigingen,
|
||
ra.res_rsv_artikel_aantal,
|
||
TO_CHAR (ra.res_rsv_artikel_levering, 'HH24:MI') levering,
|
||
a.res_artikel_omschrijving,
|
||
h.prs_perslid_naam_full HOST,
|
||
g.prs_perslid_naam_full aanvr,
|
||
gt.prs_perslid_telefoonnr telnr_aanvr,
|
||
k.prs_kostenplaats_nr,
|
||
rr.res_rsv_ruimte_ordernr,
|
||
rr.res_rsv_ruimte_omschrijving,
|
||
rr.res_rsv_ruimte_opmerking,
|
||
g_vorpas.res_kenmerkreservering_waarde g_vorpas,
|
||
ra.res_rsv_artikel_aanmaak,
|
||
ra.res_rsv_artikel_verwijder,
|
||
ra.res_rsv_artikel_mutatie,
|
||
CASE
|
||
WHEN ( (TRUNC (SYSDATE) = TRUNC (ra.res_rsv_artikel_aanmaak))
|
||
OR (TRUNC (SYSDATE) = TRUNC (ra.res_rsv_artikel_mutatie)))
|
||
THEN
|
||
'Ja'
|
||
ELSE
|
||
'Nee'
|
||
END
|
||
LM_MUT,
|
||
CASE
|
||
WHEN TRUNC (SYSDATE) = TRUNC (ra.res_rsv_artikel_verwijder)
|
||
THEN
|
||
'Ja'
|
||
ELSE
|
||
'Nee'
|
||
END
|
||
LM_DEL
|
||
FROM res_rsv_ruimte rr,
|
||
res_reservering res,
|
||
res_rsv_artikel ra,
|
||
res_artikel a,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte r,
|
||
res_alg_ruimte ar,
|
||
alg_v_ruimte_gegevens_all rg,
|
||
prs_v_perslid_fullnames_all h,
|
||
prs_v_perslid_fullnames_all g,
|
||
prs_perslid gt,
|
||
prs_kostenplaats k,
|
||
(SELECT kw.res_kenmerkreservering_waarde, kw.res_rsv_ruimte_key
|
||
FROM res_kenmerk k, res_kenmerkwaarde kw
|
||
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 181) g_vorpas
|
||
WHERE ra.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
||
AND rr.res_reservering_key = res.res_reservering_key
|
||
AND r.res_ruimte_key=ar.res_ruimte_key
|
||
AND ar.alg_ruimte_key=rg.alg_ruimte_key
|
||
AND a.res_artikel_key = ra.res_artikel_key
|
||
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = r.res_ruimte_key
|
||
AND rr.res_rsv_ruimte_host_key = h.prs_perslid_key
|
||
AND rr.res_rsv_ruimte_contact_key = g.prs_perslid_key
|
||
AND g.prs_perslid_key = gt.prs_perslid_key
|
||
AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||
AND rr.res_rsv_ruimte_key = g_vorpas.res_rsv_ruimte_key(+)
|
||
AND (rr.res_rsv_ruimte_verwijder IS NULL
|
||
OR TRUNC (SYSDATE) = TRUNC (rr.res_rsv_ruimte_verwijder));
|
||
|
||
-- Notificatie naar areagedelegeerde AKZA#41201
|
||
-- Voor alle nieuwe meldingen waarbij het vinkje werkvergunning aanstaat (km441) en een waarbij een werkvergunning is aangemaakt (km961)
|
||
-- En waarbij aangegeven is dat de areagedelegeerde geinformeerd moet worden (km1021)
|
||
-- hierbij de areagedelegeerde ophalen die bij de ruimte is vastgelegd (km 1160)
|
||
CREATE OR REPLACE VIEW AKZA_V_NOTI_PTW_AREAGD
|
||
(
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
CODE,
|
||
FAC_SRTNOTIFICATIE_KEY,
|
||
KEY,
|
||
XKEY,
|
||
XEMAIL,
|
||
XMOBILE,
|
||
XSENDER
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
NULL,
|
||
p.prs_perslid_key,
|
||
REPLACE (n.fac_srtnotificatie_oms, '##mldnr##', m.mld_melding_key),
|
||
fac_srtnotificatie_code,
|
||
n.fac_srtnotificatie_key,
|
||
m.mld_melding_key,
|
||
NULL xkey,
|
||
p.prs_perslid_email xemail,
|
||
NULL xmobile,
|
||
'no_reply@akza.facilitor.nl'
|
||
FROM fac_tracking t,
|
||
fac_srtnotificatie n,
|
||
mld_melding m,
|
||
alg_v_allonrgoed_gegevens r,
|
||
alg_onrgoedkenmerk ad,
|
||
prs_perslid p,
|
||
(SELECT km.mld_melding_key
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 441) ptw_nodig,
|
||
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 961) ptw,
|
||
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE k.mld_kenmerk_key = km.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1021) areaged
|
||
WHERE T.FAC_TRACKING_REFKEY = M.MLD_MELDING_KEY
|
||
AND T.FAC_SRTNOTIFICATIE_KEY = 21 --- nieuwe melding
|
||
AND N.FAC_SRTNOTIFICATIE_CODE = 'CUST06'
|
||
AND m.mld_melding_key = ptw_nodig.mld_melding_key
|
||
AND m.mld_melding_key = ptw.mld_melding_key
|
||
AND m.mld_melding_key = areaged.mld_melding_key
|
||
AND m.mld_alg_onroerendgoed_keys = r.alg_onroerendgoed_keys
|
||
AND r.alg_ruimte_key = ad.alg_onrgoed_key
|
||
AND ad.alg_kenmerk_key = 1160
|
||
AND ad.alg_onrgoedkenmerk_waarde = p.prs_perslid_key
|
||
AND t.fac_tracking_datum >
|
||
(SELECT fac_notificatie_job_nextrun
|
||
- fac_notificatie_job_interval / 24
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'AKZA_V_NOTI_PTW_AREAGD')
|
||
AND t.fac_tracking_datum <
|
||
(SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER (fac_notificatie_job_view) =
|
||
'AKZA_V_NOTI_PTW_AREAGD');
|
||
|
||
CREATE OR REPLACE VIEW AKZ_HUUR_VERHUURB_RUIMTE_PERSL
|
||
(
|
||
FCLT_F_COMPANYCODE,
|
||
HIDE_F_COMPANYNAAM,
|
||
FCLT_F_KOSTENPLAATS,
|
||
AFDELING,
|
||
PERSLID_NAAM,
|
||
PERSLID_KOSTENPLAATS,
|
||
FCLT_X_LOCATIE,
|
||
FCLT_F_GEBOUW,
|
||
VERDIEPING,
|
||
RUIMTENR,
|
||
RUIMTESOORT,
|
||
FCLT_3D_GEBOUW_KEY,
|
||
FCLT_3D_AFDELING_KEY,
|
||
BVO
|
||
)
|
||
AS
|
||
SELECT e.prs_afdeling_naam companycode,
|
||
e.prs_afdeling_omschrijving companynaam,
|
||
kp.prs_kostenplaats_nr,
|
||
a.prs_afdeling_omschrijving,
|
||
perslid_wp.prs_perslid_naam_full,
|
||
perslid_wp.prs_kostenplaats_nr,
|
||
rg.alg_locatie_omschrijving || ' (' || rg.alg_locatie_code || ')',
|
||
rg.alg_gebouw_omschrijving,
|
||
rg.alg_verdieping_code,
|
||
rg.alg_ruimte_nr,
|
||
sr.alg_srtruimte_omschrijving,
|
||
rg.alg_gebouw_key,
|
||
a.prs_afdeling_key,
|
||
ROUND (
|
||
SUM(COALESCE (
|
||
rg.alg_ruimte_bruto_vloeropp
|
||
* ra.prs_ruimteafdeling_bezetting
|
||
/ 100,
|
||
0)),
|
||
1)
|
||
bvo
|
||
FROM prs_v_aanwezigafdeling a,
|
||
prs_v_aanwezigafdeling e,
|
||
prs_v_aanwezigruimteafdeling ra,
|
||
alg_v_ruimte_gegevens rg,
|
||
alg_srtruimte sr,
|
||
akza_v_kostenplaats kp,
|
||
(SELECT wp.prs_alg_ruimte_key,
|
||
wp.prs_werkplek_key,
|
||
pwp.prs_perslidwerkplek_bezetting,
|
||
pl.prs_perslid_naam_full,
|
||
a.prs_afdeling_omschrijving,
|
||
kpl.prs_kostenplaats_nr
|
||
FROM prs_werkplek wp,
|
||
prs_perslidwerkplek pwp,
|
||
prs_v_perslid_fullnames_all pl,
|
||
prs_perslid p,
|
||
prs_v_aanwezigafdeling a,
|
||
prs_v_aanwezigafdeling e,
|
||
prs_kostenplaats kpl
|
||
WHERE pwp.prs_werkplek_key = wp.prs_werkplek_key
|
||
AND pl.prs_perslid_key = pwp.prs_perslid_key
|
||
AND a.prs_afdeling_parentkey = e.prs_afdeling_key(+)
|
||
AND e.prs_afdeling_parentkey IS NULL
|
||
AND pl.prs_perslid_key = p.prs_perslid_key
|
||
AND a.prs_afdeling_key = p.prs_afdeling_key
|
||
AND kpl.prs_kostenplaats_key = a.prs_kostenplaats_key)
|
||
perslid_wp
|
||
WHERE a.prs_afdeling_parentkey = e.prs_afdeling_key(+)
|
||
AND e.prs_afdeling_parentkey IS NULL
|
||
AND kp.prs_kostenplaats_key(+) = a.prs_kostenplaats_key
|
||
AND ra.prs_afdeling_key = a.prs_afdeling_key(+)
|
||
AND rg.alg_ruimte_key = ra.alg_ruimte_key(+)
|
||
AND sr.alg_srtruimte_key = rg.alg_srtruimte_key
|
||
AND perslid_wp.prs_alg_ruimte_key(+) = rg.alg_ruimte_key
|
||
GROUP BY e.prs_afdeling_naam,
|
||
e.prs_afdeling_omschrijving,
|
||
kp.prs_kostenplaats_nr,
|
||
a.prs_afdeling_omschrijving,
|
||
rg.alg_locatie_code,
|
||
rg.alg_locatie_omschrijving,
|
||
rg.alg_gebouw_omschrijving,
|
||
rg.alg_gebouw_key,
|
||
rg.alg_verdieping_volgnr,
|
||
rg.alg_verdieping_code,
|
||
rg.alg_ruimte_nr,
|
||
sr.alg_srtruimte_omschrijving,
|
||
a.prs_afdeling_key,
|
||
perslid_wp.prs_perslid_naam_full,
|
||
perslid_wp.prs_afdeling_omschrijving,
|
||
perslid_wp.prs_kostenplaats_nr;
|
||
|
||
CREATE OR REPLACE VIEW AKZA_V_RAP_CTR_LOD
|
||
AS
|
||
(SELECT lod.ins_deel_key,
|
||
og.alg_plaatsaanduiding,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
fac_usrdata_omschr,
|
||
dc.ins_deelsrtcontrole_datum,
|
||
(SELECT icm.ins_controlemode_oms
|
||
FROM ins_controlemode icm
|
||
WHERE icm.ins_controlemode_key = dc.ins_controlemode_key)
|
||
controlemode_omschrijving,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE pf.prs_perslid_key = dc.prs_perslid_key)
|
||
perslid,
|
||
(SELECT lcl.x ('fc2l.fac_code2label_label',
|
||
fc2l.fac_code2label_key,
|
||
fc2l.fac_code2label_label)
|
||
FROM fac_code2label fc2l
|
||
WHERE fc2l.fac_code2label_domein = 'controle'
|
||
AND fc2l.fac_code2label_code = dc.ins_deelsrtcontrole_status)
|
||
deelsrtcontrole_status
|
||
FROM ins_deel lod,
|
||
ins_deelsrtcontrole dc,
|
||
alg_v_allonrgoed_gegevens og,
|
||
(SELECT fac_usrdata_code, fac_usrdata_omschr, km.ins_deel_key
|
||
FROM ins_kenmerkdeel km, fac_usrdata ud
|
||
WHERE km.ins_kenmerk_key = 7025
|
||
AND km.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
|
||
AND fac_usrtab_key = 526) criticaliteit
|
||
WHERE ins_srtdeel_key IN (7765, 7685)
|
||
AND ins_deel_verwijder IS NULL
|
||
AND criticaliteit.ins_deel_key = dc.ins_deel_key
|
||
AND ins_deel_actief = 1
|
||
AND dc.ins_deel_key = lod.ins_deel_key
|
||
AND fac_usrdata_code IN ('A', 'B')
|
||
AND lod.ins_alg_ruimte_key = og.alg_ruimte_key
|
||
AND dc.ins_deelsrtcontrole_status = 6 -- alle voltooide taken
|
||
AND ins_deelsrtcontrole_datum >= ADD_MONTHS (SYSDATE, -1)
|
||
AND ins_deelsrtcontrole_datum <= SYSDATE
|
||
-- 9457 P2, 9458 P3A, 14260 B, 9459 P4, 9460 P5A, 14269 P5C, 9456 P12
|
||
AND ( (og.alg_gebouw_key IN (9457, 9458, 14260, 9459, 9460)
|
||
AND og.alg_verdieping_code IN ('0', '1'))
|
||
OR (og.alg_gebouw_key = 14269 AND og.alg_ruimte_key = 14277)
|
||
OR (og.alg_gebouw_key = 9456 AND og.alg_ruimte_key = 13895))
|
||
UNION ALL
|
||
SELECT d.ins_deel_key,
|
||
d.alg_plaatsaanduiding,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
fac_usrdata_omschr,
|
||
fac.nextcyclusdatedeel (d.ins_deel_key, d.ins_srtcontrole_key, 1),
|
||
'' AS ctrmode,
|
||
prs_perslid_naam_full,
|
||
'' AS status
|
||
FROM (SELECT sc.ins_srtcontrole_key,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
sc.ins_srtcontrole_periode,
|
||
sd.ins_srtdeel_omschrijving,
|
||
pfa.prs_perslid_key,
|
||
pfa.prs_perslid_naam_full,
|
||
criticaliteit.fac_usrdata_omschr,
|
||
og.alg_plaatsaanduiding
|
||
FROM ins_srtcontrole sc,
|
||
ins_discipline di,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_v_aanwezigsrtdeel sd,
|
||
ins_v_aanwezigdeel d,
|
||
alg_v_allonrgoed_gegevens og,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames_all pfa,
|
||
(SELECT fac_usrdata_code,
|
||
fac_usrdata_omschr,
|
||
km.ins_deel_key
|
||
FROM ins_kenmerkdeel km, fac_usrdata ud
|
||
WHERE km.ins_kenmerk_key = 7025
|
||
AND km.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
|
||
AND fac_usrtab_key = 526) criticaliteit
|
||
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||
AND di.ins_discipline_key = sg.ins_discipline_key
|
||
AND COALESCE (d.ins_deel_vervaldatum, SYSDATE + 1) >=
|
||
SYSDATE
|
||
AND p.prs_perslid_key = d.prs_perslid_key_beh
|
||
AND d.ins_alg_ruimte_key = og.alg_ruimte_key
|
||
AND ( (og.alg_gebouw_key IN
|
||
(9457, 9458, 14260, 9459, 9460)
|
||
AND og.alg_verdieping_code IN ('0', '1'))
|
||
OR (og.alg_gebouw_key = 14269
|
||
AND og.alg_ruimte_key = 14277)
|
||
OR (og.alg_gebouw_key = 9456
|
||
AND og.alg_ruimte_key = 13895))
|
||
AND pfa.prs_perslid_key = d.prs_perslid_key_beh
|
||
AND criticaliteit.ins_deel_key = d.ins_deel_key
|
||
AND criticaliteit.fac_usrdata_code IN ('A', 'B') ---lod's met criticaliteit A of B
|
||
AND d.ins_srtdeel_key IN (7765, 7685)) d
|
||
LEFT OUTER JOIN
|
||
ins_srtcontroledl_xcp xcp
|
||
ON xcp.ins_deel_key = d.ins_deel_key
|
||
AND xcp.ins_srtcontrole_key = d.ins_srtcontrole_key
|
||
WHERE COALESCE (xcp.ins_srtcontroledl_xcp_periode,
|
||
d.ins_srtcontrole_periode) > 0
|
||
AND fac.nextcyclusdatedeel (d.ins_deel_key, d.ins_srtcontrole_key, 1) <=
|
||
ADD_MONTHS (SYSDATE, 1)
|
||
AND fac.nextcyclusdatedeel (d.ins_deel_key, d.ins_srtcontrole_key, 1) >=
|
||
SYSDATE
|
||
AND d.ins_deel_key NOT IN --- als een inspectie al is ingepland weegt dat zwaarder dan de oorspronkelijke datum, object komt op de lijst als plandatum komende maand is
|
||
(SELECT ins_deel_key
|
||
FROM ins_v_udr_deelinspect ins, ins_deel lod
|
||
WHERE ins_deelsrtcontrole_plandatum IS NOT NULL
|
||
AND ins_deelsrtcontrole_datum IS NULL
|
||
AND lod.ins_deel_key = ins.deel_key
|
||
AND lod.ins_srtdeel_key IN (7765, 7685)
|
||
AND lod.ins_deel_verwijder IS NULL)
|
||
UNION ALL
|
||
SELECT lod.ins_deel_key,
|
||
og.alg_plaatsaanduiding,
|
||
lod.ins_deel_omschrijving,
|
||
lod.ins_deel_opmerking,
|
||
fac_usrdata_omschr,
|
||
ins_deelsrtcontrole_plandatum,
|
||
'' ctrmode,
|
||
perslid,
|
||
deelsrtcontrole_status
|
||
FROM ins_v_udr_deelinspect ins,
|
||
ins_deel lod,
|
||
alg_v_allonrgoed_gegevens og,
|
||
(SELECT fac_usrdata_code, fac_usrdata_omschr, km.ins_deel_key
|
||
FROM ins_kenmerkdeel km, fac_usrdata ud
|
||
WHERE km.ins_kenmerk_key = 7025
|
||
AND km.ins_kenmerkdeel_waarde = ud.fac_usrdata_key
|
||
AND fac_usrtab_key = 526) criticaliteit
|
||
WHERE ins_deelsrtcontrole_plandatum IS NOT NULL
|
||
AND ins_deelsrtcontrole_datum IS NULL
|
||
AND lod.ins_alg_ruimte_key = og.alg_ruimte_key
|
||
AND criticaliteit.ins_deel_key = lod.ins_deel_key
|
||
AND fac_usrdata_code IN ('A', 'B')
|
||
AND lod.ins_deel_key = ins.deel_key
|
||
AND lod.ins_srtdeel_key IN (7765, 7685) --- LOD's
|
||
AND lod.ins_deel_verwijder IS NULL
|
||
AND actief = 'ja'
|
||
AND ( (og.alg_gebouw_key IN (9457, 9458, 14260, 9459, 9460)
|
||
AND og.alg_verdieping_code IN ('0', '1'))
|
||
OR (og.alg_gebouw_key = 14269 AND og.alg_ruimte_key = 14277)
|
||
OR (og.alg_gebouw_key = 9456 AND og.alg_ruimte_key = 13895))
|
||
AND ins_deelsrtcontrole_plandatum <= ADD_MONTHS (SYSDATE, 1)
|
||
AND ins_deelsrtcontrole_plandatum >= SYSDATE);
|
||
|
||
CREATE OR REPLACE VIEW AKZA_V_RUIMTES
|
||
(
|
||
ruimte_key,
|
||
ruimte_omschrijving,
|
||
ruimte_verwijder
|
||
)
|
||
AS
|
||
SELECT alg_ruimte_key,
|
||
alg_ruimte_aanduiding || ' - ' || alg_ruimte_omschrijving,
|
||
alg_ruimte_verwijder
|
||
FROM alg_v_ruimte_gegevens_all
|
||
WHERE alg_locatie_code IN ('SSCA', 'AMB')
|
||
AND (alg_srtruimte_key IN (1021, 962, 963, 1029, 464, 1041, 1028)
|
||
OR alg_srtruimte_key IS NULL);
|
||
|
||
CREATE OR REPLACE VIEW AKZA_V_RAP_TRAINING
|
||
(
|
||
TRAINING,
|
||
MEDEWERKER,
|
||
AFDELING,
|
||
VERANTW_COORDINATOR,
|
||
OMSCHR_TRAINING,
|
||
REULTAAT,
|
||
TOELICHTING_RESULTAAT,
|
||
DATUM_CERTIFICERING,
|
||
GEPL_DATUM_CERTIFICERING,
|
||
STATUS_CERTIFICERING
|
||
)
|
||
AS
|
||
(SELECT ins_srtdeel_upper training,
|
||
alg_plaatsaanduiding medewerker,
|
||
prs_afdeling_omschrijving afdeling,
|
||
beheerder verantw_coordinator,
|
||
srtcontrole_omschrijving omschr_training,
|
||
controlemode_omschrijving reultaat,
|
||
ins_deelsrtcontrole_opmerking toelichting_resultaat,
|
||
ins_deelsrtcontrole_datum datum_certificering,
|
||
ins_deelsrtcontrole_plandatum gepl_datum_certificering,
|
||
deelsrtcontrole_status status_certificering
|
||
FROM ins_v_deel_gegevens o, ins_v_udr_deelinspect c
|
||
WHERE ins_srtgroep_upper = 'TRAINING EN OPLEIDING'
|
||
AND o.ins_deel_key = c.deel_key(+));
|
||
|
||
-- Tbv van de aanvraag van (tijdelijke) badges is het nodig om een onderscheid te kunnen maken tussen medewerkers intern (incl. Teijin) en contractors
|
||
CREATE OR REPLACE VIEW AKZA_V_CONTRACTORS
|
||
(
|
||
PRS_PERSLID_KEY,
|
||
NAAM,
|
||
PRS_PERSLID_VERWIJDER
|
||
)
|
||
AS
|
||
SELECT p.prs_perslid_key,
|
||
p.prs_perslid_string || ' / ' || fac_usrdata_code,
|
||
p.prs_perslid_verwijder
|
||
FROM AKZA_V_PERSLID p, PRS_KENMERKLINK kl, FAC_USRDATA ud
|
||
WHERE prs_link_key = prs_perslid_key
|
||
AND prs_kenmerk_key = 1544
|
||
AND fac_usrtab_key = 529
|
||
AND prs_kenmerklink_waarde = fac_usrdata_key
|
||
AND ud.fac_usrdata_verwijder is null
|
||
AND (fac_usrdata_vervaldatum > sysdate or fac_usrdata_vervaldatum is null);
|
||
|
||
CREATE OR REPLACE VIEW AKZA_V_PERSLID_INTERN
|
||
(
|
||
prs_perslid_key,
|
||
naam,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT p.prs_perslid_key,
|
||
p.prs_perslid_string || ' / ' || fac_usrdata_code,
|
||
p.prs_perslid_verwijder
|
||
FROM AKZA_V_PERSLID p, PRS_KENMERKLINK kl, FAC_USRDATA ud
|
||
WHERE prs_link_key = prs_perslid_key
|
||
AND prs_kenmerk_key = 1520
|
||
AND fac_usrtab_key = 527
|
||
AND prs_kenmerklink_waarde = fac_usrdata_key
|
||
AND ud.fac_usrdata_verwijder is null
|
||
AND (fac_usrdata_vervaldatum > sysdate or fac_usrdata_vervaldatum is null);
|
||
|
||
CREATE OR REPLACE VIEW AKZA_V_AANVR_TBADGE
|
||
(
|
||
PRS_PERSLID_KEY,
|
||
NAAM,
|
||
PRS_PERSLID_VERWIJDER
|
||
)
|
||
AS
|
||
(SELECT "PRS_PERSLID_KEY", "NAAM", "PRS_PERSLID_VERWIJDER"
|
||
FROM AKZA_V_PERSLID_INTERN
|
||
UNION ALL
|
||
SELECT "PRS_PERSLID_KEY", "NAAM", "PRS_PERSLID_VERWIJDER"
|
||
FROM AKZA_V_CONTRACTORS);
|
||
|
||
--------------------------------------------------------------------------------------------------
|
||
--------------------------------------------------------------------------------------------------
|
||
|
||
------ 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 |