6096 lines
259 KiB
SQL
6096 lines
259 KiB
SQL
--
|
|
-- AKZA.SQL
|
|
-- Facilitor inrichting voor Akzo Nobel Arnhem
|
|
-- (c) 1999-2010 SG|facilitor bv
|
|
--
|
|
-- $Revision: 116 $
|
|
-- $Modtime: 2-12-11 15:21 $
|
|
--
|
|
SPOOL xAKZA.LST
|
|
SET ECHO ON
|
|
--------------------------------------- VASTE RAPPORTAGES ----------------------------------------
|
|
--------------------------------------- VASTE RAPPORTAGES ----------------------------------------
|
|
--------------------------------------- VASTE RAPPORTAGES ----------------------------------------
|
|
-- 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;
|
|
FUNCTION akz_f_pct_gemeensch_hor (VerdiepingKey IN NUMBER) RETURN NUMBER IS
|
|
GebouwKey NUMBER(10,2);
|
|
opp_verhuurbaar_hor 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 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
|
|
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_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_hor/opp_verhuurbaar_hor;
|
|
END akz_f_pct_gemeensch_hor;
|
|
FUNCTION akz_f_pct_gemeensch_ver (VerdiepingKey IN NUMBER) RETURN NUMBER IS
|
|
GebouwKey NUMBER(10,2);
|
|
opp_verhuurbaar_ver NUMBER(10,2);
|
|
opp_gemeenschappelijk_ver 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),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;
|
|
RETURN opp_gemeenschappelijk_ver/opp_verhuurbaar_ver;
|
|
END akz_f_pct_gemeensch_ver;
|
|
|
|
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;
|
|
/
|
|
|
|
|
|
|
|
-- Rapportages
|
|
-- 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;
|
|
|
|
/* Formatted on 2005/06/13 10:45 (Formatter Plus v4.8.5) */
|
|
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
|
|
/* Formatted on 2005/06/13 10:46 (Formatter Plus v4.8.5) */
|
|
CREATE OR REPLACE VIEW akz_verhruimte_per_gebouw (fclt_f_gebouw,
|
|
fclt_3d_gebouw_key,
|
|
oppervlakte,
|
|
oppervlakte_bruto,
|
|
fclt_3d_locatie_key
|
|
)
|
|
AS
|
|
SELECT 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_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
|
|
GROUP BY g.alg_gebouw_omschrijving, g.alg_gebouw_key, g.alg_locatie_key;
|
|
|
|
-- BELANGRIJKE VIEW, zorgt voor juiste formatting bij exports
|
|
-- Gaat uit van een kostenplaats_nr van maximaal 7 significante postities!
|
|
CREATE OR REPLACE VIEW akza_v_kostenplaats
|
|
AS
|
|
SELECT prs_kostenplaats_key,
|
|
DECODE (INSTR (prs_kostenplaats_nr, '('),
|
|
0, LPAD (prs_kostenplaats_nr, 10, '0'),
|
|
SUBSTR ('000' || prs_kostenplaats_nr, 1, 10)
|
|
) prs_kostenplaats_nr,
|
|
UPPER (DECODE (INSTR (prs_kostenplaats_nr, '('),
|
|
0, LPAD (prs_kostenplaats_nr, 10, '0'),
|
|
SUBSTR ('000' || prs_kostenplaats_nr, 1, 10)
|
|
)
|
|
) prs_kostenplaats_upper,
|
|
prs_kostenplaats_nr fclt_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_perslid_key,
|
|
prs_kostenplaats_module, prs_kostenplaats_begin, prs_kostenplaats_eind, prs_kostenplaatsgrp_key,
|
|
prs_kostenplaats_aanmaak, prs_kostenplaats_verwijder
|
|
FROM prs_kostenplaats;
|
|
|
|
|
|
-- Now with 3D authorization on Building and organization
|
|
/* Formatted on 2005/04/06 23:48 (Formatter Plus v4.8.5) */
|
|
--CREATE OR REPLACE VIEW akz_huur_verhuurbaar (fclt_f_companycode,
|
|
-- fclt_f_companynaam,
|
|
-- fclt_f_kostenplaats,
|
|
-- afdeling,
|
|
-- gebouw,
|
|
-- ruimtesoort,
|
|
-- fclt_3d_gebouw_key,
|
|
-- fclt_3d_afdeling_key,
|
|
-- netto,
|
|
-- bruto
|
|
-- )
|
|
--AS
|
|
-- SELECT e.prs_afdeling_naam companycode,
|
|
-- e.prs_afdeling_omschrijving companynaam,
|
|
-- kp.prs_kostenplaats_nr kostenplaats,
|
|
-- a.prs_afdeling_naam afdeling, w.alg_gebouw_omschrijving gebouw,
|
|
-- sr.alg_srtruimte_omschrijving ruimtesoort, w.alg_gebouw_key,
|
|
-- a.prs_afdeling_key,
|
|
-- TO_NUMBER
|
|
-- (TO_CHAR (SUM (NVL ( w.prs_werkplek_opp
|
|
-- * w.prs_perslidwerkplek_bezetting
|
|
-- / 100,
|
|
-- 0
|
|
-- )
|
|
-- ),
|
|
-- '9999999D9'
|
|
-- )
|
|
-- ) netto,
|
|
-- TO_NUMBER
|
|
-- (TO_CHAR (SUM ( NVL ( w.prs_werkplek_opp
|
|
-- * w.prs_perslidwerkplek_bezetting
|
|
-- / 100,
|
|
-- 0
|
|
-- )
|
|
-- * ( 1
|
|
-- + akz.akz_f_pct_gemeensch
|
|
-- (w.alg_verdieping_key)
|
|
-- )
|
|
-- ),
|
|
-- '9999999D9'
|
|
-- )
|
|
-- ) bruto
|
|
-- FROM prs_v_perslidwerkplek_gegevens w,
|
|
-- prs_v_aanwezigafdeling a,
|
|
-- akza_v_kostenplaats kp,
|
|
-- prs_v_aanwezigperslid p,
|
|
-- alg_ruimte r,
|
|
-- alg_srtruimte sr,
|
|
-- prs_afdeling e
|
|
-- WHERE w.prs_perslid_key = p.prs_perslid_key
|
|
-- AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
-- AND a.prs_afdeling_parentkey = e.prs_afdeling_key(+)
|
|
-- AND e.prs_afdeling_parentkey IS NULL
|
|
-- AND w.prs_perslid_key IS NOT NULL
|
|
-- AND r.alg_ruimte_key = w.alg_ruimte_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
|
|
-- AND kp.prs_kostenplaats_key = a.prs_kostenplaats_key
|
|
-- GROUP BY e.prs_afdeling_naam,
|
|
-- e.prs_afdeling_omschrijving,
|
|
-- kp.prs_kostenplaats_nr,
|
|
-- a.prs_afdeling_naam,
|
|
-- w.alg_gebouw_omschrijving,
|
|
-- sr.alg_srtruimte_omschrijving,
|
|
-- w.alg_gebouw_key,
|
|
-- a.prs_afdeling_key
|
|
-- UNION
|
|
-- SELECT e.prs_afdeling_naam companycode,
|
|
-- e.prs_afdeling_omschrijving companynaam,
|
|
-- kp.prs_kostenplaats_nr kostenplaats,
|
|
-- a.prs_afdeling_naam afdeling, w.alg_gebouw_omschrijving gebouw,
|
|
-- sr.alg_srtruimte_omschrijving ruimtesoort, w.alg_gebouw_key,
|
|
-- a.prs_afdeling_key,
|
|
-- TO_NUMBER
|
|
-- (TO_CHAR (SUM (NVL ( w.prs_werkplek_opp
|
|
-- * w.prs_perslidwerkplek_bezetting
|
|
-- / 100,
|
|
-- 0
|
|
-- )
|
|
-- ),
|
|
-- '9999999D9'
|
|
-- )
|
|
-- ) netto,
|
|
-- TO_NUMBER
|
|
-- (TO_CHAR (SUM ( NVL ( w.prs_werkplek_opp
|
|
-- * w.prs_perslidwerkplek_bezetting
|
|
-- / 100,
|
|
-- 0
|
|
-- )
|
|
-- * ( 1
|
|
-- + akz.akz_f_pct_gemeensch
|
|
-- (w.alg_verdieping_key)
|
|
-- )
|
|
-- ),
|
|
-- '9999999D9'
|
|
-- )
|
|
-- ) bruto
|
|
-- FROM prs_v_perslidwerkplek_gegevens w,
|
|
-- prs_v_aanwezigafdeling a,
|
|
-- akza_v_kostenplaats kp,
|
|
-- alg_ruimte r,
|
|
-- alg_srtruimte sr,
|
|
-- prs_afdeling e
|
|
-- WHERE w.prs_afdeling_key = a.prs_afdeling_key
|
|
-- AND w.prs_afdeling_key IS NOT NULL
|
|
-- AND a.prs_afdeling_parentkey = e.prs_afdeling_key(+)
|
|
-- AND e.prs_afdeling_parentkey IS NULL
|
|
-- AND r.alg_ruimte_key = w.alg_ruimte_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
|
|
-- AND kp.prs_kostenplaats_key = a.prs_kostenplaats_key
|
|
-- GROUP BY e.prs_afdeling_naam,
|
|
-- e.prs_afdeling_omschrijving,
|
|
-- kp.prs_kostenplaats_nr,
|
|
-- a.prs_afdeling_naam,
|
|
-- w.alg_gebouw_omschrijving,
|
|
-- sr.alg_srtruimte_omschrijving,
|
|
-- w.alg_gebouw_key,
|
|
-- a.prs_afdeling_key;
|
|
CREATE OR REPLACE VIEW akz_huur_verhuurbaar
|
|
(
|
|
FCLT_F_COMPANYCODE,
|
|
FCLT_F_COMPANYNAAM,
|
|
FCLT_F_KOSTENPLAATS,
|
|
AFDELING,
|
|
GEBOUW,
|
|
RUIMTESOORT,
|
|
FCLT_3D_GEBOUW_KEY,
|
|
FCLT_3D_AFDELING_KEY,
|
|
NETTO,
|
|
BRUTO
|
|
)
|
|
AS
|
|
SELECT e.prs_afdeling_naam companycode,
|
|
e.prs_afdeling_omschrijving companynaam,
|
|
kp.prs_kostenplaats_nr kostenplaats,
|
|
a.prs_afdeling_naam afdeling,
|
|
rg.alg_gebouw_omschrijving gebouw,
|
|
sr.alg_srtruimte_omschrijving ruimtesoort,
|
|
rg.alg_gebouw_key,
|
|
a.prs_afdeling_key,
|
|
TO_NUMBER( TO_CHAR( SUM( NVL( rg.alg_ruimte_bruto_vloeropp
|
|
* ra.prs_ruimteafdeling_bezetting
|
|
/ 100,
|
|
0)),
|
|
'9999999D9'))
|
|
netto,
|
|
TO_NUMBER( TO_CHAR( SUM( NVL ( rg.alg_ruimte_bruto_vloeropp
|
|
* ra.prs_ruimteafdeling_bezetting
|
|
/ 100,
|
|
0)
|
|
* (1 + akz.akz_f_pct_gemeensch (
|
|
rg.alg_verdieping_key))),
|
|
'9999999D9'))
|
|
bruto
|
|
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 e.prs_afdeling_key(+) = a.prs_afdeling_parentkey
|
|
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 sr.prs_verhuurbaar IS NOT NULL
|
|
AND sr.prs_bevat_werkplek IS NOT NULL
|
|
GROUP BY e.prs_afdeling_naam,
|
|
e.prs_afdeling_omschrijving,
|
|
kp.prs_kostenplaats_nr,
|
|
a.prs_afdeling_naam,
|
|
rg.alg_gebouw_omschrijving,
|
|
rg.alg_gebouw_key,
|
|
sr.alg_srtruimte_omschrijving,
|
|
a.prs_afdeling_key;
|
|
|
|
|
|
-- Now with 3D authorization on Building and organization
|
|
--CREATE OR REPLACE VIEW AKZ_HUUR_VERHUURBAAR_RUIMTE
|
|
--(FCLT_F_COMPANYCODE, FCLT_F_KOSTENPLAATS, AFDELING, FCLT_F_GEBOUW, HIDE_F_VERDIEPINGNR, VERDIEPING,
|
|
-- RUIMTENR, RUIMTESOORT, FCLT_3D_GEBOUW_KEY, FCLT_3D_AFDELING_KEY, NETTO, BRUTO)
|
|
--AS
|
|
--SELECT E.prs_afdeling_naam CompanyCode
|
|
-- , KP.prs_kostenplaats_nr
|
|
-- , A.prs_afdeling_omschrijving
|
|
-- , W.alg_gebouw_omschrijving
|
|
-- , W.alg_verdieping_volgnr
|
|
-- , W.alg_verdieping_code
|
|
-- , 'R'||R.alg_ruimte_nr
|
|
-- , SR.alg_srtruimte_omschrijving
|
|
-- , w.alg_gebouw_key
|
|
-- , a.prs_afdeling_key
|
|
-- , TO_NUMBER(TO_CHAR(SUM(NVL(W.prs_werkplek_opp*W.prs_perslidwerkplek_bezetting/100,0)) ,'9999999D9')) Netto
|
|
-- , TO_NUMBER(TO_CHAR(SUM(NVL(W.prs_werkplek_opp*W.prs_perslidwerkplek_bezetting/100,0)*(1+Akz.akz_f_pct_gemeensch(W.alg_verdieping_key))), '9999999D9')) Bruto
|
|
-- FROM prs_v_perslidwerkplek_gegevens W
|
|
-- , prs_v_aanwezigafdeling A
|
|
-- , prs_v_aanwezigperslid P
|
|
-- , ALG_RUIMTE R
|
|
-- , ALG_SRTRUIMTE SR
|
|
-- , PRS_AFDELING E
|
|
-- , akza_v_kostenplaats KP
|
|
-- WHERE W.prs_perslid_key = P.prs_perslid_key
|
|
-- AND P.prs_afdeling_key = A.prs_afdeling_key
|
|
-- AND A.prs_afdeling_parentkey = E.prs_afdeling_key(+)
|
|
-- AND E.prs_afdeling_parentkey IS NULL
|
|
-- AND A.prs_kostenplaats_key = KP.prs_kostenplaats_key
|
|
-- AND W.prs_perslid_key IS NOT NULL
|
|
-- AND R.alg_ruimte_key = W.alg_ruimte_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
|
|
-- GROUP BY E.prs_afdeling_naam
|
|
-- , KP.prs_kostenplaats_nr
|
|
-- , A.prs_afdeling_omschrijving
|
|
-- , W.alg_gebouw_omschrijving
|
|
-- , W.alg_verdieping_volgnr
|
|
-- , W.alg_verdieping_code
|
|
-- , R.alg_ruimte_nr
|
|
-- , SR.alg_srtruimte_omschrijving
|
|
-- , w.alg_gebouw_key
|
|
-- , a.prs_afdeling_key
|
|
-- UNION
|
|
-- SELECT E.prs_afdeling_naam
|
|
-- , KP.prs_kostenplaats_nr
|
|
-- , A.prs_afdeling_omschrijving
|
|
-- , W.alg_gebouw_omschrijving
|
|
-- , W.alg_verdieping_volgnr
|
|
-- , W.alg_verdieping_code
|
|
-- , 'R'||R.alg_ruimte_nr Ruimtenr
|
|
-- , SR.alg_srtruimte_omschrijving
|
|
-- , w.alg_gebouw_key
|
|
-- , a.prs_afdeling_key
|
|
-- , TO_NUMBER(TO_CHAR(SUM(NVL(W.prs_werkplek_opp*W.prs_perslidwerkplek_bezetting/100,0)) ,'9999999D9')) Netto
|
|
-- , TO_NUMBER(TO_CHAR(SUM(NVL(W.prs_werkplek_opp*W.prs_perslidwerkplek_bezetting/100,0)*(1+Akz.akz_f_pct_gemeensch(W.alg_verdieping_key))), '9999999D9')) Bruto
|
|
-- FROM prs_v_perslidwerkplek_gegevens W
|
|
-- , prs_v_aanwezigafdeling A
|
|
-- , ALG_RUIMTE R
|
|
-- , ALG_SRTRUIMTE SR
|
|
-- , PRS_AFDELING E
|
|
-- , akza_v_kostenplaats KP
|
|
-- WHERE W.prs_afdeling_key = A.prs_afdeling_key
|
|
-- AND W.prs_afdeling_key IS NOT NULL
|
|
-- AND A.prs_afdeling_parentkey = E.prs_afdeling_key(+)
|
|
-- AND E.prs_afdeling_parentkey IS NULL
|
|
-- AND A.prs_kostenplaats_key = KP.prs_kostenplaats_key
|
|
-- AND R.alg_ruimte_key = W.alg_ruimte_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
|
|
-- GROUP BY E.prs_afdeling_naam
|
|
-- , KP.prs_kostenplaats_nr
|
|
-- , A.prs_afdeling_omschrijving
|
|
-- , W.alg_gebouw_omschrijving
|
|
-- , W.alg_verdieping_volgnr
|
|
-- , W.alg_verdieping_code
|
|
-- , R.alg_ruimte_nr
|
|
-- , SR.alg_srtruimte_omschrijving
|
|
-- , w.alg_gebouw_key
|
|
-- , a.prs_afdeling_key;
|
|
CREATE OR REPLACE VIEW akz_huur_verhuurbaar_ruimte
|
|
(
|
|
FCLT_F_COMPANYCODE,
|
|
FCLT_F_KOSTENPLAATS,
|
|
AFDELING,
|
|
FCLT_F_GEBOUW,
|
|
HIDE_F_VERDIEPINGNR,
|
|
VERDIEPING,
|
|
RUIMTENR,
|
|
RUIMTESOORT,
|
|
FCLT_3D_GEBOUW_KEY,
|
|
FCLT_3D_AFDELING_KEY,
|
|
NETTO,
|
|
BRUTO
|
|
)
|
|
AS
|
|
SELECT e.prs_afdeling_naam companycode,
|
|
kp.prs_kostenplaats_nr,
|
|
a.prs_afdeling_omschrijving,
|
|
rg.alg_gebouw_omschrijving,
|
|
rg.alg_verdieping_volgnr,
|
|
rg.alg_verdieping_code,
|
|
'R' || rg.alg_ruimte_nr,
|
|
sr.alg_srtruimte_omschrijving,
|
|
rg.alg_gebouw_key,
|
|
a.prs_afdeling_key,
|
|
TO_NUMBER( TO_CHAR( SUM( NVL( rg.alg_ruimte_bruto_vloeropp
|
|
* ra.prs_ruimteafdeling_bezetting
|
|
/ 100,
|
|
0)),
|
|
'9999999D9'))
|
|
netto,
|
|
TO_NUMBER( TO_CHAR( SUM( NVL( rg.alg_ruimte_bruto_vloeropp
|
|
* ra.prs_ruimteafdeling_bezetting
|
|
/ 100,
|
|
0)
|
|
* (1 + akz.akz_f_pct_gemeensch (
|
|
rg.alg_verdieping_key))),
|
|
'9999999D9'))
|
|
bruto
|
|
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 e.prs_afdeling_parentkey(+) = a.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 sr.prs_verhuurbaar IS NOT NULL
|
|
AND sr.prs_bevat_werkplek IS NOT NULL
|
|
GROUP BY e.prs_afdeling_naam,
|
|
kp.prs_kostenplaats_nr,
|
|
a.prs_afdeling_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;
|
|
|
|
-- 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.akz_schnivo_omschrijving fclt_f_schoonmaakniveau,
|
|
ROUND(n.akz_schnivo_kengetal * 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,
|
|
akz_schnivo n,
|
|
fac_usrdata 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 = n.akz_schnivo_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
|
|
/
|
|
|
|
-- 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;
|
|
|
|
--------------------------------------- MAPGUIDE VIEWS ----------------------------------------
|
|
--------------------------------------- MAPGUIDE VIEWS ----------------------------------------
|
|
--------------------------------------- MAPGUIDE VIEWS ----------------------------------------
|
|
|
|
--- 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_perslidwerkplek_verwijder IS NULL
|
|
AND w.prs_werkplek_verwijder 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_perslidwerkplek_verwijder IS NULL
|
|
AND w.prs_werkplek_verwijder 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;
|
|
|
|
--- voor room_occ thema
|
|
--CREATE OR REPLACE VIEW akza_v_cad_ruimte_bezetting (ALG_RUIMTE_KEY, WAARDE)
|
|
--AS
|
|
--SELECT r.alg_ruimte_key,
|
|
-- to_char(DECODE (SUM (arno),
|
|
-- 0, akz.akz_f_cad_ruimte_bezetting( (COUNT (prs_werkplek_key) - SUM (aantal_leeg))
|
|
-- / COUNT (prs_werkplek_key)
|
|
-- * 100
|
|
-- ),
|
|
-- 150
|
|
-- ))
|
|
-- FROM (SELECT w.prs_alg_ruimte_key alg_ruimte_key, w.prs_werkplek_key,
|
|
-- SUM (prs_perslidwerkplek_bezetting) "PRS_WERKPLEK_BEZETTING",
|
|
-- SUM (DECODE (INSTR (prs_perslid_upper, 'LEEG'), 0, 0, 1)) "AANTAL_LEEG",
|
|
-- SUM (DECODE (INSTR (prs_afdeling_upper, 'NIET VERH'), 0, 0, 1)) "ARNO"
|
|
-- FROM prs_v_aanwezigperslidwerkplek pw,
|
|
-- prs_v_aanwezigwerkplek w,
|
|
-- prs_perslid p,
|
|
-- prs_afdeling a
|
|
-- WHERE p.prs_perslid_key = pw.prs_perslid_key
|
|
-- AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
-- AND w.prs_werkplek_key = pw.prs_werkplek_key(+)
|
|
-- GROUP BY prs_alg_ruimte_key, w.prs_werkplek_key) x,
|
|
-- alg_ruimte r
|
|
-- WHERE r.alg_ruimte_key = x.alg_ruimte_key
|
|
-- 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_v_aanwezigwerkplek awp,
|
|
prs_v_aanwezigperslidwerkplek 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;
|
|
|
|
|
|
------------------------------------ SERVICEDESK RAPPORTAGE FUNCTIES-----------------------------------
|
|
------------------------------------ SERVICEDESK RAPPORTAGE FUNCTIES-----------------------------------
|
|
------------------------------------ SERVICEDESK RAPPORTAGE FUNCTIES-----------------------------------
|
|
|
|
-- 001 Uitgegeven aan uitvoerende: Servicedesk.
|
|
/* Formatted on 30-6-2010 6:50:07 (QP5 v5.136.908.31019) */
|
|
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.
|
|
/* Formatted on 30-6-2010 6:49:23 (QP5 v5.136.908.31019) */
|
|
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.
|
|
/* Formatted on 30-6-2010 6:48:43 (QP5 v5.136.908.31019) */
|
|
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.
|
|
/* Formatted on 30-6-2010 6:47:38 (QP5 v5.136.908.31019) */
|
|
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.
|
|
/* Formatted on 30-6-2010 6:46:48 (QP5 v5.136.908.31019) */
|
|
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".
|
|
/* Formatted on 30-6-2010 6:45:33 (QP5 v5.136.908.31019) */
|
|
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.
|
|
/* Formatted on 30-6-2010 6:42:27 (QP5 v5.136.908.31019) */
|
|
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-%');
|
|
|
|
|
|
/* Formatted on 30-6-2010 6:43:54 (QP5 v5.136.908.31019) */
|
|
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
|
|
/* Formatted on 30-6-2010 6:51:06 (QP5 v5.136.908.31019) */
|
|
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);
|
|
|
|
CREATE OR REPLACE VIEW FAC_V_RAP_GROEPLEDEN
|
|
(NAAM, FCLT_F_LOGIN, FCLT_F_GROEP, AANTAL_RECHTEN)
|
|
AS
|
|
SELECT p.prs_perslid_naam, p.prs_perslid_oslogin,
|
|
gr.fac_groep_omschrijving, TO_CHAR(COUNT(*))
|
|
FROM FAC_GEBRUIKERSGROEP gg,
|
|
prs_v_aanwezigperslid p,
|
|
FAC_GROEP gr,
|
|
FAC_GROEPRECHTEN grr
|
|
WHERE p.prs_perslid_key = gg.prs_perslid_key
|
|
AND gg.fac_groep_key = gr.fac_groep_key
|
|
AND gr.FAC_GROEP_KEY = grr.fac_groep_key
|
|
AND gr.fac_groep_verwijder IS NULL
|
|
GROUP BY p.prs_perslid_naam, p.prs_perslid_oslogin,
|
|
gr.fac_groep_omschrijving;
|
|
/
|
|
|
|
|
|
-- 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_v_aanwezigperslidwerkplek 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
|
|
(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
|
|
/
|
|
|
|
|
|
|
|
------------------------------------ VIEWS voor de 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,
|
|
TO_CHAR (datum_van, 'dd-mm-yyyy') AS fclt_d_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 TO_CHAR (datum_van, 'dd-mm-yyyy') AS fclt_d_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,
|
|
TO_CHAR (datum_van, 'dd-mm-yyyy') AS fclt_d_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;
|
|
/
|
|
|
|
|
|
|
|
------------------------------------ OVERIGE RAPPORTAGE FUNCTIES-----------------------------------
|
|
|
|
-- NB: deze view wordt (ook) gebruikt voor de exportfunctie AKZA_SELECT_EXPLANON
|
|
-- Aanpassingen zullen dus mogelijk ook daar effect hebben!
|
|
CREATE OR REPLACE VIEW akza_v_personenvoorplanon (naam,
|
|
keynr,
|
|
company,
|
|
kostenplaats,
|
|
gebouw,
|
|
etage,
|
|
kamernummer,
|
|
telefoon,
|
|
mobiel_tel,
|
|
email,
|
|
loginnaam,
|
|
bron
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_naam naam, TO_CHAR (p.prs_perslid_key) keynr,
|
|
a0.prs_afdeling_naam company,
|
|
(select k.prs_kostenplaats_nr from akza_v_kostenplaats k where k.prs_kostenplaats_key = a1.prs_kostenplaats_key) kostenplaats,
|
|
wp.alg_gebouw_code gebouw, wp.alg_verdieping_code etage,
|
|
wp.alg_ruimte_nr kamernummer, p.prs_perslid_telefoonnr telefoon,
|
|
p.prs_perslid_mobiel mobiel_tel,
|
|
p.prs_perslid_email email, prs_perslid_oslogin loginnaam,
|
|
'ALF_TB/Facilitor' bron
|
|
FROM prs_v_aanwezigperslid p,
|
|
prs_afdeling a0,
|
|
prs_afdeling a1,
|
|
prs_perslidwerkplek pwp,
|
|
prs_v_werkplek_gegevens wp
|
|
WHERE p.prs_afdeling_key = a1.prs_afdeling_key
|
|
AND a0.prs_afdeling_key = a1.prs_afdeling_parentkey
|
|
AND p.prs_perslid_key = pwp.prs_perslid_key(+)
|
|
AND pwp.prs_werkplek_key = wp.prs_werkplek_key
|
|
AND p.prs_perslid_naam NOT LIKE '%]'
|
|
AND ( wp.alg_gebouw_code NOT LIKE 'Z99' -- Niet verhuisgebouw maar wel ruimte 994 daarin
|
|
OR (wp.alg_verdieping_code = '99' AND wp.alg_ruimte_nr = '994')
|
|
)
|
|
AND p.prs_perslid_naam NOT LIKE 'SYSTEEM%'
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
/
|
|
|
|
-- AKZA#566
|
|
CREATE OR REPLACE VIEW AKZA_V_PERSONENVOORPLANONCSV
|
|
(EXPORT)
|
|
AS
|
|
SELECT p.prs_perslid_naam||';'||TO_CHAR (p.prs_perslid_key)||';'||
|
|
a0.prs_afdeling_naam||';'||
|
|
(select k.prs_kostenplaats_nr from akza_v_kostenplaats k where k.prs_kostenplaats_key = a1.prs_kostenplaats_key)
|
|
||';'||wp.alg_gebouw_code||';'||wp.alg_verdieping_code||';'||wp.alg_ruimte_nr||';'||
|
|
p.prs_perslid_telefoonnr||';'||k2.prs_kenmerklink_waarde||';'||
|
|
k1.prs_kenmerklink_waarde||';'||prs_perslid_oslogin||';'||
|
|
'ALF_TB/Facilitor' export
|
|
FROM prs_v_aanwezigperslid p,
|
|
PRS_KENMERKLINK k1,
|
|
PRS_KENMERKLINK k2,
|
|
PRS_AFDELING a0,
|
|
PRS_AFDELING a1,
|
|
PRS_PERSLIDWERKPLEK pwp,
|
|
prs_v_werkplek_gegevens wp
|
|
WHERE k1.prs_kenmerk_key(+) = 5
|
|
AND k2.prs_kenmerk_key(+) = 1020
|
|
AND k1.prs_link_key(+) = p.prs_perslid_key
|
|
AND k2.prs_link_key(+) = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a1.prs_afdeling_key
|
|
AND a0.prs_afdeling_key = a1.prs_afdeling_parentkey
|
|
AND p.prs_perslid_key = pwp.prs_perslid_key(+)
|
|
AND pwp.prs_werkplek_key = wp.prs_werkplek_key
|
|
AND p.prs_perslid_naam NOT LIKE '%]'
|
|
AND wp.alg_gebouw_code NOT LIKE 'Z99'
|
|
AND p.prs_perslid_naam NOT LIKE 'SYSTEEM%'
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
ORDER BY 1;
|
|
|
|
|
|
/* Formatted on 30-6-2010 6:54:49 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE VIEW akza_v_export_resdeel
|
|
(
|
|
volgnr,
|
|
res_rsv_ruimte_key,
|
|
res_rsv_artikel_key,
|
|
res_rsv_deel_key,
|
|
res_rsv_ruimte_kosten_klant,
|
|
res_rsv_ruimte_ordernr,
|
|
ins_discipline_key,
|
|
companycode,
|
|
kostenplaatscode,
|
|
exportdatum,
|
|
bedrag,
|
|
postkey,
|
|
valuta,
|
|
aantal,
|
|
btw,
|
|
res_reservering_key,
|
|
datum,
|
|
spatie,
|
|
ruimte_art_oms,
|
|
melder,
|
|
stukprijs,
|
|
artikelgroep,
|
|
catalogus,
|
|
alg_locatie_key
|
|
)
|
|
AS
|
|
SELECT 10 volgnr,
|
|
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,
|
|
'cccccc' companycode,
|
|
akza_k.prs_kostenplaats_nr kostenplaatscode,
|
|
TO_CHAR (SYSDATE, 'YYYYMMDD') exportdatum,
|
|
LTRIM (TO_CHAR (ROUND (100 * COALESCE (res.getdeelprijs (rr.res_rsv_deel_key), 0)), '099999999')) bedrag,
|
|
'40' postkey,
|
|
'EUR' valuta,
|
|
LTRIM (TO_CHAR (akza_ea.aantal, '0999')) aantal,
|
|
'b' btw,
|
|
LTRIM (TO_CHAR (rr.res_reservering_key, '0999999')) res_reservering_key,
|
|
RPAD (
|
|
COALESCE (
|
|
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'),
|
|
' '
|
|
),
|
|
23,
|
|
' '
|
|
)
|
|
datum,
|
|
' ' spatie,
|
|
RPAD (COALESCE (TRIM (akza_ea.res_deel_omschrijving), ' '), 26, ' ') ruimte_art_oms,
|
|
-- Indien non-resident host, dan de omschrijving (waar externe gastheer wordt ingevuld) naar SAP.
|
|
RPAD (
|
|
DECODE (pf.prs_perslid_key,
|
|
40727, COALESCE (res_rsv_ruimte_omschrijving, pf.prs_perslid_naam_full, ' '),
|
|
COALESCE (pf.prs_perslid_naam_full, ' ')
|
|
),
|
|
30,
|
|
' '
|
|
)
|
|
melder,
|
|
LTRIM(TO_CHAR (ROUND (100 * COALESCE (res.getdeelprijs (rr.res_rsv_deel_key), 0) / akza_ea.aantal),
|
|
'099999999'
|
|
))
|
|
stukprijs,
|
|
' ' artikelgroep,
|
|
RPAD (COALESCE (akza_ea.ins_discipline_omschrijving, ' '), 25, ' ') catalogus,
|
|
rg.alg_locatie_key
|
|
FROM (SELECT rr.*, -1 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,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
akza_v_kostenplaats akza_k,
|
|
(SELECT rsv_d.res_rsv_deel_key,
|
|
d.res_deel_omschrijving,
|
|
rsv_d.res_rsv_ruimte_key,
|
|
ins_discipline_key,
|
|
ins_discipline_omschrijving,
|
|
rsv_d.res_rsv_deel_aantal aantal
|
|
FROM res_rsv_deel rsv_d, (SELECT rd.*, d.ins_deel_omschrijving res_deel_omschrijving
|
|
FROM res_deel rd, ins_deel d
|
|
WHERE rd.res_ins_deel_key = d.ins_deel_key) d, res_discipline dis
|
|
WHERE 1 = 1 AND rsv_d.res_deel_key = d.res_deel_key AND d.res_discipline_key = dis.ins_discipline_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_host_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND rr.prs_kostenplaats_key = akza_k.prs_kostenplaats_key
|
|
AND akza_ea.res_rsv_deel_key(+) = rr.res_rsv_deel_key
|
|
AND pf.prs_perslid_key(+) = rr.res_rsv_ruimte_host_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.
|
|
/* Formatted on 22-1-2009 16:55:53 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW akza_v_export_catering
|
|
(
|
|
volgnr,
|
|
res_rsv_ruimte_key,
|
|
res_rsv_artikel_key,
|
|
res_rsv_deel_key,
|
|
res_rsv_ruimte_kosten_klant,
|
|
res_rsv_ruimte_ordernr,
|
|
ins_discipline_key,
|
|
companycode,
|
|
kostenplaatscode,
|
|
exportdatum,
|
|
bedrag,
|
|
postkey,
|
|
valuta,
|
|
aantal,
|
|
btw,
|
|
res_reservering_key,
|
|
datum,
|
|
spatie,
|
|
ruimte_art_oms,
|
|
melder,
|
|
stukprijs,
|
|
artikelgroep,
|
|
catalogus,
|
|
alg_locatie_key
|
|
)
|
|
AS
|
|
SELECT 20 volgnr,
|
|
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,
|
|
'cccccc' companycode,
|
|
akza_k.prs_kostenplaats_nr kostenplaatscode,
|
|
TO_CHAR (SYSDATE, 'YYYYMMDD') exportdatum,
|
|
LTRIM (TO_CHAR (ROUND (100 * COALESCE (res.getartikelprijs (rr.res_rsv_artikel_key), 0)), '099999999'))
|
|
bedrag,
|
|
'40' postkey,
|
|
'EUR' valuta,
|
|
LTRIM (TO_CHAR (akza_ea.aantal, '0999')) aantal,
|
|
'b' btw,
|
|
LTRIM (TO_CHAR (rr.res_reservering_key, '0999999')) res_reservering_key,
|
|
RPAD (
|
|
COALESCE (
|
|
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'),
|
|
' '
|
|
),
|
|
23,
|
|
' '
|
|
)
|
|
datum,
|
|
' ' spatie,
|
|
RPAD (COALESCE (TRIM (akza_ea.res_artikel_omschrijving), ' '), 26, ' ') ruimte_art_oms,
|
|
-- Indien non-resident host, dan de omschrijving (waar externe gastheer wordt ingevuld) naar SAP.
|
|
RPAD (DECODE(pf.prs_perslid_key, 40727, COALESCE(res_rsv_ruimte_omschrijving, pf.prs_perslid_naam_full, ' '), COALESCE (pf.prs_perslid_naam_full, ' ') ), 30, ' ') melder,
|
|
LTRIM(TO_CHAR (ROUND (100 * COALESCE (res.getartikelprijs (rr.res_rsv_artikel_key), 0) / akza_ea.aantal),
|
|
'099999999'
|
|
))
|
|
stukprijs,
|
|
' ' artikelgroep,
|
|
RPAD (COALESCE (akza_ea.ins_discipline_omschrijving, ' '), 25, ' ') catalogus,
|
|
rg.alg_locatie_key
|
|
FROM (SELECT rr.*, ra.res_rsv_artikel_key, -1 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,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
akza_v_kostenplaats akza_k,
|
|
(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
|
|
FROM res_rsv_artikel rsv_art, res_artikel art, res_discipline dis
|
|
WHERE 1 = 1
|
|
AND rsv_art.res_artikel_key = art.res_artikel_key
|
|
AND art.res_discipline_key = dis.ins_discipline_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_host_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND rr.prs_kostenplaats_key = akza_k.prs_kostenplaats_key
|
|
AND akza_ea.res_rsv_artikel_key(+) = rr.res_rsv_artikel_key
|
|
AND pf.prs_perslid_key(+) = rr.res_rsv_ruimte_host_key
|
|
AND rr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key(+);
|
|
|
|
|
|
/* Formatted on 22-1-2009 17:02:40 (QP5 v5.115.810.9015) */
|
|
CREATE OR REPLACE VIEW akza_v_export_resruimten
|
|
(
|
|
volgnr,
|
|
res_rsv_ruimte_key,
|
|
res_rsv_artikel_key,
|
|
res_rsv_deel_key,
|
|
res_rsv_ruimte_kosten_klant,
|
|
res_rsv_ruimte_ordernr,
|
|
ins_discipline_key,
|
|
companycode,
|
|
kostenplaatscode,
|
|
exportdatum,
|
|
bedrag,
|
|
postkey,
|
|
valuta,
|
|
aantal,
|
|
btw,
|
|
res_reservering_key,
|
|
datum,
|
|
spatie,
|
|
ruimte_art_oms,
|
|
melder,
|
|
stukprijs,
|
|
artikelgroep,
|
|
catalogus,
|
|
alg_locatie_key
|
|
)
|
|
AS
|
|
SELECT 30 volgnr,
|
|
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,
|
|
'cccccc' companycode,
|
|
akza_k.prs_kostenplaats_nr kostenplaatscode,
|
|
TO_CHAR (SYSDATE, 'YYYYMMDD') exportdatum,
|
|
LTRIM (TO_CHAR (ROUND (100 * COALESCE (res.getruimteprijs (rr.res_rsv_ruimte_key), 0)), '099999999'))
|
|
bedrag,
|
|
'40' postkey,
|
|
'EUR' valuta,
|
|
LTRIM (TO_CHAR ('1', '0999')) aantal,
|
|
'b' btw,
|
|
LTRIM (TO_CHAR (rr.res_reservering_key, '0999999')) res_reservering_key,
|
|
RPAD (
|
|
COALESCE (
|
|
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'),
|
|
' '
|
|
),
|
|
23,
|
|
' '
|
|
)
|
|
datum,
|
|
' ' spatie,
|
|
RPAD (COALESCE (TRIM (res_ruimte_omschrijving), ' '), 26, ' ') ruimte_art_oms,
|
|
-- Indien non-resident host, dan de omschrijving (waar externe gastheer wordt ingevuld) naar SAP.
|
|
RPAD (DECODE(pf.prs_perslid_key, 40727, COALESCE(res_rsv_ruimte_omschrijving, pf.prs_perslid_naam_full, ' '), COALESCE (pf.prs_perslid_naam_full, ' ') ), 30, ' ') melder,
|
|
LTRIM (TO_CHAR (ROUND (100 * COALESCE (res.getruimteprijs (rr.res_rsv_ruimte_key), 0)), '099999999'))
|
|
stukprijs,
|
|
' ' artikelgroep,
|
|
RPAD (COALESCE (akza_ea.ins_discipline_omschrijving, ' '), 25, ' ') catalogus,
|
|
rg.alg_locatie_key
|
|
FROM (SELECT rr.*, -1 res_rsv_artikel_key, -1 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,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
akza_v_kostenplaats akza_k,
|
|
(SELECT rg.res_discipline_key ins_discipline_key, d.ins_discipline_omschrijving, rg.res_ruimte_key
|
|
FROM res_v_res_ruimte_gegevens rg, ins_tab_discipline d
|
|
WHERE d.ins_discipline_key = rg.res_discipline_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_host_key = p.prs_perslid_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND rr.prs_kostenplaats_key = akza_k.prs_kostenplaats_key
|
|
AND akza_ea.res_ruimte_key(+) = rr.res_ruimte_key
|
|
AND pf.prs_perslid_key(+) = rr.res_rsv_ruimte_host_key
|
|
AND rr.res_rsv_ruimte_key = rg.res_rsv_ruimte_key(+);
|
|
|
|
|
|
CREATE OR REPLACE VIEW akza_v_export_resritten
|
|
(
|
|
volgnr,
|
|
res_rsv_ruimte_key,
|
|
res_rsv_artikel_key,
|
|
res_rsv_deel_key,
|
|
res_rsv_ruimte_kosten_klant,
|
|
res_rsv_ruimte_ordernr,
|
|
ins_discipline_key,
|
|
companycode,
|
|
kostenplaatscode,
|
|
exportdatum,
|
|
bedrag,
|
|
postkey,
|
|
valuta,
|
|
aantal,
|
|
btw,
|
|
res_reservering_key,
|
|
datum,
|
|
spatie,
|
|
ruimte_art_oms,
|
|
melder,
|
|
stukprijs,
|
|
artikelgroep,
|
|
catalogus,
|
|
alg_locatie_key
|
|
)
|
|
AS
|
|
SELECT 40 volgnr,
|
|
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,
|
|
'cccccc' companycode,
|
|
akza_k.prs_kostenplaats_nr kostenplaatscode,
|
|
TO_CHAR (SYSDATE, 'YYYYMMDD') exportdatum,
|
|
LTRIM (TO_CHAR (ROUND (100 * COALESCE (rit_sap.totaal, 0)), '099999999'))
|
|
bedrag,
|
|
'40' postkey,
|
|
'EUR' valuta,
|
|
LTRIM (TO_CHAR ('1', '0999')) aantal,
|
|
'b' btw,
|
|
LTRIM (TO_CHAR (rr.res_reservering_key, '0999999')) res_reservering_key,
|
|
RPAD (
|
|
COALESCE (
|
|
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'),
|
|
' '
|
|
),
|
|
23,
|
|
' '
|
|
)
|
|
datum,
|
|
' ' spatie,
|
|
RPAD (COALESCE (TRIM (rit_sap.chauffeur), ' '), 26, ' ') ruimte_art_oms,
|
|
DECODE(rit_sap.rit_nonresidentpass,null,
|
|
RPAD (COALESCE (pf.prs_perslid_naam_full, ' '), 30, ' '),
|
|
RPAD (COALESCE (res_rsv_ruimte_omschrijving, ' '), 30, ' ')
|
|
) melder,
|
|
LTRIM (TO_CHAR (ROUND (100 * COALESCE (rit_sap.totaal, 0)), '099999999'))
|
|
stukprijs,
|
|
' ' artikelgroep,
|
|
RPAD (COALESCE (akza_ea.ins_discipline_omschrijving, ' '), 25, ' ') catalogus,
|
|
0 alg_locatie_key
|
|
FROM (SELECT rr.*, -1 res_rsv_artikel_key, -1 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,
|
|
prs_perslid p,
|
|
prs_afdeling a,
|
|
akza_v_kostenplaats akza_k,
|
|
(SELECT rg.res_discipline_key ins_discipline_key, d.ins_discipline_omschrijving, rg.res_ruimte_key
|
|
FROM res_v_res_ruimte_gegevens rg, ins_tab_discipline d
|
|
WHERE d.ins_discipline_key = rg.res_discipline_key) akza_ea,
|
|
prs_v_perslid_fullnames_all pf,
|
|
akza_v_ritten_doorbelast_sap rit_sap
|
|
WHERE rr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
|
AND rr.res_rsv_ruimte_key = rit_sap.res_rsv_ruimte_key
|
|
AND p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND rr.prs_kostenplaats_key = akza_k.prs_kostenplaats_key
|
|
AND akza_ea.res_ruimte_key(+) = rr.res_ruimte_key
|
|
AND pf.prs_perslid_key(+) = rr.res_rsv_ruimte_host_key;
|
|
/
|
|
|
|
|
|
|
|
------------------------------------ COPIER RAPPORTAGE FUNCTIES-----------------------------------
|
|
------------------------------------ COPIER RAPPORTAGE FUNCTIES-----------------------------------
|
|
------------------------------------ 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
|
|
FROM 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;
|
|
--
|
|
-- 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;
|
|
-- 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
|
|
EXIT;
|
|
ELSE
|
|
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
|
|
EXIT;
|
|
ELSE
|
|
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
|
|
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
|
|
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);
|
|
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);
|
|
i := akzacopiers_5_papier (p_session,i,v_ins_deel_key,v_periode_van,v_periode_tot,p_berekening,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);
|
|
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;
|
|
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 FROM FAC_RAPPORT WHERE FAC_RAPPORT_NODE=userenv('SESSIONID');
|
|
akza_copiers(user_key, 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=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 FROM FAC_RAPPORT WHERE FAC_RAPPORT_NODE=userenv('SESSIONID');
|
|
akza_copiers(user_key, 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=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 FROM 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 FROM FAC_RAPPORT WHERE FAC_RAPPORT_NODE=userenv('SESSIONID');
|
|
akza_copiers(user_key, 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;
|
|
/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
---------------------------------- GEN_EXPORT functies ----------------------------------------
|
|
-----------------------------------------------------------------------------------------------
|
|
|
|
------------------------------------ EXPLANON (AKZA#566) --------------------------------------
|
|
|
|
DROP TABLE akza_exp_explanon;
|
|
|
|
CREATE TABLE akza_exp_explanon
|
|
(
|
|
naam VARCHAR2(30),
|
|
keynr VARCHAR2(40),
|
|
company VARCHAR2(10),
|
|
kostenplaats VARCHAR2(30),
|
|
gebouw VARCHAR2(10),
|
|
etage VARCHAR2(10),
|
|
kamernummer VARCHAR2(10),
|
|
telefoon VARCHAR2(15),
|
|
mobiel_tel VARCHAR2(255),
|
|
email VARCHAR2(255),
|
|
loginnaam VARCHAR2(30),
|
|
bron CHAR(16)
|
|
);
|
|
|
|
CREATE OR REPLACE PROCEDURE akza_select_explanon (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
DELETE FROM akza_exp_explanon;
|
|
|
|
INSERT INTO akza_exp_explanon
|
|
SELECT naam, keynr, company, kostenplaats, gebouw, etage, kamernummer, telefoon, mobiel_tel,
|
|
email, loginnaam, bron
|
|
FROM akza_v_personenvoorplanon;
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE akza_export_explanon (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
v_filehandle UTL_FILE.file_type;
|
|
v_newline VARCHAR2 (1000);
|
|
v_errormsg VARCHAR (200);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
l_cnt NUMBER;
|
|
|
|
CURSOR cregels
|
|
IS
|
|
SELECT naam
|
|
|| ';'
|
|
|| keynr
|
|
|| ';'
|
|
|| company
|
|
|| ';'
|
|
|| kostenplaats
|
|
|| ';'
|
|
|| gebouw
|
|
|| ';'
|
|
|| etage
|
|
|| ';'
|
|
|| kamernummer
|
|
|| ';'
|
|
|| telefoon
|
|
|| ';'
|
|
|| mobiel_tel
|
|
|| ';'
|
|
|| email
|
|
|| ';'
|
|
|| loginnaam
|
|
|| ';'
|
|
|| bron regel
|
|
FROM akza_exp_explanon;
|
|
BEGIN
|
|
DELETE FROM imp_log
|
|
WHERE imp_log_applicatie = p_applname;
|
|
|
|
v_filehandle := UTL_FILE.fopen (p_filedir, p_filename, 'w');
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'I',
|
|
'Export naar ' || p_filedir || '/' || p_filename,
|
|
''
|
|
);
|
|
l_cnt := 0;
|
|
|
|
FOR rcregels IN cregels
|
|
LOOP
|
|
BEGIN
|
|
v_newline := rcregels.regel;
|
|
UTL_FILE.put_line (v_filehandle, v_newline);
|
|
l_cnt := l_cnt + 1;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
UTL_FILE.fclose (v_filehandle);
|
|
-- EOF reached
|
|
EXIT;
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg := '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
|
|
END;
|
|
END LOOP;
|
|
|
|
fac.imp_writelog (p_applname, p_applrun, 'I', 'Aantal geschreven records: ' || l_cnt, '');
|
|
EXCEPTION
|
|
WHEN UTL_FILE.invalid_operation
|
|
THEN
|
|
UTL_FILE.fclose (v_filehandle);
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
'UTL_FILE.INVALID_OPERATION (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_errormsg,
|
|
'Controleer bestandsnaam van importbestand'
|
|
);
|
|
WHEN UTL_FILE.invalid_filehandle
|
|
THEN
|
|
UTL_FILE.fclose (v_filehandle);
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
'UTL_FILE.INVALID_FILEHANDLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
|
|
WHEN UTL_FILE.invalid_path
|
|
THEN
|
|
UTL_FILE.fclose (v_filehandle);
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
'UTL_FILE.INVALID_PATH (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog
|
|
(p_applname,
|
|
p_applrun,
|
|
'E',
|
|
v_errormsg,
|
|
'Controleer directory van importbestand (init.ora bevat utl_file_dir setting om te beschrijven welke directories te gebruiken zijn'
|
|
);
|
|
WHEN UTL_FILE.read_error
|
|
THEN
|
|
UTL_FILE.fclose (v_filehandle);
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
|
v_errormsg :=
|
|
'UTL_FILE.READ_ERROR (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.imp_writelog (p_applname, p_applrun, 'E', v_errormsg, '');
|
|
WHEN OTHERS
|
|
THEN
|
|
UTL_FILE.fclose (v_filehandle);
|
|
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_applname, p_applrun, 'E', v_errormsg, '');
|
|
END;
|
|
/
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
------------------------------------ COPIERS (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 FROM imp_log
|
|
WHERE imp_log_applicatie = p_applname;
|
|
|
|
DELETE FROM FAC_RAPPORT -- Hierin wordt de data tijdelijk klaargezet
|
|
WHERE FAC_RAPPORT_NODE=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.imp_writelog (p_applname, p_applrun, '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.imp_writelog (p_applname, p_applrun, '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, 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.imp_writelog (p_applname, p_applrun, '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 FROM FAC_RAPPORT WHERE FAC_RAPPORT_NODE=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 = USERENV ('SESSIONID');
|
|
/
|
|
-----------------------------------------------------------------------------------------------
|
|
----------------------------------------- MLD SAP ---------------------------------------------
|
|
-----------------------------------------------------------------------------------------------
|
|
CREATE OR REPLACE PACKAGE AKZA_P_MLD2SAP AS
|
|
-- PACKAGES voor de AKZA specifieke SAP-Meldingen export
|
|
PROCEDURE SAP_Exporteren(UpdateAsWell IN BOOLEAN);
|
|
PROCEDURE SAPRES_Exporteren_loc (plockey IN NUMBER, UpdateAsWell IN BOOLEAN);
|
|
FUNCTION getBewonersOrdernr (pOpdracht_key IN NUMBER) RETURN VARCHAR2;
|
|
FUNCTION getInternalOrdernr (pMelding_key IN NUMBER) RETURN VARCHAR2;
|
|
END;
|
|
/
|
|
|
|
/* Formatted on 30-6-2010 7:11:00 (QP5 v5.136.908.31019) */
|
|
CREATE OR REPLACE PACKAGE BODY akza_p_mld2sap
|
|
AS
|
|
FUNCTION bepaal_statusopdr_key (status_omschrijving CHAR)
|
|
RETURN NUMBER
|
|
IS
|
|
return_key NUMBER (10);
|
|
BEGIN
|
|
SELECT mld_statusopdr_key
|
|
INTO return_key
|
|
FROM mld_statusopdr
|
|
WHERE UPPER (mld_statusopdr_upper) = UPPER (status_omschrijving);
|
|
|
|
RETURN return_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
RETURN NULL;
|
|
END;
|
|
|
|
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 schrijf_rapport_regel (p_regelnr IN NUMBER, p_tekst IN VARCHAR2)
|
|
RETURN NUMBER
|
|
IS
|
|
BEGIN
|
|
INSERT INTO fac_rapport
|
|
VALUES (USERENV ('SESSIONID'), p_regelnr, p_tekst, 1
|
|
);
|
|
|
|
RETURN p_regelnr + 1;
|
|
END;
|
|
|
|
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 UpdateAsWell to set TV/AV statusses in MLD
|
|
PROCEDURE sap_exporteren (updateaswell IN BOOLEAN)
|
|
IS
|
|
CURSOR sap_meldingen
|
|
IS
|
|
SELECT mld_m.mld_melding_key,
|
|
mld_m.mld_kosten_klant,
|
|
mld_m.mld_alg_onroerendgoed_keys,
|
|
ks.prs_kostensoort_oms,
|
|
pf.prs_perslid_naam_full,
|
|
km.prs_kostenplaats_nr,
|
|
km.prs_kostenplaats_key,
|
|
mld_o.prs_kostenplaats_key prs_kostenplaats_key_o,
|
|
mld_sm.mld_stdmelding_omschrijving,
|
|
mld_o.mld_opdr_key,
|
|
mld_o.mld_uitvoerende_keys,
|
|
mld_o.mld_opdr_kosten,
|
|
mld_m.prs_perslid_key,
|
|
mld_o.mld_typeopdr_key
|
|
FROM mld_melding mld_m,
|
|
mld_stdmelding mld_sm,
|
|
mld_discipline ins_d,
|
|
mld_opdr mld_o,
|
|
akza_v_kostenplaats km,
|
|
prs_kostensoort ks,
|
|
prs_v_perslid_fullnames_all pf,
|
|
ins_srtdiscipline ins_sd
|
|
WHERE mld_o.mld_statusopdr_key = 6 -- mld_o.mld_statusopdr_key > 6 -- For debug only
|
|
AND mld_o.mld_melding_key = mld_m.mld_melding_key
|
|
AND mld_sm.mld_ins_discipline_key = ins_d.ins_discipline_key
|
|
AND mld_m.mld_stdmelding_key = mld_sm.mld_stdmelding_key
|
|
AND km.prs_kostenplaats_key(+) = mld_o.prs_kostenplaats_key
|
|
AND pf.prs_perslid_key = mld_m.prs_perslid_key
|
|
AND ins_d.prs_kostensoort_key = ks.prs_kostensoort_key(+)
|
|
AND ins_d.ins_srtdiscipline_key = ins_sd.ins_srtdiscipline_key
|
|
AND ins_sd.ins_srtdiscipline_alg = 1 -- AKZA#684
|
|
--AND mld_o.mld_opdr_key in (73203) -- For debug only
|
|
ORDER BY mld_m.mld_melding_key;
|
|
|
|
meldingenrec sap_meldingen%ROWTYPE;
|
|
exportregel VARCHAR2 (123);
|
|
kostenplaats VARCHAR2 (10);
|
|
referentiekostenplaats prs_kostenplaats.prs_kostenplaats_nr%TYPE;
|
|
companycode VARCHAR2 (10);
|
|
disciplinekostensoort prs_kostensoort.prs_kostensoort_oms%TYPE;
|
|
bewonersordernr prs_kostenplaats.prs_kostenplaats_nr%TYPE;
|
|
internalordernr VARCHAR2 (255);
|
|
kostenplaats_nr_o VARCHAR (30);
|
|
kostenplaatsmodule prs_kostenplaats.prs_kostenplaats_module%TYPE;
|
|
opdrkosten mld_opdr.mld_opdr_kosten%TYPE;
|
|
opdrkostenchar VARCHAR2 (10);
|
|
leveranciernr prs_bedrijf.prs_leverancier_nr%TYPE;
|
|
opdrachten NUMBER (10);
|
|
statusafgemeld NUMBER (10);
|
|
statusverwerkt NUMBER (10);
|
|
defcompcode VARCHAR (6) := '080100';
|
|
dummy BOOLEAN;
|
|
regelnr NUMBER (10);
|
|
lcount NUMBER (10);
|
|
ldebug BOOLEAN;
|
|
aanneemsom NUMBER (10, 2);
|
|
-- Afgesproken constanten (AKZA#12199)
|
|
lafval_opdrtype mld_opdr.mld_typeopdr_key%TYPE := 921;
|
|
lafval_kenmerksrt mld_srtkenmerk.mld_srtkenmerk_key%TYPE := 208; --correct op factuur
|
|
lafval_accoord mld_kenmerkopdr.mld_kenmerkopdr_waarde%TYPE := 1236; --code 1=Ja
|
|
lafval_goedkeuring mld_kenmerkopdr.mld_kenmerkopdr_waarde%TYPE;
|
|
lhandlenow BOOLEAN;
|
|
BEGIN
|
|
-- INIT
|
|
ldebug := FALSE;
|
|
regelnr := 0;
|
|
statusafgemeld := bepaal_statusopdr_key ('MLD_AFGEMELD');
|
|
statusverwerkt := bepaal_statusopdr_key ('MLD_VERWERKT');
|
|
|
|
FOR meldingenrec IN sap_meldingen
|
|
LOOP
|
|
-- Doe (nog) niets met deze opdracht als het om afvalverwerking gaat waarvan de factuur
|
|
-- nog niet is goedgekeurd.
|
|
IF meldingenrec.mld_typeopdr_key = lafval_opdrtype
|
|
THEN
|
|
BEGIN
|
|
--DBMS_OUTPUT.put_line ('xcheck ' || TO_CHAR (meldingenrec.mld_opdr_key));
|
|
|
|
-- Vind ik een goedkeuring voor deze opdracht?
|
|
SELECT mld_kenmerkopdr_waarde
|
|
INTO lafval_goedkeuring
|
|
FROM mld_kenmerkopdr ko, mld_kenmerk k
|
|
WHERE ko.mld_opdr_key = meldingenrec.mld_opdr_key
|
|
AND ko.mld_kenmerkopdr_waarde = lafval_accoord
|
|
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
|
AND k.mld_srtkenmerk_key = lafval_kenmerksrt;
|
|
|
|
-- goedkeuring gevonden: meenemen
|
|
--DBMS_OUTPUT.put_line ('checked ok');
|
|
lhandlenow := TRUE;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
-- een afvalverwerkingsopdracht zonder goedkeuring: negeren
|
|
--DBMS_OUTPUT.put_line ('checked not ok');
|
|
lhandlenow := FALSE;
|
|
END;
|
|
ELSE
|
|
-- geen afvalverwerkingsopdracht: meenemen
|
|
lhandlenow := TRUE;
|
|
END IF;
|
|
|
|
IF lhandlenow
|
|
THEN
|
|
--*
|
|
-- 01..08 (=8 pos): MLD_MELDING_KEY, rechts uitgelijnd en aangevuld met '0'.
|
|
--*
|
|
-- 09..14 (=6 pos): COMPANYCODE
|
|
-- akz_kostenklant=1 -> Perslid.akz_companycode, rechts uitgelijnd en aangevuld met '0'
|
|
-- akz_kostenklant=0 -> '080100'
|
|
--*
|
|
-- 15..24 (=10pos): KOSTENPLAATS = '0000000000' OR prs_kostenplaats_nr_o (kostenplaats v/d opdracht)
|
|
--*
|
|
-- 25..31 (=7 pos): DisciplineKostensoort
|
|
-- DisciplineKostensoort := '4310010'; OR ...
|
|
-- DisciplineKostensoort := LTRIM(LPAD(MeldingenRec.prs_kostensoort_oms, 7, '0')); OR ...
|
|
-- DisciplineKostensoort := '0000000';
|
|
--*
|
|
-- 32..43 (=12 pos): BEWONERSORDERNR
|
|
-- BewonersOrdernr := RPadEnNvl(BewonersOrdernr); OR ...
|
|
-- BewonersOrdernr := RPadEnNvl(NULL, 12);
|
|
--*
|
|
-- 44..49 (=6 pos): INTERNALORDERNR
|
|
-- InternalOrdernr := ' '; OR ...
|
|
-- InternalOrdernr := RPadEnNvl(InternalOrdernr, 6);
|
|
--*
|
|
-- 50..52 (=3 pos): Constante = 'EUR'
|
|
--*
|
|
-- 53..60 (=8 pos): KOSTEN VAN DE OPDRACHT
|
|
-- OpdrKostenChar:=LTRIM(TO_CHAR(NVL(ABS(MeldingenRec.mld_opdr_kosten),0),'099999D99'));
|
|
--*
|
|
-- 61 (=1 pos) BTWcode = '2'
|
|
--*
|
|
-- 62..67 (=6 pos): LEVERANCIERNR (crediteurnummer)
|
|
-- SELECT B.prs_leverancier_nr
|
|
-- INTO LeverancierNr
|
|
-- FROM prs_bedrijf B
|
|
-- WHERE B.prs_bedrijf_key = MeldingenRec.mld_uitvoerende_keys;
|
|
--
|
|
-- LeverancierNr := RPadEnNvl(LeverancierNr, 6);
|
|
--*
|
|
-- 68..77 (=10 pos): KOSTENPLAATS van de opdracht (=meldersafdeling, tenzij een afwijkende kostenplaats werd gekozen, dan die.)
|
|
-- rpad(nvl(ltrim(MeldingenRec.prs_kostenplaats_nr_o),' '),10);
|
|
--*
|
|
-- 78..89 (=12 pos): PerslidNaam
|
|
-- RPadEnNvl(MeldingenRec.prs_perslid_naam_full, 12)
|
|
--*
|
|
-- 90..121(=32 pos): Herkenningstekst
|
|
--*
|
|
-- 122..123(=2 pos): Postkey = 40 (positief) of 50 (negatief)
|
|
--
|
|
exportregel := LTRIM (TO_CHAR (meldingenrec.mld_melding_key, '09999999'));
|
|
|
|
IF ldebug
|
|
THEN
|
|
exportregel := LTRIM (TO_CHAR (meldingenrec.mld_opdr_key, '09999999'));
|
|
END IF;
|
|
|
|
-- Laten we eerst de opgegeven kostenplaats eens bepalen; kan later nog op diverse manieren
|
|
-- wijzigen
|
|
BEGIN
|
|
SELECT prs_kostenplaats_nr, prs_kostenplaats_module
|
|
INTO kostenplaats_nr_o, kostenplaatsmodule
|
|
FROM akza_v_kostenplaats
|
|
WHERE prs_kostenplaats_key = meldingenrec.prs_kostenplaats_key_o;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
kostenplaats_nr_o := '*****'; -- Just in case...
|
|
END;
|
|
|
|
kostenplaats := LPAD (NVL (kostenplaats_nr_o, '0'), 10, '0'); -- uitvullen niet noodzakelijk (doet view)
|
|
|
|
-- Eigenlijk is KostenKlant niet meer helemaal bepalend, het is meer of de gekozen kostenplaats
|
|
-- een ALG of een PRS kostenplaats is! Gebouwkosten suggereert het vroegere KK=0.
|
|
-- IF MeldingenRec.mld_kosten_klant IS NOT NULL THEN
|
|
IF kostenplaatsmodule = 'PRS'
|
|
THEN
|
|
--lgn('KostenKlant = 1');
|
|
-- Bepaal de Companycode, dat kan door de naam van de parentafd. van een afdeling die de kostenplaats als kp heeft
|
|
SELECT MAX (a2.prs_afdeling_naam)
|
|
INTO companycode
|
|
FROM prs_afdeling a1, prs_afdeling a2, prs_kostenplaats k, mld_opdr o
|
|
WHERE o.prs_kostenplaats_key = k.prs_kostenplaats_key
|
|
AND k.prs_kostenplaats_key = a1.prs_kostenplaats_key
|
|
-- 1-op-n, maakt niet uit vandaar MAX(a2.prs_afdeling_naam)!
|
|
AND a2.prs_afdeling_key = a1.prs_afdeling_parentkey
|
|
AND a1.prs_afdeling_verwijder IS NULL
|
|
AND a2.prs_afdeling_verwijder IS NULL
|
|
AND o.mld_opdr_key = meldingenrec.mld_opdr_key;
|
|
|
|
companycode := LPAD (NVL (SUBSTR (companycode, 1, 6), '000000'), 6, '0');
|
|
--lgn('companycode : '||Companycode);
|
|
|
|
-- De kostenplaats op positie 15+ kan hierna overschreven worden door nullen
|
|
-- Dan/daarom zetten we de oorspronkelijke waarde op postie 68+
|
|
referentiekostenplaats := kostenplaats;
|
|
|
|
IF meldingenrec.prs_kostensoort_oms IS NOT NULL
|
|
THEN
|
|
disciplinekostensoort := LTRIM (LPAD (meldingenrec.prs_kostensoort_oms, 7, '0'));
|
|
ELSE
|
|
disciplinekostensoort := '0000000';
|
|
END IF;
|
|
|
|
--
|
|
--lgn('Bewonersordernr');
|
|
SELECT akza_p_mld2sap.getbewonersordernr (meldingenrec.mld_opdr_key) INTO bewonersordernr FROM DUAL;
|
|
|
|
bewonersordernr := rpadennvl (bewonersordernr, 12);
|
|
|
|
--lgn('Ordernr: '||BewonersOrdernr);
|
|
IF (SUBSTR (bewonersordernr, 1, 1) = 'B' OR SUBSTR (bewonersordernr, 1, 1) = 'b')
|
|
AND isnumber (SUBSTR (bewonersordernr, 3, 1))
|
|
AND fac.safe_to_number (SUBSTR (bewonersordernr, 3, 1)) >= 1
|
|
AND isnumber (SUBSTR (bewonersordernr, 6, 3))
|
|
AND fac.safe_to_number (SUBSTR (bewonersordernr, 6, 3)) >= 10
|
|
AND companycode = defcompcode
|
|
THEN
|
|
--lgn('B');
|
|
kostenplaats := '0000000000';
|
|
disciplinekostensoort := '4310010';
|
|
ELSE
|
|
IF (SUBSTR (bewonersordernr, 1, 1) = 'I' OR SUBSTR (bewonersordernr, 1, 1) = 'i')
|
|
AND isnumber (SUBSTR (bewonersordernr, 3, 1))
|
|
AND fac.safe_to_number (SUBSTR (bewonersordernr, 3, 1)) >= 1
|
|
AND isnumber (SUBSTR (bewonersordernr, 6, 3))
|
|
AND fac.safe_to_number (SUBSTR (bewonersordernr, 6, 3)) >= 10
|
|
AND companycode = defcompcode
|
|
THEN
|
|
--lgn('I');
|
|
kostenplaats := '0000000000';
|
|
disciplinekostensoort := '4301010';
|
|
ELSE
|
|
IF (SUBSTR (bewonersordernr, 1, 1) = 'O' OR SUBSTR (bewonersordernr, 1, 1) = 'o')
|
|
AND isnumber (SUBSTR (bewonersordernr, 3, 1))
|
|
AND fac.safe_to_number (SUBSTR (bewonersordernr, 3, 1)) >= 1
|
|
AND isnumber (SUBSTR (bewonersordernr, 6, 3))
|
|
AND fac.safe_to_number (SUBSTR (bewonersordernr, 6, 3)) >= 10
|
|
AND companycode = defcompcode
|
|
THEN
|
|
--lgn('O');
|
|
kostenplaats := '0000000000';
|
|
disciplinekostensoort := '4301003';
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
|
|
--lgn('Internalordernr');
|
|
internalordernr := ' ';
|
|
ELSE
|
|
--lgn('KostenKlant = NULL');
|
|
companycode := '080100';
|
|
disciplinekostensoort := '4301001';
|
|
--lgn('Bewonersordernr');
|
|
bewonersordernr := rpadennvl (NULL, 12);
|
|
|
|
--lgn('Internalordernr');
|
|
-- RD: InternalOrdernr wordt niet meer afgeleid maar ook in de MLD_MELDING tabel
|
|
-- opgeslagen. Interpretatie van het veld <akz_bewonersordernr> via <MLD_AKZ_KOSTEN_KLANT>.
|
|
--InternalOrdernr := SUBSTR(MeldingenRec.prs_kostenplaats_nr_o,1,6);
|
|
--lgn('Internalordernr 2');
|
|
--InternalOrdernr := RPadEnNvl(InternalOrdernr, 6);
|
|
--lgn('Bewonersordernr');
|
|
SELECT akza_p_mld2sap.getinternalordernr (meldingenrec.mld_melding_key) INTO internalordernr FROM DUAL;
|
|
|
|
internalordernr := SUBSTR (internalordernr, 1, 6);
|
|
internalordernr := rpadennvl (internalordernr, 6);
|
|
|
|
IF fac.safe_to_number (SUBSTR (internalordernr, 1, 1)) >= 1
|
|
AND fac.safe_to_number (SUBSTR (internalordernr, 4, 3)) >= 10
|
|
THEN
|
|
disciplinekostensoort := '4310010';
|
|
END IF;
|
|
|
|
-- #2129/PF Indien Internalordernr, dan Kostenplaats 0000000000
|
|
-- AKZA#684/PF Indien (ongeldige combinatie) kk=0 en Geen internalordernr, dan doe alsof kk=1
|
|
-- dus behoudt de eerder gevonden kostenplaats
|
|
IF internalordernr <> rpadennvl ('', 6)
|
|
THEN
|
|
kostenplaats := '0000000000';
|
|
END IF;
|
|
|
|
-- ReferentieKostenplaats wordt dan de persoonskostenplaats
|
|
SELECT k.prs_kostenplaats_nr
|
|
INTO referentiekostenplaats
|
|
FROM prs_perslid p, prs_afdeling d, akza_v_kostenplaats k
|
|
WHERE p.prs_afdeling_key = d.prs_afdeling_key
|
|
AND d.prs_kostenplaats_key = k.prs_kostenplaats_key
|
|
AND p.prs_perslid_key = meldingenrec.prs_perslid_key;
|
|
END IF;
|
|
|
|
--lgn('DisciplineKostensoort, enz');
|
|
-- #2129/PF #2224/PF
|
|
exportregel := exportregel || companycode;
|
|
exportregel := exportregel || kostenplaats;
|
|
exportregel := exportregel || disciplinekostensoort;
|
|
exportregel := exportregel || bewonersordernr;
|
|
exportregel := exportregel || internalordernr;
|
|
--lgn('lengte regel = '||TO_CHAR(LENGTH(Exportregel)));
|
|
-- valuta_code: fixed
|
|
exportregel := exportregel || rpadennvl ('EUR', 3);
|
|
|
|
-- Bedrag in centen van de bijbehorende opdrachten, rechts uitgelijnd en aangevuld
|
|
-- met '0', geen punten en komma's.
|
|
BEGIN
|
|
-- AKZA#651: kenmerk Aanneemsom (fixed key 2) bevat mogelijk ook een bedrag dat moet worden meegeteld
|
|
SELECT NVL (fac.safe_to_number (mld_kenmerkopdr_waarde), 0)
|
|
INTO aanneemsom
|
|
FROM mld_kenmerkopdr
|
|
WHERE mld_kenmerk_key = 2
|
|
AND mld_kenmerkopdr_verwijder IS NULL
|
|
AND mld_opdr_key = meldingenrec.mld_opdr_key;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
aanneemsom := 0;
|
|
END;
|
|
|
|
opdrkosten := meldingenrec.mld_opdr_kosten + aanneemsom;
|
|
opdrkostenchar := LTRIM (TO_CHAR (NVL (ABS (opdrkosten), 0), '099999D99'));
|
|
--lgn('Kosten: <'||OpdrKostenChar||'>');
|
|
-- Verwijder de punten en de komma's.
|
|
opdrkostenchar := REPLACE (opdrkostenchar, '.');
|
|
opdrkostenchar := REPLACE (opdrkostenchar, ',');
|
|
|
|
/* I.o.m. Hans Gerssen : getal negatief, eerste '0' vervangen door '-' */
|
|
-- Kosten van de opdracht
|
|
IF opdrkosten < 0
|
|
THEN
|
|
exportregel := exportregel || '-' || SUBSTR (opdrkostenchar, 2, 8);
|
|
exportregel := exportregel || '2';
|
|
ELSE
|
|
exportregel := exportregel || opdrkostenchar;
|
|
exportregel := exportregel || '2'; -- abo 7-12-2000
|
|
END IF;
|
|
|
|
--lgn('lengte regel = '||TO_CHAR(LENGTH(Exportregel)));
|
|
--lgn('Leveranciernr, enz');
|
|
-- Bedrijf.prs_leveranciernr, rechts uitgelijnd en aangevuld met '0'.
|
|
leveranciernr := '000000'; -- default
|
|
|
|
-- 980502/KTH lgn#1654
|
|
BEGIN
|
|
SELECT b.prs_leverancier_nr
|
|
INTO leveranciernr
|
|
FROM prs_bedrijf b
|
|
WHERE b.prs_bedrijf_key = meldingenrec.mld_uitvoerende_keys;
|
|
EXCEPTION
|
|
WHEN TOO_MANY_ROWS
|
|
THEN
|
|
-- kan niet voorkomen
|
|
--lgn('SAP_Exporteren: onverwachte dubbele Leveranciernrs!');
|
|
NULL;
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
NULL; -- Melding had blijkbaar geen Opdrachten
|
|
END;
|
|
|
|
leveranciernr := rpadennvl (leveranciernr, 6);
|
|
--lgn('LeverancierNr = ['||LeverancierNr||']');
|
|
-- Leveranciernummer
|
|
exportregel := exportregel || leveranciernr;
|
|
--lgn('lengte regel = '||TO_CHAR(LENGTH(Exportregel)));
|
|
-- Perslid.akz_kostenplaats, rechts uitgelijnd en aangevuld met ' ';
|
|
-- AKZ_KOSTENPLAATS
|
|
exportregel := exportregel || referentiekostenplaats;
|
|
--lgn('lengte regel = '||TO_CHAR(LENGTH(Exportregel)));
|
|
-- Perslid.prs_perslid_naam||' '||prs_perslid_voorletters, afgekapt of aangevuld tot
|
|
-- 12 karakters
|
|
--lgn('PerslidNaam, enz');
|
|
exportregel := exportregel || rpadennvl (meldingenrec.prs_perslid_naam_full, 12);
|
|
--lgn('lengte regel = '||TO_CHAR(LENGTH(Exportregel)));
|
|
--lgn('Exportregel_a = ['||RPadEnNvl(MeldingenRec.prs_perslid_naam||' '||MeldingenRec.prs_perslid_voorletters, 12)||']');
|
|
-- mld_stdmelding_omschrijving, links uitgelijnd en aangevuld met ' '.
|
|
exportregel := exportregel || rpadennvl (meldingenrec.mld_stdmelding_omschrijving, 32);
|
|
|
|
--lgn('lengte regel = '||TO_CHAR(LENGTH(Exportregel)));
|
|
-- PostKey: '40' of als totaalbedrag negatief '50'
|
|
IF opdrkosten >= 0
|
|
THEN
|
|
exportregel := exportregel || '40';
|
|
ELSE
|
|
exportregel := exportregel || '50';
|
|
END IF;
|
|
|
|
--lgn('lengte regel = '||TO_CHAR(LENGTH(Exportregel)));
|
|
-- AKZA#727: opdrachten met 0-bedrag hoeven niet geexporteerd te worden.
|
|
IF opdrkosten <> 0
|
|
THEN
|
|
regelnr := schrijf_rapport_regel (regelnr, exportregel);
|
|
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.
|
|
BEGIN
|
|
SELECT NVL (COUNT ( * ), 0)
|
|
INTO opdrachten
|
|
FROM mld_opdr
|
|
WHERE mld_melding_key = meldingenrec.mld_melding_key;
|
|
|
|
--lgn(TO_CHAR(Opdrachten)||' bijbehorende opdracht(en)');
|
|
IF opdrachten > 0 -- Always true, since this is cursor criterium
|
|
THEN
|
|
IF updateaswell
|
|
THEN
|
|
FOR opdrrec
|
|
IN (SELECT mld_opdr_key
|
|
FROM mld_opdr
|
|
WHERE mld_statusopdr_key = statusafgemeld
|
|
AND mld_melding_key = meldingenrec.mld_melding_key)
|
|
LOOP
|
|
mld.setopdrachtstatus (opdrrec.mld_opdr_key, statusverwerkt, NULL);
|
|
END LOOP;
|
|
END IF;
|
|
|
|
--lgn('*TV opdrachten AV verklaard*');
|
|
-- 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
|
|
SELECT NVL (COUNT ( * ), 0)
|
|
INTO opdrachten
|
|
FROM mld_opdr
|
|
WHERE mld_melding_key = meldingenrec.mld_melding_key AND mld_statusopdr_key <> statusverwerkt;
|
|
|
|
--lgn(TO_CHAR(Opdrachten)||' niet-AV opdracht(en)');
|
|
IF opdrachten = 0
|
|
THEN
|
|
--lgn('Melding wordt AV; er is geen niet-verwerkte opdracht meer bij');
|
|
--lgn('Meldingkey : '||TO_CHAR(MeldingenRec.mld_melding_key));
|
|
IF updateaswell
|
|
THEN
|
|
mld.setmeldingstatus (meldingenrec.mld_melding_key, 6, NULL);
|
|
END IF;
|
|
--lgn('Melding AV verklaard');
|
|
--ELSE
|
|
--lgn('Melding wordt NIET AV; er zijn nog niet-verwerkte opdrachten bij');
|
|
END IF;
|
|
ELSE
|
|
-- Kan niet meer voorkomen
|
|
--lgn('!**STRANGE**! Melding AV maken');
|
|
IF updateaswell
|
|
THEN
|
|
mld.setmeldingstatus (meldingenrec.mld_melding_key, 6, NULL);
|
|
END IF;
|
|
--lgn('Melding AV verklaard');
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.imp_writelog ('AKZA_P_MLD2SAP',
|
|
'SAP_Exporteren',
|
|
'E',
|
|
'AKZA_P_MLD2SAP (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')',
|
|
'Fout in aanpassen meldingstatus'
|
|
);
|
|
ROLLBACK;
|
|
END;
|
|
END IF;
|
|
END LOOP;
|
|
END;
|
|
|
|
-- Specify UpdateAsWell to set TV/AV statusses in Catering
|
|
PROCEDURE sapres_exporteren_loc (plockey IN NUMBER, updateaswell IN BOOLEAN)
|
|
IS
|
|
c_companycode VARCHAR2 (6) := '080100';
|
|
c_kostensoort VARCHAR2 (7) := '0000';
|
|
c_bedrag_leeg VARCHAR2 (9) := '000000000'; -- Deze bedragen worden niet geexporteerd
|
|
|
|
CURSOR c_sapres
|
|
IS
|
|
SELECT *
|
|
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)
|
|
WHERE alg_locatie_key = plockey
|
|
ORDER BY volgnr;
|
|
|
|
|
|
sapres_rec c_sapres%ROWTYPE;
|
|
exportregel VARCHAR2 (256);
|
|
regelnr NUMBER (10);
|
|
|
|
v_companycode VARCHAR2 (6);
|
|
v_kostensoort VARCHAR2 (7);
|
|
v_btw VARCHAR2 (1);
|
|
|
|
FUNCTION get_companycode (p_rsv_ruimte_key IN NUMBER, p_companycode IN VARCHAR2)
|
|
RETURN VARCHAR2
|
|
IS
|
|
v_result VARCHAR (128);
|
|
v_count NUMBER (10);
|
|
BEGIN
|
|
-- AKZA#13369
|
|
SELECT MAX (prs_kostenplaatsgrp_oms)
|
|
INTO v_result
|
|
FROM (SELECT kg.prs_kostenplaatsgrp_oms
|
|
FROM res_rsv_ruimte rr, prs_kostenplaats k, prs_kostenplaatsgrp kg
|
|
WHERE rr.prs_kostenplaats_key = k.prs_kostenplaats_key
|
|
AND k.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key
|
|
AND rr.res_rsv_ruimte_key = p_rsv_ruimte_key
|
|
UNION ALL
|
|
SELECT '' FROM DUAL);
|
|
|
|
v_result := LPAD (NVL (SUBSTR (v_result, 1, 6), p_companycode), 6, '0');
|
|
RETURN v_result;
|
|
END;
|
|
|
|
FUNCTION get_kostensoort (p_discipline_key IN NUMBER, p_kostensoort IN VARCHAR2)
|
|
RETURN VARCHAR2
|
|
IS
|
|
v_result VARCHAR (128);
|
|
v_count NUMBER (10);
|
|
BEGIN
|
|
SELECT COUNT ( * ), MAX (prs_kostensoort_oms)
|
|
INTO v_count, v_result
|
|
FROM prs_kostensoort ks, ins_tab_discipline d
|
|
WHERE d.ins_discipline_key = p_discipline_key AND d.prs_kostensoort_key = ks.prs_kostensoort_key;
|
|
|
|
IF v_result IS NOT NULL
|
|
THEN
|
|
v_result := LPAD (NVL (SUBSTR (v_result, 1, 4), p_kostensoort), 4, '0');
|
|
ELSE
|
|
v_result := '0000';
|
|
END IF;
|
|
|
|
RETURN v_result;
|
|
END;
|
|
BEGIN
|
|
-- INIT
|
|
|
|
exportregel := '';
|
|
regelnr := 0;
|
|
|
|
FOR sapres_rec IN c_sapres
|
|
LOOP
|
|
BEGIN
|
|
v_companycode := get_companycode (sapres_rec.res_rsv_ruimte_key, c_companycode);
|
|
v_kostensoort := get_kostensoort (sapres_rec.ins_discipline_key, c_kostensoort);
|
|
|
|
IF v_kostensoort = '0006'
|
|
THEN
|
|
v_btw := '2';
|
|
ELSE
|
|
v_btw := '1';
|
|
END IF;
|
|
|
|
exportregel :=
|
|
v_companycode
|
|
|| sapres_rec.kostenplaatscode
|
|
|| sapres_rec.exportdatum
|
|
|| sapres_rec.bedrag
|
|
|| sapres_rec.postkey
|
|
|| sapres_rec.valuta
|
|
|| sapres_rec.aantal
|
|
|| v_btw
|
|
|| sapres_rec.res_reservering_key
|
|
|| sapres_rec.datum
|
|
|| sapres_rec.spatie
|
|
|| sapres_rec.ruimte_art_oms
|
|
|| sapres_rec.melder
|
|
|| sapres_rec.stukprijs
|
|
|| v_kostensoort
|
|
|| sapres_rec.catalogus;
|
|
|
|
COMMIT;
|
|
|
|
|
|
-- Nog testen of bedrag niet 0 is, analoog aan de export van opdrachten naar SAP
|
|
IF (sapres_rec.bedrag <> c_bedrag_leeg)
|
|
THEN
|
|
regelnr := schrijf_rapport_regel (regelnr, exportregel);
|
|
END IF;
|
|
|
|
IF updateaswell
|
|
THEN
|
|
IF (sapres_rec.res_rsv_artikel_key > -1)
|
|
THEN
|
|
UPDATE res_rsv_artikel
|
|
SET res_status_bo_key = 6
|
|
WHERE res_status_bo_key = 5 AND res_rsv_artikel_key = sapres_rec.res_rsv_artikel_key;
|
|
|
|
fac.trackaction ('RESVER', sapres_rec.res_rsv_ruimte_key, NULL, NULL, NULL);
|
|
END IF;
|
|
|
|
IF (sapres_rec.res_rsv_deel_key > -1)
|
|
THEN
|
|
UPDATE res_rsv_deel
|
|
SET res_status_bo_key = 6
|
|
WHERE res_status_bo_key = 5 AND res_rsv_deel_key = sapres_rec.res_rsv_deel_key;
|
|
|
|
fac.trackaction ('RESVER', sapres_rec.res_rsv_ruimte_key, NULL, NULL, NULL);
|
|
END IF;
|
|
|
|
IF (sapres_rec.res_rsv_deel_key = -1) AND (sapres_rec.res_rsv_artikel_key = -1)
|
|
THEN
|
|
UPDATE res_rsv_ruimte
|
|
SET res_status_bo_key = 6
|
|
WHERE res_status_bo_key = 5 AND res_rsv_ruimte_key = sapres_rec.res_rsv_ruimte_key;
|
|
|
|
fac.trackaction ('RESVER', sapres_rec.res_rsv_ruimte_key, NULL, NULL, NULL);
|
|
END IF;
|
|
END IF;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
fac.imp_writelog ('AKZA_P_RES2SAP',
|
|
'SAPRES_Exporteren',
|
|
'E',
|
|
'AKZA_P_RES2SAP (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')',
|
|
'Fout bij aanpassen status in AV'
|
|
);
|
|
COMMIT; -- tbv logging
|
|
END;
|
|
END LOOP;
|
|
END;
|
|
END;
|
|
/
|
|
|
|
|
|
-- Prepare data for SAP-export copiers in table FAC_RAPPORT
|
|
CREATE OR REPLACE PROCEDURE akza_select_mld_sap (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
DELETE FROM imp_log
|
|
WHERE imp_log_applicatie = p_applname;
|
|
|
|
DELETE FROM FAC_RAPPORT -- Hierin wordt de data tijdelijk klaargezet
|
|
WHERE FAC_RAPPORT_NODE=userenv('SESSIONID');
|
|
|
|
AKZA_P_MLD2SAP.SAP_Exporteren(TRUE); -- UpdateAsWell
|
|
END;
|
|
/
|
|
|
|
/* Formatted on 30-6-2010 7:00:01 (QP5 v5.136.908.31019) */
|
|
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');
|
|
IF TRUE --UpdateAsWell
|
|
THEN
|
|
FOR rec IN (SELECT mld_melding_key
|
|
FROM mld_melding m
|
|
WHERE NOT EXISTS (SELECT ''
|
|
FROM mld_opdr o
|
|
WHERE o.mld_melding_key = m.mld_melding_key)
|
|
AND m.mld_melding_status = 5) --TV
|
|
LOOP
|
|
mld.setmeldingstatus (rec.mld_melding_key, 6, NULL);
|
|
END LOOP;
|
|
END IF;
|
|
|
|
-- Opruimen
|
|
DELETE FROM fac_rapport
|
|
WHERE fac_rapport_node = USERENV ('SESSIONID');
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW akza_V_export_mld_sap
|
|
(RESULT, RESULT_ORDER)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node = USERENV ('SESSIONID');
|
|
/
|
|
|
|
-- RESERVERINGEN
|
|
-- Prepare data for SAP-export in table FAC_RAPPORT, procedure PER LOCATIE
|
|
CREATE OR REPLACE PROCEDURE akza_select_res_sap_ssca (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
DELETE FROM imp_log
|
|
WHERE imp_log_applicatie = p_applname;
|
|
|
|
DELETE FROM fac_rapport -- Hierin wordt de data tijdelijk klaargezet
|
|
WHERE fac_rapport_node = USERENV ('SESSIONID');
|
|
|
|
akza_p_mld2sap.sapres_exporteren_loc (2, TRUE); -- UpdateAsWell
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE akza_select_res_sap_aho (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
DELETE FROM imp_log
|
|
WHERE imp_log_applicatie = p_applname;
|
|
|
|
DELETE FROM fac_rapport -- Hierin wordt de data tijdelijk klaargezet
|
|
WHERE fac_rapport_node = USERENV ('SESSIONID');
|
|
|
|
akza_p_mld2sap.sapres_exporteren_loc (161, TRUE); -- UpdateAsWell
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE akza_select_res_sap_rit (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
|
|
AS
|
|
BEGIN
|
|
DELETE FROM imp_log
|
|
WHERE imp_log_applicatie = p_applname;
|
|
|
|
DELETE FROM fac_rapport -- Hierin wordt de data tijdelijk klaargezet
|
|
WHERE fac_rapport_node = USERENV ('SESSIONID');
|
|
|
|
akza_p_mld2sap.sapres_exporteren_loc (0, TRUE); -- UpdateAsWell
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE akza_export_res_sap_aho (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
-- Opruimen
|
|
DELETE FROM FAC_RAPPORT WHERE FAC_RAPPORT_NODE=userenv('SESSIONID');
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW akza_V_export_res_sap_aho
|
|
(RESULT, RESULT_ORDER)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node = USERENV ('SESSIONID');
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE akza_export_res_sap_ssca (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
-- Opruimen
|
|
DELETE FROM FAC_RAPPORT WHERE FAC_RAPPORT_NODE=userenv('SESSIONID');
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE VIEW akza_V_export_res_sap_ssca
|
|
(RESULT, RESULT_ORDER)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node = USERENV ('SESSIONID');
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE akza_export_res_sap_rit (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2
|
|
)
|
|
AS
|
|
BEGIN
|
|
-- Opruimen
|
|
DELETE FROM FAC_RAPPORT WHERE FAC_RAPPORT_NODE=userenv('SESSIONID');
|
|
END;
|
|
/
|
|
CREATE OR REPLACE VIEW akza_V_export_res_sap_rit
|
|
(RESULT, RESULT_ORDER)
|
|
AS
|
|
SELECT fac_rapport_regel, fac_rapport_volgnr
|
|
FROM fac_rapport
|
|
WHERE fac_rapport_node = USERENV ('SESSIONID');
|
|
/
|
|
|
|
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;
|
|
/
|
|
|
|
|
|
-- Deze views worden vermoedelijk nog gebruikt door sommige Access rapportages, en zijn hier
|
|
-- for backward compatibility..
|
|
CREATE OR REPLACE VIEW stat_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 "PRS_AFDELING_KEY", "PRS_AFDELING_NAAM", "PRS_AFDELING_UPPER", "PRS_AFDELING_OMSCHRIJVING",
|
|
"PRS_AFDELING_AANMAAK", "PRS_AFDELING_VERWIJDER", "PRS_BEDRIJF_KEY"
|
|
FROM prs_v_afdeling
|
|
WHERE niveau = 1;
|
|
|
|
CREATE OR REPLACE VIEW stat_prs_afdeling (prs_afdeling_key,
|
|
prs_afdeling_parentkey,
|
|
prs_afdeling_naam,
|
|
prs_afdeling_upper,
|
|
prs_afdeling_omschrijving,
|
|
prs_kostenplaats_nr,
|
|
prs_afdeling_aanmaak,
|
|
prs_afdeling_verwijder,
|
|
prs_bedrijf_key,
|
|
prs_eenheid_key
|
|
)
|
|
AS
|
|
SELECT "PRS_AFDELING_KEY", "PRS_AFDELING_PARENTKEY", "PRS_AFDELING_NAAM", "PRS_AFDELING_UPPER",
|
|
"PRS_AFDELING_OMSCHRIJVING", "PRS_KOSTENPLAATS_NR", "PRS_AFDELING_AANMAAK", "PRS_AFDELING_VERWIJDER",
|
|
"PRS_BEDRIJF_KEY", "PRS_AFDELING_PARENTKEY"
|
|
FROM prs_v_afdeling d, akza_v_kostenplaats k
|
|
WHERE niveau = 2
|
|
AND d.prs_kostenplaats_key=k.prs_kostenplaats_key(+);
|
|
|
|
-- JGL: Ooit aangemaakt door ARNO als alternatief voor PRS_PERSLID
|
|
-- Vanuit Access kwam elke PRS_PERSLID anders terug voor elke Oracle ROLE of USER.
|
|
-- Doordat andere rollen geen rechten hebben op stat_prs_perslid is het opgelost
|
|
-- Waarschijnlijk beter op te pakken door alle rollen te droppen bij overgang naar Oracle 9
|
|
-- 7-6-2011 10:25:10: Die rollen zijn tegenwoordig echt wel weg.
|
|
-- Voor backwardscompatibiliteit toch de view laten bestaan
|
|
CREATE OR REPLACE VIEW stat_prs_perslid (prs_perslid_key,
|
|
prs_perslid_module,
|
|
prs_srtperslid_key,
|
|
prs_afdeling_key,
|
|
prs_perslid_naam,
|
|
prs_perslid_upper,
|
|
prs_perslid_voorletters,
|
|
prs_perslid_voornaam,
|
|
prs_perslid_titel,
|
|
prs_perslid_nr,
|
|
prs_perslid_dienstverband,
|
|
prs_perslid_opp,
|
|
prs_perslid_ingangsdatum,
|
|
prs_perslid_einddatum,
|
|
prs_perslid_uurloon,
|
|
prs_perslid_telefoonnr,
|
|
prs_perslid_aanmaak,
|
|
prs_perslid_verwijder,
|
|
prs_perslid_initialen,
|
|
prs_perslid_init_upper,
|
|
prs_perslid_oslogin,
|
|
prs_perslid_wachtwoord,
|
|
prs_perslid_tussenvoegsel,
|
|
prs_perslid_login
|
|
)
|
|
AS
|
|
SELECT "PRS_PERSLID_KEY", "PRS_PERSLID_MODULE", "PRS_SRTPERSLID_KEY", "PRS_AFDELING_KEY", "PRS_PERSLID_NAAM",
|
|
"PRS_PERSLID_UPPER", "PRS_PERSLID_VOORLETTERS", "PRS_PERSLID_VOORNAAM", "PRS_PERSLID_TITEL", "PRS_PERSLID_NR",
|
|
"PRS_PERSLID_DIENSTVERBAND", "PRS_PERSLID_OPP", "PRS_PERSLID_INGANGSDATUM", "PRS_PERSLID_EINDDATUM",
|
|
"PRS_PERSLID_UURLOON", "PRS_PERSLID_TELEFOONNR", "PRS_PERSLID_AANMAAK", "PRS_PERSLID_VERWIJDER",
|
|
"PRS_PERSLID_INITIALEN", "PRS_PERSLID_INIT_UPPER", "PRS_PERSLID_OSLOGIN", '*****',
|
|
"PRS_PERSLID_TUSSENVOEGSEL","PRS_PERSLID_LOGIN"
|
|
FROM prs_perslid;
|
|
|
|
-- AKZA651: alle financiele opdrachtgegevens bij elkaar in een view, voor wie het wil
|
|
CREATE OR REPLACE VIEW akza_v_mld_opdracht
|
|
AS
|
|
SELECT o.mld_opdr_key, mld_melding_key, mld_opdr_bedrijfopdr_volgnr, mld_opdr_uren, mld_opdr_uurloon,
|
|
mld_opdr_materiaal, mld_opdr_kosten, NVL (fac.safe_to_number (mld_kenmerkopdr_waarde), 0) aanneemsom,
|
|
mld_opdr_kosten + NVL (fac.safe_to_number (mld_kenmerkopdr_waarde), 0) totaal
|
|
FROM mld_opdr o, mld_kenmerkopdr ko
|
|
WHERE mld_kenmerk_key = 2 AND mld_kenmerkopdr_verwijder IS NULL AND o.mld_opdr_key = ko.mld_opdr_key;
|
|
|
|
-- 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;
|
|
|
|
|
|
-- 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;
|
|
/
|
|
|
|
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_v_aanwezigperslidwerkplek 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
|
|
/
|
|
|
|
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_perslidwerkplek_verwijder IS NULL
|
|
AND w.prs_werkplek_verwijder 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_perslidwerkplek_verwijder IS NULL
|
|
AND w.prs_werkplek_verwijder 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;
|
|
|
|
-- Kentekenoverzicht (nu met flexvelden ipv persoonsgebonden objecten)
|
|
CREATE OR REPLACE VIEW akza_v_rap_kentekens
|
|
AS
|
|
SELECT * FROM
|
|
(SELECT prs_perslid_naam||'1' hide_f_sort
|
|
,prs_perslid_naam fclt_f_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_aanwezigperslid ap
|
|
,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 = ap.prs_perslid_key
|
|
AND knt.prs_kenmerk_key = 1260
|
|
AND srt.prs_link_key(+) = ap.prs_perslid_key
|
|
AND srt.prs_kenmerk_key(+) = 1280
|
|
AND srt.prs_kenmerklink_waarde = ud.fac_usrdata_key(+)
|
|
AND mrk.prs_link_key(+) = ap.prs_perslid_key
|
|
AND mrk.prs_kenmerk_key(+) = 1281
|
|
AND typ.prs_link_key(+) = ap.prs_perslid_key
|
|
AND typ.prs_kenmerk_key(+) = 1282
|
|
AND klr.prs_link_key(+) = ap.prs_perslid_key
|
|
AND klr.prs_kenmerk_key(+) = 1283)
|
|
UNION
|
|
(SELECT prs_perslid_naam||'2' hide_f_sort
|
|
,prs_perslid_naam fclt_f_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_aanwezigperslid ap
|
|
,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 = ap.prs_perslid_key
|
|
AND knt.prs_kenmerk_key = 1284
|
|
AND srt.prs_link_key(+) = ap.prs_perslid_key
|
|
AND srt.prs_kenmerk_key(+) = 1285
|
|
AND srt.prs_kenmerklink_waarde = ud.fac_usrdata_key(+)
|
|
AND mrk.prs_link_key(+) = ap.prs_perslid_key
|
|
AND mrk.prs_kenmerk_key(+) = 1286
|
|
AND typ.prs_link_key(+) = ap.prs_perslid_key
|
|
AND typ.prs_kenmerk_key(+) = 1287
|
|
AND klr.prs_link_key(+) = ap.prs_perslid_key
|
|
AND klr.prs_kenmerk_key(+) = 1288)
|
|
UNION
|
|
(SELECT prs_perslid_naam||'3' hide_f_sort
|
|
,prs_perslid_naam fclt_f_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_aanwezigperslid ap
|
|
,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 = ap.prs_perslid_key
|
|
AND knt.prs_kenmerk_key = 1289
|
|
AND srt.prs_link_key(+) = ap.prs_perslid_key
|
|
AND srt.prs_kenmerk_key(+) = 1290
|
|
AND srt.prs_kenmerklink_waarde = ud.fac_usrdata_key(+)
|
|
AND mrk.prs_link_key(+) = ap.prs_perslid_key
|
|
AND mrk.prs_kenmerk_key(+) = 1291
|
|
AND typ.prs_link_key(+) = ap.prs_perslid_key
|
|
AND typ.prs_kenmerk_key(+) = 1292
|
|
AND klr.prs_link_key(+) = ap.prs_perslid_key
|
|
AND klr.prs_kenmerk_key(+) = 1293)
|
|
ORDER BY hide_f_sort;
|
|
|
|
|
|
CREATE OR REPLACE VIEW AKZ_V_AANWEZIGPERSLID
|
|
AS
|
|
SELECT *
|
|
FROM prs_v_aanwezigperslid
|
|
WHERE prs_perslid_upper NOT LIKE '[%'
|
|
AND prs_perslid_upper NOT LIKE 'LEEG [%';
|
|
|
|
|
|
BEGIN fac.registercustversion('AKZA', 18); END;
|
|
/
|
|
COMMIT;
|
|
SPOOL OFF;
|