Files
Customer/AA/INLO/inlo.sql
2023-12-18 18:43:59 +00:00

6115 lines
247 KiB
SQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific configuration sql statements for inlo: Industrie & Logistiek
DEFINE thisfile = 'INLO.SQL'
DEFINE dbuser = '^INLO'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
-- script om dagelijks terugkerende scripts aan te roepen.
-- voor INLO-VEH van toepassing.
-- De urgentiebepaling is hieronder uitgequote. Loopt wel onder assetmanagement van heyday-rabo. Vraag is nog of dit ook voor INLO-VEH gespecificeerd en ingepast moet worden.
CREATE OR REPLACE PROCEDURE inlo_select_daily_task (p_applname IN VARCHAR2, p_applrun IN VARCHAR2)
AS
CURSOR c
IS
SELECT ins_deel_omschrijving,
ins_deel_mjb_score1,
ins_deel_mjb_score2,
ins_srtcontroledl_xcp_key,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
WHERE kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND sk.ins_srtkenmerk_omschrijving = 'Kritische asset')
kritisch,
(SELECT TO_CHAR (ins_deelsrtcontrole_datum_org, 'YYYY')
FROM ins_deelsrtcontrole dsc
WHERE dsc.ins_deel_key = d.ins_deel_key
AND dsc.ins_srtcontrole_key = x.ins_srtcontrole_key
AND dsc.ins_deelsrtcontrole_status = 0)
orgdatum,
COALESCE (fac.nextcyclusdate (
COALESCE (
(SELECT MAX (ins_deelsrtcontrole_datum)
FROM ins_deelsrtcontrole dsc
WHERE ins_deelsrtcontrole_status <> 0
AND dsc.ins_deel_key =
d.ins_deel_key
AND dsc.ins_srtcontrole_key =
x.ins_srtcontrole_key),
DECODE (x.ins_srtcontroledl_xcp_startdat,
NULL, d.ins_deel_aanmaak,
TO_DATE (NULL))),
1, -- interval
ins_srtcontroledl_xcp_eenheid,
ins_srtcontroledl_xcp_periode,
ins_srtcontroledl_xcp_bits,
1,
1),
ins_srtcontroledl_xcp_startdat) volgende
FROM ins_deel d,
ins_srtcontroledl_xcp x,
ins_srtcontrole sc,
ctr_disc_params dp
WHERE d.ins_deel_key = x.ins_deel_key
AND x.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND sc.ctr_discipline_key = dp.ctr_ins_discipline_key
AND dp.ctr_disc_params_ismjob = 1;
v_prio NUMBER;
v_freeze VARCHAR2 (4);
BEGIN
-- Conditiescores worden vanaf 2020.1 in het proces berekend, per melding en ook direct naar het object.
-- Deze object-scores worden moeten vervolgens geagregeerd worden naar gebouw en locatieniveau. Doen we dagelijks dmv onderstaande procedure:
---- Call this procedure to update aggregate scores (for a location/building)
---- PROCEDURE update_aggr_scores (p_locatie_key IN NUMBER DEFAULT NULL, p_gebouw_key IN NUMBER DEFAULT NULL);
cnd.update_aggr_scores (NULL, NULL);
-- pas de urgentie bij de taken aan - VOOR INLO-VEH INDIEN GEWENST NOG NADER TE BEPALEN
-- SELECT fac.getSetting ('mjb_feeze_year')
-- INTO v_freeze
-- FROM DUAL;
-- FOR rec IN c
-- LOOP
-- kritische installatie en planning dit jaar of vorig jaar niet uitgevoerd.
-- IF rec.kritisch = 1
-- AND (TO_CHAR (rec.volgende, 'yyyy') = v_freeze OR rec.orgdatum <= v_freeze)
-- THEN
-- v_prio := 3;
-- planning vorig jaar + storingshistorie
-- ELSIF rec.orgdatum < v_freeze
-- THEN
-- v_prio := 3;
--prioriteit < 4
-- ELSIF rec.ins_deel_mjb_score2 < 4 OR rec.ins_deel_mjb_score1 >= 4
-- THEN
-- v_prio := 3;
-- ELSIF rec.ins_deel_mjb_score2 < 7
-- THEN
-- v_prio := 2;
-- ELSE
-- v_prio := 1;
-- END IF;
-- UPDATE ins_srtcontroledl_xcp x
-- SET ins_srtcontroledl_xcp_prio = v_prio
-- WHERE x.ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key;
-- END LOOP;
aaxx_daily_task (p_applname, p_applrun);
END;
/
-- processemail --
--- voor heyday loopt dit standaard via aaxx_processemail
--- voor Greenport Venlo loopt dit via die weg..
--- voor Landmark via onderstaande inlo_processemail omdat deze mail-meldingen op andere meldingsstroom binnen moeten komen (zie ticket AAXX#73751)
CREATE OR REPLACE PROCEDURE inlo_processemail (
pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
pemailkey IN NUMBER)
AS
sender_key prs_perslid.prs_perslid_key%TYPE;
melder_key prs_perslid.prs_perslid_key%TYPE;
kostenplaats_key prs_afdeling.prs_kostenplaats_key%TYPE;
mldkey mld_melding.mld_melding_key%TYPE;
opdrkey mld_opdr.mld_opdr_key%TYPE;
stdmelding mld_stdmelding.mld_stdmelding_key%TYPE;
subject_regexp fac_setting.fac_setting_default%TYPE;
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
errormsg fac_result.fac_result_waarde%TYPE;
behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
typeopdrkey mld_typeopdr.mld_typeopdr_key%TYPE;
mldnum VARCHAR2 (4000);
opdrnum VARCHAR2 (4000);
opdrvolgnr NUMBER (10);
srtdisc VARCHAR2 (4000);
cnt NUMBER (10);
v_flag_on_fenote NUMBER (10);
v_flag_on_bonote NUMBER (10);
v_from VARCHAR2 (4000);
v_body VARCHAR2 (4000);
v_subject VARCHAR2 (1000);
v_pos NUMBER;
v_result NUMBER;
v_factuur_key fin_factuur.fin_factuur_key%TYPE;
v_kenmerk_key fin_kenmerk.fin_kenmerk_key%TYPE;
v_fac_usrdata_key_ja NUMBER(10);
v_fac_usrdata_key_nee NUMBER(10);
BEGIN
errormsg := '(0x143)';
-- de mailberichten worden doorgestuurd vanuit de AAFM exchange omgeving. Hierbij
-- is het niet mogelijk de afzender te laten staan. Daarom wordt de afzender in het subject
-- van de mail geplaatst. Scheidingsteken in de ';'.
v_from := SUBSTR (psubject, 1, INSTR (psubject, ';') - 1);
v_subject := SUBSTR (psubject, INSTR (psubject, ';') + 1);
-- Verwijder de Bounce Address Tag Validation
IF v_from LIKE 'prvs=%'
THEN
v_from := SUBSTR (v_from, INSTR (v_from, '=', -1) + 1);
END IF;
v_body :=
v_from || ': ' || CHR (13) || CHR (10)
|| SUBSTR (
v_subject || CHR (13) || CHR (10)
|| REPLACE (SUBSTR (pbody, 1, 3900 - (LENGTH (v_subject) + 2)),
CHR (13) || CHR (10) || CHR (13) || CHR (10),
CHR (13) || CHR (10)),
1,
3900); -- verwijder onnodige witregels
-- DBMS_OUTPUT.PUT_LINE('v_from: '||v_from);
errormsg := '(0x143a)';
-- Valideer de sender in pfrom: kennen we deze?
SELECT MIN (prs_perslid_key), MIN (d.prs_kostenplaats_key)
INTO sender_key, kostenplaats_key
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND prs_perslid_verwijder IS NULL
AND UPPER (prs_perslid_email) = UPPER (v_from);
errormsg := '(0x143b)';
IF sender_key IS NULL
THEN
sender_key := 11; -- prs_perslid_key onbekend mail adres.
SELECT d.prs_kostenplaats_key
INTO kostenplaats_key
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND prs_perslid_verwijder IS NULL
AND p.prs_perslid_key = sender_key;
END IF;
CASE
WHEN UPPER (pto) LIKE 'LANDMARK@%'
THEN
errormsg := '(0x145)';
-- append (as a note?) to an existing melding if #key is found in the subject
-- Alternatief was: scannen van fac_srtnotificatie_oms maar dat voelt ook niet echt lekker
-- subject_regexp := fac.getsetting ('mld_reply_subject_regexp'); -- [[:alpha:]]*[[:digit:]]{3,}
-- hebben we een referentie naar een opdracht of naar een melding?
subject_regexp := '[[:digit:]]{3,}/[[:digit:]]*';
opdrnum :=
REGEXP_SUBSTR (v_subject,
subject_regexp,
1,
1,
'i'); -- MA12345
DBMS_OUTPUT.put_line ('opdrnum: ' || opdrnum);
-- Ja, nu komt het voor dat de opdracht/melding verward wordt met een
-- bestelling/opdracht. Daarom gaan we kijken of er een bestelling of
-- bestelopdracht is. Als deze er is dan kijken we naar de aanmaakdatum
-- is deze nieuwe dan de aanmaakdatum van de melding/opdracht, dan doen
-- we niets met de mail en hoort deze waarschijnlijk bij een bestelling.
-- Voor opdrachten (eerste gedeelte) en meldingen (tweede gedeelte) wordt
-- deze controle uitgevoerd zodra het melding/opdracht nummer bekend is.
IF opdrnum IS NOT NULL
THEN
opdrvolgnr :=
fac.safe_to_number (
SUBSTR (opdrnum, INSTR (opdrnum, '/') + 1));
DBMS_OUTPUT.put_line ('opdrvolgnr: ' || opdrvolgnr);
mldkey :=
fac.safe_to_number (
SUBSTR (opdrnum, 1, INSTR (opdrnum, '/') - 1));
DBMS_OUTPUT.put_line ('mldkey: ' || mldkey);
SELECT MAX (SIGN (b_o.datum - m_o.datum)) -- 1 als b_o datum > m_o datum
INTO v_result
FROM (SELECT bes_bestelopdr_datum datum
FROM bes_bestelopdr
WHERE bes_bestelopdr_id = mldkey || '/' || opdrvolgnr) b_o,
(SELECT mld_opdr_datumbegin datum
FROM mld_opdr
WHERE mld_melding_key = mldkey AND mld_opdr_bedrijfopdr_volgnr = opdrvolgnr) m_o;
ELSE
subject_regexp := '[[:alpha:]]*[[:digit:]]{3,}';
mldnum :=
REGEXP_SUBSTR (v_subject,
subject_regexp,
1,
1,
'i'); -- MA12345
srtdisc :=
REGEXP_SUBSTR (mldnum,
'[[:alpha:]]*',
1,
1,
'i'); -- MA
mldkey :=
fac.safe_to_number (SUBSTR (mldnum, LENGTH (srtdisc) + 1));
SELECT MAX (SIGN (b.datum - m.datum)) -- 1 als bes datum > mld datum
INTO v_result
FROM (SELECT bes_bestelling_datum datum
FROM bes_bestelling
WHERE bes_bestelling_key = mldkey) b,
(SELECT mld_melding_datum datum
FROM mld_melding
WHERE mld_melding_key = mldkey) m;
END IF;
IF v_result = 1 AND v_result IS NOT NULL
THEN
-- resultaat is 1 als de datum van de bestelling/opdracht groter is dan de datum van
-- de melding/opdracht.
DBMS_OUTPUT.put_line ('v_result: ' || v_result);
RETURN;
END IF;
DBMS_OUTPUT.put_line ('mldnum: ' || mldnum);
DBMS_OUTPUT.put_line ('srtdisc: ' || srtdisc);
DBMS_OUTPUT.put_line ('mldkey: ' || mldkey);
-- We eisen
-- - Goed meldingnummer
-- - Goede srtdiscipline
-- - Afzender is degene voor wie de melding was
-- suggested extensions: ook collega's toestaan?
SELECT MIN (mm.mld_stdmelding_key), MIN (prs_perslid_key_voor)
INTO stdmelding, melder_key
FROM mld_melding mm,
mld_stdmelding msm,
ins_tab_discipline insd,
ins_srtdiscipline isd
WHERE mm.mld_melding_key = mldkey
AND mm.mld_stdmelding_key = msm.mld_stdmelding_key
AND msm.mld_ins_discipline_key = insd.ins_discipline_key
AND insd.ins_srtdiscipline_key = isd.ins_srtdiscipline_key;
-- Controle op srtdisc werkt niet goed. Mails worden na binnenkomst namelijk doorgezet
-- naar de definitieve stdmelding(/discipline/srtdiscpline) en daarmee verandert de
-- prefix letter
--AND isd.ins_srtdiscipline_prefix = srtdisc
--AND mm.prs_perslid_key_voor = sender; -- Mogen anderen ook reageren?
DBMS_OUTPUT.put_line (
'mld_stdmelding_key: ' || TO_CHAR (stdmelding));
-- kijk of de referentie naar de opdracht wel correct is:
IF opdrvolgnr IS NOT NULL
THEN
BEGIN
SELECT mld_opdr_key, mld_typeopdr_key
INTO opdrkey, typeopdrkey
FROM mld_opdr
WHERE mld_melding_key = mldkey
AND mld_opdr_bedrijfopdr_volgnr = opdrvolgnr;
EXCEPTION
WHEN OTHERS
THEN
opdrkey := NULL;
END;
END IF;
BEGIN
IF opdrkey IS NOT NULL
THEN
SELECT o.prs_perslid_key
INTO behandelaar_key
FROM mld_opdr o, prs_perslid p
WHERE o.mld_opdr_key = opdrkey
AND o.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL;
ELSE
SELECT mld_melding_behandelaar_key
INTO behandelaar_key
FROM mld_melding m, prs_perslid p
WHERE mld_melding_key = mldkey
AND mld_melding_behandelaar_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL;
END IF;
EXCEPTION
WHEN OTHERS
THEN
behandelaar_key := NULL;
END;
IF (stdmelding IS NOT NULL)
THEN -- Bestaande opdracht.
IF opdrkey IS NOT NULL
THEN
INSERT INTO mld_opdr_note (mld_opdr_key,
mld_opdr_note_omschrijving,
prs_perslid_key)
VALUES (opdrkey, v_body, sender_key);
fac.trackaction ('ORDUPD',
opdrkey,
sender_key,
NULL,
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
DBMS_OUTPUT.put_line ('Notitie toegevoegd.');
ELSE
INSERT INTO mld_melding_note (mld_melding_key,
mld_melding_note_omschrijving,
prs_perslid_key,
mld_melding_note_flag)
VALUES (mldkey,
v_body,
sender_key,
DECODE (sender_key, melder_key, 1, 0)); -- 1 is zichtbaar FE want zelf ingevoerd.
fac.trackaction ('MLDNOT',
mldkey,
sender_key,
NULL,
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
DBMS_OUTPUT.put_line ('Notitie toegevoegd.');
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
'Als notitie toegevoegd aan melding ' || mldkey);
IF behandelaar_key IS NOT NULL
THEN
-- Notificatie naar behandelaar
fac.putnotificationsrtprio (
NULL,
behandelaar_key,
'MLDNOB',
mldkey,
'Melding ' || mldkey || ' is door de klant aangepast.',
2,
NULL,
NULL,
NULL,
2,
NULL);
END IF;
END IF;
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
BEGIN
IF fac.getsetting('mld_melding_actiecode') = 1
THEN
UPDATE mld_melding
SET mld_melding_actiecode = 1+128 -- Backoffice + Attentie
WHERE mld_melding_key = mldkey;
END IF;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line( 'Niet gelukt om flag '
|| v_flag_on_fenote
|| ' te zetten.');
END;
ELSE
-- suggested extensions:
-- check for MLDUSE-write autorisations
-- parse the subject to find an appropriate stdmelding, if uniquely possible
errormsg := '(0x148)';
BEGIN
stdmelding := 5081 ; -- standaard melding voor nieuwe meldingen landmark vanuit officeapp
-- fac.safe_to_number (fac.getsetting ('defaultstdmelding'));
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_melding_datum,
mld_melding_omschrijving,
mld_melding_status,
mld_melding_t_uitvoertijd,
mld_stdmelding_key,
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_spoed)
VALUES ('MLD',
4, -- email
SYSDATE,
v_body,
NULL,
mld_t_uitvoertijd (2, 'D'),
stdmelding,
sender_key,
sender_key,
kostenplaats_key,
3)
RETURNING mld_melding_key
INTO mldkey;
-- DBMS_OUTPUT.PUT_LINE('Melding toegevoegd: ' || mldkey);
errormsg := '(0x165)';
mld.setmeldingstatus (mldkey, 2, sender_key);
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
'Geregistreerd onder melding ' || mldkey);
END;
END IF;
IF opdrkey IS NULL
THEN
-- Zoek het laagste bijlagen kenmerk key (AAEN#34590) om de bijlagen onder te stoppen
errormsg := '(0x151)';
SELECT MIN (mld_kenmerk_key)
INTO kkey
FROM mld_kenmerk k,
mld_srtkenmerk sk,
mld_stdmelding std,
ins_tab_discipline d
WHERE mld_srtkenmerk_kenmerktype = 'M'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND std.mld_stdmelding_key = stdmelding
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND ( (k.mld_stdmelding_key = std.mld_stdmelding_key
AND k.mld_kenmerk_niveau = 'S')
OR (k.mld_stdmelding_key = d.ins_discipline_key
AND k.mld_kenmerk_niveau = 'D')
OR (k.mld_stdmelding_key = d.ins_srtdiscipline_key
AND k.mld_kenmerk_niveau = 'T'))
AND k.mld_kenmerk_verwijder IS NULL
AND NOT EXISTS
(SELECT mld_kenmerk_volgnummer
FROM mld_kenmerk k1,
mld_srtkenmerk sk1,
mld_stdmelding std1,
ins_tab_discipline d1
WHERE sk1.mld_srtkenmerk_kenmerktype = 'M'
AND sk1.mld_srtkenmerk_key = k1.mld_srtkenmerk_key
AND std1.mld_stdmelding_key = stdmelding
AND std1.mld_ins_discipline_key =
d1.ins_discipline_key
AND ( (k1.mld_stdmelding_key =
std1.mld_stdmelding_key
AND k1.mld_kenmerk_niveau = 'S')
OR (k1.mld_stdmelding_key = d1.ins_discipline_key
AND k1.mld_kenmerk_niveau = 'D')
OR (k1.mld_stdmelding_key =
d1.ins_srtdiscipline_key
AND k1.mld_kenmerk_niveau = 'T'))
AND k1.mld_kenmerk_verwijder IS NULL
AND k1.mld_kenmerk_key < k.mld_kenmerk_key);
errormsg := '(0x153)';
IF kkey IS NOT NULL
THEN
-- DBMS_OUTPUT.PUT_LINE('Bijlagen kenmerk: ' || kkey);
errormsg := '(0x157)';
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'kenmerkpath',
'MLD\M'
|| TO_CHAR (TRUNC (mldkey / 1000), 'FM0000')
|| '___\M'
|| mldkey
|| '\'
|| kkey
|| '\');
END IF;
ELSE
-- Zoek het laagste bijlagen kenmerk om de bijlagen onder te stoppen
errormsg := '(0x152)';
SELECT MIN (mld_kenmerk_key)
INTO kkey
FROM mld_kenmerk k, mld_srtkenmerk sk
WHERE sk.mld_srtkenmerk_kenmerktype = 'M'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_typeopdr_key = typeopdrkey
AND k.mld_kenmerk_niveau = 'O'
AND k.mld_kenmerk_verwijder IS NULL
AND NOT EXISTS
(SELECT mld_kenmerk_volgnummer
FROM mld_kenmerk k1, mld_srtkenmerk sk1
WHERE sk1.mld_srtkenmerk_kenmerktype = 'M'
AND sk1.mld_srtkenmerk_key = k1.mld_srtkenmerk_key
AND k1.mld_typeopdr_key = typeopdrkey
AND k1.mld_kenmerk_niveau = 'O'
AND k1.mld_kenmerk_verwijder IS NULL
AND k1.mld_kenmerk_volgnummer <
k.mld_kenmerk_volgnummer);
errormsg := '(0x154)';
IF kkey IS NOT NULL
THEN
-- DBMS_OUTPUT.PUT_LINE('Bijlagen kenmerk: ' || kkey);
errormsg := '(0x157)';
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'kenmerkpath',
'MLD\O'
|| TO_CHAR (TRUNC (opdrkey / 1000), 'FM0000')
|| '___\O'
|| opdrkey
|| '\'
|| kkey
|| '\');
END IF;
END IF;
ELSE
errormsg := '(0x188)';
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'errormsg',
'Database fout - Neem contact op met uw systeembeheerder '
|| errormsg);
END CASE;
EXCEPTION
WHEN OTHERS
THEN
-- DBMS_OUTPUT.PUT_LINE('Mail niet geaccepteerd: ' || 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')');
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'errormsg',
'Database fout - Neem contact op met uw systeembeheerder '
|| errormsg);
fac.writelog (
'PROCESSEMAIL',
'E',
'Mail kon niet ingelezen worden afzender:'
|| v_from
|| '['
|| errormsg
|| ']'
|| psubject,
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')');
END;
/
-- --- INLO-SYSTEMATIEK - WERKPLEKKOPPELINGEN PER SUBACCOUNTS ---
-- BASISVIEW - Per perslid_key, bedrijf, organisatie aangegeven of systematiek aanstaat en voor welke subaccounts het is aangegeven
CREATE OR REPLACE VIEW inlo_v_persoon_klanten_wp_0
(
BEDRIJFSNAAM,
AFDELINGSNAAM,
PRS_PERSLID_KEY,
PRS_PERSLID_FULLNAME,
WP_SYSTEMATIEK,
WP_SYSTEMATIEK_UPDATE,
KLANTNAAM
)
AS
SELECT b.prs_bedrijf_naam,
a.prs_afdeling_naam,
p.prs_perslid_key,
pf.prs_perslid_naam_friendly,
DECODE (FLX.getflex ('PRS',
1340,
p.prs_perslid_key,
'P'),
1, 'uit',
'aan')
wp_systematiek,
TO_DATE(FLX.getflex ('PRS',
1341,
p.prs_perslid_key,
'P'),'dd-mm-yyyy hh24:mi:ss')
wp_systematiek_update,
UPPER(v.klant)
klant
FROM prs_v_perslid_fullnames pf,
prs_perslid p,
prs_v_afdeling_fullnames a,
prs_bedrijf b,
(SELECT x.prs_perslid_key, x.klant
FROM (SELECT prs_perslid_key,
flx.getdomeinwaarde (481,
FLX.getflex ('PRS',
1281,
prs_perslid_key,
'P'))
klant
FROM prs_perslid
UNION
SELECT prs_perslid_key,
flx.getdomeinwaarde (481,
FLX.getflex ('PRS',
1282,
prs_perslid_key,
'P'))
klant
FROM prs_perslid
UNION
SELECT prs_perslid_key,
flx.getdomeinwaarde (481,
FLX.getflex ('PRS',
1283,
prs_perslid_key,
'P'))
klant
FROM prs_perslid
UNION
SELECT prs_perslid_key,
flx.getdomeinwaarde (481,
FLX.getflex ('PRS',
1342,
prs_perslid_key,
'P'))
klant
FROM prs_perslid
UNION
SELECT prs_perslid_key,
flx.getdomeinwaarde (481,
FLX.getflex ('PRS',
1343,
prs_perslid_key,
'P'))
klant
FROM prs_perslid
) x
WHERE x.klant IS NOT NULL) v
WHERE p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_key = v.prs_perslid_key(+) ;
-- BASISVIEW - Per klant de actuele gebouw_keys waarop een werkplekkoppeling moet komen (incl check of keten volledig is en er dus een werkplekkoppeling gemaakt kan worden)
CREATE OR REPLACE VIEW inlo_v_persoon_klanten_wp_1
(
KLANTCODE,
KLANTNAAM,
GEBOUW_NAAM,
ALG_GEBOUW_KEY,
CHECK_RUIMTEKETEN
)
AS
SELECT klantcode,
aaxx_get_user_sub ('INLO', v.klantcode)
klantnaam,
l.alg_locatie_code
|| ' - '
|| g.alg_gebouw_naam
|| ' ('
|| g.alg_gebouw_code
|| ')'
gebouw_naam,
g.alg_gebouw_key,
CASE
WHEN (SELECT MIN (alg_ruimte_key)
FROM alg_v_onroerendgoed
WHERE alg_gebouw_key = v.alg_gebouw_key
AND alg_type = 'R')
IS NULL
THEN
'Keten onvolledig!'
ELSE
''
END
check_ruimteketen
FROM aaxx_v_klantcode_gebouw v, alg_gebouw g, alg_locatie l
WHERE v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND g.alg_gebouw_verwijder IS NULL AND l.alg_locatie_verwijder IS NULL;
-- BASISVIEW - Per perslid_key de actuele werkplekkoppeling
CREATE OR REPLACE VIEW inlo_v_persoon_klanten_wp_2
(
PRS_PERSLID_KEY,
PRS_PERSLID_FULLNAME,
WP_SYSTEMATIEK,
WP_SYSTEMATIEK_UPDATE,
BEDRIJFSNAAM,
AFDELINGSNAAM,
PRS_WERKPLEK_OMSCHRIJVING,
KLANTCODE,
KLANTNAAM,
ALG_LOCATIE_KEY,
ALG_GEBOUW_KEY,
PRS_WERKPLEK_KEY
)
AS
SELECT p.prs_perslid_key,
pf.prs_perslid_naam_friendly,
DECODE (FLX.getflex ('PRS',
1340,
p.prs_perslid_key,
'P'),
1, 'uit',
'aan')
wp_systematiek,
TO_DATE(FLX.getflex ('PRS',
1341,
p.prs_perslid_key,
'P'),'dd-mm-yyyy hh24:mi:ss')
wp_systematiek_update,
b.prs_bedrijf_naam,
a.prs_afdeling_naam,
l.alg_locatie_code
|| ' - '
|| g.alg_gebouw_naam
|| ' ('
|| g.alg_gebouw_code
|| ')'
werkplekomschrijving,
v.klantcode,
aaxx_get_user_sub ('INLO', v.klantcode)
klantnaam,
onr.alg_locatie_key,
g.alg_gebouw_key,
w.prs_werkplek_key
FROM prs_v_perslid_fullnames pf,
prs_perslid p,
prs_v_afdeling_fullnames a,
prs_bedrijf b,
prs_perslidwerkplek wp,
prs_werkplek w,
alg_ruimte r,
alg_v_onrgoed_boom onr,
alg_locatie l,
alg_gebouw g,
aaxx_v_klantcode_gebouw v
WHERE p.prs_perslid_key = wp.prs_perslid_key
AND wp.prs_werkplek_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_ruimte_key = onr.alg_ruimte_key
AND onr.alg_locatie_key = l.alg_locatie_key
AND onr.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = b.prs_bedrijf_key
ORDER BY wp.prs_perslid_key;
-- WERKVIEW PROCEDURE - Cursor om in de export de werkplekkoppelingen in INLO bij te werken
CREATE OR REPLACE VIEW inlo_v_persoon_klanten_wp_3
(
PRS_PERSLID_KEY,
ALG_GEBOUW_KEY,
PRS_WERKPLEK_KEY,
ACTIE,
PRS_PERSLID_FULLNAME,
KLANTNAAM,
WERKPLEKKOPPELING
)
AS
SELECT v.prs_perslid_key,
v.alg_gebouw_key,
v.prs_werkplek_key,
v.actie,
v.prs_perslid_fullname,
v.klantnaam,
v.werkplekkoppeling
FROM (SELECT v.prs_perslid_key,
w.alg_gebouw_key,
NULL prs_werkplek_key,
'toevoegen' actie,
v.prs_perslid_fullname,
v.klantnaam,
w.gebouw_naam werkplekkoppeling
FROM inlo_v_persoon_klanten_wp_0 v,
inlo_v_persoon_klanten_wp_1 w
WHERE v.klantnaam = w.klantnaam
AND v.wp_systematiek = 'aan'
AND NOT EXISTS
(SELECT *
FROM inlo_v_persoon_klanten_wp_2 wp
WHERE wp.alg_gebouw_key = w.alg_gebouw_key
AND wp.prs_perslid_key = v.prs_perslid_key)
UNION
SELECT wp.prs_perslid_key,
wp.alg_gebouw_key,
wp.prs_werkplek_key,
'verwijderen' actie,
wp.prs_perslid_fullname,
wp.klantnaam,
wp.prs_werkplek_omschrijving werkplekkoppeling
FROM inlo_v_persoon_klanten_wp_2 wp
WHERE wp.wp_systematiek = 'aan'
AND NOT EXISTS
(SELECT *
FROM inlo_v_persoon_klanten_wp_0 v,
inlo_v_persoon_klanten_wp_1 w
WHERE v.klantnaam = w.klantnaam
AND v.wp_systematiek = 'aan'
AND w.alg_gebouw_key = wp.alg_gebouw_key
AND v.prs_perslid_key = wp.prs_perslid_key)
UNION
SELECT v.prs_perslid_key,
w.alg_gebouw_key,
NULL prs_werkplek_key,
'ok' actie,
v.prs_perslid_fullname,
v.klantnaam,
w.gebouw_naam werkplekkoppeling
FROM inlo_v_persoon_klanten_wp_0 v,
inlo_v_persoon_klanten_wp_1 w,
inlo_v_persoon_klanten_wp_2 wp
WHERE v.klantnaam = w.klantnaam
AND v.wp_systematiek = 'aan'
AND wp.alg_gebouw_key = w.alg_gebouw_key
AND wp.prs_perslid_key = v.prs_perslid_key) v
ORDER BY 1, 2, 3;
-- PROCEDURE voor bijwerken van de werkplekkoppelingen
-- resultaat output csv - overzicht welke personen zijn er geupdate
CREATE OR REPLACE VIEW inlo_v_export_klanten_wp
(
result,
result_order
)
AS
SELECT '"Datum_laatste_update"'
|| ';"Persoon"'
|| ';"Aantal actuele werkplekken"',
0
FROM DUAL
UNION ALL
SELECT TO_CHAR (p.datum_laatste_sync, 'dd-mm-yyyy hh24:mi:ss')
|| ';'
|| p.prs_perslid_naam_friendly
|| ';'
|| p.aantal_actuele_wp,
1
FROM (SELECT p.prs_perslid_key,
pf.prs_perslid_naam_friendly,
TO_DATE (FLX.getflex ('PRS',
1341,
p.prs_perslid_key,
'P'),
'dd-mm-yyyy hh24:mi:ss')
datum_laatste_sync,
(SELECT COUNT (*)
FROM prs_perslidwerkplek wp
WHERE wp.prs_perslid_key = p.prs_perslid_key)
aantal_actuele_wp
FROM prs_perslid p, prs_v_perslid_fullnames pf
WHERE p.prs_perslid_key = pf.prs_perslid_key) p
WHERE p.datum_laatste_sync IS NOT NULL
AND p.datum_laatste_sync =
(SELECT MAX (
fac.safe_to_date (prs_kenmerklink_waarde,
'dd-mm-yyyy hh24:mi:ss'))
FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1341) ;
CREATE OR REPLACE PROCEDURE inlo_select_klanten_wp (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c_t
IS
SELECT v.prs_perslid_key,
w.alg_gebouw_key,
NULL prs_werkplek_key,
'toevoegen' actie,
v.prs_perslid_fullname,
v.klantnaam,
w.gebouw_naam werkplekkoppeling
FROM inlo_v_persoon_klanten_wp_0 v,
inlo_v_persoon_klanten_wp_1 w
WHERE v.klantnaam = w.klantnaam
AND v.klantnaam NOT IN ('ASITO') -- zie ticket AAIT#79169
AND v.wp_systematiek = 'aan'
AND w.check_ruimteketen IS NULL
AND NOT EXISTS
(SELECT *
FROM inlo_v_persoon_klanten_wp_2 wp
WHERE wp.alg_gebouw_key = w.alg_gebouw_key
AND wp.prs_perslid_key = v.prs_perslid_key)
ORDER BY 1 ;
CURSOR c_v
IS
SELECT wp.prs_perslid_key,
wp.alg_gebouw_key,
wp.prs_werkplek_key,
'verwijderen' actie,
wp.prs_perslid_fullname,
wp.klantnaam,
wp.prs_werkplek_omschrijving werkplekkoppeling
FROM inlo_v_persoon_klanten_wp_2 wp
WHERE wp.wp_systematiek = 'aan'
AND NOT EXISTS
(SELECT *
FROM inlo_v_persoon_klanten_wp_0 v,
inlo_v_persoon_klanten_wp_1 w
WHERE v.klantnaam = w.klantnaam
AND v.wp_systematiek = 'aan'
AND w.alg_gebouw_key = wp.alg_gebouw_key
AND v.prs_perslid_key = wp.prs_perslid_key)
ORDER BY 1 ;
v_count NUMBER;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
v_aanduiding VARCHAR2 (1000);
v_datum_sync VARCHAR2 (30);
v_alg_ruimte_key NUMBER;
v_persoon NUMBER;
v_persoon_prev NUMBER :=0 ;
BEGIN
v_datum_sync := TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss');
v_persoon_prev := 0 ;
FOR rec IN c_t
LOOP
v_errorhint :=
'Fout bepalen MIN(ruimte_key) bij perslid_key:'
|| TO_CHAR (rec.prs_perslid_key)
|| ' , gebouw-key: '
|| TO_CHAR (rec.alg_gebouw_key);
v_persoon := rec.prs_perslid_key ;
-- logging in kenmerkveld dat we wp's van deze persoon gaan aanpassen
IF v_persoon_prev <> v_persoon THEN
v_errorhint := 'Bijwerken kenmerkveld datum laatste verwerking werkplekkoppelingen';
PRS.upsertkenmerk (1341, rec.prs_perslid_key, v_datum_sync);
END IF;
BEGIN
SELECT MIN (r.alg_ruimte_key)
INTO v_alg_ruimte_key
FROM alg_ruimte r, alg_verdieping v, alg_gebouw g
WHERE r.alg_verdieping_key =
v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_ruimte_verwijder IS NULL
AND v.alg_verdieping_verwijder IS NULL
AND g.alg_gebouw_verwijder IS NULL
AND g.alg_gebouw_key = rec.alg_gebouw_key;
IF v_alg_ruimte_key IS NOT NULL
THEN
-- PROCEDURE movetoruimte (p_prs_key IN NUMBER, p_ruimte_key IN NUMBER, p_alg_type IN VARCHAR2, p_virtual IN NUMBER DEFAULT 0);
v_errorhint :=
'Fout prs.movetoruimte bij perslid_key: '
|| TO_CHAR (rec.prs_perslid_key)
|| ' , ruimte_key: '
|| TO_CHAR (v_alg_ruimte_key);
BEGIN
PRS.movetoruimte (rec.prs_perslid_key,
v_alg_ruimte_key,
'G',
1);
END;
END IF;
END;
v_persoon_prev := rec.prs_perslid_key ;
END LOOP;
v_persoon_prev := 0 ;
FOR rec IN c_v
LOOP
v_errorhint :=
'Fout bij verwijderen wekplek bij perslid_key: '
|| TO_CHAR (rec.prs_perslid_key)
|| ' , werkplek_key: '
|| TO_CHAR (rec.prs_werkplek_key);
v_persoon := rec.prs_perslid_key ;
-- logging in kenmerkveld dat we wp's van deze persoon gaan aanpassen
IF v_persoon_prev <> v_persoon THEN
v_errorhint := 'Bijwerken kenmerkveld datum laatste verwerking werkplekkoppelingen';
PRS.upsertkenmerk (1341, rec.prs_perslid_key, v_datum_sync);
END IF;
DELETE prs_werkplek
WHERE prs_werkplek_key = rec.prs_werkplek_key;
v_persoon_prev := rec.prs_perslid_key ;
END LOOP;
END;
/
-- Procedure voor liken reserveringen (zie ticket 59373)
---- INLO heeft diverse subklanten in de omgeving en procedure is dusdanig aangepast dat men vanuit de voorkant deze inrichting zelf kan 'activeren' door kenmerk bookmark op die klant-activiteit aan te maken.
CREATE OR REPLACE PROCEDURE inlo_export_res_like (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
v_expiredays NUMBER (10);
v_likerkey NUMBER (10);
v_xmlnode VARCHAR2(100);
v_refkey NUMBER;
v_bookmark VARCHAR2(150);
CURSOR c
IS
SELECT res_rsv_ruimte_key,
res_rsv_ruimte_contact_key,
res_rsv_ruimte_host_key, -- Aanvrager en Gastheer/vrouw kunnen verschillen. We mailen de aanvrager
bm.res_kenmerk_key
kenmerk_key_bookmark
FROM res_rsv_ruimte rrr, prs_perslid p, res_activiteit a,
(SELECT a.res_activiteit_key, k.res_kenmerk_key
FROM res_activiteit a, res_kenmerk k, res_srtkenmerk sk
WHERE a.res_activiteit_key = k.res_activiteit_key
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
AND k.res_kenmerk_verwijder is null
AND sk.res_srtkenmerk_UPPER = 'BOOKMARK') bm
WHERE rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key
AND rrr.res_activiteit_key = a.res_activiteit_key
AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE) - 2
AND res_rsv_ruimte_verwijder IS NULL
AND res_rsv_ruimte_noshow IS NULL -- no shows niet meenemen
AND res_status_fo_key not in (3,4) -- vervallen en verwijderde reserveringen niet meenemen
AND p.prs_perslid_email is not null
AND a.res_activiteit_key = bm.res_activiteit_key
;
BEGIN
v_expiredays :=
fac.safe_To_Number (fac.getsetting ('fac_res_deeplike_expire'));
v_xmlnode := 'reservering';
FOR rec IN c
LOOP
v_likerkey := rec.res_rsv_ruimte_contact_key;
v_refkey := rec.res_rsv_ruimte_key;
v_bookmark := DBMS_RANDOM.string ('a', 16) ;
-- FAC_BOOKMARK vullen....PROCEDURE createlikebookmark (pxmlnode VARCHAR2, prefkey NUMBER);
-- BEGIN createlikebookmark ('reservering', rec.res_rsv_ruimte_key) ; Kan niet, want dan mis je (o.a.) expire-days
-- DUS de update pakken
UPDATE fac_bookmark
SET fac_bookmark_expire =
fac.datumtijdplusuitvoertijd (SYSDATE,
v_expiredays,
'DAGEN')
WHERE fac_bookmark_xmlnode = v_xmlnode
AND fac_bookmark_refkey = v_refkey
AND fac_bookmark_naam = 'faclikedeeplink';
IF SQL%ROWCOUNT = 0
THEN
INSERT INTO fac_bookmark (fac_bookmark_id,
fac_bookmark_naam,
fac_bookmark_path,
fac_bookmark_query,
fac_bookmark_xmlnode,
fac_bookmark_refkey,
fac_bookmark_expire,
prs_perslid_key_auth)
VALUES (
v_bookmark ,
'faclikedeeplink',
'appl/fac/fac_like_deep.asp',
'node=' || v_xmlnode || '&key=' || v_refkey, -- is straks beschermd met HMAC
v_xmlnode,
v_refkey,
fac.datumtijdplusuitvoertijd (SYSDATE,
v_expiredays,
'DAGEN'),
v_likerkey);
-- Onderstaande 2 procedures in de IF zodat we alleen het bookmarkkenmerk gaan vullen als er ook nog geen bookmark was aangemaakt.
-- Via de fac_trackaction, via een trigger, wordt de fac_notificatie ook gevuld
-- PROCEDURE trackaction (pcode VARCHAR2, prefkey NUMBER, puserkey NUMBER, pdatum DATE, poms VARCHAR2)
BEGIN
fac.trackaction ('CUST08',
v_refkey,
4,
SYSDATE,
'Mail naar aanvrager ter beoordeling van de reservering');
END;
-- Bij RESAFM komt de bookamrk nog niet mee naar de xml. Daarom gaan we kenmerk 'bookmark' vullen met dit bookmark_id zodat we die in de xml in de stylesheet fac_like kunnen opppakken..
-- Procedure: aaxx_set_kenmerk(p_module IN VARCHAR2, p_kenmerk_key IN NUMBER, p_link_key IN NUMBER, p_kenmerk_waarde IN VARCHAR2, p_history IN NUMBER)
BEGIN
aaxx_set_kenmerk ('RES',rec.kenmerk_key_bookmark,v_refkey,v_bookmark,0) ;
END;
END IF;
END LOOP;
END;
/
-- VIEW voor Notificatiejob Last-minute-reservering. Alle mensen uit specifieke autorisatiegroep krijgen mail dat de reservering (ruimte en/of catering) gewijzigd is - Ticketnr 57145
CREATE OR REPLACE VIEW INLO_V_NOTIFY_LASTMINUTE
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT -- Voor Catering.....
NULL
sender,
NULL
receiver,
'Catering bij reservering '
|| rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
|| ' is aangemaakt/gewijzigd '
text,
'CUST07'
code,
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST07')
fac_srtnotificatie_key,
rrr.res_reservering_key
key,
rrr.res_rsv_ruimte_key
xkey,
medewerker.email
xemail,
NULL
xmobile
FROM res_rsv_artikel rra,
res_rsv_ruimte rrr,
res_activiteit a,
res_artikel ra,
fac_tracking t,
(SELECT g.fac_groep_key,
p.prs_perslid_key,
p.prs_perslid_email AS email
FROM fac_groep g, fac_gebruikersgroep ge, prs_perslid p
WHERE g.fac_groep_key = 441 -- Specifieke Autorisatiegroep
AND g.fac_groep_key = ge.fac_groep_key
AND ge.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL) medewerker
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_activiteit_key = a.res_activiteit_key
AND INSTR(LOWER(a.res_activiteit_omschrijving),'kreek')=0
AND INSTR(LOWER(a.res_activiteit_omschrijving),'trinseo')=0
AND INSTR(LOWER(a.res_activiteit_omschrijving),'covestro')=0
AND t.fac_srtnotificatie_key IN (59, 60) -- resnew, resupd
AND t.fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND rra.res_rsv_artikel_levering > SYSDATE
AND GREATEST (COALESCE (res_rsv_artikel_mutatie, SYSDATE - 100),
COALESCE (res_rsv_artikel_verwijder, SYSDATE - 100),
COALESCE (res_rsv_artikel_aanmaak, SYSDATE - 100)) >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view = 'INLO_V_NOTIFY_LASTMINUTE')
AND GREATEST (COALESCE (res_rsv_artikel_mutatie, SYSDATE - 100),
COALESCE (res_rsv_artikel_verwijder, SYSDATE - 100),
COALESCE (res_rsv_artikel_aanmaak, SYSDATE - 100)) <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE fac_notificatie_job_view = 'INLO_V_NOTIFY_LASTMINUTE')
AND (t.fac_tracking_datum > (rrr.res_rsv_ruimte_van-1) AND t.fac_tracking_datum <(rra.res_rsv_artikel_levering) )
GROUP BY rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
medewerker.email
UNION ALL
SELECT -- voor Ruimte
NULL
sender,
NULL
receiver,
'Reservering '
|| rrr.res_reservering_key
|| '/'
|| rrr.res_rsv_ruimte_volgnr
|| ' is aangemaakt/gewijzigd '
text,
'CUST07'
code,
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST07')
fac_srtnotificatie_key,
rrr.res_reservering_key
key,
rrr.res_rsv_ruimte_key
xkey,
medewerker.email
xemail,
NULL
xmobile
FROM fac_tracking t,
res_rsv_ruimte rrr,
res_activiteit a,
res_ruimte_opstelling ro,
res_ruimte rr,
(SELECT g.fac_groep_key,
p.prs_perslid_key,
p.prs_perslid_email AS email
FROM fac_groep g, fac_gebruikersgroep ge, prs_perslid p
WHERE g.fac_groep_key = 441 -- Specifieke Autorisatiegroep
AND g.fac_groep_key = ge.fac_groep_key
AND ge.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL) medewerker
WHERE t.fac_srtnotificatie_key IN (59, 60) -- resnew, resupd
AND t.fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rrr.res_activiteit_key = a.res_activiteit_key
AND INSTR(LOWER(a.res_activiteit_omschrijving),'kreek')=0
AND INSTR(LOWER(a.res_activiteit_omschrijving),'trinseo')=0
AND INSTR(LOWER(a.res_activiteit_omschrijving),'covestro')=0
AND t.fac_tracking_datum >
(SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval / 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view = 'INLO_V_NOTIFY_LASTMINUTE')
AND t.fac_tracking_datum <
(SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE fac_notificatie_job_view = 'INLO_V_NOTIFY_LASTMINUTE')
AND rrr.res_rsv_ruimte_van > SYSDATE
AND (t.fac_tracking_datum > (rrr.res_rsv_ruimte_van-1) AND t.fac_tracking_datum <(rrr.res_rsv_ruimte_van) )
GROUP BY rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
medewerker.email;
-- VIEW voor Notificatiejob om bezoekers 2 dagen voor event te mailen met bevestiging bezoek
CREATE OR REPLACE VIEW INLO_V_NOTI_BEZOEKERS
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT
NULL
sender,
NULL
receiver,
CASE
WHEN a.res_rsv_ruimte_key is NULL THEN
DECODE(aaxx_get_user_sub('INLO', exact_k.klantcode), 'GELREPARK B.V.', 'Landmark', aaxx_get_user_sub('INLO', exact_k.klantcode))
|| ' bevestigingmail afspraak '
|| TO_CHAR (a.bez_afspraak_datum, 'dd-mm-yyyy')
WHEN a.res_rsv_ruimte_key is NOT NULL THEN
DECODE(aaxx_get_user_sub('INLO', exact_k.klantcode), 'GELREPARK B.V.', 'Landmark', aaxx_get_user_sub('INLO', exact_k.klantcode))
||
(SELECT
' bevestigingmail afspraak '
|| TO_CHAR (a.bez_afspraak_datum, 'dd-mm-yyyy')
|| ' - '
|| rrr.res_rsv_ruimte_omschrijving
FROM
res_rsv_ruimte rrr
WHERE
rrr.res_rsv_ruimte_key = a.res_rsv_ruimte_key
)
END
text,
'CUST03'
code,
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST03')
fac_srtnotificatie_key,
b.bez_afspraak_key
key,
b.bez_bezoekers_key
xkey,
kw.bez_kenmerkwaarde_waarde
xemail,
NULL
xmobile
FROM bez_afspraak a,
alg_v_allonroerendgoed og,
aaxx_v_klantcode_gebouw exact_k,
bez_bezoekers b,
bez_kenmerkwaarde kw
WHERE
a.bez_afspraak_key = b.bez_afspraak_key
AND a.alg_onrgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = exact_k.alg_gebouw_key
AND TRUNC(a.bez_afspraak_datum)=TRUNC(SYSDATE + 2)
AND b.bez_bezoekers_key = kw.bez_bezoekers_key
AND kw.bez_kenmerk_key = 1000 -- email-adres bezoeker
;
--------------------------------------
-- INLO - RESERVERINGEN & BESTEDING --
--------------------------------------
-- Reserveringssystematieken binnen INLO voor wat betreft bewaken van reserveringsbestedingen van klanten.
-- Per verhuurspartij is de besteding op te geven + te bewaken
-- Er zijn momenteel 2 systematieken werkzaam:
--- 1. Via budget in uren en korting op ruimteprijs - export RES - waarbij er, indien systeem actief, achteraf een korting op de reservering wordt gegeven + alle catering ook wordt afgemeld + een export-verslag als output volgt..
--- 2. Via budget in euro's, te besteden binnen bepaalde periode - export RES2 - waarbij er geen output volgt
-- Alle VIEWS op een RIJ
-- 1. INLO_V_RAP_RES_KORTING <20> Overzicht systeem van reserveringsbesteding per huurderspartij<69>
---2. INLO_V_RES_STATUS
-- 3. INLO_V_RES_DETAIL
-- 4. INLO_V_RES_HOOFD
---Ps. Ooit specifiek voor Greenport Venlo (INLO#65563). Nu generiek voor alle subaccounts in INLO (AAXX#73983)
CREATE OR REPLACE VIEW INLO_V_RAP_RES_KORTING
(
BEDRIJF,
PRS_BEDRIJF_KEY,
PRS_AFDELING_KEY,
PRS_AFDELING_NAAM,
PRS_AFDELING_NIVEAU,
PRS_KOSTENPLAATS_KEY,
PRS_KOSTENPLAATS_OMSCHRIJVING,
KORTING_ACTIEF,
KORTING_SYSTEEM,
KORTING_EINDDATUM,
KORTING_ACTIE,
KORTING_PERCENTAGE,
KORTING_AANTAL, -- systeem 1 - aantal uur
KORTING_AANTAL_VERBRUIKT,
KORTING_AANTAL_OPEN,
KORTING_DATUM_VERWERKT,
KORTING_OPMERKING,
KORTING_BEGINDATUM,
KORTING_EURO, -- systeem 2 - bedrag
KORTING_EURO_VERBRUIKT,
KORTING_EURO_OPEN
)
AS
SELECT
b.prs_bedrijf_naam,
b.prs_bedrijf_key,
v.prs_afdeling_key,
v.prs_afdeling_naam,
v.niveau,
v.prs_kostenplaats_key,
kp.prs_kostenplaats_omschrijving,
COALESCE(k.korting_actief,'leeg') korting_actief,
COALESCE(k.korting_systeem, 'nee') korting_systeem,
fac.safe_to_date(k.korting_einddatum, 'dd-mm-yyyy'),
k.korting_actie,
k.korting_percentage,
k.korting_aantal,
k.korting_aantal_verbruikt,
fac.safe_to_number(COALESCE(k.korting_aantal, '0') - COALESCE(k.korting_aantal_verbruikt, '0'))
korting_aantal_open,
k.korting_datum_verwerkt,
k.korting_opmerking,
fac.safe_to_date(k.korting_begindatum, 'dd-mm-yyyy'),
k.korting_euro,
k.korting_euro_verbruikt,
fac.safe_to_number(COALESCE(k.korting_euro, '0') - COALESCE(k.korting_euro_verbruikt, '0'))
korting_euro_open
FROM prs_bedrijf b, prs_v_aanwezigafdeling v, prs_kostenplaats kp,
(SELECT
a.prs_afdeling_key,
LOWER(ud.fac_usrdata_omschr) korting_systeem,
CASE WHEN INSTR(LOWER(ud.fac_usrdata_omschr), 'ja')>0 THEN 'ja' ELSE 'nee' END korting_actief,
flx.getflex('PRS', 1142, a.prs_afdeling_key, 'A')
korting_einddatum,
flx.getdomeinwaarde (362, flx.getflex('PRS', 1144, a.prs_afdeling_key, 'A'))
korting_actie,
flx.getflex('PRS', 1146, a.prs_afdeling_key, 'A')
korting_percentage,
flx.getflex('PRS', 1148, a.prs_afdeling_key, 'A')
korting_aantal,
flx.getflex('PRS', 1150, a.prs_afdeling_key, 'A')
korting_aantal_verbruikt,
flx.getflex('PRS', 1152, a.prs_afdeling_key, 'A')
korting_datum_verwerkt,
flx.getflex('PRS', 1154, a.prs_afdeling_key, 'A')
korting_opmerking,
flx.getflex('PRS', 1300, a.prs_afdeling_key, 'A')
korting_begindatum,
flx.getflex('PRS', 1302, a.prs_afdeling_key, 'A')
korting_euro,
flx.getflex('PRS', 1360, a.prs_afdeling_key, 'A')
korting_euro_verbruikt
FROM prs_kenmerklink km, prs_afdeling a, fac_usrtab ut, fac_usrdata ud
WHERE a.prs_afdeling_key = km.prs_link_key
AND km.prs_kenmerklink_niveau = 'A'
AND km.prs_kenmerk_key = 1140 -- Korting_Actief
AND ud.fac_usrtab_key =ut.fac_usrtab_key AND ut.fac_usrtab_key = 341
AND fac.safe_to_number(km.prs_kenmerklink_waarde) = ud.fac_usrdata_key
) k
WHERE
b.prs_bedrijf_verwijder IS NULL
AND b.prs_bedrijf_key = v.prs_bedrijf_key
AND v.prs_afdeling_verwijder IS NULL
AND v.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND v.prs_afdeling_key = k.prs_afdeling_key(+) ;
-- RES-STATUSLIJST: Hulpview - per reservering met status-informatie of ruimte en eventuele catering en voorzieningen op reservering zijn afgemeld (= trigger voor export-functies)
CREATE OR REPLACE VIEW INLO_V_RES_STATUS
(
RES_RSV_RUIMTE_KEY,
STATUS_FO,
STATUS_BO,
-- verbruiksartikelen
ARTIKEL_TOTAAL,
ARTIKEL_AFGEMELD,
ARTIKEL_VERWERKT,
-- voorzieningen
VOORZIENING_TOTAAL,
VOORZIENING_AFGEMELD,
VOORZIENING_VERWERKT,
-- status-bepaling
SOORT_RESERVERING,
STATUS_ACTIE
)
AS
SELECT v.*,
CASE -- Ruimte-reservering:
WHEN v.soortreservering = 'Ruimte-reservering'
AND v.status_bo = 'Verwerkt'
AND v.artikel_verwerkt + v.voorziening_verwerkt = v.artikel_totaal + v.voorziening_totaal
THEN
'verwerkt - totaal'
WHEN v.soortreservering = 'Ruimte-reservering'
AND v.status_bo = 'Afgemeld'
AND v.artikel_afgemeld + v.voorziening_afgemeld = v.artikel_totaal + v.voorziening_totaal
THEN
'afgemeld - totaal'
WHEN v.soortreservering = 'Ruimte-reservering'
AND v.status_bo = 'Verwerkt'
AND v.artikel_afgemeld + v.voorziening_afgemeld = v.artikel_totaal + v.voorziening_totaal
THEN
'afgemeld - totaal (*)' -- De catering staat nog open en zal via bijv bundeling catering verwerkt gaan worden
WHEN v.soortreservering = 'Ruimte-reservering'
AND ( ( v.status_bo = 'Afgemeld'
AND v.artikel_afgemeld + v.voorziening_afgemeld < v.artikel_totaal + v.voorziening_totaal)
OR ( v.status_bo = 'Geregistreerd'
AND v.artikel_afgemeld + v.voorziening_afgemeld > 0))
THEN
'afgemeld - deels'
WHEN v.soortreservering = 'Ruimte-reservering'
AND v.status_bo = 'Geregistreerd'
THEN
'lopend - geregistreerd'
-- Roomservice:
WHEN v.soortreservering = 'Roomservice'
AND v.artikel_verwerkt = v.artikel_totaal
THEN
'verwerkt - totaal'
WHEN v.soortreservering = 'Roomservice'
AND v.artikel_afgemeld = v.artikel_totaal
THEN
'afgemeld - totaal'
WHEN v.soortreservering = 'Roomservice'
AND v.artikel_afgemeld < v.artikel_totaal
THEN
'afgemeld - deels'
ELSE
'nog uit te werken...'
END
status_actie
FROM (SELECT rrr.res_rsv_ruimte_key,
(SELECT st.res_status_fo_omschrijving
FROM res_status_fo st
WHERE st.res_status_fo_key = rrr.res_status_fo_key)
status_fo,
(SELECT st.res_status_bo_omschrijving
FROM res_status_bo st
WHERE st.res_status_bo_key = rrr.res_status_bo_key)
status_bo,
-- verbruiksartikelen
(SELECT COUNT (*)
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_verwijder IS NULL)
artikel_totaal,
(SELECT COUNT (*)
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_status_bo_key = 5)
artikel_afgemeld,
(SELECT COUNT (*)
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_status_bo_key = 6)
artikel_verwerkt,
-- voorzieningen
(SELECT COUNT (*)
FROM res_rsv_deel rrd
WHERE rrd.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key
AND rrd.res_rsv_deel_verwijder IS NULL)
voorziening_totaal,
(SELECT COUNT (*)
FROM res_rsv_deel rrd
WHERE rrd.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key
AND rrd.res_rsv_deel_verwijder IS NULL
AND rrd.res_status_bo_key = 5)
voorziening_afgemeld,
(SELECT COUNT (*)
FROM res_rsv_deel rrd
WHERE rrd.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key
AND rrd.res_rsv_deel_verwijder IS NULL
AND rrd.res_status_bo_key = 6)
voorziening_verwerkt,
CASE
WHEN srt.res_srtactiviteit_soort = 1
THEN
'Roomservice'
WHEN srt.res_srtactiviteit_soort = 0
THEN
'Ruimte-reservering'
ELSE
'Onbekend'
END
soortreservering
FROM res_rsv_ruimte rrr,
res_activiteit act,
res_srtactiviteit srt
WHERE rrr.res_activiteit_key = act.res_activiteit_key
AND act.res_srtactiviteit_key = srt.res_srtactiviteit_key
AND rrr.res_rsv_ruimte_verwijder IS NULL) v;
-- RES-DETAILLIJST: View met Ruimte- en caterings/voorzieningsregels + status - ook als rapport voor heyday op te vragen
CREATE OR REPLACE VIEW INLO_V_RES_DETAIL
(
-- aanvrager in reservering (host)
AANVRAGER,
BEDRIJF_AANVRAGER,
PRS_BEDRIJF_KEY,
AFDELING_AANVRAGER,
AFDELING_KEY_AANVRAGER,
-- kostenplaats in reservering
KOSTENPLAATS_KEY,
KOSTENPLAATS,
-- de reservering
CATALOGUS,
STATUS_FO,
STATUS_BO,
RES_RSV_RUIMTE_KEY,
VOLGORDE,
RESERVERING_NR,
OMSCHRIJVING,
DATUM,
DATUM_TOT,
RESERVERING_DUUR,
RUIMTE,
SOORT,
SOORT_KREEK,
ARTIKELOMSCHRIJVING,
STATUS_BO_ART,
PRIJZEN_KLANT_BTW,
BTW,
AANTAL_BESTELD,
STUKSPRIJS,
TOTAALPRIJS,
TOTAALPRIJS_EXBTW,
TOTAALPRIJS_INCLBTW,
SOORTRESERVERING,
ACTIVITEIT,
DIRTY,
-- Statussen
STATUS_ACTIE,
AKKOORD, -- cust GV
CONTANT_BETAALD, -- cust Kreek
DEBITEURNR_KREEK, -- cust Kreek
-- Exportdatum
DATUM_EXPORT_VERWERKT
)
AS
SELECT
-- aanvrager in reservering (host)
ca.prs_perslid_naam_friendly,
ca.prs_bedrijf_naam
bedrijf_aanvrager,
ca.prs_bedrijf_key,
ca.prs_afdeling_naam
afdeling_aanvrager,
ca.prs_afdeling_key
afdeling_key_aanvrager,
-- kostenplaats in reservering
rg.kostenplaats_key,
(SELECT pk.prs_kostenplaats_omschrijving
FROM prs_kostenplaats pk
WHERE pk.prs_kostenplaats_key = rg.kostenplaats_key)
AS kostenplaats,
-- de reservering
rg.catalogus,
(SELECT st.res_status_fo_omschrijving FROM res_status_fo st WHERE st.res_status_fo_key = rg.status_fo)
status_fo,
(SELECT st.res_status_bo_omschrijving FROM res_status_bo st WHERE st.res_status_bo_key = rg.status)
status_bo,
rg.res_rsv_ruimte_key,
rg.volgorde,
rg.res_key || '/' || rg.volgnr
reservering_nr,
rg.omschrijving,
rg.van,
rg.tot,
to_number((rg.tot - rg.van)*24)
reservering_duur,
CASE
WHEN rg.alg_ruimte_key IS NULL
AND rg.res_ruimte_opstel_key IS NOT NULL
THEN
(SELECT rog.res_ruimte_nr
FROM res_v_ruimte_opstel_gegevens rog
WHERE rog.res_ruimte_opstel_key =
rg.res_ruimte_opstel_key)
WHEN rg.alg_ruimte_key IS NOT NULL
AND rg.res_ruimte_opstel_key IS NULL
THEN
(SELECT avrg.alg_ruimte_aanduiding
FROM alg_v_ruimte_gegevens avrg
WHERE avrg.alg_ruimte_key = rg.alg_ruimte_key)
ELSE
''
END
AS Ruimte,
rg.soort,
DECODE (ca.prs_bedrijf_key, 11401, DECODE (rg.soort, 'Ruimte', 'CVE HUUR RUIMTE', -- Kreek heeft ivm verkoopinterface afwijkende soort-benamingen
'Deel', 'CVE MATERIAAL',
'Artikel', DECODE(rg.catalogus_key, 1281, 'CVE DIENSTEN ' || chr(38) || ' MIDDELEN', -- backoffice de kreek
1341, 'CVE DIENSTEN ' || chr(38) || ' MIDDELEN', -- diverse middelen en diensten de kreek
'CVE CATERING'),
'kreek onbekend'
),
NULL)
soort_kreek,
rg.artikel,
CASE WHEN rg.artikel = 'Ruimte'
THEN ''
ELSE (SELECT st.res_status_bo_omschrijving FROM res_status_bo st WHERE st.res_status_bo_key = rg.status_art)
END
status_art,
DECODE (ca.prs_bedrijf_key, 11401, 'prijzen inclusief btw', 'prijzen exclusief btw') -- Kreek inclusief btw, overige klanten ex
prijzen_btw,
rg.btw,
rg.aantal,
(rg.prijs / rg.aantal)
stuksprijs,
rg.prijs
totaalprijs,
DECODE (ca.prs_bedrijf_key, 11401, ROUND((rg.prijs/(100 + rg.btw))*100,2), -- Kreek inclusief btw, overige klanten ex
rg.prijs)
totaalprijs_exbtw,
DECODE (ca.prs_bedrijf_key, 11401, rg.prijs,
ROUND(rg.prijs * ((100 + rg.btw)/100),2))
totaalprijs_inclbtw,
(
CASE
WHEN rg.soort_reservering=1 THEN 'Roomservice'
WHEN rg.soort_reservering=0 THEN 'Ruimte-reservering'
ELSE 'Onbekend'
END
) AS SoortReservering,
rg.activiteit,
(
CASE
WHEN rg.dirty=0 THEN 'Nee'
ELSE 'Ja'
END
) AS dirty,
-- Status
rs.status_actie,
DECODE((SELECT kw.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k
WHERE kw.res_rsv_ruimte_key = rg.res_rsv_ruimte_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND k.res_kenmerk_verwijder IS NULL
AND k.res_srtkenmerk_key = 221),1,'Akkoord','')
akkoord, -- cust gv
DECODE((SELECT kw.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k
WHERE kw.res_rsv_ruimte_key = rg.res_rsv_ruimte_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND k.res_kenmerk_verwijder IS NULL
AND k.res_srtkenmerk_key = 261),1,'Contant betaald','')
contant_betaald, -- cust kreek
(SELECT prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_niveau = 'P'
AND prs_link_key = ca.res_rsv_ruimte_host_key
AND prs_kenmerk_key = 1180) -- debiteurnr de kreek (in exact)
debiteurnr_kreek, -- cust kreek
-- exportdatum
(SELECT MAX(fac_tracking_datum) FROM fac_tracking WHERE fac_tracking_refkey = rg.res_rsv_ruimte_key AND fac_srtnotificatie_key = 65) -- RESVER
datum_export_verwerkt
FROM (
SELECT 'Ruimte' soort,
rrr.res_rsv_ruimte_key res_rsv_ruimte_key,
rrr.alg_ruimte_key alg_ruimte_key,
rrr.res_ruimte_opstel_key res_ruimte_opstel_key,
rrr.res_reservering_key res_key,
rrr.res_rsv_ruimte_volgnr volgnr,
rrr.res_rsv_ruimte_omschrijving omschrijving,
rrr.prs_kostenplaats_key kostenplaats_key,
rrr.res_rsv_ruimte_van van,
rrr.res_rsv_ruimte_tot tot,
'Ruimte' artikel,
CASE WHEN srt.res_srtactiviteit_soort = 0 AND instr(lower(act.res_activiteit_omschrijving), 'kreek')>0 AND INSTR(lower(d.res_ruimte_nr), 'sporthal')>0 -- sporthal de kreek is 0%
THEN 0
ELSE 21
END btw,
1 aantal,
COALESCE(rrr.res_rsv_ruimte_totaal,rrr.res_rsv_ruimte_prijs) prijs,
rrr.res_status_bo_key status,
srt.res_srtactiviteit_soort soort_reservering,
act.res_activiteit_omschrijving activiteit,
rrr.res_status_fo_key status_fo,
rrr.res_rsv_ruimte_dirtlevel dirty,
1 volgorde,
0 status_art,
COALESCE(d.ins_discipline_omschrijving, 'nvt') catalogus,
d.ins_discipline_key catalogus_key
FROM res_rsv_ruimte rrr, res_activiteit act, res_srtactiviteit srt,
(SELECT rog.res_ruimte_opstel_key, d.ins_discipline_omschrijving, d.ins_discipline_key, rr.res_ruimte_nr
FROM res_v_ruimte_opstel_gegevens rog, res_ruimte rr, ins_tab_discipline d
WHERE rog.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'RES') d
WHERE rrr.res_rsv_ruimte_verwijder IS NULL AND rrr.res_activiteit_key = act.res_activiteit_key AND act.res_srtactiviteit_key = srt.res_srtactiviteit_key AND rrr.res_status_fo_key in (1,2,4)
AND rrr.res_ruimte_opstel_key = d.res_ruimte_opstel_key(+)
UNION ALL
SELECT 'Artikel' soort,
rrr.res_rsv_ruimte_key res_rsv_ruimte_key,
rrr.alg_ruimte_key alg_ruimte_key,
rrr.res_ruimte_opstel_key res_ruimte_opstel_key,
rrr.res_reservering_key res_key,
rrr.res_rsv_ruimte_volgnr volgnr,
rrr.res_rsv_ruimte_omschrijving omschrijving,
rrr.prs_kostenplaats_key kostenplaats_key,
rrr.res_rsv_ruimte_van van,
rrr.res_rsv_ruimte_tot tot,
ra.res_artikel_omschrijving artikel,
ra.res_artikel_btw btw,
rra.res_rsv_artikel_aantal aantal,
rra.res_rsv_artikel_prijs prijs,
rrr.res_status_bo_key status,
srt.res_srtactiviteit_soort soort_reservering,
act.res_activiteit_omschrijving activiteit,
rrr.res_status_fo_key status_fo,
rrr.res_rsv_ruimte_dirtlevel dirty,
2 volgorde,
rra.res_status_bo_key status_art,
d.ins_discipline_omschrijving catalogus,
d.ins_discipline_key catalogus_key
FROM res_rsv_ruimte rrr, res_rsv_artikel rra, res_artikel ra, res_activiteit act, res_srtactiviteit srt, ins_tab_discipline d
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_status_fo_key in (1,2,4)
AND rrr.res_activiteit_key = act.res_activiteit_key AND act.res_srtactiviteit_key = srt.res_srtactiviteit_key
AND ra.res_discipline_key = d.ins_discipline_key AND d.ins_discipline_module = 'RES'
UNION ALL
SELECT 'Deel' soort,
rrr.res_rsv_ruimte_key res_rsv_ruimte_key,
rrr.alg_ruimte_key alg_ruimte_key,
rrr.res_ruimte_opstel_key res_ruimte_opstel_key,
rrr.res_reservering_key res_key,
rrr.res_rsv_ruimte_volgnr volgnr,
rrr.res_rsv_ruimte_omschrijving omschrijving,
rrr.prs_kostenplaats_key kostenplaats_key,
rrr.res_rsv_ruimte_van van,
rrr.res_rsv_ruimte_tot tot,
rd.res_deel_omschrijving artikel,
21 btw,
rrd.res_rsv_deel_aantal aantal,
rrd.res_rsv_deel_prijs prijs,
rrr.res_status_bo_key status,
srt.res_srtactiviteit_soort soort_reservering,
act.res_activiteit_omschrijving activiteit,
rrr.res_status_fo_key status_fo,
rrr.res_rsv_ruimte_dirtlevel dirty,
2 volgorde,
rrd.res_status_bo_key status_art,
d.ins_discipline_omschrijving catalogus,
d.ins_discipline_key catalogus_key
FROM res_rsv_ruimte rrr, res_rsv_deel rrd, res_deel rd, res_activiteit act, res_srtactiviteit srt, ins_tab_discipline d
WHERE rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key
AND rrd.res_deel_key = rd.res_deel_key
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_status_fo_key in (1,2,4)
AND rrr.res_activiteit_key = act.res_activiteit_key AND act.res_srtactiviteit_key = srt.res_srtactiviteit_key
AND rd.res_discipline_key = d.ins_discipline_key AND d.ins_discipline_module = 'RES'
) rg,
(
SELECT rrr.res_rsv_ruimte_key,
rrr.res_rsv_ruimte_host_key,
pn.prs_perslid_naam_friendly,
b.prs_bedrijf_naam,
b.prs_bedrijf_key,
v.prs_afdeling_key,
v.prs_afdeling_naam
FROM res_rsv_ruimte rrr,
prs_perslid p,
prs_v_perslid_fullnames_all pn,
prs_v_aanwezigafdeling v,
prs_bedrijf b
WHERE rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_perslid_key = pn.prs_perslid_key
AND p.prs_afdeling_key = v.prs_afdeling_key
AND v.prs_bedrijf_key = b.prs_bedrijf_key
) ca, -- contact-afdeling
inlo_v_res_status rs
WHERE
rg.res_rsv_ruimte_key = ca.res_rsv_ruimte_key
AND rg.res_rsv_ruimte_key = rs.res_rsv_ruimte_key
ORDER BY rg.res_rsv_ruimte_key, rg.volgorde;
-- RES_HOOFD: Overzicht per reservering - Basisrapport voor Reservering INLO
--- Weergave per Reservering - de kosten ruimte + kosten catering + kosten voorzieningen + status + indien actief het kortings/bestedings-systeem
--- Deze view wordt gebruikt als basis voor de Export RES en export RES2 en KREEK-verkoopinterface
CREATE OR REPLACE VIEW INLO_V_RES_HOOFD
(
-- aanvrager in reservering (host)
AANVRAGER,
BEDRIJF_AANVRAGER,
PRS_BEDRIJF_KEY,
AFDELING_AANVRAGER,
AFDELING_KEY_AANVRAGER,
-- kostenplaats in reservering
KOSTENPLAATS_KEY,
KOSTENPLAATS,
-- de reservering
STATUS_FO,
RES_RSV_RUIMTE_KEY,
RESERVERING_NR,
OMSCHRIJVING,
DATUM,
DATUM_TOT,
RESERVERING_DUUR,
RUIMTE,
BTW,
PRIJS_CATERING,
PRIJS_VOORZIENING,
PRIJS_RUIMTE,
SOORTRESERVERING,
RESERVERING_AFSPRAAKPRIJS,
DIRTY,
-- Kortings/Bestedingssysteem op de afdeling
KORTING_ACTIEF,
KORTING_SYSTEEM,
KORTING_BEGINDATUM,
KORTING_EINDDATUM,
KORTING_ACTIE,
KORTING_PERCENTAGE,
KORTING_AANTAL, -- systeem 1 - uren
KORTING_AANTAL_VERBRUIKT,
KORTING_AANTAL_OPEN,
KORTING_EURO, -- systeem 2 - bedrag
KORTING_EURO_VERBRUIKT,
KORTING_EURO_OPEN,
KORTING_DATUM_VERWERKT,
-- Statussen - Algemeen en cust
STATUS_BO,
ITEMS_TOTAAL, -- Catering + Verbruiksartikelen
ITEMS_AFGEMELD,
ITEMS_VERWERKT,
STATUS_ACTIE,
AKKOORD, -- cust GV
CONTANT_BETAALD, -- cust Kreek
DEBITEURNR_KREEK, -- cust Kreek
RES_NULL_KREEK, -- cust Kreek
-- Exportdatum
DATUM_EXPORT_VERWERKT
)
AS
SELECT
-- aanvrager in reservering (contact)
v.aanvrager,
v.bedrijf_aanvrager,
v.prs_bedrijf_key,
v.afdeling_aanvrager,
v.afdeling_key_aanvrager,
-- kostenplaats in reservering
v.kostenplaats_key,
v.kostenplaats,
-- de reservering
v.status_fo,
v.res_rsv_ruimte_key,
v.reservering_nr,
v.omschrijving,
v.datum,
v.datum_tot,
v.reservering_duur,
v.ruimte,
v.btw,
pc.prijs_catering,
pd.prijs_voorziening,
pr.prijs_ruimte,
v.soortreservering,
CASE WHEN v.soortreservering = 'Ruimte-reservering'
AND (COALESCE(rrr.res_rsv_ruimte_korting, 0) > 0 OR COALESCE(rrr.res_rsv_ruimte_totaal, 0) > 0 )
THEN 'ja'
WHEN v.soortreservering = 'Ruimte-reservering'
AND (COALESCE(rrr.res_rsv_ruimte_korting, 0) = 0 OR COALESCE(rrr.res_rsv_ruimte_totaal, 0) = 0 )
THEN 'nee'
ELSE 'nvt'
END
reservering_afspraakprijs,
v.dirty,
-- Kortings/Bestedingssysteem op de afdeling
ko.korting_actief,
ko.korting_systeem,
ko.korting_begindatum,
ko.korting_einddatum,
ko.korting_actie,
ko.korting_percentage,
ko.korting_aantal,
ko.korting_aantal_verbruikt,
ko.korting_aantal_open,
ko.korting_euro,
ko.korting_euro_verbruikt,
ko.korting_euro_open,
ko.korting_datum_verwerkt,
-- Statussen - algemeen en cust
rs.status_bo,
rs.artikel_totaal + rs.voorziening_totaal,
rs.artikel_afgemeld + rs.voorziening_afgemeld,
rs.artikel_verwerkt + rs.voorziening_verwerkt,
rs.status_actie,
DECODE((SELECT kw.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k
WHERE kw.res_rsv_ruimte_key = v.res_rsv_ruimte_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND k.res_kenmerk_verwijder IS NULL
AND k.res_srtkenmerk_key = 221),1,'Akkoord','')
akkoord, -- cust gv
DECODE((SELECT kw.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k
WHERE kw.res_rsv_ruimte_key = v.res_rsv_ruimte_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND k.res_kenmerk_verwijder IS NULL
AND k.res_srtkenmerk_key = 261),1,'Contant betaald','')
contant_betaald, -- cust kreek
(SELECT prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_niveau = 'P'
AND prs_link_key = rrr.res_rsv_ruimte_host_key
AND prs_kenmerk_key = 1180) -- debiteurnr de kreek (in exact)
debiteurnr_kreek, -- cust kreek
CASE WHEN COALESCE(pc.prijs_catering, 0)=0 AND COALESCE(pd.prijs_voorziening, 0)=0 AND COALESCE(pr.prijs_ruimte, 0)=0 THEN '0-reservering' ELSE '' END
res_null_kreek,
-- exportdatum
v.datum_export_verwerkt
FROM
res_rsv_ruimte rrr,
inlo_v_rap_res_korting ko,
inlo_v_res_status rs,
(SELECT res_rsv_ruimte_key, sum(TOTAALPRIJS) as prijs_catering FROM inlo_v_res_detail v WHERE soort = 'Artikel' GROUP BY res_rsv_ruimte_key) pc,
(SELECT res_rsv_ruimte_key, sum(TOTAALPRIJS) as prijs_voorziening FROM inlo_v_res_detail v WHERE soort = 'Deel' GROUP BY res_rsv_ruimte_key) pd,
(SELECT res_rsv_ruimte_key, sum(TOTAALPRIJS) as prijs_ruimte FROM inlo_v_res_detail v WHERE soort = 'Ruimte' GROUP BY res_rsv_ruimte_key) pr,
(SELECT v.aanvrager, v.bedrijf_aanvrager, v.prs_bedrijf_key, v.afdeling_aanvrager, v.afdeling_key_aanvrager, v.kostenplaats_key, v.kostenplaats,
v.status_fo, v.res_rsv_ruimte_key, v.reservering_nr, v.omschrijving, v.datum, v.datum_tot, v.reservering_duur, v.ruimte, v.btw, v.soortreservering, v.activiteit, v.dirty,
v.datum_export_verwerkt
FROM inlo_v_res_detail v
WHERE v.soort = 'Ruimte'
GROUP BY v.aanvrager, v.bedrijf_aanvrager, v.prs_bedrijf_key, v.afdeling_aanvrager, v.afdeling_key_aanvrager, v.kostenplaats_key, v.kostenplaats,
v.status_fo, v.res_rsv_ruimte_key, v.reservering_nr, v.omschrijving, v.datum, v.datum_tot, v.reservering_duur, v.ruimte, v.btw, v.soortreservering, v.activiteit, v.dirty,
v.datum_export_verwerkt
) v
WHERE
rrr.res_rsv_ruimte_key = v.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_key = rs.res_rsv_ruimte_key
AND v.afdeling_key_aanvrager = ko.prs_afdeling_key
AND v.res_rsv_ruimte_key = pc.res_rsv_ruimte_key(+)
AND v.res_rsv_ruimte_key = pd.res_rsv_ruimte_key(+)
AND v.res_rsv_ruimte_key = pr.res_rsv_ruimte_key(+)
;
CREATE OR REPLACE VIEW inlo_v_export_res2
(
result,
result_order
)
AS
SELECT '"RES2 is uitgevoerd voor deze account ....."'
|| ';"Afdeling"'
|| ';"Aantal euro besteed"',
0
FROM DUAL
;
--- RES2 = In verwerking van de reserveringen SYSTEEM 2 (AAXX#73983)
CREATE OR REPLACE PROCEDURE inlo_select_res2 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_subaccount IN NUMBER,
p_verwerk_cat IN NUMBER,
p_verwerk_deel IN NUMBER
)
AS
CURSOR c_afdeling
IS
SELECT afdeling_key_aanvrager, korting_euro, korting_euro_verbruikt, korting_euro_open, sum(prijs_ruimte) som_prijs_ruimte
FROM inlo_v_res_hoofd
WHERE soortreservering = 'Ruimte-reservering'
AND korting_systeem = 'ja - systeem 2'
AND status_actie = 'afgemeld - totaal'
AND dirty = 'Nee'
AND korting_actief = 'ja'
-- AND reservering_afspraakprijs = 'nee'
AND TRUNC(datum) BETWEEN korting_begindatum AND korting_einddatum -- reserveringsdatum moet voor de einddatum van de kortingsactie liggen
AND prs_bedrijf_key = p_subaccount
GROUP BY afdeling_key_aanvrager, korting_euro, korting_euro_verbruikt, korting_euro_open ;
CURSOR c_res (p_afd_key NUMBER)
IS
SELECT *
FROM inlo_v_res_hoofd
WHERE soortreservering = 'Ruimte-reservering'
AND korting_systeem = 'ja - systeem 2'
AND status_actie = 'afgemeld - totaal'
AND dirty = 'Nee'
AND korting_actief = 'ja'
-- AND reservering_afspraakprijs = 'nee'
AND TRUNC(datum) BETWEEN korting_begindatum AND korting_einddatum -- reserveringsdatum moet voor de einddatum van de kortingsactie liggen
AND prs_bedrijf_key = p_subaccount ;
v_aanduiding VARCHAR2 (1000);
v_bedrijf_aanvrager VARCHAR2 (60) ;
v_prs_afdeling_key NUMBER;
v_korting_verbruikt NUMBER;
v_korting_verbruikt_ini NUMBER;
v_korting_verbruikt_run NUMBER;
v_korting_open_ini NUMBER;
v_logdate VARCHAR2 (100);
BEGIN
v_logdate := to_char(sysdate,'dd-mm-yyyy hh24:mi');
FOR rec IN c_afdeling
LOOP
BEGIN
v_prs_afdeling_key := rec.afdeling_key_aanvrager ;
v_korting_verbruikt := 0 ;
v_korting_verbruikt_ini := fac.safe_to_number (COALESCE(rec.korting_euro_verbruikt, '0')) ;
v_korting_open_ini := fac.safe_to_number (COALESCE(rec.korting_euro_open, '0')) ;
v_korting_verbruikt_run := rec.som_prijs_ruimte ;
FOR rec IN c_res (v_prs_afdeling_key)
LOOP
BEGIN
v_bedrijf_aanvrager := rec.bedrijf_aanvrager ;
-- De ruimtereserveringen op VERWERKT zetten
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key ;
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, 4,sysdate, 'verwerkt door Export (systeem 2) ' || v_bedrijf_aanvrager || ' ' || TO_CHAR(sysdate, 'dd/mm/yyyy - hh:mi:ss')) ;
-- Optioneel - ook de artikelen en voorzieningen op VERWERKT zetten
--- Ps. voor Landmark catering niet want die gaan via bundel-catering
IF p_verwerk_cat = 1
THEN
UPDATE res_rsv_artikel
SET res_status_bo_key = 6, res_rsv_artikel_verwerkt = SYSDATE
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
END IF;
IF p_verwerk_deel = 1
THEN
UPDATE res_rsv_deel
SET res_status_bo_key = 6, res_rsv_deel_verwerkt = SYSDATE
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
END IF;
END;
END LOOP;
-- tot slot, bijwerken van de kortingsactie bij de verhurende partij (afdeling_key)
-- 'aantal euro verbruikt' key 1360
v_korting_verbruikt := v_korting_verbruikt_ini + v_korting_verbruikt_run ;
prs.upsertkenmerk (1360, rec.afdeling_key_aanvrager, v_korting_verbruikt) ;
-- 'korting_datum_verwerkt' key 1152
prs.upsertkenmerk (1152, rec.afdeling_key_aanvrager, v_logdate) ;
END;
END LOOP;
END;
/
--- RES = De verwerking van de reserveringen SYSTEEM 1 - de voor-procedure om kortingsregel op de reservering door te voeren (INLO#65563)
CREATE OR REPLACE PROCEDURE inlo_select_res (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_subaccount IN NUMBER
)
AS
CURSOR c_afdeling
IS
SELECT afdeling_key_aanvrager, korting_aantal, korting_aantal_verbruikt, korting_aantal_open, sum(reservering_duur) som_reservering_duur
FROM inlo_v_res_hoofd
WHERE soortreservering = 'Ruimte-reservering'
AND korting_systeem = 'ja - systeem 1'
AND status_actie = 'afgemeld - totaal'
AND status_fo = 'Definitief'
AND akkoord = 'Akkoord'
AND dirty = 'Nee'
AND korting_actief = 'ja'
AND korting_aantal_open > 0
AND reservering_afspraakprijs = 'nee'
AND TRUNC(datum) <= korting_einddatum -- reserveringsdatum moet voor de einddatum van de kortingsactie liggen
AND prs_bedrijf_key = p_subaccount
GROUP BY afdeling_key_aanvrager, korting_aantal, korting_aantal_verbruikt, korting_aantal_open ;
CURSOR c_korting (p_afd_key NUMBER)
IS
SELECT *
FROM inlo_v_res_hoofd
WHERE soortreservering = 'Ruimte-reservering'
AND korting_systeem = 'ja - systeem 1'
AND status_actie = 'afgemeld - totaal'
AND status_fo = 'Definitief'
AND akkoord = 'Akkoord'
AND dirty = 'Nee'
AND korting_actief = 'ja'
AND korting_aantal_open > 0
AND reservering_afspraakprijs = 'nee'
AND TRUNC(datum) <= korting_einddatum -- reserveringsdatum moet voor de einddatum van de kortingsactie liggen
AND prs_bedrijf_key = p_subaccount
AND afdeling_key_aanvrager = p_afd_key
ORDER BY datum ASC ;
v_aanduiding VARCHAR2 (1000);
v_prs_afdeling_key NUMBER;
v_open NUMBER;
v_factor NUMBER;
v_korting NUMBER;
v_korting_verbruikt NUMBER;
v_korting_verbruikt_ini NUMBER;
v_korting_verbruikt_run NUMBER;
v_korting_open_ini NUMBER;
v_res_rsv_artikel_key NUMBER;
v_res_rsv_artikel_prijs NUMBER (10, 2);
v_logdate VARCHAR2 (100);
BEGIN
v_logdate := to_char(sysdate,'dd-mm-yyyy hh24:mi');
FOR rec IN c_afdeling
LOOP
BEGIN
v_prs_afdeling_key := rec.afdeling_key_aanvrager ;
v_open := rec.korting_aantal_open ;
v_korting_verbruikt_ini := fac.safe_to_number (COALESCE(rec.korting_aantal_verbruikt, '0')) ;
v_korting_open_ini := fac.safe_to_number (COALESCE(rec.korting_aantal_open, '0')) ;
v_korting_verbruikt_run := rec.som_reservering_duur ;
v_korting_verbruikt := 0;
FOR rec IN c_korting (v_prs_afdeling_key)
LOOP
BEGIN
v_open := v_open - rec.reservering_duur ;
-- eerst kortingsfactor bepalen
IF v_open < 0 THEN
v_factor := (v_open + rec.reservering_duur) / rec.reservering_duur ;
ELSE
v_factor := 1 ;
END IF;
-- korting berekenen
v_korting := v_factor * (fac.safe_to_number(rec.korting_percentage/100)) * rec.prijs_ruimte ;
-- kortingsregel toevoegen aan de reservering als er 'budget en korting is
IF v_korting > 0 THEN
v_aanduiding := 'Korting op ruimteprijs ivm actuele kortingsactie ' || rec.korting_actie || '. Open: ' || TO_CHAR(v_open + rec.reservering_duur) || ' uur. Reserv-duur: ' || TO_CHAR(rec.reservering_duur) || ' uur. ' || 'Korting: ' || TO_CHAR(v_korting,'999.99') || ' euro.' ;
INSERT INTO res_rsv_artikel (res_artikel_key,
res_rsv_artikel_aantal,
res_rsv_ruimte_key,
res_rsv_artikel_levering,
res_rsv_artikel_prijs,
res_status_bo_key
)
VALUES (701, -- kortingsartikel
1,
rec.res_rsv_ruimte_key,
rec.datum,
-v_korting,
5
)
RETURN res_rsv_artikel_key
INTO v_res_rsv_artikel_key;
-- Door Facilitor (4)
-- tracking toevoegen aan reservering
fac.trackaction ('#RESUPD', rec.res_rsv_ruimte_key, 4, NULL, v_aanduiding);
END IF;
END;
END LOOP;
-- tot slot, bijwerken van de kortingsactie bij de verhurende partij (afdeling_key)
-- 'aantal verbruikt' key 1150
IF v_korting_open_ini <= v_korting_verbruikt_run THEN
v_korting_verbruikt := rec.korting_aantal ;
ELSE
v_korting_verbruikt := v_korting_verbruikt_ini + v_korting_verbruikt_run ;
END IF;
prs.upsertkenmerk (1150, rec.afdeling_key_aanvrager, v_korting_verbruikt) ;
-- 'korting_datum_verwerkt' key 1152
prs.upsertkenmerk (1152, rec.afdeling_key_aanvrager, v_logdate) ;
END;
END LOOP;
END;
/
-- export reserveringen ruimte en catering-regels bij systeem 1
CREATE OR REPLACE VIEW inlo_v_export_res
(
result,
result_order,
subaccount
)
AS
SELECT '"Reservering_nr"'
|| ';"Datum"'
|| ';"Ruimte"'
|| ';"Kostenplaats"'
|| ';"Omschrijving"'
|| ';"Externe Klant"'
|| ';"Contact persoon"'
|| ';"Factuuradres"'
|| ';"Artikel"'
|| ';"BTW"'
|| ';"Aantal besteld"'
|| ';"Stuksprijs"'
|| ';"Totaalprijs"'
|| ';"SoortReservering"',
0,
NULL prs_bedrijf_key
FROM DUAL
UNION ALL
SELECT
reservering_nr
|| ';'
|| TO_CHAR (datum, 'dd-mm-yyyy')
|| ';'
|| REPLACE (ruimte, ';')
|| ';'
|| kostenplaats
|| ';'
|| REPLACE (omschrijving, ';')
|| ';'
|| gv.externeklant
|| ';'
|| gv.contactpers
|| ';'
|| REPLACE(REPLACE (gv.factuuradres, chr(13), ', '), chr(10), ' ')
|| ';'
|| REPLACE (artikelomschrijving, ';')
|| ';'
|| btw
|| ';'
|| aantal_besteld
|| ';'
|| stuksprijs
|| ';'
|| totaalprijs
|| ';'
|| soortreservering
result,
(d.res_rsv_ruimte_key * 10) + volgorde
result_order,
prs_bedrijf_key
FROM inlo_v_res_detail d,
(SELECT rrr.res_rsv_ruimte_key,
-- Speficieke reserveringskenmerken voor GreenPort
COALESCE (
(SELECT d.fac_usrdata_omschr
FROM res_kenmerkwaarde kw, res_kenmerk k, fac_usrdata d
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND k.res_kenmerk_verwijder IS NULL
AND k.res_srtkenmerk_key = 41
AND d.fac_usrtab_key = 61
AND fac.safe_to_number (kw.res_kenmerkreservering_waarde) =
d.fac_usrdata_key),
'Nee')
ExterneKlant,
(SELECT kw.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND k.res_kenmerk_verwijder IS NULL
AND k.res_srtkenmerk_key = 81)
Bedrijfsnaam,
(SELECT kw.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND k.res_kenmerk_verwijder IS NULL
AND k.res_srtkenmerk_key = 21)
Contactpers,
(SELECT kw.res_kenmerkreservering_waarde
FROM res_kenmerkwaarde kw, res_kenmerk k
WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND k.res_kenmerk_verwijder IS NULL
AND k.res_srtkenmerk_key = 1)
FactuurAdres
FROM res_rsv_ruimte rrr) gv
WHERE d.res_rsv_ruimte_key = gv.res_rsv_ruimte_key
AND status_actie = 'afgemeld - totaal'
AND (status_fo = 'Definitief' or status_fo = 'Vervallen')
AND akkoord = 'Akkoord'
AND dirty = 'Nee'
ORDER BY 2;
CREATE OR REPLACE PROCEDURE inlo_export_res (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2,
p_subaccount IN NUMBER
)
AS
v_ruimte_key NUMBER(10);
CURSOR c
IS
SELECT DISTINCT res_rsv_ruimte_key
FROM inlo_v_res_detail i
WHERE i.soortreservering ='Ruimte-reservering' AND (status_fo = 'Definitief' or status_fo = 'Geblokkeerd' or status_fo = 'Vervallen') AND akkoord = 'Akkoord' AND dirty = 'Nee'
AND i.status_actie = 'afgemeld - totaal'
AND prs_bedrijf_key = p_subaccount ;
CURSOR d
IS
SELECT DISTINCT res_rsv_ruimte_key
FROM inlo_v_res_detail i
WHERE i.soortreservering ='Roomservice' AND (status_fo = 'Definitief' or status_fo = 'Geblokkeerd' or status_fo = 'Vervallen') AND akkoord = 'Akkoord' AND dirty = 'Nee'
AND i.status_actie = 'afgemeld - totaal'
AND prs_bedrijf_key = p_subaccount ;
BEGIN
FOR rec IN c
LOOP
UPDATE res_rsv_artikel
SET res_status_bo_key = 6, res_rsv_artikel_verwerkt = SYSDATE
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key ;
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, 4,sysdate, 'verwerkt door Export (systeem 1) ' || TO_CHAR(sysdate, 'dd/mm/yyyy - hh:mi:ss')) ;
END LOOP;
FOR rec IN d
LOOP
UPDATE res_rsv_artikel
SET res_status_bo_key = 6, res_rsv_artikel_verwerkt = SYSDATE
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, 4,sysdate, 'verwerkt door Export (systeem 1) ' || TO_CHAR(sysdate, 'dd/mm/yyyy - hh:mi:ss')) ;
END LOOP;
END;
/
-- Exportfuncties subaccounts per Reserverings-bestedings-systeem
--- Systeem 2 voor Landmark - prs_bedrijf_key 24121
---- Tevens meegegeven via p_verwerk_cat = 0, dat de aan de ruimtereservering gekoppelde catering niet ook op verwerkt moet komen (bijv als deze via bundeling catering loopt).
---- Tevens meegegeven via p_verwerk_deel = 1, dat de gekoppelde voorzieningen wel op verwerkt moeten komen
CREATE OR REPLACE VIEW inlo_v_export_res2_lm (result, result_order) AS SELECT RESULT, result_order FROM inlo_v_export_res2 -- regels klant + header meenemen
;
CREATE OR REPLACE PROCEDURE inlo_select_res2_lm (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
inlo_select_res2(p_applname, p_applrun, 24121, 0, 1);
END;
/
--- Systeem 1 voor Greenport Venlo - prs_bedrijf_key 482
CREATE OR REPLACE VIEW inlo_v_export_res_gv (result, result_order) AS SELECT RESULT, result_order FROM inlo_v_export_res WHERE (subaccount = 482 OR result_order = 0) -- regels klant + header meenemen
;
CREATE OR REPLACE PROCEDURE inlo_select_res_gv (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
inlo_select_res(p_applname, p_applrun, 482);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_res_gv (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
inlo_export_res (p_applname, p_applrun, p_filedir, p_filename, 482);
END;
/
-----------------------------
-- RES - Verkoopinterface ---
-----------------------------
-- tbv KREEK
--- Bron is reserveringsysteem
--- Handmatig te draaien om zo voor de Kreek-reserveringen de verkoopinterface gevuld te krijgen
--- Levert een kort export-verslagje op - Alle details via INLO_V_RES_DETAIL
-- resultaat output csv - overzicht welke personen zijn er geupdate
CREATE OR REPLACE VIEW inlo_v_export_exact_res_kreek
(
result,
result_order
)
AS
SELECT 'Datum'
|| ';'
||TO_CHAR(imp_log_datum,'dd-mm-yyyy hh24:mi:ss')
|| ';'
|| imp_log_omschrijving
|| ';'
|| imp_log_hint,
0
FROM imp_log WHERE imp_log_applicatie = 'EXACT_RES_KREEK'
;
CREATE OR REPLACE PROCEDURE inlo_select_exact_res_kreek (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
-- alle reserveringen in deze run
CURSOR c
IS
SELECT v.res_rsv_ruimte_key, v.contant_betaald, v.res_null_kreek
FROM inlo_v_res_hoofd v
WHERE v.prs_bedrijf_key = 11401
AND v.status_actie = 'afgemeld - totaal'
AND v.debiteurnr_kreek IS NOT NULL ;
-- per klant
CURSOR c_deb
IS
SELECT v.debiteurnr_kreek,
SUM (v.prijs_ruimte) prijs_ruimte,
SUM (v.prijs_catering) prijs_catering,
SUM (v.prijs_voorziening) prijs_voorziening
FROM inlo_v_res_hoofd v
WHERE v.prs_bedrijf_key = 11401
AND v.status_actie = 'afgemeld - totaal'
AND v.debiteurnr_kreek IS NOT NULL
AND v.contant_betaald IS NULL
AND v.res_null_kreek IS NULL -- 0-reserveringen gaan niet de interface in
GROUP BY v.debiteurnr_kreek;
-- per klant - de reserveringen
CURSOR c_res (p_debiteurnr_kreek VARCHAR2)
IS
SELECT v.res_rsv_ruimte_key
FROM inlo_v_res_detail v, inlo_v_res_hoofd h
WHERE v.prs_bedrijf_key = 11401
AND v.res_rsv_ruimte_key = h.res_rsv_ruimte_key
AND v.status_actie = 'afgemeld - totaal'
AND v.contant_betaald IS NULL
AND h.res_null_kreek IS NULL
AND v.debiteurnr_kreek = p_debiteurnr_kreek
GROUP BY v.res_rsv_ruimte_key ;
-- per klant - per reservering de afzonderlijke boekingsregels die de verkoopinterface in gaan
CURSOR c_regel (p_debiteurnr_kreek VARCHAR2,
p_res_rsv_ruimte_key NUMBER)
IS
SELECT v.res_rsv_ruimte_key,
v.reservering_nr,
v.soort_kreek,
COALESCE (v.btw, 21) btw,
SUM (v.totaalprijs_exbtw) totaalprijs
FROM inlo_v_res_detail v
WHERE v.prs_bedrijf_key = 11401
AND status_actie = 'afgemeld - totaal'
AND v.contant_betaald IS NULL
AND v.debiteurnr_kreek = p_debiteurnr_kreek
AND v.res_rsv_ruimte_key = p_res_rsv_ruimte_key
GROUP BY v.res_rsv_ruimte_key,
v.reservering_nr,
v.soort_kreek,
COALESCE (v.btw, 21);
v_logdate DATE;
v_debiteurnr_kreek VARCHAR2 (200);
v_som_prijs_ruimte NUMBER;
v_som_prijs_catering NUMBER;
v_som_prijs_voorziening NUMBER;
v_res_rsv_ruimte_key NUMBER;
v_soort VARCHAR2 (200);
v_btw NUMBER;
v_reservering_oms VARCHAR2 (1000);
v_naam_aanvrager VARCHAR2 (200);
v_reservering_datum DATE;
v_reserveerbare_ruimte VARCHAR2 (200);
v_soortreservering VARCHAR2 (200);
v_prs_bedrijf_key NUMBER;
v_artikelsoort VARCHAR2 (200);
v_btw_exact NUMBER;
BEGIN
-- Eerst opruiming
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
v_logdate := SYSDATE;
v_som_prijs_ruimte := 0;
v_som_prijs_catering := 0;
v_som_prijs_voorziening := 0;
FOR rec1 IN c_deb
LOOP
BEGIN
v_debiteurnr_kreek := rec1.debiteurnr_kreek ;
FOR rec2 IN c_res (v_debiteurnr_kreek)
LOOP
BEGIN
v_res_rsv_ruimte_key := rec2.res_rsv_ruimte_key ;
-- vullen variabele om verkoopinterface mee te kunnen vullen
SELECT v.omschrijving, SUBSTR(v.aanvrager,1, 60) aanvrager, v.datum, v.ruimte, v.soortreservering, v.prs_bedrijf_key
INTO v_reservering_oms, v_naam_aanvrager, v_reservering_datum, v_reserveerbare_ruimte, v_soortreservering, v_prs_bedrijf_key
FROM inlo_v_res_hoofd v
WHERE v.res_rsv_ruimte_key = rec2.res_rsv_ruimte_key ;
FOR rec3 IN c_regel (v_debiteurnr_kreek, v_res_rsv_ruimte_key)
LOOP
BEGIN
-- Vul de verkoopfactuurtabel = 1 regel per debiteur (aanvrager) per reserveringsnr, per artikelsoort (ruimte/huur, deel/materiaal, artikel/catering en overige diensten), per btw_code
v_btw := rec3.btw ;
-- Artikelsoorten zijn:
v_artikelsoort := rec3.soort_kreek ;
-- De btw nog omzetten naar juiste btw_exact_code
SELECT DECODE (v_btw, 21, 5,
9, 3,
0, 0,
NULL)
INTO v_btw_exact
FROM DUAL ;
-- Voor roomservice gaan we geen RUIMTE-regel in vk-tabel vullen, voor alle ander regels wel
IF v_soortreservering = 'Roomservice' AND v_artikelsoort = 'huur'
THEN
NULL;
ELSE
INSERT INTO fin_verkoopfactuur (
fin_verkoopfactuur_id,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
fin_verkoopfactuur_aanmaak,
prs_kostenplaats_nr,
prs_debiteur_naam,
prs_bedrijf_key,
prs_kostensoort_oms,
prs_kostensoort_opmerking,
prs_kostensoortgrp_oms,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_bedrag,
fin_btwtabelwaarde_code,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_c1,
fin_verkoopfactuur_c2,
fin_verkoopfactuur_c3,
fin_verkoopfactuur_n1,
fin_verkoopfactuur_n2,
fin_verkoopfactuur_c5,
fin_verkoopfactuur_c6,
fin_verkoopfactuur_c7,
fin_verkoopfactuur_n3,
fin_verkoopfactuur_c8,
fin_verkoopfactuur_n4,
fin_verkoopfactuur_c4)
VALUES (
TO_CHAR (SYSDATE, 'dd-mm-yyyy') || ' - ' || rec3.reservering_nr,
'reservering',
v_res_rsv_ruimte_key,
v_logdate,
v_debiteurnr_kreek, -- AM regel
v_debiteurnr_kreek,
v_prs_bedrijf_key, -- prs_bedrijf_key van Kreek
v_artikelsoort, -- kostensoort (exact_artikelcode) - kolom AD
NULL,
v_naam_aanvrager,
v_reservering_oms || ' ' || v_reservering_datum || ' ' || LOWER(SUBSTR(v_artikelsoort, 5)), -- fin_verkoopfactuur_omschr - Kolom AF (omschrijving subregel
rec3.totaalprijs,
v_btw_exact,
to_char(v_reservering_datum, 'YYYY'),
'03623000', -- C1 - Exact-code behorende bij de Kreek
v_debiteurnr_kreek, -- C2 - groepering kopregel factuur
NULL, -- C3
NULL, -- N1
NULL, -- N2,
'De Kreek', -- C5 aanvulling op heyday-referentie (mogelijkheid voor aanvulling op kopregel, positie 3)
NULL, -- C6
NULL, -- C7
NULL, -- N3
'RES', -- C8 - Voor splitsing verkoopinterface, naar PROJECT en CORE nu ook RES
NULL, -- N4
'ReserveringenKreek' -- C4 - bij INLO gevuld voor HuurGreenportVenlo en nu dus ook voor reserveringen van de kreek
) ;
END IF;
END;
END LOOP;
-- De ingeboekt reservering nog netjes in facilitor verwerken.. + per reservering tracking toevoegen
-- Voor ruimte-reservering
IF v_soortreservering = 'Ruimte-reservering'
THEN
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6
WHERE res_rsv_ruimte_key = rec2.res_rsv_ruimte_key;
UPDATE res_rsv_artikel
SET res_status_bo_key = 6, res_rsv_artikel_verwerkt = SYSDATE
WHERE res_rsv_ruimte_key = rec2.res_rsv_ruimte_key;
UPDATE res_rsv_deel
SET res_status_bo_key = 6, res_rsv_deel_verwerkt = SYSDATE
WHERE res_rsv_ruimte_key = rec2.res_rsv_ruimte_key;
END IF;
IF v_soortreservering = 'Roomservice'
THEN
UPDATE res_rsv_artikel
SET res_status_bo_key = 6, res_rsv_artikel_verwerkt = SYSDATE
WHERE res_rsv_ruimte_key = rec2.res_rsv_ruimte_key;
END IF;
-- Voor alle reserveringen de fac_tracking vullen
fac.trackaction ('RESVER', rec2.res_rsv_ruimte_key, 4, NULL, 'verwerkt door Export Kreek - verkoopfactuur voor deze reservering ingeboekt');
END;
END LOOP;
-- totalen:
v_som_prijs_ruimte := v_som_prijs_ruimte + COALESCE(rec1.prijs_ruimte, 0) ;
v_som_prijs_catering := v_som_prijs_catering + COALESCE(rec1.prijs_catering, 0) ;
v_som_prijs_voorziening := v_som_prijs_voorziening + COALESCE(rec1.prijs_voorziening, 0) ;
END;
END LOOP;
-- ook de reeds betaalde reserveringen en de 0-reservering nog netjes verwerken...
FOR rec4 IN c
LOOP
BEGIN
IF rec4.contant_betaald = 'Contant betaald' OR rec4.res_null_kreek = '0-reservering'
THEN
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6
WHERE res_rsv_ruimte_key = rec4.res_rsv_ruimte_key;
UPDATE res_rsv_artikel
SET res_status_bo_key = 6, res_rsv_artikel_verwerkt = SYSDATE
WHERE res_rsv_ruimte_key = rec4.res_rsv_ruimte_key;
UPDATE res_rsv_deel
SET res_status_bo_key = 6, res_rsv_deel_verwerkt = SYSDATE
WHERE res_rsv_ruimte_key = rec4.res_rsv_ruimte_key;
-- Voor alle reserveringen de fac_tracking vullen
fac.trackaction ('RESVER', rec4.res_rsv_ruimte_key, 4, NULL, 'verwerkt door Export Kreek - ivm contante betaling OF 0-waarde geen verkoopfactuur voor deze reservering ingeboekt');
END IF;
END;
END LOOP;
-- nette logging (komt ook op export-output)
fac.writelog (p_applname, 'S', 'Totaal', TO_CHAR(v_som_prijs_ruimte + v_som_prijs_catering + v_som_prijs_voorziening) || ' euro');
fac.writelog (p_applname, 'S', 'Huur', TO_CHAR(v_som_prijs_ruimte) || ' euro');
fac.writelog (p_applname, 'S', 'Materiaal', TO_CHAR(v_som_prijs_voorziening) || ' euro');
fac.writelog (p_applname, 'S', 'Catering, diensten, middelen', TO_CHAR(v_som_prijs_catering) || ' euro');
END;
/
-- exact inkoop
-- ticket AAIT#73330 per kostenplaatsgroep een Exact interface laten draaien binnen
--- nieuwe klanten/kostenplaatsgroepen hieraan toevoegen + ook aan gen_export_exact.bat toevoegen
--- 1. Covestro - key 261
CREATE OR REPLACE VIEW inlo_v_export_exact_261 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_261 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 261);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_261 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 2. VEH - key 21
CREATE OR REPLACE VIEW inlo_v_export_exact_21 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_21 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 21);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_21 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 3. Gezondheidscentrum Zwaansvliet - key 22
CREATE OR REPLACE VIEW inlo_v_export_exact_22 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_22 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 22);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_22 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 4. Henkel - key 23
CREATE OR REPLACE VIEW inlo_v_export_exact_23 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_23 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 23);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_23 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 5. Alliander - key 81
CREATE OR REPLACE VIEW inlo_v_export_exact_81 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_81 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 81);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_81 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 6. De Kreek - key 101
CREATE OR REPLACE VIEW inlo_v_export_exact_101 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_101 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 101);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_101 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 7. Landmark - key 241
CREATE OR REPLACE VIEW inlo_v_export_exact_241 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_241 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 241);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_241 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 8. IKEA - key 281
CREATE OR REPLACE VIEW inlo_v_export_exact_281 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_281 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 281);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_281 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 9. Mercedes Benz - key 61
CREATE OR REPLACE VIEW inlo_v_export_exact_61 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_61 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 61);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_61 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 10. Trinseo - key 121
CREATE OR REPLACE VIEW inlo_v_export_exact_121 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_121 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 121);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_121 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 11. PPS Haren - key 141
CREATE OR REPLACE VIEW inlo_v_export_exact_141 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_141 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 141);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_141 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 12. IKEA (intern) - key 181
CREATE OR REPLACE VIEW inlo_v_export_exact_181 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_181 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 181);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_181 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 13. Greenport - key 1
CREATE OR REPLACE VIEW inlo_v_export_exact_1 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_1 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 1);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_1 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 14. VGZ - key 41
CREATE OR REPLACE VIEW inlo_v_export_exact_41 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_41 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 41);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_41 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 15. Upfield - key 161
CREATE OR REPLACE VIEW inlo_v_export_exact_161 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_161 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 161);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_161 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 16. Nissan - key 361
CREATE OR REPLACE VIEW inlo_v_export_exact_361 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_361 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 361);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_361 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 17. Landmark Huurders - key 301
CREATE OR REPLACE VIEW inlo_v_export_exact_301 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_301 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 301);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_301 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 18. Vivada - key 321
CREATE OR REPLACE VIEW inlo_v_export_exact_321 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_321 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 321);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_321 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 19. Covestro Derden - key 341
CREATE OR REPLACE VIEW inlo_v_export_exact_341 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_341 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 341);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_341 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 20. Brocasef - key 381
CREATE OR REPLACE VIEW inlo_v_export_exact_381 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_381 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 381);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_381 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 21. De Veste - key 401
CREATE OR REPLACE VIEW inlo_v_export_exact_401 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_401 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 401);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_401 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 23. KADASTER - key 441
CREATE OR REPLACE VIEW inlo_v_export_exact_441 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_441 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 441);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_441 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
--- 24. IKEA - BEHEER - key 461
CREATE OR REPLACE VIEW inlo_v_export_exact_461 (RESULT, result_order, adm_exact) AS SELECT RESULT, result_order, adm_exact FROM aaxx_v_export_exact;
CREATE OR REPLACE PROCEDURE inlo_select_exact_461 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_xml(p_applname, p_applrun, 461);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_461 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact(p_applname, p_applrun, p_filedir, p_filename);
END;
/
-- exact verkoopinterface --
--- Splitsing in CORE, PROJECT en RES
-- exact verkoop - CORE
CREATE OR REPLACE VIEW inlo_v_export_exact_verkoop (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE inlo_select_exact_verkoop (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'), 'CORE');
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_verkoop (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'), 'CORE');
END;
/
-- exact verkoop over het vorige jaar - CORE
CREATE OR REPLACE VIEW inlo_v_export_exact_verkoop_vj (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE inlo_select_exact_verkoop_vj (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'CORE');
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_verkoop_vj (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'CORE');
END;
/
-- INPASSEN GESPLITSTE VERKOOPINTERFACES
-- 1. exact verkoop - CORE - IKEA 281
CREATE OR REPLACE VIEW inlo_v_export_exact_vk_281 (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE inlo_select_exact_vk_281 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'), 'CORE', 281);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_vk_281 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'), 'CORE', 281);
END;
/
-- 1. exact verkoop over het vorige jaar - CORE - IKEA 281
CREATE OR REPLACE VIEW inlo_v_export_exact_vk_vj_281 (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE inlo_select_exact_vk_vj_281 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'CORE', 281);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_vk_vj_281 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'CORE', 281);
END;
/
-- 2. exact verkoop - CORE - IKEA BEHEER 461
CREATE OR REPLACE VIEW inlo_v_export_exact_vk_461 (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE inlo_select_exact_vk_461 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'), 'CORE', 461);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_vk_461 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'), 'CORE', 461);
END;
/
-- 2. exact verkoop over het vorige jaar - CORE - IKEA BEHEER 461
CREATE OR REPLACE VIEW inlo_v_export_exact_vk_vj_461 (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE inlo_select_exact_vk_vj_461 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'CORE', 461);
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_vk_vj_461 (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'CORE', 461);
END;
/
-- exact verkoop - PROJECTEN CSV
CREATE OR REPLACE VIEW inlo_v_export_exact_verkoop_p (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE inlo_select_exact_verkoop_p (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'), 'PROJECT');
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_verkoop_p (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'), 'PROJECT');
END;
/
-- exact verkoop over het vorige jaar - PROJECTEN CSV
CREATE OR REPLACE VIEW inlo_v_export_exact_verkoop_vj_p (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE inlo_select_exact_verkoop_vj_p (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'PROJECT');
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_verkoop_vj_p (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'PROJECT');
END;
/
-- exact verkoop - RES-KREEK
CREATE OR REPLACE VIEW inlo_v_export_exact_verkoop_r (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE inlo_select_exact_verkoop_r (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(sysdate, 'yyyy'), 'RES');
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_verkoop_r (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(sysdate, 'yyyy'), 'RES');
END;
/
-- exact verkoop over het vorige jaar - RES KREEK
CREATE OR REPLACE VIEW inlo_v_export_exact_verkoop_vj_r (RESULT, result_order) AS SELECT RESULT, result_order FROM aaxx_v_export_exact_verkoop;
CREATE OR REPLACE PROCEDURE inlo_select_exact_verkoop_vj_r (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_verkoop(p_applname, p_applrun, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'RES');
END;
/
CREATE OR REPLACE PROCEDURE inlo_export_exact_verkoop_vj_r (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_exact_verkoop(p_applname, p_applrun, p_filedir, p_filename, to_char(to_number(to_char(sysdate, 'yyyy'))-1), 'RES');
END;
/
-- exact projecturen (XML)
CREATE OR REPLACE VIEW inlo_v_export_exact_uren (result, result_order)
AS SELECT result, result_order FROM aaxx_v_export_exact_uren_xml;
CREATE OR REPLACE PROCEDURE inlo_select_exact_uren (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
BEGIN
aaxx_select_exact_uren_xml(p_applname, p_applrun, '');
END;
/
-- verwerk exact projecturen (XML)
CREATE OR REPLACE PROCEDURE inlo_export_verwerk_exact_uren (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
BEGIN
aaxx_export_verwerk_exact_uren(p_applname, p_applrun, p_filedir, p_filename, '');
END;
/
-- Vastgoed contract views voor huuradministratie
CREATE OR REPLACE VIEW inlo_v_sync_alg_ruimte
(
alg_ruimte_key,
alg_verdieping_key,
cadlabel
)
AS
SELECT rg.alg_ruimte_key,
rg.alg_verdieping_key,
DECODE (rg.alg_verdieping_volgnr, 0, REPLACE(alg_ruimte_nr, 'S'),
1, REPLACE(alg_ruimte_nr, 'BG'),
2, REPLACE(alg_ruimte_nr, 'ST'),
3, REPLACE(alg_ruimte_nr, 'ST'),
alg_ruimte_nr) cadlabel
FROM alg_v_ruimte_gegevens rg
WHERE alg_gebouw_upper = 'GV-RVA'
UNION ALL
SELECT rg.alg_ruimte_key,
rg.alg_verdieping_key,
rg.alg_ruimte_nr cadlabel
FROM alg_v_ruimte_gegevens rg
WHERE alg_gebouw_upper <> 'GV-RVA';
CREATE OR REPLACE VIEW inlo_v_huurruimte_geg_bron
AS
SELECT alg_ruimte_bruto_vloeropp,
alg_gebouw_upper,
alg_verdieping_code,
alg_ruimte_nr,
alg_ruimte_key,
alg_verdieping_key,
COALESCE(cp.cnt_contract_plaats_gewicht, 1) * fac.safe_to_number(aaxx_get_kenmerk('ALG', 1121, r.alg_ruimte_key)) fno_m2,
COALESCE(cp.cnt_contract_plaats_gewicht, 1) * fac.safe_to_number(aaxx_get_kenmerk('ALG', 1121, r.alg_ruimte_key))
* (1 + COALESCE(fac.safe_to_number(aaxx_get_kenmerk('ALG', 1162, r.alg_verdieping_key)),0)/100)
* (1 + COALESCE(fac.safe_to_number(aaxx_get_kenmerk('ALG', 1140, r.alg_gebouw_key)),0)/100) vvo_m2,
COALESCE(fac.safe_to_number(aaxx_get_kenmerk('ALG', 1140, r.alg_gebouw_key)),0) v_sk_g,
COALESCE(fac.safe_to_number(aaxx_get_kenmerk('ALG', 1162, r.alg_verdieping_key)),0) v_sk_v,
COALESCE(fac.safe_to_number(aaxx_get_kenmerk('ALG', 1141, r.alg_gebouw_key)),0) t_sk,
COALESCE(fac.safe_to_number(aaxx_get_kenmerk('ALG', 1160, r.alg_gebouw_key)),0) t_parkmgt,
COALESCE(fac.safe_to_number(aaxx_get_kenmerk('ALG', 1161, r.alg_gebouw_key)),0) t_parkeer,
COALESCE(fac.safe_to_number(aaxx_get_kenmerk('ALG', 1220, r.alg_gebouw_key)),0) t_ict,
COALESCE(fac.safe_to_number(aaxx_get_kenmerk('ALG', 1180, r.alg_ruimte_key)),sr.alg_srtruimte_prijs) t_fno,
sr.alg_srtruimte_code,
sr.alg_srtruimte_omschrijving,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
cp.cnt_contract_key,
c.cnt_prs_bedrijf_key,
COALESCE(FAC.safe_to_number(o.optie), 0) optie
FROM cnt_contract c,
cnt_contract_plaats cp,
alg_v_ruimte_gegevens r,
alg_srtruimte sr,
(SELECT cnt_contract_key, cnt_kenmerkcontract_waarde optie
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 541
AND cnt_kenmerkcontract_verwijder IS NULL) o
WHERE cp.cnt_contract_key = c.cnt_contract_key
AND cp.CNT_ALG_PLAATS_CODE = 'R'
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_key = r.alg_ruimte_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key
AND c.cnt_contract_key = o.cnt_contract_key(+);
CREATE OR REPLACE VIEW inlo_v_rap_verhuur_geg
AS
SELECT b.cnt_contract_key,
COALESCE (h.prs_bedrijf_naam,
CASE
WHEN cnt_contract_looptijd_van > SYSDATE THEN 'Toekomst'
WHEN b.optie = 1 THEN 'Optie'
ELSE 'Leegstand'
END) prs_bedrijf_naam,
b.alg_srtruimte_code code,
rg.alg_srtruimte_omschrijving omschrijving,
rg.alg_gebouw_upper,
rg.alg_verdieping_code,
rg.alg_ruimte_nr,
rg.alg_ruimte_bruto_vloeropp,
COALESCE(fno_m2, fac.safe_to_number(aaxx_get_kenmerk('ALG', 1121, rg.alg_ruimte_key))) fno_m2,
t_fno,
fno_m2 * t_fno b_fno,
vvo_m2 - fno_m2 vvo_m2,
t_sk,
vvo_m2 * t_sk b_sk,
t_parkeer,
vvo_m2 * t_parkeer b_parkeer,
t_parkmgt,
vvo_m2 * t_parkmgt b_parkmgt,
t_ict,
vvo_m2 * t_ict b_ict,
(fno_m2 * t_fno) +
(vvo_m2 * t_sk) +
(fno_m2 * t_parkeer) +
(fno_m2 * t_ict) +
(vvo_m2 * t_parkmgt) tot,
cnt_contract_looptijd_van,
cnt_contract_looptijd_tot,
'Verhuurd' status
FROM alg_v_ruimte_gegevens rg,
(SELECT * FROM inlo_v_huurruimte_geg_bron WHERE cnt_contract_looptijd_tot > SYSDATE) b,
prs_bedrijf h
WHERE rg.alg_ruimte_key = b.alg_ruimte_key(+)
AND h.prs_bedrijf_key(+) = b.cnt_prs_bedrijf_key
AND rg.alg_locatie_key = 1 -- Venlo
AND rg.alg_verdieping_volgnr < 20;
CREATE OR REPLACE VIEW inlo_v_cad_thema_leegstand
(
alg_ruimte_key,
waarde
)
AS
SELECT rg.alg_ruimte_key,
DECODE (
COALESCE (prs_verhuurbaar, 0),
0, 'Niet verhuurbaar',
CASE
WHEN -- Heb ik op dit moment een geldig huurcontract
(SELECT COUNT (*)
FROM inlo_v_huurruimte_geg_bron b
WHERE optie = 0
AND b.alg_ruimte_key = rg.alg_ruimte_key
AND SYSDATE BETWEEN cnt_contract_looptijd_van
AND cnt_contract_looptijd_tot) >
0
THEN
'Verhuurd'
-- Heb ik op in de toekomst een geldig huurcontract
WHEN (SELECT COUNT (*)
FROM inlo_v_huurruimte_geg_bron b
WHERE optie = 0
AND b.alg_ruimte_key = rg.alg_ruimte_key
AND cnt_contract_looptijd_van > SYSDATE) >
0
THEN
'Toekomst'
-- Heb ik nu of in de toekomst een optie
WHEN (SELECT COUNT (*)
FROM inlo_v_huurruimte_geg_bron b
WHERE optie = 1
AND b.alg_ruimte_key = rg.alg_ruimte_key
AND cnt_contract_looptijd_tot > SYSDATE) >
0
THEN
'Optie'
ELSE
'Leegstand'
END) status
FROM alg_v_ruimte_gegevens rg, alg_srtruimte sr
WHERE rg.alg_srtruimte_key = sr.alg_srtruimte_key
AND alg_locatie_key = 1;
-- Exact koppeling
-- eerste opzet voor de view om Exact data voor verhuurcontracten in de verkoopfactuur tabel te laden
-- factuurnummers, komen deze uit Facilitor?
-- Alle huidige en toekomstige contracten worden getoond. Bij het vullen van de verkoopfactuur tabel worden
-- de toekomstige contracten niet meegenomen.
CREATE OR REPLACE VIEW inlo_v_export_exact_gv_bron
AS
SELECT c.cnt_contract_key,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
c.cnt_contract_omschrijving,
b.prs_leverancier_nr,
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_perc,
item,
bedrag,
code_exact,
oms_exact,
aaxx_get_kenmerk ('CNT', 681, c.cnt_contract_key) opmerking,
-- voor studentenhuisvesting kennen we andere kostenplaatsen voor huur en servicekosten
DECODE (cg.kostenplaats,
'huur', DECODE (aaxx_get_kenmerk ('CNT', 761, c.cnt_contract_key), 1, 414, hs.huur),
'srvk', DECODE (aaxx_get_kenmerk ('CNT', 761, c.cnt_contract_key), 1, 511, hs.srvk),
cg.kostenplaats) kostenplaats,
volgorde,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
CNT.cnt_getOpzegdatum(c.cnt_contract_key) opzegdatum,
(SELECT cnt_termijn_omschrijving
FROM cnt_termijn t
WHERE t.cnt_termijn_key = cnt_contract_opzegtermijn) opzegtermijn,
v.fno_m2,
(v.fno_m2 + v.vvo_m2) vvo_m2
FROM (SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
aaxx_get_kenmerk ('CNT', 561, cnt_contract_key)
item,
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 564, cnt_contract_key))
bedrag,
'10'
code_exact,
'Bijdrage Dienstverlening'
oms_exact,
COALESCE(aaxx_get_kenmerk ('CNT', 701, cnt_contract_key), '525')
kostenplaats,
50 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
aaxx_get_kenmerk ('CNT', 562, cnt_contract_key),
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 565, cnt_contract_key)),
'10',
'Bijdrage Dienstverlening',
COALESCE(aaxx_get_kenmerk ('CNT', 702, cnt_contract_key), '525')
kostenplaats,
50 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
aaxx_get_kenmerk ('CNT', 563, cnt_contract_key),
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 566, cnt_contract_key)),
'10',
'Bijdrage Dienstverlening',
COALESCE(aaxx_get_kenmerk ('CNT', 703, cnt_contract_key), '525')
kostenplaats,
50 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'Huur terrein bedrag',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 567, cnt_contract_key)),
'60',
'Huur terrein',
'411'
kostenplaats,
10 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'Huur korting',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 568, cnt_contract_key)),
'110',
'Huurkorting',
'huur'
kostenplaats,
51 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'VVO Huurbedrag',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 621, cnt_contract_key)), -- VVO Huurbedrag
'30',
'Huur ruimte',
'huur'
kostenplaats,
10 volgorde
FROM cnt_contract k
UNION ALL
SELECT cnt_contract_key,
'0'
fin_btwtabelwaarde_code,
0
fin_btwtabelwaarde_perc,
'VVO Huurbedrag geen BTW',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 682, cnt_contract_key)), -- VVO Huurbedrag geen BTW
'30',
'Huur ruimte',
'huur'
kostenplaats,
10 volgorde
FROM cnt_contract k
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'Campusparkeren bedrag',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 623, cnt_contract_key)), -- Campusparkeren bedrag
'35',
'Bijdrage Campusparkeren',
'522'
kostenplaats,
60 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'0'
fin_btwtabelwaarde_code,
0
fin_btwtabelwaarde_perc,
'Borg',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 444, cnt_contract_key)), -- Waarborgsom
'70',
'Opbrengst waarborgsommen',
''
kostenplaats,
70 volgorde
FROM cnt_contract
WHERE aaxx_get_kenmerk ('CNT', 445, cnt_contract_key) IS NULL -- Waarborg is nog niet eerder ge<67>nd.
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'Service kosten',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 622, cnt_contract_key)), -- Servkost bedrag
'40',
'Bijdrage Servicekosten',
'srvk'
kostenplaats,
20 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'ServKost extra bedrag BTW hoog',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 683, cnt_contract_key)), -- ServKost extra bedrag BTW hoog
'40',
'Bijdrage Servicekosten',
'srvk'
kostenplaats,
21 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'0'
fin_btwtabelwaarde_code,
0
fin_btwtabelwaarde_perc,
'ServKost bedrag geen BTW',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 741, cnt_contract_key)), -- ServKost bedrag geen BTW
'40',
'Bijdrage Servicekosten',
'srvk'
kostenplaats,
21 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'4'
fin_btwtabelwaarde_code,
9
fin_btwtabelwaarde_perc,
'ServKost extra bedrag BTW laag',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 684, cnt_contract_key)), -- ServKost extra bedrag BTW laag
'40',
'Bijdrage Servicekosten',
'srvk'
kostenplaats,
21 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'4'
fin_btwtabelwaarde_code,
9
fin_btwtabelwaarde_perc,
'Dienstverlening Water',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 581, cnt_contract_key)), -- Dienstverlening Water
'10',
'Bijdrage Dienstverlening',
'525'
kostenplaats,
50 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'Parkmgt',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 624, cnt_contract_key)), -- Parkmgt bedrag
'100',
'Bijdrage Parkmanagement',
'521'
kostenplaats,
30 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'ICT',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 625, cnt_contract_key)), -- ICT bedrag
'120',
'Bijdrage ICT',
'535'
kostenplaats,
40 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'Flexplek vaste plek bedrag',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 585, cnt_contract_key)), -- Flexplek vaste plek bedrag
'10',
'Huur ruimte',
'534'
kostenplaats,
10 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'Flex ongelimiteerd',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 586, cnt_contract_key)), -- Flexplek ongelimiteerd bedrag
'10',
'Huur ruimte',
'534'
kostenplaats,
10 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'Flex 12 dagen',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 587, cnt_contract_key)), -- Flexplek 12 dagen per maand bedrag
'10',
'Huur ruimte',
'534'
kostenplaats,
10 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'Flex 5 dagen',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 588, cnt_contract_key)), -- Flexplek 5 dagen per maand bedrag
'10',
'Huur ruimte',
'534'
kostenplaats,
10 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'3'
fin_btwtabelwaarde_code,
21
fin_btwtabelwaarde_perc,
'Flex locker',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 589, cnt_contract_key)), -- Flexplek locker
'10',
'Huur ruimte',
'534'
kostenplaats,
11 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'0'
fin_btwtabelwaarde_code,
0
fin_btwtabelwaarde_perc,
'Opslag BTW herziening',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 601, cnt_contract_key)), -- Opslag BTW herziening
'30',
'Huur ruimte',
'huur'
kostenplaats,
90 volgorde
FROM cnt_contract
UNION ALL
SELECT cnt_contract_key,
'0'
fin_btwtabelwaarde_code,
0
fin_btwtabelwaarde_perc,
'Opslag BTW pro rata',
FAC.safe_to_number (
aaxx_get_kenmerk ('CNT', 602, cnt_contract_key)), -- Opslag BTW pro rata
'30',
'Huur ruimte',
'huur'
kostenplaats,
90 volgorde
FROM cnt_contract
GROUP BY cnt_contract_key) cg,
cnt_contract c,
prs_bedrijf b,
(SELECT cnt_contract_key,
aaxx_get_kenmerk ('ALG', 1260, alg_gebouw_key) huur,
aaxx_get_kenmerk ('ALG', 1261, alg_gebouw_key) srvk
FROM (SELECT DISTINCT cnt_contract_key, alg_gebouw_key
FROM cnt_contract_plaats cp, alg_v_allonroerendgoed aog
WHERE ( ( cp.cnt_alg_plaats_code = 'R'
AND cp.cnt_alg_plaats_key =
aog.alg_ruimte_key)
OR ( cp.cnt_alg_plaats_code = 'V'
AND cp.cnt_alg_plaats_key =
aog.alg_verdieping_key)
OR ( cp.cnt_alg_plaats_code = 'G'
AND cp.cnt_alg_plaats_key =
aog.alg_gebouw_key)
OR ( cp.cnt_alg_plaats_code = 'L'
AND cp.cnt_alg_plaats_key =
aog.alg_locatie_key)))) hs,
(SELECT cnt_contract_key, sum(fno_m2) fno_m2, sum(vvo_m2) vvo_m2
FROM inlo_v_rap_verhuur_geg
WHERE cnt_contract_key IS NOT NULL
GROUP BY cnt_contract_key) v
WHERE c.cnt_contract_key = cg.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_key = hs.cnt_contract_key(+)
AND c.cnt_contract_key = v.cnt_contract_key(+)
AND c.ins_discipline_key = 921 -- verhuurcontract
AND cg.bedrag IS NOT NULL
AND c.cnt_contract_verwijder IS NULL
AND c.cnt_contract_looptijd_tot >
ADD_MONTHS (TRUNC (SYSDATE, 'MM'), 1)
AND c.cnt_contract_key NOT IN
(SELECT cnt_contract_key
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerk_key = 541 -- optie
AND cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerkcontract_waarde = '1');
CREATE OR REPLACE VIEW inlo_v_export_exact_gv (
result,
result_order
)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr
FROM fac_rapport
WHERE fac_rapport_node = 'INLO_EXACT';
CREATE OR REPLACE PROCEDURE inlo_select_exact_gv (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
CURSOR c
IS
SELECT fin_verkoopfactuur_refkey, prs_debiteur_naam, fin_verkoopfactuur_omschr, fin_verkoopfactuur_datum, fin_verkoopfactuur_c8
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
AND fin_verkoopfactuur_d1 IS NULL
GROUP BY fin_verkoopfactuur_refkey, prs_debiteur_naam, fin_verkoopfactuur_omschr, fin_verkoopfactuur_datum, fin_verkoopfactuur_c8;
CURSOR c_cnt (c_contract_key NUMBER)
IS
SELECT *
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
AND fin_verkoopfactuur_d1 IS NULL
AND fin_verkoopfactuur_refkey = c_contract_key
ORDER BY fin_verkoopfactuur_n1;
v_order_count NUMBER;
v_amount_sum NUMBER(10,2);
v_amount_sum_incl NUMBER(10,2);
v_count NUMBER;
v_sub_count NUMBER;
v_bestand VARCHAR2(12);
v_boekstuknummer NUMBER;
v_crdnr PRS_BEDRIJF.PRS_LEVERANCIER_NR%TYPE;
v_factuur_nr FIN_FACTUUR.FIN_FACTUUR_NR%TYPE;
v_prefix VARCHAR2(10);
BEGIN
v_order_count := 0;
v_amount_sum := 0;
v_amount_sum_incl := 0;
v_bestand := 'INLO_EXACT';
v_crdnr := 'Q';
v_factuur_nr := 'Q';
-- Eerst opruiming
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
DELETE fac_rapport
WHERE fac_rapport_node = v_bestand;
-- verwijder niet verwerkte regels uit de verkoopfactuur tabel
DELETE fin_verkoopfactuur
WHERE fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
AND fin_verkoopfactuur_d1 IS NULL;
-- Vul de verkoopfactuurtabel met de nieuwe records
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuur_id,
fin_verkoopfactuur_datum,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
prs_kostenplaats_nr,
prs_kostensoort_oms,
prs_kostensoort_opmerking,
prs_bedrijf_key,
prs_debiteur_naam,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_btw,
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_perc,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_n1,
fin_verkoopfactuur_c1,
fin_verkoopfactuur_c2,
fin_verkoopfactuur_c4,
fin_verkoopfactuur_c6, -- vullen met FNO_M2
fin_verkoopfactuur_c7, -- vullen met VVO_M2
fin_verkoopfactuur_c8) -- vullen met Opmerking
SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy') || ' C' || cnt_contract_key,
SYSDATE,
'Facturatie Huur en Servicekosten '
|| TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'Mon yyyy'),
'contract',
cnt_contract_key,
kostenplaats,
oms_exact,
code_exact,
prs_bedrijf_key,
prs_leverancier_nr,
bedrag,
ROUND (bedrag * (fin_btwtabelwaarde_perc / 100), 2),
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_perc,
TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyymm'),
volgorde,
cnt_contract_omschrijving,
item,
'HuurGreenportVenlo',
fno_m2,
vvo_m2,
opmerking
FROM inlo_v_export_exact_gv_bron
WHERE cnt_contract_looptijd_van <= ADD_MONTHS (TRUNC (SYSDATE, 'MM'), 1);
-- Bepaal het boekstuknummer (key 3) met het hoogste nummer van dit jaar
-- ## AAIT#36589
SELECT MAX(fin_kenmerkfactuur_waarde)
INTO v_boekstuknummer
FROM fin_kenmerkfactuur
WHERE fin_kenmerk_key = 3
AND SUBSTR(fin_kenmerkfactuur_waarde,1,2) = TO_CHAR(SYSDATE, 'YY');
v_order_count := 0;
v_amount_sum := 0;
v_amount_sum_incl := 0;
v_prefix := NULL;
-- header
aaxx_add_xml_row_p (v_bestand, v_prefix, '<?xml version="1.0" encoding="windows-1252"?>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<eExact>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Invoices>');
FOR rec IN c
LOOP
BEGIN
-- Als we een nieuw contract tegenkomen gaan we het factuurnummer ophogen.
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Invoice type="8020" status="50">');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Journal code="40"/>');
aaxx_add_xml_element_p (v_bestand, v_prefix, 'OrderDate', rec.fin_verkoopfactuur_datum);
aaxx_add_xml_element_p (v_bestand, v_prefix, 'InvoiceDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') );
aaxx_add_xml_element_p (v_bestand, v_prefix, 'Description', xml.char_to_html(rec.fin_verkoopfactuur_omschr));
aaxx_add_xml_element_p (v_bestand, v_prefix, 'Notes', xml.char_to_html(rec.fin_verkoopfactuur_c8));
aaxx_add_xml_row_p (v_bestand, v_prefix, '<OrderedBy code="' || rec.prs_debiteur_naam || '"/>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<InvoiceTo code="' || rec.prs_debiteur_naam || '"/>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<PaymentCondition code="02"/>');
v_sub_count := 1;
FOR rec1 IN c_cnt (rec.fin_verkoopfactuur_refkey)
LOOP
BEGIN
aaxx_add_xml_row_p (v_bestand, v_prefix, '<InvoiceLine line="' || v_sub_count || '">');
aaxx_add_xml_element_p (v_bestand, v_prefix, 'Description', xml.char_to_html(rec1.prs_kostensoort_oms));
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Item code="' || rec1.prs_kostensoort_opmerking || '"/>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Costcenter code="' || rec1.prs_kostenplaats_nr || '"/>');
IF rec1.fin_verkoopfactuur_bedrag < 0
THEN
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Quantity>-1</Quantity>');
ELSE
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Quantity>1</Quantity>');
END IF;
-- INLO#70153 aaxx_add_xml_row_p (v_bestand, v_prefix, '<Unit code="pc"/>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<NetPrice>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '<Currency code="EUR" />');
aaxx_add_xml_element_p (v_bestand, v_prefix, 'Value', REPLACE (TO_CHAR (ABS(rec1.fin_verkoopfactuur_bedrag)), ',', '.'));
aaxx_add_xml_row_p (v_bestand, v_prefix, '<VAT code="' || rec1.fin_btwtabelwaarde_code || '"/>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '</NetPrice>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '</InvoiceLine>');
v_sub_count := v_sub_count + 1;
v_amount_sum := v_amount_sum + rec1.fin_verkoopfactuur_bedrag;
END;
END LOOP;
aaxx_add_xml_row_p (v_bestand, v_prefix, '</Invoice>');
v_order_count := v_order_count + 1;
END;
END LOOP;
aaxx_add_xml_row_p (v_bestand, v_prefix, '</Invoices>');
aaxx_add_xml_row_p (v_bestand, v_prefix, '</eExact>');
fac.writelog (p_applname, 'S', 'Exact export Greenport huurfacturen uitgevoerd. Aantal facturen: ' || v_order_count || ' Totaal bedrag: ' || v_amount_sum, '');
END;
/
CREATE OR REPLACE VIEW inlo_v_export_exact_gv_frozen
AS
SELECT fin_verkoopfactuur_refkey cnt_contract_key,
b.prs_bedrijf_key ,
b.prs_bedrijf_naam,
fin_verkoopfactuur_c1 cnt_contract_omschrijving,
prs_debiteur_naam prs_leverancier_nr,
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_perc,
fin_verkoopfactuur_c2 item,
fin_verkoopfactuur_bedrag bedrag,
prs_kostensoort_opmerking,
prs_kostensoort_oms code_exact,
prs_kostenplaats_nr oms_exact,
fin_verkoopfactuur_maand boekmaand,
fin_verkoopfactuur_datum factuurdatum,
fin_verkoopfactuur_c6 fno_m2,
fin_verkoopfactuur_c7 vvo_m2
FROM fin_verkoopfactuur vf, prs_bedrijf b
WHERE vf.prs_bedrijf_key = b.prs_bedrijf_key
AND fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
AND fin_verkoopfactuur_d1 IS NOT NULL;
CREATE OR REPLACE VIEW inlo_v_export_verwerk_exact_gv (
result,
result_order
)
AS
SELECT 'cnt_contract_key;' ||
'prs_bedrijf_key;' ||
'prs_bedrijf_naam;' ||
'cnt_contract_omschrijving;' ||
'prs_leverancier_nr;' ||
'fin_btwtabelwaarde_code;' ||
'fin_btwtabelwaarde_perc;' ||
'item;' ||
'bedrag;' ||
'prs_kostensoort_opmerking;' ||
'code_exact;' ||
'oms_exact;' ||
'boekmaand', -1
FROM DUAL
UNION ALL
SELECT fin_verkoopfactuur_refkey || ';' ||
b.prs_bedrijf_key || ';' ||
b.prs_bedrijf_naam || ';' ||
fin_verkoopfactuur_c1 || ';' ||
prs_debiteur_naam || ';' ||
fin_btwtabelwaarde_code || ';' ||
fin_btwtabelwaarde_perc || ';' ||
fin_verkoopfactuur_c2 || ';' ||
fin_verkoopfactuur_bedrag || ';' ||
prs_kostensoort_opmerking || ';' ||
prs_kostensoort_oms || ';' ||
prs_kostenplaats_nr || ';' ||
fin_verkoopfactuur_maand, fin_verkoopfactuur_key
FROM fin_verkoopfactuur vf, prs_bedrijf b
WHERE vf.prs_bedrijf_key = b.prs_bedrijf_key
AND fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
AND fin_verkoopfactuur_d1 > SYSDATE - 0.1;
CREATE OR REPLACE PROCEDURE inlo_select_verwerk_exact_gv (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2
)
AS
CURSOR c
IS
SELECT c.cnt_contract_key, 445 cnt_kenmerk_key -- Waarborgsom geint op datum
FROM cnt_contract c
WHERE EXISTS
(SELECT cnt_kenmerkcontract_key
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key = c.cnt_contract_key
AND kc.cnt_kenmerk_key = 444) -- Waarborgsom
AND NOT EXISTS
(SELECT cnt_kenmerkcontract_key
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_contract_key = c.cnt_contract_key
AND kc.cnt_kenmerk_key = 445);
BEGIN
FOR rec IN c
LOOP
INSERT INTO cnt_kenmerkcontract (cnt_contract_key, cnt_kenmerk_key, cnt_kenmerkcontract_waarde)
VALUES (rec.cnt_contract_key, rec.cnt_kenmerk_key, TO_CHAR(SYSDATE, 'DD-MM-YYYY'));
END LOOP;
UPDATE fin_verkoopfactuur
SET fin_verkoopfactuur_d1 = SYSDATE
WHERE fin_verkoopfactuur_c4 = 'HuurGreenportVenlo'
AND fin_verkoopfactuur_d1 IS NULL;
END;
/
-- AAXX#68884 Verzoek om het deviatieproces in te richten op INLO
-- Op basis AADS#65512: DSM & Deviatie-workflow
CREATE OR REPLACE VIEW inlo_v_rap_deviatie_goedkeur
(
mld_melding_key,
fclt_3d_user_key, -- prs_perslid_key van de goedkeurder (via rechten MLDBOF / MLDBO3 op desbetreffende vakgroep)
goedkeurder,
-- fclt_3d_afdeling_key, -- ook voor 3D-scoping op afdeling in meenemen voor DSM - ?
fclt_3d_discipline_key, -- vakgroep_key
melding_nr, -- actie-meldingsnr met prefix
melding_start_key, -- meldingsnummer aanvraag
vakgroep, -- vakgroep_naam
status, -- nieuw
datum, -- datum mld_goedkeuring
datum_m1, -- datum mld_start
aanvrager,
omschrijving,
opmerking,
opmerking_m1, -- opmerking mld_start
-- Alle kenmerkvelden op aanvraag
deviatiesoort, -- 443
titel, -- 453
ingangsdatum, -- 445
kostensoort_oud, -- 447
kostensoort_nieuw, -- 446
oud_budget, -- 451
nieuw_budget_jaarbasis, -- 450
nieuw_budget_jaarlopend, -- 449
deviatiebedrag_jaarlopend, -- 442
leverancier, -- 448
po_nummer, -- 452
co_nummer, -- 441
impact_derden, -- 502
impact_derden_wat, -- 503
impact_derden_bespr, -- 504
onderdeel_prijsontwik -- 501
)
AS
SELECT m.mld_melding_key,
pf.prs_perslid_key
fclt_3d_user_key,
pf.prs_perslid_naam
goedkeurder,
md.ins_discipline_key
fclt_3d_discipline_key,
sd.ins_srtdiscipline_prefix || to_char(m.mld_melding_key)
melding_nr,
m.mld_melding_start_key
melding_start_key,
md.ins_discipline_omschrijving
vakgroep,
DECODE (m.mld_melding_status, 2, 'nieuw', 'in behandeling')
status,
TO_CHAR(m.mld_melding_datum,'dd-mm-yyyy')
datum,
TO_CHAR(m1.mld_melding_datum,'dd-mm-yyyy')
datum_m1,
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')'
aanvrager,
m.mld_melding_omschrijving,
m.mld_melding_opmerking,
m1.mld_melding_opmerking,
-- Kenmerkvelden bij aanvraag
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 443)
deviatiesoort,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 453)
titel,
(SELECT TO_CHAR(TO_DATE(mkm.mld_kenmerkmelding_waarde,'dd-mm-yyyy'),'dd-mm-yyyy')
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 445)
ingangsdatum,
(SELECT k.prs_kostensoort_omschrijving
FROM mld_kenmerkmelding mkm, mld_kenmerk k, aaxx_v_kostensoort k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = k.prs_kostensoort_key
AND k.mld_srtkenmerk_key = 447)
kostensoort_oud,
(SELECT k.prs_kostensoort_omschrijving
FROM mld_kenmerkmelding mkm, mld_kenmerk k, aaxx_v_kostensoort k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = k.prs_kostensoort_key
AND k.mld_srtkenmerk_key = 446)
kostensoort_nieuw,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 451)
oud_budget,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 450)
nieuw_budget_jaarbasis,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 449)
nieuw_budget_jaarlopend,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 442) -- Deviatiebedrag (lopende jaar)
deviatiebedrag_lopendjaar,
(SELECT b.prs_bedrijf_naam
FROM mld_kenmerkmelding mkm, mld_kenmerk k, prs_bedrijf b
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND k.mld_srtkenmerk_key = 448)
leverancier,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 452) -- PO Nummer opdrachtgever
po_nummer,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 441) -- CO Nummer HEYDAY naar leverancier
co_nummer,
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 502)
impact_derden,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 503)
impact_derden_wat,
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 504)
impact_derden_bespr,
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 501)
onderdeel_prijsontwik
FROM mld_melding m,
mld_melding m1,
prs_perslid p, -- aanvrager
-- prs_v_afdeling_boom ab,
-- prs_afdeling a,
mld_stdmelding s,
mld_discipline md,
mld_disc_params mdp,
ins_srtdiscipline sd,
(
SELECT gr.ins_discipline_key, gg.prs_perslid_key, p.prs_perslid_naam
FROM fac_gebruikersgroep gg,
fac_groep g,
fac_groeprechten gr,
mld_discipline md,
ins_srtdiscipline sd,
fac_functie f,
prs_perslid p
WHERE gg.fac_groep_key = g.fac_groep_key
AND g.fac_groep_key = gr.fac_groep_key
AND gg.prs_perslid_key = p.prs_perslid_key
AND gr.fac_functie_key = f.fac_functie_key
AND gr.ins_discipline_key = md.ins_discipline_key
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND INSTR(lower(sd.ins_srtdiscipline_omschrijving), 'deviaties') > 0 -- elke klant met devatieproces wordt onder eigen vakgroeptype opgenomen, genaamd Deviaties <klantnaam>
AND INSTR(lower(md.ins_discipline_omschrijving),'goedkeuring') > 0
AND gr.fac_functie_key = 29 -- MLDBOF
GROUP BY gr.ins_discipline_key, gg.prs_perslid_key, p.prs_perslid_naam
) pf -- p-fiatteur
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
AND m.mld_melding_start_key = m1.mld_melding_key
AND m1.mld_melding_status = 4 -- Lopende aanvraag
AND m.mld_melding_status in (2, 4) -- Moet in principe nieuw (2) zijn om nog te kunnen annuleren
-- Indien toch in behandeling (4) genomen dan wel opnemen maar in styling annuleren disablen
AND m.prs_perslid_key = p.prs_perslid_key
-- AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = a.prs_afdeling_key
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND md.ins_discipline_key = s.mld_ins_discipline_key
AND md.ins_discipline_key = mdp.mld_ins_discipline_key
AND INSTR(lower(sd.ins_srtdiscipline_omschrijving), 'deviaties') > 0 -- elke klant met devatieproces wordt onder eigen vakgroeptype opgenomen, genaamd Deviaties <klantnaam>
AND INSTR(lower(md.ins_discipline_omschrijving),'goedkeuring') > 0 -- daarbinnen alle vakgroepen tbv goedkeuring
AND md.ins_discipline_key = pf.ins_discipline_key ;
-- PPS Haren
CREATE OR REPLACE PROCEDURE inlo_import_scan_haren (p_import_key IN NUMBER)
AS
c_fielddelimitor VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR (1000);
v_hint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR2 (200);
v_header_is_valid NUMBER (1);
v_dummy VARCHAR2 (1000);
v_user VARCHAR2 (4);
-- De importvelden:
v_rownumb NUMBER(10);
v_scancode VARCHAR2 (60); -- streepjescode (ruimtenr of ins_deel_omschrijving)
v_datum DATE;
v_tijd VARCHAR2 (10); -- hh24:mi
v_in_uit VARCHAR2 (20); -- keuzelijst uitgegeven / ingenomen / <leeg>
v_temperatuur VARCHAR2 (50);
v_opmerking VARCHAR2 (4000);
v_ins_deel_key NUMBER(10);
v_alg_ruimte_key NUMBER(10);
v_alg_ruimte_key_i NUMBER(10);
v_opmerking_intern VARCHAR2 (4000); -- om bij verwerking eventuele leesbare info in op te nemen
CURSOR c IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
-- Eerst opruiming
-- Verwijder regels die de vorige keer geimporteerd zijn maar niet verwerkt zijn.
DELETE inlo_imp_scan_haren
WHERE actief = 0;
-- gooi lege regels weg uit de import
DELETE fac_imp_file
WHERE fac_import_key = p_import_key AND fac_imp_file_line LIKE ';;';
-- Bepaal hoogste rownumb
SELECT COALESCE(MAX(rownumb),0)
INTO v_rownumb
FROM inlo_imp_scan_haren ;
v_header_is_valid := 0;
v_ongeldig := 0;
FOR rec IN c
LOOP
BEGIN
v_errormsg := 'Fout FETCH te importeren rij';
v_newline := rec.fac_imp_file_line;
v_errormsg :=
'Fout opvragen te importeren rij:'
|| SUBSTR (v_newline, 1, 200);
v_aanduiding := '';
IF (UPPER (v_newline) LIKE
'STREEPJESCODE:;DATUM;TIJD;IN / UIT;TEMP;OPMERKING%')
THEN
v_header_is_valid := 1;
ELSE
-- Lees alle veldwaarden
v_errormsg := 'Fout opvragen te importeren rij (streepjescode)';
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
v_scancode := UPPER(SUBSTR (v_dummy, 1, 60));
-- Op zoek naar ruimte of ins_deel_key
v_alg_ruimte_key := NULL;
v_ins_deel_key := NULL;
IF v_scancode IS NOT NULL
THEN
SELECT MAX (alg_ruimte_key)
INTO v_alg_ruimte_key
FROM alg_v_onroerendgoed_gegevens v, aaxx_v_klantcode_gebouw k
WHERE v.alg_gebouw_key = k.alg_gebouw_key
AND v.alg_type = 'R'
AND klantcode = '03614000' -- exactcode voor 'PPS Haren'
AND UPPER(v.alg_ruimte_nr) = v_scancode;
IF v_alg_ruimte_key IS NULL
THEN
SELECT MAX (ins_deel_key)
INTO v_ins_deel_key
FROM ins_v_deel_gegevens
WHERE ins_discipline_key = 2521 -- Transportwagens
AND (ins_deel_vervaldatum IS NULL OR ins_deel_vervaldatum > TRUNC(SYSDATE) )
AND ins_deel_upper = v_scancode;
END IF;
v_alg_ruimte_key_i := COALESCE(v_alg_ruimte_key, v_alg_ruimte_key_i) ;
END IF;
v_errormsg := 'Fout opvragen te importeren rij (datum) ';
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
v_datum := fac.safe_to_date (v_dummy, 'dd-mm-yyyy');
v_errormsg := 'Fout opvragen te importeren rij (tijd) ';
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
v_tijd := SUBSTR (v_dummy, 1, 10);
v_errormsg := 'Fout opvragen te importeren rij (in / uit) ';
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
v_in_uit := SUBSTR (v_dummy, 1, 20);
v_errormsg :=
'Fout opvragen te importeren rij (temp) ';
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
v_temperatuur := SUBSTR (v_dummy, 1, 50);
v_errormsg :=
'Fout opvragen te importeren rij (opmerking) ';
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
v_opmerking := SUBSTR (v_dummy, 1, 4000);
v_errormsg :=
'Fout bij toevoegen regel aan tabel '
|| v_scancode
|| ' / '
|| v_datum || ' ' || v_tijd ;
IF v_ongeldig = 0
THEN
v_rownumb := v_rownumb + 1 ;
INSERT INTO inlo_imp_scan_haren (rownumb,
scancode,
datum,
tijd,
in_uit,
temperatuur,
opmerking,
ins_deel_key,
alg_ruimte_key,
actief)
VALUES (v_rownumb,
v_scancode,
v_datum,
v_tijd,
v_in_uit,
v_temperatuur,
v_opmerking,
v_ins_deel_key,
v_alg_ruimte_key_i,
0);
END IF;
END IF;
END;
END LOOP;
IF v_header_is_valid = 0
THEN
aaxx_imp_writelog (p_import_key,
'E',
v_aanduiding || 'Ongeldig importbestand',
'Toelichting: ... ');
v_ongeldig := 1;
END IF;
IF v_ongeldig = 0
THEN
COMMIT;
ELSE
ROLLBACK;
END IF;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
oracle_err_num := SQLCODE;
v_hint := v_errormsg;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_hint);
END inlo_import_scan_haren;
/
CREATE OR REPLACE PROCEDURE inlo_update_scan_haren (
p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
-- Overige velden:
v_scanregel VARCHAR2 (4000); -- VAST FORMAT: <timestamp (datum/tijd)>;<ruimte-key>;<wagen_key><ruimte_nr><wagen_nr>;<in/out>;<temp>;<opmerking>
CURSOR c
IS
SELECT i.rownumb, i.scancode, i.datum, i.tijd, i.in_uit, i.temperatuur, i.opmerking, i.ins_deel_key, i.alg_ruimte_key, i.opmerking_intern, r.alg_ruimte_nr
FROM inlo_imp_scan_haren i, alg_ruimte r
WHERE i.alg_ruimte_key = r.alg_ruimte_key
AND i.actief = 0 AND i.ins_deel_key IS NOT NULL AND i.alg_ruimte_key IS NOT NULL
ORDER BY 1 ;
BEGIN
-- Toelichting:
---- actief = 0 is nog niet verwerkt...(bij nieuwe import eerst te verwijderen)
---- actief = 1 is bij deze run verwerkt...
---- actief = 2 is bij voorgaande run verwerkt ....
UPDATE inlo_imp_scan_haren
SET actief = 2
WHERE actief = 1;
-- VERWERKING records => insert notitie op INS_DEEL
FOR rec IN c
LOOP
BEGIN
v_scanregel := 'Scanregel ' || TO_CHAR(rec.rownumb) || ';' || TO_CHAR(rec.datum,'DD-MM-YYYY') || ' ' || rec.tijd || ';' || rec.ins_deel_key || ';' || rec.alg_ruimte_key || ';' ||
rec.scancode || ';' || rec.alg_ruimte_nr || ';' || rec.in_uit || ';' || rec.temperatuur || ';' || rec.opmerking ;
INSERT INTO ins_deel_note (ins_deel_key, prs_perslid_key, ins_deel_note_omschrijving)
VALUES (rec.ins_deel_key,
4, -- facilitor
v_scanregel) ;
END;
END LOOP;
-- alle scanregels uit deze run op verwerkt zetten
UPDATE inlo_imp_scan_haren
SET actief = 1
WHERE actief = 0;
COMMIT;
END inlo_update_scan_haren;
/
CREATE OR REPLACE VIEW inlo_v_rap_scan_haren
(
ins_deel_key,
ins_deel_upper,
ins_deel_opmerking,
ins_deel_note_aanmaak, -- batch verwerkt door facilitor (datum/tijd import)
ins_deel_note_omschrijving,
scan_datum, -- tussen 1 en 2
scan_ruimte, -- tussen 5 en 6
in_uit, -- tussen 6 en 7
temperatuur, -- tussen 7 en 8
opmerking, -- vanaf 8
vervallen
)
AS
SELECT d.ins_deel_key,
d.ins_deel_upper,
d.ins_deel_opmerking,
n.ins_deel_note_aanmaak,
n.ins_deel_note_omschrijving,
TO_DATE
(
SUBSTR(n.ins_deel_note_omschrijving, REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 1)+1, REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 2)-REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 1)-1),
'DD-MM-YYYY HH24:MI'
)
scan_datum,
SUBSTR(n.ins_deel_note_omschrijving, REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 5)+1, REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 6)-REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 5)-1)
scan_ruimte,
SUBSTR(n.ins_deel_note_omschrijving, REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 6)+1, REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 7)-REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 6)-1)
in_uit,
SUBSTR(n.ins_deel_note_omschrijving, REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 7)+1, REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 8)-REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 7)-1)
temperatuur,
SUBSTR(n.ins_deel_note_omschrijving, REGEXP_INSTR(n.ins_deel_note_omschrijving,';', 1, 8)+1)
opmerking,
CASE WHEN d.ins_deel_vervaldatum IS NOT NULL AND ins_deel_vervaldatum < TRUNC(SYSDATE) THEN 'ja' ELSE 'nee' END
vervallen
FROM ins_deel_note n, ins_v_deel_gegevens d
WHERE n.ins_deel_key = d.ins_deel_key
AND instr(n.ins_deel_note_omschrijving, 'Scanregel')>0
AND d.ins_discipline_key = 2521 -- Transportwagens
;
-- View voor de koppeling met GoBright (vergaderschermen)
CREATE OR REPLACE VIEW inlo_v_res_schedule_gobright
AS
SELECT res_rsv_ruimte_omschrijving ActivityDescription,
rr.res_ruimte_nr RoomName,
TO_CHAR (rrr.res_rsv_ruimte_van, 'dd-mm-yyyy') FromDate,
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi') FromTime,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'dd-mm-yyyy') UntilDate,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi') UntilTime,
pf.prs_perslid_naam_full OrganizationDescription
FROM res_v_rsv_ruimte_2_alg_ruimte r2a,
alg_v_ruimte_gegevens rg,
aaxx_v_klantcode_gebouw kl,
prs_v_perslid_fullnames pf,
res_rsv_ruimte rrr,
res_ruimte rr
WHERE rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
AND r2a.alg_ruimte_key = rg.alg_ruimte_key
AND r2a.res_ruimte_key = rr.res_ruimte_key
AND rg.alg_gebouw_key = kl.alg_gebouw_key
AND kl.klantcode = '03616000' -- klant_exactcode van 'Gelrepark B.V. / Landmark'
AND r2a.res_alg_ruimte_verwijder IS NULL
AND TRUNC(rrr.res_rsv_ruimte_van) = TRUNC(SYSDATE) ;
-- bundel catering
-- Cateraar Albron Nederland BV voor klant COVESTRO
-- Cateraar Hutten Catering voor klant LANDMARK
CREATE OR REPLACE VIEW inlo_v_catering_kpn
(
res_rsv_ruimte_key,
res_srtactiviteit_soort,
res_rsv_artikel_key,
res_rsv_artikel_prijs,
res_rsv_artikel_levering,
alg_ruimte_key,
alg_locatie_omschrijving,
prs_bedrijf_key,
prs_kostenplaats_key,
bu_kostenplaats_key
)
AS
SELECT rrr.res_rsv_ruimte_key,
srt.res_srtactiviteit_soort, -- =0 is ruimte-reservering, 1 is roomservice
res_rsv_artikel_key,
res_rsv_artikel_prijs,
res_rsv_artikel_levering,
r.alg_ruimte_key,
(SELECT l.alg_locatie_omschrijving
FROM alg_v_onroerendgoed v, alg_gebouw g, alg_locatie l
WHERE v.alg_ruimte_key = r.alg_ruimte_key AND v.alg_gebouw_key = g.alg_gebouw_key AND g.alg_locatie_key = l.alg_locatie_key)
alg_locatie_omschrijving,
rdp.prs_bedrijf_key,
k.prs_kostenplaats_key,
fac.safe_to_number (aaxx_get_top_kpn_key (k.prs_kostenplaats_key))
bukpn
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
res_artikel ra,
res_disc_params rdp,
prs_kostenplaats k,
res_activiteit act,
res_srtactiviteit srt,
(SELECT rrr.res_rsv_ruimte_key,
CASE
WHEN rrr.alg_ruimte_key IS NULL
AND rrr.res_ruimte_opstel_key IS NOT NULL
THEN
(SELECT MAX (rar.alg_ruimte_key)
FROM res_v_ruimte_opstel_gegevens rog,
res_alg_ruimte rar
WHERE rog.res_ruimte_opstel_key =
rrr.res_ruimte_opstel_key
AND rog.res_ruimte_key = rar.res_ruimte_key
AND rar.res_alg_ruimte_verwijder IS NULL)
WHEN rrr.alg_ruimte_key IS NOT NULL
AND rrr.res_ruimte_opstel_key IS NULL
THEN
(SELECT avrg.alg_ruimte_key
FROM alg_v_ruimte_gegevens avrg
WHERE avrg.alg_ruimte_key = rrr.alg_ruimte_key)
ELSE
NULL
END
AS alg_ruimte_key
FROM res_rsv_ruimte rrr) r
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_key = r.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = rdp.res_ins_discipline_key
AND rdp.prs_bedrijf_key IS NOT NULL
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_status_bo_key = 5
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_activiteit_key = act.res_activiteit_key
AND act.res_srtactiviteit_key = srt.res_srtactiviteit_key;
CREATE OR REPLACE VIEW inlo_v_export_bundel_catering
(
result,
result_order
)
AS
SELECT res_rsv_artikel_key || ';' || res_rsv_artikel_prijs result,
res_rsv_artikel_key result_order
FROM inlo_v_catering_kpn;
CREATE OR REPLACE PROCEDURE inlo_export_bundel_catering (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
CURSOR c_bedr
IS
SELECT prs_bedrijf_key
FROM res_disc_params
WHERE prs_bedrijf_key IS NOT NULL
GROUP BY prs_bedrijf_key;
-- Deze is voor LANDMARK - Per Cateraar, per BU-kp, 1 gebundelde opdracht
CURSOR c_bu (lev_date DATE, p_bedrijf_key NUMBER)
IS
SELECT bu_kostenplaats_key, sum(res_rsv_artikel_prijs) prijs
FROM inlo_v_catering_kpn
WHERE res_rsv_artikel_levering < lev_date
AND prs_bedrijf_key = p_bedrijf_key
GROUP BY bu_kostenplaats_key;
-- Deze is voor COVESTRO - Per Cateraar, per kostenplaats, locatie, 1 gebundelde opdracht
CURSOR c_kp (lev_date DATE, p_bedrijf_key NUMBER)
IS
SELECT prs_kostenplaats_key, alg_locatie_omschrijving, sum(res_rsv_artikel_prijs) prijs, min(alg_ruimte_key) alg_ruimte_key
FROM inlo_v_catering_kpn
WHERE res_rsv_artikel_levering < lev_date
AND prs_bedrijf_key = p_bedrijf_key
GROUP BY prs_kostenplaats_key, alg_locatie_omschrijving;
c_catmld_uitvoertijd mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE := MLD_T_UITVOERTIJD(2, 'D');
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_laatste_export DATE;
v_mld_melding_key NUMBER;
v_mld_opdr_key NUMBER;
v_prs_bedrijf_key NUMBER;
v_prs_dienst_key NUMBER;
v_alg_gebouw_key NUMBER;
v_alg_locatie_key NUMBER;
v_mld_opdr_bedrijfopdr_volgnr NUMBER;
v_aanvrager NUMBER;
v_mld_workorder_key NUMBER;
v_mld_stdmelding_key NUMBER;
v_date DATE;
v_month VARCHAR2(30);
v_count NUMBER;
BEGIN
-- Facilitor
v_aanvrager := 4;
-- key van opdrachttype opdracht
v_mld_workorder_key := 581;
v_errormsg := 'Bepaal einddatum';
-- wat is de eerste dag van de huidige maand
v_date := TO_DATE (TO_CHAR (SYSDATE, 'yyyymm') || '01', 'yyyymmdd');
v_month := REPLACE(TO_CHAR (v_date-1, 'month-yyyy', 'NLS_DATE_LANGUAGE = ''dutch'''), ' ', '');
SELECT COUNT (mld_opdr_key)
INTO v_count
FROM mld_opdr
WHERE mld_opdr_omschrijving = 'Cateringreserveringen maand: ' || v_month;
IF v_count > 0
THEN
fac.writelog (
p_applname,
'E',
'Catering export is al eerder uitgevoerd.',
'Controleer opdrachten met omschrijving: '
|| 'Cateringreserveringen maand: ' || v_month);
ELSE
FOR rec1 IN c_bedr
LOOP
BEGIN
FOR rec2 IN c_bu (v_date, rec1.prs_bedrijf_key)
LOOP
BEGIN
v_alg_gebouw_key := 0 ;
-- Cateraar Hutten Catering voor klant LANDMARK
IF rec1.prs_bedrijf_key = 25102
THEN
-- stdmelding key voor recharge
v_mld_stdmelding_key := 5761;
-- Bepalen laagste gebouw_key LANDMARK waar we de catering op mogen boeken via exactcode Landmark (= Gelrepark)
SELECT MIN (g.alg_gebouw_key)
INTO v_alg_gebouw_key
FROM aaxx_v_klantcode_gebouw v, alg_gebouw g
WHERE v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_gebouw_verwijder IS NULL
AND ( g.alg_gebouw_vervaldatum IS NULL
OR ( g.alg_gebouw_vervaldatum IS NOT NULL
AND TRUNC (g.alg_gebouw_vervaldatum) <= TRUNC (SYSDATE)))
AND v.klantcode = '03616000' ; -- exactcode Landmark - Gelreprark BV
SELECT g.alg_locatie_key
INTO v_alg_locatie_key
FROM alg_gebouw g
WHERE g.alg_gebouw_key = v_alg_gebouw_key ;
END IF;
IF rec2.bu_kostenplaats_key IS NOT NULL AND v_alg_gebouw_key <> 0
THEN
-- controleer of ik een melding heb op deze bu-kpn
BEGIN
v_errormsg := 'Opzoeken catering melding';
SELECT mld_melding_key
INTO v_mld_melding_key
FROM mld_melding
WHERE prs_kostenplaats_key = rec2.bu_kostenplaats_key
AND mld_alg_locatie_key = v_alg_locatie_key
AND mld_alg_onroerendgoed_keys = v_alg_gebouw_key
AND mld_stdmelding_key = v_mld_stdmelding_key
AND v_date BETWEEN mld_melding_datum
AND mld_melding_einddatum + 1;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
-- geen melding voor deze locatie gevonden. Dan maken we er maar een aan.
v_errormsg := 'Aanmaken catering melding';
BEGIN
INSERT INTO mld_melding (mld_melding_omschrijving,
prs_perslid_key,
prs_kostenplaats_key,
mld_stdmelding_key,
mld_alg_locatie_key,
mld_alg_onroerendgoed_keys,
mld_melding_einddatum,
mld_melding_datum,
mld_melding_t_uitvoertijd,
mld_meldbron_key,
mld_melding_module,
mld_melding_spoed)
VALUES ('Catering factuur boekingen',
v_aanvrager,
rec2.bu_kostenplaats_key,
v_mld_stdmelding_key,
v_alg_locatie_key,
v_alg_gebouw_key,
TO_DATE (TO_CHAR (v_date, 'YYYY') || '1231',
'YYYYMMDD'),
TO_DATE (TO_CHAR (v_date, 'YYYY') || '0101',
'YYYYMMDD'),
c_catmld_uitvoertijd,
5,
'MLD',
3)
RETURNING mld_melding_key
INTO v_mld_melding_key;
BEGIN
mld.setmeldingstatus (v_mld_melding_key, 2, v_aanvrager);
END;
BEGIN
mld.setmeldingstatus (v_mld_melding_key, 4, v_aanvrager);
END;
UPDATE mld_melding
SET mld_melding_behandelaar_key = v_aanvrager
WHERE mld_melding_key = v_mld_melding_key;
END;
END;
-- nu gaan we de opdracht aanmaken
BEGIN
v_mld_opdr_bedrijfopdr_volgnr :=
mld.bepaalopdrmeldingvolgnr (v_mld_melding_key);
v_errormsg :=
'Maak opdracht aan om factuur van cateraar te matchen';
-- maak opdracht aan om cateringfactuur van leverancier te matchen
INSERT INTO mld_opdr (mld_melding_key,
prs_kostenplaats_key,
mld_statusopdr_key,
mld_typeopdr_key,
prs_perslid_key,
mld_uitvoerende_keys,
mld_opdr_datumbegin,
mld_opdr_einddatum,
mld_opdr_module,
mld_opdr_omschrijving,
mld_opdr_materiaal,
mld_opdr_kosten,
mld_opdr_bedrijfopdr_volgnr)
VALUES ( v_mld_melding_key,
rec2.bu_kostenplaats_key,
5, -- uitgegeven
v_mld_workorder_key,
v_aanvrager,
rec1.prs_bedrijf_key,
v_date - 1,
fac.datumtijdplusuitvoertijd (SYSDATE, 1, 'DAGEN'),
'MLD',
'Cateringreserveringen export-maand: ' || v_month,
rec2.prijs,
rec2.prijs,
v_mld_opdr_bedrijfopdr_volgnr)
RETURNING mld_opdr_key INTO v_mld_opdr_key;
v_errormsg := 'Update melding status';
mld.updatemeldingstatus (v_mld_melding_key, 0, v_aanvrager); -- Facilitor
-- meld de opdracht af
MLD.setopdrachtstatus (v_mld_opdr_key, 6, v_aanvrager);
-- en zet hem nog op afgerond
MLD.setopdrachtstatus (v_mld_opdr_key, 9, v_aanvrager);
v_errormsg := 'Voeg regels toe aan mapping tabel';
INSERT INTO aaxx_bundel_catering_ref (mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, res_rsv_artikel_verwerkt)
SELECT v_mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, v_date
FROM inlo_v_catering_kpn c
WHERE res_rsv_artikel_levering < v_date
AND COALESCE(c.bu_kostenplaats_key, -1) = COALESCE(rec2.bu_kostenplaats_key, -1)
AND c.prs_bedrijf_key = rec1.prs_bedrijf_key
;
v_errormsg := 'Pas de status van de artikelen aan ' || v_mld_opdr_key;
UPDATE res_rsv_artikel rra
SET res_rsv_artikel_verwerkt = SYSDATE,
res_status_bo_key = 6
WHERE EXISTS
(SELECT mld_opdr_key
FROM aaxx_bundel_catering_ref bc
WHERE bc.mld_opdr_key = v_mld_opdr_key
AND bc.res_rsv_artikel_key = rra.res_rsv_artikel_key);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', v_errormsg, '');
END;
ELSE
fac.writelog (p_applname, 'E', 'Een bedrag van: ' || rec2.prijs || ' euro kan niet aan een kostenplaats gekoppeld worden!', '');
END IF;
END;
END LOOP;
-- inpassen COVESTRO
FOR rec3 IN c_kp (v_date, rec1.prs_bedrijf_key)
LOOP
BEGIN
v_alg_gebouw_key := 0 ;
-- Cateraar Albron Nederland BV voor klant COVESTRO
IF rec1.prs_bedrijf_key = 23187
THEN
-- stdmelding key voor recharge
v_mld_stdmelding_key := 5762 ;
-- Bepalen gebouw_key COVESTRO waar we de catering op mogen boeken
SELECT v.alg_gebouw_key
INTO v_alg_gebouw_key
FROM alg_v_onroerendgoed v
WHERE v.alg_ruimte_key = rec3.alg_ruimte_key ;
SELECT g.alg_locatie_key
INTO v_alg_locatie_key
FROM alg_gebouw g
WHERE g.alg_gebouw_key = v_alg_gebouw_key ;
END IF;
IF rec3.prs_kostenplaats_key IS NOT NULL AND v_alg_gebouw_key <> 0
THEN
-- controleer of ik een melding heb op deze kpn
BEGIN
v_errormsg := 'Opzoeken catering melding';
SELECT mld_melding_key
INTO v_mld_melding_key
FROM mld_melding
WHERE prs_kostenplaats_key = rec3.prs_kostenplaats_key
AND mld_alg_locatie_key = v_alg_locatie_key
AND mld_alg_onroerendgoed_keys = v_alg_gebouw_key
AND mld_stdmelding_key = v_mld_stdmelding_key
AND v_date BETWEEN mld_melding_datum
AND mld_melding_einddatum + 1;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
-- geen melding voor deze locatie gevonden. Dan maken we er maar een aan.
v_errormsg := 'Aanmaken catering melding';
BEGIN
INSERT INTO mld_melding (mld_melding_omschrijving,
prs_perslid_key,
prs_kostenplaats_key,
mld_stdmelding_key,
mld_alg_locatie_key,
mld_alg_onroerendgoed_keys,
mld_melding_einddatum,
mld_melding_datum,
mld_melding_t_uitvoertijd,
mld_meldbron_key,
mld_melding_module,
mld_melding_spoed)
VALUES ('Catering factuur boekingen',
v_aanvrager,
rec3.prs_kostenplaats_key,
v_mld_stdmelding_key,
v_alg_locatie_key,
v_alg_gebouw_key,
TO_DATE (TO_CHAR (v_date, 'YYYY') || '1231',
'YYYYMMDD'),
TO_DATE (TO_CHAR (v_date, 'YYYY') || '0101',
'YYYYMMDD'),
c_catmld_uitvoertijd,
5,
'MLD',
3)
RETURNING mld_melding_key
INTO v_mld_melding_key;
BEGIN
mld.setmeldingstatus (v_mld_melding_key, 2, v_aanvrager);
END;
BEGIN
mld.setmeldingstatus (v_mld_melding_key, 4, v_aanvrager);
END;
UPDATE mld_melding
SET mld_melding_behandelaar_key = v_aanvrager
WHERE mld_melding_key = v_mld_melding_key;
END;
END;
-- nu gaan we de opdracht aanmaken
BEGIN
v_mld_opdr_bedrijfopdr_volgnr :=
mld.bepaalopdrmeldingvolgnr (v_mld_melding_key);
v_errormsg :=
'Maak opdracht aan om factuur van cateraar te matchen';
-- maak opdracht aan om cateringfactuur van leverancier te matchen
INSERT INTO mld_opdr (mld_melding_key,
prs_kostenplaats_key,
mld_statusopdr_key,
mld_typeopdr_key,
prs_perslid_key,
mld_uitvoerende_keys,
mld_opdr_datumbegin,
mld_opdr_einddatum,
mld_opdr_module,
mld_opdr_omschrijving,
mld_opdr_materiaal,
mld_opdr_kosten,
mld_opdr_bedrijfopdr_volgnr)
VALUES ( v_mld_melding_key,
rec3.prs_kostenplaats_key,
5, -- uitgegeven
v_mld_workorder_key,
v_aanvrager,
rec1.prs_bedrijf_key,
v_date - 1,
fac.datumtijdplusuitvoertijd (SYSDATE, 1, 'DAGEN'),
'MLD',
'Cateringreserveringen export-maand: ' || v_month,
rec3.prijs,
rec3.prijs,
v_mld_opdr_bedrijfopdr_volgnr)
RETURNING mld_opdr_key INTO v_mld_opdr_key;
v_errormsg := 'Update melding status';
mld.updatemeldingstatus (v_mld_melding_key, 0, v_aanvrager); -- Facilitor
-- meld de opdracht af
MLD.setopdrachtstatus (v_mld_opdr_key, 6, v_aanvrager);
-- en zet hem nog op afgerond
MLD.setopdrachtstatus (v_mld_opdr_key, 9, v_aanvrager);
v_errormsg := 'Voeg regels toe aan mapping tabel';
INSERT INTO aaxx_bundel_catering_ref (mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, res_rsv_artikel_verwerkt)
SELECT v_mld_opdr_key, res_rsv_artikel_key, res_rsv_artikel_prijs, v_date
FROM inlo_v_catering_kpn c
WHERE res_rsv_artikel_levering < v_date
AND COALESCE(c.prs_kostenplaats_key, -1) = COALESCE(rec3.prs_kostenplaats_key, -1)
AND c.prs_bedrijf_key = rec1.prs_bedrijf_key
;
v_errormsg := 'Pas de status van de artikelen aan ' || v_mld_opdr_key;
UPDATE res_rsv_artikel rra
SET res_rsv_artikel_verwerkt = SYSDATE,
res_status_bo_key = 6
WHERE EXISTS
(SELECT mld_opdr_key
FROM aaxx_bundel_catering_ref bc
WHERE bc.mld_opdr_key = v_mld_opdr_key
AND bc.res_rsv_artikel_key = rra.res_rsv_artikel_key);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', v_errormsg, '');
END;
ELSE
fac.writelog (p_applname, 'E', 'Een bedrag van: ' || rec3.prijs || ' euro kan niet aan een kostenplaats gekoppeld worden!', '');
END IF;
END;
END LOOP;
END;
END LOOP;
END IF;
COMMIT;
END;
/
CREATE OR REPLACE VIEW inlo_v_rap_catering_inkoop
(
fclt_f_exportjob,
fclt_f_bedrijf,
afleveradres,
fclt_f_afleverdatum,
tijdstip,
bestelnummer,
fclt_f_artikelnummer,
artikelomschrijving,
interne_artikelprijs,
aantal,
fclt_f_besteller,
afdeling,
bukp
)
AS
SELECT TO_CHAR (rra.res_rsv_artikel_verwerkt, 'dd-mm-yyyy'),
prs_bedrijf_naam,
alg_locatie_code
|| '-'
|| alg_gebouw_code
|| '-'
|| alg_verdieping_code
|| '-'
|| alg_ruimte_nr
|| ' ('
|| alg_ruimte_omschrijving
|| ')'
afleveradres,
TO_CHAR (rra.res_rsv_artikel_levering, 'dd-mm-yyyy')
datum,
TO_CHAR (rra.res_rsv_artikel_levering, 'hh24:mi')
tijd,
res_reservering_key || '/' || res_rsv_ruimte_volgnr
bestelnummer,
res_artikel_nr
artikelnummer,
res_artikel_omschrijving
artikelomschrijving,
ROUND ((rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal),
5)
interneprijs,
rra.res_rsv_artikel_aantal
aantal,
pf.prs_perslid_naam_full
besteller,
k.prs_kostenplaats_nr || '-' || k.prs_kostenplaats_omschrijving,
aaxx_get_top_kpn_nr(k.prs_kostenplaats_key)
FROM res_rsv_ruimte rrr,
aaxx_bundel_catering_ref bu,
prs_bedrijf b,
res_rsv_artikel rra,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_kostenplaats k,
res_artikel ra,
mld_opdr o,
( SELECT COALESCE (MAX (ir2a.alg_ruimte_key), irrr.alg_ruimte_key)
alg_ruimte_key,
irrr.res_rsv_ruimte_key
FROM res_rsv_ruimte irrr, res_v_rsv_ruimte_2_alg_ruimte ir2a
WHERE irrr.res_rsv_ruimte_key = ir2a.res_rsv_ruimte_key(+)
GROUP BY irrr.res_rsv_ruimte_key, irrr.alg_ruimte_key) r2a
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key
AND r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND r2a.alg_ruimte_key = r.alg_ruimte_key
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 rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND rra.res_rsv_artikel_verwijder IS NULL
AND rra.res_status_bo_key = 6
AND rra.res_artikel_key = ra.res_artikel_key
AND rra.res_rsv_artikel_levering >
TO_DATE ('20110901', 'yyyymmdd')
AND rra.res_rsv_artikel_key = bu.res_rsv_artikel_key(+)
AND bu.mld_opdr_key = o.mld_opdr_key(+)
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+);
-- NEN2767 - Rapportage om foto's toe te voegen aan de gebreksmeldingen
---- levert commandlines voor batfile op die geplaatst/uitgevoerd kan worden in lokale map met de foto's en UploadFotoBijGebrek.js
---- in url de kenmerk_key van de foldermap meenemen (voor INLO is dit 4616)
CREATE OR REPLACE VIEW inlo_v_upload_foto_script
AS
SELECT v.mld_melding_key,
v.alg_gebouw_code,
v.alg_gebouw_naam,
v.mld_melding_datum,
v.mld_statuses_omschrijving,
'cscript //E:jscript "UploadFotoBijGebrek_INLO.js" "https://inlo.facilitor.nl/api2" 4616 '
|| v.mld_melding_key
|| ' "fotos/'
|| v.foto
|| '"' url
FROM (SELECT aogg.alg_gebouw_code,
aogg.alg_gebouw_naam,
m.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
1 volgorde,
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 1) foto
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'FOTONAAM'
UNION ALL
SELECT aogg.alg_gebouw_code,
aogg.alg_gebouw_naam,
m.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
2,
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 2)
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'FOTONAAM'
UNION ALL
SELECT aogg.alg_gebouw_code,
aogg.alg_gebouw_naam,
m.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
3,
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 3)
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'FOTONAAM'
UNION ALL
SELECT aogg.alg_gebouw_code,
aogg.alg_gebouw_naam,
m.mld_melding_key,
m.mld_melding_datum,
s.mld_statuses_omschrijving,
4,
aaxx.imp_getfield_nr (mld_kenmerkmelding_waarde, ';', 4)
FROM mld_kenmerkmelding km, mld_melding m, alg_v_onroerendgoed_gegevens aogg, mld_kenmerk k, mld_srtkenmerk sk, mld_statuses s
WHERE aogg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys
AND m.mld_melding_status = s.mld_statuses_key
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'FOTONAAM') v
WHERE v.foto IS NOT NULL
-- moet fotobestand zijn:
AND REGEXP_INSTR(UPPER(v.foto),'.JPEG|.JPG|.PNG|.GIF|.BMP',1,1)>0 ;
-- NEN2767 - Gestylde rapportage van de gebreken inclusief gebreksfoto
CREATE OR REPLACE VIEW inlo_v_rap_conditiemetingen
(
MLD_MELDING_KEY,
LOCATIE_CODE,
LOCATIE_NAAM,
GEBOUW_CODE,
GEBOUW_NAAM,
GEBOUW_GROEP,
HOOFDGROEP,
GROEP,
OBJECTSOORT,
IDENTIFICATIE,
GEBREKNR,
DATUM_TIJD,
DATUM,
INSPECTEUR,
STATUS,
GEBREK,
OMSCHRIJVING,
ERNST,
OMVANG,
INTENSITEIT,
VEILIGHEID_GEZONDHEID,
CULTUURHISTORISCHE_WAARDE,
GEBRUIK_EN_BEDRIJFSPROCES,
TECHNISCHE_VERVOLGSCHADE,
TOENAME_KLACHTENONDERHOUD,
BELEVING_ESTHETICA,
FOTO,
GEADVISEERD_STARTJAAR,
DATUM_GEREED_INSPECTEUR,
KOSTEN,
WERKZAAMHEDEN, -- omschrijving
CONDITIE,
PRIORITEIT
)
AS
SELECT m.mld_melding_key,
l.alg_locatie_code
locatie_code,
l.alg_locatie_omschrijving
locatie_naam,
aog.alg_gebouw_code
gebouw_code,
aog.alg_gebouw_naam
gebouw_naam,
aog.alg_gebouw_groep
gebouw_groep,
id.ins_discipline_omschrijving
hoofdgroep,
isg.ins_srtgroep_omschrijving
groep,
isd.ins_srtdeel_omschrijving
|| ' ('
|| isd.ins_srtdeel_code
|| ')'
objectsoort,
d.ins_deel_omschrijving
identificatie,
m.mld_melding_key
gebreknummer,
m.mld_melding_datum
datum_tijd,
TO_CHAR (mld_melding_datum, 'DD-MM-YYYY')
datum,
pf.prs_perslid_naam_full
inspecteur,
s.mld_statuses_omschrijving
status,
std.mld_stdmelding_omschrijving
gebrek,
m.mld_melding_omschrijving
omschrijving,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ERNST'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
ernst,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'OMVANG'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
omvang,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'INTENSITEIT'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
intensiteit,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT1'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
veiligheid_gezondheid,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT2'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
cultuurhistorische_waarde,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT3'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
gebruik_en_bedrijfsproces,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT4'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
technische_vervolgschade,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT5'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
toename_klachtenonderhoud,
(SELECT fac_usrdata_omschr
FROM mld_kenmerkmelding mk,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_kenmerkdomein kd,
fac_usrtab ut,
fac_usrdata ud
WHERE sk.mld_srtkenmerk_code = 'ASPECT6'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND k.mld_kenmerk_key = mk.mld_kenmerk_key
AND sk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
AND ut.fac_usrtab_key = kd.fac_usrtab_key
AND ud.fac_usrtab_key = ut.fac_usrtab_key
AND TO_CHAR (fac_usrdata_key) = mld_kenmerkmelding_waarde
AND mk.mld_melding_key = m.mld_melding_key)
beleving_esthetica,
(SELECT k.mld_kenmerk_key
FROM mld_kenmerk k, mld_srtkenmerk sk
WHERE sk.mld_srtkenmerk_code = 'FOTO'
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key)
foto,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'GEADVISEERDSTARTJAAR')
geadviseerd_startjaar,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'DATUMGEREEDINSPECTEUR')
datum_gereed_inspecteur,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k, mld_srtkenmerk sk
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_code = 'KOSTEN')
kosten,
mld_melding_omschrijving,
d.ins_deel_mjb_score1,
d.ins_deel_mjb_score2
FROM mld_melding m,
mld_melding_object mo,
ins_deel d,
ins_srtdeel isd,
ins_srtgroep isg,
ins_discipline id,
alg_v_allonrgoed_gegevens aog,
alg_locatie l,
mld_statuses s,
prs_v_perslid_fullnames_all pf,
mld_stdmelding std
WHERE m.mld_melding_key = mo.mld_melding_key
AND d.ins_deel_key = mo.ins_deel_key
AND d.ins_srtdeel_key = isd.ins_srtdeel_key
AND isd.ins_srtgroep_key = isg.ins_srtgroep_key
AND isg.ins_discipline_key = id.ins_discipline_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
AND l.alg_locatie_key = aog.alg_locatie_key
AND s.mld_statuses_key = m.mld_melding_status
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key;
CREATE OR REPLACE PROCEDURE inlo_daily
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
inlo_select_klanten_wp ('KLANTEN_WP', SYSDATE);
inlo_select_res2_lm ('RES2', SYSDATE);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('DAILY', 'E', 'Proces afgebroken!', v_errormsg);
END inlo_daily;
/
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile