983 lines
41 KiB
SQL
983 lines
41 KiB
SQL
-- Script containing customer specific configuration sql statements for SORO: Stichting ORO
|
||
-- (c) 2013 SG|facilitor
|
||
-- $Revision$
|
||
-- $Id$
|
||
--
|
||
-- Support: +31 53 4800710
|
||
|
||
set echo on
|
||
|
||
spool xsoro.lst
|
||
|
||
--
|
||
-- Personen import
|
||
--
|
||
|
||
-- soro_insert_huidige_wp bepaalt huidige werkplek en update de import-tabel 'fac_imp_perslid' daarmee.
|
||
-- Indien persoon nieuw is (personeelsnr bestaat niet), of persoon bestaat wel maar heeft geen werkplek, dan wordt import-tabel 'fac_imp_perslid' niet geupdate met werkplek maar blijft null.
|
||
-- Indien persoon uit Beaufort op afdeling zit / is verhuisd waarbij geen werkplek kan worden bepaald (b.v. omdat v_sla_werkplek_over=1 of afdeling-gebouw relatie ontbreekt),
|
||
-- dan wordt de huidige werkplek in fac_imp_perslid geinsert, zodat die wordt aangehouden als correcte.
|
||
-- Op deze manier worden HANDMATIG geplaatste personen op een werkplek/ruimte gehandhaafd (anders zouden ze allemaal door de standaard worden verwijderd).
|
||
|
||
CREATE OR REPLACE PROCEDURE soro_insert_huidige_wp(
|
||
p_import_key IN NUMBER,
|
||
p_prs_perslid_nr IN VARCHAR2,
|
||
p_prs_perslid_naam IN VARCHAR2,
|
||
p_prs_afdeling_omschrijving IN VARCHAR2
|
||
) AS
|
||
v_prs_perslid_key prs_perslid.prs_perslid_key%TYPE;
|
||
v_prs_werkplek_key prs_werkplek.prs_werkplek_key%TYPE;
|
||
|
||
|
||
v_alg_locatie_code alg_locatie.alg_locatie_code%TYPE;
|
||
v_alg_gebouw_code alg_gebouw.alg_gebouw_code%TYPE;
|
||
v_alg_verdieping_volgnr alg_verdieping.alg_verdieping_volgnr%TYPE;
|
||
v_alg_ruimte_nr alg_ruimte.alg_ruimte_nr%TYPE;
|
||
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
|
||
BEGIN
|
||
v_errormsg := 'Huidige werkplek: persoon (naam = ' || p_prs_perslid_naam || ', afdeling =' || p_prs_afdeling_omschrijving || ') met personeelsnummer ' || p_prs_perslid_nr || ' is nieuw' ;
|
||
|
||
SELECT prs_perslid_key
|
||
INTO v_prs_perslid_key
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr = p_prs_perslid_nr;
|
||
|
||
v_errormsg := 'Huidige werkplek: persoon (naam = ' || p_prs_perslid_naam || ', afdeling =' || p_prs_afdeling_omschrijving || ') met personeelsnummer ' || p_prs_perslid_nr || ' is bekend en heeft geen werkplek';
|
||
SELECT prs_werkplek_key
|
||
INTO v_prs_werkplek_key
|
||
FROM prs_perslidwerkplek
|
||
WHERE prs_perslid_key = v_prs_perslid_key
|
||
AND prs_perslidwerkplek_bezetting = (SELECT MAX (prs_perslidwerkplek_bezetting)
|
||
FROM prs_perslidwerkplek
|
||
WHERE prs_perslid_key = v_prs_perslid_key);
|
||
|
||
v_errormsg := 'Huidige werkplek: persoon (naam = ' || p_prs_perslid_naam || ', afdeling =' || p_prs_afdeling_omschrijving || ') met personeelsnummer ' || p_prs_perslid_nr || ' had wel werkplek, maar bijbehorende ruimte kan niet worden gevonden' ;
|
||
|
||
SELECT r.alg_locatie_code, r.alg_gebouw_upper, r.alg_verdieping_volgnr, r.alg_ruimte_upper_nr
|
||
INTO v_alg_locatie_code, v_alg_gebouw_code, v_alg_verdieping_volgnr, v_alg_ruimte_nr
|
||
FROM prs_werkplek w, alg_v_ruimte_gegevens_all r
|
||
WHERE w.prs_werkplek_key = v_prs_werkplek_key
|
||
AND w.prs_alg_ruimte_key = r.alg_ruimte_key;
|
||
|
||
v_errormsg := 'Huidige werkplek: persoon (naam = ' || p_prs_perslid_naam || ', afdeling =' || p_prs_afdeling_omschrijving || ') met personeelsnummer ' || p_prs_perslid_nr || ' had wel werkplek, maar kon niet worden behouden.' ;
|
||
|
||
UPDATE fac_imp_perslid
|
||
SET alg_locatie_code = v_alg_locatie_code,
|
||
alg_gebouw_code = v_alg_gebouw_code,
|
||
alg_verdieping_volgnr = v_alg_verdieping_volgnr,
|
||
alg_ruimte_nr = v_alg_ruimte_nr
|
||
WHERE prs_perslid_nr = p_prs_perslid_nr;
|
||
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'I', v_errormsg, v_errorhint);
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'I', v_errormsg, v_errorhint);
|
||
|
||
END soro_insert_huidige_wp;
|
||
/
|
||
|
||
|
||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
-- Voor iedere persoon vanuit Beaufort gaan we de werkplek erbij bepalen, op basis van de afdleingsnaam.
|
||
-- Indien de afdelingsnaam overeenkomt met een gebouwnaam (voor afdelingen Huisvesting, ICT, HRM b.v is dat niet het geval), dan zoeken we naar de 1e verdieping(volgnr=0)
|
||
-- en 1e ruimte (laagste ruimtenummer) om die te updaten in de importtabel, zodat personen daar een werkplek gaan krijgen.
|
||
--
|
||
|
||
CREATE OR REPLACE PROCEDURE soro_lookup_4_wp(
|
||
p_import_key IN NUMBER
|
||
) AS
|
||
|
||
CURSOR c_prs
|
||
IS
|
||
SELECT i.prs_perslid_nr, i.prs_perslid_naam, i.prs_afdeling_naam, i.prs_kenmerk1 as prs_afdeling_omschrijving
|
||
FROM fac_imp_perslid i;
|
||
|
||
v_alg_locatie_key alg_locatie.alg_locatie_key%TYPE;
|
||
v_alg_locatie_code alg_locatie.alg_locatie_code%TYPE;
|
||
v_alg_gebouw_key alg_gebouw.alg_gebouw_key%TYPE;
|
||
v_alg_gebouw_code alg_gebouw.alg_gebouw_code%TYPE;
|
||
v_alg_verdieping_key alg_verdieping.alg_verdieping_key%TYPE;
|
||
v_alg_verdieping_volgnr alg_verdieping.alg_verdieping_volgnr%TYPE;
|
||
v_alg_ruimte_nr alg_ruimte.alg_ruimte_nr%TYPE;
|
||
|
||
v_beganegrond_bestaat NUMBER;
|
||
v_ruimte_met_naam_ruimte NUMBER;
|
||
v_sla_werkplek_over NUMBER;
|
||
v_stamgebouw NUMBER;
|
||
|
||
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
|
||
|
||
|
||
BEGIN
|
||
|
||
FOR rec_wp IN c_prs
|
||
LOOP
|
||
BEGIN
|
||
|
||
-- Bepaal huidige werkplek (die wellicht handmatig is geplaatst), en zet die in import-tabel om die INTAKT te laten, want alle lege 'werkplekken' worden achteraf verwijderd.
|
||
soro_insert_huidige_wp(p_import_key, rec_wp.prs_perslid_nr, rec_wp.prs_perslid_naam, rec_wp.prs_afdeling_omschrijving);
|
||
|
||
v_errormsg :=
|
||
'Afdeling bestaat niet van persoon (personeelsnr - naam / afdeling - omschrijving) '
|
||
|| rec_wp.prs_perslid_nr
|
||
|| '-'
|
||
|| rec_wp.prs_perslid_naam
|
||
|| '/'
|
||
|| rec_wp.prs_afdeling_naam
|
||
|| '-'
|
||
|| rec_wp.prs_afdeling_omschrijving;
|
||
|
||
-- Check of afdeling expliciet heeft ingesteld dat voor persoon GEEN werkplek moet worden gezocht.
|
||
-- Dit is kenmerk key = 1000, is een vinkje, uit (=0) betekent wel werkplek zoeken, aan (=1) betekent geen werkplek zoeken.
|
||
-- Bij GEEN werkplek zoeken, zorgen we ervoor dat een bestaande werkplek (met de hand aangemaakt b.v.) intakt blijft.
|
||
SELECT fac.safe_to_number(COALESCE(prs_kenmerklink_waarde,'0'))
|
||
INTO v_sla_werkplek_over
|
||
FROM prs_afdeling a, prs_kenmerklink k
|
||
WHERE prs_afdeling_upper = UPPER(rec_wp.prs_afdeling_naam)
|
||
AND a.prs_afdeling_key = K.PRS_LINK_KEY (+)
|
||
AND K.PRS_KENMERKLINK_NIVEAU (+) = 'A'
|
||
AND k.prs_kenmerk_key(+) = 1000;
|
||
|
||
IF v_sla_werkplek_over = 0
|
||
THEN
|
||
-- We gaan op zoek naar werkplek, hetzij op basis van
|
||
-- 1) afdelingnaam = gebouwnaam (dit is de standaard manier), in dit geval is stamgebouw niet gevuld.
|
||
-- 2) STAMGEBOUW, dit is als stamgebouw wel is gevuld, dan overruled die regel 1), en is dit expliciet het gebouw waar afdeling zit.
|
||
|
||
-- Dus eerst op zoek of afdeling een stamgebouw heeft.
|
||
-- Dit is kenmerk key = 1001, is een ref-kenmerk naar VIEW ALG_V_AANWEZIGGEBOUW
|
||
|
||
SELECT fac.safe_to_number(COALESCE(prs_kenmerklink_waarde,'0'))
|
||
INTO v_stamgebouw
|
||
FROM prs_afdeling a, prs_kenmerklink k
|
||
WHERE prs_afdeling_upper = UPPER(rec_wp.prs_afdeling_naam)
|
||
AND a.prs_afdeling_key = K.PRS_LINK_KEY (+)
|
||
AND K.PRS_KENMERKLINK_NIVEAU (+) = 'A'
|
||
AND k.prs_kenmerk_key(+) = 1001;
|
||
|
||
v_alg_gebouw_key := NULL;
|
||
|
||
IF v_stamgebouw = 0
|
||
THEN
|
||
-- Er is GEEN stamgebouw, dus zoek op standaard manier naar gebouw waarvan de gebouwnaam overeenkomt met afdelingsomschrijving.
|
||
|
||
v_errormsg :=
|
||
'Geen gebouw kunnen bepalen afdeling van persoon (personeelsnr - naam / afdeling - omschrijving) '
|
||
|| rec_wp.prs_perslid_nr
|
||
|| '-'
|
||
|| rec_wp.prs_perslid_naam
|
||
|| '/'
|
||
|| rec_wp.prs_afdeling_naam
|
||
|| '-'
|
||
|| rec_wp.prs_afdeling_omschrijving;
|
||
|
||
SELECT alg_gebouw_key, alg_gebouw_code, alg_locatie_key
|
||
INTO v_alg_gebouw_key, v_alg_gebouw_code, v_alg_locatie_key
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER(alg_gebouw_naam) = (SELECT UPPER(prs_afdeling_omschrijving) FROM prs_afdeling WHERE prs_afdeling_upper = UPPER(rec_wp.prs_afdeling_naam));
|
||
ELSE
|
||
-- Er is WEL een stamgebouw
|
||
|
||
v_errormsg :=
|
||
'Stamgebouw bestaat NIET meer bij afdeling van persoon (personeelsnr - naam / afdeling - omschrijving) '
|
||
|| rec_wp.prs_perslid_nr
|
||
|| '-'
|
||
|| rec_wp.prs_perslid_naam
|
||
|| '/'
|
||
|| rec_wp.prs_afdeling_naam
|
||
|| '-'
|
||
|| rec_wp.prs_afdeling_omschrijving;
|
||
|
||
SELECT alg_gebouw_key, alg_gebouw_code, alg_locatie_key
|
||
INTO v_alg_gebouw_key, v_alg_gebouw_code, v_alg_locatie_key
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE alg_gebouw_key = v_stamgebouw;
|
||
END IF;
|
||
|
||
SELECT alg_locatie_code
|
||
INTO v_alg_locatie_code
|
||
FROM alg_locatie
|
||
WHERE alg_locatie_key = v_alg_locatie_key;
|
||
|
||
SELECT count(*)
|
||
INTO v_beganegrond_bestaat
|
||
FROM alg_v_aanwezigverdieping
|
||
WHERE alg_gebouw_key = v_alg_gebouw_key
|
||
AND alg_verdieping_volgnr = 0;
|
||
|
||
IF v_beganegrond_bestaat = 1
|
||
THEN
|
||
-- Begane grond bestaat!
|
||
|
||
SELECT alg_verdieping_key, alg_verdieping_volgnr
|
||
INTO v_alg_verdieping_key, v_alg_verdieping_volgnr
|
||
FROM alg_v_aanwezigverdieping
|
||
WHERE alg_gebouw_key = v_alg_gebouw_key
|
||
AND alg_verdieping_volgnr = 0;
|
||
ELSE
|
||
-- Begane grond bestaat niet, dan de eerste verdieping met laagste volgnummer, indien die niet gevonden, dan houd het op.
|
||
v_errormsg :='Fout bij bepalen verdieping bij gebouw (gebouwcode) ' || v_alg_gebouw_code;
|
||
|
||
v_errormsg :=
|
||
'Fout bij bepalen verdieping bij gebouw (gebouwcode) ' || v_alg_gebouw_code || ' van persoon (personeelsnr - naam / afdeling - omschrijving) '
|
||
|| rec_wp.prs_perslid_nr
|
||
|| '-'
|
||
|| rec_wp.prs_perslid_naam
|
||
|| '/'
|
||
|| rec_wp.prs_afdeling_naam
|
||
|| '-'
|
||
|| rec_wp.prs_afdeling_omschrijving;
|
||
|
||
|
||
SELECT alg_verdieping_key, alg_verdieping_volgnr
|
||
INTO v_alg_verdieping_key, v_alg_verdieping_volgnr
|
||
FROM alg_v_aanwezigverdieping
|
||
WHERE alg_gebouw_key = v_alg_gebouw_key
|
||
AND alg_verdieping_volgnr = (SELECT MIN(alg_verdieping_volgnr) FROM alg_v_aanwezigverdieping WHERE alg_gebouw_key = v_alg_gebouw_key);
|
||
END IF;
|
||
|
||
SELECT count(*)
|
||
INTO v_ruimte_met_naam_ruimte
|
||
FROM alg_v_aanwezigruimte
|
||
WHERE alg_verdieping_key = v_alg_verdieping_key
|
||
AND UPPER(alg_ruimte_nr) = 'RUIMTE';
|
||
|
||
IF v_ruimte_met_naam_ruimte = 1
|
||
THEN
|
||
-- Ruimte op verdieping met nummer 'RUIMTE' bestaat!
|
||
v_alg_ruimte_nr := 'RUIMTE';
|
||
ELSE
|
||
-- Ruimte op verdieping met nummer 'RUIMTE' bestaat NIET! Dan de eerste ruimte met laagste ruimtenr, indien die niet gevonden, dan houd het op.
|
||
v_errormsg :='Fout bij bepalen ruimte bij gebouw en verdieping (gebouwcode / verdiepingvolgnr) ' || v_alg_gebouw_code || '/' || v_alg_verdieping_volgnr;
|
||
SELECT MIN(alg_ruimte_nr)
|
||
INTO v_alg_ruimte_nr
|
||
FROM alg_v_aanwezigruimte
|
||
WHERE alg_verdieping_key = v_alg_verdieping_key;
|
||
END IF;
|
||
|
||
-- Alleen werkplek bijwerken indien een van de volgende regeltjes waar is:
|
||
-- 1) de persoon nog geen werkplek had (nieuw persoon of bestaande persoon zonder werkplek), dus als gebouw leeg is.
|
||
-- 2) de persoon wel werkplek had, maar nu is gebouw een andere.
|
||
-----> M.a.w. indien de persoon een werkplek heeft in hetzelfde gebouw, dan niet updaten, maar bestaande werkplek heeft voorrang (handmatig geplaatst b.v.)
|
||
|
||
UPDATE fac_imp_perslid
|
||
SET alg_locatie_code = v_alg_locatie_code,
|
||
alg_gebouw_code = v_alg_gebouw_code,
|
||
alg_verdieping_volgnr = v_alg_verdieping_volgnr,
|
||
alg_ruimte_nr = v_alg_ruimte_nr
|
||
WHERE prs_perslid_nr = rec_wp.prs_perslid_nr
|
||
AND (alg_gebouw_code IS NULL OR alg_gebouw_code <> v_alg_gebouw_code);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
|
||
WHEN OTHERS
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_errorhint);
|
||
END;
|
||
|
||
END LOOP;
|
||
|
||
END soro_lookup_4_wp;
|
||
/
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE soro_post_import_perslid(
|
||
p_import_key IN NUMBER
|
||
) AS
|
||
BEGIN
|
||
|
||
-- Codering naamgebruik ORO:
|
||
-- B = Naam partner - Geboortenaam
|
||
-- C = Geboortenaam - Naam partner
|
||
-- E = Geboortenaam
|
||
-- P = Naam partner
|
||
UPDATE fac_imp_perslid SET PRS_PERSLID_NAAMGEBRUIK_CODE = 0 WHERE PRS_KENMERK3 = 'E'; -- 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
|
||
UPDATE fac_imp_perslid SET PRS_PERSLID_NAAMGEBRUIK_CODE = 1 WHERE PRS_KENMERK3 = 'B'; -- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
|
||
UPDATE fac_imp_perslid SET PRS_PERSLID_NAAMGEBRUIK_CODE = 2 WHERE PRS_KENMERK3 = 'P'; -- 2 personen die de geboortenaam van de partner willen gebruiken
|
||
UPDATE fac_imp_perslid SET PRS_PERSLID_NAAMGEBRUIK_CODE = 3 WHERE PRS_KENMERK3 = 'C'; -- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
|
||
|
||
-- Toewijzen werkplek adhv afdelingsnaam
|
||
-- Indien afdelingsnaam als gebouw bestaat, dan persoon hier de werkplek geven (op verdieping met volgnr 0 of anders 1e verdieping die bestaat, zo ook met ruimte (laagste ruimtenummer)
|
||
soro_lookup_4_wp(p_import_key);
|
||
|
||
END soro_post_import_perslid;
|
||
/
|
||
|
||
|
||
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE soro_import_perslid (p_import_key IN NUMBER)
|
||
AS
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (400);
|
||
v_errorhint VARCHAR2 (400);
|
||
BEGIN
|
||
|
||
v_errorhint := 'Generieke update';
|
||
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
|
||
prs.import_perslid (p_import_key,
|
||
'0;0;0;0;0;0;1;7;6;5;' ||
|
||
'0;9;8;13;;0;0;12;0;3;' ||
|
||
'11;3;0;0;0;0;2;1;13;0;'||
|
||
'0;0;0;0;0;0;0;0;0;0;'||
|
||
'0;0;0;0;0;0',
|
||
'"Org.eenh.";"Naam org.eenh.";"Persoonsnr.";"Naam samengesteld";"Roepnaam";"Voorvoeg.geb.naam";"Geb.naam";"Voorvoeg.partner";"Naam partner";"Functiecode DV";"Oms functie";"Email werk";"Gebruik achternaam"%'
|
||
);
|
||
|
||
-- Klantspecifieke aanpassingen
|
||
soro_post_import_perslid(p_import_key);
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
END soro_import_perslid;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE soro_update_perslid (
|
||
p_import_key IN NUMBER
|
||
) IS
|
||
|
||
CURSOR c_del
|
||
IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
|
||
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_nr IS NOT NULL
|
||
AND i.prs_perslid_nr IS NULL
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
ORDER BY 2;
|
||
|
||
v_count NUMBER;
|
||
|
||
BEGIN
|
||
-- generic update
|
||
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM fac_imp_perslid;
|
||
|
||
IF v_count < 1000
|
||
THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
'Het aantal te importeren personen is te klein ('
|
||
|| TO_CHAR (v_count) || ')',
|
||
'Zie Specificatie'
|
||
);
|
||
RETURN;
|
||
END IF;
|
||
|
||
-- 'NR' betekent dat op basis van personeelsNummeR wordt gematched.
|
||
-- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen
|
||
prs.update_perslid (p_import_key, 'NR', 'A');
|
||
|
||
-- Verwijder personen die niet meer in de import voorkomen.
|
||
FOR rec IN c_del
|
||
LOOP
|
||
BEGIN
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END;
|
||
END LOOP;
|
||
|
||
END soro_update_perslid;
|
||
/
|
||
|
||
-- SORO#29825: Unieke objectid loopt globaal over alle ICT objecten, alle ICT objecten moeten dan wel de objectsoortcode 'ORO' gaan krijgen.
|
||
CREATE OR REPLACE VIEW soro_v_ict_ins_volgnr
|
||
(volgnr)
|
||
AS SELECT 'ORO' || NVL(LPAD( TO_CHAR(MAX(TO_NUMBER(SUBSTR(ins_deel_upper, LENGTH('ORO')+1,LENGTH(ins_deel_upper)-LENGTH('ORO'))))+1) , MAX(LENGTH(ins_deel_upper)-LENGTH('ORO')),'0'),'001')
|
||
-- INTO NextVolgNr
|
||
FROM INS_DEEL
|
||
WHERE ins_deel_upper LIKE 'ORO'||'%'
|
||
AND fac.safe_to_integer(SUBSTR(ins_deel_upper, LENGTH('ORO')+1,LENGTH(ins_deel_upper)-LENGTH('ORO'))) IS NOT NULL
|
||
AND LTRIM(SUBSTR (ins_deel_upper, LENGTH ('ORO') + 1), '0') = TO_CHAR(fac.safe_to_integer ((SUBSTR (ins_deel_upper, LENGTH ('ORO') + 1))))
|
||
AND ins_deel_parent_key IS NULL
|
||
AND ins_deel_verwijder IS NULL;
|
||
|
||
|
||
-- SORO#30996: Autoritten administratie
|
||
-- View van reserveringsnummers van autoritten (res_activiteit_key = 30) in het verleden (dus res. tot datum in het verleden) waarvan nog geen kilometerstand melding (std_melding_key = 181) van bestaat.
|
||
-- Let op: alleen de definitieve reserveringen (res_status_fo_key = 2)
|
||
-- Let op: harde datum-vanaf 1 januari 2015, zodat de hele oude autoritten (van voor 1 jan 2015) niet meedoen, aangezien dit vanaf 1 jan 2015 ingaat
|
||
-- Let op: de union is nodig zodat een gekozen reserveringsnummer (bij een melding) wel zichtbaar is als ref-flexprop, maar niet meer selecteerbaar bij edit/nieuw (vandaar de vervaldatum).
|
||
CREATE OR REPLACE VIEW soro_v_autorit_km
|
||
(
|
||
res_rsv_ruimte_key,
|
||
res_nummer,
|
||
vervaldatum,
|
||
mld_melding_key
|
||
)
|
||
AS
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|
||
NULL,
|
||
NULL
|
||
FROM res_rsv_ruimte rrr
|
||
WHERE res_activiteit_key = 30
|
||
AND res_rsv_ruimte_verwijder IS NULL
|
||
AND res_rsv_ruimte_dirtlevel = 0
|
||
AND res_status_fo_key = 2
|
||
AND res_rsv_ruimte_tot < SYSDATE
|
||
AND res_rsv_ruimte_van >= TO_DATE ('01-01-2015', 'dd-mm-yyyy')
|
||
AND res_rsv_ruimte_aanmaak >=
|
||
TO_DATE ('01-01-2015', 'dd-mm-yyyy')
|
||
AND NOT EXISTS
|
||
(SELECT 'x'
|
||
FROM mld_melding m,
|
||
mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd
|
||
WHERE m.mld_stdmelding_key = 181
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_verwijder IS NULL
|
||
AND kd.fac_kenmerkdomein_key =
|
||
sk.fac_kenmerkdomein_key
|
||
AND kd.fac_kenmerkdomein_module = 'MLD'
|
||
AND kd.fac_kenmerkdomein_objectnaam =
|
||
'SORO_V_AUTORIT_KM'
|
||
AND kd.fac_kenmerkdomein_verwijder IS NULL
|
||
AND km.mld_kenmerkmelding_waarde =
|
||
TO_CHAR (rrr.res_rsv_ruimte_key))
|
||
UNION
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
res_reservering_key || '/' || res_rsv_ruimte_volgnr,
|
||
TO_DATE ('01-01-2000', 'dd-mm-yyyy'),
|
||
m.mld_melding_key
|
||
FROM mld_melding m,
|
||
mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd,
|
||
res_rsv_ruimte rrr
|
||
WHERE m.mld_stdmelding_key = 181
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_verwijder IS NULL
|
||
AND kd.fac_kenmerkdomein_key = sk.fac_kenmerkdomein_key
|
||
AND kd.fac_kenmerkdomein_module = 'MLD'
|
||
AND kd.fac_kenmerkdomein_objectnaam = 'SORO_V_AUTORIT_KM'
|
||
AND kd.fac_kenmerkdomein_verwijder IS NULL
|
||
AND TO_CHAR (rrr.res_rsv_ruimte_key) =
|
||
km.mld_kenmerkmelding_waarde;
|
||
|
||
CREATE OR REPLACE VIEW SORO_V_NOTI_AUTORIT_KM
|
||
(
|
||
CODE,
|
||
SENDER,
|
||
RECEIVER,
|
||
TEXT,
|
||
KEY,
|
||
PAR1,
|
||
PAR2,
|
||
XKEY
|
||
)
|
||
AS
|
||
SELECT 'CUST01',
|
||
'',
|
||
rrr.res_rsv_ruimte_contact_key,
|
||
'Reminder: u heeft de kilometers van reservering/autovervoer '
|
||
|| res_reservering_key
|
||
|| '/'
|
||
|| res_rsv_ruimte_volgnr
|
||
|| ' nog niet ingevoerd',
|
||
rrr.res_rsv_ruimte_key, -- reserveringskey, althans een willekeurige; FSN#19425
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM res_rsv_ruimte rrr
|
||
WHERE res_activiteit_key = 30
|
||
AND res_rsv_ruimte_verwijder IS NULL
|
||
AND res_rsv_ruimte_dirtlevel = 0
|
||
AND res_status_fo_key = 2
|
||
AND res_rsv_ruimte_tot < SYSDATE
|
||
AND res_rsv_ruimte_van >= TO_DATE ('01-01-2015', 'dd-mm-yyyy')
|
||
AND res_rsv_ruimte_aanmaak >=
|
||
TO_DATE ('01-01-2015', 'dd-mm-yyyy')
|
||
AND NOT EXISTS
|
||
(SELECT 'x'
|
||
FROM mld_melding m,
|
||
mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
fac_kenmerkdomein kd
|
||
WHERE m.mld_stdmelding_key = 181
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_verwijder IS NULL
|
||
AND kd.fac_kenmerkdomein_key =
|
||
sk.fac_kenmerkdomein_key
|
||
AND kd.fac_kenmerkdomein_module = 'MLD'
|
||
AND kd.fac_kenmerkdomein_objectnaam =
|
||
'SORO_V_AUTORIT_KM'
|
||
AND kd.fac_kenmerkdomein_verwijder IS NULL
|
||
AND km.mld_kenmerkmelding_waarde =
|
||
TO_CHAR (rrr.res_rsv_ruimte_key));
|
||
|
||
|
||
-- 1e deel: alle ritten zonder km's
|
||
--UNION
|
||
-- 2e deel: alle ritten met km's
|
||
|
||
-- Kenmerk-keys:
|
||
-- res_srtkenmerk_key = 1 -> Naam client
|
||
-- res_srtkenmerk_key = 2 -> Kosten: Client met/zonder verblijf
|
||
-- res_srtkenmerk_key = 23 -> Van
|
||
-- res_srtkenmerk_key = 24 -> Naar
|
||
-- mld_srtkenmerk_key = 63 -> Beginstand kilometers
|
||
-- mld_srtkenmerk_key = 64 -> Eindstand kilometers
|
||
|
||
CREATE OR REPLACE VIEW soro_v_autorit_met_km_reg
|
||
(res_rsv_ruimte_key,
|
||
res_nummer,
|
||
res_rsv_ruimte_omschrijving,
|
||
res_rsv_ruimte_van,
|
||
res_rsv_ruimte_tot,
|
||
res_deel_omschrijving,
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving,
|
||
prs_perslid_naam,
|
||
prs_perslid_tussenvoegsel,
|
||
prs_perslid_voorletters,
|
||
prs_perslid_voornaam,
|
||
client,
|
||
kosten,
|
||
reden_vervoer,
|
||
van,
|
||
naar,
|
||
km_start,
|
||
km_einde
|
||
)
|
||
AS
|
||
SELECT rit.res_rsv_ruimte_key,
|
||
rit.res_nummer,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
rd.res_deel_omschrijving,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
p.prs_perslid_naam,
|
||
p.prs_perslid_tussenvoegsel,
|
||
p.prs_perslid_voorletters,
|
||
p.prs_perslid_voornaam,
|
||
NULL client,
|
||
(SELECT UD.FAC_USRDATA_OMSCHR
|
||
FROM res_kenmerkwaarde w, res_kenmerk k, fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key = fac.safe_to_number(w.res_kenmerkreservering_waarde)
|
||
AND w.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND w.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 2
|
||
AND w.res_kenmerkwaarde_verwijder IS NULL) kosten,
|
||
(SELECT UD.FAC_USRDATA_OMSCHR
|
||
FROM res_kenmerkwaarde w, res_kenmerk k, fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key = fac.safe_to_number(w.res_kenmerkreservering_waarde)
|
||
AND w.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND w.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 41
|
||
AND w.res_kenmerkwaarde_verwijder IS NULL) reden_vervoer,
|
||
(SELECT w.res_kenmerkreservering_waarde
|
||
FROM res_kenmerkwaarde w, res_kenmerk k
|
||
WHERE w.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND w.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 23
|
||
AND w.res_kenmerkwaarde_verwijder IS NULL) van,
|
||
(SELECT w.res_kenmerkreservering_waarde
|
||
FROM res_kenmerkwaarde w, res_kenmerk k
|
||
WHERE w.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND w.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 24
|
||
AND w.res_kenmerkwaarde_verwijder IS NULL) naar,
|
||
NULL km_start,
|
||
NULL km_einde
|
||
FROM soro_v_autorit_km rit, res_rsv_ruimte rrr, prs_perslid p, res_rsv_deel rrd, res_deel rd, ins_deel d, alg_locatie l
|
||
WHERE vervaldatum IS NULL
|
||
AND rrr.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND p.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
||
AND rrd.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND rrd.res_rsv_deel_verwijder IS NULL
|
||
AND rd.res_deel_key=rrd.res_deel_key
|
||
AND d.ins_deel_key = rd.res_ins_deel_key
|
||
AND l.alg_locatie_key = d.ins_alg_locatie_key
|
||
UNION
|
||
SELECT rit.res_rsv_ruimte_key,
|
||
rit.res_nummer,
|
||
rrr.res_rsv_ruimte_omschrijving,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
rd.res_deel_omschrijving,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
p.prs_perslid_naam,
|
||
p.prs_perslid_tussenvoegsel,
|
||
p.prs_perslid_voorletters,
|
||
p.prs_perslid_voornaam,
|
||
NULL client,
|
||
(SELECT UD.FAC_USRDATA_OMSCHR
|
||
FROM res_kenmerkwaarde w, res_kenmerk k, fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key = fac.safe_to_number(w.res_kenmerkreservering_waarde)
|
||
AND w.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND w.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 2
|
||
AND w.res_kenmerkwaarde_verwijder IS NULL) kosten,
|
||
(SELECT UD.FAC_USRDATA_OMSCHR
|
||
FROM res_kenmerkwaarde w, res_kenmerk k, fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key = fac.safe_to_number(w.res_kenmerkreservering_waarde)
|
||
AND w.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND w.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 41
|
||
AND w.res_kenmerkwaarde_verwijder IS NULL) reden_vervoer,
|
||
(SELECT w.res_kenmerkreservering_waarde
|
||
FROM res_kenmerkwaarde w, res_kenmerk k
|
||
WHERE w.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND w.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 23
|
||
AND w.res_kenmerkwaarde_verwijder IS NULL) van,
|
||
(SELECT w.res_kenmerkreservering_waarde
|
||
FROM res_kenmerkwaarde w, res_kenmerk k
|
||
WHERE w.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND w.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 24
|
||
AND w.res_kenmerkwaarde_verwijder IS NULL) naar,
|
||
(SELECT km.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = rit.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 63
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) km_start,
|
||
(SELECT km.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = rit.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 64
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) km_einde
|
||
FROM soro_v_autorit_km rit, res_rsv_ruimte rrr, prs_perslid p, res_rsv_deel rrd, res_deel rd, ins_deel d, alg_locatie l
|
||
WHERE vervaldatum IS NOT NULL
|
||
AND rrr.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND p.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
||
AND rrd.res_rsv_ruimte_key = rit.res_rsv_ruimte_key
|
||
AND rrd.res_rsv_deel_verwijder IS NULL
|
||
AND rd.res_deel_key=rrd.res_deel_key
|
||
AND d.ins_deel_key = rd.res_ins_deel_key
|
||
AND l.alg_locatie_key = d.ins_alg_locatie_key;
|
||
|
||
|
||
-- Kenmerk-keys:
|
||
-- mld_srtkenmerk_key = 85 -> Naam client
|
||
-- mld_srtkenmerk_key = 84 -> Kosten: Client met/zonder verblijf
|
||
-- mld_srtkenmerk_key = 87 -> Reden van de rit
|
||
-- mld_srtkenmerk_key = 88 -> Van
|
||
-- mld_srtkenmerk_key = 86 -> Naar
|
||
-- mld_srtkenmerk_key = 83 -> Datum van de rit
|
||
-- mld_srtkenmerk_key = 63 -> Beginstand kilometers
|
||
-- mld_srtkenmerk_key = 64 -> Eindstand kilometers
|
||
|
||
-- mld_std_melding_key = 221 -> Prive rit registratie
|
||
|
||
-- Kilometers gereden met prive auto, dus de ritten ZONDER autoRESERVERING, maar gewoon met je eigen prive-bak
|
||
-- Dit zijn de gegevens(records) waar een melding is gemaakt van standaard melding key 221
|
||
|
||
CREATE OR REPLACE VIEW soro_v_prive_autorit_met_km
|
||
(mld_melding_key,
|
||
mld_nummer,
|
||
mld_melding_omschrijving,
|
||
datum_van,
|
||
datum_tot,
|
||
auto_omschrijving,
|
||
alg_locatie_code,
|
||
alg_locatie_omschrijving,
|
||
prs_perslid_naam,
|
||
prs_perslid_tussenvoegsel,
|
||
prs_perslid_voorletters,
|
||
prs_perslid_voornaam,
|
||
client,
|
||
kosten,
|
||
reden_vervoer,
|
||
van,
|
||
naar,
|
||
km_start,
|
||
km_einde
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
m.mld_melding_key,
|
||
m.mld_melding_omschrijving,
|
||
(SELECT to_date(km.mld_kenmerkmelding_waarde,'dd-mm-yyyy')
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 83
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) datum_van,
|
||
(SELECT to_date(km.mld_kenmerkmelding_waarde,'dd-mm-yyyy')
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 83
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) datum_tot,
|
||
'Eigen auto',
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_omschrijving,
|
||
p.prs_perslid_naam,
|
||
p.prs_perslid_tussenvoegsel,
|
||
p.prs_perslid_voorletters,
|
||
p.prs_perslid_voornaam,
|
||
(SELECT km.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 85
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) client,
|
||
(SELECT UD.FAC_USRDATA_OMSCHR
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 84
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) kosten,
|
||
(SELECT UD.FAC_USRDATA_OMSCHR
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud
|
||
WHERE ud.fac_usrdata_key = fac.safe_to_number(km.mld_kenmerkmelding_waarde)
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 87
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) reden_vervoer,
|
||
(SELECT km.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 88
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) van,
|
||
(SELECT km.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 86
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) naar,
|
||
(SELECT km.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 63
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) km_start,
|
||
(SELECT km.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km, mld_kenmerk k
|
||
WHERE km.mld_melding_key = m.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 64
|
||
AND km.mld_kenmerkmelding_verwijder IS NULL) km_einde
|
||
FROM mld_melding m, prs_perslid p, alg_locatie l
|
||
WHERE m.mld_stdmelding_key = 221
|
||
AND p.prs_perslid_key = m.prs_perslid_key_voor
|
||
AND l.alg_locatie_key = m.mld_alg_locatie_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW soro_v_rap_autorit_belasting
|
||
(
|
||
fclt_f_auto,
|
||
fclt_f_jaar,
|
||
fclt_f_kwartaal,
|
||
fclt_f_maand,
|
||
datum,
|
||
omschrijving,
|
||
chauffeur,
|
||
van,
|
||
naar,
|
||
km_start,
|
||
km_eind,
|
||
km_gereden
|
||
)
|
||
AS
|
||
SELECT
|
||
res_deel_omschrijving,
|
||
to_char(res_rsv_ruimte_van,'YYYY'),
|
||
'Q' || to_char(res_rsv_ruimte_van,'Q'),
|
||
to_char(res_rsv_ruimte_van,'MM'),
|
||
to_char(res_rsv_ruimte_van,'DD-MM-YYYY'),
|
||
res_rsv_ruimte_omschrijving,
|
||
TRIM(prs_perslid_voornaam || decode (prs_perslid_tussenvoegsel, NULL, NULL, ' ' || prs_perslid_tussenvoegsel) || decode (prs_perslid_naam, NULL, NULL, ' ' || prs_perslid_naam)),
|
||
van,
|
||
naar,
|
||
km_start,
|
||
km_einde,
|
||
fac.safe_to_number(km_einde) - fac.safe_to_number(km_start) km_gereden
|
||
FROM soro_v_autorit_met_km_reg;
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW soro_v_rap_autorit_locatie
|
||
(
|
||
fclt_f_locatie,
|
||
fclt_f_jaar,
|
||
fclt_f_kwartaal,
|
||
fclt_f_maand,
|
||
datum,
|
||
fclt_f_prive_zakelijk,
|
||
omschrijving,
|
||
chauffeur,
|
||
van,
|
||
naar,
|
||
auto,
|
||
km_start,
|
||
km_eind,
|
||
km_gereden,
|
||
kosten
|
||
)
|
||
AS
|
||
SELECT
|
||
alg_locatie_code || alg_locatie_omschrijving,
|
||
to_char(res_rsv_ruimte_van,'YYYY'),
|
||
'Q' || to_char(res_rsv_ruimte_van,'Q'),
|
||
to_char(res_rsv_ruimte_van,'MM'),
|
||
to_char(res_rsv_ruimte_van,'DD-MM-YYYY'),
|
||
'Zakelijk',
|
||
res_rsv_ruimte_omschrijving,
|
||
TRIM(prs_perslid_voornaam || decode (prs_perslid_tussenvoegsel, NULL, NULL, ' ' || prs_perslid_tussenvoegsel) || decode (prs_perslid_naam, NULL, NULL, ' ' || prs_perslid_naam)),
|
||
van,
|
||
naar,
|
||
res_deel_omschrijving,
|
||
km_start,
|
||
km_einde,
|
||
fac.safe_to_number(km_einde) - fac.safe_to_number(km_start) km_gereden,
|
||
0.29 * (fac.safe_to_number(km_einde) - fac.safe_to_number(km_start)) kosten
|
||
FROM soro_v_autorit_met_km_reg
|
||
WHERE UPPER(kosten) LIKE '%LOCATIE%'
|
||
UNION ALL
|
||
SELECT
|
||
alg_locatie_code || alg_locatie_omschrijving,
|
||
to_char(datum_van,'YYYY'),
|
||
'Q' || to_char(datum_van,'Q'),
|
||
to_char(datum_van,'MM'),
|
||
to_char(datum_van,'DD-MM-YYYY'),
|
||
'Prive',
|
||
mld_melding_omschrijving,
|
||
TRIM(prs_perslid_voornaam || decode (prs_perslid_tussenvoegsel, NULL, NULL, ' ' || prs_perslid_tussenvoegsel) || decode (prs_perslid_naam, NULL, NULL, ' ' || prs_perslid_naam)),
|
||
van,
|
||
naar,
|
||
auto_omschrijving,
|
||
km_start,
|
||
km_einde,
|
||
fac.safe_to_number(km_einde) - fac.safe_to_number(km_start) km_gereden,
|
||
0.29 * (fac.safe_to_number(km_einde) - fac.safe_to_number(km_start)) kosten
|
||
FROM soro_v_prive_autorit_met_km
|
||
WHERE UPPER(kosten) LIKE '%LOCATIE%';
|
||
|
||
|
||
CREATE OR REPLACE VIEW soro_v_rap_autorit_client
|
||
(
|
||
fclt_f_client,
|
||
fclt_f_verblijf_behandeling,
|
||
fclt_f_reden_vervoer,
|
||
fclt_f_jaar,
|
||
fclt_f_kwartaal,
|
||
fclt_f_maand,
|
||
datum,
|
||
fclt_f_prive_zakelijk,
|
||
omschrijving,
|
||
chauffeur,
|
||
van,
|
||
naar,
|
||
auto,
|
||
km_start,
|
||
km_eind,
|
||
km_gereden,
|
||
kosten
|
||
)
|
||
AS
|
||
SELECT
|
||
w.res_kenmerkreservering_waarde client,
|
||
kosten,
|
||
reden_vervoer,
|
||
to_char(res_rsv_ruimte_van,'YYYY'),
|
||
'Q' || to_char(res_rsv_ruimte_van,'Q'),
|
||
to_char(res_rsv_ruimte_van,'MM'),
|
||
to_char(res_rsv_ruimte_van,'DD-MM-YYYY'),
|
||
'Zakelijk',
|
||
res_rsv_ruimte_omschrijving,
|
||
TRIM(prs_perslid_voornaam || decode (prs_perslid_tussenvoegsel, NULL, NULL, ' ' || prs_perslid_tussenvoegsel) || decode (prs_perslid_naam, NULL, NULL, ' ' || prs_perslid_naam)),
|
||
van,
|
||
naar,
|
||
res_deel_omschrijving,
|
||
km_start,
|
||
km_einde,
|
||
fac.safe_to_number(km_einde) - fac.safe_to_number(km_start) km_gereden,
|
||
0.29 * (fac.safe_to_number(km_einde) - fac.safe_to_number(km_start)) kosten
|
||
FROM soro_v_autorit_met_km_reg a, res_kenmerkwaarde w, res_kenmerk k
|
||
WHERE UPPER(kosten) LIKE '%CLI<4C>NT%'
|
||
AND w.res_rsv_ruimte_key = a.res_rsv_ruimte_key
|
||
AND w.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = 1
|
||
AND w.res_kenmerkwaarde_verwijder IS NULL
|
||
UNION ALL
|
||
SELECT
|
||
client,
|
||
kosten,
|
||
reden_vervoer,
|
||
to_char(datum_van,'YYYY'),
|
||
'Q' || to_char(datum_van,'Q'),
|
||
to_char(datum_van,'MM'),
|
||
to_char(datum_van,'DD-MM-YYYY'),
|
||
'Prive',
|
||
mld_melding_omschrijving,
|
||
TRIM(prs_perslid_voornaam || decode (prs_perslid_tussenvoegsel, NULL, NULL, ' ' || prs_perslid_tussenvoegsel) || decode (prs_perslid_naam, NULL, NULL, ' ' || prs_perslid_naam)),
|
||
van,
|
||
naar,
|
||
auto_omschrijving,
|
||
km_start,
|
||
km_einde,
|
||
fac.safe_to_number(km_einde) - fac.safe_to_number(km_start) km_gereden,
|
||
0.29 * (fac.safe_to_number(km_einde) - fac.safe_to_number(km_start)) kosten
|
||
FROM soro_v_prive_autorit_met_km
|
||
WHERE UPPER(kosten) LIKE '%CLI<4C>NT%';
|
||
|
||
|
||
|
||
BEGIN fac.registercustversion('SORO', 8); END;
|
||
/
|
||
|
||
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
||
/
|
||
|
||
show errors;
|
||
|
||
|
||
commit;
|
||
|
||
|
||
spool off; |