4174 lines
181 KiB
SQL
4174 lines
181 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific sql statements for the FACILITOR database
|
||
-- Voor dbuser invullen: - indien script voor 1 klant is: 'AADS' (de klantcode, zoals vermeld in fac_version_cust)
|
||
-- - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group)
|
||
-- - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM'
|
||
-- Ook als het script gedraaid wordt voor de verkeerde cust wordt er een logfile gemaakt.
|
||
-- (dit in tegenstelling tot sample_xxxx.sql)
|
||
|
||
DEFINE thisfile = 'PIVP.SQL'
|
||
DEFINE dbuser = 'PIVP'
|
||
|
||
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 ------
|
||
|
||
|
||
CREATE OR REPLACE PACKAGE PIVP
|
||
AS
|
||
|
||
PROCEDURE add_xml_row (p_bestand IN VARCHAR2,
|
||
p_regel IN VARCHAR2);
|
||
|
||
PROCEDURE add_xml_element (p_bestand IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2);
|
||
|
||
|
||
PROCEDURE afmelden_reserveringen;
|
||
|
||
PROCEDURE inactivate_prs;
|
||
|
||
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PACKAGE BODY PIVP
|
||
AS
|
||
|
||
PROCEDURE add_xml_row (
|
||
p_bestand IN VARCHAR2,
|
||
p_regel IN VARCHAR2)
|
||
AS
|
||
v_index NUMBER;
|
||
BEGIN
|
||
SELECT COALESCE( MAX(fac_rapport_volgnr), 0) + 1
|
||
INTO v_index
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node = p_bestand;
|
||
|
||
INSERT INTO fac_rapport (
|
||
fac_rapport_node,
|
||
fac_rapport_volgnr,
|
||
fac_rapport_regel)
|
||
VALUES (p_bestand,
|
||
v_index,
|
||
p_regel);
|
||
END;
|
||
|
||
PROCEDURE add_xml_element (
|
||
p_bestand IN VARCHAR2,
|
||
p_tag IN VARCHAR2,
|
||
p_value IN VARCHAR2)
|
||
AS
|
||
BEGIN
|
||
pivp.add_xml_row(p_bestand,
|
||
'<' || p_tag || '>'
|
||
|| xml.char_to_html(p_value)
|
||
|| '</' || p_tag || '>');
|
||
END;
|
||
|
||
PROCEDURE afmelden_reserveringen
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
|
||
CURSOR res_ruimte IS
|
||
SELECT res.res_rsv_ruimte_key res_key
|
||
FROM res_rsv_ruimte res
|
||
WHERE res.res_status_bo_key = 2 --- geregistreerd, nog niet verwerkt
|
||
AND (res.res_status_fo_key = 2
|
||
OR (res.res_rsv_ruimte_verwijder IS NOT NULL
|
||
AND res.res_status_fo_key=1 AND TRUNC(res.res_rsv_ruimte_van)-TRUNC(res.res_rsv_ruimte_verwijder)<3))
|
||
AND res.RES_RSV_RUIMTE_EXTERNSYNCDATE IS NULL
|
||
AND TRUNC(res.res_rsv_ruimte_van)< TRUNC(SYSDATE);
|
||
|
||
|
||
BEGIN
|
||
FOR rec IN res_ruimte
|
||
LOOP
|
||
v_errormsg := 'Status update reservering niet gelukt';
|
||
v_errorhint := 'Res_rsv_ruimte_key: ' || TO_CHAR (rec.res_key);
|
||
|
||
UPDATE res_rsv_ruimte
|
||
SET res_status_bo_key = 5
|
||
WHERE res_rsv_ruimte_key = rec.res_key;
|
||
|
||
fac.trackaction ('RESAFM',
|
||
rec.res_key,
|
||
3,
|
||
SYSDATE,
|
||
'Status reservering naar Afgemeld');
|
||
END LOOP;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'OTHERS (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
|
||
fac.imp_writelog ('afm_res',
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
|
||
|
||
|
||
PROCEDURE inactivate_prs
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
v_perslid_naam VARCHAR (100);
|
||
v_perslid_nr VARCHAR (30);
|
||
|
||
--- Als een persoon 12 maanden niet meer heeft ingelogd verwijderen we deze
|
||
CURSOR prs_del IS
|
||
SELECT p.prs_perslid_key, p.prs_perslid_oslogin
|
||
FROM prs_v_aanwezigperslid p
|
||
WHERE p.prs_perslid_login <
|
||
TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')
|
||
GROUP BY p.prs_perslid_key, p.prs_perslid_oslogin;
|
||
BEGIN
|
||
FOR rec IN prs_del
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Verwijderen van de persoon is NIET gelukt';
|
||
v_errorhint :=
|
||
'Heeft de persoon met prs_perslid_key '
|
||
|| TO_CHAR (rec.prs_perslid_key)
|
||
|| ' historie?';
|
||
|
||
SELECT prs_perslid_naam_full, prs_perslid_nr
|
||
INTO v_perslid_naam, v_perslid_nr
|
||
FROM prs_perslid p, prs_v_perslid_fullnames pf
|
||
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
-- *** Budgethouderschap ***
|
||
-- Voor hoeveel kostenplaatsen is deze persoon budgethouder?
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_kostenplaats
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
IF (v_count > 0)
|
||
THEN
|
||
UPDATE prs_kostenplaats
|
||
SET prs_perslid_key = NULL
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
fac.writelog (
|
||
'inact_prs',
|
||
'I',
|
||
'Budgethouderschap van te verwijderen persoon ('
|
||
|| v_count
|
||
|| ' stuks) vervallen.',
|
||
'Naam/persoonsnr: '
|
||
|| v_perslid_naam
|
||
|| '/'
|
||
|| v_perslid_nr);
|
||
END IF;
|
||
|
||
-- *** Vervangers ***
|
||
-- koppelingen met vervangers dienen ook verwijderd te worden
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_collega
|
||
WHERE prs_perslid_key = rec.prs_perslid_key
|
||
OR prs_perslid_key_alt = rec.prs_perslid_key;
|
||
|
||
IF (v_count > 0)
|
||
THEN
|
||
DELETE FROM prs_collega
|
||
WHERE prs_perslid_key = rec.prs_perslid_key
|
||
OR prs_perslid_key_alt = rec.prs_perslid_key;
|
||
|
||
fac.writelog (
|
||
'inact_prs',
|
||
'I',
|
||
'Te verwijderen persoon heeft vervanger(s). Koppeling(en) verwijderd.',
|
||
'Naam/persoonsnr: '
|
||
|| v_perslid_naam
|
||
|| '/'
|
||
|| v_perslid_nr);
|
||
END IF;
|
||
|
||
-- *** werkplekken ***
|
||
|
||
DELETE prs_perslidwerkplek
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
-- *** Verplichtingen ***
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_v_verplichting_refcheck vp
|
||
WHERE vp.prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
-- Persoon heeft geen enkele (actuele of historische) verplichting
|
||
v_errorhint :=
|
||
'Verwijderen van persoon met key '
|
||
|| TO_CHAR (rec.prs_perslid_key);
|
||
|
||
-- Referenties in tabellen naar deze pers_perslid_key moeten eerst verwijderd worden.
|
||
-- Door cascade verwijderen van deze record onstaan audits op die tabellen die audit tracking hebben.
|
||
-- Daardoor onstaan "ORxA-04091:table VLKC.FAC_AUDIT is mutating, trigger/function may not see it" foutmeldingen
|
||
-- op de delete van de prs_perslid_key uit de prs_perslid tabel.
|
||
-- De tabellen prs_kostenplaats, prs_kostenplaatsgrp, prs_perslidkostenplaats en fac_gebruikersgroep hebben een prs_perslid_key referentie en audit tracking.
|
||
DELETE FROM prs_kostenplaats
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
DELETE FROM prs_kostenplaatsgrp
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
DELETE FROM prs_perslidkostenplaats
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
DELETE FROM fac_gebruikersgroep
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
DELETE FROM prs_perslid
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
fac.writelog (
|
||
'inact_prs',
|
||
'I',
|
||
'Persoon verwijderd.',
|
||
'Achternaam/persoonsnr: '
|
||
|| v_perslid_naam
|
||
|| '/'
|
||
|| v_perslid_nr);
|
||
ELSE
|
||
-- Controleer of er ACTUELE verplichtingen zijn
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_v_verplichting_keys vp
|
||
WHERE vp.prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
IF v_count > 0
|
||
THEN
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_naam =
|
||
SUBSTR ('INACTIEF:' || prs_perslid_naam,
|
||
1,
|
||
60),
|
||
prs_perslid_oslogin = NULL,
|
||
prs_perslid_oslogin2 = NULL
|
||
WHERE prs_perslid_key = rec.prs_perslid_key
|
||
AND prs_perslid_naam NOT LIKE 'INACTIEF:%';
|
||
|
||
fac.writelog (
|
||
'inact_prs',
|
||
'I',
|
||
'Persoon als INACTIEF gemarkeerd of was al INACTIEF gemarkeerd.',
|
||
'Achternaam/persoonsnr: '
|
||
|| v_perslid_naam
|
||
|| '/'
|
||
|| v_perslid_nr);
|
||
ELSE
|
||
BEGIN
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_verwijder = SYSDATE
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
fac.writelog (
|
||
'inact_prs',
|
||
'I',
|
||
'Persoon ge?ctiveerd.',
|
||
'Achternaam/persoonsnr: '
|
||
|| v_perslid_naam
|
||
|| '/'
|
||
|| v_perslid_nr);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
-- Kennelijk heeft de persoon toch ernstige verplichtingen
|
||
v_errorhint :=
|
||
'Persoon heeft nog (max. '
|
||
|| TO_CHAR (v_count)
|
||
|| ') verplichtingen. Naam/persoonsnr: '
|
||
|| v_perslid_naam
|
||
|| '/'
|
||
|| v_perslid_nr;
|
||
fac.writelog (
|
||
'inact_prs',
|
||
'I',
|
||
'Inactiveren persoon is niet gelukt',
|
||
v_errorhint);
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'(ORACLE error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.writelog ('inact_prs',
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
|
||
END;
|
||
/
|
||
|
||
--de daily task draait elke ochtend om 5 uur.
|
||
CREATE OR REPLACE PROCEDURE pivp_daily
|
||
AS
|
||
BEGIN
|
||
-- inactiveren personen die 12 maanden niet hebben ingelogd
|
||
pivp.inactivate_prs ();
|
||
|
||
-- zaalreservereing afmelden ook die verwijderd zijn
|
||
pivp.afmelden_reserveringen;
|
||
END;
|
||
/
|
||
|
||
|
||
-- Import vanuit Strukton
|
||
CREATE OR REPLACE PROCEDURE pivp_import_opdrstat_strukton (p_import_key IN NUMBER)
|
||
AS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (1000) := '';
|
||
header_is_valid NUMBER := 0;
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_imp NUMBER (10) := 0;
|
||
v_ongeldig NUMBER (1) := 0;
|
||
-- De importvelden
|
||
v_mld_opdr_key_tekst VARCHAR2 (100);
|
||
v_extern_nummer VARCHAR2 (100);
|
||
v_status_code VARCHAR2 (100);
|
||
v_status NUMBER (10);
|
||
v_datumtijd_tekst VARCHAR2 (100);
|
||
v_datumtijd DATE;
|
||
v_status_tekst VARCHAR2 (100);
|
||
v_opmerking VARCHAR2 (4000);
|
||
--v_totaal_tekst VARCHAR2 (100);
|
||
--v_totaal NUMBER (8,2);
|
||
--v_correctie_tekst VARCHAR2 (100);
|
||
--v_correctie NUMBER (8,2);
|
||
-- Overige velden
|
||
v_mld_opdr_key NUMBER (10);
|
||
v_mld_opdr_opmerking VARCHAR2 (4000);
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
DELETE FROM pivp_imp_opdrstat_strukton;
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden.
|
||
fac.imp_getfield (v_newline, c_delim, v_mld_opdr_key_tekst);
|
||
v_mld_opdr_key_tekst := TRIM (v_mld_opdr_key_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_extern_nummer);
|
||
v_extern_nummer := TRIM (v_extern_nummer);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_code); -- typeID
|
||
v_status_code := TRIM (v_status_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_datumtijd_tekst);
|
||
v_datumtijd_tekst := TRIM (v_datumtijd_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_status_tekst);
|
||
v_status_tekst := TRIM (v_status_tekst);
|
||
fac.imp_getfield (v_newline, c_delim, v_opmerking);
|
||
v_opmerking := SUBSTR (TRIM (v_opmerking), 1, 1000);
|
||
--fac.imp_getfield (v_newline, c_delim, v_totaal_tekst);
|
||
--v_totaal := fac.safe_to_number (v_totaal_tekst);
|
||
--fac.imp_getfield (v_newline, c_delim, v_correctie_tekst);
|
||
--v_correctie := fac.safe_to_number (v_correctie_tekst);
|
||
-- Verwijder de markering voor cr/lf die in stylesheet is toegevoegd.
|
||
v_opmerking := REPLACE (v_opmerking, '@@', CHR (13));
|
||
v_aanduiding := '[' || v_mld_opdr_key_tekst || '|' || v_extern_nummer || '|' || v_status_code || '|' || v_datumtijd_tekst || '|' || v_status_tekst || '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (TRIM (v_mld_opdr_key_tekst)) = 'REFERENCEID'
|
||
AND UPPER (TRIM (v_extern_nummer)) = 'SERVICEREQUESTID'
|
||
AND UPPER (TRIM (v_status_code)) = 'TYPEID'
|
||
AND UPPER (TRIM (v_datumtijd_tekst)) = 'DATETIME'
|
||
AND UPPER (TRIM (v_opmerking)) = 'REMARKS'
|
||
--AND UPPER (TRIM (v_totaal_tekst)) = 'TOTAL'
|
||
--AND UPPER (TRIM (v_correctie_tekst)) = 'CORRECTION'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Controleer alle veldwaarden.
|
||
v_errormsg := 'Fout bepalen opdracht';
|
||
|
||
BEGIN
|
||
SELECT o.mld_opdr_key, o.mld_opdr_opmerking
|
||
INTO v_mld_opdr_key, v_mld_opdr_opmerking
|
||
FROM mld_opdr o, mld_melding m, mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd
|
||
WHERE o.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr = v_mld_opdr_key_tekst;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_ongeldig := 1;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Status ongedefinieerd';
|
||
|
||
CASE
|
||
WHEN v_status_code = '5'
|
||
THEN
|
||
v_status := 5; -- uitgegeven
|
||
WHEN v_status_code = '10'
|
||
THEN
|
||
v_status := 8; -- geaccepteerd
|
||
WHEN v_status_code = '20' -- monteur gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '25' -- specialist gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
WHEN v_status_code = '30' -- technisch gereed
|
||
THEN
|
||
v_status := 6; -- afgemeld
|
||
-- KFNS#52066: Uitprijs/fiatteer-functionaliteit!
|
||
--WHEN v_status_code = '40' -- uitgeprijst (fiattering aan FACILITOR-kant)
|
||
--THEN
|
||
-- v_status := 9; -- afgerond
|
||
--WHEN v_status_code = '45' -- gefiatteerd (fiattering aan Strukton-kant)
|
||
--THEN
|
||
-- v_status := 9; -- afgerond
|
||
WHEN v_status_code = '70'
|
||
THEN
|
||
v_status := 1; -- geannuleerd
|
||
WHEN v_status_code = '80'
|
||
THEN
|
||
v_status := 1; -- afgewezen
|
||
WHEN v_status_code = '200' -- onderbroken
|
||
THEN
|
||
--TODO: Notitie toevoegen (incl. reden?)
|
||
v_status := NULL; -- ongewijzigd
|
||
WHEN v_status_code = '210' -- herpland
|
||
THEN
|
||
--TODO: Notitie toevoegen
|
||
v_status := NULL; -- ongewijzigd
|
||
ELSE
|
||
v_status := NULL;
|
||
v_ongeldig := 1; -- nog te bezien
|
||
END CASE;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Datumtijd ongeldig';
|
||
|
||
IF INSTR (v_datumtijd_tekst, '.') > 0
|
||
THEN
|
||
v_datumtijd := fac.safe_to_date (REPLACE (SUBSTR (v_datumtijd_tekst, 1, INSTR (v_datumtijd_tekst, '.') - 1), 'T', ' '), 'yyyy-mm-dd hh24:mi:ss');
|
||
ELSE
|
||
v_datumtijd := fac.safe_to_date (REPLACE (v_datumtijd_tekst, 'T', ' '), 'yyyy-mm-dd hh24:mi:ss');
|
||
END IF;
|
||
END IF;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
v_errormsg := 'Opmerking ongeldig';
|
||
|
||
-- Controleer of de opmerking niet leeg is en of dezelfde opmerking al bij een eerdere statusovergang is gemeld.
|
||
IF v_opmerking IS NOT NULL AND INSTR (v_mld_opdr_opmerking, v_opmerking) = 0
|
||
THEN
|
||
v_opmerking := '[' || v_datumtijd_tekst || '] - ' || v_status_tekst || CHR (13) || CHR (10) || v_opmerking;
|
||
ELSE
|
||
v_opmerking := '[' || v_datumtijd_tekst || '] - ' || v_status_tekst;
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record.
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout wegschrijven statusbericht';
|
||
|
||
INSERT INTO pivp_imp_opdrstat_strukton (mld_opdr_key,
|
||
extern_nummer,
|
||
status,
|
||
datumtijd,
|
||
opmerking) -- Geen totaal/correctie!
|
||
VALUES (v_mld_opdr_key,
|
||
v_extern_nummer,
|
||
v_status,
|
||
v_datumtijd,
|
||
v_opmerking);
|
||
|
||
v_count_imp := v_count_imp + 1;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
|
||
END;
|
||
ELSE
|
||
-- Foutmeldingen onderdrukken als uitprijzen/fiatteren niet is aangeschakeld.
|
||
IF v_status_code <> '40' AND v_status_code <> '45'
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, '');
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF header_is_valid = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
|
||
ELSE
|
||
fac.imp_writelog (p_import_key, 'S', 'Inleesproces/#ingelezen statusberichten: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'Inleesproces/#ongeldige niet ingelezen statusberichten: ' || TO_CHAR (v_count_tot - v_count_imp), '');
|
||
END IF;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces statusberichten afgebroken!');
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE pivp_update_opdrstat_strukton (p_import_key IN NUMBER)
|
||
AS
|
||
-- Cursor loopt - per opdracht in volgorde! - over alle ingelezen statusberichten.
|
||
CURSOR c1
|
||
IS
|
||
SELECT mld_opdr_key, extern_nummer, status, datumtijd, opmerking -- Geen totaal/correctie!
|
||
FROM pivp_imp_opdrstat_strukton
|
||
ORDER BY 1, 4;
|
||
|
||
c_user_key NUMBER (10) := 401; -- _STRUKTON-user A=341
|
||
c_refnr_srtkkey NUMBER (10) := 121; -- Refnr. Leverancier A=181 P=121
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count NUMBER (10) := 0;
|
||
v_mld_key NUMBER (10);
|
||
v_opdr_key NUMBER (10);
|
||
v_opdr_status NUMBER (10);
|
||
v_mld_typeopdr_key NUMBER (10);
|
||
v_mld_kenmerk_key NUMBER (10);
|
||
v_mld_kenmerkopdr_key NUMBER (10);
|
||
BEGIN
|
||
-- Loop over alle ingelezen Strukton-statusberichten.
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding := '[' || rec.mld_opdr_key || '|' || SUBSTR (rec.opmerking, 1, 100) || '] ';
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Key van melding/opdracht bepalen en Refnr. bij opdracht opslaan.
|
||
IF rec.mld_opdr_key IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout bepalen opdracht.';
|
||
|
||
SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key, mld_typeopdr_key
|
||
INTO v_mld_key, v_opdr_key, v_opdr_status, v_mld_typeopdr_key
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
v_errormsg := 'Fout bepalen Refnr-kenmerk.';
|
||
|
||
SELECT k.mld_kenmerk_key
|
||
INTO v_mld_kenmerk_key
|
||
FROM mld_kenmerk k
|
||
WHERE k.mld_srtkenmerk_key = c_refnr_srtkkey AND k.mld_typeopdr_key = v_mld_typeopdr_key;
|
||
|
||
v_errormsg := 'Fout bepalen Refnr-kenmerkopdracht.';
|
||
|
||
SELECT MAX (ko.mld_kenmerkopdr_key)
|
||
INTO v_mld_kenmerkopdr_key
|
||
FROM mld_kenmerkopdr ko
|
||
WHERE ko.mld_opdr_key = v_opdr_key AND v_mld_kenmerk_key = ko.mld_kenmerk_key;
|
||
|
||
IF v_mld_kenmerkopdr_key IS NULL
|
||
THEN
|
||
-- Kenmerk toevoegen
|
||
v_errormsg := 'Fout toevoegen Refnr-kenmerkopdracht.';
|
||
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key, mld_opdr_key, mld_kenmerkopdr_waarde)
|
||
VALUES (v_mld_kenmerk_key, v_opdr_key, rec.extern_nummer);
|
||
ELSE
|
||
-- Kenmerk bijwerken
|
||
v_errormsg := 'Fout bijwerken Refnr-kenmerkopdracht.';
|
||
|
||
UPDATE mld_kenmerkopdr
|
||
SET mld_kenmerkopdr_waarde = rec.extern_nummer
|
||
WHERE mld_kenmerkopdr_key = v_mld_kenmerkopdr_key;
|
||
END IF;
|
||
|
||
IF rec.status IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout bijwerken Opmerking (opdracht).';
|
||
|
||
v_count := LENGTH (rec.opmerking) + 5; -- Beetje speling qua lengte!
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_opmerking =
|
||
DECODE (mld_opdr_opmerking,
|
||
NULL, rec.opmerking,
|
||
rec.opmerking || CHR (13) || CHR (10) || SUBSTR (mld_opdr_opmerking, 1, (4000 - v_count)))
|
||
WHERE mld_opdr_key = v_opdr_key;
|
||
|
||
v_errormsg := 'Fout bijwerken Status.';
|
||
|
||
IF rec.status = 8 AND v_opdr_status = 5
|
||
THEN
|
||
-- Accepteer de opdracht als deze uitgegeven was
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton
|
||
ELSIF rec.status = 6 AND v_opdr_status = 5
|
||
THEN
|
||
-- Meld de opdracht af als deze uitgegeven was (na eerst accepteren)
|
||
MLD.setopdrachtstatus (v_opdr_key, 8, c_user_key); -- Strukton
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
||
ELSIF rec.status = 6 AND v_opdr_status = 8
|
||
THEN
|
||
-- Meld de opdracht af als deze geaccepteerd was
|
||
MLD.setopdrachtstatus (v_opdr_key, 6, c_user_key); -- Strukton
|
||
ELSIF rec.status = 1 AND v_opdr_status IN (5, 8)
|
||
THEN
|
||
-- Wijs de opdracht af als deze niet/wel geaccepteerd was
|
||
MLD.setopdrachtstatus (v_opdr_key, 1, c_user_key); -- Strukton
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
||
--ELSIF rec.status = 9 AND v_opdr_status = 6 -- Per KFNS#52066
|
||
--THEN
|
||
-- Neem ontvangen kosten over zoals afgestemd met KFNS#59399!
|
||
--UPDATE mld_opdr
|
||
-- SET mld_opdr_materiaal = rec.totaal,
|
||
-- mld_opdr_kosten = rec.totaal + rec.correctie
|
||
-- WHERE mld_opdr_key = v_opdr_key;
|
||
|
||
-- Rond de opdracht af als deze afgemeld was
|
||
--MLD.setopdrachtstatus (v_opdr_key, 9, c_user_key); -- Strukton
|
||
END IF;
|
||
|
||
IF rec.status = 6 AND v_opdr_status <> 6
|
||
THEN
|
||
-- AADO#30922: Melding niet meer automatisch afmelden.
|
||
-- KFNS#37965: Opmerking-veld bij melding niet meer bijwerken.
|
||
MLD.updatemeldingstatusAV (v_mld_key, 0, c_user_key, 0);
|
||
END IF;
|
||
ELSE -- rec.status IS NULL (= Onderbroken/Herpland), dan toevoegen Notitie!
|
||
-- YAXX#59749: Toevoegen Notitie!
|
||
v_errormsg := 'Fout toevoegen Notitie (opdracht).';
|
||
|
||
INSERT INTO mld_opdr_note (mld_opdr_key, mld_opdr_note_omschrijving, prs_perslid_key)
|
||
VALUES (v_opdr_key, rec.opmerking, c_user_key);
|
||
END IF;
|
||
END IF;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Statusbericht-loop');
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_IMPORT_ASSETS_INI(p_import_key IN NUMBER)
|
||
AS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_mode NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_all_null BOOLEAN;
|
||
v_count_error NUMBER (10);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10);
|
||
|
||
-- De importvelden:
|
||
v_alg_ruimte_nr VARCHAR2(100);
|
||
|
||
v_gebouw_code VARCHAR2(100);
|
||
|
||
v_ins_discipline_txt VARCHAR2(100);
|
||
|
||
v_ins_discipline_omschrijving VARCHAR2(100);
|
||
d_ins_discipline_omschrijving VARCHAR2(100);
|
||
|
||
v_ins_srtgroep_code VARCHAR2(100);
|
||
v_ins_srtgroep_omschrijving VARCHAR2(100);
|
||
d_ins_srtgroep_omschrijving VARCHAR2(100);
|
||
|
||
v_ins_srtdeel_code VARCHAR2(100);
|
||
v_ins_srtdeel_omschrijving VARCHAR2(100);
|
||
d_ins_srtdeel_omschrijving VARCHAR2(100);
|
||
|
||
v_ins_deel_txt VARCHAR2(100);
|
||
v_ins_deel_code VARCHAR2(100);
|
||
v_ins_deel_eenheid VARCHAR2(100);
|
||
v_ins_deel_omschrijving VARCHAR2(100);
|
||
v_ins_deel_opmerking VARCHAR2(1000);
|
||
v_ins_deel_component VARCHAR2(1000);
|
||
v_ins_srtcontrole_periode_txt VARCHAR2(100);
|
||
v_ins_srtcontrole_prijs_txt VARCHAR2(100);
|
||
|
||
v_ins_deel_percentage NUMBER;
|
||
v_ins_srtcontrole_periode NUMBER;
|
||
v_kenmerk1 VARCHAR2(1000);
|
||
v_kenmerk2 VARCHAR2(1000);
|
||
v_kenmerk3 VARCHAR2(1000);
|
||
v_kenmerk4 VARCHAR2(1000);
|
||
v_kenmerk5 VARCHAR2(1000);
|
||
v_kenmerk6 VARCHAR2(1000);
|
||
v_kenmerk7 VARCHAR2(1000);
|
||
v_kenmerk8 VARCHAR2(1000);
|
||
v_kenmerk9 VARCHAR2(1000);
|
||
v_kenmerk10 VARCHAR2(1000);
|
||
v_kenmerk11 VARCHAR2(1000);
|
||
v_kenmerk12 VARCHAR2(1000);
|
||
v_kenmerk13 VARCHAR2(1000);
|
||
v_kenmerk14 VARCHAR2(1000);
|
||
v_kenmerk15 VARCHAR2(1000);
|
||
v_kenmerk16 VARCHAR2(1000);
|
||
v_kenmerk17 VARCHAR2(1000);
|
||
v_kenmerk18 VARCHAR2(1000);
|
||
v_kenmerk19 VARCHAR2(1000);
|
||
v_dumm NUMBER (10,2);
|
||
v_ins_deel_aanmaak_text VARCHAR2(10);
|
||
v_ins_deel_aanmaak DATE;
|
||
v_ins_deel_startjaar DATE;
|
||
v_ins_deel_aantal NUMBER;
|
||
v_ins_srtcontrole_prijs NUMBER(10,2);
|
||
v_alg_locatie_code VARCHAR2(20);
|
||
v_alg_gebouw_code VARCHAR2(20);
|
||
v_alg_verdieping_volgnr NUMBER;
|
||
v_srtk_code_rvb_key NUMBER;
|
||
v_srtk_opm_key NUMBER;
|
||
v_srtk_merk_key NUMBER;
|
||
v_discipline_key NUMBER;
|
||
v_srtgroep_key NUMBER;
|
||
|
||
v_startjaar NUMBER;
|
||
v_cyclus NUMBER;
|
||
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
|
||
|
||
BEGIN
|
||
v_count_error := 0;
|
||
header_is_valid := 0;
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
|
||
DELETE fac_imp_ins;
|
||
|
||
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
BEGIN
|
||
V_count_import := v_count_import +1;
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
|
||
v_newline := rec.fac_imp_file_line;
|
||
IF v_count_import >=1 THEN
|
||
v_errormsg := 'Fout opvragen K1 te importeren rij '||v_count_import;
|
||
v_aanduiding := '';
|
||
|
||
-- Lees alle veldwaarden
|
||
--fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_gebouw_code);
|
||
v_errormsg := 'Fout opvragen K3 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_alg_verdieping_volgnr);
|
||
v_errormsg := 'Fout opvragen K4 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_alg_ruimte_nr);
|
||
v_errormsg := 'Fout opvragen K2 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_gebouw_code);
|
||
v_errormsg := 'Fout opvragen K5 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 5, v_ins_discipline_omschrijving);
|
||
v_errormsg := 'Fout opvragen K6te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_ins_srtgroep_code);
|
||
v_errormsg := 'Fout opvragen K7 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_ins_srtgroep_omschrijving);
|
||
v_errormsg := 'Fout opvragen K8 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_ins_srtdeel_code);
|
||
v_errormsg := 'Fout opvragen K9 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_ins_srtdeel_omschrijving);
|
||
v_errormsg := 'Fout opvragen K14 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 14, v_ins_deel_aantal);
|
||
v_errormsg := 'Fout opvragen K10 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_ins_deel_omschrijving);
|
||
v_errormsg := 'Fout opvragen K12 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 12, v_ins_deel_component);
|
||
v_errormsg := 'Fout opvragen K11 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 11, v_ins_deel_opmerking);
|
||
v_errormsg := 'Fout opvragen K16 te importeren rij '||v_count_import;
|
||
--fac.imp_getfield_nr (v_newline, c_fielddelimitor, 16, v_ins_deel_aanmaak_text);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 16, v_kenmerk4); -- bouwjaar
|
||
v_errormsg := 'Fout opvragen K113 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 13, v_kenmerk1); -- Oprognose code
|
||
-- fac.imp_getfield_nr (v_newline, c_fielddelimitor, 15, v_kenmerk2); -- Merk
|
||
v_errormsg := 'Fout opvragen K15 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 15, v_kenmerk3); -- Eenheid
|
||
v_errormsg := 'Fout opvragen K21 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 21, v_kenmerk10); -- Taak groep
|
||
v_errormsg := 'Fout opvragen k18 te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 18, v_kenmerk11); -- Taak omschrijving
|
||
v_errormsg := 'Fout opvragen te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 19, v_kenmerk13); -- Taak opmerking
|
||
v_errormsg := 'Fout opvragen te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 29, v_kenmerk12); -- Periode interval
|
||
v_errormsg := 'Fout opvragen te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 32, v_kenmerk14); -- kosten
|
||
v_errormsg := 'Fout opvragen te importeren rij '||v_count_import;
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 30, v_kenmerk15); -- startjaar
|
||
|
||
|
||
-- fac.imp_getfield_nr (v_newline, c_fielddelimitor, 29, v_ins_srtcontrole_periode_txt);
|
||
-- fac.imp_getfield_nr (v_newline, c_fielddelimitor, 24, v_ins_srtcontrole_prijs_txt);
|
||
|
||
-- fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_kenmerk1); -- code RVB
|
||
-- fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_kenmerk2); -- opmerking
|
||
-- fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_kenmerk3); -- taak
|
||
-- fac.imp_getfield_nr (v_newline, c_fielddelimitor, 16, v_kenmerk5); -- fabrikant / merk
|
||
-- fac.imp_getfield_nr (v_newline, c_fielddelimitor, 28, v_kenmerk7); -- percentage
|
||
-- fac.imp_getfield_nr (v_newline, c_fielddelimitor, 30, v_kenmerk9); -- startjaar
|
||
|
||
v_errormsg := 'vervangen , door . '||v_count_import;
|
||
v_ins_srtdeel_code := REPLACE(v_ins_srtdeel_code,',','.');
|
||
|
||
v_errormsg := 'Euro teken verwijderen '||v_count_import;
|
||
-- v_kenmerk14 := REPLACE(v_kenmerk14,',','.');
|
||
|
||
-- v_aanduiding := v_ins_deel_omschrijving || '|' || v_kenmerk4;
|
||
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_discipline_omschrijving: ' || v_ins_srtdeel_code;
|
||
BEGIN
|
||
SELECT d.ins_discipline_omschrijving
|
||
INTO d_ins_discipline_omschrijving
|
||
FROM ins_discipline d
|
||
WHERE SUBSTR (d.ins_discipline_omschrijving, 1, 1) = SUBSTR (v_ins_srtdeel_code, 1, 1) AND d.ins_discipline_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
d_ins_discipline_omschrijving := SUBSTR (v_ins_srtdeel_code, 1, 1) || '-'|| v_ins_discipline_omschrijving;
|
||
END;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtgroep_omschrijving: ' || v_ins_srtdeel_code;
|
||
d_ins_srtgroep_omschrijving:='';
|
||
BEGIN
|
||
SELECT sg.ins_srtgroep_omschrijving
|
||
INTO d_ins_srtgroep_omschrijving
|
||
FROM ins_srtgroep sg
|
||
WHERE SUBSTR (sg.ins_srtgroep_omschrijving, 1, 2) = SUBSTR (v_ins_srtgroep_code, 1, 2);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
d_ins_srtgroep_omschrijving := SUBSTR (v_ins_srtdeel_code, 1, 2) || '-'|| v_ins_srtgroep_omschrijving;
|
||
END;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtdeel_omschrijving: ' || v_ins_srtdeel_code;
|
||
d_ins_srtdeel_omschrijving:='';
|
||
BEGIN
|
||
SELECT sd.ins_srtdeel_omschrijving
|
||
INTO v_ins_srtdeel_omschrijving
|
||
FROM ins_srtdeel sd
|
||
WHERE sd.ins_srtdeel_code = v_ins_srtdeel_code;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
d_ins_srtdeel_omschrijving := v_ins_srtdeel_omschrijving;
|
||
END;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_alg_ruimte_nr: ' || v_alg_ruimte_nr;
|
||
--SELECT alg_locatie_code, alg_gebouw_upper, alg_verdieping_volgnr
|
||
-- INTO v_alg_locatie_code, v_alg_gebouw_code, v_alg_verdieping_volgnr
|
||
--FROM alg_v_ruimte_gegevens rg
|
||
--WHERE UPPER(rg.alg_ruimte_nr) = UPPER(v_alg_ruimte_nr);
|
||
BEGIN
|
||
|
||
SELECT alg_locatie_code, alg_gebouw_upper, alg_verdieping_volgnr INTO v_alg_locatie_code,v_alg_gebouw_code, v_alg_verdieping_volgnr
|
||
FROm alg_v_ruimte_gegevens rg
|
||
WHERE UPPER(rg.alg_ruimte_nr) = UPPER(v_alg_ruimte_nr) AND rg.alg_gebouw_upper = UPPER(v_gebouw_code) AND rg.alg_verdieping_volgnr=v_alg_verdieping_volgnr;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_alg_locatie_code:='PP';
|
||
v_alg_gebouw_code := v_gebouw_code;
|
||
v_alg_verdieping_volgnr:='0';
|
||
v_alg_ruimte_nr:='_000';
|
||
END;
|
||
|
||
IF v_ins_deel_component IS NOT NULL THEN
|
||
v_ins_deel_omschrijving :=v_ins_deel_omschrijving||'-'||v_ins_deel_component;
|
||
END IF;
|
||
|
||
v_errormsg := '1 Fout bij toevoegen te impoteren startjaar('||v_ins_deel_omschrijving||'): ' || v_kenmerk15;
|
||
v_ins_deel_aanmaak := NULL;
|
||
|
||
IF v_kenmerk15 IS NOT NULL
|
||
THEN
|
||
IF v_kenmerk15='0' THEN
|
||
v_ins_deel_aanmaak := to_date('01012099' , 'ddmmyyyy');
|
||
ELSE
|
||
|
||
v_startjaar:= to_number(v_kenmerk15);
|
||
|
||
v_cyclus := to_number(v_kenmerk12);
|
||
-- IF v_startjaar=2022 THEN
|
||
v_startjaar:=v_startjaar-v_cyclus;
|
||
-- END IF;
|
||
v_ins_deel_aanmaak := TO_DATE('0101'||v_startjaar,'ddmmyyyy');
|
||
END IF;
|
||
|
||
ELSE
|
||
v_ins_deel_aanmaak := SYSDATE;
|
||
END IF;
|
||
|
||
|
||
/* IF v_ins_deel_aanmaak_text IS NOT NULL
|
||
THEN
|
||
IF v_ins_deel_aanmaak_text='0' THEN
|
||
v_ins_deel_aanmaak := to_date('01012022' , 'ddmmyyyy');
|
||
ELSE
|
||
v_ins_deel_aanmaak := to_date('0101' || v_ins_deel_aanmaak_text, 'ddmmyyyy');
|
||
END IF;
|
||
ELSE
|
||
v_ins_deel_aanmaak := SYSDATE;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_kenmerk9: ' || v_kenmerk9;
|
||
IF v_kenmerk9 IS NOT NULL
|
||
THEN
|
||
v_ins_deel_startjaar := to_date('0101' || v_kenmerk9, 'ddmmyyyy');
|
||
ELSE
|
||
v_ins_deel_startjaar := NULL;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_deel_aantal_txt: ' || v_ins_deel_aantal_txt;
|
||
IF v_ins_deel_aantal_txt IS NOT NULL
|
||
THEN
|
||
v_ins_deel_aantal := to_number(v_ins_deel_aantal_txt);
|
||
ELSE
|
||
v_ins_deel_aantal := 1;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtcontrole_periode_txt: ' || v_ins_srtcontrole_periode_txt;
|
||
IF v_ins_srtcontrole_periode_txt IS NOT NULL
|
||
THEN
|
||
v_ins_srtcontrole_periode := to_number(v_ins_srtcontrole_periode_txt);
|
||
ELSE
|
||
v_ins_srtcontrole_periode := NULL;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtcontrole_prijs_txt: ' || v_ins_srtcontrole_prijs_txt;
|
||
IF v_ins_srtcontrole_prijs_txt IS NOT NULL
|
||
THEN
|
||
v_ins_srtcontrole_prijs := to_number(REPLACE(REPLACE(v_ins_srtcontrole_prijs_txt, '.'), ',', '.'));
|
||
ELSE
|
||
v_ins_srtcontrole_prijs := NULL;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_kenmerk7: ' || v_kenmerk7;
|
||
IF v_kenmerk7 IS NOT NULL
|
||
THEN
|
||
IF INSTR(v_kenmerk7, '%') = 0
|
||
THEN
|
||
v_ins_deel_percentage := to_number(v_kenmerk7)*100;
|
||
ELSE
|
||
v_ins_deel_percentage := to_number(REPLACE(v_kenmerk7, '%'));
|
||
END IF;
|
||
ELSE
|
||
v_ins_deel_percentage := 100;
|
||
END IF;
|
||
|
||
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2,
|
||
ins_kenmerkwaarde3,
|
||
ins_kenmerkwaarde4,
|
||
ins_kenmerkwaarde5,
|
||
ins_kenmerkwaarde6,
|
||
ins_kenmerkwaarde7,
|
||
ins_kenmerkwaarde8,
|
||
ins_kenmerkwaarde9,
|
||
ins_kenmerkwaarde10,
|
||
ins_deel_aanmaak,
|
||
ins_deel_aantal)
|
||
VALUES (SUBSTR(d_ins_discipline_omschrijving, 1,60),
|
||
SUBSTR(d_ins_srtgroep_omschrijving, 1, 60),
|
||
SUBSTR(v_ins_srtdeel_code,1,10),
|
||
SUBSTR(v_ins_srtdeel_omschrijving || ' - ' || v_ins_srtdeel_code, 1, 100),
|
||
SUBSTR(v_ins_deel_omschrijving, 1, 60),
|
||
SUBSTR(v_ins_deel_opmerking, 1, 320),
|
||
SUBSTR(v_alg_locatie_code, 1, 10),
|
||
SUBSTR(v_alg_gebouw_code, 1, 12),
|
||
v_alg_verdieping_volgnr,
|
||
SUBSTR(v_alg_ruimte_nr,1,20),
|
||
DECODE(v_kenmerk1, NULL, NULL, 'Code RVB|0=' || v_kenmerk1),
|
||
DECODE(v_kenmerk2, NULL, NULL, 'Opmerking|0=' || v_kenmerk2),
|
||
v_kenmerk3,
|
||
'',
|
||
DECODE(v_kenmerk5, NULL, NULL, 'Merk|0=' || v_kenmerk5),
|
||
v_ins_srtcontrole_prijs,
|
||
v_ins_deel_percentage,
|
||
v_ins_srtcontrole_periode,
|
||
to_char(v_ins_deel_startjaar, 'ddmmyyyy'),
|
||
to_char(v_ins_deel_aanmaak, 'ddmmyyyy'),
|
||
v_ins_deel_aanmaak,
|
||
to_number(v_ins_deel_aantal)); */
|
||
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
ins_deel_aanmaak,
|
||
ins_deel_aantal,
|
||
ins_kenmerkwaarde1, -- Code OP
|
||
ins_kenmerkwaarde2, -- Bouwjaar ?
|
||
ins_kenmerkwaarde3, -- eenheid ?
|
||
ins_kenmerkwaarde10, -- Srt Taak Groep
|
||
ins_kenmerkwaarde11, -- Srt Taak
|
||
ins_kenmerkwaarde12, -- Periode
|
||
ins_kenmerkwaarde13, -- Interval (4=jaarlijks)
|
||
ins_kenmerkwaarde14, -- bedrag /matriaal
|
||
ins_kenmerkwaarde15) -- Taak opm
|
||
VALUES (SUBSTR(d_ins_discipline_omschrijving, 1,60),
|
||
SUBSTR(d_ins_srtgroep_omschrijving, 1, 60),
|
||
SUBSTR(v_ins_srtdeel_code,1,10),
|
||
SUBSTR(v_ins_srtdeel_omschrijving, 1, 100),
|
||
SUBSTR(v_ins_deel_omschrijving, 1, 60),
|
||
SUBSTR(v_ins_deel_opmerking, 1, 320),
|
||
SUBSTR(v_alg_locatie_code, 1, 10),
|
||
SUBSTR(v_alg_gebouw_code, 1, 12),
|
||
v_alg_verdieping_volgnr,
|
||
SUBSTR(v_alg_ruimte_nr,1,20),
|
||
v_ins_deel_aanmaak,
|
||
to_number(v_ins_deel_aantal),
|
||
DECODE(v_kenmerk1, NULL, NULL, 'CODE OP|0='||v_kenmerk1),
|
||
DECODE(v_kenmerk4, NULL, NULL, 'Bouwjaar|0='||v_kenmerk4),
|
||
DECODE(v_kenmerk3, NULL, NULL, 'Eenheid|0='||v_kenmerk3),
|
||
v_kenmerk10,
|
||
v_kenmerk11,
|
||
v_kenmerk12,
|
||
4,
|
||
v_kenmerk14,
|
||
v_kenmerk13
|
||
);
|
||
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
|
||
END;
|
||
|
||
END LOOP;
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
/
|
||
--Einde pivp_import_assets_ini;
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_UPDATE_ASSETS_INI(p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR sel IS
|
||
SELECT * FROM fac_imp_ins;
|
||
|
||
|
||
|
||
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (100);
|
||
v_deel_key NUMBER;
|
||
v_srtdeel_key NUMBER;
|
||
v_srtcontrole_key NUMBER;
|
||
v_srtcontroledl_xcp_key NUMBER;
|
||
|
||
v_taakcat_key NUMBER;
|
||
v_srtcontrole_omschrijving INS_SRTCONTROLE.INS_SRTCONTROLE_OMSCHRIJVING%TYPE;
|
||
v_srtcontrole_periode INS_SRTCONTROLE.INS_SRTCONTROLE_PERIODE%TYPE;
|
||
v_srtcontrole_materiaal INS_SRTCONTROLE.INS_SRTCONTROLE_MATERIAAL%TYPE;
|
||
v_srtcontrole_percentage INS_SRTCONTROLE.INS_SRTCONTROLE_PERCENTAGE%TYPE;
|
||
v_srtcontrole_level INS_SRTCONTROLE.INS_SRTCONTROLE_LEVEL%TYPE;
|
||
v_percentage NUMBER;
|
||
v_materiaal INS_SRTCONTROLEDL_XCP.INS_SRTCONTROLEDL_XCP_MATERIA%TYPE;
|
||
|
||
ins_deel_key NUMBER;
|
||
ins_srtdeel_key NUMBER;
|
||
v_count NUMBER;
|
||
v_error NUMBER;
|
||
|
||
BEGIN
|
||
|
||
fac_update_ins(p_import_key);
|
||
|
||
|
||
|
||
-- LOOP Over alle geimporteerde objecten
|
||
FOR rec IN sel
|
||
LOOP
|
||
v_error:=0;
|
||
BEGIN
|
||
v_count:=0;
|
||
|
||
-- volgens mij is deze niet meer nodig
|
||
--v_materiaal := FAC.safe_to_number (REPLACE(rec.INS_KENMERKWAARDE14,'.',''));
|
||
v_materiaal := FAC.safe_to_number (rec.INS_KENMERKWAARDE14);
|
||
-- v_materiaal := ROUND(v_materiaal,2);
|
||
-- Haal het object op
|
||
v_errorhint := 'Zoek object';
|
||
SELECT ins_deel_key, ins_srtdeel_key
|
||
INTO v_deel_key, v_srtdeel_key
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving = rec.ins_deel_omschrijving;
|
||
|
||
--Haal de taakgroep op
|
||
v_errorhint := 'Zoek taak categorie';
|
||
BEGIN
|
||
SELECT ins_discipline_key
|
||
INTO v_taakcat_key
|
||
FROM ctr_discipline
|
||
WHERE UPPER (ins_discipline_omschrijving) = UPPER (rec.ins_kenmerkwaarde10);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
v_error :=1;
|
||
-- loggen dat deze taak groep niet bekend is
|
||
END;
|
||
|
||
|
||
|
||
|
||
-- Als taakgroep is Cerificering dan geen MJOB
|
||
|
||
-- Heeft deze objectsoort al deze keuring
|
||
|
||
|
||
|
||
-- heb ik al een XCP Record...
|
||
-- SELECT COUNT(*)
|
||
-- INTO v_count
|
||
-- FROM ins_srtcontroledl_xcp
|
||
-- WHERE ins_deel_key=v_deel_key
|
||
-- AND ins_srtcontroledl_xcp_periode=COALESCE (TO_NUMBER (rec.ins_kenmerkwaarde12),0)
|
||
-- AND ins_srtcontroledl_xcp_materia = v_materiaal;
|
||
|
||
IF v_error=0 -- ik heb het object en taak categorie
|
||
AND rec.ins_kenmerkwaarde12 IS NOT NULL -- Er is een cyclus aanwezig
|
||
AND rec.INS_KENMERKWAARDE14 IS NOT NULL -- Er is een prijs aanwezig
|
||
THEN
|
||
BEGIN
|
||
v_srtcontrole_omschrijving:='';
|
||
v_srtcontrole_omschrijving:= SUBSTR(rec.ins_kenmerkwaarde11,0,50);
|
||
IF rec.ins_kenmerkwaarde15 IS NOT NULL
|
||
THEN
|
||
v_srtcontrole_omschrijving:=v_srtcontrole_omschrijving||'-'||rec.ins_kenmerkwaarde15;
|
||
END IF;
|
||
v_srtcontrole_omschrijving:=v_srtcontrole_omschrijving || '-'|| rec.ins_srtdeel_code;
|
||
-- Heb ik deze srtcontrole al
|
||
SELECT ins_srtcontrole_key,
|
||
ins_srtcontrole_periode,
|
||
ins_srtcontrole_materiaal,
|
||
ins_srtcontrole_percentage
|
||
INTO v_srtcontrole_key,
|
||
v_srtcontrole_periode,
|
||
v_srtcontrole_materiaal,
|
||
v_srtcontrole_percentage
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtinstallatie_key = v_srtdeel_key
|
||
AND ins_srtcontrole_niveau = 'S'
|
||
AND ctr_discipline_key = v_taakcat_key
|
||
AND ins_srtcontrole_omschrijving=v_srtcontrole_omschrijving;
|
||
|
||
-- srtcontrole is er .
|
||
-- Wijkt deze af van de srtcontrole op begied van periode, materiaal
|
||
|
||
|
||
-- IF v_srtcontrole_periode <> COALESCE (TO_NUMBER (rec.ins_kenmerkwaarde12),0)
|
||
-- OR v_srtcontrole_materiaal <> v_materiaal
|
||
-- THEN
|
||
INSERT INTO ins_srtcontroledl_xcp
|
||
(ins_srtcontrole_key,
|
||
ins_deel_key,
|
||
ins_srtcontroledl_xcp_eenheid)
|
||
VALUES (v_srtcontrole_key,v_deel_key,4)
|
||
RETURNING ins_srtcontroledl_xcp_key
|
||
INTO v_srtcontroledl_xcp_key;
|
||
-- IF v_srtcontrole_periode <> COALESCE (TO_NUMBER (rec.ins_kenmerkwaarde12),0)
|
||
-- THEN
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_periode = COALESCE (TO_NUMBER (rec.ins_kenmerkwaarde12),0)
|
||
WHERE ins_srtcontroledl_xcp_key = v_srtcontroledl_xcp_key;
|
||
-- END IF;
|
||
-- IF v_srtcontrole_materiaal <> v_materiaal
|
||
-- THEN
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_materia = v_materiaal
|
||
WHERE ins_srtcontroledl_xcp_key = v_srtcontroledl_xcp_key;
|
||
-- END IF;
|
||
|
||
|
||
|
||
-- END IF;
|
||
|
||
-- Vergeklijk de waardes met de huidige waarde
|
||
-- indien deze anders zijn dan moet er een uitzonderings record gemaakt worden
|
||
-- vast leggen op bais vam welke criteria de srtconmtyrole gechekd wordt.
|
||
-- periode, kosten evt percentage
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
v_errorhint := 'Bepalen level';
|
||
v_srtcontrole_level := 10;
|
||
v_srtcontrole_percentage:=0;
|
||
v_srtcontrole_omschrijving:= SUBSTR(rec.ins_kenmerkwaarde11,0,50);
|
||
IF rec.ins_kenmerkwaarde15 IS NOT NULL
|
||
THEN
|
||
v_srtcontrole_omschrijving:=v_srtcontrole_omschrijving||'-'||rec.ins_kenmerkwaarde15;
|
||
END IF;
|
||
v_srtcontrole_omschrijving:=v_srtcontrole_omschrijving || '-'|| rec.ins_srtdeel_code;
|
||
|
||
v_errorhint := 'Aanmaken srtcontrole';
|
||
|
||
-- nu moet we een ins_srtcontrole aanmaken
|
||
INSERT INTO ins_srtcontrole (
|
||
ins_srtinstallatie_key,
|
||
ins_srtcontrole_niveau,
|
||
ins_srtcontrole_omschrijving,
|
||
ctr_discipline_key,
|
||
ins_Srtcontrole_periode,
|
||
ins_srtcontrole_eenheid,
|
||
ins_srtcontrole_level
|
||
)
|
||
VALUES (
|
||
v_srtdeel_key,
|
||
'S',
|
||
v_srtcontrole_omschrijving,
|
||
v_taakcat_key,
|
||
COALESCE (TO_NUMBER (rec.ins_kenmerkwaarde12),0),
|
||
4, -- Jaarlijks
|
||
v_srtcontrole_level
|
||
)
|
||
RETURNING ins_srtcontrole_key INTO v_srtcontrole_key;
|
||
|
||
INSERT INTO ins_srtcontroledl_xcp (
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_materia,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_deel_key)
|
||
VALUES (v_srtcontrole_key, v_materiaal, COALESCE (TO_NUMBER (rec.ins_kenmerkwaarde12),0),4, v_deel_key)
|
||
RETURNING ins_srtcontroledl_xcp_key
|
||
INTO v_srtcontroledl_xcp_key;
|
||
END;
|
||
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
END;
|
||
/
|
||
-- Einde PIVP_UPDATE_ASSETS_INI
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_IMPORT_ASSETS(p_import_key IN NUMBER)
|
||
AS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count NUMBER;
|
||
v_objectcount NUMBER;
|
||
v_ongeldig NUMBER (1);
|
||
v_mode NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_all_null BOOLEAN;
|
||
v_count_error NUMBER (10);
|
||
v_count_tot NUMBER (10);
|
||
v_count_import NUMBER (10):=0;
|
||
|
||
-- De importvelden:
|
||
v_alg_ruimte_nr VARCHAR2(100);
|
||
|
||
v_gebouw_code VARCHAR2(100);
|
||
|
||
v_ins_discipline_txt VARCHAR2(100);
|
||
|
||
v_ins_discipline_omschrijving VARCHAR2(100);
|
||
d_ins_discipline_omschrijving VARCHAR2(100);
|
||
|
||
v_ins_srtgroep_code VARCHAR2(100);
|
||
v_ins_srtgroep_omschrijving VARCHAR2(100);
|
||
d_ins_srtgroep_omschrijving VARCHAR2(100);
|
||
|
||
v_ins_srtdeel_code VARCHAR2(100);
|
||
v_ins_srtdeel_omschrijving VARCHAR2(100);
|
||
d_ins_srtdeel_omschrijving VARCHAR2(100);
|
||
|
||
v_ins_deel_txt VARCHAR2(100);
|
||
v_ins_deel_code VARCHAR2(100);
|
||
v_ins_deel_eenheid VARCHAR2(100);
|
||
v_ins_deel_omschrijving VARCHAR2(100);
|
||
v_ins_deel_omschrijving_compleet VARCHAR2(100);
|
||
v_ins_deel_opmerking VARCHAR2(1000);
|
||
v_ins_deel_component VARCHAR2(1000);
|
||
v_ins_srtcontrole_periode_txt VARCHAR2(100);
|
||
v_ins_srtcontrole_prijs_txt VARCHAR2(100);
|
||
|
||
v_ins_deel_percentage NUMBER;
|
||
v_ins_srtcontrole_periode NUMBER;
|
||
v_kenmerk1 VARCHAR2(1000);
|
||
v_kenmerk2 VARCHAR2(1000);
|
||
v_kenmerk3 VARCHAR2(1000);
|
||
v_kenmerk4 VARCHAR2(1000);
|
||
v_kenmerk5 VARCHAR2(1000);
|
||
v_kenmerk6 VARCHAR2(1000);
|
||
v_kenmerk7 VARCHAR2(1000);
|
||
v_kenmerk8 VARCHAR2(1000);
|
||
v_kenmerk9 VARCHAR2(1000);
|
||
v_kenmerk10 VARCHAR2(1000);
|
||
v_kenmerk11 VARCHAR2(1000);
|
||
v_kenmerk12 VARCHAR2(1000);
|
||
v_kenmerk13 VARCHAR2(1000);
|
||
v_kenmerk14 VARCHAR2(1000);
|
||
v_kenmerk15 VARCHAR2(1000);
|
||
v_kenmerk16 VARCHAR2(1000);
|
||
v_kenmerk17 VARCHAR2(1000);
|
||
v_kenmerk18 VARCHAR2(1000);
|
||
v_kenmerk19 VARCHAR2(1000);
|
||
v_dumm NUMBER (10,2);
|
||
v_ins_deel_aanmaak_text VARCHAR2(10);
|
||
v_ins_deel_aanmaak DATE;
|
||
v_ins_deel_startjaar DATE;
|
||
v_ins_deel_aantal NUMBER;
|
||
v_ins_srtcontrole_prijs NUMBER(10,2);
|
||
v_alg_locatie_code VARCHAR2(20);
|
||
v_alg_gebouw_code VARCHAR2(20);
|
||
v_alg_verdieping_volgnr NUMBER;
|
||
v_srtk_code_rvb_key NUMBER;
|
||
v_srtk_opm_key NUMBER;
|
||
v_srtk_merk_key NUMBER;
|
||
v_discipline_key NUMBER;
|
||
v_srtgroep_key NUMBER;
|
||
|
||
v_startjaar NUMBER;
|
||
v_cyclus NUMBER;
|
||
v_component NUMBER;
|
||
v_msdcode NUMBER;
|
||
|
||
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
|
||
|
||
BEGIN
|
||
v_count_error := 0;
|
||
header_is_valid := 0;
|
||
v_count_tot := 0;
|
||
v_count_import := 0;
|
||
v_component:=1;
|
||
v_msdcode:=1;
|
||
|
||
DELETE fac_imp_ins;
|
||
|
||
|
||
|
||
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 '||v_count_import;
|
||
v_aanduiding := '';
|
||
v_kenmerk1:='';
|
||
v_kenmerk3:='';
|
||
v_kenmerk4:='';
|
||
v_kenmerk10:='';
|
||
v_kenmerk11:='';
|
||
v_kenmerk12:='';
|
||
v_kenmerk13:='';
|
||
v_kenmerk14:='';
|
||
v_kenmerk15:='';
|
||
v_kenmerk16:='';
|
||
v_ins_deel_component:='';
|
||
v_ins_deel_omschrijving:='';
|
||
v_ins_deel_opmerking:='';
|
||
v_ins_deel_omschrijving_compleet:='';
|
||
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_gebouw_code);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_alg_verdieping_volgnr);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_alg_ruimte_nr);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 5, v_ins_discipline_omschrijving);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_ins_srtgroep_code);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_ins_srtgroep_omschrijving);
|
||
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_ins_srtdeel_code);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_ins_srtdeel_omschrijving);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 14, v_ins_deel_aantal);
|
||
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_ins_deel_omschrijving);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 12, v_ins_deel_component);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 11, v_ins_deel_opmerking);
|
||
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 16, v_kenmerk4); -- bouwjaar
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 13, v_kenmerk1); -- Oprognose code
|
||
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 15, v_kenmerk3); -- Eenheid
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 21, v_kenmerk10); -- Taak groep
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 18, v_kenmerk11); -- Taak omschrijving
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 19, v_kenmerk13); -- Taak opmerking
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 20, v_kenmerk9); -- Taak wetgeving
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 29, v_kenmerk12); -- Periode interval
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 32, v_kenmerk14); -- kosten
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 30, v_kenmerk16); -- startjaar
|
||
|
||
|
||
IF v_ins_srtgroep_code!='00' THEN
|
||
v_ins_srtdeel_code := REPLACE(v_ins_srtdeel_code,',','.');
|
||
v_ins_deel_aantal := REPLACE(v_ins_deel_aantal,',','.');
|
||
v_kenmerk14 := REPLACE(v_kenmerk14,'<EFBFBD>');
|
||
|
||
-- v_aanduiding := v_ins_deel_omschrijving || '|' || v_kenmerk4;
|
||
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_discipline_omschrijving: ' || v_ins_srtdeel_code||'(REGEL '||v_count_import||')';
|
||
d_ins_discipline_omschrijving:='';
|
||
BEGIN
|
||
SELECT ins_discipline_key, ins_discipline_omschrijving
|
||
INTO v_discipline_key, d_ins_discipline_omschrijving
|
||
FROM ins_discipline d
|
||
WHERE SUBSTR (d.ins_discipline_omschrijving, 1, 1) = SUBSTR (v_ins_srtdeel_code, 1, 1) AND d.ins_discipline_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
INSERT INTO ins_tab_discipline (ins_discipline_module,ins_discipline_omschrijving,
|
||
ins_discipline_min_level)
|
||
VALUES ('INS', SUBSTR (v_ins_srtdeel_code, 1, 1) || '-'|| v_ins_discipline_omschrijving, 1)
|
||
RETURNING ins_discipline_key
|
||
INTO v_discipline_key;
|
||
|
||
INSERT INTO ins_disc_params (ins_discipline_key,
|
||
ins_disc_params_autonum)
|
||
VALUES (v_discipline_key, 2);
|
||
d_ins_discipline_omschrijving:=SUBSTR (v_ins_srtdeel_code, 1, 1) || '-'|| v_ins_discipline_omschrijving;
|
||
END;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtgroep_omschrijving: ' || v_ins_srtdeel_code ||'(REGEL '||v_count_import||')';
|
||
d_ins_srtgroep_omschrijving:='';
|
||
|
||
|
||
BEGIN
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtgroep_omschrijving(2): ' || v_ins_srtdeel_code ||'(REGEL '||v_count_import||')';
|
||
SELECT ins_srtgroep_key,sg.ins_srtgroep_omschrijving
|
||
INTO v_srtgroep_key, d_ins_srtgroep_omschrijving
|
||
FROM ins_srtgroep sg
|
||
WHERE UPPER(sg.ins_srtgroep_omschrijving) = UPPER(SUBSTR (v_ins_srtdeel_code, 1, 2) || '-'|| v_ins_srtgroep_omschrijving)
|
||
AND sg.ins_srtgroep_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtgroep_omschrijving(3): ' || v_ins_srtdeel_code ||'(REGEL '||v_count_import||')';
|
||
INSERT INTO ins_srtgroep (ins_discipline_key,
|
||
ins_srtgroep_module,
|
||
ins_srtgroep_omschrijving)
|
||
VALUES (v_discipline_key, 'INS', SUBSTR (v_ins_srtdeel_code, 1, 2) || '-'|| v_ins_srtgroep_omschrijving)
|
||
RETURNING ins_srtgroep_key
|
||
INTO v_srtgroep_key;
|
||
d_ins_srtgroep_omschrijving := SUBSTR (v_ins_srtdeel_code, 1, 2) || '-'|| v_ins_srtgroep_omschrijving;
|
||
END;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtdeel_omschrijving: ' || v_ins_srtdeel_code||'(REGEL '||v_count_import||')';
|
||
d_ins_srtdeel_omschrijving:='';
|
||
BEGIN
|
||
SELECT sd.ins_srtdeel_omschrijving
|
||
INTO v_ins_srtdeel_omschrijving
|
||
FROM ins_srtdeel sd
|
||
WHERE sd.ins_srtdeel_code = v_ins_srtdeel_code AND sd.ins_srtdeel_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
INSERT INTO ins_srtdeel (ins_srtgroep_key,
|
||
ins_srtdeel_module,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_srtdeel_binding)
|
||
VALUES (v_srtgroep_key,
|
||
'INS',
|
||
v_ins_srtdeel_code,
|
||
v_ins_srtdeel_omschrijving,
|
||
17);
|
||
|
||
d_ins_srtdeel_omschrijving := v_ins_srtdeel_omschrijving;
|
||
END;
|
||
|
||
v_errormsg := 'Fout bij toevoegen te impoteren v_alg_ruimte_nr: ' || v_alg_ruimte_nr;
|
||
|
||
v_alg_locatie_code:='';
|
||
v_alg_gebouw_code :='';
|
||
v_alg_verdieping_volgnr:=-4;
|
||
BEGIN
|
||
|
||
SELECT alg_locatie_code, alg_gebouw_upper, alg_verdieping_volgnr INTO v_alg_locatie_code,v_alg_gebouw_code, v_alg_verdieping_volgnr
|
||
FROm alg_v_ruimte_gegevens rg
|
||
WHERE UPPER(rg.alg_ruimte_nr) = UPPER(v_alg_ruimte_nr) AND rg.alg_gebouw_upper = UPPER(v_gebouw_code) AND rg.alg_verdieping_volgnr=v_alg_verdieping_volgnr;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_alg_locatie_code:='PP';
|
||
v_alg_gebouw_code := v_gebouw_code;
|
||
v_alg_verdieping_volgnr:='0';
|
||
v_alg_ruimte_nr:='_000';
|
||
END;
|
||
|
||
|
||
IF v_ins_deel_component IS NOT NULL AND LENGTH(v_ins_deel_component)>1 THEN
|
||
v_ins_deel_omschrijving_compleet :=v_ins_deel_omschrijving||'-'||v_ins_deel_component;
|
||
ELSIF v_kenmerk1 IS NOT NULL AND LENGTH(v_kenmerk1)>1 THEN
|
||
v_ins_deel_omschrijving_compleet :=v_ins_deel_omschrijving||'-'||v_kenmerk1;
|
||
ELSE
|
||
v_ins_deel_omschrijving_compleet :=v_ins_deel_omschrijving;
|
||
END IF;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
v_errormsg := '1 Fout bij toevoegen te impoteren startjaar('||v_ins_deel_omschrijving||'): ' || v_kenmerk16||'(REGEL '||v_count_import||')';
|
||
v_ins_deel_aanmaak := NULL;
|
||
|
||
IF v_kenmerk12 IS NULL
|
||
THEN
|
||
v_cyclus:=1;
|
||
ELSE
|
||
v_cyclus := to_number(v_kenmerk12);
|
||
END IF;
|
||
|
||
IF v_kenmerk16 IS NOT NULL
|
||
THEN
|
||
IF v_kenmerk16='0' THEN
|
||
v_ins_deel_aanmaak := to_date('01012022' , 'ddmmyyyy');
|
||
ELSE
|
||
|
||
v_startjaar:= to_number(v_kenmerk16);
|
||
|
||
v_startjaar:=v_startjaar-v_cyclus;
|
||
|
||
v_ins_deel_aanmaak := TO_DATE('0101'||v_startjaar,'ddmmyyyy');
|
||
END IF;
|
||
|
||
ELSE
|
||
v_ins_deel_aanmaak := to_date('01012022' , 'ddmmyyyy');
|
||
END IF;
|
||
|
||
v_errormsg := '1 Fout bij bepalen cyclus ('||v_ins_deel_omschrijving||'): ' || v_kenmerk12||'(REGEL '||v_count_import||')';
|
||
IF v_kenmerk12 IS NOT NULL AND LENGTH(v_kenmerk12)>1 THEN
|
||
IF v_kenmerk12=0 THEN
|
||
v_kenmerk12:=99; -- deze gaan we als eenmalige post inlezen
|
||
END IF;
|
||
ELSE
|
||
v_kenmerk12:=1; -- deze gaan we als eenmalige post inlezen
|
||
END IF;
|
||
|
||
|
||
v_ongeldig:=0;
|
||
IF v_ongeldig=0 THEN
|
||
v_errormsg:='Fout bij insert regel '||v_count_tot;
|
||
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
ins_deel_aanmaak,
|
||
ins_deel_aantal,
|
||
ins_kenmerkwaarde1, -- Code OP
|
||
ins_kenmerkwaarde2, -- Bouwjaar ?
|
||
ins_kenmerkwaarde3, -- eenheid ?
|
||
ins_kenmerkwaarde10, -- Srt Taak Groep
|
||
ins_kenmerkwaarde11, -- Srt Taak
|
||
ins_kenmerkwaarde12, -- Periode
|
||
ins_kenmerkwaarde13, -- Interval (4=jaarlijks)
|
||
ins_kenmerkwaarde14, -- bedrag /matriaal
|
||
ins_kenmerkwaarde15, -- Taak opm
|
||
ins_kenmerkwaarde16) -- Taak startjaar
|
||
VALUES (SUBSTR(d_ins_discipline_omschrijving, 1,60),
|
||
SUBSTR(d_ins_srtgroep_omschrijving, 1, 60),
|
||
SUBSTR(v_ins_srtdeel_code,1,10),
|
||
SUBSTR(v_ins_srtdeel_omschrijving, 1, 100),
|
||
SUBSTR(v_ins_deel_omschrijving_compleet, 1, 60),
|
||
SUBSTR(v_ins_deel_opmerking, 1, 320),
|
||
SUBSTR(v_alg_locatie_code, 1, 10),
|
||
SUBSTR(v_alg_gebouw_code, 1, 12),
|
||
v_alg_verdieping_volgnr,
|
||
SUBSTR(v_alg_ruimte_nr,1,20),
|
||
v_ins_deel_aanmaak,
|
||
to_number(v_ins_deel_aantal),
|
||
DECODE(v_kenmerk1, NULL, NULL, 'CODE OP|0='||v_kenmerk1),
|
||
v_kenmerk4,
|
||
v_kenmerk3,
|
||
v_kenmerk10,
|
||
v_kenmerk11,
|
||
v_cyclus,
|
||
4,
|
||
v_kenmerk14,
|
||
v_kenmerk13,
|
||
v_kenmerk16
|
||
);
|
||
-- fac.imp_writelog (p_import_key,
|
||
-- 'S',
|
||
-- v_errormsg,
|
||
-- v_errorhint);
|
||
ELSE
|
||
v_ongeldig:=0;
|
||
v_ins_deel_omschrijving_compleet:='';
|
||
END IF;
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
|
||
END;
|
||
END LOOP;
|
||
|
||
|
||
-- loop nog een keer over de periodiek taken en kijk of deze taak ook voor dat object geld en maak er anders een xcp record voor met een cyclus van 99 jaar.
|
||
|
||
|
||
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_errorhint);
|
||
END pivp_import_assets;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_UPDATE_ASSETS(p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR sel IS
|
||
SELECT * FROM fac_imp_ins;
|
||
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (200);
|
||
v_errorhint VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (100);
|
||
v_deel_key NUMBER;
|
||
v_srtdeel_key NUMBER;
|
||
v_srtcontrole_key NUMBER;
|
||
v_srtcontroledl_xcp_key NUMBER;
|
||
|
||
v_taakcat_key NUMBER;
|
||
v_srtcontrole_omschrijving INS_SRTCONTROLE.INS_SRTCONTROLE_OMSCHRIJVING%TYPE;
|
||
v_srtcontrole_periode INS_SRTCONTROLE.INS_SRTCONTROLE_PERIODE%TYPE;
|
||
v_srtcontrole_materiaal INS_SRTCONTROLE.INS_SRTCONTROLE_MATERIAAL%TYPE;
|
||
v_srtcontrole_percentage INS_SRTCONTROLE.INS_SRTCONTROLE_PERCENTAGE%TYPE;
|
||
v_srtcontrole_level INS_SRTCONTROLE.INS_SRTCONTROLE_LEVEL%TYPE;
|
||
v_percentage NUMBER;
|
||
v_materiaal INS_SRTCONTROLEDL_XCP.INS_SRTCONTROLEDL_XCP_MATERIA%TYPE;
|
||
|
||
ins_deel_key NUMBER;
|
||
ins_srtdeel_key NUMBER;
|
||
v_count NUMBER;
|
||
v_error NUMBER;
|
||
v_taak_cyclus NUMBER;
|
||
v_taak_afmeld_date DATE;
|
||
v_taak_afmeld_jaar NUMBER;
|
||
v_taak_nextyear NUMBER;
|
||
|
||
BEGIN
|
||
|
||
fac_update_ins(p_import_key);
|
||
|
||
v_count:=0;
|
||
|
||
-- LOOP Over alle geimporteerde objecten
|
||
FOR rec IN sel
|
||
LOOP
|
||
v_error:=0;
|
||
BEGIN
|
||
|
||
v_count:=v_count+1;
|
||
-- volgens mij is deze niet meer nodig
|
||
v_materiaal := FAC.safe_to_number (REPLACE(rec.INS_KENMERKWAARDE14,'.',''));
|
||
|
||
-- Haal het object op
|
||
v_errorhint := 'Zoek object';
|
||
SELECT ins_deel_key, ins_srtdeel_key
|
||
INTO v_deel_key, v_srtdeel_key
|
||
FROM ins_deel
|
||
WHERE ins_deel_omschrijving = rec.ins_deel_omschrijving;
|
||
|
||
--Haal de taakgroep op
|
||
v_errorhint := 'Zoek taak categorie';
|
||
BEGIN
|
||
SELECT ins_discipline_key
|
||
INTO v_taakcat_key
|
||
FROM ctr_discipline
|
||
WHERE UPPER (ins_discipline_omschrijving) = UPPER (rec.ins_kenmerkwaarde10);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
v_taakcat_key:=5;
|
||
END;
|
||
|
||
|
||
|
||
v_taak_cyclus := TO_NUMBER(COALESCE(rec.ins_kenmerkwaarde12,0));
|
||
v_taak_nextyear := TO_NUMBER(rec.ins_kenmerkwaarde16);
|
||
|
||
IF (v_taak_cyclus=0 AND v_taak_nextyear>=2022) OR (v_taak_cyclus <> 0 AND v_taak_nextyear <> 0)
|
||
THEN
|
||
BEGIN
|
||
IF v_taak_cyclus=1 AND v_taak_nextyear <=2022 THEN
|
||
v_taak_afmeld_jaar := 2022;
|
||
ELSE
|
||
--v_taak_afmeld_jaar := v_taak_nextyear - v_taak_cyclus;
|
||
v_taak_afmeld_jaar := v_taak_nextyear;
|
||
END IF;
|
||
v_taak_afmeld_date := TO_DATE('0101'||v_taak_afmeld_jaar,'ddmmyyyy');
|
||
|
||
v_srtcontrole_omschrijving:='';
|
||
v_srtcontrole_omschrijving:= SUBSTR(rec.ins_kenmerkwaarde11,0,50);
|
||
IF rec.ins_kenmerkwaarde15 IS NOT NULL
|
||
THEN
|
||
v_srtcontrole_omschrijving:=v_srtcontrole_omschrijving||'-'||rec.ins_kenmerkwaarde15;
|
||
END IF;
|
||
v_srtcontrole_omschrijving:=v_srtcontrole_omschrijving || '-'|| rec.ins_srtdeel_code;
|
||
-- Heb ik deze srtcontrole al
|
||
SELECT ins_srtcontrole_key,
|
||
ins_srtcontrole_periode,
|
||
ins_srtcontrole_materiaal,
|
||
ins_srtcontrole_percentage
|
||
INTO v_srtcontrole_key,
|
||
v_srtcontrole_periode,
|
||
v_srtcontrole_materiaal,
|
||
v_srtcontrole_percentage
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtinstallatie_key = v_srtdeel_key
|
||
AND ins_srtcontrole_niveau = 'S'
|
||
AND ctr_discipline_key = v_taakcat_key
|
||
AND ins_srtcontrole_omschrijving=v_srtcontrole_omschrijving;
|
||
|
||
|
||
|
||
-- srtcontrole is er .
|
||
-- Wijkt deze af van de srtcontrole op begied van periode, materiaal
|
||
|
||
|
||
-- IF v_srtcontrole_periode <> COALESCE (TO_NUMBER (rec.ins_kenmerkwaarde12),0)
|
||
-- OR v_srtcontrole_materiaal <> v_materiaal
|
||
-- THEN
|
||
|
||
INSERT INTO ins_srtcontroledl_xcp
|
||
(ins_srtcontrole_key,
|
||
ins_deel_key,
|
||
ins_srtcontroledl_xcp_aantal,
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_materia,
|
||
ins_srtcontroledl_xcp_startdat,
|
||
ins_srtcontroledl_xcp_aanteh)
|
||
VALUES (v_srtcontrole_key,
|
||
v_deel_key,
|
||
rec.ins_deel_aantal,
|
||
4,
|
||
COALESCE (TO_NUMBER (rec.ins_kenmerkwaarde12),0),
|
||
v_materiaal,
|
||
v_taak_afmeld_date,
|
||
rec.ins_kenmerkwaarde3)
|
||
RETURNING ins_srtcontroledl_xcp_key
|
||
INTO v_srtcontroledl_xcp_key;
|
||
|
||
-- END IF;
|
||
|
||
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
v_errorhint := 'Bepalen level';
|
||
v_srtcontrole_level := 10;
|
||
v_srtcontrole_percentage:=0;
|
||
v_srtcontrole_omschrijving:= SUBSTR(rec.ins_kenmerkwaarde11,0,50);
|
||
IF rec.ins_kenmerkwaarde15 IS NOT NULL
|
||
THEN
|
||
v_srtcontrole_omschrijving:=v_srtcontrole_omschrijving||'-'||rec.ins_kenmerkwaarde15;
|
||
END IF;
|
||
v_srtcontrole_omschrijving:=v_srtcontrole_omschrijving || '-'|| rec.ins_srtdeel_code;
|
||
|
||
IF v_taak_cyclus=0 THEN
|
||
v_taak_cyclus:=99;
|
||
END IF;
|
||
|
||
v_errorhint := 'Aanmaken srtcontrole';
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_count||'-'||v_taak_cyclus||-v_taak_nextyear,
|
||
v_errorhint);
|
||
|
||
-- nu moet we een ins_srtcontrole aanmaken
|
||
|
||
INSERT INTO ins_srtcontrole (
|
||
ins_srtinstallatie_key,
|
||
ins_srtcontrole_niveau,
|
||
ins_srtcontrole_omschrijving,
|
||
ctr_discipline_key,
|
||
ins_Srtcontrole_periode,
|
||
ins_srtcontrole_eenheid,
|
||
ins_srtcontrole_level
|
||
)
|
||
VALUES (
|
||
v_srtdeel_key,
|
||
'S',
|
||
v_srtcontrole_omschrijving,
|
||
v_taakcat_key,
|
||
v_taak_cyclus,
|
||
4, -- Jaarlijks
|
||
v_srtcontrole_level
|
||
)
|
||
RETURNING ins_srtcontrole_key INTO v_srtcontrole_key;
|
||
|
||
|
||
INSERT INTO ins_srtcontroledl_xcp (
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_materia,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_srtcontroledl_xcp_aantal,
|
||
ins_deel_key,
|
||
ins_srtcontroledl_xcp_startdat,
|
||
ins_srtcontroledl_xcp_aanteh)
|
||
VALUES (v_srtcontrole_key, v_materiaal, COALESCE (TO_NUMBER (rec.ins_kenmerkwaarde12),0),4,rec.ins_deel_aantal, v_deel_key,v_taak_afmeld_date,rec.ins_kenmerkwaarde3)
|
||
RETURNING ins_srtcontroledl_xcp_key
|
||
INTO v_srtcontroledl_xcp_key;
|
||
|
||
|
||
COMMIT;
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_count||'-'||v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_errorhint := v_errormsg || ' - ' || v_aanduiding;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_count||'-'||v_errormsg,
|
||
v_errorhint);
|
||
END;
|
||
END LOOP;
|
||
|
||
END;
|
||
/
|
||
-- Einde PIVP_UPDATE_ASSETS
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_IMPORT_EXACT_DEBITEUREN (p_import_key NUMBER)
|
||
AS
|
||
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count_import NUMBER;
|
||
|
||
-- De importvelden:
|
||
v_debiteur_code VARCHAR2(100);
|
||
v_debiteur_naam VARCHAR2(100);
|
||
v_ruimte_nrs VARCHAR2(4000);
|
||
v_ruimte_code VARCHAR2(100);
|
||
v_cnt_achternaam VARCHAR2(100);
|
||
v_cnt_voornaam VARCHAR2(100);
|
||
v_cnt_tussenv VARCHAR2(100);
|
||
v_cnt_email VARCHAR2(100);
|
||
v_straat VARCHAR2(100);
|
||
v_postcode VARCHAR2(100);
|
||
v_plaats VARCHAR2(100);
|
||
v_telefoon VARCHAR2(100);
|
||
v_naam VARCHAR2(30);
|
||
|
||
v_ruimteseperator VARCHAR2(1) :='|';
|
||
|
||
v_ruimtecounter NUMBER;
|
||
v_subcounter NUMBER;
|
||
BEGIN
|
||
|
||
header_is_valid := 0;
|
||
v_count_import := 0;
|
||
v_subcounter:=0;
|
||
|
||
|
||
|
||
DELETE FROM fac_imp_kpn;
|
||
DELETE FROM fac_imp_organisatie;
|
||
DELETE FROM fac_imp_ext_bedrijf;
|
||
-- DELETE FROM fac_imp_csv;
|
||
|
||
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
v_subcounter:=0;
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
v_count_import:=v_count_import+1;
|
||
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen te importeren rij '||v_count_import;
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_debiteur_code);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_debiteur_naam);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_ruimte_nrs);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_cnt_achternaam);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 5, v_cnt_voornaam);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_cnt_tussenv);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_cnt_email);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_straat);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_postcode);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_plaats);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 11, v_telefoon);
|
||
|
||
|
||
v_naam:= v_cnt_voornaam||COALESCE(v_cnt_tussenv,' '||v_cnt_tussenv,'')||' '||v_cnt_achternaam;
|
||
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_count_import||';'||v_debiteur_code||';'||v_debiteur_naam||';'||v_ruimte_nrs,
|
||
v_errorhint);
|
||
|
||
INSERT INTO fac_imp_kpn (prs_kostenplaats_nr,
|
||
prs_kostenplaats_omschrijving,
|
||
prs_kostenplaats_module)
|
||
VALUES (v_debiteur_code,
|
||
v_debiteur_naam,
|
||
'PRS'
|
||
);
|
||
|
||
INSERT INTO fac_imp_organisatie(prs_bedrijf_naam,
|
||
prs_afdeling_naam,
|
||
prs_afdeling_omschrijving,
|
||
prs_kostenplaats_nr)
|
||
VALUES('Huurders',
|
||
v_debiteur_code,
|
||
v_debiteur_naam,
|
||
v_debiteur_code);
|
||
|
||
INSERT INTO fac_imp_ext_bedrijf(prs_bedrijf_naam,
|
||
prs_leverancier_nr,
|
||
prs_bedrijf_bezoek_adres,
|
||
prs_bedrijf_bezoek_postcode,
|
||
prs_bedrijf_bezoek_plaats,
|
||
prs_bedrijf_telefoon,
|
||
prs_bedrijf_contact_persoon,
|
||
prs_bedrijf_email,
|
||
prs_bedrijf_huurder)
|
||
VALUES(v_debiteur_naam,
|
||
v_debiteur_code,
|
||
v_straat,
|
||
v_postcode,
|
||
v_plaats,
|
||
v_telefoon,
|
||
v_naam,
|
||
v_cnt_email,
|
||
1);
|
||
|
||
-- hoeveel ruimtes hebben we in de lijst staan
|
||
/* SELECT (LENGTH(v_ruimte_nrs) - NVL(LENGTH(REPLACE(v_ruimte_nrs,v_ruimteseperator)),0)) / LENGTH(v_ruimteseperator)
|
||
INTO v_ruimtecounter
|
||
FROM dual;
|
||
|
||
|
||
|
||
IF v_ruimtecounter=0 AND LENGTH(v_ruimte_nrs)>0 THEN
|
||
-- we hebben een ruimte en er ook maar 1.
|
||
INSERT INTO FAC_IMP_CSV (FAC_IMPORT_KEY,
|
||
FAC_IMP_CSV_COL01,
|
||
FAC_IMP_CSV_COL02,
|
||
FAC_IMP_CSV_COL03,
|
||
FAC_IMP_CSV_INDEX)
|
||
VALUES (p_import_key,
|
||
v_debiteur_code,
|
||
v_ruimte_nrs,
|
||
v_debiteur_naam,
|
||
v_count_import);
|
||
ELSE
|
||
v_subcounter:=1;
|
||
v_ruimtecounter:=v_ruimtecounter+1; -- we moeten er 1 bij optellen ander missen we de laatste ruimte
|
||
WHILE (v_subcounter<=v_ruimtecounter)
|
||
LOOP
|
||
fac.imp_getfield_nr (v_ruimte_nrs, v_ruimteseperator, v_subcounter, v_ruimte_code);
|
||
|
||
INSERT INTO FAC_IMP_CSV (FAC_IMPORT_KEY,
|
||
FAC_IMP_CSV_COL01,
|
||
FAC_IMP_CSV_COL02,
|
||
FAC_IMP_CSV_COL03,
|
||
FAC_IMP_CSV_INDEX)
|
||
VALUES (p_import_key,
|
||
v_debiteur_code,
|
||
v_ruimte_code,
|
||
v_debiteur_naam,
|
||
v_count_import);
|
||
v_subcounter:=v_subcounter+1;
|
||
END LOOP;
|
||
|
||
END IF;
|
||
*/
|
||
END LOOP;
|
||
|
||
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_UPDATE_EXACT_DEBITEUREN (p_import_key NUMBER)
|
||
AS
|
||
CURSOR huurders IS
|
||
SELECT *
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key;
|
||
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
|
||
v_gebouw_code VARCHAR2(12);
|
||
v_ruimte_nr VARCHAR2(20);
|
||
|
||
v_ruimte_key NUMBER;
|
||
v_afdeling_key NUMBER;
|
||
v_ruimteafdeling_key NUMBER;
|
||
v_huurder_key NUMBER;
|
||
|
||
BEGIN
|
||
|
||
fac_update_kpn(p_import_key);
|
||
fac_update_organisatie(p_import_key);
|
||
fac_update_ext_bedrijf(p_import_key);
|
||
/* FOR rec in huurders
|
||
LOOP
|
||
v_huurder_key:=-1;
|
||
BEGIN
|
||
v_errormsg:='Fout bij ophalen ruimte '||rec.FAC_IMP_CSV_COL02;
|
||
|
||
v_gebouw_code:=SUBSTR(rec.FAC_IMP_CSV_COL02,1,INSTR(rec.FAC_IMP_CSV_COL02,'-')-1);
|
||
v_ruimte_nr := SUBSTR(rec.FAC_IMP_CSV_COL02,INSTR(rec.FAC_IMP_CSV_COL02,'-')+1,LENGTH(rec.FAC_IMP_CSV_COL02));
|
||
SELECT alg_ruimte_key
|
||
INTO v_ruimte_key
|
||
FROM alg_v_onroerendgoed_gegevens
|
||
WHERE alg_ruimte_nr=v_ruimte_nr
|
||
AND alg_gebouw_code=v_gebouw_code;
|
||
|
||
v_errormsg:='Fout bij ophalen afdeling '||rec.FAC_IMP_CSV_COL01;
|
||
SELECT prs_afdeling_key
|
||
INTO v_afdeling_key
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_naam=rec.fac_imp_csv_col01;
|
||
|
||
BEGIN
|
||
v_errormsg:='Fout bij ophalen ruimteafdeling bezetting';
|
||
-- Eerst kijken of deze afdeling/debiteur al aan de ruimte is gekoppeld
|
||
SELECT prs_ruimteafdeling_key
|
||
INTO v_ruimteafdeling_key
|
||
FROM prs_ruimteafdeling
|
||
WHERE prs_afdeling_key=v_afdeling_key
|
||
AND alg_ruimte_key=v_ruimte_key
|
||
AND prs_ruimteafdeling_verwijder IS NULL;
|
||
EXCEPTION WHEN NO_DATA_FOUND THEN
|
||
INSERT INTO prs_ruimteafdeling(PRS_AFDELING_KEY,
|
||
ALG_RUIMTE_KEY,
|
||
PRS_RUIMTEAFDELING_BEZETTING)
|
||
VALUES (v_afdeling_key,
|
||
v_ruimte_key,
|
||
100);
|
||
END;
|
||
SELECT fac_usrdata_key
|
||
INTO v_huurder_key
|
||
FROM pivp_v_huurdersbedrijf
|
||
WHERE fac_usrdata_omschr = rec.fac_imp_csv_col03;
|
||
IF v_huurder_key>0 THEN
|
||
alg.upsertkenmerk(1021,v_ruimte_key,v_huurder_key);
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Huurder '|| rec.fac_imp_csv_col03||' niet kunnen vinden als leveranciers/huurders' ,
|
||
'niet gevonden');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
'niet gevonden');
|
||
END;
|
||
END LOOP;
|
||
*/
|
||
|
||
END;
|
||
/
|
||
-- EINDE IMPORT EXACT_DEBITEUREN
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_IMPORT_EXACT_RUIMTES(p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
header_is_valid NUMBER;
|
||
v_count_import NUMBER;
|
||
|
||
-- De importvelden:
|
||
v_huurder_code VARCHAR2(100);
|
||
v_huurder_codeoud VARCHAR2(100);
|
||
v_huurder_naam VARCHAR2(100);
|
||
v_locatie_code VARCHAR2(10);
|
||
v_gebouw_code VARCHAR2(10);
|
||
v_verdieping_volgnr VARCHAR2(10);
|
||
v_verdieping_nr NUMBER;
|
||
v_ruimte_nr VARCHAR2(100);
|
||
v_ruimte_omsc VARCHAR2(30);
|
||
v_bvo VARCHAR2(10);
|
||
v_bvo_nr NUMBER;
|
||
v_km_verhuurbaar VARCHAR2(20);
|
||
v_srtruimte VARCHAR2(50);
|
||
v_km_vvo VARCHAR2(10);
|
||
v_km_verhuurtype VARCHAR2(10);
|
||
v_verhuurtype VARCHAR2(60);
|
||
v_ruimtecounter NUMBER;
|
||
v_subcounter NUMBER;
|
||
v_huurder_kenm_key NUMBER;
|
||
v_vvo_kenm_key NUMBER;
|
||
v_hrTp_kenm_key NUMBER;
|
||
v_vhrbr_kenm_key NUMBER;
|
||
BEGIN
|
||
header_is_valid := 0;
|
||
v_count_import := 0;
|
||
v_subcounter:=0;
|
||
|
||
|
||
|
||
DELETE FROM fac_imp_onrgoed2;
|
||
|
||
SELECT alg_kenmerk_key INTO v_huurder_kenm_key FROM alg_kenmerk WHERE alg_kenmerk_upper='HUURDER';
|
||
SELECT alg_kenmerk_key INTO v_vvo_kenm_key FROM alg_kenmerk WHERE alg_kenmerk_upper='VVO';
|
||
SELECT alg_kenmerk_key INTO v_hrTp_kenm_key FROM alg_kenmerk WHERE alg_kenmerk_upper='VERHUURTYPE';
|
||
SELECT alg_kenmerk_key INTO v_vhrbr_kenm_key FROM alg_kenmerk WHERE alg_kenmerk_upper='VERHUURBAAR';
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
v_count_import:=v_count_import+1;
|
||
IF v_count_import>1 THEN
|
||
v_newline := rec.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen te importeren rij '||v_count_import;
|
||
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_locatie_code);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_gebouw_code);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_verdieping_volgnr);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_ruimte_nr);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 5, v_ruimte_omsc);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_bvo);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_huurder_naam);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_huurder_codeoud);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_huurder_code);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_km_verhuurbaar);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 11, v_srtruimte);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 13, v_km_vvo);
|
||
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 15, v_km_verhuurtype);
|
||
|
||
v_ruimte_nr := SUBSTR(v_ruimte_nr, INSTR(v_ruimte_nr,'-')+1, LENGTH(v_ruimte_nr));
|
||
|
||
|
||
|
||
v_verdieping_nr := fac.safe_to_number(v_verdieping_volgnr);
|
||
v_bvo_nr := fac.safe_to_number(REPLACE(v_bvo,',','.'));
|
||
BEGIN
|
||
SELECT ud.fac_usrdata_omschr
|
||
INTO v_verhuurtype
|
||
FROM alg_kenmerk k, fac_kenmerkdomein d, fac_v_aanwezigusrdata ud
|
||
WHERE k.alg_kenmerk_key = v_hrTp_kenm_key
|
||
AND k.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND UPPER (TRIM (ud.fac_usrdata_CODE)) = UPPER (v_km_verhuurtype);
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_verhuurtype:=null;
|
||
END;
|
||
|
||
|
||
/* IF SUBSTR(v_huurder_codeoud,1,2)='DB' THEN
|
||
BEGIN
|
||
UPDATE prs_bedrijf pb
|
||
SET pb.prs_leverancier_nr=v_huurder_code
|
||
WHERE pb.prs_bedrijf_naam_upper = UPPER(v_huurder_naam)
|
||
AND pb.prs_leverancier_nr=v_huurder_codeoud;
|
||
EXCEPTION WHEN NO_DATA_FOUND THEN
|
||
null;
|
||
END;
|
||
END IF;*/
|
||
|
||
INSERT INTO fac_imp_onrgoed2 (alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_srtruimte_omschrijving,
|
||
alg_ruimte_nr,
|
||
alg_ruimte_omschrijving,
|
||
alg_ruimte_bruto_vloeropp,
|
||
alg_kenmerkwaarde1,
|
||
alg_kenmerkwaarde2,
|
||
alg_kenmerkwaarde3,
|
||
alg_kenmerkwaarde4)
|
||
VALUES(v_locatie_code,
|
||
v_gebouw_code,
|
||
v_verdieping_nr,
|
||
v_srtruimte,
|
||
v_ruimte_nr,
|
||
v_ruimte_omsc,
|
||
v_bvo_nr,
|
||
DECODE(v_km_verhuurbaar, NULL, NULL, v_vhrbr_kenm_key||'='||v_km_verhuurbaar),
|
||
DECODE(v_km_vvo, NULL, NULL, v_vvo_kenm_key||'='||v_km_vvo),
|
||
DECODE(v_km_verhuurtype, NULL, NULL, v_hrTp_kenm_key||'='||v_verhuurtype),
|
||
DECODE(v_huurder_naam, NULL, NULL, v_huurder_kenm_key||'='||v_huurder_naam)
|
||
);
|
||
END IF;
|
||
END LOOP;
|
||
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_UPDATE_EXACT_RUIMTES(p_import_key IN NUMBER)
|
||
AS
|
||
|
||
BEGIN
|
||
fac_update_onrgoed2(p_import_key);
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_IMPORT_EXACT_RUIMTEHUURD(p_import_key NUMBER)
|
||
AS
|
||
BEGIN
|
||
fac_import_genericcsv(p_import_key);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_UPDATE_EXACT_RUIMTEHUURD(p_import_key NUMBER)
|
||
AS
|
||
CURSOR csv IS
|
||
SELECT *
|
||
FROM fac_imp_csv
|
||
WHERE fac_import_key=p_import_key;
|
||
v_errormsg VARCHAR2 (1000);
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_ruimte_nr VARCHAR2(100);
|
||
v_gebouw_code VARCHAR2(100);
|
||
v_debiteur VARCHAR2(100);
|
||
v_ruimte_key NUMBER;
|
||
v_huurder_key NUMBER;
|
||
v_huurder_naam VARCHAR2(60);
|
||
v_huidige_huurder_nr VARCHAR2(20);
|
||
v_huidige_huurder_naam VARCHAR2(60);
|
||
v_tracking_msg VARCHAR2(100);
|
||
v_counter NUMBER;
|
||
v_insert_counter NUMBER;
|
||
BEGIN
|
||
v_counter:=0;
|
||
v_insert_counter:=0;
|
||
FOR rec IN csv
|
||
LOOP
|
||
|
||
IF UPPER(rec.fac_imp_csv_col01)<>'RUIMTE' THEN
|
||
v_counter:=v_counter+1;
|
||
v_gebouw_code:=SUBSTR(rec.fac_imp_csv_col01,1,INSTR(rec.fac_imp_csv_col01,'-')-1);
|
||
v_ruimte_nr := SUBSTR(rec.fac_imp_csv_col01,INSTR(rec.fac_imp_csv_col01,'-')+1,LENGTH(rec.fac_imp_csv_col01));
|
||
v_debiteur := rec.fac_imp_csv_col02;
|
||
BEGIN
|
||
v_errorhint:='Ruimte '||v_ruimte_nr||'in gebouw '||v_gebouw_code||' niet gevonden';
|
||
v_errormsg:='Ruimte niet gevonden';
|
||
SELECT alg_ruimte_key
|
||
INTO v_ruimte_key
|
||
FROM alg_v_onroerendgoed_gegevens
|
||
WHERE alg_ruimte_nr=v_ruimte_nr
|
||
AND alg_gebouw_code=v_gebouw_code;
|
||
EXCEPTION WHEN NO_DATA_FOUND THEN
|
||
v_ruimte_key:=-1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_errorhint ,
|
||
v_errormsg);
|
||
END;
|
||
IF v_ruimte_key>0 THEN
|
||
BEGIN
|
||
v_errorhint:='Huurder '||v_debiteur||' niet gevonden';
|
||
v_errormsg:='Huurder niet gevonden';
|
||
SELECT prs_bedrijf_key , p.prs_bedrijf_naam
|
||
INTO v_huurder_key , v_huurder_naam
|
||
FROM prs_bedrijf p
|
||
WHERE p.prs_leverancier_nr = v_debiteur
|
||
AND p.prs_bedrijf_huurder=1
|
||
AND p.prs_bedrijf_verwijder IS NULL;
|
||
|
||
EXCEPTION WHEN NO_DATA_FOUND THEN
|
||
v_huurder_key:=-1;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
v_errorhint ,
|
||
v_errormsg);
|
||
END;
|
||
END IF;
|
||
IF v_huurder_key>0 AND v_ruimte_key>0
|
||
THEN
|
||
BEGIN
|
||
SELECT p.prs_leverancier_nr, p.prs_bedrijf_naam
|
||
INTO v_huidige_huurder_nr, v_huidige_huurder_naam
|
||
FROM alg_v_onroerendgoed_gegevens alg, alg_onrgoedkenmerk aok, prs_bedrijf p
|
||
WHERE alg.alg_ruimte_key=v_ruimte_key
|
||
AND aok.alg_onrgoed_key = alg.alg_ruimte_key
|
||
AND aok.alg_kenmerk_key=1021
|
||
AND p.prs_bedrijf_key=aok.alg_onrgoedkenmerk_waarde;
|
||
|
||
IF v_debiteur<>v_huidige_huurder_nr THEN
|
||
v_tracking_msg :='IMP: Huurder gewijzigd van '||v_huidige_huurder_naam||'('|| v_huidige_huurder_nr||')'||' naar '||v_huurder_naam||'('||v_debiteur||')';
|
||
END IF;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
v_tracking_msg :='IMP: Nieuwe huurder '||v_huurder_naam||'('||v_debiteur||')';
|
||
|
||
END;
|
||
END IF;
|
||
|
||
IF v_ruimte_key>0 AND v_huurder_key>0 THEN
|
||
alg.upsertkenmerk(1021,v_ruimte_key,v_huurder_key);
|
||
fac.trackaction ('ALGRUP', v_ruimte_key, 3, SYSDATE,
|
||
v_tracking_msg);
|
||
v_insert_counter:=v_insert_counter+1;
|
||
END IF;
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Regels ingelezen :'||v_counter||' waarvan '||v_insert_counter||' geupdate',
|
||
v_errormsg);
|
||
END IF;
|
||
|
||
END LOOP;
|
||
DELETE FROM fac_imp_csv WHERE fac_import_key=p_import_key;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_IMPORT_RELATIES(p_import_key IN NUMBER)
|
||
AS
|
||
BEGIN
|
||
fac_import_ext_bedrijf(p_import_key);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_UPDATE_RELATIES(p_import_key IN NUMBER)
|
||
AS
|
||
|
||
CURSOR sel IS
|
||
SELECT * from fac_imp_ext_bedrijf;
|
||
|
||
v_prs_bedrijf_key NUMBER;
|
||
v_kenmerk_key NUMBER :=0;
|
||
|
||
BEGIN
|
||
fac_update_ext_bedrijf(p_import_key);
|
||
|
||
SELECT prs_kenmerk_key into v_kenmerk_key FROM prs_kenmerk WHERE prs_kenmerk_upper='EXACT ID' AND prs_kenmerk_niveau='B' AND prs_kenmerk_verwijder IS NULL;
|
||
IF v_kenmerk_key >0
|
||
THEN
|
||
FOR rec IN sel
|
||
LOOP
|
||
BEGIN
|
||
v_prs_bedrijf_key :=0;
|
||
SELECT b.prs_bedrijf_key INTO v_prs_bedrijf_key FROM prs_bedrijf b WHERE b.PRS_LEVERANCIER_NR = rec.PRS_LEVERANCIER_NR;
|
||
|
||
INSERT INTO prs_kenmerklink(prs_link_key,
|
||
prs_kenmerklink_niveau,
|
||
prs_kenmerk_key,
|
||
prs_kenmerklink_waarde)
|
||
VALUES(v_prs_bedrijf_key,
|
||
'B',
|
||
v_kenmerk_key,
|
||
rec.PRS_LEVERANCIER_NR);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Relatie niet gevonden',
|
||
'relatieNr :'||rec.prs_leverancier_nr);
|
||
END;
|
||
|
||
|
||
END LOOP;
|
||
ELSE
|
||
fac.imp_writelog (p_import_key,
|
||
'W',
|
||
'Exact ID kenmkerk niet gevonden',
|
||
'Exact ID kenmkerk niet gevonden');
|
||
END IF;
|
||
|
||
|
||
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_CATERINGRESER
|
||
AS
|
||
SELECT * FROM (
|
||
SELECT DISTINCT(rrr.res_rsv_ruimte_key) rrr_key,
|
||
rrr.res_reservering_key reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
||
AND fac_srtnotificatie_key = 117) last_upd,
|
||
rrr.res_rsv_ruimte_externsyncdate last_export,
|
||
rrr.res_rsv_ruimte_verwijder verw_datum,
|
||
COALESCE(rer.res_ruimte_friendlyname,alg.alg_ruimte_nr) ruimte_nr,
|
||
(SELECT prs_perslid_externid
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
|
||
(SELECT DISTINCT lev.PRS_BEDRIJF_EMAIL
|
||
FROM res_rsv_artikel rar,
|
||
res_artikel art,
|
||
res_disc_params dsp,
|
||
prs_bedrijf lev
|
||
WHERE rar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND art.res_artikel_key = rar.res_artikel_key
|
||
AND dsp.res_ins_discipline_key =
|
||
art.res_discipline_key
|
||
AND lev.prs_bedrijf_key = dsp.prs_bedrijf_key) cateraar,
|
||
rrr.RES_RSV_RUIMTE_VAN datum_van,
|
||
rrr.RES_RSV_RUIMTE_TOT datum_tot,
|
||
rrr.res_rsv_ruimte_omschrijving oms,
|
||
rrr.res_rsv_ruimte_bezoekers aantal,
|
||
alg.alg_locatie_code locatie_code,
|
||
'ruimte' soort,
|
||
ros.res_opstelling_omschrijving opstelling,
|
||
rrr.res_status_fo_key fo_status,
|
||
rrr.res_rsv_ruimte_dirtlevel dirtlevel
|
||
FROM res_rsv_ruimte rrr,
|
||
res_rsv_artikel rra,
|
||
res_ruimte_opstelling rop,
|
||
res_opstelling ros,
|
||
res_ruimte rer,
|
||
res_alg_ruimte rarm,
|
||
alg_v_ruimte_gegevens_all alg
|
||
WHERE rrr.res_status_bo_key = 2
|
||
AND rra.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
|
||
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
|
||
AND ros.res_opstelling_key = rop.res_opstelling_key
|
||
AND rer.res_ruimte_key = rop.res_ruimte_key
|
||
AND rarm.res_ruimte_key = rer.res_ruimte_key
|
||
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
|
||
UNION ALL
|
||
SELECT DISTINCT(rrr.res_rsv_ruimte_key) rrr_key,
|
||
rrr.res_reservering_key reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
rrr.res_rsv_ruimte_aanmaak aanmk_datum,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
||
AND fac_srtnotificatie_key = 117) last_upd,
|
||
rrr.res_rsv_ruimte_externsyncdate last_export,
|
||
rrr.res_rsv_ruimte_verwijder verw_datum,
|
||
alg.alg_ruimte_nr ruimte_nr,
|
||
(SELECT pa.PRS_PERSLID_EMAIL
|
||
FROM PRS_V_PERSLID_GEGEVENS pa
|
||
WHERE pa.prs_perslid_key = rrr.res_rsv_ruimte_contact_key) besteller,
|
||
(SELECT DISTINCT lev.prs_bedrijf_email
|
||
FROM res_rsv_artikel rar,
|
||
res_artikel art,
|
||
res_disc_params dsp,
|
||
prs_bedrijf lev
|
||
WHERE rar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND art.res_artikel_key = rar.res_artikel_key
|
||
AND dsp.res_ins_discipline_key =
|
||
art.res_discipline_key
|
||
AND lev.prs_bedrijf_key = dsp.prs_bedrijf_key) cateraar,
|
||
rrr.RES_RSV_RUIMTE_VAN datum_van,
|
||
rrr.RES_RSV_RUIMTE_TOT datum_tot,
|
||
rrr.res_rsv_ruimte_omschrijving oms,
|
||
rrr.res_rsv_ruimte_bezoekers aantal,
|
||
alg.alg_locatie_code locatie_code,
|
||
'losse-catering' soort,
|
||
'N.V.T.' opstelling,
|
||
rrr.res_status_fo_key fo_status,
|
||
0 dirtlevel
|
||
FROM res_rsv_ruimte rrr,
|
||
res_rsv_artikel rra,
|
||
alg_v_ruimte_gegevens_all alg
|
||
WHERE rrr.res_status_fo_key = 2
|
||
AND rra.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
|
||
AND alg.alg_ruimte_key = rrr.alg_ruimte_key
|
||
ORDER BY reservering_key)
|
||
WHERE aanmk_datum > SYSDATE-2/24
|
||
OR last_upd>aanmk_datum AND last_upd > SYSDATE-2/24;
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_NOTI_CATERAAR
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL,
|
||
NULL,
|
||
'Er is een '||
|
||
CASE WHEN last_upd > aanmk_datum THEN 'gewijzigde'
|
||
ELSE 'nieuwe' END
|
||
||' Catering aanvraag voor '||datum_van||', reservering numer '||reservering_key,
|
||
'CUST01',
|
||
reservering_key,
|
||
rrr_key,
|
||
cateraar,
|
||
NULL
|
||
FROM PIVP_V_CATERINGRESER
|
||
WHERE TRUNC(datum_van) > TRUNC(SYSDATE)
|
||
AND (AANMK_DATUM> SYSDATE-2/24 OR LAST_UPD> SYSDATE-2/24);
|
||
|
||
|
||
|
||
|
||
-- Registratie nieuwe gebruiker in afgelopen dag
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_NIEUWEGEBRUIKERS
|
||
(
|
||
perslid_key,
|
||
Naam,
|
||
Voornaam,
|
||
Email,
|
||
aanmaakdatum
|
||
)
|
||
AS
|
||
SELECT p.prs_perslid_key,p.prs_perslid_naam, p.prs_perslid_voornaam, prs_perslid_email, prs_perslid_aanmaak
|
||
FROM prs_perslid p, fac_gebruikersgroep fg, fac_groep fgr
|
||
WHERE p.prs_perslid_aanmaak> SYSDATE-1
|
||
AND p.prs_perslid_verwijder IS NULL
|
||
AND fg.prs_perslid_key = p.prs_perslid_key
|
||
AND fgr.fac_groep_key=fg.fac_groep_key
|
||
AND UPPER(fgr.fac_groep_omschrijving)='NIEUWEHUURDER';
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_NOTI_NIEUWEGEBRUIKER
|
||
(
|
||
sender,
|
||
receiver,
|
||
text,
|
||
code,
|
||
key,
|
||
xkey,
|
||
xemail,
|
||
xmobile
|
||
)
|
||
AS
|
||
SELECT NULL,
|
||
112, -- REANNE
|
||
'Gebruiker '||Naam||', '||Voornaam||' heeft zich op '||TO_CHAR(aanmaakdatum,'DD-MM-YYYY')||' geregistreerd op pivp.facilitor.nl',
|
||
'CUST02',
|
||
perslid_key,
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM pivp_v_nieuwegebruikers
|
||
UNION ALL
|
||
SELECT NULL,
|
||
110, -- JOHN TIESSENS
|
||
'Gebruiker '||Naam||', '||Voornaam||' heeft zich op '||TO_CHAR(aanmaakdatum,'DD-MM-YYYY')||' geregistreerd op pivp.facilitor.nl',
|
||
'CUST02',
|
||
perslid_key,
|
||
NULL,
|
||
NULL,
|
||
NULL
|
||
FROM pivp_v_nieuwegebruikers;
|
||
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_MLDEXPORT
|
||
AS
|
||
SELECT m.mld_melding_key melding_key,
|
||
msm.mld_stdmelding_omschrijving stdmelding,
|
||
md.ins_discipline_omschrijving vagroep,
|
||
isd.ins_srtdiscipline_omschrijving vakgroepType,
|
||
m.mld_melding_onderwerp onderwerp,
|
||
m.mld_melding_datum aanmaakdatum,
|
||
m.mld_melding_einddatum afmelddatum,
|
||
p.prs_perslid_key aanvrager,
|
||
p.prs_afdeling_key bedrijf_key,
|
||
pa.prs_afdeling_omschrijving bedrijf_naam,
|
||
pa.prs_afdeling_naam debiteurnr,
|
||
mkm.mld_kenmerkmelding_waarde factuurbedrag,
|
||
SUBSTR(md.ins_discipline_omschrijving,1,6) vakgroep_code,
|
||
(SElECT SUBSTR(d.FAC_USRDATA_OMSCHR,0,6)
|
||
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1, pivp_v_diensten d
|
||
WHERE UPPER(mk1.mld_kenmerk_omschrijving)='DIENSTEN CODE'
|
||
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
|
||
AND mkm1.mld_melding_key = m.mld_melding_key
|
||
AND d.fac_usrdata_key = fac.safe_to_number(mkm1.mld_kenmerkmelding_waarde)) dienstencode,
|
||
(SElECT mkm1.MLD_KENMERKMELDING_WAARDE
|
||
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
|
||
WHERE UPPER(mk1.mld_kenmerk_omschrijving)='PO NUMMER'
|
||
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
|
||
AND mkm1.mld_melding_key = m.mld_melding_key) ponummer,
|
||
(SElECT mkm1.MLD_KENMERKMELDING_WAARDE
|
||
FROM mld_kenmerk mk1, mld_kenmerkmelding mkm1
|
||
WHERE UPPER(mk1.mld_kenmerk_omschrijving)='FACTUUR INFO'
|
||
AND mkm1.mld_kenmerk_key = mk1.MLD_KENMERK_KEY
|
||
AND mkm1.mld_melding_key = m.mld_melding_key) factuurinfo
|
||
FROM mld_melding m ,
|
||
prs_perslid p,
|
||
prs_afdeling pa,
|
||
mld_stdmelding msm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline isd ,
|
||
mld_kenmerkmelding mkm,
|
||
mld_kenmerk mk
|
||
WHERE m.mld_melding_status=5
|
||
AND m.prs_perslid_key=p.prs_perslid_key
|
||
AND pa.prs_afdeling_key=p.prs_afdeling_key
|
||
AND pa.prs_bedrijf_key <> (SELECT prs_bedrijf_key -- alleen aanvrage die door niet PP medewrkers zijn gedaan
|
||
FROM prs_bedrijf pb
|
||
WHERE pb.prs_bedrijf_naam_upper='PIVOTPARK')
|
||
AND msm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND md.ins_discipline_key= msm.mld_ins_discipline_key
|
||
AND isd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
-- AND m.mld_melding_einddatum BETWEEN TO_DATE('01-08-2022','dd-mm-yyyy') AND SYSDATE
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='FACTUUR BEDRAG'
|
||
AND mkm.mld_melding_key = m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde)>0
|
||
AND m.mld_melding_externsyncdate IS NULL
|
||
ORDER BY p.prs_afdeling_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_CONTACTEXPORT
|
||
AS
|
||
SELECT mld_melding_key,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='VOORNAAM PASHOUDER'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key) voornaam,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='TUSSENVOEGSEL PASHOUDER'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key) tussenvoegsel,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='ACHTERNAAM PASHOUDER'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key) achternaam,
|
||
pa.prs_afdeling_naam debiteurnr,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='BEDRIJFSMAILADRES PASHOUDER'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key) email,
|
||
(SELECT COALESCE(mkm.mld_kenmerkmelding_waarde,'-')
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='FUNCTIE'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key) Functie,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='AFDELING'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key) afdeling,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm , mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='ALGEMEEN TELEFOONNR'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key) telefoonnummer,
|
||
(SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='MOBIEL NR'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key) mobiel,
|
||
(SELECT fu.fac_usrdata_omschr
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk, fac_usrdata fu
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='VOORKEURSTAAL'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key
|
||
AND fu.fac_usrdata_key=mkm.mld_kenmerkmelding_waarde) voorkeurstaal,
|
||
DECODE((SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='CXO'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key),'1','1','','0') CxO,
|
||
DECODE((SELECT mkm.MLD_KENMERKMELDING_WAARDE
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='EHS'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key),'1','1','','0') EHS,
|
||
DECODE((SELECT mkm.MLD_KENMERKMELDING_WAARDE
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='OPERATIONS'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key),'1','1','','0') operations,
|
||
DECODE((SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='SECRETARIAAT'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key),'1','1','','0') Secr,
|
||
DECODE((SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='MEDEWERKER'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key),'1','1','','0') medw,
|
||
DECODE((SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='COMMUNITY NEWSLETTER'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key),61,'1','0') comm_letter,
|
||
DECODE((SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='CORPORATE NEWSLETTER'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key),61,'1','0') corp_letter,
|
||
DECODE((SELECT mkm.mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding mkm, mld_kenmerk mk
|
||
WHERE mkm.mld_melding_key=m.mld_melding_key
|
||
AND mkm.mld_kenmerk_key=mk.mld_kenmerk_key
|
||
AND UPPER(mk.mld_kenmerk_omschrijving)='ACTIVITEITEN NEWSLETTER'
|
||
AND mk.mld_stdmelding_key=m.mld_stdmelding_key),61,'1','0') act_letter
|
||
FROM mld_melding m, prs_perslid p, prs_afdeling pa
|
||
WHERE m.mld_stdmelding_key=1421 -- A=1421 O/P=87
|
||
AND m.mld_melding_status=5 -- Melding moet afgemeld zijn
|
||
AND m.mld_melding_externsyncdate IS NULl
|
||
AND p.prs_perslid_key=m.prs_perslid_key
|
||
AND pa.prs_afdeling_key = p.prs_afdeling_key;
|
||
|
||
|
||
|
||
|
||
-- Thema voor huruders via kenmerk aam ruimte
|
||
CREATE OR REPLACE VIEW PIVP_V_THEMA_HUURDERS
|
||
(
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT r.alg_ruimte_key,
|
||
(SELECT PRS_LEVERANCIER_NR
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_key=aok.ALG_ONRGOEDKENMERK_WAARDE) waarde
|
||
FROM alg_ruimte r,
|
||
alg_kenmerk ak,
|
||
alg_onrgoedkenmerk aok
|
||
WHERE ak.alg_kenmerk_omschrijving='Huurder'
|
||
AND ak.alg_kenmerk_niveau='R'
|
||
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
||
AND r.alg_ruimte_key=aok.alg_onrgoed_key(+);
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_ZAALMUT
|
||
AS
|
||
SELECT rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
rr.res_ruimte_nr,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
ft.fac_tracking_oms,
|
||
ft.fac_tracking_datum
|
||
FROM res_rsv_ruimte rrr,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
fac_tracking ft
|
||
WHERE rrr.res_status_bo_key=2
|
||
AND rrr.res_rsv_ruimte_van > SYSDATE
|
||
AND rro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key
|
||
AND rr.res_ruimte_key = rro.res_ruimte_key
|
||
AND rr.res_ruimte_key IN (45,61)
|
||
AND ft.fac_tracking_refkey = rrr.res_rsv_ruimte_key
|
||
AND ft.fac_srtnotificatie_key = 117
|
||
AND ft.fac_tracking_datum> SYSDATE-1;
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_ZAALRESREVERING
|
||
AS
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key,
|
||
rrr.RES_RSV_RUIMTE_VOLGNR,
|
||
rr.res_ruimte_nr,
|
||
TRUNC(rrr.res_rsv_ruimte_van) datum,
|
||
TO_CHAR(rrr.res_rsv_ruimte_van,'HH24:MI') van,
|
||
TO_CHAR(rrr.res_rsv_ruimte_tot,'HH24:MI') tot,
|
||
res.getdeelresprijs(rrr.res_rsv_ruimte_key) prijs,
|
||
p.prs_perslid_naam,
|
||
pa.prs_afdeling_omschrijving,
|
||
pa.prs_afdeling_naam
|
||
FROM res_rsv_ruimte rrr,
|
||
res_activiteit ra,
|
||
res_activiteitdiscipline rad,
|
||
prs_perslid p,
|
||
prs_afdeling pa,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_status_bo_key=5
|
||
AND rro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key
|
||
AND rr.res_ruimte_key = rro.res_ruimte_key
|
||
AND ra.res_activiteit_key=10
|
||
AND ra.res_activiteit_key=rrr.res_activiteit_key
|
||
AND rad.res_activiteit_key=ra.res_activiteit_key
|
||
AND rad.res_discipline_key=21 -- alleen betaalde zalen O=21 A=281, P=21
|
||
AND p.prs_perslid_key=rrr.res_rsv_ruimte_host_key
|
||
AND pa.prs_afdeling_key=p.prs_afdeling_key
|
||
AND pa.prs_bedrijf_key<>81 -- PIVP uitsluiten O=81, P=81
|
||
AND res.getdeelresprijs(rrr.res_rsv_ruimte_key) > 0;
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_RESEXPORT
|
||
(
|
||
rrr_key,
|
||
reservering_nr,
|
||
reservering_volgNr,
|
||
ruimte_nr,
|
||
res_rsv_ruimte_van,
|
||
datum,
|
||
van,
|
||
tot,
|
||
bedrag,
|
||
reserveerder,
|
||
bedrijf_naam,
|
||
debiteurnr,
|
||
verwijderdatum,
|
||
externsyncdate
|
||
)
|
||
AS
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key,
|
||
rrr.RES_RSV_RUIMTE_VOLGNR,
|
||
rr.res_ruimte_nr,
|
||
rrr.res_rsv_ruimte_van,
|
||
TRUNC(rrr.res_rsv_ruimte_van) datum,
|
||
TO_CHAR(rrr.res_rsv_ruimte_van,'HH24:MI') van,
|
||
TO_CHAR(rrr.res_rsv_ruimte_tot,'HH24:MI') tot,
|
||
res.getdeelresprijs(rrr.res_rsv_ruimte_key) prijs,
|
||
p.prs_perslid_naam,
|
||
pa.prs_afdeling_omschrijving,
|
||
pa.prs_afdeling_naam,
|
||
rrr.res_rsv_ruimte_verwijder,
|
||
rrr.res_rsv_ruimte_externsyncdate
|
||
FROM res_rsv_ruimte rrr,
|
||
res_activiteit ra,
|
||
res_activiteitdiscipline rad,
|
||
res_discipline rdi,
|
||
prs_perslid p,
|
||
prs_afdeling pa,
|
||
prs_bedrijf pb,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr
|
||
WHERE rrr.res_status_bo_key=5
|
||
AND rro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key
|
||
AND rr.res_ruimte_key = rro.res_ruimte_key
|
||
AND ra.res_activiteit_key=10
|
||
AND ra.res_activiteit_key=rrr.res_activiteit_key
|
||
AND rad.res_activiteit_key=ra.res_activiteit_key
|
||
AND rdi.ins_discipline_key = rad.res_discipline_key
|
||
AND UPPER(rdi.ins_discipline_omschrijving)='PIVOT PARK (BETAALDE ZALEN)' -- alleen betaalde zalen
|
||
AND p.prs_perslid_key=rrr.res_rsv_ruimte_host_key
|
||
AND pa.prs_afdeling_key=p.prs_afdeling_key
|
||
AND pa.prs_bedrijf_key=pb.prs_bedrijf_key
|
||
AND pb.prs_bedrijf_naam_upper<>'PIVOTPARK' -- PIVP uitsluiten voor facturatie
|
||
AND res.getdeelresprijs(rrr.res_rsv_ruimte_key) > 0;
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_RAP_ZAALRES
|
||
( rrr_key,
|
||
reservering_nr,
|
||
volg_nr,
|
||
ruimte_nr,
|
||
catalogus,
|
||
datum_van,
|
||
datum_tot,
|
||
prijs,
|
||
maand,
|
||
duur,
|
||
aanvrager,
|
||
bedrijfsonderdeel,
|
||
debieteur,
|
||
bedrijfsnaam,
|
||
bo_status,
|
||
beschikbaar )
|
||
AS
|
||
SELECT rrr.res_rsv_ruimte_key,
|
||
rrr.res_reservering_key,
|
||
rrr.res_rsv_ruimte_volgnr,
|
||
rr.res_ruimte_nr,
|
||
rd.ins_discipline_omschrijving,
|
||
rrr.res_rsv_ruimte_van,
|
||
rrr.res_rsv_ruimte_tot,
|
||
res.getdeelresprijs(rrr.res_rsv_ruimte_key) prijs,
|
||
to_char(rrr.res_rsv_ruimte_van,'MM-YYYY') maand,
|
||
(rrr.res_rsv_ruimte_tot-rrr.res_rsv_ruimte_van)*24 duur,
|
||
(SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames_all where prs_perslid_key=p.prs_perslid_key) aanvrager,
|
||
pb.prs_bedrijf_naam,
|
||
pa.prs_afdeling_naam,
|
||
pa.prs_afdeling_omschrijving,
|
||
rsb.res_status_bo_omschrijving,
|
||
10 uur_beschikbaar
|
||
FROM res_rsv_ruimte rrr,
|
||
res_activiteit ra,
|
||
res_ruimte_opstelling rro,
|
||
res_ruimte rr,
|
||
res_discipline rd,
|
||
prs_perslid p,
|
||
prs_afdeling pa,
|
||
prs_bedrijf pb,
|
||
res_status_bo rsb
|
||
where rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND rrr.res_status_fo_key IN (1,2)
|
||
AND p.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
||
AND pa.prs_afdeling_key = p.prs_afdeling_key
|
||
AND pb.prs_bedrijf_key = pa.prs_bedrijf_key
|
||
AND ra.res_activiteit_key = rrr.res_activiteit_key
|
||
AND ra.res_activiteit_key =10 -- alleen vergaderingen
|
||
AND rro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key
|
||
AND rr.res_ruimte_key = rro.res_ruimte_key
|
||
AND rd.ins_discipline_key=rr.res_discipline_key
|
||
AND rsb.res_status_bo_key = rrr.res_status_bo_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_RAP_ZAALBEZETTING
|
||
(
|
||
ruimte_nr,
|
||
maand,
|
||
sort_datum,
|
||
percentage
|
||
)
|
||
AS
|
||
SELECT ruimte_nr,
|
||
maand,
|
||
to_char(datum_van,'YYYY-MM'),
|
||
SUM(duur)/SUM(beschikbaar)*100 percentage
|
||
FROM pivp_v_rap_zaalres
|
||
WHERE UPPER(bedrijfsonderdeel) NOT like '%PIVOTPARK%'
|
||
GROUP by ruimte_nr, maand, datum_van;
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_RAP_ZAALBEZETTING_ALL
|
||
(
|
||
ruimte_nr,
|
||
maand,
|
||
sort_datum,
|
||
percentage
|
||
)
|
||
AS
|
||
SELECT ruimte_nr,
|
||
maand,
|
||
to_char(datum_van,'YYYY-MM'),
|
||
SUM(duur)/SUM(beschikbaar)*100 percentage
|
||
FROM pivp_v_rap_zaalres
|
||
GROUP by ruimte_nr, maand, datum_van;
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_RAP_KLACHTEN
|
||
AS
|
||
SELECT NVL(m.mld_melding_start_key,m.mld_melding_key) hoofd_key,
|
||
m.mld_melding_key,
|
||
DECODE(UPPER(ms.mld_stdmelding_omschrijving), 'PREVENTIEVE MAATREGEL','MAATREGEL','HOOFDMELDING') soort,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_omschrijving,
|
||
TO_CHAR(m.mld_melding_datum,'DD-MM-YYYY') mld_melding_datum,
|
||
TO_CHAR(COALESCE(m.mld_melding_einddatum,m.MLD_MELDING_EINDDATUM_STD),'DD-MM-YYYY') mld_plandatum,
|
||
TO_CHAR(m.mld_melding_locked_date,'DD-MM-YYYY') mld_afmelddatum,
|
||
(SELECT s.mld_statuses_omschrijving
|
||
FROM mld_statuses s
|
||
WHERE s.mld_statuses_key= m.mld_melding_status) mld_status,
|
||
(SELECT p.prs_perslid_naam_friendly
|
||
FROM prs_v_perslid_fullnames p
|
||
WHERE p.prs_perslid_key = m.mld_melding_behandelaar_key) behandelaar,
|
||
(SELECT SUBSTR(p.prs_perslid_voornaam,1,1)||SUBSTR(p.prs_perslid_naam,1,1)
|
||
FROM prs_perslid p
|
||
WHERE p.prs_perslid_key=m.mld_melding_behandelaar_key) initialen,
|
||
(SELECT COALESCE(p.prs_perslid_telefoonnr, p.prs_perslid_mobiel)
|
||
FROM prs_perslid p
|
||
WHERE p.prs_perslid_key = m.mld_melding_behandelaar_key) beh_telefoon,
|
||
(SELECT p.prs_perslid_naam_friendly
|
||
FROM prs_v_perslid_fullnames p
|
||
WHERE p.prs_perslid_key = m.prs_perslid_key) aanvrager,
|
||
(select pa.PRS_AFDELING_NAAM from prs_afdeling pa, prs_perslid p
|
||
where p.PRS_PERSLID_KEY=m.prs_perslid_key
|
||
AND pa.PRS_AFDELING_KEY=p.PRS_AFDELING_KEY) bedrijf,
|
||
m.mld_melding_opmerking,
|
||
(SELECT p.prs_perslid_naam_friendly
|
||
FROM fac_tracking ft, prs_v_perslid_fullnames p
|
||
WHERE ft.fac_tracking_refkey=534
|
||
AND ft.fac_srtnotificatie_key=47
|
||
AND p.prs_perslid_key = ft.prs_perslid_key) afmelder,
|
||
(SELECT fud.FAC_USRDATA_OMSCHR FROM mld_kenmerkmelding km, MLD_KENMERK k, fac_usrdata fud
|
||
where km.mld_melding_key=m.mld_melding_key
|
||
AND k.MLD_KENMERK_KEY = km.MLD_KENMERK_KEY
|
||
AND UPPER(k.MLD_KENMERK_OMSCHRIJVING)='BETREFT FM NUMMER'
|
||
AND fud.FAC_USRDATA_KEY=km.MLD_KENMERKMELDING_WAARDE) FM_nummer
|
||
FROM mld_melding m , mld_stdmelding ms, mld_discipline md, ins_srtdiscipline isd
|
||
WHERE m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key=ms.mld_ins_discipline_key
|
||
AND isd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND isd.ins_srtdiscipline_omschrijving='Klacht'
|
||
ORDER BY hoofd_key;
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_RAP_KLACHTOVERZICHT
|
||
AS
|
||
SELECT m.mld_melding_key hoofd_key,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_omschrijving,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_einddatum,
|
||
(SELECT s.mld_statuses_omschrijving
|
||
FROM mld_statuses s
|
||
WHERE s.mld_statuses_key= m.mld_melding_status) mld_status,
|
||
(SELECT p.prs_perslid_naam_friendly
|
||
FROM prs_v_perslid_fullnames p
|
||
WHERE p.prs_perslid_key = m.mld_melding_behandelaar_key) behandelaar,
|
||
(SELECT p.prs_perslid_naam_friendly
|
||
FROM prs_v_perslid_fullnames p
|
||
WHERE p.prs_perslid_key = m.prs_perslid_key) aanvrager,
|
||
m.mld_melding_opmerking,
|
||
(SELECT p.prs_perslid_naam_friendly
|
||
FROM fac_tracking ft, prs_v_perslid_fullnames p
|
||
WHERE ft.fac_tracking_refkey=534
|
||
AND ft.fac_srtnotificatie_key=47
|
||
AND p.prs_perslid_key = ft.prs_perslid_key) afmelder,
|
||
(SELECT COUNT(*)
|
||
FROM mld_melding
|
||
WHERE mld_melding_start_key=m.mld_melding_key) maatregelen
|
||
FROM mld_melding m , mld_stdmelding ms, mld_discipline md, ins_srtdiscipline isd
|
||
WHERE m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key=ms.mld_ins_discipline_key
|
||
AND isd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND isd.ins_srtdiscipline_omschrijving='Klacht'
|
||
AND m.mld_melding_start_key IS NULL;
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_HUURDERSRAPPORT
|
||
AS
|
||
SELECT ok.alg_onrgoedkenmerk_waarde bedrijf_key,
|
||
SUM(ar.alg_ruimte_bruto_vloeropp) totaal_op
|
||
FROM alg_ruimte ar, alg_onrgoedkenmerk ok, prs_bedrijf p
|
||
WHERE p.prs_bedrijf_key=90
|
||
AND ok.alg_onrgoedkenmerk_waarde =p.prs_bedrijf_key
|
||
AND ok.alg_onrgoed_key = ar.alg_ruimte_key
|
||
AND ok.alg_onrgoed_niveau='R'
|
||
AND ok.alg_kenmerk_key=1040
|
||
GROUP BY ok.alg_onrgoedkenmerk_waarde;
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_HUURDERSBEDRIJF
|
||
(
|
||
FAC_USRDATA_KEY,
|
||
FAC_USRDATA_OMSCHR
|
||
)
|
||
AS
|
||
SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam
|
||
FROM prs_bedrijf b
|
||
WHERE b.prs_bedrijf_huurder=1
|
||
AND prs_bedrijf_verwijder IS NULL;
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_DIENSTEN
|
||
(
|
||
FAC_USRDATA_KEY,
|
||
FAC_USRDATA_OMSCHR
|
||
)
|
||
AS
|
||
SELECT md.ins_discipline_key,
|
||
md.ins_discipline_omschrijving
|
||
FROM mld_discipline md
|
||
WHERE SUBSTR(md.ins_discipline_omschrijving,1,2)='FM'
|
||
AND md.ins_discipline_verwijder IS NULL;
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_RUIMTEEXPORT
|
||
(
|
||
alg_ruimte_key,
|
||
locatie_code,
|
||
gebouw_code,
|
||
verdieping_code,
|
||
ruimte_nr,
|
||
ruimte_omschrijving,
|
||
wo,
|
||
huurder,
|
||
relatie_code,
|
||
verhuurbaar,
|
||
soort_ruimte,
|
||
vvo,
|
||
ruimte_type_verhuur,
|
||
mutatie_datum,
|
||
sync_datum
|
||
)
|
||
AS
|
||
SELECT alg.alg_ruimte_key,
|
||
alg.alg_locatie_code locatie_code,
|
||
agb.alg_gebouw_code gebouw_code,
|
||
alg.alg_verdieping_code verdieping_code,
|
||
agb.alg_gebouw_code||'-'||alg.alg_ruimte_nr ruimte_nr,
|
||
alg.alg_ruimte_omschrijving ruimte_omschrijving,
|
||
alg.alg_ruimte_bruto_vloeropp wo,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM pivp_v_huurdersbedrijf, alg_onrgoedkenmerk aok, alg_kenmerk ak
|
||
WHERE aok.alg_onrgoed_key =alg.alg_ruimte_key
|
||
AND aok.alg_kenmerk_key=ak.alg_kenmerk_key
|
||
AND UPPER(ak.alg_kenmerk_omschrijving)='HUURDER'
|
||
and ak.alg_kenmerk_verwijder IS NULL
|
||
AND fac_usrdata_key=fac.safe_to_number(aok.alg_onrgoedkenmerk_waarde)) huurder,
|
||
(SELECT pb.prs_leverancier_nr
|
||
FROM prs_bedrijf pb, pivp_v_huurdersbedrijf, alg_onrgoedkenmerk aok, alg_kenmerk ak
|
||
WHERE aok.alg_onrgoed_key =alg.alg_ruimte_key
|
||
AND aok.alg_kenmerk_key=ak.alg_kenmerk_key
|
||
AND UPPER(ak.alg_kenmerk_omschrijving)='HUURDER'
|
||
AND fac_usrdata_key=aok.alg_onrgoedkenmerk_waarde
|
||
AND pb.prs_bedrijf_naam=fac_usrdata_omschr
|
||
and ak.alg_kenmerk_verwijder IS NULL) relatie_code,
|
||
(SELECT DECODE(fud.fac_usrdata_code,'Verhuurbaar','1','0')
|
||
FROM alg_onrgoedkenmerk aok, alg_kenmerk ak, fac_usrdata fud
|
||
WHERE aok.alg_onrgoed_key =alg.alg_ruimte_key
|
||
AND aok.alg_kenmerk_key=ak.alg_kenmerk_key
|
||
AND UPPER(ak.alg_kenmerk_omschrijving)='VERHUURBAAR'
|
||
AND fud.fac_usrdata_key=fac.safe_to_number(aok.alg_onrgoedkenmerk_waarde)
|
||
and ak.alg_kenmerk_verwijder IS NULL) verhuurbaar,
|
||
alg.alg_srtruimte_omschrijving soort_ruimte,
|
||
(SELECT aok.alg_onrgoedkenmerk_waarde from alg_onrgoedkenmerk aok, alg_kenmerk ak
|
||
WHERE aok.alg_onrgoed_key=alg.alg_ruimte_key
|
||
AND ak.alg_kenmerk_key=aok.alg_kenmerk_key
|
||
AND ak.alg_kenmerk_upper='VVO'
|
||
and ak.alg_kenmerk_verwijder IS NULL) vvo,
|
||
--alg.alg_srtruimte_omschrijving ruimte_omsc2,
|
||
(SELECT fud.fac_usrdata_code
|
||
FROM alg_onrgoedkenmerk aok, alg_kenmerk ak, fac_usrdata fud
|
||
WHERE aok.alg_onrgoed_key =alg.alg_ruimte_key
|
||
AND aok.alg_kenmerk_key=ak.alg_kenmerk_key
|
||
AND UPPER(ak.alg_kenmerk_omschrijving)='VERHUURTYPE'
|
||
AND fud.fac_usrdata_key=fac.safe_to_number(aok.alg_onrgoedkenmerk_waarde)
|
||
and ak.alg_kenmerk_verwijder IS NULL) ruimte_type_verhuur,
|
||
(SELECT MAX(fac_tracking_datum)
|
||
FROM fac_tracking ft, fac_srtnotificatie fs
|
||
WHERE fs.fac_srtnotificatie_code='ALGRUP'
|
||
AND ft.fac_srtnotificatie_key = fs.FAC_SRTNOTIFICATIE_KEY
|
||
AND ft.FAC_TRACKING_REFKEY=alg.alg_ruimte_key) mut_datum,
|
||
(SELECT alg_ruimte_externsyncdate
|
||
FROM alg_ruimte ar
|
||
WHERE ar.alg_ruimte_key=alg.alg_ruimte_key) sync_datum
|
||
FROM alg_v_ruimte_gegevens alg, alg_gebouw agb
|
||
WHERE agb.alg_gebouw_key = alg.alg_gebouw_key
|
||
AND alg.alg_ruimte_nr NOT LIKE '_000';
|
||
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_ZAALRESERVERINGEN
|
||
(
|
||
reserveringnr,
|
||
ruimte,
|
||
omschrijving,
|
||
opmerking,
|
||
van,
|
||
tot,
|
||
host,
|
||
bedrijf,
|
||
prijs,
|
||
verwijder_datum
|
||
)
|
||
AS
|
||
SELECT res.res_reservering_key||'/'||res.res_rsv_ruimte_volgnr reserveringnr,
|
||
rr.res_ruimte_nr ruimte,
|
||
res.res_rsv_ruimte_omschrijving omschrijving,
|
||
res.res_rsv_ruimte_opmerking opmerking,
|
||
res.res_rsv_ruimte_van van,
|
||
res.res_rsv_ruimte_tot tot,
|
||
pvf.prs_perslid_naam_friendly host,
|
||
pa.prs_afdeling_omschrijving bedrijf,
|
||
RES.GETRESRUIMTEPRIJS(rr.res_ruimte_key,res.res_rsv_ruimte_van, res.res_rsv_ruimte_tot) prijs,
|
||
res.res_rsv_ruimte_verwijder verwijder_datum
|
||
FROM res_rsv_ruimte res, res_ruimte_opstelling rro, res_ruimte rr, prs_perslid pp, prs_afdeling pa, prs_v_perslid_fullnames pvf
|
||
WHERE res.res_ruimte_opstel_key = rro.res_ruimte_opstel_key
|
||
AND rr.res_ruimte_key = rro.res_ruimte_key
|
||
AND pvf.prs_perslid_key = pp.prs_perslid_key
|
||
AND pp.prs_perslid_key = res.res_rsv_ruimte_host_key
|
||
AND pa.prs_afdeling_key = pp.prs_afdeling_key
|
||
AND (res.res_rsv_ruimte_verwijder IS NULL OR (res.res_rsv_ruimte_verwijder IS NOT NULL AND res.res_rsv_ruimte_van < res.res_rsv_ruimte_verwijder));
|
||
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_OBJECT_MLD_QR
|
||
(
|
||
INS_DEEL_OMSC,
|
||
LOCATIE_CODE,
|
||
FCLT_F_LOCATIE,
|
||
FCLT_F_GEBOUW,
|
||
FCLT_F_PLAATS,
|
||
RUIMTENR,
|
||
NAAM,
|
||
FCLT_F_DISCIPLINE,
|
||
FCLT_F_OBJECTGROEP,
|
||
FCLT_F_OBJECTSOORT,
|
||
FCLT_F_IDENTIFICATIE,
|
||
FCLT_F_BOOKMARK,
|
||
INS_DEEL_KEY,
|
||
INS_SRTDEEL_KEY,
|
||
FCLT_3D_DISCIPLINE_KEY,
|
||
FCLT_3D_LOCATIE_KEY,
|
||
INS_ALG_RUIMTE_TYPE,
|
||
INS_ALG_RUIMTE_KEY,
|
||
BOOKMARK_ID,
|
||
GEKOPPELD_AAN
|
||
)
|
||
AS
|
||
SELECT i.ins_deel_omschrijving
|
||
hide_f_sort,
|
||
l.alg_locatie_code,
|
||
l.alg_locatie_code || ' ' || l.alg_locatie_omschrijving
|
||
fclt_f_locatie,
|
||
o.alg_gebouw_omschrijving
|
||
fclt_f_gebouw,
|
||
SUBSTR (o.alg_plaatsaanduiding, 13)
|
||
fclt_f_plaats,
|
||
o.alg_ruimte_nr,
|
||
NULL
|
||
prs_perslid_naam,
|
||
d.ins_discipline_omschrijving
|
||
fclt_f_discipline,
|
||
g.ins_srtgroep_omschrijving
|
||
fclt_f_objectgroep,
|
||
s.ins_srtdeel_omschrijving
|
||
fclt_f_objectsoort,
|
||
i.ins_deel_omschrijving
|
||
fclt_f_identificatie,
|
||
b.fac_bookmark_naam
|
||
fclt_f_bookmark,
|
||
i.ins_deel_key,
|
||
s.ins_srtdeel_key,
|
||
i.ins_discipline_key
|
||
fclt_3d_discipline_key,
|
||
l.alg_locatie_key
|
||
fclt_3d_locatie_key,
|
||
i.ins_alg_ruimte_type,
|
||
i.ins_alg_ruimte_key,
|
||
b.fac_bookmark_id
|
||
hide_f_bookmark_id,
|
||
'Ruimte'
|
||
FROM ins_deel i,
|
||
ins_v_alg_overzicht o,
|
||
ins_srtdeel s,
|
||
ins_srtgroep g,
|
||
ins_discipline d,
|
||
alg_locatie l,
|
||
fac_bookmark b
|
||
WHERE UPPER (b.fac_bookmark_naam) IN ('QR_OBJECT_MELDING')
|
||
AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE
|
||
AND ins_deel_verwijder IS NULL
|
||
AND COALESCE (i.ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE
|
||
AND i.ins_deel_module = 'INS'
|
||
AND i.ins_deel_parent_key IS NULL
|
||
AND s.ins_srtdeel_key = i.ins_srtdeel_key
|
||
AND g.ins_srtgroep_key = s.ins_srtgroep_key
|
||
AND d.ins_discipline_key = g.ins_discipline_key
|
||
AND o.alg_onroerendgoed_keys =
|
||
COALESCE (i.ins_alg_ruimte_key_org, i.ins_alg_ruimte_key)
|
||
AND o.alg_onroerendgoed_type =
|
||
COALESCE (i.ins_alg_ruimte_type_org, i.ins_alg_ruimte_type)
|
||
AND COALESCE (i.ins_alg_ruimte_type_org, i.ins_alg_ruimte_type) IN
|
||
('T', 'R', 'W')
|
||
AND o.alg_locatie_key = i.ins_alg_locatie_key
|
||
AND l.alg_locatie_key = i.ins_alg_locatie_key;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
-- EXPORTS
|
||
|
||
CREATE OR REPLACE PROCEDURE pivp_select_exact_mld(p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
|
||
CURSOR mld(p_startDate DATE, p_endDate DATE) IS
|
||
SELECT DISTINCT bedrijf_key , debiteurnr
|
||
FROM pivp_v_mldexport
|
||
WHERE afmelddatum BETWEEN p_startDate AND p_endDate;
|
||
|
||
CURSOR mld_regel( c_bedrijf_key NUMBER,
|
||
p_startDate DATE,
|
||
p_endDate DATE) IS
|
||
SELECT *
|
||
FROM pivp_v_mldexport
|
||
WHERE bedrijf_key=c_bedrijf_key
|
||
AND afmelddatum BETWEEN p_startDate AND p_endDate;
|
||
|
||
|
||
v_bestand VARCHAR2(100);
|
||
v_order_count NUMBER :=0;
|
||
v_amount_sum NUMBER:=0;
|
||
v_leverancier NUMBER;
|
||
v_sub_count NUMBER;
|
||
v_count NUMBER;
|
||
v_dagboek VARCHAR2(10);
|
||
v_startDate DATE;
|
||
v_endDate DATE;
|
||
v_factuurdatum DATE;
|
||
v_startmonth VARCHAR2(10);
|
||
v_currentmonth VARCHAR2(10);
|
||
v_currentyear VARCHAR2(10);
|
||
v_currenthuurder VARCHAR2(10);
|
||
v_factuurregel VARCHAR2(100);
|
||
|
||
BEGIN
|
||
|
||
v_dagboek:='70';
|
||
v_leverancier:=0;
|
||
v_count :=0;
|
||
v_sub_count:=0;
|
||
v_currenthuurder :='';
|
||
|
||
|
||
DELETE FROM fac_rapport
|
||
WHERE fac_rapport.fac_rapport_node LIKE 'EXM_MLD%';
|
||
|
||
-- eerst controlerene of we de eerste van een nieuw kwartaal zijn.
|
||
|
||
v_startmonth := TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'MM'))-1);
|
||
v_currentyear := TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')));
|
||
IF v_startmonth = '0' THEN
|
||
v_currentyear := TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'YYYY'))-1);
|
||
v_startmonth:='12';
|
||
END IF;
|
||
v_startdate := TO_DATE('01-'||v_startmonth||'-'||v_currentyear,'DD-MM-YYYY');
|
||
v_enddate := LAST_DAY(v_startdate);
|
||
v_factuurdatum:=v_enddate;
|
||
-- IF v_currentmonth=1 OR v_currentmonth=4 OR v_currentmonth=7 OR v_currentmonth=10
|
||
-- THEN
|
||
/*CASE v_currentmonth
|
||
WHEN 1 THEN
|
||
v_startDate:= TO_DATE('01-10-'||TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')-1)),'DD-MM-YYYY');
|
||
v_endDate:= TO_DATE('31-12-'||TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')-1)),'DD-MM-YYYY');
|
||
WHEN 4 THEN
|
||
v_startDate:= TO_DATE('01-01-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
v_endDate:= TO_DATE('30-03-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
WHEN 7 THEN
|
||
v_startDate:= TO_DATE('01-04-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
v_endDate := TO_DATE('30-06-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
ELSE
|
||
v_startDate:= TO_DATE('01-07-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
v_endDate:= TO_DATE('30-09-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
END CASE;
|
||
v_bestand:= 'EXM_MLD';
|
||
*/
|
||
-- PUUR OM EENVOUDIGER TE KUNNEN TESTEN
|
||
v_startDate:=TO_DATE('01-01-2022','DD-MM-YYYY');
|
||
v_endDate:=TO_DATE('31-12-2022','DD-MM-YYYY');
|
||
v_factuurdatum := TO_DATE('31-01-2023','DD-MM-YYYY');
|
||
v_bestand:= 'EXM_MLD';
|
||
FOR rec in mld(v_startDate, v_endDate)
|
||
LOOP
|
||
v_count:=v_count+1;
|
||
IF v_count=1 THEN
|
||
pivp.add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
pivp.add_xml_row (v_bestand, '<eExact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="eExact-Schema.xsd">');
|
||
pivp.add_xml_row (v_bestand, '<Invoices companycode="003" companyname="Pivot Park">');
|
||
END IF;
|
||
|
||
|
||
FOR rec_regel IN mld_regel(rec.bedrijf_key,v_startDate, v_endDate)
|
||
LOOP
|
||
v_sub_count:=v_sub_count+1;
|
||
IF v_sub_count=1 THEN
|
||
|
||
pivp.add_xml_row (v_bestand, '<Invoice type="V" code="00">');
|
||
pivp.add_xml_element (v_bestand, 'Description', 'Geleverde diensten van '||TO_CHAR(v_startDate,'DD-MM-YYYY')||' tot '||TO_CHAR(v_endDate,'DD-MM-YYYY')||'.');
|
||
pivp.add_xml_element(v_bestand, 'YourRef',rec_regel.ponummer);
|
||
pivp.add_xml_row (v_bestand, '<Order type="V"/>'); -- vaste waarde
|
||
pivp.add_xml_row (v_bestand, '<Resource number="2"/>'); -- vaste waarde
|
||
|
||
|
||
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
pivp.add_xml_element (v_bestand, 'CalcIncludeVAT', 'N');
|
||
pivp.add_xml_row (v_bestand, '<OrderedBy>');
|
||
pivp.add_xml_row (v_bestand, '<Debtor code="' || xml.char_to_html(rec_regel.debiteurnr) || '"/>');
|
||
pivp.add_xml_element (v_bestand, 'Date', v_factuurdatum );
|
||
pivp.add_xml_row (v_bestand, '</OrderedBy>');
|
||
|
||
/*
|
||
pivp.add_xml_element (v_bestand, 'Description', 'Geleverder diensten van '||TO_CHAR(v_startDate,'DD-MM-YYYY')||' tot '||TO_CHAR(v_endDate,'DD-MM-YYYY')||'.');
|
||
pivp.add_xml_element (v_bestand, 'Date', SYSDATE);
|
||
pivp.add_xml_element (v_bestand, 'DocumentDate', TO_CHAR(SYSDATE, 'YYYY-MM-DD') );
|
||
pivp.add_xml_row (v_bestand, '<Division code="003"/>');
|
||
pivp.add_xml_row (v_bestand, '<Journal code="' || v_dagboek || '" type="V"/>');
|
||
pivp.add_xml_row (v_bestand, '<Amount>');
|
||
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
pivp.add_xml_element (v_bestand, 'Value', '0');
|
||
pivp.add_xml_row (v_bestand, '</Amount>');
|
||
pivp.add_xml_row (v_bestand, '<ForeignAmount>');
|
||
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
pivp.add_xml_element (v_bestand, 'Value', '0');
|
||
pivp.add_xml_row (v_bestand, '</ForeignAmount>'); */
|
||
END IF;
|
||
pivp.add_xml_row (v_bestand, '<InvoiceLine lineNo="' || v_sub_count || '" type="N" subtype="N">');
|
||
IF LENGTH(rec_regel.ponummer)>0 THEN
|
||
pivp.add_xml_element (v_bestand, 'LineYourRef', 'Uw referentie: '||rec_regel.ponummer);
|
||
END IF;
|
||
|
||
IF LENGTH(rec_regel.factuurinfo)>0 THEN
|
||
v_factuurregel:= rec_regel.melding_key||' - '||rec_regel.factuurinfo;
|
||
ELSE
|
||
IF LENGTH(rec_regel.onderwerp)>0 THEN
|
||
v_factuurregel:= rec_regel.melding_key||'('||rec_regel.dienstencode||')-'||rec_regel.onderwerp;
|
||
ELSE
|
||
v_factuurregel:= rec_regel.melding_key||'-'||rec_regel.vagroep;
|
||
END IF;
|
||
END IF;
|
||
-- Vaste waardes die evt worden aangepast bij vervolg project
|
||
pivp.add_xml_row (v_bestand, '<Warehouse code="1"/>'); -- vaste waarde
|
||
pivp.add_xml_row (v_bestand, '<Costcenter code="KP003"/>');
|
||
pivp.add_xml_row (v_bestand, '<Costunit code="003.190"/>');
|
||
pivp.add_xml_row (v_bestand, '<Project code="003.P23002"/>');
|
||
|
||
|
||
pivp.add_xml_element (v_bestand, 'Description', SUBSTR(v_factuurregel,0,60));
|
||
pivp.add_xml_row (v_bestand, '<Item code="' || rec_regel.dienstencode || '"/>');
|
||
pivp.add_xml_element (v_bestand, 'Quantity', '1' );
|
||
pivp.add_xml_row (v_bestand, '<Price>');
|
||
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
pivp.add_xml_element (v_bestand, 'Value', rec_regel.factuurbedrag);
|
||
pivp.add_xml_row (v_bestand, '</Price>');
|
||
pivp.add_xml_row (v_bestand, '<Delivery>');
|
||
pivp.add_xml_element (v_bestand, 'Date', TO_CHAR(rec_regel.afmelddatum, 'YYYY-MM-DD') );
|
||
pivp.add_xml_row (v_bestand, '</Delivery>');
|
||
pivp.add_xml_row (v_bestand, '</InvoiceLine>');
|
||
|
||
/* pivp.add_xml_row (v_bestand, '<FinEntryLine number="' || v_sub_count || '" type="N" subtype="N">');
|
||
pivp.add_xml_row (v_bestand, '<GLAccount code="' || SUBSTR(rec_regel.dienstencode,3) || '"/>');
|
||
pivp.add_xml_element (v_bestand, 'Description', rec_regel.melding_key||' - '||rec_regel.onderwerp);
|
||
pivp.add_xml_row (v_bestand, '<Costcenter code="' || xml.char_to_html('003.OPS') || '"/>');
|
||
-- pivp.add_xml_row (v_bestand, '<Costunit code="' || xml.char_to_html('999999') || '"/>');
|
||
pivp.add_xml_row (v_bestand, '<Debtor number="' || xml.char_to_html(rec_regel.debiteurnr) || '"/>');
|
||
pivp.add_xml_row (v_bestand, '<Item code=""/>');
|
||
pivp.add_xml_row (v_bestand, '<Amount>');
|
||
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
pivp.add_xml_element (v_bestand, 'Debit', '0' );
|
||
pivp.add_xml_element (v_bestand, 'Credit', rec_regel.factuurbedrag);
|
||
-- pivp.add_xml_row (v_bestand, '<VAT code="' || xml.char_to_html('21') || '"/>');
|
||
pivp.add_xml_row (v_bestand, '</Amount>');
|
||
pivp.add_xml_row (v_bestand, '<FinReferences>');
|
||
pivp.add_xml_element (v_bestand, 'YourRef', 'PO Nummer klant');
|
||
pivp.add_xml_element (v_bestand, 'DocumentDate', TO_CHAR(rec_regel.afmelddatum, 'YYYY-MM-DD') );
|
||
pivp.add_xml_row (v_bestand, '</FinReferences>'); */
|
||
|
||
|
||
END LOOP;
|
||
IF v_sub_count>0 THEN
|
||
pivp.add_xml_row (v_bestand, '</Invoice>');
|
||
END IF;
|
||
|
||
|
||
v_sub_count:=0;
|
||
END LOOP;
|
||
IF v_count>0 THEN
|
||
pivp.add_xml_row (v_bestand, '</Invoices>');
|
||
pivp.add_xml_row (v_bestand, '</eExact>');
|
||
END IF;
|
||
IF v_count=0 THEN
|
||
-- We hebben niets om te exporteren dan gooien we ook XML tags weg.
|
||
DELETE FROM fac_rapport WHERE fac_rapport_node = v_bestand;
|
||
END IF;
|
||
|
||
fac.writelog (p_applname, 'S', 'Exact export uitgevoerd.','Regels: '||v_count||' Periode : '||v_startDate||'-'||v_enddate);
|
||
--END IF;
|
||
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE pivp_select_exact_res(p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
|
||
CURSOR res(p_startDate DATE, p_endDate DATE) IS
|
||
SELECT DISTINCT debiteurnr
|
||
FROM pivp_v_resexport
|
||
WHERE datum BETWEEN p_startDate AND p_endDate AND externsyncdate IS NULL;
|
||
|
||
|
||
|
||
CURSOR res_regel( c_debiteur_nr VARCHAR2,
|
||
p_startDate DATE,
|
||
p_endDate DATE) IS
|
||
SELECT *
|
||
FROM pivp_v_resexport
|
||
WHERE debiteurnr=c_debiteur_nr
|
||
AND datum BETWEEN p_startDate AND p_endDate
|
||
AND externsyncdate IS NULL
|
||
ORDER by datum;
|
||
|
||
v_bestand VARCHAR2(100);
|
||
v_order_count NUMBER :=0;
|
||
v_amount_sum NUMBER:=0;
|
||
v_leverancier NUMBER;
|
||
v_sub_count NUMBER;
|
||
v_count NUMBER;
|
||
v_dagboek VARCHAR2(10);
|
||
v_dienstencode VARCHAR2(10);
|
||
v_startDate DATE;
|
||
v_endDate DATE;
|
||
v_currentmonth NUMBER;
|
||
v_currenthuurder VARCHAR2(10);
|
||
v_factuurdatum VARCHAR2(15);
|
||
v_factuurregel VARCHAR2(60);
|
||
|
||
BEGIN
|
||
|
||
v_dagboek:='70';
|
||
v_dienstencode:='FM-221'; -- alle reservering worden op deze dienstencode geboekt
|
||
v_leverancier:=0;
|
||
v_sub_count:=0;
|
||
v_count:=0;
|
||
v_currenthuurder :='';
|
||
|
||
|
||
DELETE FROM fac_rapport
|
||
WHERE fac_rapport_node LIKE 'EXR_RES';
|
||
|
||
-- eerst controlerene of we de eerste van een nieuw kwartaal zijn.
|
||
|
||
v_currentmonth := TO_NUMBER(TO_CHAR(SYSDATE,'MM'));
|
||
v_currentmonth :=10;
|
||
IF v_currentmonth=1 OR v_currentmonth=4 OR v_currentmonth=7 OR v_currentmonth=10
|
||
THEN
|
||
CASE v_currentmonth
|
||
WHEN 1 THEN
|
||
v_startDate:= TO_DATE('01-10-'||TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')-1)),'DD-MM-YYYY');
|
||
v_endDate:= TO_DATE('31-12-'||TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')-1)),'DD-MM-YYYY');
|
||
v_factuurdatum:='31-12-'||TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')-1));
|
||
WHEN 4 THEN
|
||
v_startDate:= TO_DATE('01-01-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
v_endDate:= TO_DATE('30-03-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
v_factuurdatum:='30-03-'||TO_CHAR(SYSDATE,'YYYY');
|
||
WHEN 7 THEN
|
||
v_startDate:= TO_DATE('01-04-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
v_endDate:= TO_DATE('30-06-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
v_factuurdatum:='30-06-'||TO_CHAR(SYSDATE,'YYYY');
|
||
ELSE
|
||
v_startDate:= TO_DATE('01-07-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
v_endDate:= TO_DATE('30-09-'||TO_CHAR(SYSDATE,'YYYY'),'DD-MM-YYYY');
|
||
v_factuurdatum:='30-09-'||TO_CHAR(SYSDATE,'YYYY');
|
||
END CASE;
|
||
|
||
|
||
-- PUUR OM EENVOUDIGER TE KUNNEN TESTEN
|
||
v_startDate:=TO_DATE('01-01-2022','DD-MM-YYYY');
|
||
v_endDate:=TO_DATE('31-12-2022','DD-MM-YYYY');
|
||
v_factuurdatum := TO_DATE('31-01-2023','DD-MM-YYYY');
|
||
------
|
||
|
||
v_bestand:= 'EXR_RES';
|
||
FOR rec in res(v_startDate, v_endDate)
|
||
LOOP
|
||
|
||
v_count:=v_count+1;
|
||
IF v_count=1 THEN
|
||
pivp.add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
pivp.add_xml_row (v_bestand, '<eExact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="eExact-Schema.xsd">');
|
||
pivp.add_xml_row (v_bestand, '<Invoices companycode="003" companyname="Pivot Park">');
|
||
END IF;
|
||
|
||
-- AFhandelen van alle reservering voor deze klant
|
||
FOR rec_regel IN res_regel(rec.debiteurnr,v_startDate, v_endDate)
|
||
LOOP
|
||
v_sub_count:=v_sub_count+1;
|
||
IF v_sub_count=1 THEN
|
||
pivp.add_xml_row (v_bestand, '<Invoice type="V" code="00">');
|
||
pivp.add_xml_element (v_bestand, 'Description', 'Zaalreserveringen van '||TO_CHAR(v_startDate,'DD-MM-YYYY')||' tot '||TO_CHAR(v_endDate,'DD-MM-YYYY')||'.');
|
||
pivp.add_xml_element(v_bestand, 'YourRef','Uwe referentie');
|
||
pivp.add_xml_row (v_bestand, '<Order type="V"/>');
|
||
pivp.add_xml_row (v_bestand, '<Resource number="2"/>'); -- vaste waarde
|
||
|
||
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
pivp.add_xml_element (v_bestand, 'CalcIncludeVAT', 'N');
|
||
pivp.add_xml_row (v_bestand, '<OrderedBy>');
|
||
pivp.add_xml_row (v_bestand, '<Debtor code="' || xml.char_to_html(rec_regel.debiteurnr) || '"/>');
|
||
pivp.add_xml_element (v_bestand, 'Date', v_factuurdatum );
|
||
pivp.add_xml_row (v_bestand, '</OrderedBy>');
|
||
|
||
/* pivp.add_xml_element (v_bestand, 'Date', 'N');
|
||
pivp.add_xml_element (v_bestand, 'DocumentDate', v_factuurdatum );
|
||
pivp.add_xml_row (v_bestand, '<Division code="003"/>');
|
||
pivp.add_xml_row (v_bestand, '<Journal code="' || v_dagboek || '" type="V"/>');
|
||
pivp.add_xml_row (v_bestand, '<Amount>');
|
||
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
pivp.add_xml_element (v_bestand, 'Value', '0');
|
||
pivp.add_xml_row (v_bestand, '</Amount>');
|
||
pivp.add_xml_row (v_bestand, '<ForeignAmount>');
|
||
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
pivp.add_xml_element (v_bestand, 'Value', '0');
|
||
pivp.add_xml_row (v_bestand, '</ForeignAmount>'); */
|
||
|
||
|
||
|
||
END IF;
|
||
pivp.add_xml_row (v_bestand, '<InvoiceLine lineNo="' || v_sub_count || '" type="N" subtype="N">');
|
||
|
||
|
||
-- Vaste waardes worden in vervolg project evt aangepast
|
||
pivp.add_xml_row (v_bestand, '<Warehouse code="1"/>'); -- vaste waarde
|
||
pivp.add_xml_row (v_bestand, '<Costcenter code="KP003"/>');
|
||
pivp.add_xml_row (v_bestand, '<Costunit code="003.190"/>');
|
||
pivp.add_xml_row (v_bestand, '<Project code="003.P23002"/>');
|
||
|
||
|
||
v_factuurregel := rec_regel.reservering_nr||'/'||rec_regel.reservering_volgnr||'-'||rec_regel.ruimte_nr||' ('||TO_CHAR(rec_regel.datum,'DD-MM-YYYY')||' '||rec_regel.van||'-'||rec_regel.tot||')';
|
||
pivp.add_xml_element (v_bestand, 'Description', v_factuurregel);
|
||
pivp.add_xml_row (v_bestand, '<Item code="' || v_dienstencode || '"/>');
|
||
pivp.add_xml_element (v_bestand, 'Quantity', '1' );
|
||
pivp.add_xml_row (v_bestand, '<Price>');
|
||
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
|
||
IF rec_regel.verwijderdatum IS NOT NULL
|
||
AND (rec_regel.verwijderdatum - rec_regel.res_rsv_ruimte_van)<3
|
||
THEN
|
||
pivp.add_xml_element (v_bestand, 'Value', ROUND(rec_regel.bedrag*0.5,2));
|
||
ELSE
|
||
pivp.add_xml_element (v_bestand, 'Value', rec_regel.bedrag);
|
||
END IF;
|
||
pivp.add_xml_row (v_bestand, '</Price>');
|
||
pivp.add_xml_row (v_bestand, '<Delivery>');
|
||
pivp.add_xml_element (v_bestand, 'Date', TO_CHAR(rec_regel.datum, 'YYYY-MM-DD') );
|
||
pivp.add_xml_row (v_bestand, '</Delivery>');
|
||
|
||
|
||
/* pivp.add_xml_row (v_bestand, '<GLAccount code="' || v_dienstencode || '"/>');
|
||
pivp.add_xml_element (v_bestand, 'Description', 'Reservering '||rec_regel.reservering_nr||' (Zaal '||rec_regel.ruimte_nr||') op '||TO_CHAR(rec_regel.datum,'DD-MM-YYYY')||' van '||rec_regel.van||' tot '||rec_regel.tot);
|
||
pivp.add_xml_row (v_bestand, '<Costcenter code="' || xml.char_to_html('003.OPS') || '"/>');
|
||
|
||
pivp.add_xml_row (v_bestand, '<Debtor number="' || xml.char_to_html(rec_regel.debiteurnr) || '"/>');
|
||
-- pivp.add_xml_row (v_bestand, '<Item code=""/>');
|
||
pivp.add_xml_row (v_bestand, '<Amount>');
|
||
pivp.add_xml_row (v_bestand, '<Currency code="EUR"/>');
|
||
pivp.add_xml_element (v_bestand, 'Debit', '0');
|
||
|
||
IF rec_regel.verwijderdatum IS NOT NULL
|
||
AND (rec_regel.verwijderdatum - rec_regel.res_rsv_ruimte_van)<3
|
||
THEN
|
||
pivp.add_xml_element (v_bestand, 'Credit', ROUND(rec_regel.bedrag*0.5,2));
|
||
ELSE
|
||
pivp.add_xml_element (v_bestand, 'Credit', rec_regel.bedrag);
|
||
END IF;
|
||
|
||
-- pivp.add_xml_row (v_bestand, '<VAT code="' || xml.char_to_html('21') || '"/>');
|
||
pivp.add_xml_row (v_bestand, '</Amount>');
|
||
pivp.add_xml_row (v_bestand, '<FinReferences>');
|
||
pivp.add_xml_element (v_bestand, 'YourRef', 'PO NUmmer klant');
|
||
pivp.add_xml_element (v_bestand, 'DocumentDate', v_factuurdatum );
|
||
pivp.add_xml_row (v_bestand, '</FinReferences>');
|
||
*/
|
||
pivp.add_xml_row (v_bestand, '</InvoiceLine>');
|
||
|
||
|
||
-- UPDATE res_rsv_ruimte set res_rsv_ruimte_externsyncdat=SYSDATE WHERE res_rsv_ruimte_key=rec.res_rsv_ruimte_key;
|
||
|
||
|
||
END LOOP;
|
||
IF v_sub_count>=1 THEN
|
||
pivp.add_xml_row (v_bestand, '</Invoice>');
|
||
END IF;
|
||
v_sub_count:=0;
|
||
|
||
END LOOP;
|
||
IF v_count>0 THEN
|
||
pivp.add_xml_row (v_bestand, '</Invoices>');
|
||
pivp.add_xml_row (v_bestand, '</eExact>');
|
||
END IF;
|
||
|
||
IF v_count=0 THEN
|
||
DELETE FROM fac_rapport WHERE fac_rapport_node=v_bestand;
|
||
END IF;
|
||
|
||
|
||
fac.writelog (p_applname, 'S', 'Exact reservering export uitgevoerd. Aantal Klanten :'||v_count,'Periode :('||v_currentmonth||') '||v_startDate||'-'||v_enddate);
|
||
END IF;
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_EXPORT_EXACT_MLD (
|
||
result,
|
||
result_order,
|
||
exact_exp
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel ,fac_rapport_volgnr, fac_rapport_node
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node LIKE 'EXM_%'
|
||
ORDER BY fac_rapport_node,fac_rapport_volgnr;
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_EXPORT_EXACT_RES (
|
||
result,
|
||
result_order,
|
||
exact_exp
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel ,fac_rapport_volgnr, fac_rapport_node
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node LIKE 'EXR_%'
|
||
ORDER BY fac_rapport_node,fac_rapport_volgnr;
|
||
|
||
|
||
|
||
-- EXPORT CONTACTEN
|
||
|
||
CREATE OR REPLACE PROCEDURE pivp_select_exact_cont(p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR contacts IS
|
||
SELECT *
|
||
FROM PIVP_V_CONTACTEXPORT;
|
||
|
||
v_bestand VARCHAR2(100);
|
||
v_counter NUMBER;
|
||
v_relatie_code VARCHAR2(10);
|
||
|
||
BEGIN
|
||
v_bestand := 'EXA_CONTACT';
|
||
v_counter :=0;
|
||
v_relatie_code :='--------';
|
||
|
||
DELETE FROM fac_rapport where fac_rapport_node='EXA_CONTACT';
|
||
COMMIT;
|
||
|
||
pivp.add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
pivp.add_xml_row (v_bestand, '<eExact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="eExact-Schema.xsd">');
|
||
pivp.add_xml_row (v_bestand, '<Accounts>');
|
||
|
||
FOR rec IN contacts
|
||
LOOP
|
||
v_counter:=v_counter+1;
|
||
IF v_relatie_code != rec.debiteurnr
|
||
THEN
|
||
IF v_counter>1 THEN
|
||
pivp.add_xml_row (v_bestand, '</Contacts>');
|
||
pivp.add_xml_row (v_bestand, '</Account>');
|
||
END IF;
|
||
pivp.add_xml_row (v_bestand, '<Account code="'||rec.debiteurnr||'">');
|
||
pivp.add_xml_row (v_bestand, '<Contacts>');
|
||
|
||
END IF;
|
||
v_counter:=v_counter+1;
|
||
pivp.add_xml_row (v_bestand, '<Contact default="0">');
|
||
pivp.add_xml_element (v_bestand, 'FirstName', rec.voornaam);
|
||
pivp.add_xml_element (v_bestand, 'MiddleName', rec.tussenvoegsel);
|
||
pivp.add_xml_element (v_bestand, 'LastName', rec.achternaam);
|
||
IF LENGTH(rec.functie)>1 THEN
|
||
pivp.add_xml_element (v_bestand, 'JobDescription', rec.functie);
|
||
ELSE
|
||
pivp.add_xml_element (v_bestand, 'JobDescription', '-');
|
||
END IF;
|
||
pivp.add_xml_element (v_bestand, 'Email', rec.email);
|
||
pivp.add_xml_element (v_bestand, 'Phone', rec.telefoonnummer);
|
||
pivp.add_xml_element (v_bestand, 'Mobile', rec.mobiel);
|
||
pivp.add_xml_row (v_bestand, '<Language code="NL"/>');
|
||
pivp.add_xml_row (v_bestand, '<FreeFields>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo>');
|
||
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="1" label="CxO">'||rec.cxo||'</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="2" label="EHS">'||rec.ehs||'</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="3" label="Secr">'||rec.secr||'</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="4" label="Community newsletter">'||rec.comm_letter||'</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="5" label="MMP newsletter">'||rec.act_letter||'</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="6" label="Community app">0</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="7" label="Corporate newsletter">'||rec.corp_letter||'</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="8" label="Ops">'||rec.operations||'</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="9" label="Com lid">'||rec.medw||'</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="10" label="Student/PhD">0</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '</FreeFields>');
|
||
pivp.add_xml_row (v_bestand, '</Contact>');
|
||
v_relatie_code := rec.debiteurnr;
|
||
|
||
-- UPDATE mld_melding set MLD_MELDING_EXTERNSYNCDATE=SYSDATE WHERE mld_melding_key=rec.mld_melding_key;
|
||
|
||
END LOOP;
|
||
pivp.add_xml_row (v_bestand, '</Contacts>');
|
||
pivp.add_xml_row (v_bestand, '</Account>');
|
||
pivp.add_xml_row (v_bestand, '</Accounts>');
|
||
pivp.add_xml_row (v_bestand, '</eExact>');
|
||
|
||
IF v_counter=0 THEN
|
||
DELETE FROM fac_rapport WHERE fac_rapport_node=v_bestand;
|
||
END IF;
|
||
|
||
|
||
fac.writelog (p_applname, 'S', 'Exact contact export uitgevoerd.','Aantal geexporteerde contacten is: '||v_counter);
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_SELECT_EXACT_CONTACT (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
pivp_select_exact_cont (p_applname, p_applrun);
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_EXPORT_EXACT_CONTACT (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel ,fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node LIKE 'EXA_CONTACT%'
|
||
ORDER BY fac_rapport_node,fac_rapport_volgnr;
|
||
|
||
-- EINDE EXPORT CONTACTEN
|
||
|
||
|
||
|
||
|
||
-- EXPORT RUIMTES
|
||
|
||
CREATE OR REPLACE PROCEDURE pivp_select_exact_ruimte_exp(p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
CURSOR ruimtes IS
|
||
SELECT *
|
||
FROM pivp_v_ruimteexport
|
||
WHERE verhuurbaar='1'
|
||
AND (sync_datum IS NULL OR sync_datum<mutatie_datum);
|
||
|
||
v_bestand VARCHAR2(100);
|
||
v_counter NUMBER;
|
||
v_relatie_code VARCHAR2(10);
|
||
|
||
BEGIN
|
||
v_bestand := 'EXA_RUIMTE';
|
||
v_counter :=0;
|
||
v_relatie_code :='--------';
|
||
|
||
DELETE FROM fac_rapport where fac_rapport_node='EXA_RUIMTE';
|
||
COMMIT;
|
||
|
||
pivp.add_xml_row (v_bestand, '<?xml version="1.0" encoding="windows-1252"?>');
|
||
pivp.add_xml_row (v_bestand, '<eExact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="eExact-Schema.xsd">');
|
||
pivp.add_xml_row (v_bestand, '<Items>');
|
||
|
||
FOR rec IN ruimtes
|
||
LOOP
|
||
v_counter:=v_counter+1;
|
||
pivp.add_xml_row (v_bestand, '<Item code="'||rec.ruimte_nr||'" TYPE="'||rec.ruimte_type_verhuur||'" searchcode="'||rec.ruimte_nr||'">');
|
||
pivp.add_xml_element (v_bestand, 'Description', rec.ruimte_nr);
|
||
pivp.add_xml_row (v_bestand, '<Assortment number=<3D>4001<30> code=<3D>4001<30>/>');
|
||
pivp.add_xml_row (v_bestand, '<FreeFields>');
|
||
pivp.add_xml_row (v_bestand, '<FreeNumbers>');
|
||
pivp.add_xml_row (v_bestand,'<FreeNumber number="1" label="Oppervlakte WO (m2)">'||rec.wo||'</FreeNumber>');
|
||
pivp.add_xml_row (v_bestand,'<FreeNumber number="1" label="Oppervlakte VVO (m2)">'||REPLACE(rec.vvo,',','.')||'</FreeNumber>');
|
||
pivp.add_xml_row (v_bestand, '</FreeNumber>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="1" label="Verhuurbaar">'||rec.verhuurbaar||'</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeYesNo number="2" label="Vergaderruimte">0</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '</FreeYesNo>');
|
||
pivp.add_xml_row (v_bestand, '<FreeText>');
|
||
pivp.add_xml_row (v_bestand, '<FreeText number="1" label="Type">'||rec.ruimte_type_verhuur||'</FreeText>');
|
||
pivp.add_xml_row (v_bestand, '</FreeText>');
|
||
|
||
pivp.add_xml_row (v_bestand, '</FreeFields>');
|
||
pivp.add_xml_row (v_bestand, '</Item>');
|
||
|
||
--UPDATE alg_ruimte SET alg_ruimte_externsyncdate=SYSDATE WHERE alg_ruimte_key=rec.alg_ruimte_key;
|
||
|
||
END LOOP;
|
||
pivp.add_xml_row (v_bestand, '</Items>');
|
||
pivp.add_xml_row (v_bestand, '</eExact>');
|
||
|
||
IF v_counter=0 THEN
|
||
DELETE FROM fac_rapport WHERE fac_rapport_node=v_bestand;
|
||
END IF;
|
||
|
||
fac.writelog (p_applname, 'S', 'Exact ruimte export uitgevoerd.','Aantal geexporteerde verhuubare ruimtes is: '||v_counter);
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE PIVP_SELECT_EXACT_RUIMTE (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2
|
||
)
|
||
AS
|
||
BEGIN
|
||
pivp_select_exact_ruimte_exp (p_applname, p_applrun);
|
||
END;
|
||
/
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW PIVP_V_EXPORT_EXACT_RUIMTE (
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT fac_rapport_regel ,fac_rapport_volgnr
|
||
FROM fac_rapport
|
||
WHERE fac_rapport_node LIKE 'EXA_RUIMTE%'
|
||
ORDER BY fac_rapport_node,fac_rapport_volgnr;
|
||
|
||
|
||
|
||
--END EXPORTS
|
||
|
||
|
||
------ 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
|
||
|
||
|