Files
Customer/CONN/conn.sql
Norbert Wassink 87a493b6ef CONN#82504 -- Rapportage tbv taken archief
svn path=/Customer/trunk/; revision=63697
2024-02-23 14:41:56 +00:00

11303 lines
500 KiB
MySQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
DEFINE thisfile = 'CONN.SQL'
DEFINE dbuser = 'CONN'
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 CONN
AS
FUNCTION quote(in_v1 IN varchar2) RETURN varchar2;
END;
/
CREATE OR REPLACE PACKAGE BODY CONN AS
FUNCTION quote(in_v1 IN varchar2) RETURN varchar2
AS
BEGIN
return chr(34) || in_v1 || chr(34);
--return string surrounded by " CHR(34)
END;
END;
/
CREATE OR REPLACE FORCE VIEW conn_v_bes_diesel
(
aanvraagnr,
aantal,
omschrijving,
fclt_d_datum,
fclt_f_afleveradres
)
AS
SELECT b.bes_bestelling_key,
bi.bes_bestelling_item_aantal,
d.bes_srtdeel_omschrijving,
TO_CHAR (b.bes_bestelling_leverdatum, 'dd-mm-yyyy'),
a.mld_adres_naam
FROM mld_adres a, bes_discipline d, bes_srtgroep g, bes_srtdeel d, bes_bestelling_item bi, bes_bestelling b
WHERE d.ins_discipline_key = g.ins_discipline_key
AND g.bes_srtgroep_key = d.bes_srtgroep_key
AND bi.bes_srtdeel_key = d.bes_srtdeel_key
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND d.ins_discipline_key = 1442
AND b.mld_adres_key_lev = a.mld_adres_key
AND b.bes_bestelling_status <> 1;
--CONN#12801
CREATE OR REPLACE VIEW conn_v_gebruikers_groep_email (fclt_groep,
fclt_naam,
email
)
AS
SELECT g.fac_groep_omschrijving, prs_perslid_naam_full, prs_perslid_email
FROM fac_gebruikersgroep gg,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
fac_groep g
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND gg.fac_groep_key = g.fac_groep_key;
--CONN#791
CREATE OR REPLACE VIEW conn_v_halte_gegevens (fclt_f_concessies,
haltecode,
plaatsnaam,
haltenaam,
infobusstation,
infohalte,
passerendelijnen
)
AS
SELECT (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 562) concessies,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 501) haltecode,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 502) plaatsnaam,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 504) haltenaam,
(SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key =
kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 509)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 510)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 511)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 512)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 513)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 514) infopaneelbus,
(SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key =
kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 516)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 517)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 518)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 519)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 520)
|| ' , '
|| (SELECT ud.fac_usrdata_omschr
FROM fac_usrdata ud, ins_kenmerkdeel kd
WHERE ud.fac_usrdata_key = kd.ins_kenmerkdeel_waarde
AND kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 521) infopaneelhalte,
(SELECT ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerkdeel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 601) passerendelijnen
FROM ins_deel d
WHERE ins_srtdeel_key = 43401 AND ins_deel_verwijder IS NULL;
-- CONN#435
CREATE OR REPLACE VIEW CONN_V_LEV_SCHOONMAAK
(PRS_BEDRIJF_KEY, PRS_BEDRIJF_NAAM)
AS
SELECT DISTINCT prs_bedrijf.PRS_BEDRIJF_KEY,prs_bedrijf.PRS_BEDRIJF_NAAM
FROM prs_bedrijf, prs_bedrijfdienstlocatie
WHERE prs_bedrijf.prs_bedrijf_verwijder IS NULL
AND prs_bedrijf.prs_bedrijf_key = prs_bedrijfdienstlocatie.prs_bedrijf_key
AND prs_bedrijfdienstlocatie.prs_dienst_key = 129 ;
/* Formatted on 2006/09/01 16:21 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_bedrijf_gegevens
AS
SELECT b.prs_bedrijf_key, prs_bedrijf_naam, prs_bedrijf_naam_upper,
prs_bedrijf_post_adres, prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats, prs_bedrijf_bezoek_adres,
prs_bedrijf_bezoek_postcode, prs_bedrijf_bezoek_plaats,
prs_bedrijf_telefoon, prs_bedrijf_fax, prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon, prs_bedrijf_contact_fax,
prs_bedrijf_opmerking, prs_bedrijf_uurloon, prs_leverancier_nr,
prs_overeenkomst_nr, prs_overeenkomst_datum, prs_bedrijf_aanmaak,
prs_bedrijf_verwijder, prs_bedrijf_leverancier,
prs_bedrijf_uitvoerende, prs_bedrijf_contract, prs_bedrijf_email,
a.prs_bedrijfadres_xsl, a.prs_bedrijfadres_url, prs_bedrijf_image_loc,
prs_bedrijf_details_loc, mld_adres_key_lev, mld_adres_key_fac,
prs_bedrijf_bezoek_land, prs_bedrijf_post_land,
prs_bedrijf_telefoon2, prs_bedrijf_opmerking2, prs_bedrijf_intern,
prs_bedrijf_huurder, prs_bedrijf_ingids,
SUBSTR (b.prs_leverancier_nr,
INSTR (b.prs_leverancier_nr, '/') + 1
) huurdernr,
SUBSTR (b.prs_leverancier_nr,
1,
INSTR (b.prs_leverancier_nr, '/') - 1
) budgetcode
FROM prs_bedrijf b
, prs_bedrijfadres a
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key
AND a.prs_bedrijfadres_type = 'B'
AND b.prs_bedrijf_verwijder IS NULL;
--
-- CONN#460
--
CREATE OR REPLACE PACKAGE CONN_RAP AS
-- PACKAGES voor de Connexxion specifieke rapportages
TYPE t_cursor IS REF CURSOR;
FUNCTION FindNearestSampleValue(p_ins_deel_key IN NUMBER,p_ins_kenmerk_key IN NUMBER ,p_sample_date IN DATE) RETURN NUMBER;
FUNCTION FindNearestSampleDate(p_ins_deel_key IN NUMBER,p_ins_kenmerk_key IN NUMBER ,p_sample_date IN DATE) RETURN DATE;
PROCEDURE conn_p_verbruik (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
PROCEDURE conn_p_bes_div_cat (user_key IN NUMBER, p_datum_van IN VARCHAR2, p_datum_tot IN VARCHAR2, p_cursor OUT t_cursor);
END;
/
CREATE OR REPLACE PACKAGE BODY CONN_RAP AS
--
-- Algemene procedures en functies.
--
--
FUNCTION FindNearestSampleDate(p_ins_deel_key IN NUMBER
,p_ins_kenmerk_key IN NUMBER
,p_sample_date IN DATE
) RETURN DATE IS
v_waarde DATE;
BEGIN
SELECT waarde
INTO v_waarde
FROM (
SELECT ins_kenmerkdeel_aanmaak waarde
FROM ins_kenmerkdeel skd
WHERE skd.ins_kenmerk_key = p_ins_kenmerk_key
AND skd.ins_deel_key = p_ins_deel_key
ORDER BY ABS(p_sample_date - skd.INS_KENMERKDEEL_AANMAAK)
)
WHERE ROWNUM = 1;
RETURN v_waarde;
END;
--
FUNCTION FindNearestSampleValue(p_ins_deel_key IN NUMBER
,p_ins_kenmerk_key IN NUMBER
,p_sample_date IN DATE
) RETURN NUMBER IS
v_waarde NUMBER;
BEGIN
SELECT FAC.safe_to_number(waarde)
INTO v_waarde
FROM (
SELECT ins_kenmerkdeel_waarde waarde
FROM ins_kenmerkdeel skd
WHERE skd.ins_kenmerk_key = p_ins_kenmerk_key
AND skd.ins_deel_key = p_ins_deel_key
ORDER BY ABS(p_sample_date - skd.INS_KENMERKDEEL_AANMAAK)
)
WHERE ROWNUM = 1;
RETURN v_waarde;
END;
--
PROCEDURE conn_p_verbruik (user_key IN NUMBER
,p_datum_van IN VARCHAR2, -- Let wel: formaat '13-05-2005'
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor) AS
v_datum_van DATE;
v_datum_tot DATE;
v_alg_level_read NUMBER;
BEGIN
v_datum_van := fac.safe_to_date(p_datum_van, 'dd-mm-yyyy');
v_datum_tot := fac.safe_to_date(p_datum_tot, 'dd-mm-yyyy');
SELECT MIN(fac_gebruiker_alg_level_read)
INTO v_alg_level_read
FROM fac_v_webgebruiker
WHERE prs_perslid_key = user_key
AND fac_functie_key = 242; -- WEB_OBJUSE
IF v_alg_level_read = -1 THEN
OPEN p_cursor FOR
SELECT alg_locatie_code code,
alg_locatie_omschrijving naam,
ins_deel_omschrijving meter,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) -
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) verbruik,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van),'dd-mm-yyyy hh24:mi') begin_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) begin_waarde,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot),'dd-mm-yyyy hh24:mi') eind_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) eind_waarde
FROM (
SELECT DISTINCT
d.ins_deel_key,
k.ins_kenmerk_key,
ins_deel_omschrijving,
alg_locatie_key,
alg_locatie_omschrijving,
alg_locatie_code
FROM ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d,
ins_kenmerkdeel kd,
ins_kenmerk k,
ins_srtkenmerk sk,
alg_locatie l
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
AND d.ins_deel_key = kd.ins_deel_key
AND d.ins_alg_locatie_key = l.alg_locatie_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_kenmerk_verwijder IS NULL
AND k.ins_kenmerk_meetwaarde = 1
AND sk.INS_SRTKENMERK_KENMERKTYPE = 'N'
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
) res
ORDER BY code;
ELSE -- We moeten echte autorisatie controleren
OPEN p_cursor FOR
SELECT alg_locatie_code code,
alg_locatie_omschrijving naam,
ins_deel_omschrijving meter,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) -
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) verbruik,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van),'dd-mm-yyyy hh24:mi') begin_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_van) begin_waarde,
to_char(FindNearestSampleDate(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot),'dd-mm-yyyy hh24:mi') eind_datum,
FindNearestSampleValue(res.ins_deel_key ,res.ins_kenmerk_key, v_datum_tot) eind_waarde
FROM (
SELECT DISTINCT
d.ins_deel_key,
k.ins_kenmerk_key,
ins_deel_omschrijving,
alg_locatie_key,
alg_locatie_omschrijving,
alg_locatie_code
FROM ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigdeel d,
ins_kenmerkdeel kd,
ins_kenmerk k,
ins_srtkenmerk sk,
alg_locatie l
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
AND d.ins_deel_key = kd.ins_deel_key
AND d.INS_ALG_LOCATIE_KEY = l.alg_locatie_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_kenmerk_verwijder IS NULL
AND k.ins_kenmerk_volgnummer >= 100
AND sk.INS_SRTKENMERK_KENMERKTYPE = 'N'
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND alg_locatie_key IN (
SELECT alg_locatie_key
FROM fac_v_my_locations
WHERE PRS_PERSLID_KEY = user_key
AND niveau = v_alg_level_read
)
) res
ORDER BY code;
END IF;
END;
--
PROCEDURE conn_p_bes_div_cat ( user_key IN NUMBER,
p_datum_van IN VARCHAR2, -- Let wel: formaat '01-01-2015'
p_datum_tot IN VARCHAR2,
p_cursor OUT t_cursor) AS
BEGIN
OPEN p_cursor FOR
SELECT a.prs_afdeling_parent_oms divisie,
dis.ins_discipline_omschrijving catalogus,
COUNT (b.bes_bestelling_key) aantal_aanvragen,
SUM (COALESCE (boi.bes_bestelopdr_item_prijs, 0) * bi.bes_bestelling_item_aantal
) totaalbedrag
FROM BES_BESTELLING b,
BES_BESTELLING_ITEM bi,
bes_srtDEEL sd,
bes_srtGROEP sg,
INS_TAB_DISCIPLINE dis,
bes_bestelopdr_item boi,
(SELECT p.prs_perslid_key,
a.prs_afdeling_omschrijving prs_afdeling_parent_oms
FROM prs_v_afdeling_boom ab, PRS_AFDELING a, PRS_PERSLID p
WHERE ab.prs_afdeling_key1 = a.prs_afdeling_key
AND p.prs_afdeling_key = ab.prs_afdeling_key) a
WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND b.bes_bestelling_datum >= Fac.safe_to_date(p_datum_van, 'dd-mm-yyyy')
AND b.bes_bestelling_datum < Fac.safe_to_date(p_datum_tot, 'dd-mm-yyyy')
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = dis.ins_discipline_key
AND b.bes_bestelling_status <> 1
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND b.bes_bestelling_module = 'BES'
AND a.prs_perslid_key = b.prs_perslid_key
GROUP BY a.prs_afdeling_parent_oms, dis.ins_discipline_omschrijving
ORDER BY 1,2;
END;
--
END;
/
show errors;
--
-- CONN #451
--
/* Formatted on 11-6-2010 16:45:48 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_bestelopdr_gegevens
(
hide_f_opdracht,
datum,
fclt_f_opdrnr,
fclt_f_naam,
telefoon,
fclt_f_status
)
AS
SELECT DISTINCT bo.bes_bestelopdr_key,
TO_CHAR (b.bes_bestelling_datum, 'DD-MM-YYYY'),
TO_CHAR (bo.bes_bestelopdr_key),
(SELECT pf.prs_perslid_naam_full
FROM prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = b.prs_perslid_key),
(SELECT P.PRS_PERSLID_TELEFOONNR
FROM prs_perslid p
WHERE p.prs_perslid_key = b.prs_perslid_key),
bos.bes_bestelopdrstatuses_omschr
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_bestelopdr bo,
bes_bestelopdrstatuses bos,
bes_bestelopdr_item boi
WHERE bes_bestelopdr_status IN (4, 5, 6, 7)
AND bi.bes_bestelling_key = b.bes_bestelling_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bo.bes_bestelopdr_status = bos.bes_bestelopdrstatuses_key;
--
-- CONN#321
--
/* Formatted on 18-1-2010 16:02:12 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_besteller_z_kostenpl
(
naam,
afdeling,
profiel
)
AS
SELECT pf.prs_perslid_naam_full, a.prs_afdeling_omschrijving, f.fac_profiel_omschrijving
FROM prs_v_aanwezigperslid p, prs_afdeling a, prs_v_perslid_fullnames pf, fac_profiel f
WHERE p.fac_profiel_key = f.fac_profiel_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_kostenplaats_key IS NULL;
CREATE OR REPLACE VIEW conn_v_huurders_kostenplaats (fclt_f_naam,
fclt_f_kostenplaats
)
AS
SELECT prs_bedrijf_naam AS naam,
prs_leverancier_nr AS kostenplaats
FROM prs_v_aanwezigbedrijf;
--
-- CONN#415 CONN#496
--
CREATE OR REPLACE VIEW CONN_V_LOCATIE_BEDRIJVEN
(FCLT_F_LOCATIE, ADRES, POSTCODE, PLAATS, BEDRIJF,
DIENST, TELEFOONNR, STORINGSNR)
AS
SELECT l.ALG_LOCATIE_CODE
,l.ALG_LOCATIE_ADRES
,l.ALG_LOCATIE_POSTCODE
,l.ALG_LOCATIE_PLAATS
,substr(b.PRS_BEDRIJF_NAAM,1,decode(instr(b.PRS_BEDRIJF_NAAM,' _ LEV'),0,60,instr(b.PRS_BEDRIJF_NAAM,' _ LEV')))
,d.PRS_DIENST_OMSCHRIJVING
,b.PRS_BEDRIJF_TELEFOON
,b.PRS_BEDRIJF_TELEFOON2
FROM PRS_BEDRIJFDIENSTLOCATIE bdl
,ALG_V_AANWEZIGLOCATIE l
,PRS_DIENST d
,PRS_V_AANWEZIGBEDRIJF b
where bdl.PRS_BEDRIJF_KEY = b.PRS_BEDRIJF_KEY
and bdl.ALG_LOCATIE_KEY = l.ALG_LOCATIE_KEY
and bdl.PRS_DIENST_KEY = d.PRS_DIENST_KEY
order by 1,5;
/* Formatted on 28-11-2011 10:49:26 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW conn_v_perslid_z_logwwmail
(
naam,
nummer,
login,
wachtwoord,
email
)
AS
SELECT pf.prs_perslid_naam_full,
p.prs_perslid_nr,
p.prs_perslid_oslogin,
'*****',
p.prs_perslid_email
FROM prs_perslid p, prs_v_perslid_fullnames pf
WHERE pf.prs_perslid_key = p.prs_perslid_key
AND (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_wachtwoord_hash IS NULL OR p.prs_perslid_email IS NULL);
--insert into fac_usrrap (FAC_USRRAP_OMSCHRIJVING, FAC_USRRAP_VIEW_NAME, FAC_USRRAP_INFO) values
-- ('Personen zonder login..', 'CONN_V_PERSLID_Z_LOGWWMAIL', 'Personen waarbij geen login, wachtwoord of e-mail adres ingevuld is.');
--
create or replace view conn_v_bedrijf_zonder_nummer as
select * from prs_v_aanwezigbedrijf where prs_leverancier_nr is null
and prs_bedrijf_intern is null;
create or replace view CONN_RAP_OPDR_OPMERKINGEN AS
select alg_locatie_omschrijving fclt_f_locatie
,sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.MLD_OPDR_BEDRIJFOPDR_VOLGNR opdrachtnummer
,TO_CHAR(o.mLD_OPDR_DATUMBEGIN, 'dd-mm-yyyy') datum
,prs_bedrijf_naam leverancier
,mld_kenmerkopdr_waarde opmerking
from mld_opdr o
,MLD_V_AANWEZIGKENMERKOPDR ko
,mld_melding m
,mld_stdmelding std
,alg_locatie l
,mld_discipline md
,ins_srtdiscipline sd
,prs_bedrijf b
where o.mld_opdr_key = ko.mld_opdr_key
and ko.MLD_KENMERK_KEY = 75
and o.MLD_TYPEOPDR_KEY = 5
and m.mld_melding_key = o.mld_melding_key
and m.mld_alg_locatie_key = l.alg_locatie_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND md.ins_discipline_key = std.mld_ins_discipline_key
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
and b.prs_bedrijf_key(+) = o.MLD_UITVOERENDE_KEYS order by 1;
-- *
-- * FAC_V_WEB_AUTORISATIE view
-- *
CREATE OR REPLACE VIEW FAC_V_WEB_AUTORISATIE
(BEDRIJF, FCLT_F_BUSINESS_UNIT, FCLT_F_NAAM, FCLT_F_USERID, FCLT_F_GROEP)
AS
SELECT B.prs_bedrijf_naam as BEDRIJF
, AD.prs_afdeling_omschrijving as FCLT_F_BUSINESS_UNIT
, PF.prs_perslid_naam_full as FCLT_F_NAAM
, P.PRS_PERSLID_OSLOGIN as FCLT_F_USERID
, GR.fac_groep_upper as FCLT_F_GROEP
FROM PRS_V_AANWEZIGPERSLID P
, PRS_AFDELING AD
, PRS_V_AFDELING_BOOM AB
, PRS_BEDRIJF B
, FAC_GEBRUIKERSGROEP GG
, FAC_GROEP GR
, PRS_V_PERSLID_FULLNAMES PF
WHERE GG.fac_groep_key=GR.fac_groep_key
AND P.prs_perslid_key=GG.prs_perslid_key
AND P.prs_afdeling_key = AB.prs_afdeling_key
AND AB.prs_bedrijf_key = B.prs_bedrijf_key
AND AB.prs_afdeling_key1 = AD.prs_afdeling_key
AND PF.prs_perslid_key = p.prs_perslid_key;
-- *
-- * CONN_V_FIATEURS view (in 4.81 CONN_FIATERING)
-- *
CREATE OR REPLACE VIEW CONN_V_FIATEURS
(
PERSOON,
PROFIEL,
KOSTENPLAATSHOUDER,
KOSTENPLAATSGROEPHOUDER
)
AS
SELECT p.prs_perslid_naam
|| DECODE (p.prs_perslid_voorletters,
NULL, '',
', ' || p.prs_perslid_voorletters)
|| DECODE (p.prs_perslid_voornaam,
NULL, '',
' (' || p.prs_perslid_voornaam || ')')
Persoon,
f.fac_profiel_omschrijving,
p2.prs_perslid_naam
|| DECODE (p2.prs_perslid_voorletters,
NULL, '',
', ' || p2.prs_perslid_voorletters)
|| DECODE (p2.prs_perslid_voornaam,
NULL, '',
' (' || p2.prs_perslid_voornaam || ')')
Budgethouder,
p3.prs_perslid_naam
|| DECODE (p3.prs_perslid_voorletters,
NULL, '',
', ' || p3.prs_perslid_voorletters)
|| DECODE (p3.prs_perslid_voornaam,
NULL, '',
' (' || p3.prs_perslid_voornaam || ')')
Budgetgroephouder
FROM prs_perslid p,
fac_profiel f,
prs_afdeling a,
prs_kostenplaats k,
prs_perslid p2,
prs_kostenplaatsgrp g,
prs_perslid p3
WHERE f.fac_profiel_key(+) = p.fac_profiel_key
AND a.prs_afdeling_key(+) = p.prs_afdeling_key
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND p2.prs_perslid_key(+) = k.prs_perslid_key
AND k.prs_kostenplaatsgrp_key = g.prs_kostenplaatsgrp_key(+)
AND p3.prs_perslid_key(+) = g.prs_perslid_key
AND prs_kostenplaats_verwijder IS NULL
AND p.prs_perslid_verwijder IS NULL
ORDER BY 1,
2,
3,
4;
/* Formatted on 2006/06/16 10:17 (Formatter Plus v4.8.5) */
/* Formatted on 11-6-2010 17:32:44 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_ppi1
(
aanvraagnummer,
fclt_f_maand,
besteller,
afdeling,
artikelnummer,
omschrijving,
aantal,
prijs,
fclt_3d_afdeling_key
)
AS
SELECT b.bes_bestelling_key,
TO_CHAR (b.bes_bestelling_datum, 'YYMM'),
p.prs_perslid_naam
|| ' '
|| NVL (p.prs_perslid_voorletters, '')
|| ' '
|| NVL (p.prs_perslid_voornaam, ''),
a.prs_afdeling_naam,
s.bes_srtdeel_nr,
s.bes_srtdeel_omschrijving,
TO_CHAR (i.bes_bestelling_item_aantal, '99999990'),
TO_CHAR (i.bes_bestelling_item_prijs, '99999990D00'),
a.prs_afdeling_key
FROM bes_bestelling b,
bes_bestelling_item i,
prs_perslid p,
prs_afdeling a,
bes_srtdeel s,
bes_srtgroep g,
ins_tab_discipline d
WHERE b.bes_bestelling_key = i.bes_bestelling_key
AND b.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND i.bes_srtdeel_key = s.bes_srtdeel_key
AND s.bes_srtgroep_key = g.bes_srtgroep_key
AND g.ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_key = 21;
CREATE OR REPLACE VIEW CONN_V_PPI1_TOT
(FCLT_F_MAAND, AANTAL, TOTAALBEDRAG)
AS
SELECT
FCLT_F_Maand
,SUM(TO_NUMBER(Aantal, '999999D99', 'nls_numeric_characters = ''.,'''))
,SUM(TO_NUMBER(Aantal, '999999D99', 'nls_numeric_characters = ''.,''') * TO_NUMBER(prijs, '999999D99', 'nls_numeric_characters = ''.,'''))
FROM CONN_V_PPI1
GROUP BY FCLT_F_Maand;
/* Formatted on 11-6-2010 17:37:17 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_ppi2_all
(
opdrachtnummer,
fclt_f_maand,
besteller,
afdeling,
totaalbedrag,
bes_bestelopdr_datum,
bes_bestelopdr_leverdatum,
prs_afdeling_key
)
AS
SELECT bo.bes_bestelopdr_key,
TO_CHAR (bo.bes_bestelopdr_datum, 'YYMM'),
pp.prs_perslid_naam
|| ' '
|| NVL (pp.prs_perslid_voorletters, '')
|| ' '
|| NVL (pp.prs_perslid_voornaam, ''),
ad.prs_afdeling_naam,
boi.bes_bestelopdr_item_prijs * bi.bes_bestelling_item_aantal,
bo.bes_bestelopdr_datum,
bo.bes_bestelopdr_leverdatum,
ad.prs_afdeling_key
FROM bes_bestelling bb,
bes_bestelling_item bi,
bes_bestelopdr bo,
bes_bestelopdr_item boi,
prs_perslid pp,
prs_afdeling ad
WHERE bb.bes_bestelling_key = bi.bes_bestelling_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bo.prs_perslid_key = pp.prs_perslid_key
AND pp.prs_afdeling_key = ad.prs_afdeling_key;
/* Formatted on 11-6-2010 17:38:36 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_ppi2_subset
(
opdrachtnummer,
fclt_f_maand,
besteller,
afdeling,
totaalbedrag,
prs_afdeling_key
)
AS
SELECT opdrachtnummer,
fclt_f_maand,
besteller,
afdeling,
totaalbedrag,
prs_afdeling_key
FROM conn_v_ppi2_all
WHERE ( (bes_bestelopdr_leverdatum > fac.datumtijdplusuitvoertijd (bes_bestelopdr_datum, 4, 'DAGEN'))
OR (bes_bestelopdr_leverdatum IS NULL
AND SYSDATE > fac.datumtijdplusuitvoertijd (bes_bestelopdr_datum, 4, 'DAGEN')));
CREATE OR REPLACE VIEW CONN_V_PPI2
(OPDRACHTNUMMER, FCLT_F_MAAND, BESTELLER, AFDELING, TOTAALBEDRAG,
FCLT_3D_AFDELING_KEY)
AS
SELECT
Opdrachtnummer,
FCLT_F_Maand,
Besteller,
Afdeling,
TO_CHAR(SUM(Totaalbedrag),'99999990D00'),
PRS_AFDELING_KEY
FROM CONN_V_PPI2_SUBSET
GROUP BY Opdrachtnummer,FCLT_F_Maand,Besteller,Afdeling,PRS_AFDELING_KEY;
CREATE OR REPLACE VIEW CONN_V_PPI2_TOT
(FCLT_F_MAAND, AANTAL, TOTAAL)
AS
SELECT FCLT_F_Maand, SUM(Aantal) Aantal, SUM(Totaal) Totaal
FROM
(
SELECT FCLT_F_Maand, COUNT(Opdrachtnummer) Aantal, 0 Totaal
FROM (SELECT FCLT_F_Maand, Opdrachtnummer
FROM CONN_V_PPI2 A
GROUP BY FCLT_F_Maand, Opdrachtnummer)
GROUP BY FCLT_F_Maand
UNION
SELECT FCLT_F_Maand, 0, COUNT(Opdrachtnummer)
FROM (SELECT FCLT_F_Maand, Opdrachtnummer
FROM CONN_V_PPI2_ALL B
GROUP BY FCLT_F_Maand, Opdrachtnummer)
GROUP BY FCLT_F_Maand
)
GROUP BY FCLT_F_Maand;
/* Formatted on 28-11-2011 10:47:34 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_ppi3_all
(
aanvraagnummer,
fclt_f_maand,
besteller,
afdeling,
fiatteur,
status,
aantal,
prijs,
totaalbedrag,
bes_bestelling_datum,
bes_bestelling_afgewezen,
bes_bestelling_geaccepteerd,
prs_afdeling_key
)
AS
SELECT b.bes_bestelling_key,
TO_CHAR (b.bes_bestelling_datum, 'YYMM'),
p.prs_perslid_naam
|| ' '
|| NVL (p.prs_perslid_voorletters, '')
|| ' '
|| NVL (p.prs_perslid_voornaam, ''),
a.prs_afdeling_naam,
p2.prs_perslid_naam
|| ' '
|| NVL (p2.prs_perslid_voorletters, '')
|| ' '
|| NVL (p2.prs_perslid_voornaam, ''),
bs.bes_bestellingstatuses_omschr,
i.bes_bestelling_item_aantal,
i.bes_bestelling_item_prijs,
i.bes_bestelling_item_aantal * i.bes_bestelling_item_prijs,
b.bes_bestelling_datum,
fac.gettrackingdate ('BESREJ', b.bes_bestelling_key),
fac.gettrackingdate ('BESACP', b.bes_bestelling_key),
a.prs_afdeling_key
FROM bes_bestelling b,
bes_bestelling_item i,
prs_perslid p,
prs_afdeling a,
prs_perslid p2,
bes_bestellingstatuses bs
WHERE b.bes_bestelling_key = i.bes_bestelling_key
AND b.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND b.bes_bestelling_status = bs.bes_bestellingstatuses_key
AND b.bes_bestelling_fiat_user IS NOT NULL -- Dus alleen "fiatteringsbestellingen"
AND b.bes_bestelling_fiat_user = p2.prs_perslid_key;
/* Formatted on 11-6-2010 17:51:26 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_ppi3_subset
(
aanvraagnummer,
fclt_f_maand,
besteller,
afdeling,
fiatteur,
status,
aantal,
prijs,
totaalbedrag,
bes_bestelling_datum,
bes_bestelling_afgewezen,
bes_bestelling_geaccepteerd,
prs_afdeling_key
)
AS
SELECT aanvraagnummer,
fclt_f_maand,
besteller,
afdeling,
fiatteur,
status,
aantal,
prijs,
totaalbedrag,
bes_bestelling_datum,
bes_bestelling_afgewezen,
bes_bestelling_geaccepteerd,
prs_afdeling_key
FROM conn_v_ppi3_all
WHERE ( (fac.datumtijdplusuitvoertijd (bes_bestelling_datum, 3, 'DAGEN') <
bes_bestelling_afgewezen)
OR (fac.datumtijdplusuitvoertijd (bes_bestelling_datum, 3, 'DAGEN') <
bes_bestelling_geaccepteerd)
OR ( bes_bestelling_afgewezen IS NULL
AND bes_bestelling_geaccepteerd IS NULL
AND fac.datumtijdplusuitvoertijd (bes_bestelling_datum, 3, 'DAGEN') < SYSDATE));
CREATE OR REPLACE VIEW CONN_V_PPI3_TOT
(FCLT_F_MAAND, TOTAAL, TELAAT)
AS
SELECT fclt_f_maand, SUM(totaal) Totaal,SUM(totaal)-SUM(optijd) Telaat
FROM
(
SELECT FCLT_F_Maand, COUNT(*) Totaal, 0 Optijd
FROM (SELECT FCLT_F_Maand, aanvraagnummer
FROM CONN_V_PPI3_ALL A
GROUP BY FCLT_F_Maand, aanvraagnummer)
GROUP BY FCLT_F_Maand
UNION
SELECT FCLT_F_Maand, 0, COUNT(*)
FROM (SELECT FCLT_F_Maand, aanvraagnummer
FROM CONN_V_PPI3_SUBSET A
GROUP BY FCLT_F_Maand, aanvraagnummer)
GROUP BY FCLT_F_Maand
)
GROUP BY FCLT_F_Maand;
/* Formatted on 2006/06/16 10:24 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_ppi5_all (opdrachtnummer, fclt_f_maand, opmerking, prs_afdeling_key)
AS
SELECT bo.bes_bestelopdr_key, TO_CHAR (bo.bes_bestelopdr_datum, 'YYMM'), bo.bes_bestelopdr_delivery_opmerk,
p.prs_afdeling_key
FROM bes_bestelling bb, bes_bestelling_item bi, bes_bestelopdr bo, bes_bestelopdr_item boi, prs_perslid p
WHERE bb.bes_bestelling_key = bi.bes_bestelling_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND bb.prs_perslid_key = p.prs_perslid_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key;
/* Formatted on 2006/06/16 10:22 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_ppi5 (opdrachtnummer, fclt_f_maand, opmerking, fclt_3d_prs_afdeling_key)
AS
SELECT DISTINCT bo.bes_bestelopdr_key, TO_CHAR (bo.bes_bestelopdr_datum, 'YYMM'), bo.bes_bestelopdr_delivery_opmerk,
p.prs_afdeling_key
FROM bes_bestelling bb, bes_bestelling_item bi, bes_bestelopdr bo, bes_bestelopdr_item boi, prs_perslid p
WHERE bb.bes_bestelling_key = bi.bes_bestelling_key
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bb.prs_perslid_key = p.prs_perslid_key
AND bes_bestelopdr_delivery_opmerk IS NOT NULL;
CREATE OR REPLACE VIEW CONN_V_PPI5_TOT
(FCLT_F_MAAND, AANTAL, TOTAAL)
AS
SELECT fclt_f_maand, SUM(Aantal) Aantal, SUM(Totaal) Totaal
FROM
(
SELECT FCLT_F_Maand, COUNT(*) Aantal, 0 Totaal
FROM (SELECT FCLT_F_Maand, opdrachtnummer
FROM CONN_V_PPI5 A
GROUP BY FCLT_F_Maand, opdrachtnummer)
GROUP BY FCLT_F_Maand
UNION
SELECT FCLT_F_Maand, 0, COUNT(*)
FROM (SELECT FCLT_F_Maand, opdrachtnummer
FROM CONN_V_PPI5_ALL A
GROUP BY FCLT_F_Maand, opdrachtnummer)
GROUP BY FCLT_F_Maand
)
GROUP BY FCLT_F_Maand;
/* Formatted on 11-6-2010 17:56:01 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_ppi_overzicht
(
ppi,
fclt_f_maand,
aantal,
totaal
)
AS
SELECT 'PPI1 - Bestelling artikelen Luxe catalogus per maand',
fclt_f_maand,
TO_CHAR (aantal),
TO_CHAR (totaalbedrag, '99999990D00')
FROM conn_v_ppi1_tot
UNION
SELECT 'PPI2 - Juistheid "afmelding" ontvangsten per maand', fclt_f_maand, TO_CHAR (aantal), TO_CHAR (totaal)
FROM conn_v_ppi2_tot
UNION
SELECT 'PPI3 - Tijd tussen aanvraag en fiattering per maand', fclt_f_maand, TO_CHAR (telaat), TO_CHAR (totaal)
FROM conn_v_ppi3_tot
UNION
SELECT 'PPI5 - Niet tevreden ontvangers per maand', fclt_f_maand, TO_CHAR (aantal), TO_CHAR (totaal)
FROM conn_v_ppi5_tot;
-- *
-- * CONN_V_DELETED_LOC_GEG view
-- * Overzicht verwijderde locaties (CONN#188)
-- *
CREATE OR REPLACE VIEW CONN_V_DELETED_LOC_GEG
(FCLT_F_LOCATIE_CODE, OMSCHRIJVING, BEZOEK_ADRES,
BEZOEK_PLAATS, VERWIJDERDATUM, UITBEHEER, DISTRICT)
AS
SELECT l.alg_locatie_code,
l.alg_locatie_omschrijving,
l.alg_locatie_adres,
l.alg_locatie_plaats,
l.alg_locatie_verwijder,
(SELECT aok.alg_onrgoedkenmerk_waarde from alg_onrgoedkenmerk aok
WHERE alg_onrgoed_key = l.alg_locatie_key
AND alg_kenmerk_key = 22),
d.alg_district_omschrijving
FROM alg_locatie l,
alg_district d
WHERE d.alg_district_key(+) = l.alg_district_key
AND (l.alg_locatie_verwijder IS NOT NULL
OR
l.alg_locatie_key IN (
SELECT alg_onrgoed_key from alg_onrgoedkenmerk aok
WHERE alg_onrgoed_niveau = 'L'
AND alg_kenmerk_key = 22))
ORDER BY l.alg_locatie_upper ASC;
commit;
create or replace view CONN_V_PRS_INDIENST (FCLT_F_MAAND, FCLT_F_NAAM, NUMMER, INDIENST, FCLT_F_AFDELING) as
select TO_CHAR(p.prs_perslid_ingangsdatum, 'YYMM'),
pf.prs_perslid_naam_full,
p.prs_perslid_nr,
TO_CHAR(p.prs_perslid_ingangsdatum, 'DD-MM-YYYY'),
a.prs_afdeling_naam1
from prs_v_afdeling a,
prs_v_aanwezigperslid p,
prs_v_perslid_fullnames pf
where p.prs_afdeling_key = a.prs_afdeling_key
and pf.prs_perslid_key = p.prs_perslid_key
and p.prs_perslid_ingangsdatum IS NOT NULL;
create or replace view CONN_V_PRS_UITDIENST (FCLT_F_MAAND, FCLT_F_NAAM, NUMMER, UITDIENST, FCLT_F_AFDELING) as
select TO_CHAR(p.prs_perslid_einddatum, 'YYMM'),
pf.prs_perslid_naam_full,
p.prs_perslid_nr,
TO_CHAR(p.prs_perslid_einddatum, 'DD-MM-YYYY'),
a.prs_afdeling_naam1
from prs_v_afdeling a,
prs_v_aanwezigperslid p,
prs_v_perslid_fullnames pf
where p.prs_afdeling_key = a.prs_afdeling_key
and pf.prs_perslid_key = p.prs_perslid_key
and p.prs_perslid_einddatum IS NOT NULL;
--///////////////////////////////////////////VERVALLEN/////////////////////////////////////BEGIN?
CREATE OR REPLACE VIEW CONN_V_OPDR AS
select std.MLD_INS_DISCIPLINE_KEY
,o.*
from mld_opdr o, mld_melding m, mld_stdmelding std
where m.mld_stdmelding_key = std.mld_stdmelding_key
and o.mld_melding_key = m.mld_melding_key;
/
CREATE OR REPLACE VIEW CONN_V_OPDR_IB AS
select o.*
from CONN_V_OPDR o
where o.MLD_INS_DISCIPLINE_KEY = 562;
/
CREATE OR REPLACE VIEW CONN_V_OPDR_OVERIG AS
select o.*
from CONN_V_OPDR o
where o.MLD_INS_DISCIPLINE_KEY <> 562;
/
CREATE OR REPLACE VIEW CONN_V_MLD_VERPLICHTING_OFF
(OPDRACHT, LOCATIE, BEDRIJF, DATUM, OFFERTE_STATUS, BEDRAG, EIGENAAR)
AS
select (select ins_srtdiscipline_prefix from ins_srtdiscipline sd, ins_tab_discipline d, mld_stdmelding std, mld_melding m where
m.mld_stdmelding_key = std.mld_stdmelding_key
and std.mld_ins_discipline_key = d.ins_discipline_key
and d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
and m.mld_melding_key = o.mld_melding_key) || o.mld_melding_key ||'/' || o.MLD_OPDR_BEDRIJFOPDR_VOLGNR
, (select alg_locatie_code
from alg_locatie l, mld_melding m
where l.alg_locatie_key = m.mld_alg_locatie_key
and o.mld_melding_key = m.mld_melding_key) as locatie
, (select prs_bedrijf_naam from prs_bedrijf where prs_bedrijf_key = o.MLD_UITVOERENDE_KEYS) as bedrijf
, (select TO_CHAR(MLD_OPDR_DATUMBEGIN, 'DD-MM-YYYY') from mld_opdr where mld_melding_key = o.mld_melding_key and rownum = 1) as OpdrDatum
, ud.FAC_USRDATA_OMSCHR
, TO_CHAR(nvl(bed.MLD_KENMERKOPDR_WAARDE,0),'9999990D00') as Openstaand
, (select fd.fac_usrdata_omschr
from fac_usrdata fd, MLD_V_AANWEZIGKENMERKOPDR gb, mld_opdr opdr
where gb.mld_opdr_key = opdr.mld_opdr_key
and gb.mld_kenmerk_key = 83
and opdr.mld_uitvoerende_keys = o.MLD_UITVOERENDE_KEYS
and gb.mld_kenmerkopdr_waarde = fd.fac_usrdata_key
and rownum = 1) as Eigenaar
from mld_opdr o, MLD_V_AANWEZIGKENMERKOPDR ko, fac_usrdata ud, MLD_V_AANWEZIGKENMERKOPDR bed
where o.MLD_TYPEOPDR_KEY = 66
and o.mld_opdr_key = ko.mld_opdr_key(+)
and ko.MLD_KENMERK_KEY(+) = 74
and ud.fac_usrdata_key(+) = ko.mld_kenmerkopdr_waarde
and bed.mld_kenmerk_key(+) = 449
and o.mld_opdr_key = bed.mld_opdr_key(+)
and o.mld_statusopdr_key = 5;
CREATE OR REPLACE VIEW CONN_V_MLD_VERPLICHTING
(DATUM, FCLT_F_SOORT, OPDRACHT, LOCATIE, BEDRIJF,
EIGENAAR, OPDRACHT_BEDRAG, FACTUUR_BEDRAG)
AS
SELECT TO_CHAR (mld_opdr_datumbegin, 'DD-MM-YYYY') datum,
(SELECT ins_srtdiscipline_prefix
FROM ins_srtdiscipline sd,
ins_tab_discipline d,
mld_stdmelding std,
mld_melding m
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND o.mld_melding_key = m.mld_melding_key) soort,
opdracht,
(SELECT alg_locatie_code
FROM alg_locatie l, mld_melding m
WHERE l.alg_locatie_key = m.mld_alg_locatie_key
AND o.mld_melding_key = m.mld_melding_key) AS locatie,
(SELECT prs_bedrijf_naam
FROM prs_bedrijf
WHERE prs_bedrijf_key = mld_uitvoerende_keys) AS bedrijf,
(SELECT fd.fac_usrdata_omschr
FROM fac_usrdata fd, mld_v_aanwezigkenmerkopdr gb
WHERE gb.mld_opdr_key = o.mld_opdr_key
AND gb.mld_kenmerk_key = 83
AND gb.mld_kenmerkopdr_waarde = fd.fac_usrdata_key) AS eigenaar,
mld_opdr_kosten opdrachtkosten, fr_bedrag factuurbedrag
FROM (SELECT o.mld_melding_key
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr opdracht,
mld_opdr_datumbegin, mld_uitvoerende_keys, mld_melding_key,
o.mld_opdr_key, mld_opdr_kosten,
NVL (fin_factuurregel_totaal + fr.fin_factuurregel_btw,
0
) fr_bedrag
FROM fin_factuur f, fin_factuurregel fr, mld_opdr o
WHERE fr.fin_factuur_key(+) = f.fin_factuur_key
AND o.mld_opdr_key = f.mld_opdr_key(+)
AND o.mld_statusopdr_key <> 7
AND o.mld_typeopdr_key = 5) o
WHERE mld_opdr_kosten - fr_bedrag > 2500;
CREATE OR REPLACE VIEW CONN_V_MLD_VERPLICHTING_FIAT
(OPDRACHT, LOCATIE, FIATTEUR, DATUM, OFFERTE_STATUS, BEDRAG, EIGENAAR)
AS
select (select ins_srtdiscipline_prefix from ins_srtdiscipline sd, ins_tab_discipline d, mld_stdmelding std, mld_melding m where
m.mld_stdmelding_key = std.mld_stdmelding_key
and std.mld_ins_discipline_key = d.ins_discipline_key
and d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
and m.mld_melding_key = o.mld_melding_key) || o.mld_melding_key ||'/' || o.MLD_OPDR_BEDRIJFOPDR_VOLGNR
, (select alg_locatie_code
from alg_locatie l, mld_melding m
where l.alg_locatie_key = m.mld_alg_locatie_key
and o.mld_melding_key = m.mld_melding_key) as locatie
, NVL((select prs_bedrijf_naam from prs_bedrijf where prs_bedrijf_key = o.MLD_UITVOERENDE_KEYS),
(select prs_perslid_naam from prs_perslid where prs_perslid_key = o.MLD_UITVOERENDE_KEYS)) as bedrijf
, (select TO_CHAR(MLD_OPDR_DATUMBEGIN,'DD-MM-YYYY') from mld_opdr where mld_melding_key = o.mld_melding_key) as OpdrDatum
, ud.FAC_USRDATA_OMSCHR
, TO_CHAR(nvl(bed.MLD_KENMERKOPDR_WAARDE,0),'9999990D00') as Openstaand
, (select fd.fac_usrdata_omschr
from fac_usrdata fd, MLD_V_AANWEZIGKENMERKOPDR gb, mld_opdr opdr
where gb.mld_opdr_key = opdr.mld_opdr_key
and gb.mld_kenmerk_key = 83
and opdr.mld_uitvoerende_keys = o.MLD_UITVOERENDE_KEYS
and gb.mld_kenmerkopdr_waarde = fd.fac_usrdata_key
and rownum = 1) as Eigenaar
from mld_opdr o, MLD_V_AANWEZIGKENMERKOPDR ko , fac_usrdata ud, MLD_V_AANWEZIGKENMERKOPDR bed
where o.MLD_TYPEOPDR_KEY = 65
and o.mld_opdr_key = ko.mld_opdr_key(+)
and ko.MLD_KENMERK_KEY(+) = 69
and ud.fac_usrdata_key(+) = ko.mld_kenmerkopdr_waarde
and bed.mld_kenmerk_key(+) = 445
and o.mld_opdr_key = bed.mld_opdr_key(+)
and o.mld_statusopdr_key = 5;
CREATE OR REPLACE VIEW conn_rap_tekeningen
AS
SELECT alg_locatie_code AS fclt_f_locatie, alg_gebouw_code,
alg_verdieping_omschrijving, cad_tekening_type,
cad_tekening_filenaam
FROM cad_tekening, alg_locatie, alg_gebouw, alg_verdieping AVG
WHERE cad_tekening.alg_verdieping_key = AVG.alg_verdieping_key
AND alg_locatie.alg_locatie_key = alg_gebouw.alg_locatie_key
AND AVG.alg_gebouw_key = alg_gebouw.alg_gebouw_key
UNION
SELECT alg_locatie_code AS fclt_f_locatie, '', '', cad_tekening_type,
cad_tekening_filenaam
FROM cad_tekening, alg_locatie
WHERE cad_tekening.alg_verdieping_key = NULL
AND alg_locatie.alg_locatie_key = cad_tekening.alg_locatie_key;
CREATE OR REPLACE VIEW CONN_V_RAP_GROEPLEDEN
(NAAM, FCLT_F_LOGIN, FCLT_F_DIVISIE, REGIO, FCLT_F_GROEP, AANTAL_RECHTEN)
AS
SELECT p.prs_perslid_naam, p.prs_perslid_oslogin, a1.prs_afdeling_omschrijving, a2.prs_afdeling_omschrijving,
gr.fac_groep_omschrijving, TO_CHAR(count(*))
FROM fac_gebruikersgroep gg,
prs_v_aanwezigperslid p,
prs_afdeling a1,
prs_afdeling a2,
prs_v_afdeling_boom ab,
fac_groep gr,
fac_groeprechten grr
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = a1.prs_afdeling_key
AND ab.prs_afdeling_key2 = a2.prs_afdeling_key
AND gg.fac_groep_key = gr.fac_groep_key
AND gr.FAC_GROEP_KEY = grr.fac_groep_key
GROUP BY p.prs_perslid_naam, p.prs_perslid_oslogin,
gr.fac_groep_omschrijving, a1.prs_afdeling_omschrijving, a2.prs_afdeling_omschrijving;
-- CONN#546
CREATE OR REPLACE VIEW conn_v_contracten_gegevens (contractnr,
externnr,
fclt_f_bedrijf,
ingangsdatum,
einddatum,
bedrag
)
AS
SELECT TO_CHAR (c.cnt_contract_key) contractnr,
c.cnt_contract_nummer externnr,
NVL (b.prs_bedrijf_naam, afd2.prs_afdeling_naam) fclt_f_bedrijf,
TO_CHAR (c.cnt_contract_looptijd_van, 'DD-MM-YYYY') ingangsdatum,
TO_CHAR (c.cnt_contract_looptijd_tot, 'DD-MM-YYYY') einddatum,
kc.cnt_kenmerkcontract_waarde bedrag
FROM prs_v_aanwezigbedrijf b,
cnt_v_aanwezigcontract c,
prs_v_aanwezigafdeling afd,
prs_v_aanwezigafdeling afd2,
cnt_disc_params cdp,
(SELECT cnt_contract_key, cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
WHERE kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = 24
AND kc.cnt_kenmerkcontract_verwijder IS NULL) kc
WHERE b.prs_bedrijf_key(+) = c.cnt_prs_bedrijf_key
AND cdp.cnt_ins_discipline_key = c.ins_discipline_key
AND cdp.cnt_srtcontract_type <> 2
AND c.cnt_prs_afdeling_key = afd2.prs_afdeling_key(+)
AND afd.prs_afdeling_key = c.prs_afdeling_key_eig
AND c.cnt_contract_key = kc.cnt_contract_key(+)
AND SYSDATE BETWEEN c.cnt_contract_looptijd_van
AND c.cnt_contract_looptijd_tot + 1;
/* Formatted on 2005/09/13 14:07 (Formatter Plus v4.8.5) */
CREATE OR REPLACE VIEW conn_v_rcontracten_gegevens (fclt_f_locatie,
OBJECT,
externnr,
beschrijving,
einddatum,
uitvoerder,
contractnemer,
betalingsvoorwaarden,
totaal_pj,
facturatietermijn,
dienstverlening_afroep,
dienstverlening_periodiek,
responsetijden,
afspraken
)
AS
SELECT NVL (l.alg_locatie_omschrijving, g.alg_locatie_omschrijving) fclt_f_locatie,
sd.ins_srtdeel_omschrijving OBJECT, c.cnt_contract_nummer externnr, c.cnt_contract_omschrijving beschrijving,
c.cnt_contract_looptijd_tot einddatum, b.prs_bedrijf_naam uitvoerder,
(SELECT prs_bedrijf_naam
FROM prs_v_contractbedrijf
WHERE prs_bedrijf_key =
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 141
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL)) contractnemer,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 143
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL) betalingsvoorwaarden,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 144
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL) totaal_pj,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 145
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL)) facturatietermijn,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 146
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL)) dienstverlening_afroep,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (cnt_kenmerkcontract_waarde)
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 147
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL)) dienstverlening_periodiek,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 149
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL) responsetijden,
(SELECT cnt_kenmerkcontract_waarde
FROM cnt_kenmerkcontract k
WHERE k.cnt_kenmerk_key = 161
AND k.cnt_contract_key = c.cnt_contract_key
AND cnt_kenmerkcontract_verwijder IS NULL) afspraken
FROM cnt_v_aanwezigcontract_plaats cp,
(SELECT g2.alg_gebouw_key, l2.alg_locatie_omschrijving
FROM alg_gebouw g2, alg_locatie l2
WHERE g2.alg_locatie_key = l2.alg_locatie_key) g,
alg_locatie l,
cnt_contract c,
cnt_contract_object co,
prs_bedrijf b,
ins_srtdeel sd,
cnt_disc_params cdp
WHERE cp.cnt_alg_plaats_key = g.alg_gebouw_key(+)
AND cp.cnt_alg_plaats_key = l.alg_locatie_key(+)
AND cp.cnt_alg_plaats_code IN ('L', 'G')
AND cp.cnt_contract_key = c.cnt_contract_key
AND co.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = cdp.cnt_ins_discipline_key
AND cdp.cnt_srtcontract_type = 3
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND co.cnt_ins_srtdeel_key = sd.ins_srtdeel_key;
-- CONN#581
CREATE OR REPLACE VIEW conn_v_bedrijf
AS
SELECT b.prs_bedrijf_naam fclt_f_Bedrijfsnaam,
b.prs_leverancier_nr fclt_f_Leveranciersnummer, b.prs_bedrijf_email,
a.prs_bedrijfadres_url, a.prs_bedrijfadres_xsl
FROM prs_bedrijf b
, prs_bedrijfadres a
WHERE b.prs_bedrijf_key = a.prs_bedrijf_key
AND a.prs_bedrijfadres_type = 'B'
AND b.prs_bedrijf_verwijder IS NULL;
/
--CONN#599/CONN#14138
/* Formatted on 11-6-2010 16:57:33 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_opdr_doorloop
(
nr,
fclt_f_maand,
fclt_f_locatie,
gemeld,
uitgegeven,
reactietijd,
afgemeld,
doorlooptijd
)
AS
SELECT o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr,
TO_CHAR (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key), 'yymm'),
(SELECT alg_locatie_code
FROM alg_locatie l, mld_melding m
WHERE o.mld_melding_key = m.mld_melding_key AND m.mld_alg_locatie_key = l.alg_locatie_key),
m.mld_melding_datum,
fac.gettrackingdate ('ORDNEW', o.mld_opdr_key),
TRUNC (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key)) - TRUNC (m.mld_melding_datum),
NVL (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), TO_DATE ('29991231', 'yyyymmdd')),
TRUNC (NVL (fac.gettrackingdate ('ORDAFM', o.mld_opdr_key), TO_DATE ('29991231', 'yyyymmdd')))
- TRUNC (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key))
FROM mld_opdr o, mld_melding m, mld_stdmelding std
WHERE o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = 163;
-- CONN#656
CREATE OR REPLACE PACKAGE CONN_HALTES AS
FUNCTION get_halte_key
(p_haltecode IN VARCHAR2
,p_kenmerk_key IN NUMBER
) return NUMBER;
FUNCTION verwerk_halte
(p_HALTECODE IN VARCHAR2
,p_HALTENAAM IN VARCHAR2
,p_PLAATSNAAM IN VARCHAR2
,p_PLACECODE IN VARCHAR2
,p_ZONE IN VARCHAR2
,p_X_COORDINAAT IN VARCHAR2
,p_Y_COORDINAAT IN VARCHAR2
,p_LIJNNUMMER IN VARCHAR2
) return NUMBER;
END CONN_HALTES;
/
CREATE OR REPLACE PACKAGE BODY CONN_HALTES AS
FUNCTION get_halte_key
(p_haltecode IN VARCHAR2
,p_kenmerk_key IN NUMBER
) return NUMBER
IS
v_result NUMBER(10);
v_count NUMBER(10);
BEGIN
-- Init
v_result := 0;
select count(*)
into v_count
from ins_deel
where ins_deel_verwijder is null
and substr(ins_deel_upper,2,8) = UPPER(p_haltecode);
IF (v_count = 1) THEN
select ins_deel_key
into v_result
from ins_deel
where ins_deel_verwijder is null
and substr(ins_deel_upper,2,8) = UPPER(p_haltecode);
ELSE
select count(*)
into v_count
FROM ins_deel d, ins_kenmerkdeel kd
WHERE d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = p_kenmerk_key
AND UPPER(kd.ins_kenmerkdeel_waarde) = UPPER(p_haltecode)
AND ins_kenmerkdeel_verwijder is null;
IF (v_count = 1) THEN
select d.ins_deel_key
into v_result
FROM ins_deel d, ins_kenmerkdeel kd
WHERE d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = p_kenmerk_key
AND UPPER(kd.ins_kenmerkdeel_waarde) = UPPER(p_haltecode)
AND ins_kenmerkdeel_verwijder is null;
END IF;
END IF;
RETURN v_result;
EXCEPTION WHEN OTHERS THEN
RETURN -1;
END get_halte_key;
FUNCTION verwerk_halte
(p_HALTECODE IN VARCHAR2
,p_HALTENAAM IN VARCHAR2
,p_PLAATSNAAM IN VARCHAR2
,p_PLACECODE IN VARCHAR2
,p_ZONE IN VARCHAR2
,p_X_COORDINAAT IN VARCHAR2
,p_Y_COORDINAAT IN VARCHAR2
,p_LIJNNUMMER IN VARCHAR2
) return NUMBER
IS
v_DEEL_OMSCHRIJVING VARCHAR2(30);
v_HALTENAAM VARCHAR2(40);
v_HALTECODE VARCHAR2(8);
v_PLAATSNAAM VARCHAR2(30);
v_PLACECODE VARCHAR2(10);
v_ZONE VARCHAR2(10);
v_X_COORDINAAT VARCHAR2(10);
v_Y_COORDINAAT VARCHAR2(10);
v_LIJNNUMMER VARCHAR2(200);
ORACLE_err_num NUMBER;
ORACLE_err_mes VARCHAR2(100);
v_result NUMBER(10);
v_errormsg VARCHAR2(1000);
v_import_row VARCHAR2(1000);
v_count NUMBER(10);
v_terreinsector_key NUMBER(10);
v_ins_deel_key NUMBER(10);
c_error_result NUMBER(10) := -1;
-- Constanten: diversen
c_srtdeel_key INTEGER := 43401; -- Halte
c_srtdeel_module VARCHAR2 (3) := 'INS';
c_locatie_key_onbekend INTEGER := 3123;
c_ruimte_type VARCHAR2 (1) := 'T';
c_halte_prefix VARCHAR2 (1) := 'H';
-- Constanten: kenmerken key's
c_halte_code INTEGER := 501;
c_zone_kenmerk_key INTEGER := 503;
c_place_kenmerk_key INTEGER := 541;
c_plaatsnaam_kenmerk_key INTEGER := 502;
c_haltenaam_kenmerk_key INTEGER := 504;
c_Lijnnummer1_kenmerk_key INTEGER := 601;
BEGIN
-- INIT
v_result := c_error_result;
v_errormsg := 'INIT';
v_import_row := p_HALTECODE||'|'||p_HALTENAAM||'|'||p_PLAATSNAAM||'|'||p_PLACECODE||'|'||p_ZONE||'|'||p_X_COORDINAAT||'|'||p_Y_COORDINAAT||'|'||p_LIJNNUMMER;
v_terreinsector_key := -1;
v_HALTENAAM := substr(p_HALTENAAM,1,40);
v_HALTECODE := substr(p_HALTECODE,1,8);
v_PLAATSNAAM := substr(p_PLAATSNAAM,1,30);
v_PLACECODE := substr(p_PLACECODE,1,10);
v_ZONE := substr(p_ZONE,1,4);
v_X_COORDINAAT := substr(p_X_COORDINAAT,1,6);
v_Y_COORDINAAT := substr(p_Y_COORDINAAT,1,6);
v_LIJNNUMMER := substr(p_LIJNNUMMER,1,200);
v_DEEL_OMSCHRIJVING := substr(c_halte_prefix||v_HALTECODE||' '||v_HALTENAAM,1,30);
-- controleer of de haltecode wel 8 posities is. Anders gaan we testdata importeren.
IF length(v_haltecode) <> 8 THEN
RETURN c_error_result;
END IF;
select get_halte_key(v_HALTECODE,c_halte_code)
into v_ins_deel_key
from dual;
IF (v_ins_deel_key <= 0) THEN
-- alg_terrein
v_errormsg := '-- Terrein zoeken';
select count(*)
into v_count
from alg_terreinsector
where alg_terreinsector_verwijder is null
and alg_terreinsector_upper = upper(substr(v_PLAATSNAAM,1,10))
and alg_locatie_key = c_locatie_key_onbekend;
IF (v_count = 0) THEN
v_errormsg := '-- Nieuwe key voor alg_terrein ophalen ';
SELECT alg_s_alg_onroerendgoed_keys.NEXTVAL
INTO v_terreinsector_key
FROM DUAL;
v_errormsg := '-- alg_terrein toevoegen ';
INSERT INTO alg_terreinsector
(alg_locatie_key
,alg_terreinsector_code
,alg_terreinsector_naam)
VALUES
(c_locatie_key_onbekend
,SUBSTR(v_PLAATSNAAM,1,10)
,SUBSTR(v_PLAATSNAAM,1,30));
END IF;
v_errormsg := '-- Terrein zoeken (2)';
select alg_terreinsector_key
into v_terreinsector_key
from alg_terreinsector
where alg_terreinsector_verwijder is null
and alg_terreinsector_upper = upper(substr(v_PLAATSNAAM,1,10))
and alg_locatie_key = c_locatie_key_onbekend;
SELECT ins_s_ins_inst_keys.NEXTVAL
INTO v_ins_deel_key
FROM DUAL;
v_errormsg := '-- Toevoegen halte ';
insert into INS_DEEL
(ins_deel_key
,ins_srtdeel_key
,ins_deel_module
,ins_alg_ruimte_key
,ins_alg_ruimte_type
,ins_deel_omschrijving
, ins_deel_x
, ins_deel_y)
values
(v_ins_deel_key
,c_srtdeel_key
,c_srtdeel_module
,v_terreinsector_key
,c_ruimte_type
,v_DEEL_OMSCHRIJVING
,Fac.safe_to_number(v_X_COORDINAAT)
,Fac.safe_to_number(v_Y_COORDINAAT));
ELSE
v_errormsg := '-- Update bestaande halte ';
update ins_deel
set ins_deel_omschrijving = v_DEEL_OMSCHRIJVING
where ins_deel_key = v_ins_deel_key;
END IF;
v_result := v_ins_deel_key;
v_errormsg := '-- Verwijder eventueel bestaande flexibele kenmerken die relevant zijn voor de koppeling';
DELETE
FROM ins_kenmerkdeel
WHERE ins_deel_key = v_ins_deel_key
AND ins_kenmerk_key in (c_halte_code,c_zone_kenmerk_key,c_place_kenmerk_key,c_plaatsnaam_kenmerk_key,c_haltenaam_kenmerk_key,c_Lijnnummer1_kenmerk_key);
-- c_halte_code
v_errormsg := '--C-- flexprops Halte code toevoegen met kenmerk_key = <'||to_char(c_Halte_code)||'> en deel_key = <'||to_char(v_ins_deel_key)||'> en v_HALTECODE = <'||substr(v_HALTECODE,1,8)||'>';
IF v_HALTECODE IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_Halte_code
, v_ins_deel_key
, substr(v_HALTECODE,1,8));
END IF;
-- c_zone_kenmerk_key
v_errormsg := '--N-- flexprops Zone toevoegen';
IF v_ZONE IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_zone_kenmerk_key
, v_ins_deel_key
, v_ZONE);
END IF;
-- c_place_kenmerk_key
v_errormsg := '--C-- flexprops Placecode toevoegen';
IF v_PLACECODE IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_place_kenmerk_key
, v_ins_deel_key
, v_PLACECODE);
END IF;
-- c_plaatsnaam_kenmerk_key
v_errormsg := '--C-- flexprops Plaatsnaam toevoegen';
IF v_PLAATSNAAM IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_plaatsnaam_kenmerk_key
, v_ins_deel_key
, v_PLAATSNAAM);
END IF;
-- c_haltenaam_kenmerk_key
v_errormsg := '--N-- flexprops Haltenaam toevoegen';
IF v_HALTENAAM IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_haltenaam_kenmerk_key
, v_ins_deel_key
, v_HALTENAAM);
END IF;
-- c_Lijnnummer1_kenmerk_key
v_errormsg := '--N-- flexprops passerende lijnen toevoegen';
IF v_LIJNNUMMER IS NOT NULL THEN
INSERT INTO ins_kenmerkdeel
( ins_kenmerk_key
, ins_deel_Key
, ins_kenmerkdeel_waarde)
VALUES(c_Lijnnummer1_kenmerk_key
, v_ins_deel_key
, v_LIJNNUMMER);
END IF;
RETURN v_result;
EXCEPTION WHEN OTHERS THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := v_errormsg || ' ' ||
'(ORACLE error ' || to_char(oracle_err_num) || '/' || oracle_err_mes
|| ')';
fac.imp_writelog ('VERWERK_HALTE',
'E',
v_errormsg,
v_import_row
);
RETURN c_error_result;
END verwerk_halte;
END CONN_HALTES;
/
CREATE OR REPLACE VIEW conn_v_rap_chalte_import AS
SELECT imp_log_omschrijving melding, TO_CHAR(imp_log_datum,'DD-MM-YYYY') datum_import, imp_log_hint importregel
FROM imp_log
WHERE imp_log_applicatie = 'VERWERK_HALTE'
ORDER BY imp_log_datum DESC;
/
--//////////////////////////////////////////////////////////////////////////////////CONN#668
-- Somewhat under construction
-- gewijzigde export op basis van gen_export agv FIN module.
-- Schrijft opdrachtgegevens naar file van opdrachten waarvan facturen zijn gefiatteerd
-- Er worden 2 files gegenereerd, voor Coda en voor Navision, welke regel waarin komt
-- wordt bepaald aan de hand van de eerste letter van de kostensoort.
--
-- TODO:
-- post-importzaken: AV verklaren van meldingen etc??
-- Voor facturen/deelfacturen wordt het totaalfactuurbedrag vereist in de exportfile,
-- om aan te kunnen geven dat er betaald kan worden. Dit factuurtotaal wordt berekend
-- door de som van alle facturen met hetzelfde factuurnummer en van dezelfde leverancier
-- te nemen, ongeacht de fiatteringsstatus. Dit is waarschijnlijk het bedrag inclusief BTW (?).
-- Tabellen voor de exporteren van factuurgegevens (naar C=Coda en N=Navision)
CREATE OR REPLACE VIEW CONN_V_EXP_BES
(ORDERNR, FACTUURNR, LEVERANCIERSNR, FACTUURDATUM, BOEKINGSDATUM,
SPREIDENOVER, KOSTENSOORT, FACREGELOMS, LOCATIENR, BUDGETCODE,
HUURDERNR, AANTAL, PRIJS, VERDEELPERIODE, BTWTYPE,
TOTAAL, KLANTNR, EIGENAAR, FIN_FACTUUR_KEY)
AS
SELECT TO_CHAR (bo.bes_bestelopdr_key) OrderNr,
f.fin_factuur_nr FactNr,
b.prs_leverancier_nr LeverancNr,
TO_CHAR (f.fin_factuur_datum, 'YYYYMMDD') FactDatum,
'' BoekDatum,
'' SpreidenOver,
COALESCE(kfr.prs_kostensoort_oms, ks.prs_kostensoort_oms, kst.prs_kostensoort_oms) KostenSoort,
fr.fin_factuurregel_omschrijving Omschrijving,
fr.fin_factuurregel_referentie KostenPlaats,
(SELECT SUBSTR(k.prs_kostenplaats_nr, 1 ,INSTR(k.prs_kostenplaats_nr, '/', 1, 1)-1)
FROM dual) BudgetCode,
(SELECT SUBSTR(k.prs_kostenplaats_nr, INSTR(k.prs_kostenplaats_nr, '/', 1, 1)+1)
FROM dual) Huurder,
SUM(boi.bes_bestelopdr_item_aantal) Aantal,
fr.fin_factuurregel_totaal KostPrijs, --SUM(boi.bes_bestelopdr_item_prijs) KostPrijs,
COALESCE (fin_factuur_boekmaand, TO_CHAR (f.fin_factuur_datum, 'YYYY-MM')) VerdeelPeriode,
DECODE (fr.fin_factuurregel_totaal,
0, '0',
DECODE (ROUND(100*fr.fin_factuurregel_btw/fr.fin_factuurregel_totaal), 19, '2',6,'1','0')
) BTWtype,
(f.fin_factuur_totaal + f.fin_factuur_totaal_BTW) TotBedrFactuur,
f.fin_factuur_debiteur_nr OnsKlantNr,
'FB' Bedrijf,
f.fin_factuur_key
FROM bes_bestelopdr bo,
prs_bedrijf b,
bes_bestelling bes,
bes_bestelopdr_item boi,
bes_bestelling_item bi,
prs_kostenplaats k,
fin_factuur f,
fin_factuurregel fr,
prs_kostensoort kfr,
prs_kostensoort ks,
bes_srtdeel isd,
bes_srtgroep isg,
ins_tab_discipline itd,
prs_kostensoort kst
WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND bes.bes_bestelling_key = bi.bes_bestelling_key
AND k.prs_kostenplaats_key = bes.prs_kostenplaats_key
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND f.fin_factuur_statuses_key = 6
AND f.fin_factuur_key = fr.fin_factuur_key
AND fr.prs_kostensoort_key = kfr.prs_kostensoort_key(+)
AND kst.prs_kostensoort_key = itd.prs_kostensoort_key
AND itd.ins_discipline_key = isg.ins_discipline_key
AND isg.bes_srtgroep_key = isd.bes_srtgroep_key
AND isd.bes_srtdeel_key = bi.bes_srtdeel_key
GROUP BY TO_CHAR (bo.bes_bestelopdr_key),
f.fin_factuur_nr,
b.prs_leverancier_nr,
TO_CHAR (f.fin_factuur_datum, 'YYYYMMDD'),
COALESCE(kfr.prs_kostensoort_oms, ks.prs_kostensoort_oms, kst.prs_kostensoort_oms),
fr.fin_factuurregel_omschrijving,
fr.fin_factuurregel_referentie,
k.prs_kostenplaats_nr,
fr.fin_factuurregel_totaal,
COALESCE (fin_factuur_boekmaand, TO_CHAR (f.fin_factuur_datum, 'YYYY-MM')),
DECODE (ROUND(100*fr.fin_factuurregel_btw/fr.fin_factuurregel_totaal), 19, '2',6,'1','0'),
f.fin_factuur_totaal_btw,
f.fin_factuur_totaal,
f.fin_factuur_debiteur_nr,
f.fin_factuur_key;
CREATE OR REPLACE VIEW CONN_V_EXP_CNT
(ORDERNR, FACTUURNR, LEVERANCIERSNR, FACTUURDATUM, BOEKINGSDATUM,
SPREIDENOVER, KOSTENSOORT, FACREGELOMS, LOCATIENR, BUDGETCODE,
HUURDERNR, AANTAL, PRIJS, VERDEELPERIODE, BTWTYPE,
TOTAAL, KLANTNR, EIGENAAR, FIN_FACTUUR_KEY)
AS
SELECT 'C' || c.cnt_contract_nummer_intern opdrachtnr,
f.fin_factuur_nr FactNr,
b.prs_leverancier_nr LeverancNr,
TO_CHAR (f.fin_factuur_datum, 'YYYYMMDD') FactDatum,
'' BoekDatum,
'' SpreidenOver,
COALESCE(kfr.prs_kostensoort_oms, ks.prs_kostensoort_oms, kst.prs_kostensoort_oms) KostenSoort,
fr.fin_factuurregel_omschrijving Omschrijving,
fr.fin_factuurregel_referentie KostenPlaats,
(SELECT SUBSTR(k.prs_kostenplaats_nr, 1 ,INSTR(k.prs_kostenplaats_nr, '/', 1, 1)-1)
FROM dual) BudgetCode,
'' Huurder,
1 Aantal,
fr.fin_factuurregel_totaal KostPrijs, --SUM(boi.bes_bestelopdr_item_prijs) KostPrijs,
COALESCE (fin_factuur_boekmaand, TO_CHAR (f.fin_factuur_datum, 'YYYY-MM')) VerdeelPeriode,
DECODE (fr.fin_factuurregel_totaal,
0, '0',
DECODE (ROUND(100*fr.fin_factuurregel_btw/fr.fin_factuurregel_totaal), 19, '2',6,'1','0')
) BTWtype,
(f.fin_factuur_totaal + f.fin_factuur_totaal_BTW) TotBedrFactuur,
f.fin_factuur_debiteur_nr OnsKlantNr,
'FB' Bedrijf,
f.fin_factuur_key
FROM prs_bedrijf b,
cnt_contract c,
prs_kostenplaats k,
prs_kostensoort ks,
prs_kostensoort kst,
fin_factuur f,
fin_factuurregel fr,
prs_kostensoort kfr
WHERE f.cnt_contract_key = c.cnt_contract_key
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND c.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND c.prs_kostensoort_key = kst.prs_kostensoort_key(+)
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND fr.fin_factuur_key = f.fin_factuur_key
AND fr.prs_kostensoort_key = kfr.prs_kostensoort_key(+)
AND f.fin_factuur_statuses_key = 6;
CREATE OR REPLACE VIEW CONN_V_EXP_MLD
(ORDERNR, FACTUURNR, LEVERANCIERSNR, FACTUURDATUM, BOEKINGSDATUM,
SPREIDENOVER, KOSTENSOORT, FACREGELOMS, LOCATIENR, BUDGETCODE,
HUURDERNR, AANTAL, PRIJS, VERDEELPERIODE, BTWTYPE,
TOTAAL, KLANTNR, EIGENAAR, FIN_FACTUUR_KEY, PRS_KOSTENPLAATS_MODULE, PRS_KOSTENPLAATS_NR)
AS
SELECT sdi.ins_srtdiscipline_prefix || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrachtnr,
f.fin_factuur_nr FactNr,
b.prs_leverancier_nr LeverancNr,
TO_CHAR (f.fin_factuur_datum, 'YYYYMMDD') FactDatum,
'' BoekDatum, -- mld_kenmerk_key = 131 , wordt niet meer gebruikt
'' SpreidenOver,
COALESCE(kfr.prs_kostensoort_oms, ks.prs_kostensoort_oms,
COALESCE((SELECT prs_kostensoort_oms
FROM prs_kostensoort kst
WHERE kst.prs_kostensoort_key = stdm.prs_kostensoort_key),
(SELECT kst.prs_kostensoort_oms
FROM prs_kostensoort kst
WHERE kst.prs_kostensoort_key = di.prs_kostensoort_key))) KostenSoort,
fr.fin_factuurregel_omschrijving Omschrijving,
fr.fin_factuurregel_referentie KostenPlaats,
(SELECT SUBSTR(k.prs_kostenplaats_nr, 1 ,INSTR(k.prs_kostenplaats_nr, '/', 1, 1)-1)
FROM dual) BudgetCode,
DECODE(mld_kosten_klant, 1, (SELECT SUBSTR(k.prs_kostenplaats_nr, INSTR(k.prs_kostenplaats_nr, '/', 1, 1)+1)
FROM dual), '') Huurder,
1 Aantal,
fr.fin_factuurregel_totaal KostPrijs,
COALESCE (fin_factuur_boekmaand, TO_CHAR (f.fin_factuur_datum, 'YYYY-MM')) VerdeelPeriode,
DECODE (fr.fin_factuurregel_totaal,
0, '0',
DECODE (ROUND(100*fr.fin_factuurregel_btw/fr.fin_factuurregel_totaal), 19, '2',6,'1','0')
) BTWtype,
(f.fin_factuur_totaal + f.fin_factuur_totaal_BTW) TotBedrFactuur,
f.fin_factuur_debiteur_nr OnsKlantNr,
(SELECT fud.fac_usrdata_omschr
FROM mld_kenmerkopdr v,
fac_usrdata fud
WHERE v.mld_kenmerkopdr_waarde = fud.fac_usrdata_key
AND v.mld_opdr_key = o.mld_opdr_key
AND v.mld_kenmerk_key = 83) Bedrijf,
f.fin_factuur_key,
prs_kostenplaats_module,
prs_kostenplaats_nr
FROM mld_opdr o,
prs_bedrijf b,
mld_melding m,
prs_kostenplaats k,
fin_factuur f,
fin_factuurregel fr,
prs_kostensoort kfr,
alg_locatie l,
mld_stdmelding stdm,
ins_tab_discipline di,
ins_srtdiscipline sdi,
prs_kostensoort ks
WHERE b.prs_bedrijf_key = o.mld_uitvoerende_keys
AND o.mld_melding_key = m.mld_melding_key
AND k.prs_kostenplaats_key = o.prs_kostenplaats_key
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND f.mld_opdr_key = o.mld_opdr_key
AND f.fin_factuur_key = fr.fin_factuur_key
AND fr.prs_kostensoort_key = kfr.prs_kostensoort_key(+)
AND m.mld_stdmelding_key = stdm.mld_stdmelding_key
AND di.ins_discipline_key = stdm.mld_ins_discipline_key
AND sdi.ins_srtdiscipline_key = di.ins_srtdiscipline_key
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND f.fin_factuur_statuses_key = 6
ORDER BY 1, 2;
-- Procedure voor de import van facturen (van leverancier of basware)
CREATE OR REPLACE PROCEDURE conn_import_factuur (
p_import_key IN NUMBER
)
AS
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line
v_field VARCHAR2 (100);
v_fielddelimitor VARCHAR2 (1);
v_errormsg VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
-- De velden op de eerste regel
v_totbedrfact VARCHAR2 (100);
v_totbedrfactvalue VARCHAR2 (100);
-- De importvelden
v_empty VARCHAR2 (100);
v_onsklantnr VARCHAR2 (100);
v_ordernr VARCHAR2 (100);
v_leveranciernr VARCHAR2 (100);
v_factuurnr VARCHAR2 (100);
v_factuurdatum VARCHAR2 (100);
v_aantal VARCHAR2 (100);
v_kostprijs VARCHAR2 (100);
v_btw VARCHAR2 (100);
v_btw_bedrag VARCHAR2 (100);
v_docid VARCHAR2 (100);
v_locatie VARCHAR2 (100);
v_afleverdatum VARCHAR2 (100);
v_omschrijving VARCHAR2 (100);
v_check_dec_sign NUMBER(5,2);
CURSOR cfactuur
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY FAC_IMP_FILE_INDEX;
v_rec cfactuur%rowtype;
BEGIN
-- Init
v_fielddelimitor := ';';
header_is_valid := 0;
DELETE FROM conn_imp_factuur;
-- check the client decimal settings
-- we do not convert the , to a . if the client decimal separator is a ,
SELECT FAC.SAFE_TO_NUMBER('2,5')
INTO v_check_dec_sign
FROM DUAL;
fac.imp_writelog (p_import_key, 'S',
'Cxx factuurimport $Revision$', '');
OPEN cfactuur;
IF cfactuur%ISOPEN THEN
LOOP
BEGIN
FETCH cfactuur INTO v_rec;
EXIT WHEN cfactuur%NOTFOUND;
v_newline := v_rec.fac_imp_file_line;
fac.imp_getfield (v_newline, v_fielddelimitor, v_leveranciernr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_factuurnr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_factuurdatum);
fac.imp_getfield (v_newline, v_fielddelimitor, v_empty);
fac.imp_getfield (v_newline, v_fielddelimitor, v_ordernr);
fac.imp_getfield (v_newline, v_fielddelimitor, v_locatie);
fac.imp_getfield (v_newline, v_fielddelimitor, v_afleverdatum);
fac.imp_getfield (v_newline, v_fielddelimitor, v_omschrijving);
fac.imp_getfield (v_newline, v_fielddelimitor, v_aantal);
fac.imp_getfield (v_newline, v_fielddelimitor, v_kostprijs);
fac.imp_getfield (v_newline, v_fielddelimitor, v_btw_bedrag);
fac.imp_getfield (v_newline, v_fielddelimitor, v_btw);
fac.imp_getfield (v_newline, v_fielddelimitor, v_docid);
IF v_check_dec_sign IS NULL THEN
v_kostprijs := REPLACE (SUBSTR (v_kostprijs, 1, 11), ',', '.');
v_btw_bedrag := REPLACE (SUBSTR (v_btw_bedrag, 1, 11), ',', '.');
v_aantal := REPLACE (SUBSTR (v_aantal, 1, 11), ',', '.');
ELSE
v_kostprijs := SUBSTR (v_kostprijs, 1, 11);
v_btw_bedrag := SUBSTR (v_btw_bedrag, 1, 11);
v_aantal := SUBSTR (v_aantal, 1, 11);
END IF;
-- CONN#17357 en CONN#16819:
-- Voorkom invalid number error door een '-' in btw_bedrag
IF ( TRIM(v_btw_bedrag) = '-' )
THEN
v_btw_bedrag := '0';
fac.imp_writelog (p_import_key, 'I',
'BTW-bedrag ''-'' vervangen door ''0''',
SUBSTR (v_ordernr, 1, 13)||' / '||SUBSTR (v_factuurnr, 1, 10) );
END IF;
INSERT INTO conn_imp_factuur
(debiteurnr,
ordernr,
leveranciernr,
factuurnr,
factuurdatum,
aantal,
kostprijs,
btw,
btw_bedrag,
locatie,
afleverdatum,
omschrijving,
docid
)
VALUES (SUBSTR (v_onsklantnr, 1, 30),
SUBSTR (v_ordernr, 1, 13),
UPPER(SUBSTR (v_leveranciernr, 1, 10)),
SUBSTR (v_factuurnr, 1, 10),
SUBSTR (v_factuurdatum, 1, 8),
SUBSTR (v_aantal, 1, 10),
v_kostprijs,
SUBSTR (v_btw, 1, 2),
v_btw_bedrag,
SUBSTR (v_locatie, 1, 4),
SUBSTR (v_afleverdatum, 1, 8),
SUBSTR (v_omschrijving, 1, 60),
SUBSTR (v_docid, 1, 100)
);
COMMIT;
END;
END LOOP;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_errormsg, '');
END;
/
CREATE OR REPLACE PROCEDURE conn_update_factuur (p_import_key IN NUMBER)
AS
CURSOR congeldig
IS
SELECT ordernr, factuurnr,
aantal, kostprijs, btw, btw_bedrag,
locatie, omschrijving
FROM conn_imp_factuur
WHERE fac.safe_to_number(aantal) IS NULL
OR fac.safe_to_number(kostprijs) IS NULL
OR fac.safe_to_number(btw) IS NULL
OR fac.safe_to_number(btw_bedrag) IS NULL;
CURSOR cfactuur
IS
SELECT RTRIM (LTRIM (ordernr)) ordernr,
leveranciernr,
factuurnr,
factuurdatum,
SUM (kostprijs) totaal,
SUM (btw_bedrag) totaal_btw,
btw,
SUBSTR (factuurdatum, 5, 4) fjaar,
SUBSTR (factuurdatum, 3, 2) fmaand,
SUBSTR (factuurdatum, 1, 2) fdag,
debiteurnr, -- wordt nog niets mee gedaan
SUM (aantal) aantal,
locatie,
SUBSTR (afleverdatum, 5, 4) ajaar, -- afleverdatum nodig om opdrachtnummer bij bestelopdrachten te achterhalen indien ordernr niet is meegegeven
SUBSTR (afleverdatum, 3, 2) amaand,
SUBSTR (afleverdatum, 1, 2) adag,
omschrijving,
SUM (btw_bedrag) btw_bedrag
FROM conn_imp_factuur
GROUP BY ordernr,
leveranciernr,
factuurnr,
factuurdatum,
btw,
factuurdatum,
debiteurnr,
locatie,
omschrijving,
afleverdatum
ORDER BY ordernr, btw DESC;
c_i NUMBER;
c_teller NUMBER;
c_index NUMBER;
c_factuurregel NUMBER;
c_fac_type VARCHAR2 (1);
c_prefix VARCHAR2 (3);
c_ordernr_index NUMBER;
c_ordernr_s1 VARCHAR2 (20);
c_ordernr_s2 VARCHAR2 (20);
c_ordernr_t VARCHAR2 (40);
c_old_ordernr VARCHAR2 (20);
c_write_ordernr VARCHAR2 (20);
c_bestelopdr_id VARCHAR2 (20);
c_totaal NUMBER;
c_fact_totaal NUMBER;
c_factuur_totaal NUMBER;
c_factuur_btw NUMBER;
c_find BOOLEAN;
c_find_ordernr BOOLEAN;
c_mld_opdr_key NUMBER (10);
c_cnt_contract_key NUMBER (10);
c_bes_bestelopdr_key NUMBER (10);
c_prs_bedrijf_naam VARCHAR2 (100);
c_opmerking VARCHAR2 (150);
v_desc VARCHAR2(100);
v_errormsg VARCHAR (200);
oracle_err_mes VARCHAR2 (150);
dummy VARCHAR2 (1);
v_count NUMBER;
BEGIN
c_old_ordernr := '';
c_teller := 0;
-- CONN#17357 en CONN#16819:
-- Voorkom invalid number error voor ongeldige getallen (specifiek een '-' in btw_bedrag)
-- 1) Zijn er fouten?
SELECT COUNT (*)
INTO v_count
FROM conn_imp_factuur
WHERE fac.safe_to_number (aantal) IS NULL
OR fac.safe_to_number (kostprijs) IS NULL
OR fac.safe_to_number (btw) IS NULL
OR fac.safe_to_number (btw_bedrag) IS NULL;
-- 2a) Rapporteer 'invalid numbers' en be<62>indig import
IF (v_count > 0)
THEN
fac.imp_writelog (p_import_key, 'E',
'Ongeldig importbestand; import wordt afgebroken.', 'Corrigeer de genoemde fouten.');
FOR rco IN congeldig
LOOP
v_desc := rco.ordernr||' / '||rco.factuurnr;
IF ( COALESCE(fac.safe_to_number(rco.kostprijs), -1) = -1 )
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldige kostprijs ['||rco.kostprijs||']', v_desc);
END IF;
IF ( COALESCE(fac.safe_to_number(rco.btw_bedrag), -1) = -1 )
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldig BTW-bedrag ['||rco.btw_bedrag||']', v_desc);
END IF;
IF ( COALESCE(fac.safe_to_number(rco.aantal), -1) = -1 )
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldig aantal artikelen ['||rco.aantal||']', v_desc);
END IF;
IF ( COALESCE(fac.safe_to_number(rco.btw), -1) = -1 )
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldig BTW-percentage ['||rco.btw||']', v_desc);
END IF;
END LOOP;
-- 2b) Geen 'invalid numbers' --> import!
ELSE
-- Facturen
FOR rc IN cfactuur
LOOP
IF rc.ordernr = c_old_ordernr
THEN
-- voeg alleen nieuwe factuurregel toe die een andere BTW waarde heeft
-- waarde van c_index is nog steeds actueel
c_factuurregel := c_factuurregel + 1;
BEGIN
INSERT INTO fin_factuurregel (
fin_factuur_key,
fin_factuurregel_nr,
fin_factuurregel_totaal,
fin_factuurregel_btw,
fin_factuurregel_omschrijving,
fin_factuurregel_referentie
)
VALUES (c_index, c_factuurregel, rc.totaal, rc.totaal_btw, rc.omschrijving, rc.locatie
);
COMMIT;
fac.imp_writelog (p_import_key,
'I',
'Factuurregel ' || c_factuurregel || ' toegevoegd aan factuur ' || c_index,
rc.ordernr || ' / ' || rc.factuurnr
);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key,
'E',
'Factuur(regel) kan niet toegevoegd worden ' || v_errormsg,
rc.ordernr || '/' || rc.factuurnr
);
END;
c_teller := c_teller + 1;
ELSE
c_old_ordernr := rc.ordernr;
c_factuurregel := 1;
c_ordernr_index := INSTR (rc.ordernr, '/');
c_totaal := 0;
c_mld_opdr_key := NULL;
c_cnt_contract_key := NULL;
c_bes_bestelopdr_key := NULL;
IF c_ordernr_index = 0
THEN
c_ordernr_s1 := rc.ordernr;
c_ordernr_s2 := '';
ELSE
c_ordernr_s1 := SUBSTR (rc.ordernr, 1, c_ordernr_index - 1);
c_ordernr_s2 := SUBSTR (rc.ordernr, c_ordernr_index + 1);
END IF;
c_find := FALSE;
c_find_ordernr := FALSE;
c_fac_type := '';
c_prefix := '';
IF (LENGTH (rc.ordernr) > 0)
THEN
c_prefix := SUBSTR (rc.ordernr, 1, 1);
IF ( ( (ASCII (SUBSTR (c_prefix, 1, 1)) >= 65 AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 90)
OR (ASCII(SUBSTR (c_prefix, 1, 1)) >= 97 AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 122))
AND ASCII (SUBSTR (c_prefix, 1, 1)) != 67
AND ASCII (SUBSTR (c_prefix, 1, 1)) != 99)
THEN
c_fac_type := 'O'; -- Opdracht (Melding)
ELSIF (ASCII (SUBSTR (c_prefix, 1, 1)) >= 48 AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 57)
THEN
c_fac_type := 'B'; -- Bestelling
ELSIF (ASCII (SUBSTR (c_prefix, 1, 1)) = 67 OR ASCII (SUBSTR (c_prefix, 1, 1)) = 99)
THEN
c_fac_type := 'C'; -- Contract
ELSE
fac.imp_writelog (p_import_key,
'I',
'Kan type van factuur niet bepalen ',
rc.ordernr || ' / ' || rc.factuurnr
);
END IF;
ELSE
BEGIN
-- Probeer opdrachtnummer te achterhalen bij bestelopdrachten
-- met hetzelfde leveranciersnummer, locatie, afleverdatum en aantal
SELECT bo.bes_bestelopdr_id
INTO c_bestelopdr_id
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bbi,
bes_bestelling bb,
mld_adres ma,
alg_locatie l,
prs_bedrijf b
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bbi.bes_bestelling_key = bb.bes_bestelling_key
AND boi.bes_bestelopdr_item_aantal = rc.aantal
AND bb.bes_bestelling_leverdatum =
TO_DATE (rc.ajaar || '-' || rc.amaand || '-' || rc.adag || ' 00:00',
'YYYY-MM-DD HH24:MI'
)
AND bo.mld_adres_key_lev = ma.mld_adres_key
AND ma.alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_code = rc.locatie
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_leverancier_nr = rc.leveranciernr;
c_find_ordernr := TRUE;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog (
p_import_key,
'I',
'Kan het bestelopdrachtnummer (OrderNr) niet vinden ' || v_errormsg,
'?/'
|| rc.factuurnr
|| '/'
|| rc.aantal
|| '/'
|| rc.ajaar
|| '-'
|| rc.amaand
|| '-'
|| rc.adag
|| '/'
|| rc.locatie
|| '/'
|| rc.leveranciernr
);
c_find_ordernr := FALSE;
END;
IF c_find_ordernr
THEN
c_ordernr_index := INSTR (c_bestelopdr_id, '/');
c_totaal := 0;
IF c_ordernr_index = 0
THEN
c_ordernr_s1 := c_bestelopdr_id;
c_ordernr_s2 := '';
ELSE
c_ordernr_s1 := SUBSTR (c_bestelopdr_id, 1, c_ordernr_index - 1);
c_ordernr_s2 := SUBSTR (c_bestelopdr_id, c_ordernr_index + 1);
END IF;
c_fac_type := 'B';
END IF;
END IF;
IF c_fac_type = 'O'
THEN
IF (c_ordernr_index != 0
AND (ASCII (SUBSTR (c_prefix, 1, 1)) >= 48 AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 57))
-- Er is geen prefix maar het is wel een opdracht
-- Afgedwongen door /
THEN
-- c_ordernr_s2 bevat al het gedeelte na de /
-- c_ordernr_s1 bevat geen prefix
c_find := TRUE;
ELSE
c_i := 1;
LOOP
IF (ASCII (SUBSTR (c_ordernr_s1, c_i, 1)) >= 48 AND ASCII (SUBSTR (c_ordernr_s1, c_i, 1)) <= 57)
THEN
c_find := TRUE;
ELSE
c_i := c_i + 1;
END IF;
EXIT WHEN (c_find OR c_i > LENGTH (c_ordernr_s1));
END LOOP;
IF c_find
THEN
c_ordernr_s1 := SUBSTR (c_ordernr_s1, c_i);
ELSE
fac.imp_writelog (p_import_key,
'I',
'Kan OrderNr niet bepalen ',
rc.ordernr || ' / ' || rc.factuurnr
);
END IF;
END IF;
ELSIF c_fac_type = 'C'
THEN
-- haal prefix 'C' of 'c' eraf
c_ordernr_s1 := SUBSTR (c_ordernr_s1, 2);
c_find := TRUE;
ELSIF c_fac_type = 'B'
THEN
-- geen prefix aanwezig, c_ordernr_s1 is goed
c_find := TRUE;
END IF;
-- c_ordernr_s1 bevat ordernummer
-- c_ordernr_s2 bevat volgnummer van de opdracht bij meldingen
-- Bij bestellingen en contracten is deze waarde leeg
-- Vind mld_opdr_key met mld_melding_key
IF c_fac_type = 'O'
THEN
c_cnt_contract_key := NULL;
c_bes_bestelopdr_key := NULL;
BEGIN
SELECT o.mld_opdr_key
INTO c_mld_opdr_key
FROM mld_opdr o
WHERE o.mld_melding_key = c_ordernr_s1 AND mld_opdr_bedrijfopdr_volgnr = c_ordernr_s2;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key,
'I',
'Kan de melding referentie niet vinden ' || v_errormsg,
rc.ordernr || '/' || rc.factuurnr
);
c_find := FALSE;
END;
ELSIF c_fac_type = 'C'
THEN
-- bestaat het contract wel?
BEGIN
SELECT cnt_contract_key
INTO c_cnt_contract_key
FROM cnt_contract
WHERE cnt_contract_key = c_ordernr_s1;
EXCEPTION
WHEN OTHERS
THEN
c_cnt_contract_key := NULL;
c_find := FALSE;
END;
c_bes_bestelopdr_key := NULL;
c_mld_opdr_key := NULL;
ELSIF c_fac_type = 'B'
THEN
c_cnt_contract_key := NULL;
-- vind de bestelopdracht key?
BEGIN
IF c_ordernr_s2 IS NULL
THEN
c_ordernr_t := c_ordernr_s1;
ELSE
c_ordernr_t := c_ordernr_s1 || '/' || c_ordernr_s2;
END IF;
SELECT bes_bestelopdr_key
INTO c_bes_bestelopdr_key
FROM bes_bestelopdr
WHERE bes_bestelopdr_id = c_ordernr_t;
EXCEPTION
WHEN OTHERS
THEN
c_bes_bestelopdr_key := NULL;
c_find := FALSE;
END;
c_mld_opdr_key := NULL;
END IF;
-- CONN#12074 ook facturen die niet gelinkt kunnen worden moeten ingelezen worden.
-- IF ( (c_fac_type = 'B' OR c_fac_type = 'C' OR c_fac_type = 'O')
-- AND c_find
-- )
-- THEN
c_opmerking := '';
IF NOT c_find
THEN
BEGIN
SELECT prs_bedrijf_naam
INTO c_prs_bedrijf_naam
FROM prs_bedrijf
WHERE prs_leverancier_nr = rc.leveranciernr;
c_opmerking := 'Leverancier: ' || c_prs_bedrijf_naam || ' Ontvangen ordernummer: ' || rc.ordernr;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
c_opmerking := 'Leverancier: onbekend' || ' Ontvangen ordernummer: ' || rc.ordernr;
END;
END IF;
BEGIN
SELECT fin_s_fin_factuur_key.NEXTVAL INTO c_index FROM DUAL;
SELECT SUM (kostprijs) totaal, SUM (btw_bedrag) totaal_btw
INTO c_factuur_totaal, c_factuur_btw
FROM conn_imp_factuur
WHERE LTRIM (RTRIM (ordernr)) = rc.ordernr;
INSERT INTO fin_factuur (
fin_factuur_key,
fin_factuur_totaal,
fin_factuur_totaal_btw,
mld_opdr_key,
cnt_contract_key,
bes_bestelopdr_key,
prs_perslid_key_user,
fin_factuur_datum,
fin_factuur_opmerking,
fin_factuur_statuses_key,
fin_factuur_nr,
fin_factuur_boekmaand,
fin_factuur_debiteur_nr,
prs_kostensoort_key
)
VALUES (
c_index,
c_factuur_totaal,
c_factuur_btw,
c_mld_opdr_key,
c_cnt_contract_key,
c_bes_bestelopdr_key,
1042, -- Martin Hanemaaijer
TO_DATE (rc.fjaar || '-' || rc.fmaand || '-' || rc.fdag || ' 00:00', 'YYYY-MM-DD HH24:MI'),
'Ge<47>mporteerde factuur ' || c_opmerking,
2,
rc.factuurnr,
rc.fjaar || '-' || rc.fmaand,
rc.debiteurnr,
NULL
);
COMMIT;
INSERT INTO fin_factuurregel (
fin_factuur_key,
fin_factuurregel_nr,
fin_factuurregel_totaal,
fin_factuurregel_btw,
fin_factuurregel_omschrijving,
fin_factuurregel_referentie
)
VALUES (c_index, c_factuurregel, -- Zal hier altijd 1 zijn
rc.totaal, rc.totaal_btw, rc.omschrijving, rc.locatie
);
COMMIT;
IF c_find_ordernr
THEN
c_write_ordernr := c_bestelopdr_id;
ELSE
c_write_ordernr := rc.ordernr;
END IF;
fac.imp_writelog (p_import_key,
'I',
'Factuur ' || c_index || ' toegevoegd met factuurregel ' || c_factuurregel,
c_write_ordernr || ' / ' || rc.factuurnr
);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key,
'E',
'Factuur(regel) kan niet toegevoegd worden ' || v_errormsg,
rc.ordernr || '/' || rc.factuurnr
);
END;
-- END IF;
c_teller := c_teller + 1;
END IF;
END LOOP;
-- Facturen
-- Welke bestelling kan afgemeld worden. (Alleen bestellingen kunnen automatisch afgemeld worden)
FOR rc IN cfactuur
LOOP
c_fac_type := '';
c_prefix := '';
c_find_ordernr := FALSE;
IF (LENGTH (rc.ordernr) > 0)
THEN
c_prefix := SUBSTR (rc.ordernr, 1, 1);
IF ( ( ( (ASCII (SUBSTR (c_prefix, 1, 1)) >= 65 AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 90)
OR (ASCII(SUBSTR (c_prefix, 1, 1)) >= 97 AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 122))
AND ASCII (SUBSTR (c_prefix, 1, 1)) != 67
AND ASCII (SUBSTR (c_prefix, 1, 1)) != 99))
THEN
c_fac_type := 'O'; -- Opdracht (Melidng)
ELSIF (ASCII (SUBSTR (c_prefix, 1, 1)) >= 48 AND ASCII (SUBSTR (c_prefix, 1, 1)) <= 57)
THEN
c_fac_type := 'B'; -- Bestelling
c_bestelopdr_id := rc.ordernr;
ELSIF (ASCII (SUBSTR (c_prefix, 1, 1)) = 67 OR ASCII (SUBSTR (c_prefix, 1, 1)) = 99)
THEN
c_fac_type := 'C'; -- Contract
ELSE
fac.imp_writelog (p_import_key,
'E',
'Kan type van factuur niet bepalen ',
rc.ordernr || ' / ' || rc.factuurnr
);
END IF;
ELSE
BEGIN
-- Probeer opdrachtnummer te achterhalen bij bestelopdrachten
-- met hetzelfde leveranciersnummer, locatie, afleverdatum en aantal
SELECT bo.bes_bestelopdr_id
INTO c_bestelopdr_id
FROM bes_bestelopdr bo,
bes_bestelopdr_item boi,
bes_bestelling_item bbi,
bes_bestelling bb,
mld_adres ma,
alg_locatie l,
prs_bedrijf b
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bbi.bes_bestelling_key = bb.bes_bestelling_key
AND boi.bes_bestelopdr_item_aantal = rc.aantal
AND bb.bes_bestelling_leverdatum =
TO_DATE (rc.ajaar || '-' || rc.amaand || '-' || rc.adag || ' 00:00', 'YYYY-MM-DD HH24:MI')
AND bo.mld_adres_key_lev = ma.mld_adres_key
AND ma.alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_code = rc.locatie
AND bo.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_leverancier_nr = rc.leveranciernr;
c_find_ordernr := TRUE;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
fac.imp_writelog (
p_import_key,
'E',
'Kan het bestelopdrachtnummer (OrderNr) niet vinden ' || v_errormsg,
'?/'
|| rc.factuurnr
|| '/'
|| rc.aantal
|| '/'
|| rc.ajaar
|| '-'
|| rc.amaand
|| '-'
|| rc.adag
|| '/'
|| rc.locatie
|| '/'
|| rc.leveranciernr
);
c_find_ordernr := FALSE;
END;
IF c_find_ordernr
THEN
c_fac_type := 'B';
END IF;
END IF;
IF c_fac_type = 'B'
THEN
SELECT SUM (boi.bes_bestelopdr_item_prijs * boi.bes_bestelopdr_item_aantal)
INTO c_totaal
FROM bes_bestelopdr b, bes_bestelopdr_item boi
WHERE boi.bes_bestelopdr_key = b.bes_bestelopdr_key AND b.bes_bestelopdr_id = c_bestelopdr_id;
SELECT MAX (fin_factuur_key)
INTO c_index
FROM fin_factuur f, bes_bestelopdr bo
WHERE bo.bes_bestelopdr_key = f.bes_bestelopdr_key AND bo.bes_bestelopdr_id = c_bestelopdr_id;
SELECT SUM (fr.fin_factuurregel_totaal)
INTO c_fact_totaal
FROM fin_factuur f, fin_factuurregel fr, bes_bestelopdr b
WHERE f.bes_bestelopdr_key = b.bes_bestelopdr_key
AND f.fin_factuur_key = fr.fin_factuur_key
AND b.bes_bestelopdr_id = c_bestelopdr_id;
IF c_totaal = c_fact_totaal --c_totaal = rc.totaal
THEN
BEGIN
SELECT ''
INTO dummy
FROM fin_factuur
WHERE fin_factuur_key = c_index
AND (mld_opdr_key IS NOT NULL OR cnt_contract_key IS NOT NULL OR bes_bestelopdr_key IS NOT NULL);
UPDATE fin_factuur
SET fin_factuur_statuses_key = 6
WHERE fin_factuur_key = c_index;
fac.trackaction ('FINFOK', c_index, NULL, NULL, NULL);
fac.imp_writelog (p_import_key,
'I',
'Factuur ' || c_index || ' status op afgemeld gezet ',
c_bestelopdr_id || ' / ' || rc.factuurnr
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
END IF;
END IF;
COMMIT;
END LOOP;
END IF; -- invalid numbers
END;
/
-- CONN#756 view tbv b-ware ( view wordt niet door facilitor gebruikt)
CREATE OR REPLACE VIEW CXX_CRED_BWIPEXP
("CMPCODE", "CODE", "NAME", "ADD1", "ADD2", "TERMS", "ACNUM", "ACREF",
"CFVALUE", "STARTYEAR", "STARTPERIOD", "ENDYEAR", "ENDPERIOD")
AS
SELECT 'FB-01'
, PRS_LEVERANCIER_NR
, PRS_BEDRIJF_NAAM
, PRS_BEDRIJF_POST_ADRES
, PRS_BEDRIJF_POST_POSTCODE || '/' || PRS_BEDRIJF_POST_PLAATS
, '-' --betalingstermijn
, DECODE (UPPER(SUBSTR(PRS_LEVERANCIER_NR,1,1)),
'C', SUBSTR(PRS_LEVERANCIER_NR,2) ,
(SELECT PRS_KENMERKLINK_WAARDE
FROM PRS_KENMERKLINK WHERE PRS_KENMERK_KEY = 1180
AND PRS_LINK_KEY = PRS_BEDRIJF_KEY)) --bankrekeningnummer
, '-'
, '1431100'
, '0'
, '0'
, '0'
, '0'
FROM PRS_V_AANWEZIGBEDRIJF
WHERE PRS_BEDRIJF_INTERN IS NULL
AND NVL(PRS_BEDRIJF_HUURDER,0) <> 1
AND ( UPPER(PRS_LEVERANCIER_NR) LIKE 'C%'
OR UPPER(PRS_LEVERANCIER_NR) LIKE 'LEV%');
commit;
-- HALTEWERK-rapportage/doorbelastingsoverzicht (CONN#3661)
CREATE OR REPLACE VIEW conn_v_haltewerk
(fclt_d_dag, fclt_f_opdrachtgever, fclt_f_plaats, fclt_f_halte, fclt_f_medewerker, fclt_f_activiteit,
diversen, bestede_tijd, materiaal_bedrag, kilometers)
AS
SELECT TO_CHAR(dw.mld_deelwerk_datum, 'dd-mm-yyyy') dag,
opdrachtgever,
ts.alg_terreinsector_code plaats,
haltecode || ' ' || haltenaam halte,
pf.prs_perslid_naam_full medewerker,
activiteit,
dw.mld_deelwerk_opmerking,
SUM(dw.mld_deelwerk_duur) bestede_tijd,
SUM(materiaal_bedrag),
SUM(dw.mld_deelwerk_km)
FROM (SELECT kd.ins_deel_key kd1, kd.ins_kenmerkdeel_waarde haltecode
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerk_key = 501),
(SELECT kd.ins_deel_key kd2, kd.ins_kenmerkdeel_waarde haltenaam
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerk_key = 504),
(SELECT dw.mld_deelwerk_key dw1, ud.fac_usrdata_omschr opdrachtgever
FROM mld_deelwerk dw,
fac_usrdata ud
WHERE dw.fac_usrdata_key_opdrachtgever = ud.fac_usrdata_key),
(SELECT dwa dw2, activiteit, materiaal_bedrag
FROM (SELECT dw.mld_deelwerk_key dwa, ud.fac_usrdata_omschr activiteit
FROM mld_deelwerk dw,
fac_usrdata ud
WHERE dw.fac_usrdata_key_activiteit = ud.fac_usrdata_key
AND ud.fac_usrdata_verwijder IS NULL) a
LEFT JOIN
(SELECT dwm.mld_deelwerk_key dwb, SUM(dwm.mld_deelwerkmateriaal_aantal * ud.fac_usrdata_prijs) materiaal_bedrag
FROM mld_deelwerkmateriaal dwm,
fac_usrdata ud
WHERE dwm.fac_usrdata_key_materiaal = ud.fac_usrdata_key
AND ud.fac_usrdata_verwijder IS NULL
GROUP BY dwm.mld_deelwerk_key) b
ON a.dwa = b.dwb),
mld_deelwerk dw,
ins_deel d,
alg_terreinsector ts,
prs_v_perslid_fullnames pf
WHERE dw.ins_deel_key = d.ins_deel_key
AND d.ins_alg_ruimte_key = ts.alg_terreinsector_key
AND dw.prs_perslid_key = pf.prs_perslid_key
AND dw.ins_deel_key = kd1
AND dw.ins_deel_key = kd2
AND dw.mld_deelwerk_key = dw1
AND dw.mld_deelwerk_key = dw2
GROUP BY TO_CHAR(dw.mld_deelwerk_datum, 'YYYYMM'),
TO_CHAR(dw.mld_deelwerk_datum, 'dd-mm-yyyy'),
opdrachtgever,
ts.alg_terreinsector_code,
haltecode || ' ' || haltenaam,
pf.prs_perslid_naam_full,
activiteit,
dw.mld_deelwerk_opmerking
ORDER BY dag, opdrachtgever, plaats, halte, medewerker, activiteit;
-- HALTEWERK-rapportage/Materiaaloverzicht (CONN#13730)
CREATE OR REPLACE VIEW CONN_V_HALTEMATERIAAL
(FCLT_D_DAG, FCLT_F_OPDRACHTGEVER, FCLT_F_PLAATS, FCLT_F_HALTE,
FCLT_F_MEDEWERKER, FCLT_F_ACTIVITEIT, DIVERSEN, BESTEDE_TIJD, MATERIAAL_BEDRAG,
KILOMETERS, MATERIAAL, AANTAL)
AS
SELECT TO_CHAR(dw.mld_deelwerk_datum, 'dd-mm-yyyy') dag,
opdrachtgever,
ts.alg_terreinsector_code plaats,
haltecode || ' ' || haltenaam halte,
pf.prs_perslid_naam_full medewerker,
activiteit,
dw.mld_deelwerk_opmerking,
TO_CHAR(SUM(dw.mld_deelwerk_duur)) bestede_tijd, -- geen totaal tijd laten zien
SUM(materiaal_bedrag),
TO_CHAR(CASE SUM(dw.mld_deelwerk_km)
WHEN 0
THEN NULL
ELSE SUM(dw.mld_deelwerk_km)
END) kilometers, -- geen totaal kilometers laten zien, en geen 0 km laten zien per regel
materiaal_omschrijving,
materiaal_aantal
FROM (SELECT kd.ins_deel_key kd1, kd.ins_kenmerkdeel_waarde haltecode
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerk_key = 501),
(SELECT kd.ins_deel_key kd2, kd.ins_kenmerkdeel_waarde haltenaam
FROM ins_kenmerkdeel kd
WHERE kd.ins_kenmerk_key = 504),
(SELECT dw.mld_deelwerk_key dw1, ud.fac_usrdata_omschr opdrachtgever
FROM mld_deelwerk dw,
fac_usrdata ud
WHERE dw.fac_usrdata_key_opdrachtgever = ud.fac_usrdata_key),
(SELECT dwa dw2, activiteit, materiaal_bedrag, materiaal_omschrijving, materiaal_aantal
FROM (SELECT dw.mld_deelwerk_key dwa, ud.fac_usrdata_omschr activiteit
FROM mld_deelwerk dw,
fac_usrdata ud
WHERE dw.fac_usrdata_key_activiteit = ud.fac_usrdata_key) a
LEFT JOIN
(SELECT dwm.mld_deelwerk_key dwb,
SUM(dwm.mld_deelwerkmateriaal_aantal * ud.fac_usrdata_prijs) materiaal_bedrag,
ud.fac_usrdata_omschr materiaal_omschrijving,
dwm.mld_deelwerkmateriaal_aantal materiaal_aantal
FROM mld_deelwerkmateriaal dwm,
fac_usrdata ud
WHERE dwm.fac_usrdata_key_materiaal = ud.fac_usrdata_key
GROUP BY dwm.mld_deelwerk_key,
ud.fac_usrdata_omschr,
dwm.mld_deelwerkmateriaal_aantal) b
ON a.dwa = b.dwb),
mld_deelwerk dw,
ins_deel d,
alg_terreinsector ts,
prs_v_perslid_fullnames pf
WHERE dw.ins_deel_key = d.ins_deel_key
AND d.ins_alg_ruimte_key = ts.alg_terreinsector_key
AND dw.prs_perslid_key = pf.prs_perslid_key
AND dw.ins_deel_key = kd1
AND dw.ins_deel_key = kd2
AND dw.mld_deelwerk_key = dw1
AND dw.mld_deelwerk_key = dw2
GROUP BY TO_CHAR(dw.mld_deelwerk_datum, 'YYYYMM'),
TO_CHAR(dw.mld_deelwerk_datum, 'dd-mm-yyyy'),
opdrachtgever,
ts.alg_terreinsector_code,
haltecode || ' ' || haltenaam,
pf.prs_perslid_naam_full,
activiteit,
dw.mld_deelwerk_opmerking,
materiaal_omschrijving,
materiaal_aantal
ORDER BY dag, opdrachtgever, plaats, halte, medewerker, activiteit;
/
--
-- notificatie job om bestellers en melders een herinnering te sturen zodat
-- ze de opdracht of bestelling afmelden.
-- De herinneringmail wordt x dagen na het aanmaken van de bestelopdracht en y
-- dagen na de einddatum van de opdracht naar de melder/besteller verzonden.
-- De waarden van x en y zijn te configureren bij de catatogus en bij de vakgroep
-- als 'Aantal dagen tbv. herinnering'
CREATE OR REPLACE VIEW conn_v_noti_bestelling_opdr (
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT DISTINCT
'BES2MA',
NULL,
b.prs_perslid_key,
'U wordt verzocht uw bestelling met nummer '
|| bo.bes_bestelopdr_id
|| ' af te melden in Facilitor.',
bo.bes_bestelopdr_key,
NULL
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_bestelopdr_item boi,
bes_srtdeel sd,
bes_srtgroep sg,
bes_disc_params dp,
bes_bestelopdr bo
WHERE bes_bestelling_status = 5
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND b.bes_bestelling_key = bi.bes_bestelling_key
AND TRUNC (bes_bestelopdr_datum + dp.bes_disc_params_noti_dagen) =
TRUNC (SYSDATE)
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = dp.bes_ins_discipline_key
AND dp.bes_disc_params_noti_dagen IS NOT NULL
UNION ALL
SELECT DISTINCT
'ORDMAI',
NULL,
m.prs_perslid_key,
'U wordt verzocht uw opdracht met nummer '
|| o.mld_melding_key
|| '/'
|| o.mld_opdr_bedrijfopdr_volgnr
|| ' af te melden in Facilitor.',
o.mld_opdr_key,
NULL
FROM mld_opdr o, mld_melding m, mld_stdmelding std, mld_disc_params md
WHERE o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = md.mld_ins_discipline_key
AND (o.mld_statusopdr_key = 5 OR o.mld_statusopdr_key = 8)
AND mld_disc_params_noti_dagen IS NOT NULL
AND TRUNC (o.mld_opdr_einddatum + md.mld_disc_params_noti_dagen) =
TRUNC (SYSDATE);
-- CONN#12661: Notificatie op basis van meterstandverantwoordelijke per locatie
-- View voor kenmerk "Meterstanden verantwoordelijke"
/* Formatted on 11-6-2010 16:49:27 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_meterstanden_verantw
(
prs_perslid_key,
verantwoordelijke
)
AS
SELECT w.prs_perslid_key,
p.prs_perslid_naam
|| DECODE (NVL (p.prs_perslid_voorletters, ''), '', '', ', ' || p.prs_perslid_voorletters)
|| DECODE (NVL (p.prs_perslid_tussenvoegsel, ''), '', '', ' ' || p.prs_perslid_tussenvoegsel)
|| DECODE (NVL (p.prs_perslid_voornaam, ''), '', '', ' (' || p.prs_perslid_voornaam || ')')
naam
FROM fac_v_webgebruiker w, prs_v_aanwezigperslid p
WHERE w.prs_perslid_key = p.prs_perslid_key
AND w.fac_functie_key = (SELECT fac_functie_key
FROM fac_functie
WHERE fac_functie_code = 'WEB_INSUSE')
AND w.ins_discipline_key = (SELECT itd.ins_discipline_key
FROM ins_tab_discipline itd
WHERE itd.ins_discipline_omschrijving = 'Verbruiksregistratie')
ORDER BY p.prs_perslid_upper;
--------------------------
--
-- Afmeldprocedures voor bestellingen en opdrachten
--
--------------------------
CREATE OR REPLACE PROCEDURE CONN_EXPORT_AFM_BESTEL (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
CURSOR c1
IS
SELECT DISTINCT bi.bes_bestelling_key, bes_bestelling_item_key
FROM bes_bestelling_item bi,
bes_bestelling b,
bes_srtdeel sd,
bes_srtgroep sg,
bes_disc_params bdp
WHERE bi.bes_bestelling_key = b.bes_bestelling_key
AND bes_bestelling_datum <
SYSDATE - bdp.bes_disc_params_noti_dagen - 14
AND bes_bestelling_status IN (3, 4, 5) -- (gefiatteerd, geaccepteerd, besteld)
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = bdp.bes_ins_discipline_key
AND bdp.bes_disc_params_noti_dagen IS NOT NULL;
CURSOR c2 (p_bes_bestelling_item_key IN number
)
IS
SELECT DISTINCT
bo.bes_bestelopdr_key,
boi.bes_bestelopdr_item_key,
bes_bestelling_item_key,
bes_bestelopdr_id
FROM bes_bestelopdr bo, bes_bestelopdr_item boi, bes_bestelling_item bi
WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
AND bi.bes_bestelling_item_key = p_bes_bestelling_item_key;
rec1 c1%ROWTYPE;
rec2 c2%ROWTYPE;
v_errormsg VARCHAR2 (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
FOR rec1 IN c1
LOOP
BEGIN
FOR rec2 IN c2 (rec1.bes_bestelling_item_key)
LOOP
BEGIN
UPDATE bes_bestelopdr_item b
SET bes_bestelopdr_item_aantalontv =
bes_bestelopdr_item_aantal,
bes_bestelopdr_item_ontvangen = SYSDATE
WHERE bes_bestelopdr_item_key = rec2.bes_bestelopdr_item_key;
BEGIN
bes.updatebestelopdrstatus (rec2.bes_bestelopdr_key, 1042);
END;
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 (p_applname, 'E', v_errormsg, 'Bestelopdracht:'|| rec2.bes_bestelopdr_id);
END;
END LOOP;
DBMS_OUTPUT.put_line ('rec1 item: ' || rec1.bes_bestelling_item_key);
UPDATE bes_bestelling_item
SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal
WHERE bes_bestelling_item_key = rec1.bes_bestelling_item_key;
UPDATE bes_bestelling_item bi
SET bes_bestelling_item_status = 6 -- geleverd
WHERE COALESCE (bi.bes_bestelling_item_aantal, 0) =
COALESCE (bi.bes_bestelling_item_aantalontv, 0)
AND bes_bestelling_item_status = 5; -- besteld
BEGIN
bes.updatebestellingstatus (rec1.bes_bestelling_key, 1042);
END;
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 (p_applname, 'E', v_errormsg, 'Bestelling:'|| rec1.bes_bestelling_key);
END;
END LOOP;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE CONN_EXPORT_AFM_OPDRACHT (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2
)
AS
CURSOR c_opdr
IS
SELECT mld_opdr_key, mld_opdr_bedrijfopdr_volgnr, o.mld_melding_key
FROM mld_opdr o, mld_melding m, mld_stdmelding std, mld_disc_params dp
WHERE mld_statusopdr_key = 5 -- uitgegeven
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key = dp.mld_ins_discipline_key
AND o.mld_melding_key = m.mld_melding_key
AND o.mld_opdr_datumbegin < SYSDATE - dp.mld_disc_params_noti_dagen - 14;
CURSOR c_melding
IS
SELECT DISTINCT m.mld_melding_key
FROM mld_melding m, mld_opdr o, fac_tracking t, fac_srtnotificatie sn
WHERE o.mld_melding_key = m.mld_melding_key
AND o.mld_opdr_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_code = 'ORDAFM'
AND trunc(t.fac_tracking_datum) = trunc(sysdate)
AND NOT EXISTS (SELECT m.mld_melding_key
FROM mld_opdr op
WHERE op.mld_statusopdr_key = 5 -- uitgegeven
AND m.mld_melding_key = op.mld_melding_key);
rec1 c_opdr%ROWTYPE;
rec2 c_melding%ROWTYPE;
v_errormsg VARCHAR2 (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
FOR rec1 IN c_opdr
LOOP
BEGIN
mld.setopdrachtstatus(rec1.mld_opdr_key, 6, 1024); -- status afgemeld , user mhanemaa
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 (p_applname, 'E', v_errormsg, 'Opdracht:'|| rec1.mld_melding_key || '/' || rec1.mld_opdr_bedrijfopdr_volgnr);
END;
END LOOP;
FOR rec2 IN c_melding
LOOP
BEGIN
mld.setmeldingstatus(rec2.mld_melding_key, 5, 1024); -- status afgemeld , user mhanemaa
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 (p_applname, 'E', v_errormsg, 'Melding:'|| rec2.mld_melding_key);
END;
END LOOP;
COMMIT;
END;
/
CREATE OR REPLACE VIEW conn_v_imp_log (fclt_f_applicatie,
datum,
fclt_f_status,
omschrijving,
hint
)
AS
SELECT imp_log_applicatie, to_char(imp_log_datum, 'yyyymmdd hh24miss'), imp_log_status,
imp_log_omschrijving, imp_log_hint
FROM imp_log;
CREATE OR REPLACE VIEW conn_v_rap_gebouw_verplichting
AS
SELECT l.alg_locatie_code fclt_f_locatiecode, l.alg_locatie_plaats fclt_f_plaats, v.fclt_f_gebouwcode,
v.fclt_f_verplichting, v.item, v.fclt_3d_locatie_key
FROM alg_v_rap_gebouw_verplichting v, alg_locatie l
WHERE v.fclt_3d_locatie_key = l.alg_locatie_key;
/
-- Bevat CUST01- en CUST02-reminder naar beheerder verantwoordelijk voor de
-- keuring van betreffende objecten (Gebouwobjecten vs. Gereedschappen).
-- CUST01: wekelijks mbt. over 4 tot 5 weken te keuren objecten!
-- CUST02: wekelijks mbt. objecten waarvan keuringsdatum is verstreken!
/* Formatted on 2-12-2011 14:24:24 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW CONN_V_NOTI_KEURINGREMINDER
(
code,
sender,
receiver,
text,
KEY,
par1,
par2,
xkey
)
AS
SELECT sn.fac_srtnotificatie_code code,
NULL sender,
fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) receiver,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##SRTGROEP##',
DECODE (x.min_srtgroep_oms,
x.max_srtgroep_oms, x.min_srtgroep_oms,
x.min_srtgroep_oms || ', ...')
),
'##AANTAL##',
x.aantal
)
subject,
x.dummy_deel_key, -- Dummy key!!!
NULL,
NULL,
NULL
FROM ( SELECT o.alg_locatie_key,
DECODE (o.ins_discipline_key,
101, 1320, -- Gebouwobjecten -> 1320-verantw.
341, 1320, -- Gebouwobjecten -> 1320-verantw.
1841, 1320, -- Gebouwobjecten -> 1320-verantw.
1881, 1320, -- Gebouwobjecten -> 1320-verantw.
1340) -- Gereedschappen -> 1340-verantw.
verantwoordelijke,
MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms,
MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms,
MIN (o.ins_deel_key) dummy_deel_key,
COUNT (DISTINCT o.ins_deel_key) aantal
FROM (SELECT scs.ins_srtinstallatie_key
ins_srtdeel_key,
scs.ins_srtcontrole_key,
scs.ins_srtcontrole_omschrijving,
scs.ins_srtcontrole_periode
FROM ins_srtcontrole scs
WHERE scs.ins_srtcontrole_niveau = 'S'
UNION ALL
SELECT sd.ins_srtdeel_key,
scg.ins_srtcontrole_key,
scg.ins_srtcontrole_omschrijving,
scg.ins_srtcontrole_periode
FROM ins_srtcontrole scg, ins_srtdeel sd
WHERE scg.ins_srtcontrole_niveau = 'G'
AND scg.ins_srtinstallatie_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
scd.ins_srtcontrole_key,
scd.ins_srtcontrole_omschrijving,
scd.ins_srtcontrole_periode
FROM ins_srtcontrole scd,
ins_srtgroep sg,
ins_srtdeel sd
WHERE scd.ins_srtcontrole_niveau = 'D'
AND scd.ins_srtinstallatie_key =
sg.ins_discipline_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key) cso -- ControleSoortObjecten
LEFT JOIN
(SELECT d.ins_deel_key,
d.ins_deel_aanmaak,
sd.ins_srtdeel_key,
sg.ins_srtgroep_omschrijving,
td.ins_discipline_key,
td.ins_discipline_omschrijving,
l.alg_locatie_key
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
alg_locatie l
WHERE d.ins_srtdeel_key =
sd.ins_srtdeel_key
AND sd.ins_srtgroep_key =
sg.ins_srtgroep_key
AND sg.ins_discipline_key =
td.ins_discipline_key
AND d.ins_alg_locatie_key =
l.alg_locatie_key(+)) o -- Objecten
ON cso.ins_srtdeel_key = o.ins_srtdeel_key
LEFT JOIN
(SELECT ins_deel_key,
ins_kenmerkdeel_waarde afgekeurd
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 1466) oa -- ObjectAfgekeurd
ON o.ins_deel_key = oa.ins_deel_key
LEFT JOIN
(SELECT dsc.ins_deel_key,
dsc.ins_srtcontrole_key,
dsc.ins_deelsrtcontrole_datum,
dsc.ins_deelsrtcontrole_opmerking
FROM ins_deelsrtcontrole dsc
WHERE dsc.ins_deelsrtcontrole_datum =
(SELECT MAX (
ins_deelsrtcontrole_datum
)
FROM ins_deelsrtcontrole
WHERE ins_deel_key =
dsc.ins_deel_key
AND ins_srtcontrole_key =
dsc.ins_srtcontrole_key))
olc -- ObjectLaatsteControle
ON o.ins_deel_key = olc.ins_deel_key
AND cso.ins_srtcontrole_key =
olc.ins_srtcontrole_key
WHERE (oa.afgekeurd IS NULL OR oa.afgekeurd = 130) -- 'Nee'
AND COALESCE (olc.ins_deelsrtcontrole_datum,
o.ins_deel_aanmaak)
+ cso.ins_srtcontrole_periode BETWEEN TRUNC(SYSDATE
+ 28)
AND TRUNC(SYSDATE
+ 35)
GROUP BY o.alg_locatie_key,
DECODE (o.ins_discipline_key,
101, 1320, -- Gebouwobjecten -> 1320-verantw.
341, 1320, -- Gebouwobjecten -> 1320-verantw.
1841, 1320, -- Gebouwobjecten -> 1320-verantw.
1881, 1320, -- Gebouwobjecten -> 1320-verantw.
1340)) x, -- Gereedschappen -> 1340-verantw.
alg_v_aanwezigonrgoedkenmerk ok,
fac_srtnotificatie sn
WHERE x.alg_locatie_key = ok.alg_onrgoed_key
AND x.verantwoordelijke = ok.alg_kenmerk_key
AND ok.alg_onrgoed_niveau = 'L'
AND sn.fac_srtnotificatie_code = 'CUST01'
UNION ALL
SELECT sn.fac_srtnotificatie_code code,
NULL sender,
fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) receiver,
REPLACE (
REPLACE (
sn.fac_srtnotificatie_oms,
'##SRTGROEP##',
DECODE (x.min_srtgroep_oms,
x.max_srtgroep_oms, x.min_srtgroep_oms,
x.min_srtgroep_oms || ', ...')
),
'##AANTAL##',
x.aantal
)
subject,
x.dummy_deel_key, -- Dummy key!!!
NULL,
NULL,
NULL
FROM ( SELECT o.alg_locatie_key,
DECODE (o.ins_discipline_key,
101, 1320, -- Gebouwobjecten -> 1320-verantw.
341, 1320, -- Gebouwobjecten -> 1320-verantw.
1841, 1320, -- Gebouwobjecten -> 1320-verantw.
1881, 1320, -- Gebouwobjecten -> 1320-verantw.
1340) -- Gereedschappen -> 1340-verantw.
verantwoordelijke,
MIN (o.ins_srtgroep_omschrijving) min_srtgroep_oms,
MAX (o.ins_srtgroep_omschrijving) max_srtgroep_oms,
MIN (o.ins_deel_key) dummy_deel_key,
COUNT (DISTINCT o.ins_deel_key) aantal
FROM (SELECT scs.ins_srtinstallatie_key
ins_srtdeel_key,
scs.ins_srtcontrole_key,
scs.ins_srtcontrole_omschrijving,
scs.ins_srtcontrole_periode
FROM ins_srtcontrole scs
WHERE scs.ins_srtcontrole_niveau = 'S'
UNION ALL
SELECT sd.ins_srtdeel_key,
scg.ins_srtcontrole_key,
scg.ins_srtcontrole_omschrijving,
scg.ins_srtcontrole_periode
FROM ins_srtcontrole scg, ins_srtdeel sd
WHERE scg.ins_srtcontrole_niveau = 'G'
AND scg.ins_srtinstallatie_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
scd.ins_srtcontrole_key,
scd.ins_srtcontrole_omschrijving,
scd.ins_srtcontrole_periode
FROM ins_srtcontrole scd,
ins_srtgroep sg,
ins_srtdeel sd
WHERE scd.ins_srtcontrole_niveau = 'D'
AND scd.ins_srtinstallatie_key =
sg.ins_discipline_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key) cso -- ControleSoortObjecten
LEFT JOIN
(SELECT d.ins_deel_key,
d.ins_deel_aanmaak,
sd.ins_srtdeel_key,
sg.ins_srtgroep_omschrijving,
td.ins_discipline_key,
td.ins_discipline_omschrijving,
l.alg_locatie_key
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
alg_locatie l
WHERE d.ins_srtdeel_key =
sd.ins_srtdeel_key
AND sd.ins_srtgroep_key =
sg.ins_srtgroep_key
AND sg.ins_discipline_key =
td.ins_discipline_key
AND d.ins_alg_locatie_key =
l.alg_locatie_key(+)) o -- Objecten
ON cso.ins_srtdeel_key = o.ins_srtdeel_key
LEFT JOIN
(SELECT ins_deel_key,
ins_kenmerkdeel_waarde afgekeurd
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 1466) oa -- ObjectAfgekeurd
ON o.ins_deel_key = oa.ins_deel_key
LEFT JOIN
(SELECT dsc.ins_deel_key,
dsc.ins_srtcontrole_key,
dsc.ins_deelsrtcontrole_datum,
dsc.ins_deelsrtcontrole_opmerking
FROM ins_deelsrtcontrole dsc
WHERE dsc.ins_deelsrtcontrole_datum =
(SELECT MAX (
ins_deelsrtcontrole_datum
)
FROM ins_deelsrtcontrole
WHERE ins_deel_key =
dsc.ins_deel_key
AND ins_srtcontrole_key =
dsc.ins_srtcontrole_key))
olc -- ObjectLaatsteControle
ON o.ins_deel_key = olc.ins_deel_key
AND cso.ins_srtcontrole_key =
olc.ins_srtcontrole_key
WHERE (oa.afgekeurd IS NULL OR oa.afgekeurd = 130) -- 'Nee'
AND COALESCE (olc.ins_deelsrtcontrole_datum,
o.ins_deel_aanmaak)
+ cso.ins_srtcontrole_periode < TRUNC (SYSDATE)
GROUP BY o.alg_locatie_key,
DECODE (o.ins_discipline_key,
101, 1320, -- Gebouwobjecten -> 1320-verantw.
341, 1320, -- Gebouwobjecten -> 1320-verantw.
1841, 1320, -- Gebouwobjecten -> 1320-verantw.
1881, 1320, -- Gebouwobjecten -> 1320-verantw.
1340)) x, -- Gereedschappen -> 1340-verantw.
alg_v_aanwezigonrgoedkenmerk ok,
fac_srtnotificatie sn
WHERE x.alg_locatie_key = ok.alg_onrgoed_key
AND x.verantwoordelijke = ok.alg_kenmerk_key
AND ok.alg_onrgoed_niveau = 'L'
AND sn.fac_srtnotificatie_code = 'CUST02';
CREATE OR REPLACE VIEW conn_v_rap_kostenkwartaal (fclt_f_locatie_code,
fclt_f_locatie_omschrijving,
fclt_f_jaar,
fclt_f_kwartaal,
fclt_f_soort_melding,
aantal,
werkelijke_kosten
)
AS
SELECT c21, c20, c30, c31, c32, COUNT (c0), SUM (c27)
FROM (SELECT DISTINCT m.mld_melding_key c0,
alg_locatie_code c21,
alg_locatie_omschrijving c20,
COALESCE
((SELECT SUM (f.fin_factuur_totaal)
FROM fin_factuur f, mld_opdr o2
WHERE f.mld_opdr_key = o2.mld_opdr_key
AND o2.mld_melding_key =
m.mld_melding_key),
0
) c27,
TO_CHAR (mld_melding_datum, 'yyyy') c30,
TO_CHAR ( (TRUNC ( TO_NUMBER
(TO_CHAR (mld_melding_datum,
'mm'
)
)
/ 4
)
)
+ 1) c31,
mld_stdmelding_omschrijving c32
FROM mld_melding m, mld_discipline md, alg_locatie l, mld_stdmelding st
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
AND m.mld_stdmelding_key = st.mld_stdmelding_key
AND st.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = 1)
GROUP BY c20, c21, c30, c31, c32
ORDER BY 1, 2, 3 DESC;
/* Formatted on 28-11-2011 10:52:17 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_rap_tsnkleding
(
fclt_f_besteller,
fclt_f_bestemd_voor,
fclt_f_naam_drager,
fclt_d_besteldatum,
item,
aantal_besteleenheden,
prijs,
kostenplaats
)
AS
SELECT pf.prs_perslid_naam_full besteller,
(SELECT pp.prs_perslid_naam_full
FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk, prs_v_perslid_fullnames_all pp
WHERE v.bes_bestelling_key = b.bes_bestelling_key
AND v.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND v.bes_kenmerkbestell_waarde = pp.prs_perslid_key
AND sk.bes_srtkenmerk_key = 161)
bestemd_voor,
(SELECT v.bes_kenmerkbestell_waarde waarde
FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk
WHERE v.bes_bestelling_key = b.bes_bestelling_key
AND v.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND sk.bes_srtkenmerk_key = 65)
naam_drager,
TO_CHAR (bes_bestelling_datum, 'DD-MM-YYYY'),
COALESCE (isd.bes_srtdeel_nr, '') || ' ' || isd.bes_srtdeel_omschrijving item,
i.bes_bestelling_item_aantal,
i.bes_bestelling_item_aantal * bi.bes_bestelopdr_item_prijs prijs,
pk.prs_kostenplaats_nr
FROM bes_bestelling b,
prs_v_perslid_fullnames_all pf,
bes_bestelling_item i,
bes_srtdeel isd,
bes_srtgroep isg,
bes_discipline bd,
mld_adres a,
bes_bestelopdr_item bi,
prs_kostenplaats pk
WHERE pf.prs_perslid_key = b.prs_perslid_key
AND b.bes_bestelling_key = i.bes_bestelling_key
AND i.bes_srtdeel_key = isd.bes_srtdeel_key
AND isd.bes_srtgroep_key = isg.bes_srtgroep_key
AND isg.ins_discipline_key = bd.ins_discipline_key
AND bd.ins_discipline_key = 1901
AND i.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key(+)
AND b.mld_adres_key_lev = a.mld_adres_key(+)
AND b.prs_kostenplaats_key = pk.prs_kostenplaats_key;
CREATE OR REPLACE FORCE VIEW conn_v_rap_tourskleding
(
fclt_f_besteller,
fclt_f_bestemd_voor,
fclt_f_naam_drager,
fclt_d_besteldatum,
item,
aantal_besteleenheden,
prijs,
kostenplaats
)
AS
SELECT pf.prs_perslid_naam_full besteller,
(SELECT pp.prs_perslid_naam_full
FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk, prs_v_perslid_fullnames_all pp
WHERE v.bes_bestelling_key = b.bes_bestelling_key
AND v.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND v.bes_kenmerkbestell_waarde = pp.prs_perslid_key
AND sk.bes_srtkenmerk_key = 161)
bestemd_voor,
(SELECT v.bes_kenmerkbestell_waarde waarde
FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk
WHERE v.bes_bestelling_key = b.bes_bestelling_key
AND v.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND sk.bes_srtkenmerk_key = 65)
naam_drager,
TO_CHAR (bes_bestelling_datum, 'DD-MM-YYYY'),
COALESCE (isd.bes_srtdeel_nr, '') || ' ' || isd.bes_srtdeel_omschrijving item,
i.bes_bestelling_item_aantal,
i.bes_bestelling_item_aantal * bi.bes_bestelopdr_item_prijs prijs,
pk.prs_kostenplaats_nr
FROM bes_bestelling b,
prs_v_perslid_fullnames_all pf,
bes_bestelling_item i,
bes_srtdeel isd,
bes_srtgroep isg,
bes_discipline bd,
mld_adres a,
bes_bestelopdr_item bi,
prs_kostenplaats pk
WHERE pf.prs_perslid_key = b.prs_perslid_key
AND b.bes_bestelling_key = i.bes_bestelling_key
AND i.bes_srtdeel_key = isd.bes_srtdeel_key
AND isd.bes_srtgroep_key = isg.bes_srtgroep_key
AND isg.ins_discipline_key = bd.ins_discipline_key
AND bd.ins_discipline_key = 2221
AND i.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key(+)
AND b.mld_adres_key_lev = a.mld_adres_key(+)
AND b.prs_kostenplaats_key = pk.prs_kostenplaats_key;
/* Formatted on 23-1-2009 15:08:32 (QP5 v5.115.810.9015) */
-- TSN Initial Hokatex kleding
CREATE OR REPLACE VIEW CONN_V_RAP_TSN_HOK_KLEDING
(
FCLT_F_BESTELLER,
FCLT_F_BESTEMD_VOOR,
FCLT_F_NAAM_DRAGER,
FCLT_D_BESTELDATUM,
ITEM,
AANTAL_BESTELEENHEDEN,
RUILING,
TOENAME,
AFNAME,
KOSTENPLAATS
)
AS
SELECT pf.prs_perslid_naam_full besteller,
(SELECT pp.prs_perslid_naam_full
FROM bes_kenmerkbestell v,
bes_kenmerk k,
bes_srtkenmerk sk,
prs_v_perslid_fullnames_all pp
WHERE v.bes_bestelling_key = b.bes_bestelling_key
AND v.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND v.bes_kenmerkbestell_waarde = pp.prs_perslid_key
AND sk.bes_srtkenmerk_key = 161)
bestemd_voor,
(SELECT v.bes_kenmerkbestell_waarde waarde
FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk
WHERE v.bes_bestelling_key = b.bes_bestelling_key
AND v.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND sk.bes_srtkenmerk_key = 65)
naam_drager,
TO_CHAR(bes_bestelling_datum,'DD-MM-YYYY'),
COALESCE (isd.bes_srtdeel_nr, '')
|| ' '
|| isd.bes_srtdeel_omschrijving
item,
i.bes_bestelling_item_aantal,
(SELECT ud.fac_usrdata_omschr
FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk, fac_usrdata ud
WHERE v.bes_bestelling_key = b.bes_bestelling_key
AND v.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND v.bes_kenmerkbestell_waarde = ud.fac_usrdata_key
AND sk.bes_srtkenmerk_key = 523)
ruiling,
(SELECT ud.fac_usrdata_omschr
FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk, fac_usrdata ud
WHERE v.bes_bestelling_key = b.bes_bestelling_key
AND v.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND v.bes_kenmerkbestell_waarde = ud.fac_usrdata_key
AND sk.bes_srtkenmerk_key = 526)
toename,
(SELECT ud.fac_usrdata_omschr
FROM bes_kenmerkbestell v, bes_kenmerk k, bes_srtkenmerk sk, fac_usrdata ud
WHERE v.bes_bestelling_key = b.bes_bestelling_key
AND v.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key
AND v.bes_kenmerkbestell_waarde = ud.fac_usrdata_key
AND sk.bes_srtkenmerk_key = 527)
afname,
pk.prs_kostenplaats_nr
FROM bes_bestelling b,
prs_v_perslid_fullnames_all pf,
bes_bestelling_item i,
bes_srtdeel isd,
bes_srtgroep isg,
bes_discipline bd,
mld_adres a,
bes_bestelopdr_item bi,
prs_kostenplaats pk
WHERE pf.prs_perslid_key = b.prs_perslid_key
AND b.bes_bestelling_key = i.bes_bestelling_key
AND i.bes_srtdeel_key = isd.bes_srtdeel_key
AND isd.bes_srtgroep_key = isg.bes_srtgroep_key
AND isg.ins_discipline_key = bd.ins_discipline_key
AND bd.ins_discipline_key = 2181
AND i.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key(+)
AND b.mld_adres_key_lev = a.mld_adres_key(+)
AND b.prs_kostenplaats_key = pk.prs_kostenplaats_key;
-- Eerste opzet
/* Formatted on 25-3-2010 9:46:31 (QP5 v5.136.908.31019) */
CREATE OR REPLACE FORCE VIEW conn_v_businessobjects
(
fin_factuur_nr,
fin_factuur_datum,
fin_factuur_boekmaand,
fin_factuur_totaal,
fin_factuur_totaal_btw,
fin_factuur_incl,
fin_factuur_debiteur_nr,
fin_factuur_opmerking,
fin_factuur_statuses_omschr,
prs_kostensoort_oms,
prs_kostensoort_refcode,
reftype,
nummer,
volgnr,
prs_kostenplaats_nr,
prs_leverancier_nr
)
AS
SELECT f.fin_factuur_nr,
fin_factuur_datum,
fin_factuur_boekmaand,
fin_factuur_totaal,
fin_factuur_totaal_btw,
fin_factuur_totaal + fin_factuur_totaal_btw fin_factuur_incl,
fin_factuur_debiteur_nr,
f.fin_factuur_opmerking,
s.fin_factuur_statuses_omschr,
k.prs_kostensoort_oms,
k.prs_kostensoort_refcode,
'O' reftype,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) referentienummer,
o.mld_opdr_bedrijfopdr_volgnr volgnr,
kp.prs_kostenplaats_nr,
b.prs_leverancier_nr
FROM fin_factuur f,
mld_opdr o,
mld_melding m,
fin_factuur_statuses s,
prs_kostensoort k,
prs_kostenplaats kp,
prs_bedrijf b,
mld_stdmelding stdm,
ins_tab_discipline d,
ins_srtdiscipline sd
WHERE f.mld_opdr_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = stdm.mld_stdmelding_key
AND stdm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND f.fin_factuur_statuses_key = s.fin_factuur_statuses_key
AND f.prs_kostensoort_key = k.prs_kostensoort_key(+)
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
UNION ALL
SELECT f.fin_factuur_nr,
fin_factuur_datum,
fin_factuur_boekmaand,
fin_factuur_totaal,
fin_factuur_totaal_btw,
fin_factuur_totaal + fin_factuur_totaal_btw fin_factuur_incl,
fin_factuur_debiteur_nr,
f.fin_factuur_opmerking,
s.fin_factuur_statuses_omschr,
k.prs_kostensoort_oms,
k.prs_kostensoort_refcode,
'B' reftype,
bo.bes_bestelopdr_id referentienummer,
1 volgnr,
kp.prs_kostenplaats_nr,
b.prs_leverancier_nr
FROM fin_factuur f,
bes_bestelopdr bo,
fin_factuur_statuses s,
prs_kostensoort k,
prs_kostenplaats kp,
prs_bedrijf b,
bes_bestelling ba,
bes_bestelling_item bai,
bes_bestelopdr_item boi
WHERE f.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND f.fin_factuur_statuses_key = s.fin_factuur_statuses_key
AND f.prs_kostensoort_key = k.prs_kostensoort_key
AND bai.bes_bestelling_key = ba.bes_bestelling_key
AND bai.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
AND ba.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND bo.prs_bedrijf_key = b.prs_bedrijf_key(+)
UNION ALL
SELECT f.fin_factuur_nr,
fin_factuur_datum,
fin_factuur_boekmaand,
fin_factuur_totaal,
fin_factuur_totaal_btw,
fin_factuur_totaal + fin_factuur_totaal_btw fin_factuur_incl,
fin_factuur_debiteur_nr,
f.fin_factuur_opmerking,
s.fin_factuur_statuses_omschr,
k.prs_kostensoort_oms,
k.prs_kostensoort_refcode,
'C' reftype,
'C'||TO_CHAR (c.cnt_contract_nummer_intern) referentienummer,
1 volgnr,
kp.prs_kostenplaats_nr,
b.prs_leverancier_nr
FROM fin_factuur f,
cnt_contract c,
fin_factuur_statuses s,
prs_kostensoort k,
prs_kostenplaats kp,
prs_bedrijf b
WHERE f.cnt_contract_key = c.cnt_contract_key
AND f.fin_factuur_statuses_key = s.fin_factuur_statuses_key
AND f.prs_kostensoort_key = k.prs_kostensoort_key
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+);
--CONN#20077
CREATE OR REPLACE VIEW conn_v_pgb_uitnutting
(
fclt_f_Catalogus,
fclt_f_Besteller,
Bestellimiet,
Besteld_tav_pgb
)
AS
SELECT bd.ins_discipline_omschrijving Catalogus,
pf.prs_perslid_naam_full Besteller,
fp.fac_profiel_limiet Limiet,
SUM (
(bb.bes_bestelling_item_aantal * bb.bes_bestelling_item_prijs)
)
totaal
FROM bes_discipline bd,
bes_disc_params bdp,
bes_srtgroep bsg,
bes_srtdeel bsd,
bes_bestelling_item bb,
bes_bestelling b,
prs_perslid p,
prs_v_perslid_fullnames pf,
fac_profiel fp
WHERE bdp.bes_ins_discipline_key = bd.ins_discipline_key
AND bsg.ins_discipline_key = bd.ins_discipline_key
AND bsd.bes_srtgroep_key = bsg.bes_srtgroep_key
AND b.bes_bestelling_key = bb.bes_bestelling_key
AND bb.bes_srtdeel_key = bsd.bes_srtdeel_key
AND bd.ins_discipline_verwijder IS NULL
AND bdp.bes_disc_params_pgb = 1 -- PGB moet aan staan
AND p.prs_perslid_key = b.prs_perslid_key
AND TO_CHAR (bes_bestelling_datum, 'YYYY') =
TO_CHAR (SYSDATE, 'YYYY')
AND fp.fac_profiel_key = p.fac_profiel_key
AND b.bes_bestelling_status IN (3, 5, 6, 7)
-- Gefiateerd, Besteld, Geleverd, Verwerkt
AND pf.prs_perslid_key = p.prs_perslid_key
GROUP BY bd.ins_discipline_omschrijving, pf.prs_perslid_naam_full, fp.fac_profiel_limiet
ORDER BY 1, 2;
--CONN#20985
/* Formatted on 8-7-2011 11:22:44 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW conn_v_rap_bes_artikel_expimp
(
fclt_f_catalogusnaam,
artikelbedrijf,
catalogusaanmaak,
artikelnummer,
artikelgroepomschrijving,
artikelomschrijving,
artikelprijs,
artikeleenheid,
artikelimage,
artikelveelvoud,
artikelbtw,
artikelvervaldatum,
artikelinkoopprijs,
artikelminimum
)
AS
SELECT td.ins_discipline_omschrijving,
b.prs_bedrijf_naam,
TO_CHAR (td.ins_discipline_aanmaak, 'yyyymmdd'),
sd.bes_srtdeel_nr,
sg.bes_srtgroep_omschrijving,
sd.bes_srtdeel_omschrijving,
TO_CHAR (bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL)),
sd.bes_srtdeel_eenheid,
sd.bes_srtdeel_image,
TO_CHAR (sd.bes_srtdeel_veelvoud),
TO_CHAR (COALESCE (sd.bes_srtdeel_btw, 0)),
TO_CHAR (
COALESCE (sd.bes_srtdeel_vervaldatum,
TO_DATE ('31-12-2099', 'dd-mm-yyyy')),
'yyyymmdd'
),
TO_CHAR (bes.getsrtdeelinkprijs(sd.bes_srtdeel_key, NULL)),
NULL
FROM ins_tab_discipline td,
bes_srtgroep sg,
bes_srtdeel sd,
prs_bedrijf b
WHERE td.ins_discipline_module = 'BES'
AND td.ins_discipline_verwijder IS NULL
AND td.ins_discipline_key = sg.ins_discipline_key
AND sg.bes_srtgroep_verwijder IS NULL
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
AND sd.bes_srtdeel_verwijder IS NULL
AND sd.prs_bedrijf_key = b.prs_bedrijf_key;
/* Formatted on 3-2-2012 9:48:48 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW conn_v_rap_inspectieobj_expimp
(
fclt_f_locatiecode,
ruimte,
fclt_f_discipline,
fclt_f_groep,
fclt_f_objectsoort,
object_id,
fclt_f_merk,
fclt_f_type,
fclt_f_hoogte_cm,
fclt_f_belasting_kg,
fclt_f_bereik_nm_bar,
fclt_f_voltage,
fclt_f_apkplicht,
fclt_f_keuring_categorie,
fclt_f_contract_nr, -- Per CONN#22359!
fclt_f_leverancier,
fclt_f_soortcontrole,
periode,
controle_gepland,
controle_laatste,
controledatum,
controleopmerking,
fclt_f_afgekeurd
)
AS
SELECT x.alg_locatie_code,
COALESCE (z1.alg_ruimte_nr, z2.alg_ruimte_nr),
x.ins_discipline_omschrijving,
x.ins_srtgroep_omschrijving,
x.ins_srtdeel_omschrijving,
x.ins_deel_omschrijving,
REPLACE (k1.merk, CHR (13) || CHR (10), ' '),
REPLACE (k2.TYPE, CHR (13) || CHR (10), ' '),
k3.hoogte,
k4.belasting,
k5.bereik,
k6.voltage,
k7.apkplicht,
k8.categorie,
COALESCE (lev_onderhd.cnt_contract_nummer_intern,
lev_onderst.cnt_contract_nummer_intern)
contract_nr,
COALESCE (lev_onderhd.prs_bedrijf_naam,
lev_onderst.prs_bedrijf_naam)
leverancier,
csd.ins_srtcontrole_omschrijving,
TO_CHAR (csd.ins_srtcontrole_periode),
DECODE (
y.ins_deelsrtcontrole_datum,
NULL,
TO_CHAR (x.ins_deel_aanmaak + csd.ins_srtcontrole_periode,
'dd-mm-yyyy'),
TO_CHAR (
y.ins_deelsrtcontrole_datum + csd.ins_srtcontrole_periode,
'dd-mm-yyyy'
)
),
DECODE (y.ins_deelsrtcontrole_datum,
NULL, TO_CHAR (x.ins_deel_aanmaak, 'dd-mm-yyyy'),
TO_CHAR (y.ins_deelsrtcontrole_datum, 'dd-mm-yyyy')),
NULL controledatum,
NULL controlopmerking,
k9.afgekeurd
FROM (SELECT scs.ins_srtinstallatie_key
ins_srtdeel_key,
scs.ins_srtcontrole_key,
scs.ins_srtcontrole_omschrijving,
scs.ins_srtcontrole_periode
FROM ins_srtcontrole scs
WHERE scs.ins_srtcontrole_niveau =
'S'
UNION ALL
SELECT sd.ins_srtdeel_key,
scg.ins_srtcontrole_key,
scg.ins_srtcontrole_omschrijving,
scg.ins_srtcontrole_periode
FROM ins_srtcontrole scg,
ins_srtdeel sd
WHERE scg.ins_srtcontrole_niveau =
'G'
AND scg.ins_srtinstallatie_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
scd.ins_srtcontrole_key,
scd.ins_srtcontrole_omschrijving,
scd.ins_srtcontrole_periode
FROM ins_srtcontrole scd,
ins_srtgroep sg,
ins_srtdeel sd
WHERE scd.ins_srtcontrole_niveau =
'D'
AND scd.ins_srtinstallatie_key =
sg.ins_discipline_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key)
csd
LEFT JOIN
(SELECT d.ins_deel_key,
d.ins_deel_aanmaak,
d.ins_deel_omschrijving,
d.ins_alg_ruimte_key,
d.ins_alg_ruimte_type,
sd.ins_srtdeel_key,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
sg.ins_srtgroep_omschrijving,
td.ins_discipline_omschrijving,
l.alg_locatie_key,
l.alg_locatie_code
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
alg_locatie l
WHERE d.ins_srtdeel_key =
sd.ins_srtdeel_key
AND sd.ins_srtgroep_key =
sg.ins_srtgroep_key
AND sg.ins_discipline_key =
td.ins_discipline_key
AND d.ins_alg_locatie_key =
l.alg_locatie_key(+))
x
ON csd.ins_srtdeel_key =
x.ins_srtdeel_key
LEFT JOIN
(SELECT DISTINCT
co.cnt_ins_deel_key,
c.cnt_contract_nummer_intern,
b.prs_bedrijf_naam
FROM cnt_contract_object co,
cnt_contract c,
ins_tab_discipline cd,
prs_bedrijf b
WHERE co.cnt_contract_object_verwijder IS NULL
AND co.cnt_ins_deel_key IS NOT NULL
AND co.cnt_contract_key =
c.cnt_contract_key
AND c.cnt_contract_looptijd_tot >=
TRUNC (
ADD_MONTHS (
SYSDATE,
-12
),
'YYYY'
)
AND c.ins_discipline_key =
cd.ins_discipline_key
AND cd.ins_discipline_verwijder IS NULL
AND c.cnt_prs_bedrijf_key =
b.prs_bedrijf_key)
lev_onderhd
ON x.ins_deel_key =
lev_onderhd.cnt_ins_deel_key
LEFT JOIN
(SELECT DISTINCT
co.cnt_ins_srtdeel_key,
g.alg_locatie_key,
c.cnt_contract_nummer_intern,
b.prs_bedrijf_naam
FROM cnt_contract_object co,
cnt_contract c,
ins_tab_discipline cd,
cnt_contract_plaats cp,
alg_gebouw g,
prs_bedrijf b
WHERE co.cnt_contract_object_verwijder IS NULL
AND co.cnt_ins_srtdeel_key IS NOT NULL
AND co.cnt_contract_key =
c.cnt_contract_key
AND c.cnt_contract_looptijd_tot >=
TRUNC (
ADD_MONTHS (
SYSDATE,
-12
),
'YYYY'
)
AND c.ins_discipline_key =
cd.ins_discipline_key
AND cd.ins_discipline_verwijder IS NULL
AND c.cnt_contract_key =
cp.cnt_contract_key
AND ( (cp.cnt_alg_plaats_code =
'G'
AND cp.cnt_alg_plaats_key =
g.alg_gebouw_key)
OR (cp.cnt_alg_plaats_code =
'L'
AND cp.cnt_alg_plaats_key =
g.alg_locatie_key))
AND c.cnt_prs_bedrijf_key =
b.prs_bedrijf_key)
lev_onderst
ON x.ins_srtdeel_key =
lev_onderst.cnt_ins_srtdeel_key
AND x.alg_locatie_key =
lev_onderst.alg_locatie_key
LEFT JOIN
(SELECT ins_deel_key,
ins_kenmerkdeel_waarde
merk
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key =
k.ins_kenmerk_key
AND k.ins_srtkenmerk_key =
42) k1
ON x.ins_deel_key =
k1.ins_deel_key
LEFT JOIN
(SELECT ins_deel_key,
ins_kenmerkdeel_waarde
TYPE
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key =
k.ins_kenmerk_key
AND k.ins_srtkenmerk_key =
41) k2
ON x.ins_deel_key = k2.ins_deel_key
LEFT JOIN
(SELECT ins_deel_key,
ins_kenmerkdeel_waarde
hoogte
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key =
k.ins_kenmerk_key
AND k.ins_srtkenmerk_key =
1461) k3
ON x.ins_deel_key = k3.ins_deel_key
LEFT JOIN
(SELECT ins_deel_key,
ins_kenmerkdeel_waarde
belasting
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key =
k.ins_kenmerk_key
AND k.ins_srtkenmerk_key =
1462) k4
ON x.ins_deel_key = k4.ins_deel_key
LEFT JOIN
(SELECT ins_deel_key,
ins_kenmerkdeel_waarde bereik
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key =
k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 1463)
k5
ON x.ins_deel_key = k5.ins_deel_key
LEFT JOIN
(SELECT ins_deel_key,
ins_kenmerkdeel_waarde voltage
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key =
k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 1464)
k6
ON x.ins_deel_key = k6.ins_deel_key
LEFT JOIN
(SELECT ins_deel_key,
DECODE (ins_kenmerkdeel_waarde,
'129', 'JA',
'NEE')
apkplicht
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key =
k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 1465) k7
ON x.ins_deel_key = k7.ins_deel_key
LEFT JOIN
(SELECT ins_deel_key,
ins_kenmerkdeel_waarde categorie
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 1467) k8
ON x.ins_deel_key = k8.ins_deel_key
LEFT JOIN
(SELECT ins_deel_key,
DECODE (ins_kenmerkdeel_waarde,
'129', 'JA',
'NEE')
afgekeurd
FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 1466) k9
ON x.ins_deel_key = k9.ins_deel_key
LEFT JOIN
(SELECT dsc.ins_deel_key,
dsc.ins_srtcontrole_key,
dsc.ins_deelsrtcontrole_datum,
dsc.ins_deelsrtcontrole_opmerking
FROM ins_deelsrtcontrole dsc
WHERE dsc.ins_deelsrtcontrole_datum =
(SELECT MAX (ins_deelsrtcontrole_datum)
FROM ins_deelsrtcontrole
WHERE ins_deel_key = dsc.ins_deel_key
AND ins_srtcontrole_key =
dsc.ins_srtcontrole_key)) y
ON x.ins_deel_key = y.ins_deel_key
AND csd.ins_srtcontrole_key = y.ins_srtcontrole_key
LEFT JOIN
(SELECT r.alg_ruimte_key,
'R' alg_ruimte_type,
r.alg_ruimte_nr
FROM alg_ruimte r
WHERE r.alg_ruimte_key = r.alg_ruimte_key) z1
ON x.ins_alg_ruimte_key = z1.alg_ruimte_key
AND x.ins_alg_ruimte_type = z1.alg_ruimte_type
LEFT JOIN
(SELECT wp.prs_werkplek_key,
'W' alg_ruimte_type,
r.alg_ruimte_nr
FROM prs_werkplek wp, alg_ruimte r
WHERE wp.prs_alg_ruimte_key = r.alg_ruimte_key) z2
ON x.ins_alg_ruimte_key = z2.prs_werkplek_key
AND x.ins_alg_ruimte_type = z2.alg_ruimte_type;
/* Formatted on 1-2-2012 14:45:54 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE conn_import_inspectieobj (
p_import_key IN NUMBER
)
IS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR (200);
-- De importvelden:
v_alg_locatie_code VARCHAR2 (255); -- C10
v_alg_ruimte_nr VARCHAR2 (255); -- C10
v_ins_discipline_omschrijving VARCHAR2 (255); -- C30
v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60
v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100
v_ins_deel_omschrijving VARCHAR2 (255); -- C60
v_merk VARCHAR2 (255); -- C60
v_type VARCHAR2 (255); -- C60
v_hoogte VARCHAR2 (255); -- C60
v_belasting VARCHAR2 (255); -- C60
v_bereik VARCHAR2 (255); -- C60
v_voltage VARCHAR2 (255); -- C60
v_apkplicht VARCHAR2 (255); -- C60
v_categorie VARCHAR2 (255); -- C60
v_cnt_contract_nummer_intern VARCHAR2 (255); -- C30
v_prs_bedrijf_naam VARCHAR2 (255); -- C60
v_ins_srtcontrole_oms VARCHAR2 (255); -- C60
x_periode VARCHAR2 (255); -- N4
x_controle_gepland VARCHAR2 (255); -- DATE
x_controle_laatste VARCHAR2 (255); -- DATE
v_ins_controle_datum VARCHAR2 (255); -- DATE
v_ins_controle_opm VARCHAR2 (1024); -- C500
v_afgekeurd VARCHAR2 (255); -- C60
-- Overig:
v_ins_controle_datum_d DATE; -- DATE
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM conn_imp_inspectieobj;
COMMIT;
v_count_tot := 0;
v_count_import := 0;
header_is_valid := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout bij opvragen importregel';
v_aanduiding := '';
v_ongeldig := 0;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_alg_locatie_code);
fac.imp_getfield (v_newline, c_delim, v_alg_ruimte_nr);
fac.imp_getfield (v_newline, c_delim, v_ins_discipline_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_srtgroep_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_merk);
fac.imp_getfield (v_newline, c_delim, v_type);
fac.imp_getfield (v_newline, c_delim, v_hoogte);
fac.imp_getfield (v_newline, c_delim, v_belasting);
fac.imp_getfield (v_newline, c_delim, v_bereik);
fac.imp_getfield (v_newline, c_delim, v_voltage);
fac.imp_getfield (v_newline, c_delim, v_apkplicht);
fac.imp_getfield (v_newline, c_delim, v_categorie);
fac.imp_getfield (v_newline, c_delim, v_cnt_contract_nummer_intern);
fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_naam);
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_oms);
fac.imp_getfield (v_newline, c_delim, x_periode);
fac.imp_getfield (v_newline, c_delim, x_controle_gepland);
fac.imp_getfield (v_newline, c_delim, x_controle_laatste);
fac.imp_getfield (v_newline, c_delim, v_ins_controle_datum);
fac.imp_getfield (v_newline, c_delim, v_ins_controle_opm);
fac.imp_getfield (v_newline, c_delim, v_afgekeurd);
v_aanduiding :=
'['
|| v_ins_discipline_omschrijving
|| '|'
|| v_ins_srtgroep_omschrijving
|| '|'
|| v_ins_srtdeel_omschrijving
|| '|'
|| v_ins_deel_omschrijving
|| '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (v_alg_locatie_code) = 'LOCATIECODE'
AND UPPER (v_alg_ruimte_nr) = 'RUIMTE'
AND UPPER (v_ins_discipline_omschrijving) = 'DISCIPLINE'
AND UPPER (v_ins_srtgroep_omschrijving) = 'GROEP'
AND UPPER (v_ins_srtdeel_omschrijving) = 'OBJECTSOORT'
AND UPPER (v_ins_deel_omschrijving) = 'OBJECT_ID'
AND UPPER (v_merk) = 'MERK'
AND UPPER (v_type) = 'TYPE'
AND UPPER (v_hoogte) = 'HOOGTE_CM'
AND UPPER (v_belasting) = 'BELASTING_KG'
AND UPPER (v_bereik) = 'BEREIK_NM_BAR'
AND UPPER (v_voltage) = 'VOLTAGE'
AND UPPER (v_apkplicht) = 'APKPLICHT'
AND UPPER (v_categorie) = 'KEURING_CATEGORIE'
AND UPPER (v_prs_bedrijf_naam) = 'LEVERANCIER'
AND UPPER (v_cnt_contract_nummer_intern) = 'CONTRACT_NR' -- Per CONN#22359!
AND UPPER (v_ins_srtcontrole_oms) = 'SOORTCONTROLE'
AND UPPER (x_periode) = 'PERIODE'
AND UPPER (x_controle_gepland) = 'CONTROLE_GEPLAND'
AND UPPER (x_controle_laatste) = 'CONTROLE_LAATSTE'
AND UPPER (v_ins_controle_datum) = 'CONTROLEDATUM'
AND UPPER (v_ins_controle_opm) = 'CONTROLEOPMERKING'
AND UPPER (v_afgekeurd) = 'AFGEKEURD'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Locatiecode ongeldig';
v_alg_locatie_code := TRIM (v_alg_locatie_code);
IF LENGTH (v_alg_locatie_code) > 10
THEN
v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 10);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Locatiecode wordt afgebroken tot ['
|| v_alg_locatie_code
|| ']'
);
END IF;
--
v_errormsg := 'Ruimte ongeldig';
v_alg_ruimte_nr := TRIM (v_alg_ruimte_nr);
IF LENGTH (v_alg_ruimte_nr) > 10
THEN
v_alg_ruimte_nr := SUBSTR (v_alg_ruimte_nr, 1, 10);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Ruimte wordt afgebroken tot [' || v_alg_ruimte_nr || ']'
);
END IF;
--
v_errormsg := 'Disciplineomschrijving ongeldig';
v_ins_discipline_omschrijving :=
TRIM (v_ins_discipline_omschrijving);
IF LENGTH (v_ins_discipline_omschrijving) > 30
THEN
v_ins_discipline_omschrijving :=
SUBSTR (TRIM (v_ins_discipline_omschrijving), 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Disciplineomschrijving wordt afgebroken tot ['
|| v_ins_discipline_omschrijving
|| ']'
);
END IF;
--
v_errormsg := 'Groepsoortomschrijving ongeldig';
v_ins_srtgroep_omschrijving := TRIM (v_ins_srtgroep_omschrijving);
IF LENGTH (v_ins_srtgroep_omschrijving) > 60
THEN
v_ins_srtgroep_omschrijving :=
SUBSTR (TRIM (v_ins_srtgroep_omschrijving), 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Groepsoortomschrijving wordt afgebroken tot ['
|| v_ins_srtgroep_omschrijving
|| ']'
);
END IF;
-- VERVALLEN 'Objectsoortcode'
--
v_errormsg := 'Objectsoortomschrijving ongeldig';
v_ins_srtdeel_omschrijving := TRIM (v_ins_srtdeel_omschrijving);
IF LENGTH (v_ins_srtdeel_omschrijving) > 100
THEN
v_ins_srtdeel_omschrijving :=
SUBSTR (TRIM (v_ins_srtdeel_omschrijving), 1, 100);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Objectsoortomschrijving wordt afgebroken tot ['
|| v_ins_srtdeel_omschrijving
|| ']'
);
END IF;
--
v_errormsg := 'Objectomschrijving ongeldig';
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
IF LENGTH (v_ins_deel_omschrijving) > 60
THEN
v_ins_deel_omschrijving :=
SUBSTR (TRIM (v_ins_deel_omschrijving), 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Objectomschrijving wordt afgebroken tot ['
|| v_ins_deel_omschrijving
|| ']'
);
END IF;
--
v_errormsg := 'Merk ongeldig';
v_merk := TRIM (v_merk);
IF LENGTH (v_merk) > 60
THEN
v_merk := SUBSTR (v_merk, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Merk wordt afgebroken tot [' || v_merk || ']'
);
END IF;
--
v_errormsg := 'Type ongeldig';
v_type := TRIM (v_type);
IF LENGTH (v_type) > 60
THEN
v_type := SUBSTR (v_type, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Type wordt afgebroken tot [' || v_type || ']'
);
END IF;
--
v_errormsg := 'Hoogte ongeldig';
v_hoogte := TRIM (v_hoogte);
IF LENGTH (v_hoogte) > 60
THEN
v_hoogte := SUBSTR (v_hoogte, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Hoogte wordt afgebroken tot [' || v_hoogte || ']'
);
END IF;
--
v_errormsg := 'Belasting ongeldig';
v_belasting := TRIM (v_belasting);
IF LENGTH (v_belasting) > 60
THEN
v_belasting := SUBSTR (v_belasting, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Belasting wordt afgebroken tot [' || v_belasting || ']'
);
END IF;
--
v_errormsg := 'Bereik ongeldig';
v_bereik := TRIM (v_bereik);
IF LENGTH (v_bereik) > 60
THEN
v_bereik := SUBSTR (v_bereik, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Bereik wordt afgebroken tot [' || v_bereik || ']'
);
END IF;
--
v_errormsg := 'Voltage ongeldig';
v_voltage := TRIM (v_voltage);
IF LENGTH (v_voltage) > 60
THEN
v_voltage := SUBSTR (v_voltage, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Voltage wordt afgebroken tot [' || v_voltage || ']'
);
END IF;
--
v_errormsg := 'APK-plicht ongeldig';
v_apkplicht := TRIM (v_apkplicht);
IF LENGTH (v_apkplicht) > 60
THEN
v_apkplicht := SUBSTR (v_apkplicht, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'APK-plicht wordt afgebroken tot [' || v_apkplicht || ']'
);
END IF;
--
v_errormsg := 'Categorie ongeldig';
v_categorie := TRIM (v_categorie);
IF LENGTH (v_categorie) > 60
THEN
v_categorie := SUBSTR (v_categorie, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Categorie wordt afgebroken tot [' || v_categorie || ']'
);
END IF;
--
v_errormsg := 'Contractnummer ongeldig';
v_cnt_contract_nummer_intern :=
TRIM (v_cnt_contract_nummer_intern);
IF LENGTH (v_cnt_contract_nummer_intern) > 30
THEN
v_cnt_contract_nummer_intern :=
SUBSTR (v_cnt_contract_nummer_intern, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Contractnummer wordt afgebroken tot ['
|| v_cnt_contract_nummer_intern
|| ']'
);
END IF;
--
v_errormsg := 'Leverancier ongeldig';
v_prs_bedrijf_naam := TRIM (v_prs_bedrijf_naam);
IF LENGTH (v_prs_bedrijf_naam) > 60
THEN
v_prs_bedrijf_naam := SUBSTR (v_prs_bedrijf_naam, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Leverancier wordt afgebroken tot ['
|| v_prs_bedrijf_naam
|| ']'
);
END IF;
--
v_errormsg := 'Soort controle ongeldig';
v_ins_srtcontrole_oms := TRIM (v_ins_srtcontrole_oms);
IF LENGTH (v_ins_srtcontrole_oms) > 60
THEN
v_ins_srtcontrole_oms := SUBSTR (v_ins_srtcontrole_oms, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Soort controle wordt afgebroken tot ['
|| v_ins_srtcontrole_oms
|| ']'
);
END IF;
-- Skip 'Periode'
-- Skip 'Controle gepland'
-- Skip 'Controle laatste'
--
v_errormsg := 'Controledatum ongeldig';
v_ins_controle_datum := TRIM (v_ins_controle_datum);
v_ins_controle_datum_d := NULL;
IF (v_ins_controle_datum IS NOT NULL)
THEN
IF (fac.safe_to_date (v_ins_controle_datum, 'dd-mm-yyyy') IS NULL)
THEN
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Controledatum wordt genegeerd');
ELSE
v_ins_controle_datum_d :=
fac.safe_to_date (v_ins_controle_datum, 'dd-mm-yyyy');
END IF;
END IF;
--
v_errormsg := 'Controleopmerking ongeldig';
v_ins_controle_opm := TRIM (v_ins_controle_opm);
IF LENGTH (v_ins_controle_opm) > 500
THEN
v_ins_controle_opm := SUBSTR (v_ins_controle_opm, 1, 500);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Controleopmerking wordt afgekapt op 500 posities'
);
END IF;
--
v_errormsg := 'Afgekeurd ongeldig';
v_afgekeurd := TRIM (v_afgekeurd);
IF LENGTH (v_afgekeurd) > 60
THEN
v_afgekeurd := SUBSTR (v_afgekeurd, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Afgekeurd wordt afgebroken tot [' || v_afgekeurd || ']'
);
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout bij wegschrijven importregel';
INSERT INTO conn_imp_inspectieobj (
alg_locatie_code,
alg_ruimte_nr,
ins_discipline_omschrijving,
ins_srtgroep_omschrijving,
--ins_srtdeel_code, -- VERVALLEN
ins_srtdeel_omschrijving,
ins_deel_omschrijving,
merk,
TYPE,
hoogte,
belasting,
bereik,
voltage,
apkplicht,
categorie,
cnt_contract_nummer_intern,
prs_bedrijf_naam,
ins_srtcontrole_omschrijving,
ins_deelsrtcontrole_datum,
ins_deelsrtcontrole_opmerking,
afgekeurd
)
VALUES (v_alg_locatie_code,
v_alg_ruimte_nr,
v_ins_discipline_omschrijving,
v_ins_srtgroep_omschrijving,
--v_ins_srtdeel_code, -- VERVALLEN
v_ins_srtdeel_omschrijving,
v_ins_deel_omschrijving,
v_merk,
v_type,
v_hoogte,
v_belasting,
v_bereik,
v_voltage,
v_apkplicht,
v_categorie,
v_cnt_contract_nummer_intern,
v_prs_bedrijf_naam,
v_ins_srtcontrole_oms,
v_ins_controle_datum_d,
v_ins_controle_opm,
v_afgekeurd);
COMMIT;
v_count_import := v_count_import + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'');
COMMIT;
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (
p_import_key,
'S',
'Inspectieobjecten/aantal ingelezen importregels: '
|| TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Inspectieobjecten/aantal ongeldige niet ingelezen importregels: '
|| TO_CHAR (v_count_tot - v_count_import),
''
);
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Inleesproces inspectieobjecten afgebroken!');
END conn_import_inspectieobj;
/
/* Formatted on 3-2-2012 11:18:55 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE conn_update_inspectieobj (
p_import_key IN NUMBER
)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
-- SUBPROC
PROCEDURE add_insdiscipline (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
MAX (ins_discipline_omschrijving)
ins_discipline_omschrijving
FROM conn_imp_inspectieobj
GROUP BY UPPER (ins_discipline_omschrijving);
v_errormsg VARCHAR2 (1024);
v_discipline_key NUMBER (10);
ccount NUMBER (10);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10);
v_count_update NUMBER (10);
BEGIN
v_count_tot := 0;
v_count_update := 0;
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_errormsg :=
'Fout bij toevoegen INS-discipline ['
|| rec.ins_discipline_omschrijving
|| ']';
SELECT COUNT ( * )
INTO ccount
FROM ins_tab_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND UPPER (TRIM (ins_discipline_omschrijving)) =
UPPER (TRIM (rec.ins_discipline_omschrijving));
IF ccount = 0
THEN
INSERT INTO ins_tab_discipline (ins_discipline_module,
ins_discipline_omschrijving,
ins_discipline_min_level,
ins_discipline_kpnverplicht)
VALUES ('INS',
rec.ins_discipline_omschrijving,
1,
0)
RETURNING ins_discipline_key INTO v_discipline_key;
INSERT INTO ins_disc_params (
ins_discipline_key,
ins_disc_params_type
)
VALUES (v_discipline_key, 0);
COMMIT;
v_count_update := v_count_update + 1;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_errormsg,
'');
COMMIT;
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'INS-Disciplines/aantal ingelezen: ' || TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
'INS-Disciplines/aantal toegevoegd: ' || TO_CHAR (v_count_update),
''
);
COMMIT;
END;
-- SUBPROC
PROCEDURE add_srtgroep (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper,
MAX (ins_discipline_omschrijving)
ins_discipline_omschrijving,
MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving
FROM conn_imp_inspectieobj
GROUP BY UPPER (ins_discipline_omschrijving),
UPPER (ins_srtgroep_omschrijving);
v_errormsg VARCHAR2 (1024);
v_discipline_key NUMBER (10);
ccount NUMBER (10);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10);
v_count_update NUMBER (10);
BEGIN
v_count_tot := 0;
v_count_update := 0;
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_errormsg :=
'Fout bij bepalen INS-discipline ['
|| rec.ins_discipline_omschrijving
|| ']';
SELECT ins_discipline_key
INTO v_discipline_key
FROM ins_tab_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND UPPER (TRIM (ins_discipline_omschrijving)) =
UPPER (TRIM (rec.ins_discipline_omschrijving));
v_errormsg :=
'Fout bij toevoegen INS-groepsoort ['
|| rec.ins_srtgroep_omschrijving
|| ']';
SELECT COUNT ( * )
INTO ccount
FROM ins_srtgroep
WHERE ins_srtgroep_verwijder IS NULL
AND ins_discipline_key = v_discipline_key
AND UPPER (TRIM (ins_srtgroep_omschrijving)) =
UPPER (TRIM (rec.ins_srtgroep_omschrijving));
IF ccount = 0
THEN
INSERT INTO ins_srtgroep (
ins_discipline_key,
ins_srtgroep_module,
ins_srtgroep_omschrijving
)
VALUES (
v_discipline_key,
'INS',
rec.ins_srtgroep_omschrijving
);
COMMIT;
v_count_update := v_count_update + 1;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_errormsg,
'');
COMMIT;
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'INS-Groepsoorten/aantal ingelezen: ' || TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
'INS-Groepsoorten/aantal toegevoegd: ' || TO_CHAR (v_count_update),
''
);
COMMIT;
END;
-- SUBPROC
PROCEDURE add_srtdeel (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper,
UPPER (ins_srtdeel_omschrijving) ins_srtdeel_upper,
MAX(UPPER( SUBSTR (ins_srtgroep_omschrijving, 1, 2)
|| '-'
|| SUBSTR (ins_srtdeel_omschrijving, 1, 2)))
new_srtdeel_code_upper,
MAX (ins_discipline_omschrijving)
ins_discipline_omschrijving,
MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving,
MAX (ins_srtdeel_omschrijving) ins_srtdeel_omschrijving
FROM conn_imp_inspectieobj
GROUP BY UPPER (ins_discipline_omschrijving),
UPPER (ins_srtgroep_omschrijving),
UPPER (ins_srtdeel_omschrijving);
v_errormsg VARCHAR2 (1024);
v_discipline_key NUMBER (10);
v_srtgroep_key NUMBER (10);
ccount NUMBER (10);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10);
v_count_update NUMBER (10);
BEGIN
v_count_tot := 0;
v_count_update := 0;
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_errormsg :=
'Fout bij bepalen INS-discipline ['
|| rec.ins_discipline_omschrijving
|| ']';
SELECT ins_discipline_key
INTO v_discipline_key
FROM ins_tab_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND UPPER (TRIM (ins_discipline_omschrijving)) =
UPPER (TRIM (rec.ins_discipline_omschrijving));
v_errormsg :=
'Fout bij bepalen INS-groepsoort ['
|| rec.ins_srtgroep_omschrijving
|| ']';
SELECT ins_srtgroep_key
INTO v_srtgroep_key
FROM ins_srtgroep
WHERE ins_srtgroep_verwijder IS NULL
AND ins_srtgroep_module = 'INS'
AND ins_discipline_key = v_discipline_key
AND UPPER (TRIM (ins_srtgroep_omschrijving)) =
UPPER (TRIM (rec.ins_srtgroep_omschrijving));
v_errormsg :=
'Fout bij toevoegen INS-objectsoort ['
|| rec.ins_srtdeel_omschrijving
|| ']';
SELECT COUNT ( * )
INTO ccount
FROM ins_srtdeel
WHERE ins_srtdeel_verwijder IS NULL
AND ins_srtdeel_module = 'INS'
AND ins_srtgroep_key = v_srtgroep_key
AND UPPER (TRIM (ins_srtdeel_omschrijving)) =
UPPER (TRIM (rec.ins_srtdeel_omschrijving));
IF ccount = 0
THEN
-- Binding 17 betekent ruimtegebonden of persoonsgebonden???
INSERT INTO ins_srtdeel (ins_srtgroep_key,
ins_srtdeel_module,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_srtdeel_binding)
VALUES (v_srtgroep_key,
'INS',
rec.new_srtdeel_code_upper,
rec.ins_srtdeel_omschrijving,
17);
COMMIT;
v_count_update := v_count_update + 1;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_errormsg,
'');
COMMIT;
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'INS-Objectsoorten/aantal ingelezen: ' || TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
'INS-Objectsoorten/aantal toegevoegd: ' || TO_CHAR (v_count_update),
''
);
COMMIT;
END;
-- SUBPROC
PROCEDURE add_deelinspectie (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT obj.ins_discipline_omschrijving,
obj.ins_srtgroep_omschrijving,
obj.ins_srtdeel_omschrijving,
obj.ins_deel_omschrijving,
obj.merk,
obj.TYPE,
obj.hoogte,
obj.belasting,
obj.bereik,
obj.voltage,
DECODE (UPPER (obj.apkplicht), 'JA', 129, 'NEE', 130, -1)
apkplicht,
obj.categorie,
obj.alg_locatie_code,
obj.alg_ruimte_nr, -- CONN#21887/Relevant igv. nieuwe objecten!
obj.cnt_contract_nummer_intern,
obj.ins_srtcontrole_omschrijving,
obj.ins_deelsrtcontrole_datum,
DECODE (
COALESCE (cb.prs_bedrijf_naam, obj.prs_bedrijf_naam),
NULL,
obj.ins_deelsrtcontrole_opmerking,
COALESCE (cb.prs_bedrijf_naam, obj.prs_bedrijf_naam)
|| ':'
|| CHR (13)
|| CHR (10)
|| COALESCE (obj.ins_deelsrtcontrole_opmerking, '-')
)
ins_deelsrtcontrole_opmerking,
DECODE (UPPER (obj.afgekeurd), 'JA', 129, 'NEE', 130, -1)
afgekeurd,
cb.cnt_contract_key
FROM (SELECT ins_discipline_omschrijving,
ins_srtgroep_omschrijving,
ins_srtdeel_omschrijving,
ins_deel_omschrijving,
merk,
TYPE,
hoogte,
belasting,
bereik,
voltage,
apkplicht,
categorie,
alg_locatie_code,
alg_ruimte_nr, -- CONN#21887/Relevant igv. nieuwe objecten!
cnt_contract_nummer_intern, -- Per CONN#22359!
prs_bedrijf_naam,
ins_srtcontrole_omschrijving,
ins_deelsrtcontrole_datum,
ins_deelsrtcontrole_opmerking,
afgekeurd
FROM conn_imp_inspectieobj) obj
LEFT JOIN
(SELECT c.cnt_contract_nummer_intern,
b.prs_bedrijf_naam,
c.cnt_contract_key
FROM cnt_contract c,
ins_tab_discipline td,
cnt_disc_params dp,
prs_bedrijf b
WHERE c.cnt_contract_verwijder IS NULL
AND c.ins_discipline_key =
td.ins_discipline_key
AND td.ins_discipline_verwijder IS NULL
AND td.ins_discipline_key =
dp.cnt_ins_discipline_key
AND dp.cnt_srtcontract_type = 3 -- Ondersteuning/Support
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key)
cb
ON obj.cnt_contract_nummer_intern =
cb.cnt_contract_nummer_intern;
v_errormsg VARCHAR2 (1024);
c_ruimte_nr VARCHAR2 (10) := 'WERKPLAATS';
c_srtruimte_key NUMBER (10) := 1;
c_merk_srtkey NUMBER (10) := 42;
c_type_srtkey NUMBER (10) := 41;
c_hoogte_srtkey NUMBER (10) := 1461;
c_belasting_srtkey NUMBER (10) := 1462;
c_bereik_srtkey NUMBER (10) := 1463;
c_voltage_srtkey NUMBER (10) := 1464;
c_apkplicht_srtkey NUMBER (10) := 1465;
c_categorie_srtkey NUMBER (10) := 1467;
c_afgekeurd_srtkey NUMBER (10) := 1466;
c_controle_periode NUMBER (10) := 365;
v_discipline_key NUMBER (10);
v_srtgroep_key NUMBER (10);
v_srtdeel_key NUMBER (10);
v_locatie_key NUMBER (10);
v_deel_key NUMBER (10);
v_deel_oms VARCHAR2 (60);
v_gebouw_key NUMBER (10);
v_verdieping_key NUMBER (10);
v_ruimte_key NUMBER (10);
v_kenmerk_key NUMBER (10);
v_kenmerkdeel_key NUMBER (10);
v_srtcontrole_id VARCHAR2 (20);
v_controlemode_key NUMBER (10);
ccount NUMBER (10);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10);
v_count_oupdate NUMBER (10);
v_count_cupdate NUMBER (10);
v_aanduiding VARCHAR (200);
BEGIN
v_count_tot := 0;
v_count_oupdate := 0;
v_count_cupdate := 0;
v_aanduiding := '';
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
'['
|| rec.ins_discipline_omschrijving
|| '|'
|| rec.ins_srtgroep_omschrijving
|| '|'
|| rec.ins_srtdeel_omschrijving
|| '|'
|| rec.ins_deel_omschrijving
|| '] ';
v_errormsg := 'Fout bij bepalen INS-discipline';
SELECT ins_discipline_key
INTO v_discipline_key
FROM ins_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND UPPER (TRIM (ins_discipline_omschrijving)) =
UPPER (TRIM (rec.ins_discipline_omschrijving));
v_errormsg := 'Fout bij bepalen INS-groepsoort';
SELECT ins_srtgroep_key
INTO v_srtgroep_key
FROM ins_srtgroep
WHERE ins_srtgroep_verwijder IS NULL
AND ins_srtgroep_module = 'INS'
AND ins_discipline_key = v_discipline_key
AND UPPER (TRIM (ins_srtgroep_omschrijving)) =
UPPER (TRIM (rec.ins_srtgroep_omschrijving));
v_errormsg := 'Fout bij bepalen INS-objectsoort';
SELECT ins_srtdeel_key
INTO v_srtdeel_key
FROM ins_srtdeel
WHERE ins_srtdeel_verwijder IS NULL
AND ins_srtdeel_module = 'INS'
AND ins_srtgroep_key = v_srtgroep_key
AND UPPER (TRIM (ins_srtdeel_omschrijving)) =
UPPER (TRIM (rec.ins_srtdeel_omschrijving));
v_errormsg :=
'Fout bij bepalen locatie [' || rec.alg_locatie_code || ']';
SELECT alg_locatie_key
INTO v_locatie_key
FROM alg_locatie
WHERE alg_locatie_verwijder IS NULL
AND UPPER (TRIM (alg_locatie_code)) =
UPPER (TRIM (rec.alg_locatie_code));
-- Ruimtegebonden objecten hebben een unieke ID binnen de locatie
v_errormsg := 'Fout bij bepalen INS-object';
SELECT COUNT ( * )
INTO ccount
FROM ins_deel d
WHERE ins_deel_verwijder IS NULL
AND ins_deel_module = 'INS'
AND ins_srtdeel_key = v_srtdeel_key
AND ins_alg_locatie_key = v_locatie_key
AND ins_deel_upper = UPPER (rec.ins_deel_omschrijving);
IF ccount > 0 -- Object bestaat reeds op locatie!
THEN
SELECT MAX (d.ins_deel_key)
INTO v_deel_key
FROM ins_deel d
WHERE ins_deel_verwijder IS NULL
AND ins_deel_module = 'INS'
AND ins_srtdeel_key = v_srtdeel_key
AND ins_alg_locatie_key = v_locatie_key
AND ins_deel_upper =
UPPER (rec.ins_deel_omschrijving);
ELSE -- Object bestaat nog niet op locatie, dus toevoegen!
v_errormsg := 'Fout bij bepalen default ID';
SELECT INS.GET_DESCRIPTION ('LPN_INS_DEEL',
NULL,
ins_srtdeel_code_upper)
INTO v_deel_oms
FROM ins_srtdeel
WHERE ins_srtdeel_key = v_srtdeel_key;
v_errormsg := 'Fout bij bepalen gewenste ruimte';
SELECT COUNT ( * )
INTO ccount
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g
WHERE r.alg_ruimte_upper_nr = UPPER (rec.alg_ruimte_nr)
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = v_locatie_key;
IF ccount > 0 -- rec.alg_ruimte_nr bekend op locatie!
THEN
SELECT MAX (r.alg_ruimte_key)
INTO v_ruimte_key
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g
WHERE r.alg_ruimte_upper_nr = rec.alg_ruimte_nr
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = v_locatie_key;
ELSE -- rec.alg_ruimte_nr onbekend op locatie, c_ruimte_nr ook?
v_errormsg := 'Fout bij bepalen default ruimte';
SELECT COUNT ( * )
INTO ccount
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g
WHERE r.alg_ruimte_upper_nr = c_ruimte_nr
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = v_locatie_key;
IF ccount > 0 -- c_ruimte_nr bekend op locatie!
THEN
SELECT MAX (r.alg_ruimte_key)
INTO v_ruimte_key
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g
WHERE r.alg_ruimte_upper_nr = c_ruimte_nr
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = v_locatie_key;
ELSE -- c_ruimte_nr nog onbekend op locatie, dan aanmaken!
v_errormsg := 'Fout bij bepalen default gebouw';
SELECT MIN (g.alg_gebouw_key)
INTO v_gebouw_key
FROM alg_v_aanweziggebouw g
WHERE g.alg_locatie_key = v_locatie_key;
v_errormsg := 'Fout bij bepalen default verdieping';
SELECT v.alg_verdieping_key
INTO v_verdieping_key
FROM alg_v_aanwezigverdieping v
WHERE v.alg_gebouw_key = v_gebouw_key
AND alg_verdieping_volgnr =
(SELECT MIN (alg_verdieping_volgnr)
FROM alg_v_aanwezigverdieping
WHERE alg_gebouw_key =
v.alg_gebouw_key);
v_errormsg := 'Fout bij toevoegen default ruimte';
INSERT INTO alg_ruimte (
alg_verdieping_key,
alg_srtruimte_key,
alg_ruimte_nr
)
VALUES (
v_verdieping_key,
c_srtruimte_key,
c_ruimte_nr
)
RETURNING alg_ruimte_key INTO v_ruimte_key;
END IF;
END IF;
v_errormsg := 'Fout bij toevoegen INS-object';
INSERT INTO ins_deel (ins_discipline_key,
ins_srtdeel_key,
ins_deel_module,
ins_deel_omschrijving,
ins_alg_ruimte_key,
ins_alg_ruimte_type,
ins_alg_locatie_key)
VALUES (v_discipline_key,
v_srtdeel_key,
'INS',
COALESCE (rec.ins_deel_omschrijving, v_deel_oms),
v_ruimte_key,
'R',
v_locatie_key)
RETURNING ins_deel_key INTO v_deel_key;
COMMIT;
v_count_oupdate := v_count_oupdate + 1;
END IF;
-- MERK toevoegen; huidige merk NOOIT gewijzigd via import!
IF rec.merk IS NOT NULL AND UPPER (rec.merk) != 'NVT'
THEN
v_errormsg := 'Fout bij bepalen merk-kenmerk';
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_merk_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key = v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken!
THEN
v_errormsg := 'Fout bij toevoegen merk-kenmerk';
INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_volgnummer)
VALUES (c_merk_srtkey,
v_srtdeel_key,
'S',
100)
RETURNING ins_kenmerk_key INTO v_kenmerk_key;
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/Merk-kenmerk toegevoegd voor: '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
ELSE
SELECT k.ins_kenmerk_key
INTO v_kenmerk_key
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_merk_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key =
v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
END IF;
v_errormsg := 'Fout bij bepalen huidige merk';
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
INTO ccount, v_kenmerkdeel_key
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = v_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen merk';
INSERT INTO ins_kenmerkdeel (
ins_deel_key,
ins_kenmerk_key,
ins_kenmerkdeel_waarde
)
VALUES (v_deel_key, v_kenmerk_key, rec.merk);
COMMIT;
--ELSE
-- v_errormsg := 'Fout bij wijzigen merk';
-- UPDATE ins_kenmerkdeel
-- SET ins_kenmerkdeel_waarde = rec.merk
-- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
-- COMMIT;
END IF;
END IF;
-- TYPE toevoegen; huidige waarde NOOIT gewijzigd via import!
IF rec.TYPE IS NOT NULL AND UPPER (rec.TYPE) != 'NVT'
THEN
v_errormsg := 'Fout bij bepalen type-kenmerk';
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_type_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key = v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken!
THEN
v_errormsg := 'Fout bij toevoegen type-kenmerk';
INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_volgnummer)
VALUES (c_type_srtkey,
v_srtdeel_key,
'S',
105)
RETURNING ins_kenmerk_key INTO v_kenmerk_key;
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/Type-kenmerk toegevoegd voor: '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
ELSE
SELECT k.ins_kenmerk_key
INTO v_kenmerk_key
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_type_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key =
v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
END IF;
v_errormsg := 'Fout bij bepalen huidige type';
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
INTO ccount, v_kenmerkdeel_key
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = v_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen type';
INSERT INTO ins_kenmerkdeel (
ins_deel_key,
ins_kenmerk_key,
ins_kenmerkdeel_waarde
)
VALUES (v_deel_key, v_kenmerk_key, rec.TYPE);
COMMIT;
--ELSE
-- v_errormsg := 'Fout bij wijzigen type';
-- UPDATE ins_kenmerkdeel
-- SET ins_kenmerkdeel_waarde = rec.type
-- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
-- COMMIT;
END IF;
END IF;
-- HOOGTE toevoegen; huidige waarde NOOIT gewijzigd via import!
IF rec.hoogte IS NOT NULL AND UPPER (rec.hoogte) != 'NVT'
THEN
v_errormsg := 'Fout bij bepalen hoogte-kenmerk';
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_hoogte_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key = v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken!
THEN
v_errormsg := 'Fout bij toevoegen hoogte-kenmerk';
INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_volgnummer)
VALUES (c_hoogte_srtkey,
v_srtdeel_key,
'S',
110)
RETURNING ins_kenmerk_key INTO v_kenmerk_key;
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/Hoogte-kenmerk toegevoegd voor: '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
ELSE
SELECT k.ins_kenmerk_key
INTO v_kenmerk_key
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_hoogte_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key =
v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
END IF;
v_errormsg := 'Fout bij bepalen huidige hoogte';
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
INTO ccount, v_kenmerkdeel_key
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = v_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen hoogte';
INSERT INTO ins_kenmerkdeel (
ins_deel_key,
ins_kenmerk_key,
ins_kenmerkdeel_waarde
)
VALUES (v_deel_key, v_kenmerk_key, rec.hoogte);
COMMIT;
--ELSE
-- v_errormsg := 'Fout bij wijzigen hoogte';
-- UPDATE ins_kenmerkdeel
-- SET ins_kenmerkdeel_waarde = rec.hoogte
-- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
-- COMMIT;
END IF;
END IF;
-- BELASTING toevoegen; huidige waarde NOOIT gewijzigd via import!
IF rec.belasting IS NOT NULL AND UPPER (rec.belasting) != 'NVT'
THEN
v_errormsg := 'Fout bij bepalen belasting-kenmerk';
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_belasting_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key = v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken!
THEN
v_errormsg := 'Fout bij toevoegen belasting-kenmerk';
INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_volgnummer)
VALUES (c_belasting_srtkey,
v_srtdeel_key,
'S',
112)
RETURNING ins_kenmerk_key INTO v_kenmerk_key;
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/Belasting-kenmerk toegevoegd voor: '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
ELSE
SELECT k.ins_kenmerk_key
INTO v_kenmerk_key
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_belasting_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key =
v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
END IF;
v_errormsg := 'Fout bij bepalen huidige belasting';
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
INTO ccount, v_kenmerkdeel_key
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = v_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen belasting';
INSERT INTO ins_kenmerkdeel (
ins_deel_key,
ins_kenmerk_key,
ins_kenmerkdeel_waarde
)
VALUES (v_deel_key, v_kenmerk_key, rec.belasting);
COMMIT;
--ELSE
-- v_errormsg := 'Fout bij wijzigen belasting';
-- UPDATE ins_kenmerkdeel
-- SET ins_kenmerkdeel_waarde = rec.belasting
-- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
-- COMMIT;
END IF;
END IF;
-- BEREIK toevoegen; huidige waarde NOOIT gewijzigd via import!
IF rec.bereik IS NOT NULL AND UPPER (rec.bereik) != 'NVT'
THEN
v_errormsg := 'Fout bij bepalen bereik-kenmerk';
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_bereik_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key = v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken!
THEN
v_errormsg := 'Fout bij toevoegen bereik-kenmerk';
INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_volgnummer)
VALUES (c_bereik_srtkey,
v_srtdeel_key,
'S',
114)
RETURNING ins_kenmerk_key INTO v_kenmerk_key;
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/Bereik-kenmerk toegevoegd voor: '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
ELSE
SELECT k.ins_kenmerk_key
INTO v_kenmerk_key
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_bereik_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key =
v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
END IF;
v_errormsg := 'Fout bij bepalen huidige bereik';
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
INTO ccount, v_kenmerkdeel_key
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = v_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen bereik';
INSERT INTO ins_kenmerkdeel (
ins_deel_key,
ins_kenmerk_key,
ins_kenmerkdeel_waarde
)
VALUES (v_deel_key, v_kenmerk_key, rec.bereik);
COMMIT;
--ELSE
-- v_errormsg := 'Fout bij wijzigen bereik';
-- UPDATE ins_kenmerkdeel
-- SET ins_kenmerkdeel_waarde = rec.bereik
-- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
-- COMMIT;
END IF;
END IF;
-- VOLTAGE toevoegen; huidige waarde NOOIT gewijzigd via import!
IF rec.voltage IS NOT NULL AND UPPER (rec.voltage) != 'NVT'
THEN
v_errormsg := 'Fout bij bepalen voltage-kenmerk';
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_voltage_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key = v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken!
THEN
v_errormsg := 'Fout bij toevoegen voltage-kenmerk';
INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_volgnummer)
VALUES (c_voltage_srtkey,
v_srtdeel_key,
'S',
116)
RETURNING ins_kenmerk_key INTO v_kenmerk_key;
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/Voltage-kenmerk toegevoegd voor: '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
ELSE
SELECT k.ins_kenmerk_key
INTO v_kenmerk_key
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_voltage_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key =
v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
END IF;
v_errormsg := 'Fout bij bepalen huidige voltage';
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
INTO ccount, v_kenmerkdeel_key
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = v_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen voltage';
INSERT INTO ins_kenmerkdeel (
ins_deel_key,
ins_kenmerk_key,
ins_kenmerkdeel_waarde
)
VALUES (v_deel_key, v_kenmerk_key, rec.voltage);
COMMIT;
--ELSE
-- v_errormsg := 'Fout bij wijzigen voltage';
-- UPDATE ins_kenmerkdeel
-- SET ins_kenmerkdeel_waarde = rec.voltage
-- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
-- COMMIT;
END IF;
END IF;
-- APK toevoegen; huidige waarde NOOIT gewijzigd via import!
IF rec.apkplicht IS NOT NULL AND UPPER (rec.apkplicht) != -1
THEN
v_errormsg := 'Fout bij bepalen APK-kenmerk';
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_apkplicht_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key = v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken!
THEN
v_errormsg := 'Fout bij toevoegen APK-kenmerk';
INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_volgnummer)
VALUES (c_apkplicht_srtkey,
v_srtdeel_key,
'S',
118)
RETURNING ins_kenmerk_key INTO v_kenmerk_key;
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/APK-kenmerk toegevoegd voor: '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
ELSE
SELECT k.ins_kenmerk_key
INTO v_kenmerk_key
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_apkplicht_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key =
v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
END IF;
v_errormsg := 'Fout bij bepalen huidige APK';
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
INTO ccount, v_kenmerkdeel_key
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = v_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen APK';
INSERT INTO ins_kenmerkdeel (
ins_deel_key,
ins_kenmerk_key,
ins_kenmerkdeel_waarde
)
VALUES (v_deel_key, v_kenmerk_key, rec.apkplicht);
COMMIT;
--ELSE
-- v_errormsg := 'Fout bij wijzigen APK';
-- UPDATE ins_kenmerkdeel
-- SET ins_kenmerkdeel_waarde = rec.apkplicht
-- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
-- COMMIT;
END IF;
END IF;
-- CATEGORIE toevoegen; huidige waarde NOOIT gewijzigd via import!
IF rec.categorie IS NOT NULL AND UPPER (rec.categorie) != 'NVT'
THEN
v_errormsg := 'Fout bij bepalen categorie-kenmerk';
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_categorie_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key = v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken!
THEN
v_errormsg := 'Fout bij toevoegen categorie-kenmerk';
INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_volgnummer)
VALUES (c_categorie_srtkey,
v_srtdeel_key,
'S',
120)
RETURNING ins_kenmerk_key INTO v_kenmerk_key;
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/Categorie-kenmerk toegevoegd voor: '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
ELSE
SELECT k.ins_kenmerk_key
INTO v_kenmerk_key
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_categorie_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key =
v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
END IF;
v_errormsg := 'Fout bij bepalen huidige categorie';
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
INTO ccount, v_kenmerkdeel_key
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = v_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen categorie';
INSERT INTO ins_kenmerkdeel (
ins_deel_key,
ins_kenmerk_key,
ins_kenmerkdeel_waarde
)
VALUES (v_deel_key, v_kenmerk_key, rec.categorie);
COMMIT;
--ELSE
-- v_errormsg := 'Fout bij wijzigen categorie';
-- UPDATE ins_kenmerkdeel
-- SET ins_kenmerkdeel_waarde = rec.categorie
-- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
-- COMMIT;
END IF;
END IF;
-- AFGEKEURD toevoegen; huidige waarde NOOIT gewijzigd via import!
IF rec.afgekeurd IS NOT NULL AND UPPER (rec.afgekeurd) != -1
THEN
v_errormsg := 'Fout bij bepalen afgekeurd-kenmerk';
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_afgekeurd_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key = v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken!
THEN
v_errormsg := 'Fout bij toevoegen afgekeurd-kenmerk';
INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_volgnummer)
VALUES (c_afgekeurd_srtkey,
v_srtdeel_key,
'S',
122)
RETURNING ins_kenmerk_key INTO v_kenmerk_key;
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/afgekeurd-kenmerk toegevoegd voor: '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
ELSE
SELECT k.ins_kenmerk_key
INTO v_kenmerk_key
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_afgekeurd_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key =
v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
END IF;
v_errormsg := 'Fout bij bepalen huidige afgekeurd';
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
INTO ccount, v_kenmerkdeel_key
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = v_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen afgekeurd';
INSERT INTO ins_kenmerkdeel (
ins_deel_key,
ins_kenmerk_key,
ins_kenmerkdeel_waarde
)
VALUES (v_deel_key, v_kenmerk_key, rec.afgekeurd);
COMMIT;
--ELSE
-- v_errormsg := 'Fout bij wijzigen afgekeurd';
-- UPDATE ins_kenmerkdeel
-- SET ins_kenmerkdeel_waarde = rec.afgekeurd
-- WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
-- COMMIT;
END IF;
END IF;
-- Toevoegen controle; gebruik [a] de meest specifieke soort en
-- [b] de minst recente mode!
v_errormsg := 'Fout bij bepalen soort controle';
SELECT COUNT ( * )
INTO ccount
FROM ins_srtcontrole sc
WHERE UPPER (TRIM (sc.ins_srtcontrole_omschrijving)) =
UPPER (TRIM (rec.ins_srtcontrole_omschrijving))
AND ( (sc.ins_srtinstallatie_key = v_srtdeel_key
AND sc.ins_srtcontrole_niveau = 'S')
OR (sc.ins_srtinstallatie_key = v_srtgroep_key
AND sc.ins_srtcontrole_niveau = 'G')
OR (sc.ins_srtinstallatie_key = v_discipline_key
AND sc.ins_srtcontrole_niveau = 'D'));
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen soort controle';
INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
ins_srtcontrole_niveau,
ins_srtcontrole_omschrijving,
ins_srtcontrole_periode)
VALUES (v_srtdeel_key,
'S',
SUBSTR (rec.ins_srtcontrole_omschrijving, 1, 60),
c_controle_periode) -- Default een jaar!
RETURNING ins_srtcontrole_key INTO v_srtcontrole_id;
v_srtcontrole_id := 'S' || v_srtcontrole_id;
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/soort controle toegevoegd: '
|| SUBSTR (rec.ins_srtcontrole_omschrijving, 1, 60)
|| ' voor '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
ELSE
SELECT MAX(sc.ins_srtcontrole_niveau
|| TO_CHAR (sc.ins_srtcontrole_key))
INTO v_srtcontrole_id
FROM ins_srtcontrole sc
WHERE UPPER (TRIM (sc.ins_srtcontrole_omschrijving)) =
UPPER (TRIM (rec.ins_srtcontrole_omschrijving))
AND ( (sc.ins_srtinstallatie_key = v_srtdeel_key
AND sc.ins_srtcontrole_niveau = 'S')
OR (sc.ins_srtinstallatie_key = v_srtgroep_key
AND sc.ins_srtcontrole_niveau = 'G')
OR (sc.ins_srtinstallatie_key = v_discipline_key
AND sc.ins_srtcontrole_niveau = 'D'));
END IF;
IF rec.ins_deelsrtcontrole_datum IS NOT NULL
THEN
v_errormsg := 'Fout bij bepalen controle mode';
SELECT MIN (ins_controlemode_key)
INTO v_controlemode_key
FROM ins_controlemode;
v_errormsg := 'Fout bij toevoegen controle';
INSERT INTO ins_deelsrtcontrole (
ins_deel_key,
ins_srtcontrole_key,
ins_deelsrtcontrole_datum,
ins_controlemode_key,
ins_deelsrtcontrole_opmerking
)
VALUES (v_deel_key,
fac.safe_to_number (SUBSTR (v_srtcontrole_id, 2)),
rec.ins_deelsrtcontrole_datum,
v_controlemode_key,
rec.ins_deelsrtcontrole_opmerking);
COMMIT;
v_count_cupdate := v_count_cupdate + 1;
END IF;
-- Uitbreiden contract-plaats-scope als contractnummer voorkomt in
-- importbestand (ie. cnt_contract_key kon worden bepaald) en deze
-- relatie nog niet bestaat!
IF (rec.cnt_contract_key IS NOT NULL)
THEN
v_errormsg := 'Fout bij bepalen contract-plaats-relatie';
SELECT COUNT ( * )
INTO ccount
FROM cnt_contract_plaats
WHERE cnt_contract_plaats_verwijder IS NULL
AND cnt_contract_key = rec.cnt_contract_key
AND cnt_alg_plaats_key = v_locatie_key
AND cnt_alg_plaats_code = 'L';
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen contract-plaats-scope';
INSERT INTO cnt_contract_plaats (
cnt_contract_key,
cnt_alg_plaats_key,
cnt_alg_plaats_code
)
VALUES (rec.cnt_contract_key, v_locatie_key, 'L');
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/plaats-contractscope uitgebreid: '
|| rec.cnt_contract_nummer_intern
|| ' plus '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
END IF;
END IF;
-- Uitbreiden contract-object-scope als contractnummer voorkomt in
-- importbestand (ie. cnt_contract_key kon worden bepaald) en deze
-- relatie nog niet bestaat!
IF (rec.cnt_contract_key IS NOT NULL)
THEN
v_errormsg := 'Fout bij bepalen contract-object-relatie';
SELECT COUNT ( * )
INTO ccount
FROM cnt_contract_object
WHERE cnt_contract_object_verwijder IS NULL
AND cnt_contract_key = rec.cnt_contract_key
AND cnt_ins_srtdeel_key = v_srtdeel_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen contract-object-scope';
INSERT INTO cnt_contract_object (
cnt_contract_key,
cnt_ins_srtdeel_key
)
VALUES (rec.cnt_contract_key, v_srtdeel_key);
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/object-contractscope uitgebreid: '
|| rec.cnt_contract_nummer_intern
|| ' plus '
|| rec.ins_srtdeel_omschrijving,
''
);
COMMIT;
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'');
COMMIT;
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'INS-Objecten/aantal ingelezen: ' || TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
'INS-Objecten/aantal toegevoegd: ' || TO_CHAR (v_count_oupdate),
''
);
fac.imp_writelog (
p_import_key,
'S',
'INS-Controles/aantal toegevoegd: ' || TO_CHAR (v_count_cupdate),
''
);
COMMIT;
END;
-- MAIN
BEGIN
add_insdiscipline (p_import_key);
add_srtgroep (p_import_key);
add_srtdeel (p_import_key);
add_deelinspectie (p_import_key);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
'Importproces inspectieobjecten afgebroken!');
END conn_update_inspectieobj;
/
/* Formatted on 9-3-2012 17:37:17 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW conn_v_rap_keurobjecten_expimp
(
fclt_f_locatiecode,
ruimte,
fclt_f_discipline,
fclt_f_objectsoort,
object_id,
fclt_f_merk,
fclt_f_keuring_categorie,
fclt_f_contract_nr,
fclt_f_leverancier,
fclt_f_soortcontrole,
--periode,
--controle_gepland,
--controle_laatste,
controledatum,
controleopmerking,
fclt_f_afgekeurd
)
AS
SELECT x.alg_locatie_code,
COALESCE (z1.alg_ruimte_nr, z2.alg_ruimte_nr),
x.ins_discipline_omschrijving,
x.ins_srtdeel_omschrijving,
x.ins_deel_omschrijving,
REPLACE (k1.merk, CHR (13) || CHR (10), ' '),
k2.categorie,
COALESCE (lev_onderhd.cnt_contract_nummer_intern,
lev_onderst.cnt_contract_nummer_intern)
contract_nr,
COALESCE (lev_onderhd.prs_bedrijf_naam,
lev_onderst.prs_bedrijf_naam)
leverancier,
csd.ins_srtcontrole_omschrijving,
--TO_CHAR (csd.ins_srtcontrole_periode),
--DECODE (
-- y.ins_deelsrtcontrole_datum,
-- NULL,
-- TO_CHAR (x.ins_deel_aanmaak + csd.ins_srtcontrole_periode,
-- 'dd-mm-yyyy'),
-- TO_CHAR (
-- y.ins_deelsrtcontrole_datum + csd.ins_srtcontrole_periode,
-- 'dd-mm-yyyy'
-- )
--),
--DECODE (y.ins_deelsrtcontrole_datum,
-- NULL, TO_CHAR (x.ins_deel_aanmaak, 'dd-mm-yyyy'),
-- TO_CHAR (y.ins_deelsrtcontrole_datum, 'dd-mm-yyyy')),
NULL controledatum,
NULL controlopmerking,
k3.afgekeurd
FROM (SELECT scs.ins_srtinstallatie_key
ins_srtdeel_key,
scs.ins_srtcontrole_key,
scs.ins_srtcontrole_omschrijving,
scs.ins_srtcontrole_periode
FROM ins_srtcontrole scs
WHERE scs.ins_srtcontrole_niveau =
'S'
UNION ALL
SELECT sd.ins_srtdeel_key,
scg.ins_srtcontrole_key,
scg.ins_srtcontrole_omschrijving,
scg.ins_srtcontrole_periode
FROM ins_srtcontrole scg,
ins_srtdeel sd
WHERE scg.ins_srtcontrole_niveau =
'G'
AND scg.ins_srtinstallatie_key =
sd.ins_srtgroep_key
UNION ALL
SELECT sd.ins_srtdeel_key,
scd.ins_srtcontrole_key,
scd.ins_srtcontrole_omschrijving,
scd.ins_srtcontrole_periode
FROM ins_srtcontrole scd,
ins_srtgroep sg,
ins_srtdeel sd
WHERE scd.ins_srtcontrole_niveau =
'D'
AND scd.ins_srtinstallatie_key =
sg.ins_discipline_key
AND sg.ins_srtgroep_key =
sd.ins_srtgroep_key)
csd
LEFT JOIN
(SELECT d.ins_deel_key,
d.ins_deel_aanmaak,
d.ins_deel_omschrijving,
d.ins_alg_ruimte_key,
d.ins_alg_ruimte_type,
sd.ins_srtdeel_key,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
sg.ins_srtgroep_omschrijving,
td.ins_discipline_omschrijving,
l.alg_locatie_key,
l.alg_locatie_code
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
alg_locatie l
WHERE d.ins_srtdeel_key =
sd.ins_srtdeel_key
AND sd.ins_srtgroep_key =
sg.ins_srtgroep_key
AND sg.ins_discipline_key =
td.ins_discipline_key
AND d.ins_alg_locatie_key =
l.alg_locatie_key(+))
x
ON csd.ins_srtdeel_key =
x.ins_srtdeel_key
LEFT JOIN
(SELECT DISTINCT
co.cnt_ins_deel_key,
c.cnt_contract_nummer_intern,
b.prs_bedrijf_naam
FROM cnt_contract_object co,
cnt_contract c,
ins_tab_discipline cd,
prs_bedrijf b
WHERE co.cnt_contract_object_verwijder IS NULL
AND co.cnt_ins_deel_key IS NOT NULL
AND co.cnt_contract_key =
c.cnt_contract_key
AND c.cnt_contract_looptijd_tot >=
TRUNC (
ADD_MONTHS (SYSDATE,
-12),
'YYYY'
)
AND c.ins_discipline_key =
cd.ins_discipline_key
AND cd.ins_discipline_verwijder IS NULL
AND c.cnt_prs_bedrijf_key =
b.prs_bedrijf_key)
lev_onderhd
ON x.ins_deel_key =
lev_onderhd.cnt_ins_deel_key
LEFT JOIN
(SELECT DISTINCT
co.cnt_ins_srtdeel_key,
g.alg_locatie_key,
c.cnt_contract_nummer_intern,
b.prs_bedrijf_naam
FROM cnt_contract_object co,
cnt_contract c,
ins_tab_discipline cd,
cnt_contract_plaats cp,
alg_gebouw g,
prs_bedrijf b
WHERE co.cnt_contract_object_verwijder IS NULL
AND co.cnt_ins_srtdeel_key IS NOT NULL
AND co.cnt_contract_key =
c.cnt_contract_key
AND c.cnt_contract_looptijd_tot >=
TRUNC (
ADD_MONTHS (SYSDATE, -12),
'YYYY'
)
AND c.ins_discipline_key =
cd.ins_discipline_key
AND cd.ins_discipline_verwijder IS NULL
AND c.cnt_contract_key =
cp.cnt_contract_key
AND ( (cp.cnt_alg_plaats_code =
'G'
AND cp.cnt_alg_plaats_key =
g.alg_gebouw_key)
OR (cp.cnt_alg_plaats_code =
'L'
AND cp.cnt_alg_plaats_key =
g.alg_locatie_key))
AND c.cnt_prs_bedrijf_key =
b.prs_bedrijf_key)
lev_onderst
ON x.ins_srtdeel_key =
lev_onderst.cnt_ins_srtdeel_key
AND x.alg_locatie_key =
lev_onderst.alg_locatie_key
LEFT JOIN
(SELECT ins_deel_key,
ins_kenmerkdeel_waarde merk
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key =
k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 42) k1
ON x.ins_deel_key = k1.ins_deel_key
LEFT JOIN
(SELECT ins_deel_key,
ins_kenmerkdeel_waarde categorie
FROM ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 1467) k2
ON x.ins_deel_key = k2.ins_deel_key
LEFT JOIN
(SELECT ins_deel_key,
DECODE (ins_kenmerkdeel_waarde,
'129', 'JA',
'NEE')
afgekeurd
FROM ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 1466) k3
ON x.ins_deel_key = k3.ins_deel_key
LEFT JOIN
(SELECT dsc.ins_deel_key,
dsc.ins_srtcontrole_key,
dsc.ins_deelsrtcontrole_datum,
dsc.ins_deelsrtcontrole_opmerking
FROM ins_deelsrtcontrole dsc
WHERE dsc.ins_deelsrtcontrole_datum =
(SELECT MAX (ins_deelsrtcontrole_datum)
FROM ins_deelsrtcontrole
WHERE ins_deel_key = dsc.ins_deel_key
AND ins_srtcontrole_key =
dsc.ins_srtcontrole_key)) y
ON x.ins_deel_key = y.ins_deel_key
AND csd.ins_srtcontrole_key = y.ins_srtcontrole_key
LEFT JOIN
(SELECT r.alg_ruimte_key,
'R' alg_ruimte_type,
r.alg_ruimte_nr
FROM alg_ruimte r
WHERE r.alg_ruimte_key = r.alg_ruimte_key) z1
ON x.ins_alg_ruimte_key = z1.alg_ruimte_key
AND x.ins_alg_ruimte_type = z1.alg_ruimte_type
LEFT JOIN
(SELECT wp.prs_werkplek_key,
'W' alg_ruimte_type,
r.alg_ruimte_nr
FROM prs_werkplek wp, alg_ruimte r
WHERE wp.prs_alg_ruimte_key = r.alg_ruimte_key) z2
ON x.ins_alg_ruimte_key = z2.prs_werkplek_key
AND x.ins_alg_ruimte_type = z2.alg_ruimte_type;
/* Formatted on 1-2-2012 14:45:54 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE conn_import_keurobjecten (
p_import_key IN NUMBER
)
IS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR (200);
-- De importvelden:
v_alg_locatie_code VARCHAR2 (255); -- C10
x_alg_ruimte_nr VARCHAR2 (255); -- C10
x_ins_discipline_omschrijving VARCHAR2 (255); -- C30
x_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100
v_ins_deel_omschrijving VARCHAR2 (255); -- C60
x_merk VARCHAR2 (255); -- C60
x_categorie VARCHAR2 (255); -- C60
v_cnt_contract_nummer_intern VARCHAR2 (255); -- C30
v_prs_bedrijf_naam VARCHAR2 (255); -- C60
v_ins_srtcontrole_oms VARCHAR2 (255); -- C60
v_ins_controle_datum VARCHAR2 (255); -- DATE
v_ins_controle_opm VARCHAR2 (1024); -- C500
v_afgekeurd VARCHAR2 (255); -- C60
-- Overig:
v_ins_controle_datum_d DATE; -- DATE
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM conn_imp_keurobjecten;
COMMIT;
v_count_tot := 0;
v_count_import := 0;
header_is_valid := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout bij opvragen importregel';
v_aanduiding := '';
v_ongeldig := 0;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_alg_locatie_code);
fac.imp_getfield (v_newline, c_delim, x_alg_ruimte_nr);
fac.imp_getfield (v_newline, c_delim, x_ins_discipline_omschrijving);
fac.imp_getfield (v_newline, c_delim, x_ins_srtdeel_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving);
fac.imp_getfield (v_newline, c_delim, x_merk);
fac.imp_getfield (v_newline, c_delim, x_categorie);
fac.imp_getfield (v_newline, c_delim, v_cnt_contract_nummer_intern);
fac.imp_getfield (v_newline, c_delim, v_prs_bedrijf_naam);
fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_oms);
fac.imp_getfield (v_newline, c_delim, v_ins_controle_datum);
fac.imp_getfield (v_newline, c_delim, v_ins_controle_opm);
fac.imp_getfield (v_newline, c_delim, v_afgekeurd);
v_aanduiding :=
'['
|| x_ins_discipline_omschrijving
|| '|'
|| x_ins_srtdeel_omschrijving
|| '|'
|| v_ins_deel_omschrijving
|| '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (v_alg_locatie_code) = 'LOCATIECODE'
AND UPPER (x_alg_ruimte_nr) = 'RUIMTE'
AND UPPER (x_ins_discipline_omschrijving) = 'DISCIPLINE'
AND UPPER (x_ins_srtdeel_omschrijving) = 'OBJECTSOORT'
AND UPPER (v_ins_deel_omschrijving) = 'OBJECT_ID'
AND UPPER (x_merk) = 'MERK'
AND UPPER (x_categorie) = 'KEURING_CATEGORIE'
AND UPPER (v_prs_bedrijf_naam) = 'LEVERANCIER'
AND UPPER (v_cnt_contract_nummer_intern) = 'CONTRACT_NR' -- Per CONN#22359!
AND UPPER (v_ins_srtcontrole_oms) = 'SOORTCONTROLE'
AND UPPER (v_ins_controle_datum) = 'CONTROLEDATUM'
AND UPPER (v_ins_controle_opm) = 'CONTROLEOPMERKING'
AND UPPER (v_afgekeurd) = 'AFGEKEURD'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Locatiecode ongeldig';
v_alg_locatie_code := TRIM (v_alg_locatie_code);
IF LENGTH (v_alg_locatie_code) > 10
THEN
v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 10);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Locatiecode wordt afgebroken tot ['
|| v_alg_locatie_code
|| ']'
);
END IF;
-- Skip 'Ruimte'
-- Skip 'Discipline'
-- Skip 'Objectsoort'
--
v_errormsg := 'Objectomschrijving ongeldig';
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
IF LENGTH (v_ins_deel_omschrijving) > 60
THEN
v_ins_deel_omschrijving :=
SUBSTR (TRIM (v_ins_deel_omschrijving), 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Objectomschrijving wordt afgebroken tot ['
|| v_ins_deel_omschrijving
|| ']'
);
END IF;
-- Skip 'Merk'
-- Skip 'Categorie'
--
v_errormsg := 'Contractnummer ongeldig';
v_cnt_contract_nummer_intern :=
TRIM (v_cnt_contract_nummer_intern);
IF LENGTH (v_cnt_contract_nummer_intern) > 30
THEN
v_cnt_contract_nummer_intern :=
SUBSTR (v_cnt_contract_nummer_intern, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Contractnummer wordt afgebroken tot ['
|| v_cnt_contract_nummer_intern
|| ']'
);
END IF;
--
v_errormsg := 'Leverancier ongeldig';
v_prs_bedrijf_naam := TRIM (v_prs_bedrijf_naam);
IF LENGTH (v_prs_bedrijf_naam) > 60
THEN
v_prs_bedrijf_naam := SUBSTR (v_prs_bedrijf_naam, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Leverancier wordt afgebroken tot ['
|| v_prs_bedrijf_naam
|| ']'
);
END IF;
--
v_errormsg := 'Soort controle ongeldig';
v_ins_srtcontrole_oms := TRIM (v_ins_srtcontrole_oms);
IF LENGTH (v_ins_srtcontrole_oms) > 60
THEN
v_ins_srtcontrole_oms := SUBSTR (v_ins_srtcontrole_oms, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Soort controle wordt afgebroken tot ['
|| v_ins_srtcontrole_oms
|| ']'
);
END IF;
--
v_errormsg := 'Controledatum ongeldig';
v_ins_controle_datum := TRIM (v_ins_controle_datum);
v_ins_controle_datum_d := NULL;
IF (v_ins_controle_datum IS NOT NULL)
THEN
IF (fac.safe_to_date (v_ins_controle_datum, 'dd-mm-yyyy') IS NULL)
THEN
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Controledatum wordt genegeerd');
ELSE
v_ins_controle_datum_d :=
fac.safe_to_date (v_ins_controle_datum, 'dd-mm-yyyy');
END IF;
END IF;
--
v_errormsg := 'Controleopmerking ongeldig';
v_ins_controle_opm := TRIM (v_ins_controle_opm);
IF LENGTH (v_ins_controle_opm) > 500
THEN
v_ins_controle_opm := SUBSTR (v_ins_controle_opm, 1, 500);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Controleopmerking wordt afgekapt op 500 posities'
);
END IF;
--
v_errormsg := 'Afgekeurd ongeldig';
v_afgekeurd := TRIM (v_afgekeurd);
IF LENGTH (v_afgekeurd) > 60
THEN
v_afgekeurd := SUBSTR (v_afgekeurd, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Afgekeurd wordt afgebroken tot [' || v_afgekeurd || ']'
);
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout bij wegschrijven importregel';
INSERT INTO conn_imp_keurobjecten (
alg_locatie_code,
ins_deel_omschrijving,
cnt_contract_nummer_intern,
prs_bedrijf_naam,
ins_srtcontrole_omschrijving,
ins_deelsrtcontrole_datum,
ins_deelsrtcontrole_opmerking,
afgekeurd
)
VALUES (v_alg_locatie_code,
v_ins_deel_omschrijving,
v_cnt_contract_nummer_intern,
v_prs_bedrijf_naam,
v_ins_srtcontrole_oms,
v_ins_controle_datum_d,
v_ins_controle_opm,
v_afgekeurd);
COMMIT;
v_count_import := v_count_import + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'');
COMMIT;
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (
p_import_key,
'S',
'keurobjecten/aantal ingelezen importregels: '
|| TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
'keurobjecten/aantal ongeldige niet ingelezen importregels: '
|| TO_CHAR (v_count_tot - v_count_import),
''
);
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Inleesproces keurobjecten afgebroken!');
END conn_import_keurobjecten;
/
/* Formatted on 14-3-2012 17:24:48 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE conn_update_keurobjecten (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
-- SUBPROC
PROCEDURE add_deelinspectie (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT obj.ins_deel_omschrijving,
obj.alg_locatie_code,
obj.cnt_contract_nummer_intern,
obj.ins_srtcontrole_omschrijving,
obj.ins_deelsrtcontrole_datum,
DECODE (
COALESCE (cb.prs_bedrijf_naam, obj.prs_bedrijf_naam),
NULL,
obj.ins_deelsrtcontrole_opmerking,
COALESCE (cb.prs_bedrijf_naam, obj.prs_bedrijf_naam)
|| ':'
|| CHR (13)
|| CHR (10)
|| COALESCE (obj.ins_deelsrtcontrole_opmerking, '-')
)
ins_deelsrtcontrole_opmerking,
DECODE (UPPER (obj.afgekeurd), 'JA', 129, 'NEE', 130, -1)
afgekeurd
FROM (SELECT ins_deel_omschrijving,
alg_locatie_code,
cnt_contract_nummer_intern, -- Per CONN#22359!
prs_bedrijf_naam,
ins_srtcontrole_omschrijving,
ins_deelsrtcontrole_datum,
ins_deelsrtcontrole_opmerking,
afgekeurd
FROM conn_imp_keurobjecten) obj
LEFT JOIN
(SELECT c.cnt_contract_nummer_intern,
b.prs_bedrijf_naam,
c.cnt_contract_key
FROM cnt_contract c,
ins_tab_discipline td,
cnt_disc_params dp,
prs_bedrijf b
WHERE c.cnt_contract_verwijder IS NULL
AND c.ins_discipline_key =
td.ins_discipline_key
AND td.ins_discipline_verwijder IS NULL
AND td.ins_discipline_key =
dp.cnt_ins_discipline_key
AND dp.cnt_srtcontract_type = 3 -- Ondersteuning/Support
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key)
cb
ON obj.cnt_contract_nummer_intern =
cb.cnt_contract_nummer_intern;
v_errormsg VARCHAR2 (1024);
c_afgekeurd_srtkey NUMBER (10) := 1466;
v_locatie_key NUMBER (10);
v_deel_key NUMBER (10);
v_srtdeel_key NUMBER (10);
v_srtdeel_oms VARCHAR2 (100);
v_srtgroep_key NUMBER (10);
v_discipline_key NUMBER (10);
v_kenmerk_key NUMBER (10);
v_kenmerkdeel_key NUMBER (10);
v_srtcontrole_id VARCHAR2 (20);
v_controlemode_key NUMBER (10);
ccount NUMBER (10);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10);
v_count_cupdate NUMBER (10);
v_aanduiding VARCHAR (200);
BEGIN
v_count_tot := 0;
v_count_cupdate := 0;
v_aanduiding := '';
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
'['
|| rec.alg_locatie_code
|| '|'
|| rec.ins_deel_omschrijving
|| '|'
|| rec.cnt_contract_nummer_intern
|| '|'
|| rec.ins_srtcontrole_omschrijving
|| '] ';
v_errormsg :=
'Fout bij bepalen locatie [' || rec.alg_locatie_code || ']';
SELECT alg_locatie_key
INTO v_locatie_key
FROM alg_locatie
WHERE alg_locatie_verwijder IS NULL
AND UPPER (TRIM (alg_locatie_code)) =
UPPER (TRIM (rec.alg_locatie_code));
-- Ruimtegebonden objecten hebben een unieke ID binnen de locatie
v_errormsg := 'Fout bij bepalen INS-object';
SELECT d.ins_deel_key,
sd.ins_srtdeel_key,
sd.ins_srtdeel_omschrijving,
sg.ins_srtgroep_key,
sg.ins_discipline_key
INTO v_deel_key,
v_srtdeel_key,
v_srtdeel_oms,
v_srtgroep_key,
v_discipline_key
FROM ins_deel d, ins_srtdeel sd, ins_srtgroep sg
WHERE d.ins_deel_verwijder IS NULL
AND d.ins_deel_module = 'INS'
AND d.ins_deel_upper = UPPER (rec.ins_deel_omschrijving)
AND d.ins_alg_locatie_key = v_locatie_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key;
-- AFGEKEURD toevoegen of wijzigen!
IF rec.afgekeurd IS NOT NULL AND UPPER (rec.afgekeurd) != -1
THEN
v_errormsg := 'Fout bij bepalen afgekeurd-kenmerk';
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_afgekeurd_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key = v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken!
THEN
v_errormsg := 'Fout bij toevoegen afgekeurd-kenmerk';
INSERT INTO ins_kenmerk (ins_srtkenmerk_key,
ins_srtinstallatie_key,
ins_kenmerk_niveau,
ins_kenmerk_volgnummer)
VALUES (c_afgekeurd_srtkey,
v_srtdeel_key,
'S',
122)
RETURNING ins_kenmerk_key INTO v_kenmerk_key;
fac.imp_writelog (
p_import_key,
'I',
'INS-Objecten/afgekeurd-kenmerk toegevoegd voor: '
|| v_srtdeel_oms,
''
);
COMMIT;
ELSE
SELECT k.ins_kenmerk_key
INTO v_kenmerk_key
FROM ins_v_aanwezigkenmerk k
WHERE k.ins_srtkenmerk_key = c_afgekeurd_srtkey
AND ( (k.ins_srtinstallatie_key = v_srtdeel_key
AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = v_srtgroep_key
AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key =
v_discipline_key
AND k.ins_kenmerk_niveau = 'D'));
END IF;
v_errormsg := 'Fout bij bepalen huidige afgekeurd';
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
INTO ccount, v_kenmerkdeel_key
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = v_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen afgekeurd';
INSERT INTO ins_kenmerkdeel (
ins_deel_key,
ins_kenmerk_key,
ins_kenmerkdeel_waarde
)
VALUES (v_deel_key, v_kenmerk_key, rec.afgekeurd);
COMMIT;
ELSE
v_errormsg := 'Fout bij wijzigen afgekeurd';
UPDATE ins_kenmerkdeel
SET ins_kenmerkdeel_waarde = rec.afgekeurd
WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
COMMIT;
END IF;
END IF;
-- Toevoegen controle; gebruik [a] de meest specifieke soort en
-- [b] de minst recente mode!
v_errormsg := 'Fout bij bepalen soort controle';
SELECT MAX(sc.ins_srtcontrole_niveau
|| TO_CHAR (sc.ins_srtcontrole_key))
INTO v_srtcontrole_id
FROM ins_srtcontrole sc
WHERE UPPER (TRIM (sc.ins_srtcontrole_omschrijving)) =
UPPER (TRIM (rec.ins_srtcontrole_omschrijving))
AND ( (sc.ins_srtinstallatie_key = v_srtdeel_key
AND sc.ins_srtcontrole_niveau = 'S')
OR (sc.ins_srtinstallatie_key = v_srtgroep_key
AND sc.ins_srtcontrole_niveau = 'G')
OR (sc.ins_srtinstallatie_key = v_discipline_key
AND sc.ins_srtcontrole_niveau = 'D'));
IF rec.ins_deelsrtcontrole_datum IS NOT NULL
THEN
v_errormsg := 'Fout bij bepalen controle mode';
SELECT MIN (ins_controlemode_key)
INTO v_controlemode_key
FROM ins_controlemode;
v_errormsg := 'Fout bij toevoegen controle';
INSERT INTO ins_deelsrtcontrole (
ins_deel_key,
ins_srtcontrole_key,
ins_deelsrtcontrole_datum,
ins_controlemode_key,
ins_deelsrtcontrole_opmerking
)
VALUES (v_deel_key,
fac.safe_to_number (SUBSTR (v_srtcontrole_id, 2)),
rec.ins_deelsrtcontrole_datum,
v_controlemode_key,
rec.ins_deelsrtcontrole_opmerking);
COMMIT;
v_count_cupdate := v_count_cupdate + 1;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'');
COMMIT;
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'INS-Objecten/aantal ingelezen: ' || TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
'INS-Controles/aantal toegevoegd: ' || TO_CHAR (v_count_cupdate),
''
);
COMMIT;
END;
-- MAIN
BEGIN
add_deelinspectie (p_import_key);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
'Importproces keurobjecten afgebroken!');
END conn_update_keurobjecten;
/
/* Formatted on 9-7-2013 17:18:18 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW conn_v_locatiekenmerken
AS
SELECT fac.safe_to_number (SUBSTR (x.kenmerk_id, 4)) alg_kenmerk_key,
x.vnr,
kw.alg_onrgoed_key,
kw.waarde
FROM ( SELECT SUBSTR ('000' || TO_CHAR (k1.alg_kenmerk_volgnr), -3)
|| TO_CHAR (k1.alg_kenmerk_key)
kenmerk_id,
COUNT ( * ) vnr
FROM (SELECT *
FROM alg_kenmerk
WHERE alg_kenmerk_verwijder IS NULL
AND alg_kenmerk_niveau = 'L'
AND alg_kenmerk_kenmerktype IN
('C', 'D', 'N', 'R', 'S')) k1,
(SELECT *
FROM alg_kenmerk
WHERE alg_kenmerk_verwijder IS NULL
AND alg_kenmerk_niveau = 'L'
AND alg_kenmerk_kenmerktype IN
('C', 'D', 'N', 'R', 'S')) k2
WHERE SUBSTR ('000' || TO_CHAR (k1.alg_kenmerk_volgnr), -3)
|| TO_CHAR (k1.alg_kenmerk_key) >=
SUBSTR ('000' || TO_CHAR (k2.alg_kenmerk_volgnr),
-3)
|| TO_CHAR (k2.alg_kenmerk_key)
GROUP BY SUBSTR ('000' || TO_CHAR (k1.alg_kenmerk_volgnr), -3)
|| TO_CHAR (k1.alg_kenmerk_key)) x
LEFT JOIN
(SELECT ok.alg_onrgoed_key,
ok.alg_kenmerk_key,
DECODE (
k.alg_kenmerk_kenmerktype,
'R',
fac.getdomeinwaarde (k.fac_kenmerkdomein_key,
ok.alg_onrgoedkenmerk_waarde),
'S',
fac.getdomeinwaarde (k.fac_kenmerkdomein_key,
ok.alg_onrgoedkenmerk_waarde),
ok.alg_onrgoedkenmerk_waarde
)
waarde
FROM alg_kenmerk k, alg_v_aanwezigonrgoedkenmerk ok
WHERE k.alg_kenmerk_verwijder IS NULL
AND k.alg_kenmerk_niveau = 'L'
AND k.alg_kenmerk_kenmerktype IN
('C', 'D', 'N', 'R', 'S')
AND k.alg_kenmerk_key = ok.alg_kenmerk_key) kw
ON fac.safe_to_number (SUBSTR (x.kenmerk_id, 4)) =
kw.alg_kenmerk_key;
/* Formatted on 11-7-2013 16:06:26 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW conn_v_rap_onrgoed1_expimp
(
hide_f_result_order,
fclt_f_regio_omschrijving,
fclt_f_district_omschrijving,
fclt_f_locatiecode,
locatieomschrijving,
fclt_f_gebouwcode,
gebouwomschrijving,
fclt_f_gebouwfunctie,
contactpersoon,
telefoonnummer,
bezoekadres,
postcode1,
plaats1,
land1,
postadres,
postcode2,
plaats2,
land2,
kenmerk1,
kenmerk2,
kenmerk3,
kenmerk4,
kenmerk5,
kenmerk6,
kenmerk7,
kenmerk8,
kenmerk9,
kenmerk10
)
AS
SELECT 0,
'regio_omschrijving' regio_omschrijving,
'district_omschrijving' district_omschrijving,
'locatie_code' locatiecode,
'locatieomschrijving' locatieomschrijving,
'gebouwcode' gebouwcode,
'gebouwomschrijving' gebouwomschrijving,
'gebouwfunctie' gebouwfunctie,
'contactpersoon' contactpersoon,
'telefoonnummer' telefoonnummer,
'bezoekadres' bezoekadres,
'postcode1' postcode1,
'plaats1' plaats1,
'land1' land1,
'postadres' postadres,
'postcode2' postcode2,
'plaats2' plaats2,
'land2' land2,
TO_CHAR ( (SELECT MAX (alg_kenmerk_key)
FROM conn_v_locatiekenmerken
WHERE vnr = 1))
kenmerk1,
TO_CHAR ( (SELECT MAX (alg_kenmerk_key)
FROM conn_v_locatiekenmerken
WHERE vnr = 2))
kenmerk2,
TO_CHAR ( (SELECT MAX (alg_kenmerk_key)
FROM conn_v_locatiekenmerken
WHERE vnr = 3))
kenmerk3,
TO_CHAR ( (SELECT MAX (alg_kenmerk_key)
FROM conn_v_locatiekenmerken
WHERE vnr = 4))
kenmerk4,
TO_CHAR ( (SELECT MAX (alg_kenmerk_key)
FROM conn_v_locatiekenmerken
WHERE vnr = 5))
kenmerk5,
TO_CHAR ( (SELECT MAX (alg_kenmerk_key)
FROM conn_v_locatiekenmerken
WHERE vnr = 6))
kenmerk6,
TO_CHAR ( (SELECT MAX (alg_kenmerk_key)
FROM conn_v_locatiekenmerken
WHERE vnr = 7))
kenmerk7,
TO_CHAR ( (SELECT MAX (alg_kenmerk_key)
FROM conn_v_locatiekenmerken
WHERE vnr = 8))
kenmerk8,
TO_CHAR ( (SELECT MAX (alg_kenmerk_key)
FROM conn_v_locatiekenmerken
WHERE vnr = 9))
kenmerk9,
TO_CHAR ( (SELECT MAX (alg_kenmerk_key)
FROM conn_v_locatiekenmerken
WHERE vnr = 10))
kenmerk10
FROM DUAL
UNION ALL
SELECT 1,
x.alg_regio_omschrijving regio_omschrijving,
x.alg_district_omschrijving district_omschrijving,
x.alg_locatie_code locatiecode,
x.alg_locatie_omschrijving locatieomschrijving,
x.alg_gebouw_code gebouwcode,
x.alg_gebouw_naam gebouwomschrijving,
x.alg_srtgebouw_omschrijving gebouwfunctie,
x.alg_locatie_verantw contactpersoon,
x.alg_locatie_verantw_tel telefoonnummer,
x.alg_locatie_adres bezoekadres,
x.alg_locatie_postcode postcode1,
x.alg_locatie_plaats plaats1,
x.alg_locatie_land land1,
x.alg_locatie_post_adres postadres,
x.alg_locatie_post_postcode postcode2,
x.alg_locatie_post_plaats plaats2,
x.alg_locatie_post_land land2,
k1.waarde kenmerk1,
k2.waarde kenmerk2,
k3.waarde kenmerk3,
k4.waarde kenmerk4,
k5.waarde kenmerk5,
k6.waarde kenmerk6,
k7.waarde kenmerk7,
k8.waarde kenmerk8,
k9.waarde kenmerk9,
k10.waarde kenmerk10
FROM (SELECT l.alg_locatie_key,
r.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
g.alg_gebouw_code,
g.alg_gebouw_naam,
sg.alg_srtgebouw_omschrijving,
l.alg_locatie_verantw,
l.alg_locatie_verantw_tel,
l.alg_locatie_adres,
l.alg_locatie_postcode,
l.alg_locatie_plaats,
l.alg_locatie_land,
l.alg_locatie_post_adres,
l.alg_locatie_post_postcode,
l.alg_locatie_post_plaats,
l.alg_locatie_post_land
FROM alg_v_aanwezigregio r,
alg_v_aanwezigdistrict d,
alg_v_aanweziglocatie l,
alg_v_aanweziggebouw g,
alg_v_aanwezigsrtgebouw sg
WHERE r.alg_regio_key =
d.alg_regio_key
AND d.alg_district_key =
l.alg_district_key
AND l.alg_locatie_key =
g.alg_locatie_key
AND g.alg_srtgebouw_key =
sg.alg_srtgebouw_key(+))
x
LEFT JOIN
conn_v_locatiekenmerken k1
ON x.alg_locatie_key =
k1.alg_onrgoed_key
AND k1.vnr = 1
LEFT JOIN
conn_v_locatiekenmerken k2
ON x.alg_locatie_key = k2.alg_onrgoed_key
AND k2.vnr = 2
LEFT JOIN
conn_v_locatiekenmerken k3
ON x.alg_locatie_key = k3.alg_onrgoed_key
AND k3.vnr = 3
LEFT JOIN
conn_v_locatiekenmerken k4
ON x.alg_locatie_key = k4.alg_onrgoed_key
AND k4.vnr = 4
LEFT JOIN
conn_v_locatiekenmerken k5
ON x.alg_locatie_key = k5.alg_onrgoed_key
AND k5.vnr = 5
LEFT JOIN
conn_v_locatiekenmerken k6
ON x.alg_locatie_key = k6.alg_onrgoed_key
AND k6.vnr = 6
LEFT JOIN
conn_v_locatiekenmerken k7
ON x.alg_locatie_key = k7.alg_onrgoed_key AND k7.vnr = 7
LEFT JOIN
conn_v_locatiekenmerken k8
ON x.alg_locatie_key = k8.alg_onrgoed_key AND k8.vnr = 8
LEFT JOIN
conn_v_locatiekenmerken k9
ON x.alg_locatie_key = k9.alg_onrgoed_key AND k9.vnr = 9
LEFT JOIN
conn_v_locatiekenmerken k10
ON x.alg_locatie_key = k10.alg_onrgoed_key AND k10.vnr = 10;
/* Formatted on 9-7-2013 10:22:36 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE conn_import_onrgoed1 (p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count_tot NUMBER (10);
v_count_imp NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR2 (200);
v_alg_kenmerk_key1 VARCHAR2 (255);
v_alg_kenmerk_key2 VARCHAR2 (255);
v_alg_kenmerk_key3 VARCHAR2 (255);
v_alg_kenmerk_key4 VARCHAR2 (255);
v_alg_kenmerk_key5 VARCHAR2 (255);
v_alg_kenmerk_key6 VARCHAR2 (255);
v_alg_kenmerk_key7 VARCHAR2 (255);
v_alg_kenmerk_key8 VARCHAR2 (255);
v_alg_kenmerk_key9 VARCHAR2 (255);
v_alg_kenmerk_key10 VARCHAR2 (255);
-- De importvelden:
v_regio_omschrijving VARCHAR2 (255); -- 30
v_district_omschrijving VARCHAR2 (255); -- 30
v_locatie_code VARCHAR2 (255); -- 10
v_locatie_omschrijving VARCHAR2 (255); -- 30
v_gebouw_code VARCHAR2 (255); -- 10
v_gebouw_naam VARCHAR2 (255); -- 30
v_srtgebouw_omschrijving VARCHAR2 (255); -- 30
v_locatie_verantw VARCHAR2 (255); -- 30
v_locatie_verantw_tel VARCHAR2 (255); -- 15
v_locatie_adres VARCHAR2 (255); -- 35
v_locatie_postcode VARCHAR2 (255); -- 12
v_locatie_plaats VARCHAR2 (255); -- 30
v_locatie_land VARCHAR2 (255); -- 30
v_locatie_post_adres VARCHAR2 (255); -- 35
v_locatie_post_postcode VARCHAR2 (255); -- 12
v_locatie_post_plaats VARCHAR2 (255); -- 30
v_locatie_post_land VARCHAR2 (255); -- 30
v_alg_kenmerkwaarde1 VARCHAR2 (255);
v_alg_kenmerkwaarde2 VARCHAR2 (255);
v_alg_kenmerkwaarde3 VARCHAR2 (255);
v_alg_kenmerkwaarde4 VARCHAR2 (255);
v_alg_kenmerkwaarde5 VARCHAR2 (255);
v_alg_kenmerkwaarde6 VARCHAR2 (255);
v_alg_kenmerkwaarde7 VARCHAR2 (255);
v_alg_kenmerkwaarde8 VARCHAR2 (255);
v_alg_kenmerkwaarde9 VARCHAR2 (255);
v_alg_kenmerkwaarde10 VARCHAR2 (255);
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
-- Controleer tijdens import-fase alleen op (uniek) bestaan van kenmerk (of
-- deze is gedefinieerd voor gebouw/locatie, volgt tijdens de update-fase)!
FUNCTION bepaal_kenmerk_key (ok IN VARCHAR)
RETURN NUMBER
IS
v_kenmerk_key NUMBER;
BEGIN
IF fac.safe_to_number (ok) IS NULL
THEN -- Kenmerkwaarde is alfanumeriek (dus omschrijving)!
SELECT alg_kenmerk_key
INTO v_kenmerk_key
FROM alg_kenmerk
WHERE alg_kenmerk_verwijder IS NULL
AND alg_kenmerk_niveau IN ('L', 'G')
AND alg_kenmerk_upper = UPPER (ok)
AND alg_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S');
ELSE -- Kenmerkwaarde is numeriek (dus key)!
SELECT alg_kenmerk_key
INTO v_kenmerk_key
FROM alg_kenmerk
WHERE alg_kenmerk_verwijder IS NULL
AND alg_kenmerk_niveau IN ('L', 'G')
AND alg_kenmerk_key = fac.safe_to_number (ok)
AND alg_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S');
END IF;
RETURN v_kenmerk_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
IF ok IS NULL OR UPPER (ok) LIKE 'KENMERK%'
THEN
RETURN NULL;
ELSE
fac.imp_writelog (p_import_key,
'W',
'Fout bij bepalen kenmerk [' || ok || ']',
'Bestaat niet of type ongeldig');
COMMIT;
RETURN NULL;
END IF;
WHEN OTHERS
THEN
fac.imp_writelog (p_import_key,
'W',
'Fout bij bepalen kenmerk [' || ok || ']',
'Kan kenmerk niet 1-duidig bepalen');
COMMIT;
RETURN NULL;
END;
BEGIN
-- Eerst opruiming
DELETE FROM conn_imp_onrgoed1;
COMMIT;
v_count_tot := 0;
v_count_imp := 0;
header_is_valid := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_errormsg := 'Fout FETCH importregel';
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout bij opvragen importregel';
v_aanduiding := '';
v_ongeldig := 0;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_regio_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_district_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_locatie_code);
fac.imp_getfield (v_newline, c_delim, v_locatie_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_gebouw_code);
fac.imp_getfield (v_newline, c_delim, v_gebouw_naam);
fac.imp_getfield (v_newline, c_delim, v_srtgebouw_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_locatie_verantw);
fac.imp_getfield (v_newline, c_delim, v_locatie_verantw_tel);
fac.imp_getfield (v_newline, c_delim, v_locatie_adres);
fac.imp_getfield (v_newline, c_delim, v_locatie_postcode);
fac.imp_getfield (v_newline, c_delim, v_locatie_plaats);
fac.imp_getfield (v_newline, c_delim, v_locatie_land);
fac.imp_getfield (v_newline, c_delim, v_locatie_post_adres);
fac.imp_getfield (v_newline, c_delim, v_locatie_post_postcode);
fac.imp_getfield (v_newline, c_delim, v_locatie_post_plaats);
fac.imp_getfield (v_newline, c_delim, v_locatie_post_land);
fac.imp_getfield (v_newline, c_delim, v_alg_kenmerkwaarde1);
fac.imp_getfield (v_newline, c_delim, v_alg_kenmerkwaarde2);
fac.imp_getfield (v_newline, c_delim, v_alg_kenmerkwaarde3);
fac.imp_getfield (v_newline, c_delim, v_alg_kenmerkwaarde4);
fac.imp_getfield (v_newline, c_delim, v_alg_kenmerkwaarde5);
fac.imp_getfield (v_newline, c_delim, v_alg_kenmerkwaarde6);
fac.imp_getfield (v_newline, c_delim, v_alg_kenmerkwaarde7);
fac.imp_getfield (v_newline, c_delim, v_alg_kenmerkwaarde8);
fac.imp_getfield (v_newline, c_delim, v_alg_kenmerkwaarde9);
fac.imp_getfield (v_newline, c_delim, v_alg_kenmerkwaarde10);
v_aanduiding := '[' || v_locatie_code || '|' || v_gebouw_code || '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij alle NIET-kenmerk kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (v_regio_omschrijving) LIKE 'REGIO%'
AND UPPER (v_district_omschrijving) LIKE 'DISTRICT%'
AND UPPER (v_locatie_code) = 'LOCATIECODE'
AND UPPER (v_gebouw_code) = 'GEBOUWCODE'
AND UPPER (v_locatie_adres) = 'BEZOEKADRES'
AND UPPER (v_locatie_post_adres) = 'POSTADRES'
AND UPPER (v_locatie_post_land) LIKE 'LAND%'
THEN
v_alg_kenmerk_key1 := bepaal_kenmerk_key (v_alg_kenmerkwaarde1);
v_alg_kenmerk_key2 := bepaal_kenmerk_key (v_alg_kenmerkwaarde2);
v_alg_kenmerk_key3 := bepaal_kenmerk_key (v_alg_kenmerkwaarde3);
v_alg_kenmerk_key4 := bepaal_kenmerk_key (v_alg_kenmerkwaarde4);
v_alg_kenmerk_key5 := bepaal_kenmerk_key (v_alg_kenmerkwaarde5);
v_alg_kenmerk_key6 := bepaal_kenmerk_key (v_alg_kenmerkwaarde6);
v_alg_kenmerk_key7 := bepaal_kenmerk_key (v_alg_kenmerkwaarde7);
v_alg_kenmerk_key8 := bepaal_kenmerk_key (v_alg_kenmerkwaarde8);
v_alg_kenmerk_key9 := bepaal_kenmerk_key (v_alg_kenmerkwaarde9);
v_alg_kenmerk_key10 :=
bepaal_kenmerk_key (v_alg_kenmerkwaarde10);
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Regio-omschrijving leeg of te lang';
v_regio_omschrijving := TRIM (v_regio_omschrijving);
IF v_regio_omschrijving IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regel overgeslagen');
ELSIF LENGTH (v_regio_omschrijving) > 30
THEN
v_regio_omschrijving := SUBSTR (v_regio_omschrijving, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regio-omschrijving afgebroken tot ['
|| v_regio_omschrijving
|| ']'
);
END IF;
--
v_errormsg := 'District-omschrijving leeg of te lang';
v_district_omschrijving := TRIM (v_district_omschrijving);
IF v_district_omschrijving IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regel overgeslagen');
ELSIF LENGTH (v_district_omschrijving) > 30
THEN
v_district_omschrijving :=
SUBSTR (v_district_omschrijving, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'District-omschrijving afgebroken tot ['
|| v_district_omschrijving
|| ']'
);
END IF;
--
v_errormsg := 'Locatiecode leeg of te lang';
v_locatie_code := TRIM (v_locatie_code);
IF v_locatie_code IS NULL OR LENGTH (v_locatie_code) > 10
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regel overgeslagen');
END IF;
--
v_errormsg := 'Locatie-omschrijving leeg of te lang';
v_locatie_omschrijving := TRIM (v_locatie_omschrijving);
IF v_locatie_omschrijving IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regel overgeslagen');
ELSIF LENGTH (v_locatie_omschrijving) > 30
THEN
v_locatie_omschrijving :=
SUBSTR (v_locatie_omschrijving, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Locatie-omschrijving afgebroken tot ['
|| v_locatie_omschrijving
|| ']'
);
END IF;
--
v_errormsg := 'Gebouwcode leeg of te lang';
v_gebouw_code := TRIM (v_gebouw_code);
IF v_gebouw_code IS NULL OR LENGTH (v_gebouw_code) > 12
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regel overgeslagen');
END IF;
--
v_errormsg := 'Gebouwnaam leeg of te lang';
v_gebouw_naam := TRIM (v_gebouw_naam);
IF v_gebouw_naam IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'Regel overgeslagen');
ELSIF LENGTH (v_gebouw_naam) > 30
THEN
v_gebouw_naam := SUBSTR (v_gebouw_naam, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Gebouwnaam afgebroken tot [' || v_gebouw_naam || ']'
);
END IF;
--
v_errormsg := 'Gebouwfunctie te lang';
v_srtgebouw_omschrijving := TRIM (v_srtgebouw_omschrijving);
IF LENGTH (v_srtgebouw_omschrijving) > 30
THEN
v_srtgebouw_omschrijving :=
SUBSTR (v_srtgebouw_omschrijving, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Gebouwfunctie afgebroken tot ['
|| v_srtgebouw_omschrijving
|| ']'
);
END IF;
--
v_errormsg := 'Naam te lang (contactpersoon)';
v_locatie_verantw := TRIM (v_locatie_verantw);
IF LENGTH (v_locatie_verantw) > 30
THEN
v_locatie_verantw := SUBSTR (v_locatie_verantw, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Naam afgebroken tot [' || v_locatie_verantw || ']'
);
END IF;
--
v_errormsg := 'Telefoonnummer te lang (contactpersoon)';
v_locatie_verantw_tel := TRIM (v_locatie_verantw_tel);
IF LENGTH (v_locatie_verantw_tel) > 15
THEN
v_locatie_verantw_tel := SUBSTR (v_locatie_verantw_tel, 1, 15);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Telefoonnummer afgebroken tot ['
|| v_locatie_verantw_tel
|| ']'
);
END IF;
--
v_errormsg := 'Adres te lang (bezoekadres)';
v_locatie_adres := TRIM (v_locatie_adres);
IF LENGTH (v_locatie_adres) > 35
THEN
v_locatie_adres := SUBSTR (v_locatie_adres, 1, 35);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Adres afgebroken tot ]' || v_locatie_adres || ']'
);
END IF;
--
v_errormsg := 'Postcode te lang (bezoekadres)';
v_locatie_postcode := TRIM (v_locatie_postcode);
IF LENGTH (v_locatie_postcode) > 12
THEN
v_locatie_postcode := SUBSTR (v_locatie_postcode, 1, 12);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Postcode afgebroken tot [' || v_locatie_postcode || ']'
);
END IF;
--
v_errormsg := 'Plaatsnaam te lang (bezoekadres)';
v_locatie_plaats := TRIM (v_locatie_plaats);
IF LENGTH (v_locatie_plaats) > 30
THEN
v_locatie_plaats := SUBSTR (v_locatie_plaats, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Plaatsnaam afgebroken tot [' || v_locatie_plaats || ']'
);
END IF;
--
v_errormsg := 'Landnaam te lang (bezoekadres)';
v_locatie_land := TRIM (v_locatie_land);
IF LENGTH (v_locatie_land) > 30
THEN
v_locatie_land := SUBSTR (v_locatie_land, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Landnaam afgebroken tot [' || v_locatie_land || ']'
);
END IF;
--
v_errormsg := 'Adres te lang (postadres)';
v_locatie_post_adres := TRIM (v_locatie_post_adres);
IF LENGTH (v_locatie_post_adres) > 35
THEN
v_locatie_post_adres := SUBSTR (v_locatie_post_adres, 1, 35);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Adres afgebroken tot [' || v_locatie_post_adres || ']'
);
END IF;
--
v_errormsg := 'Postcode te lang (postadres)';
v_locatie_post_postcode := TRIM (v_locatie_post_postcode);
IF LENGTH (v_locatie_post_postcode) > 12
THEN
v_locatie_post_postcode :=
SUBSTR (v_locatie_post_postcode, 1, 12);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Postcode afgebroken tot ['
|| v_locatie_post_postcode
|| ']'
);
END IF;
--
v_errormsg := 'Plaatsnaam te lang (postadres)';
v_locatie_post_plaats := TRIM (v_locatie_post_plaats);
IF LENGTH (v_locatie_post_plaats) > 30
THEN
v_locatie_post_plaats := SUBSTR (v_locatie_post_plaats, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Plaatsnaam afgebroken tot ['
|| v_locatie_post_plaats
|| ']'
);
END IF;
--
v_errormsg := 'Landnaam te lang (postadres)';
v_locatie_post_land := TRIM (v_locatie_post_land);
IF LENGTH (v_locatie_post_land) > 30
THEN
v_locatie_post_land := SUBSTR (v_locatie_post_land, 1, 30);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || v_errormsg,
'Landnaam afgebroken tot [' || v_locatie_post_land || ']'
);
END IF;
-- De rest alleen ff trimmen.
v_alg_kenmerkwaarde1 := TRIM (v_alg_kenmerkwaarde1);
v_alg_kenmerkwaarde2 := TRIM (v_alg_kenmerkwaarde2);
v_alg_kenmerkwaarde3 := TRIM (v_alg_kenmerkwaarde3);
v_alg_kenmerkwaarde4 := TRIM (v_alg_kenmerkwaarde4);
v_alg_kenmerkwaarde5 := TRIM (v_alg_kenmerkwaarde5);
v_alg_kenmerkwaarde6 := TRIM (v_alg_kenmerkwaarde6);
v_alg_kenmerkwaarde7 := TRIM (v_alg_kenmerkwaarde7);
v_alg_kenmerkwaarde8 := TRIM (v_alg_kenmerkwaarde8);
v_alg_kenmerkwaarde9 := TRIM (v_alg_kenmerkwaarde9);
v_alg_kenmerkwaarde10 := TRIM (v_alg_kenmerkwaarde10);
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout bij wegschrijven importregel';
INSERT INTO conn_imp_onrgoed1 (
alg_regio_omschrijving,
alg_district_omschrijving,
alg_locatie_code,
alg_locatie_omschrijving,
alg_gebouw_code,
alg_gebouw_naam,
alg_srtgebouw_omschrijving,
alg_locatie_verantw,
alg_locatie_verantw_tel,
alg_locatie_adres,
alg_locatie_postcode,
alg_locatie_plaats,
alg_locatie_land,
alg_locatie_post_adres,
alg_locatie_post_postcode,
alg_locatie_post_plaats,
alg_locatie_post_land,
alg_kenmerkwaarde1,
alg_kenmerkwaarde2,
alg_kenmerkwaarde3,
alg_kenmerkwaarde4,
alg_kenmerkwaarde5,
alg_kenmerkwaarde6,
alg_kenmerkwaarde7,
alg_kenmerkwaarde8,
alg_kenmerkwaarde9,
alg_kenmerkwaarde10
)
VALUES (
v_regio_omschrijving,
v_district_omschrijving,
v_locatie_code,
v_locatie_omschrijving,
v_gebouw_code,
v_gebouw_naam,
v_srtgebouw_omschrijving,
v_locatie_verantw,
v_locatie_verantw_tel,
v_locatie_adres,
v_locatie_postcode,
v_locatie_plaats,
v_locatie_land,
v_locatie_post_adres,
v_locatie_post_postcode,
v_locatie_post_plaats,
v_locatie_post_land,
DECODE (
v_alg_kenmerk_key1,
NULL,
v_alg_kenmerkwaarde1,
TO_CHAR (v_alg_kenmerk_key1)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde1, 1, 200)
),
DECODE (
v_alg_kenmerk_key2,
NULL,
v_alg_kenmerkwaarde2,
TO_CHAR (v_alg_kenmerk_key2)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde2, 1, 200)
),
DECODE (
v_alg_kenmerk_key3,
NULL,
v_alg_kenmerkwaarde3,
TO_CHAR (v_alg_kenmerk_key3)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde3, 1, 200)
),
DECODE (
v_alg_kenmerk_key4,
NULL,
v_alg_kenmerkwaarde4,
TO_CHAR (v_alg_kenmerk_key4)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde4, 1, 200)
),
DECODE (
v_alg_kenmerk_key5,
NULL,
v_alg_kenmerkwaarde5,
TO_CHAR (v_alg_kenmerk_key5)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde5, 1, 200)
),
DECODE (
v_alg_kenmerk_key6,
NULL,
v_alg_kenmerkwaarde6,
TO_CHAR (v_alg_kenmerk_key6)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde6, 1, 200)
),
DECODE (
v_alg_kenmerk_key7,
NULL,
v_alg_kenmerkwaarde7,
TO_CHAR (v_alg_kenmerk_key7)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde7, 1, 200)
),
DECODE (
v_alg_kenmerk_key8,
NULL,
v_alg_kenmerkwaarde8,
TO_CHAR (v_alg_kenmerk_key8)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde8, 1, 200)
),
DECODE (
v_alg_kenmerk_key9,
NULL,
v_alg_kenmerkwaarde9,
TO_CHAR (v_alg_kenmerk_key9)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde9, 1, 200)
),
DECODE (
v_alg_kenmerk_key10,
NULL,
v_alg_kenmerkwaarde10,
TO_CHAR (v_alg_kenmerk_key10)
|| '='
|| SUBSTR (v_alg_kenmerkwaarde10, 1, 200)
)
);
COMMIT;
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,
'W',
v_aanduiding || v_errormsg,
'');
COMMIT;
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (
p_import_key,
'S',
'Locatie-Gebouw/#ingelezen regels: ' || TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_import_key,
'S',
'Locatie-Gebouw/#ongeldige niet ingelezen importregels: '
|| 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 locaties/gebouwen afgebroken!');
END conn_import_onrgoed1;
/
/* Formatted on 9-7-2013 11:48:12 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE conn_update_onrgoed1 (p_import_key IN NUMBER)
IS
v_errormsg VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_count_tot NUMBER (10);
v_count_new NUMBER (10);
v_count_upd NUMBER (10);
v_count NUMBER (10);
v_regio_key NUMBER (10);
v_district_key NUMBER (10);
v_locatie_key NUMBER (10);
v_srtgebouw_key NUMBER (10);
v_gebouw_key NUMBER (10);
v_srtnoti_code VARCHAR2 (6);
CURSOR cRegio -- Regioomschrijving uniek!
IS
SELECT MIN (alg_regio_omschrijving) alg_regio_omschrijving
FROM conn_imp_onrgoed1
GROUP BY UPPER (alg_regio_omschrijving)
ORDER BY 1;
CURSOR cDistrict -- Districtomschrijving uniek binnen regio!
IS
SELECT MIN (alg_regio_omschrijving) alg_regio_omschrijving,
MIN (alg_district_omschrijving) alg_district_omschrijving
FROM conn_imp_onrgoed1
GROUP BY UPPER (alg_regio_omschrijving),
UPPER (alg_district_omschrijving)
ORDER BY 1, 2;
CURSOR cLocatie -- Locatiecode uniek (omschrijving niet)!
IS
SELECT MIN (alg_regio_omschrijving) alg_regio_omschrijving,
MIN (alg_district_omschrijving) alg_district_omschrijving,
MIN (alg_locatie_code) alg_locatie_code,
MIN (alg_locatie_omschrijving) alg_locatie_omschrijving,
MIN (alg_locatie_verantw) alg_locatie_verantw,
MIN (alg_locatie_verantw_tel) alg_locatie_verantw_tel,
MIN (alg_locatie_adres) alg_locatie_adres,
MIN (alg_locatie_postcode) alg_locatie_postcode,
MIN (alg_locatie_plaats) alg_locatie_plaats,
MIN (alg_locatie_land) alg_locatie_land,
MIN (alg_locatie_post_adres) alg_locatie_post_adres,
MIN (alg_locatie_post_postcode) alg_locatie_post_postcode,
MIN (alg_locatie_post_plaats) alg_locatie_post_plaats,
MIN (alg_locatie_post_land) alg_locatie_post_land,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde1, 1, INSTR (alg_kenmerkwaarde1, '=') - 1))) kenmerk_key1,
MIN(SUBSTR (alg_kenmerkwaarde1, INSTR (alg_kenmerkwaarde1, '=') + 1)) waarde1,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde2, 1, INSTR (alg_kenmerkwaarde2, '=') - 1))) kenmerk_key2,
MIN(SUBSTR (alg_kenmerkwaarde2, INSTR (alg_kenmerkwaarde2, '=') + 1)) waarde2,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde3, 1, INSTR (alg_kenmerkwaarde3, '=') - 1))) kenmerk_key3,
MIN(SUBSTR (alg_kenmerkwaarde3, INSTR (alg_kenmerkwaarde3, '=') + 1)) waarde3,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde4, 1, INSTR (alg_kenmerkwaarde4, '=') - 1))) kenmerk_key4,
MIN(SUBSTR (alg_kenmerkwaarde4, INSTR (alg_kenmerkwaarde4, '=') + 1)) waarde4,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde5, 1, INSTR (alg_kenmerkwaarde5, '=') - 1))) kenmerk_key5,
MIN(SUBSTR (alg_kenmerkwaarde5, INSTR (alg_kenmerkwaarde5, '=') + 1)) waarde5,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde6, 1, INSTR (alg_kenmerkwaarde6, '=') - 1))) kenmerk_key6,
MIN(SUBSTR (alg_kenmerkwaarde6, INSTR (alg_kenmerkwaarde6, '=') + 1)) waarde6,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde7, 1, INSTR (alg_kenmerkwaarde7, '=') - 1))) kenmerk_key7,
MIN(SUBSTR (alg_kenmerkwaarde7, INSTR (alg_kenmerkwaarde7, '=') + 1)) waarde7,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde8, 1, INSTR (alg_kenmerkwaarde8, '=') - 1))) kenmerk_key8,
MIN(SUBSTR (alg_kenmerkwaarde8, INSTR (alg_kenmerkwaarde8, '=') + 1)) waarde8,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde9, 1, INSTR (alg_kenmerkwaarde9, '=') - 1))) kenmerk_key9,
MIN(SUBSTR (alg_kenmerkwaarde9, INSTR (alg_kenmerkwaarde9, '=') + 1)) waarde9,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde10, 1, INSTR (alg_kenmerkwaarde10, '=') - 1))) kenmerk_key10,
MIN(SUBSTR (alg_kenmerkwaarde10, INSTR (alg_kenmerkwaarde10, '=') + 1)) waarde10
FROM conn_imp_onrgoed1
GROUP BY UPPER (alg_regio_omschrijving),
UPPER (alg_district_omschrijving),
UPPER (alg_locatie_code)
ORDER BY 1, 2, 3;
CURSOR cSrtGebouw -- Gebouwfunctie uniek!
IS
SELECT MIN (alg_srtgebouw_omschrijving) alg_srtgebouw_omschrijving
FROM conn_imp_onrgoed1
WHERE alg_srtgebouw_omschrijving IS NOT NULL
GROUP BY UPPER (alg_srtgebouw_omschrijving)
ORDER BY 1;
CURSOR cGebouw -- Gebouwcode uniek binnen locatie (naam niet)!
IS
SELECT MIN (alg_regio_omschrijving) alg_regio_omschrijving,
MIN (alg_district_omschrijving) alg_district_omschrijving,
MIN (alg_locatie_code) alg_locatie_code,
MIN (alg_gebouw_code) alg_gebouw_code,
MIN (alg_gebouw_naam) alg_gebouw_naam,
MIN (alg_srtgebouw_omschrijving) alg_srtgebouw_omschrijving,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde1, 1, INSTR (alg_kenmerkwaarde1, '=') - 1))) kenmerk_key1,
MIN(SUBSTR (alg_kenmerkwaarde1, INSTR (alg_kenmerkwaarde1, '=') + 1)) waarde1,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde2, 1, INSTR (alg_kenmerkwaarde2, '=') - 1))) kenmerk_key2,
MIN(SUBSTR (alg_kenmerkwaarde2, INSTR (alg_kenmerkwaarde2, '=') + 1)) waarde2,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde3, 1, INSTR (alg_kenmerkwaarde3, '=') - 1))) kenmerk_key3,
MIN(SUBSTR (alg_kenmerkwaarde3, INSTR (alg_kenmerkwaarde3, '=') + 1)) waarde3,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde4, 1, INSTR (alg_kenmerkwaarde4, '=') - 1))) kenmerk_key4,
MIN(SUBSTR (alg_kenmerkwaarde4, INSTR (alg_kenmerkwaarde4, '=') + 1)) waarde4,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde5, 1, INSTR (alg_kenmerkwaarde5, '=') - 1))) kenmerk_key5,
MIN(SUBSTR (alg_kenmerkwaarde5, INSTR (alg_kenmerkwaarde5, '=') + 1)) waarde5,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde6, 1, INSTR (alg_kenmerkwaarde6, '=') - 1))) kenmerk_key6,
MIN(SUBSTR (alg_kenmerkwaarde6, INSTR (alg_kenmerkwaarde6, '=') + 1)) waarde6,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde7, 1, INSTR (alg_kenmerkwaarde7, '=') - 1))) kenmerk_key7,
MIN(SUBSTR (alg_kenmerkwaarde7, INSTR (alg_kenmerkwaarde7, '=') + 1)) waarde7,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde8, 1, INSTR (alg_kenmerkwaarde8, '=') - 1))) kenmerk_key8,
MIN(SUBSTR (alg_kenmerkwaarde8, INSTR (alg_kenmerkwaarde8, '=') + 1)) waarde8,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde9, 1, INSTR (alg_kenmerkwaarde9, '=') - 1))) kenmerk_key9,
MIN(SUBSTR (alg_kenmerkwaarde9, INSTR (alg_kenmerkwaarde9, '=') + 1)) waarde9,
MIN(fac.safe_to_number(SUBSTR (alg_kenmerkwaarde10, 1, INSTR (alg_kenmerkwaarde10, '=') - 1))) kenmerk_key10,
MIN(SUBSTR (alg_kenmerkwaarde10, INSTR (alg_kenmerkwaarde10, '=') + 1)) waarde10
FROM conn_imp_onrgoed1
GROUP BY UPPER (alg_regio_omschrijving),
UPPER (alg_district_omschrijving),
UPPER (alg_locatie_code),
UPPER (alg_gebouw_code)
ORDER BY 1, 2, 3, 4;
-- SUBPROC
PROCEDURE upsert_algkenmerk (p_alg_key IN NUMBER,
p_alg_niv IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_waarde IN VARCHAR2)
AS
v_kenmerk_niveau VARCHAR2 (1);
v_kenmerk_type VARCHAR2 (1);
ccount NUMBER;
v_waarde VARCHAR2 (255);
v_objectnaam VARCHAR2 (30);
v_kolomnaam VARCHAR2 (30);
v_kolomtxt VARCHAR2 (30);
sql_stmt VARCHAR2 (1000);
v_onrgoedkenmerk_key NUMBER;
BEGIN
IF p_kenmerk_key IS NOT NULL AND p_waarde IS NOT NULL
THEN
v_errormsg := 'Fout bij bepalen kenmerk [' || p_kenmerk_key || ']';
SELECT alg_kenmerk_niveau, alg_kenmerk_kenmerktype
INTO v_kenmerk_niveau, v_kenmerk_type
FROM alg_kenmerk
WHERE alg_kenmerk_verwijder IS NULL
AND alg_kenmerk_key = p_kenmerk_key
AND alg_kenmerk_niveau IN ('L', 'G');
IF (v_kenmerk_niveau = p_alg_niv) -- Alleen op juiste niveau doen!
THEN
IF v_kenmerk_type IN ('R', 'S')
THEN
v_errormsg := 'Fout bij bepalen eigen tabel';
SELECT COUNT ( * )
INTO ccount
FROM alg_kenmerk k, fac_kenmerkdomein d
WHERE k.alg_kenmerk_key = p_kenmerk_key
AND k.alg_kenmerk_niveau = p_alg_niv
AND k.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
AND d.fac_usrtab_key IS NOT NULL;
v_errormsg :=
'Fout bij bepalen nieuwe waarde [' || p_waarde || ']';
IF ccount = 1
THEN -- Eigen tabel
SELECT TO_CHAR (ud.fac_usrdata_key)
INTO v_waarde
FROM alg_kenmerk k,
fac_kenmerkdomein d,
fac_v_aanwezigusrdata ud
WHERE k.alg_kenmerk_key = p_kenmerk_key
AND k.alg_kenmerk_niveau = p_alg_niv
AND k.fac_kenmerkdomein_key =
d.fac_kenmerkdomein_key
AND d.fac_usrtab_key = ud.fac_usrtab_key
AND UPPER (TRIM (ud.fac_usrdata_omschr)) =
UPPER (p_waarde);
ELSE -- FACILITOR view/tabel
SELECT d.fac_kenmerkdomein_objectnaam,
d.fac_kenmerkdomein_kolomnaam,
d.fac_kenmerkdomein_kolomtxt
INTO v_objectnaam, v_kolomnaam, v_kolomtxt
FROM alg_kenmerk k, fac_kenmerkdomein d
WHERE k.alg_kenmerk_key = p_kenmerk_key
AND k.alg_kenmerk_niveau = p_alg_niv
AND k.fac_kenmerkdomein_key =
d.fac_kenmerkdomein_key
AND d.fac_usrtab_key IS NULL;
sql_stmt :=
'SELECT MAX ('
|| v_kolomnaam
|| ') FROM '
|| v_objectnaam
|| ' WHERE UPPER (TRIM ('
|| v_kolomtxt
|| ')) = UPPER ('''
|| p_waarde
|| ''')';
EXECUTE IMMEDIATE sql_stmt INTO v_waarde;
END IF;
ELSE -- C(haracter)/D(ate)/N(umeric)
v_waarde := p_waarde;
END IF;
v_errormsg := 'Fout bij bepalen huidige waarde';
SELECT COUNT ( * ), MAX (alg_onrgoedkenmerk_key)
INTO ccount, v_onrgoedkenmerk_key
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_onrgoed_key = p_alg_key
AND alg_onrgoed_niveau = p_alg_niv
AND alg_kenmerk_key = p_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout bij toevoegen waarde [' || v_waarde || ']';
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
alg_onrgoed_niveau,
alg_kenmerk_key,
alg_onrgoedkenmerk_waarde)
VALUES (p_alg_key,
p_alg_niv,
p_kenmerk_key,
v_waarde);
ELSE
v_errormsg := 'Fout bij bijwerken waarde [' || v_waarde || ']';
UPDATE alg_onrgoedkenmerk
SET alg_onrgoedkenmerk_waarde = v_waarde
WHERE alg_onrgoedkenmerk_key = v_onrgoedkenmerk_key;
END IF;
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'upsert_algkenmerk');
END;
BEGIN
-- ***********
-- ***REGIO***
-- ***********
v_count_tot := 0;
v_count_new := 0;
FOR recRegio IN cRegio
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding := '[' || recRegio.alg_regio_omschrijving || '] ';
v_errormsg := 'Fout bij toevoegen regio';
SELECT COUNT ( * )
INTO v_count
FROM alg_v_aanwezigregio
WHERE TRIM (alg_regio_upper) =
UPPER (recRegio.alg_regio_omschrijving);
IF (v_count = 0)
THEN
INSERT INTO alg_regio (alg_regio_omschrijving)
VALUES (recRegio.alg_regio_omschrijving);
v_count_new := v_count_new + 1;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'');
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Regio/#ingelezen: ' || TO_CHAR (v_count_tot),
'');
fac.imp_writelog (p_import_key,
'S',
'Regio/#toegevoegd: ' || TO_CHAR (v_count_new),
'');
COMMIT;
-- **************
-- ***DISTRICT***
-- **************
v_count_tot := 0;
v_count_new := 0;
FOR recDistrict IN cDistrict
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
'['
|| recDistrict.alg_regio_omschrijving
|| '|'
|| recDistrict.alg_district_omschrijving
|| '] ';
v_errormsg := 'Fout bij bepalen regio';
SELECT alg_regio_key
INTO v_regio_key
FROM alg_v_aanwezigregio
WHERE alg_regio_upper =
UPPER (recDistrict.alg_regio_omschrijving);
v_errormsg := 'Fout bij toevoegen district';
SELECT COUNT ( * )
INTO v_count
FROM alg_v_aanwezigdistrict
WHERE alg_regio_key = v_regio_key
AND TRIM (alg_district_upper) =
UPPER (recDistrict.alg_district_omschrijving);
IF (v_count = 0)
THEN
INSERT INTO alg_district (
alg_regio_key,
alg_district_omschrijving
)
VALUES (v_regio_key, recDistrict.alg_district_omschrijving);
v_count_new := v_count_new + 1;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'');
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'District/#ingelezen: ' || TO_CHAR (v_count_tot),
'');
fac.imp_writelog (p_import_key,
'S',
'District/#toegevoegd: ' || TO_CHAR (v_count_new),
'');
COMMIT;
-- **************
-- ***LOCATIE****
-- **************
v_count_tot := 0;
v_count_new := 0;
v_count_upd := 0;
FOR recLocatie IN cLocatie
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
'['
|| recLocatie.alg_regio_omschrijving
|| '|'
|| recLocatie.alg_district_omschrijving
|| '|'
|| recLocatie.alg_locatie_code
|| '] ';
v_errormsg := 'Fout bij bepalen regio';
SELECT alg_regio_key
INTO v_regio_key
FROM alg_v_aanwezigregio
WHERE alg_regio_upper = UPPER (recLocatie.alg_regio_omschrijving);
v_errormsg := 'Fout bij bepalen district';
SELECT alg_district_key
INTO v_district_key
FROM alg_v_aanwezigdistrict
WHERE alg_regio_key = v_regio_key
AND TRIM (alg_district_upper) =
UPPER (recLocatie.alg_district_omschrijving);
v_errormsg := 'Fout bij toevoegen locatie';
SELECT COUNT ( * )
INTO v_count
FROM alg_v_aanweziglocatie
WHERE alg_district_key = v_district_key
AND UPPER (alg_locatie_code) =
UPPER (recLocatie.alg_locatie_code);
IF (v_count = 0)
THEN
INSERT INTO alg_locatie (alg_district_key,
alg_locatie_code,
alg_locatie_omschrijving,
alg_locatie_verantw,
alg_locatie_verantw_tel,
alg_locatie_adres,
alg_locatie_postcode,
alg_locatie_plaats,
alg_locatie_land,
alg_locatie_post_adres,
alg_locatie_post_postcode,
alg_locatie_post_plaats,
alg_locatie_post_land)
VALUES (v_district_key,
recLocatie.alg_locatie_code,
recLocatie.alg_locatie_omschrijving,
recLocatie.alg_locatie_verantw,
recLocatie.alg_locatie_verantw_tel,
recLocatie.alg_locatie_adres,
recLocatie.alg_locatie_postcode,
recLocatie.alg_locatie_plaats,
recLocatie.alg_locatie_land,
recLocatie.alg_locatie_post_adres,
recLocatie.alg_locatie_post_postcode,
recLocatie.alg_locatie_post_plaats,
recLocatie.alg_locatie_post_land)
RETURNING alg_locatie_key INTO v_locatie_key;
v_srtnoti_code := 'ALGLNE';
v_count_new := v_count_new + 1;
ELSE -- bijwerken object!
v_errormsg := 'Fout bij bepalen locatie';
SELECT alg_locatie_key
INTO v_locatie_key
FROM alg_v_aanweziglocatie
WHERE UPPER (TRIM (alg_locatie_code)) =
UPPER (recLocatie.alg_locatie_code);
v_srtnoti_code := 'ALGLUP';
v_count_upd := v_count_upd + 1;
END IF;
-- NULL-waarden resulteren NIET in het wissen van kenmerkvelden
-- (bijwerken kan wel, maar wissen dus niet)!
upsert_algkenmerk (v_locatie_key, 'L', recLocatie.kenmerk_key1, recLocatie.waarde1);
upsert_algkenmerk (v_locatie_key, 'L', recLocatie.kenmerk_key2, recLocatie.waarde2);
upsert_algkenmerk (v_locatie_key, 'L', recLocatie.kenmerk_key3, recLocatie.waarde3);
upsert_algkenmerk (v_locatie_key, 'L', recLocatie.kenmerk_key4, recLocatie.waarde4);
upsert_algkenmerk (v_locatie_key, 'L', recLocatie.kenmerk_key5, recLocatie.waarde5);
upsert_algkenmerk (v_locatie_key, 'L', recLocatie.kenmerk_key6, recLocatie.waarde6);
upsert_algkenmerk (v_locatie_key, 'L', recLocatie.kenmerk_key7, recLocatie.waarde7);
upsert_algkenmerk (v_locatie_key, 'L', recLocatie.kenmerk_key8, recLocatie.waarde8);
upsert_algkenmerk (v_locatie_key, 'L', recLocatie.kenmerk_key9, recLocatie.waarde9);
upsert_algkenmerk (v_locatie_key, 'L', recLocatie.kenmerk_key10, recLocatie.waarde10);
fac.trackaction (v_srtnoti_code, v_locatie_key, NULL, NULL, NULL);
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,
'W',
v_aanduiding || v_errormsg,
'');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Locatie/#ingelezen: ' || TO_CHAR (v_count_tot),
'');
fac.imp_writelog (p_import_key,
'S',
'Locatie/#toegevoegd: ' || TO_CHAR (v_count_new),
'');
fac.imp_writelog (p_import_key,
'S',
'Locatie/#bijgewerkt: ' || TO_CHAR (v_count_upd),
'');
COMMIT;
-- ********************
-- ***GEBOUWFUNCTIE****
-- ********************
v_count_tot := 0;
v_count_new := 0;
FOR recSrtGebouw IN cSrtGebouw
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
'[' || recSrtGebouw.alg_srtgebouw_omschrijving || '] ';
v_errormsg := 'Fout bij toevoegen gebouwfunctie';
SELECT COUNT ( * )
INTO v_count
FROM alg_v_aanwezigsrtgebouw
WHERE TRIM (alg_srtgebouw_upper) =
UPPER (recSrtGebouw.alg_srtgebouw_omschrijving);
IF (v_count = 0)
THEN
INSERT INTO alg_srtgebouw (alg_srtgebouw_omschrijving)
VALUES (recSrtGebouw.alg_srtgebouw_omschrijving);
v_count_new := v_count_new + 1;
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'');
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Gebouwfunctie/#ingelezen: ' || TO_CHAR (v_count_tot),
'');
fac.imp_writelog (p_import_key,
'S',
'Gebouwfunctie/#toegevoegd: ' || TO_CHAR (v_count_new),
'');
COMMIT;
-- ************
-- ***GEBOUW***
-- ************
v_count_tot := 0;
v_count_new := 0;
v_count_upd := 0;
FOR recGebouw IN cGebouw
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
'['
|| recGebouw.alg_regio_omschrijving
|| '|'
|| recGebouw.alg_district_omschrijving
|| '|'
|| recGebouw.alg_locatie_code
|| '|'
|| recGebouw.alg_gebouw_code
|| '] ';
v_errormsg := 'Fout bij bepalen regio';
SELECT alg_regio_key
INTO v_regio_key
FROM alg_v_aanwezigregio
WHERE alg_regio_upper = UPPER (recGebouw.alg_regio_omschrijving);
v_errormsg := 'Fout bij bepalen district';
SELECT alg_district_key
INTO v_district_key
FROM alg_v_aanwezigdistrict
WHERE alg_regio_key = v_regio_key
AND TRIM (alg_district_upper) =
UPPER (recGebouw.alg_district_omschrijving);
v_errormsg := 'Fout bij bepalen locatie';
SELECT alg_locatie_key
INTO v_locatie_key
FROM alg_v_aanweziglocatie
WHERE alg_district_key = v_district_key
AND UPPER (TRIM (alg_locatie_code)) =
UPPER (recGebouw.alg_locatie_code);
IF (recGebouw.alg_srtgebouw_omschrijving IS NOT NULL)
THEN
v_errormsg := 'Fout bij bepalen gebouwfunctie';
SELECT alg_srtgebouw_key
INTO v_srtgebouw_key
FROM alg_v_aanwezigsrtgebouw
WHERE TRIM (alg_srtgebouw_upper) =
UPPER (recGebouw.alg_srtgebouw_omschrijving);
END IF;
v_errormsg := 'Fout bij toevoegen gebouw';
SELECT COUNT ( * )
INTO v_count
FROM alg_v_aanweziggebouw
WHERE alg_locatie_key = v_locatie_key
AND UPPER (TRIM (alg_gebouw_code)) =
UPPER (recGebouw.alg_gebouw_code);
IF (v_count = 0)
THEN
INSERT INTO alg_gebouw (alg_locatie_key,
alg_gebouw_code,
alg_gebouw_naam,
alg_srtgebouw_key)
VALUES (v_locatie_key,
recGebouw.alg_gebouw_code,
recGebouw.alg_gebouw_naam,
v_srtgebouw_key)
RETURNING alg_gebouw_key INTO v_gebouw_key;
v_srtnoti_code := 'ALGGNE';
v_count_new := v_count_new + 1;
ELSE -- bijwerken object!
v_errormsg := 'Fout bij bepalen gebouw';
SELECT alg_gebouw_key
INTO v_gebouw_key
FROM alg_v_aanweziggebouw
WHERE alg_locatie_key = v_locatie_key
AND UPPER (TRIM (alg_gebouw_code)) =
UPPER (recGebouw.alg_gebouw_code);
v_srtnoti_code := 'ALGGUP';
v_count_upd := v_count_upd + 1;
END IF;
-- NULL-waarden resulteren NIET in het wissen van kenmerkvelden
-- (bijwerken kan wel, maar wissen dus niet)!
upsert_algkenmerk (v_gebouw_key, 'G', recGebouw.kenmerk_key1, recGebouw.waarde1);
upsert_algkenmerk (v_gebouw_key, 'G', recGebouw.kenmerk_key2, recGebouw.waarde2);
upsert_algkenmerk (v_gebouw_key, 'G', recGebouw.kenmerk_key3, recGebouw.waarde3);
upsert_algkenmerk (v_gebouw_key, 'G', recGebouw.kenmerk_key4, recGebouw.waarde4);
upsert_algkenmerk (v_gebouw_key, 'G', recGebouw.kenmerk_key5, recGebouw.waarde5);
upsert_algkenmerk (v_gebouw_key, 'G', recGebouw.kenmerk_key6, recGebouw.waarde6);
upsert_algkenmerk (v_gebouw_key, 'G', recGebouw.kenmerk_key7, recGebouw.waarde7);
upsert_algkenmerk (v_gebouw_key, 'G', recGebouw.kenmerk_key8, recGebouw.waarde8);
upsert_algkenmerk (v_gebouw_key, 'G', recGebouw.kenmerk_key9, recGebouw.waarde9);
upsert_algkenmerk (v_gebouw_key, 'G', recGebouw.kenmerk_key10, recGebouw.waarde10);
fac.trackaction (v_srtnoti_code, v_gebouw_key, NULL, NULL, NULL);
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,
'W',
v_aanduiding || v_errormsg,
'');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Gebouw/#ingelezen: ' || TO_CHAR (v_count_tot),
'');
fac.imp_writelog (p_import_key,
'S',
'Gebouw/#toegevoegd: ' || TO_CHAR (v_count_new),
'');
fac.imp_writelog (p_import_key,
'S',
'Gebouw/#bijgewerkt: ' || TO_CHAR (v_count_upd),
'');
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_errormsg,
'Importproces locaties/gebouwen afgebroken!');
END conn_update_onrgoed1;
/
-- BASW-export; eporteer de afgemelde opdrachten (sinds de laatste keer) en
-- markeer deze vervolgens als 'ORDAFM-doorgezet' (= hidden kenmerk)!
/* Formatted on 26-4-2012 11:32:24 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW conn_v_export_ordafm_xml (RESULT, result_order)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr
FROM fac_rapport
WHERE fac_rapport_node = SUBSTR ('ORDAFM_XML', 1, 12);
/* Formatted on 27-4-2012 15:12:24 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE conn_select_ordafm_xml (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Cursor loopt over een tijdelijke tabel met daarin opgebouwd alle gegevens
-- van de te exporteren afgemelde Uitvoering-opdrachten (opdrachttype = 5).
CURSOR c1
IS
SELECT opdr.mld_opdr_key,
opdr.mld_kenmerk_key,
opdr.mld_key || '/' || opdr.volgnr opdrachtnr,
TO_CHAR (ordafdm.fac_tracking_datum, 'dd-mm-yyyy hh24:mi:ss')
afmelddatum
FROM (SELECT o.mld_opdr_key,
k.mld_kenmerk_key,
o.mld_melding_key mld_key,
o.mld_opdr_bedrijfopdr_volgnr volgnr
FROM mld_opdr o, mld_kenmerk k
WHERE o.mld_statusopdr_key = 6 -- Afgemeld
AND o.mld_typeopdr_key = 5 -- Uitvoering
AND o.mld_typeopdr_key = k.mld_typeopdr_key
AND k.mld_srtkenmerk_key = 1111
AND NOT EXISTS
(SELECT 1
FROM mld_kenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key =
k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 1111))
opdr
LEFT JOIN
fac_tracking ordafdm
ON opdr.mld_opdr_key = ordafdm.fac_tracking_refkey
AND ordafdm.fac_srtnotificatie_key = 26
ORDER BY 1, 2;
c_ordafm2bw_srtkenmerk_key NUMBER (10) := 1111; -- Aangemaakt met CONN52!
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_rownr NUMBER;
v_count NUMBER;
PROCEDURE add_row (p_regel IN VARCHAR2)
AS
BEGIN
INSERT INTO fac_rapport (
fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel
)
VALUES (SUBSTR (p_applname, 1, 12), v_rownr, p_regel);
v_rownr := v_rownr + 1;
END;
PROCEDURE add_element (p_tag IN VARCHAR2, p_value IN VARCHAR2)
AS
BEGIN
add_row( '<'
|| p_tag
|| '>'
|| xml.char_to_html (p_value)
|| '</'
|| p_tag
|| '>');
END;
BEGIN
v_rownr := 0;
DELETE fac_rapport
WHERE fac_rapport_node = SUBSTR (p_applname, 1, 12);
COMMIT;
SELECT COUNT ( * )
INTO v_count
FROM mld_opdr o
WHERE mld_statusopdr_key = 6 -- Afgemeld
AND o.mld_typeopdr_key = 5 -- Uitvoering
AND NOT EXISTS
(SELECT 1
FROM mld_kenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key =
c_ordafm2bw_srtkenmerk_key);
IF (v_count > 0)
THEN
-- header
add_row (
'<?xml version="1.0" encoding="windows-1252" standalone="yes"?>'
);
add_row ('<basware>');
add_row ('<opdrachtlijst>');
FOR rec IN c1
LOOP
BEGIN
add_row( '<opdracht key='
|| CHR (34)
|| rec.opdrachtnr
|| CHR (34)
|| '>');
add_element ('afmelddatum', rec.afmelddatum);
add_row ('</opdracht>');
-- Markeer opdracht als 'ORDAFM-doorgezet'!
INSERT INTO mld_kenmerkopdr (
mld_opdr_key,
mld_kenmerk_key,
mld_kenmerkopdr_waarde
)
VALUES (rec.mld_opdr_key, rec.mld_kenmerk_key, '1');
COMMIT;
END;
END LOOP;
add_row ('</opdrachtlijst>');
add_row ('</basware>');
END IF;
fac.writelog (p_applname,
'S',
'Aantal opdrachten afgemeld: ' || TO_CHAR (v_count),
'');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname,
'E',
'ORDAFM_XML-export afgebroken!',
v_errormsg);
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE conn_daily
AS
v_volgnr NUMBER;
BEGIN
-- Anonymizeren van bezoekers (na 3 maanden) en personen (na 12 maanden)
SELECT COALESCE(MAX(fac_rapport_volgnr),0)
INTO v_volgnr
FROM fac_rapport
WHERE fac_rapport_node = 'Anonymize';
v_volgnr := v_volgnr + 1;
IF TO_CHAR (SYSDATE, 'DD') = '01'
THEN
BEGIN
ANO.anonymizebez (add_months(trunc(SYSDATE), -4), add_months(trunc(SYSDATE), -3));
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel)
VALUES('Anonymize', v_volgnr, 'Bezoekers geanonymizeerd ' ||
to_char(add_months(TRUNC(SYSDATE), -4), 'dd-mm-yyyy hh24:mi:ss') || ' - ' ||
to_char(add_months(TRUNC(SYSDATE), -3), 'dd-mm-yyyy hh24:mi:ss'));
EXCEPTION WHEN OTHERS
THEN
INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel)
VALUES('Anonymize', v_volgnr, 'Error: Fout opgetreden bij het anonymizeren van bezoekers ' ||
to_char(add_months(TRUNC(SYSDATE), -4), 'dd-mm-yyyy hh24:mi:ss') || ' - ' ||
to_char(add_months(TRUNC(SYSDATE), -3), 'dd-mm-yyyy hh24:mi:ss'));
END;
END IF;
END;
/
-- Notificatie naar bezoekers op de dag van het bezoek
CREATE OR REPLACE VIEW conn_v_noti_bezoeker
AS
SELECT NULL sender,
NULL receiver,
'Uw bezoek aan Transdev op '
|| TO_CHAR (bez_afspraak_datum, 'DD-MM-YYYY')
|| ' , '
|| TO_CHAR (bez_afspraak_datum, 'HH24:MI') text,
'CUST04' code,
a.bez_afspraak_key key,
bez_bezoekers_key xkey,
bez_bezoekers_email xemail,
NULL xmobile,
a.bez_afspraak_datum
FROM bez_afspraak a, bez_bezoekers b
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND TRUNC(a.bez_afspraak_datum) = TRUNC(SYSDATE)
AND b.bez_bezoekers_email IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key =405
AND t.fac_tracking_refkey = a.bez_afspraak_key
AND t.fac_tracking_oms LIKE '%CUST04%');
-- Notificatie op dag van aanmaak van de afspraak
CREATE OR REPLACE VIEW conn_v_noti_bez_aanmaak
AS
SELECT NULL sender,
NULL receiver,
'Uw bezoek aan Transdev op '
|| TO_CHAR (bez_afspraak_datum, 'DD-MM-YYYY')
|| ' , '
|| TO_CHAR (bez_afspraak_datum, 'HH24:MI') text,
'CUST03' code,
a.bez_afspraak_key key,
bez_bezoekers_key xkey,
bez_bezoekers_email xemail,
NULL xmobile,
a.bez_afspraak_datum
FROM bez_afspraak a, bez_bezoekers b
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND TRUNC(a.bez_afspraak_datum) = TRUNC(SYSDATE)
AND b.bez_bezoekers_email IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 405
AND t.fac_tracking_refkey = a.bez_afspraak_key
AND t.fac_tracking_oms LIKE '%CUST03%');
CREATE OR REPLACE VIEW conn_v_noti_coupa_fout
AS
SELECT NULL sender,
receiver,
'Opdracht '||opdr_nr
||' is op '|| TO_CHAR(tracking_datum, 'DD-MM-YYYY')
||' om '|| TO_CHAR(tracking_datum, 'HH24:MI')
||' niet succesvol verstuurd naar Coupa.' text,
'CUST05' code,
opdr_key key,
NULL xkey,
NULL xemail,
NULL xmobile
FROM
(SELECT o.mld_opdr_key opdr_key, o.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr opdr_nr, p.prs_perslid_email receiver, f.fac_tracking_oms, MAX(f.fac_tracking_datum) tracking_datum
FROM mld_opdr o , fac_tracking f, fac_srtnotificatie fs, prs_perslid p
WHERE f.fac_tracking_refkey = o.MLD_OPDR_KEY
AND fs.fac_srtnotificatie_code='ORDSNX'
AND f.fac_srtnotificatie_key=fs.fac_srtnotificatie_key
AND f.fac_tracking_oms like 'COUPA_FAIL:%'
AND f.fac_srtnotificatie_key=fs.fac_srtnotificatie_key
AND p.prs_perslid_key= o.prs_perslid_key
AND fac_tracking_datum > (SYSDATE-1)
AND NOT EXISTS
(SELECT 1
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND t.fac_tracking_refkey = o.mld_opdr_key
AND fac_srtnotificatie_code = 'CUST05'
AND o.mld_opdr_datumbegin < fac_tracking_datum)
GROUP BY o.mld_opdr_key,o.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr,p.prs_perslid_email , f.fac_tracking_oms);
-- View die voor die opdrachten die gereed gezet zijn voor export naar coupa
-- met aanvraagnr en InkoopNr.
CREATE OR REPLACE VIEW conn_v_coupa_rapport
AS
SELECT o.mld_melding_key opdrachtnr,
o.mld_opdr_bedrijfopdr_volgnr volgnr,
o.mld_opdr_key opdr_key,
(SELECT p.prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames p
WHERE p.prs_perslid_key=o.prs_perslid_key) aanvrager,
(SELECT ko2.mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr ko2
WHERE ko2.mld_opdr_key = o.mld_opdr_key
AND ko2.mld_kenmerk_key=2661) aanvraagnr,
(SELECT ko1.mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr ko1
WHERE ko1.mld_opdr_key = o.mld_opdr_key
AND ko1.mld_kenmerk_key=2681) inkoopnr,
o.mld_opdr_datumbegin opd_datumbegin,
(SELECT ft.fac_tracking_datum
FROM fac_tracking ft
WHERE ft.fac_srtnotificatie_key=111
AND lower(ft.fac_tracking_oms)='opdracht in bestand klaargezet'
AND ft.fac_tracking_refkey=o.mld_opdr_key) datum_verstuurd
FROM mld_opdr o, mld_kenmerkopdr ko
WHERE o.mld_statusopdr_key=5
AND ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key=2661
AND ko.mld_kenmerkopdr_waarde IS NOT NULL;
CREATE OR REPLACE VIEW conn_v_coupa_exp_error
( opdr_key,
melding,
melder,
omschrijving,
track_datum,
opdr_datum)
AS
SELECT DISTINCT o.mld_opdr_key,
o.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr,
(SELECT p.prs_perslid_naam_friendly
FROM prs_v_perslid_fullnames p
WHERE p.prs_perslid_key=o.prs_perslid_key) aanvrager,
ft.fac_tracking_oms,
ft.fac_tracking_datum,
o.mld_opdr_datumbegin
FROM mld_opdr o, fac_tracking ft
WHERE ft.fac_tracking_refkey=o.mld_opdr_key
AND ft.fac_srtnotificatie_key=247
AND (upper(ft.fac_tracking_oms) like 'COUPA_FAIL%' OR upper(ft.fac_tracking_oms) like '%COUPA ERROR%');
CREATE OR REPLACE VIEW conn_v_coupa_select
AS
SELECT op.mld_opdr_key opdr_key,
op.mld_melding_key,
op.mld_opdr_bedrijfopdr_volgnr,
op.mld_opdr_kosten kosten,
op.mld_opdr_datumbegin begindatum,
op.mld_opdr_einddatum einddatum,
afd.prs_afdeling_omschrijving||'('||afd.prs_afdeling_naam||')' department,
prs.prs_perslid_email userEmail,
prs.prs_perslid_oslogin userLogin,
'HV'||loc.alg_locatie_code locationCode,
'ST'||op.mld_melding_key||'/'||op.mld_opdr_bedrijfopdr_volgnr facilitorKey,
ks.prs_kostensoort_oms ks_omschrijving,
ks.prs_kostensoort_opmerking ks_opmerking,
k.prs_kostenplaats_nr kostenplaats,
pbd.prs_leverancier_nr levNr,
mld.mld_melding_omschrijving mld_omschr,
op.mld_opdr_omschrijving opdr_omschr
FROM mld_opdr op, mld_melding mld, mld_stdmelding smld, alg_locatie loc, prs_bedrijf pbd, prs_perslid prs, prs_afdeling afd, prs_kostenplaats k, PRS_KOSTENSOORT ks
WHERE op.mld_statusopdr_key=8 -- welke status moet een opdarcht hebben om hem naar Coupa te exporteren ?
AND pbd.prs_bedrijf_key = op.mld_uitvoerende_keys
AND prs.prs_perslid_key = op.prs_perslid_key
AND mld.mld_melding_key=op.mld_melding_key
AND smld.MLD_STDMELDING_KEY = mld.MLD_STDMELDING_KEY
AND loc.alg_locatie_key = mld.mld_alg_locatie_key
AND afd.prs_afdeling_key=prs.prs_afdeling_key
AND smld.prs_kostensoort_key = ks.prs_kostensoort_key
AND op.prs_kostenplaats_key = k.prs_kostenplaats_key;
CREATE OR REPLACE PROCEDURE conn_select_coupa_export(p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR sel_opd
IS
SELECT opdr_key, kosten, begindatum , einddatum, department, userEmail, userLogin, locationcode, facilitorkey, levNr, opdr_omschr, mld_omschr, ks_omschrijving, ks_opmerking, kostenplaats
FROM conn_v_coupa_select;
v_req VARCHAR2(1000);
v_reqLine VARCHAR2(1000);
v_reqHeader VARCHAR2(1000);
v_reqLineHeader VARCHAR2(1000);
v_counter NUMBER;
v_regel NUMBER;
v_base VARCHAR2(10);
BEGIN
v_reqHeader := 'Requisition,Record Identifier,Submit For Approval?,Need By Date,Justification,Department Name,Buyer Note,Requested By (Email),Requested By (Login),PCard Name,Ship To Name,Ship To Id,Ship To Attention,Ship To Street 1,Ship To Street 2,Ship To City,Ship To State,Ship To Postal Code,Ship to Country/Region Code,Ship to Country/Region Name,Ship to Location Code,Hide Price,Facilitor referentie,,,,,,,,,';
v_reqLineheader := 'Requisition Line,Record Identifier,Line Number,Catalogue Item Number,Catalogue Item Name,Non Catalogue Item Description,Supplier Part Number,Supplier Aux Part Number,Quantity,Price,Need By Date,Transmission Method Override,Transmission Emails,Supplier Name,Supplier Number,Supplier Site Code,UOM Code,Commodity Name,Contract Name,Currency Code,Asset Tags,Chart of Account Name,Account Name,Account Code,Account Segment 1,Account Segment 2,Account Segment 3,Account Segment 4,Payment Term Code,Shipping Term Code,Budget Period Name,Uitgebreide omschrijving #';
v_counter:=1;
v_regel :=1;
v_base:='CPA_EXP-';
DELETE FROM fac_rapport
WHERE fac_rapport_node LIKE 'CPA_EXP-%';
COMMIT;
FOR rec IN sel_opd
LOOP
BEGIN
v_req := 'Requestion,'||rec.opdr_key||',Yes,'||TO_CHAR(rec.begindatum,'DD-MM-YYYY')||',,'||rec.department||',,'||rec.userEmail||','||rec.userLogin||',,,,,,,,,,,,'||rec.locationcode||',,'||rec.facilitorkey;
v_reqLine := 'RequisitionLine,'||rec.opdr_key||',1,,,'||conn.quote(SUBSTR(REPLACE(REPLACE(rec.mld_omschr, CHR(13), ''), CHR(10), ''),0,250))||',,,,'||rec.kosten||','||TO_CHAR(rec.einddatum,'DD-MM-YYYY')||',,,,'||rec.levNr||',,,'||rec.ks_opmerking||',,EUR,,Connexxion Nederland NV (XX-01 ),,,'||rec.kostenplaats ||',81999,'||rec.ks_omschrijving||',,,,,'||conn.quote(SUBSTR(REPLACE(REPLACE(rec.opdr_omschr, CHR(13), ''), CHR(10), ''),0,250));
INSERT INTO fac_rapport (fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel)
VALUES (v_base||v_counter||'-', v_regel, v_reqHeader);
v_regel:=v_regel+1;
INSERT INTO fac_rapport (fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel)
VALUES (v_base||v_counter||'-', v_regel, v_reqLineHeader);
v_regel:=v_regel+1;
INSERT INTO fac_rapport (fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel)
VALUES (v_base||v_counter||'-', v_regel, v_req);
v_regel:=v_regel+1;
INSERT INTO fac_rapport (fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel)
VALUES (v_base||v_counter||'-', v_regel, v_reqLine);
v_regel := v_regel + 1;
v_counter := v_counter +1;
END;
END LOOP;
COMMIT;
END;
/
CREATE OR REPLACE VIEW CONN_V_EXPORT_COUPA_EXPORT
(
result,
result_order,
exp_cpa
)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr, fac_rapport_node
FROM fac_rapport
WHERE fac_rapport_node LIKE 'CPA_EXP%';
CREATE OR REPLACE VIEW conn_v_coupa_bijlages
AS
SELECT o.mld_opdr_key,
o.mld_opdr_externsyncdate extern_syncdate,
(SELECT ko.mld_kenmerkopdr_waarde
FROM mld_kenmerkopdr ko
WHERE ko.mld_opdr_key = o.mld_opdr_key
AND ko.mld_kenmerk_key=2661 -- A=2701 P=2661
AND ko.mld_kenmerkopdr_waarde IS NOT NULL) coupa_id,
fb.fac_bijlagen_filename bestand,
fb.fac_bijlagen_disk_directory path,
fb.fac_bijlagen_aanmaak bijlage_aanmaak
FROM mld_opdr o, fac_v_bijlagen fb
WHERE fb.fac_bijlagen_refkey=o.mld_opdr_key
AND o.mld_statusopdr_key IN (4,5)
AND fb.fac_bijlagen_kenmerk_key=2663 -- A=2722 P=2663
AND fb.fac_bijlagen_module='MLD';
CREATE OR REPLACE VIEW conn_v_noti_jrremind
(code, sender, receiver, text, key, par1, par2, xkey, xemail, xmobile, fac_srtnotificatie_key, attachments, xsender, prs_bedrijfadres_key)
AS
SELECT '', '', c.prs_perslid_key_beh,
'Jaarlijkse Rappelering: Contract '
|| c.cnt_contract_nummer_intern||DECODE(c.cnt_contract_versie, NULL, '', '.'||c.cnt_contract_versie)
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'DD-MM-YYYY')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key, c.cnt_contract_nummer_intern, cnt.cnt_getopzegdatum (c.cnt_contract_key), NULL
, NULL xemail
, NULL xmobile
, NULL fac_srtnotificatie_key
, NULL attachments
, NULL xsender
, NULL prs_bedrijfadres_key
FROM cnt_contract c , cnt_kenmerkcontract ken, prs_bedrijf b
WHERE c.cnt_contract_verwijder is null
AND c.cnt_contract_status = 0
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND TRUNC(c.cnt_contract_looptijd_van) < TRUNC(SYSDATE)
AND TRUNC(c.cnt_contract_looptijd_tot) > TRUNC(SYSDATE)
AND TO_CHAR(c.cnt_contract_looptijd_tot,'DDMM') = TO_CHAR(SYSDATE, 'DDMM')
AND ken.cnt_contract_key = c.cnt_contract_key
AND FAC.safe_to_number(ken.cnt_kenmerkcontract_waarde) = 129
AND ken.cnt_kenmerk_key IN (SELECT cnt_kenmerk_key FROM cnt_kenmerk where UPPER(cnt_kenmerk_omschrijving)='JAARLIJKSE RAPPELERING')
AND c.cnt_contract_key NOT IN ( SELECT key FROM fac_v_noti_cntreminder);
-- View tbv van die contracten die bankgarantie hebben en de contracte afgesloten zijn.
CREATE OR REPLACE VIEW conn_v_noti_bgremind
(code, sender, receiver, text, key, par1, par2, xkey, xemail, xmobile, fac_srtnotificatie_key, attachments, xsender, prs_bedrijfadres_key)
AS
SELECT '', '', c.prs_perslid_key_beh,
'Bankgarantie melding van afgelopen contracten: Voor contract '
|| c.cnt_contract_nummer_intern||DECODE(c.cnt_contract_versie, NULL, '', '.'||c.cnt_contract_versie)
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' is een bankgarantie afgegeven door '
|| (SELECT kc.cnt_kenmerkcontract_waarde FROM cnt_kenmerkcontract kc WHERE kc.cnt_kenmerk_key=523 AND kc.CNT_CONTRACT_KEY=c.cnt_contract_key)
|| ' en deze moet worden opgezegt.',
c.cnt_contract_key, c.cnt_contract_nummer_intern, cnt.cnt_getopzegdatum (c.cnt_contract_key), NULL
, NULL xemail
, NULL xmobile
, NULL fac_srtnotificatie_key
, NULL attachments
, NULL xsender
, NULL prs_bedrijfadres_key
FROM cnt_contract c , cnt_kenmerkcontract ken, prs_bedrijf b
WHERE c.cnt_contract_verwijder is null
AND c.cnt_contract_status = 0 -- contract is gesloten
AND b.prs_bedrijf_key = c.cnt_prs_bedrijf_key
AND ken.cnt_contract_key = c.cnt_contract_key
AND FAC.safe_to_number(ken.cnt_kenmerkcontract_waarde) = 129 -- voor dit contract is een bankgaantie afgegeven
AND ken.cnt_kenmerk_key IN (SELECT cnt_kenmerk_key FROM cnt_kenmerk where UPPER(cnt_kenmerk_omschrijving)='BANKGARANTIE AFGEGEVEN');
CREATE OR REPLACE VIEW conn_v_rayonmanager
(
prs_perslid_key,
prs_perslid_naam
)
AS
SELECT p.prs_perslid_key, p.prs_perslid_naam_friendly FROM prs_v_perslid_fullnames p , prs_kenmerklink pkl, prs_kenmerk pk
WHERE pk.prs_kenmerk_upper=UPPER('Is RayonManager')
AND pk.prs_kenmerk_key = pkl.prs_kenmerk_key
AND pkl.prs_kenmerklink_waarde='1'
AND p.prs_perslid_key=pkl.prs_link_key;
-- View met alle NL SFB groepen tbv van OPrognose assets import
CREATE OR REPLACE VIEW CONN_V_SElECT_NLSFB_GRPSOORT
(
code,
omsch)
AS
SELECT '1110' code,'grond, algemeen (verzamelniveau)' omsch FROM DUAL UNION
SELECT '1111','grond, ontgravingen' FROM DUAL UNION
SELECT '1112','grond, aanvullingen' FROM DUAL UNION
SELECT '1113','grond, sloop- en rooiwerkzaamheden' FROM DUAL UNION
SELECT '1115','grond, damwanden' FROM DUAL UNION
SELECT '1120','water, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '1124','water, bemalingen' FROM DUAL UNION
SELECT '1125','water, damwanden' FROM DUAL UNION
SELECT '1310','niet constructief, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '1311','niet constructief, bodemafsluitingen' FROM DUAL UNION
SELECT '1312','niet constructief, vloeren als gebouwonderdeel' FROM DUAL UNION
SELECT '1313','niet constructief, vloeren als bestrating' FROM DUAL UNION
SELECT '1320','constructief, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '1321','constructief, bodemafsluitingen' FROM DUAL UNION
SELECT '1322','constructief, vloeren als gebouwonderdeel' FROM DUAL UNION
SELECT '1325','constructief, grondverbeteringen' FROM DUAL UNION
SELECT '1610','voeten en balken, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '1611','voeten en balken, fundatie voeten' FROM DUAL UNION
SELECT '1612','voeten en balken, fundatie balken' FROM DUAL UNION
SELECT '1613','voeten en balken, fundatie poeren' FROM DUAL UNION
SELECT '1614','voeten en balken, gevelwanden (-200)' FROM DUAL UNION
SELECT '1615','voeten en balken, grondverbeteringen' FROM DUAL UNION
SELECT '1620','keerwanden, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '1621','keerwanden, grondkerende wanden' FROM DUAL UNION
SELECT '1622','keerwanden, waterkerende wanden' FROM DUAL UNION
SELECT '1623','keerwanden, gevelwanden (-200)' FROM DUAL UNION
SELECT '1625','keerwanden, grondverbeteringen' FROM DUAL UNION
SELECT '1710','niet geheid, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '1711','niet geheid, dragend palen geboord' FROM DUAL UNION
SELECT '1712','niet geheid, dragende palen geschroefd' FROM DUAL UNION
SELECT '1713','niet geheid, trekverankeringen' FROM DUAL UNION
SELECT '1714','niet geheid, pijler-putring-funderingen' FROM DUAL UNION
SELECT '1715','niet geheid, bodeminjecties' FROM DUAL UNION
SELECT '1720','geheid, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '1721','geheid, dragende palen' FROM DUAL UNION
SELECT '1722','geheid, palen ingeheide bekisting' FROM DUAL UNION
SELECT '1723','geheid, trekverankeringen' FROM DUAL UNION
SELECT '1725','geheid, damwanden-funderingen' FROM DUAL UNION
SELECT '2110','niet constructief, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2111','niet constructief, massieve wanden' FROM DUAL UNION
SELECT '2112','niet constructief, spouwwanden' FROM DUAL UNION
SELECT '2113','niet constructief, systeemwanden' FROM DUAL UNION
SELECT '2114','niet constructief, vlieswanden' FROM DUAL UNION
SELECT '2115','niet constructief, borstweringen' FROM DUAL UNION
SELECT '2116','niet constructief, boeiboorden' FROM DUAL UNION
SELECT '2120','constructief, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2121','constructief, massieve wanden' FROM DUAL UNION
SELECT '2122','constructief, spouwwanden' FROM DUAL UNION
SELECT '2123','constructief, systeemwanden' FROM DUAL UNION
SELECT '2125','constructief, borstweringen' FROM DUAL UNION
SELECT '2210','niet constructief, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2211','niet constructief, massieve wanden' FROM DUAL UNION
SELECT '2212','niet constructief, spouwwanden' FROM DUAL UNION
SELECT '2213','niet constructief, systeemwanden vast' FROM DUAL UNION
SELECT '2214','niet constructief, systeemwanden verplaatsbaar' FROM DUAL UNION
SELECT '2220','constructief, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2221','constructief, massieve wanden' FROM DUAL UNION
SELECT '2222','constructief, spouwwanden' FROM DUAL UNION
SELECT '2223','constructief, systeemwanden vast' FROM DUAL UNION
SELECT '2310','niet constructief, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2311','niet constructief, vrijdragende vloeren' FROM DUAL UNION
SELECT '2312','niet constructief, balkons' FROM DUAL UNION
SELECT '2313','niet constructief, galerijen' FROM DUAL UNION
SELECT '2314','niet constructief, bordessen' FROM DUAL UNION
SELECT '2315','niet constructief, vloeren t.b.v. technische voorzieningen' FROM DUAL UNION
SELECT '2320','constructief, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2321','constructief, vrijdragende vloeren' FROM DUAL UNION
SELECT '2322','constructief, balkons' FROM DUAL UNION
SELECT '2323','constructief, galerijen' FROM DUAL UNION
SELECT '2324','constructief, bordessen' FROM DUAL UNION
SELECT '2325','constructief, vloeren t.b.v. technische voorzieningen' FROM DUAL UNION
SELECT '2410','trappen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2411','trappen, rechte steektrappen' FROM DUAL UNION
SELECT '2412','trappen, niet-rechte steektrappen' FROM DUAL UNION
SELECT '2413','trappen, spiltrappen' FROM DUAL UNION
SELECT '2415','trappen, bordessen' FROM DUAL UNION
SELECT '2420','hellingen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2421','hellingen, beloopbare hellingen' FROM DUAL UNION
SELECT '2422','hellingen, berijdbare hellingen' FROM DUAL UNION
SELECT '2425','hellingen, bordessen' FROM DUAL UNION
SELECT '2430','ladders en klimijzers, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2431','ladders en klimijzers, ladders' FROM DUAL UNION
SELECT '2432','ladders en klimijzers, klimijzers' FROM DUAL UNION
SELECT '2435','ladders en klimijzers, bordessen' FROM DUAL UNION
SELECT '2710','niet constructief, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2711','niet constructief, vlakke daken' FROM DUAL UNION
SELECT '2712','niet constructief, hellende daken' FROM DUAL UNION
SELECT '2713','niet constructief, luifels' FROM DUAL UNION
SELECT '2714','niet constructief, overkappingen' FROM DUAL UNION
SELECT '2716','niet constructief, gootconstructies' FROM DUAL UNION
SELECT '2720','constructief, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2721','constructief, vlakke daken' FROM DUAL UNION
SELECT '2722','constructief, hellende daken' FROM DUAL UNION
SELECT '2723','constructief, luifels' FROM DUAL UNION
SELECT '2724','constructief, overkappingen' FROM DUAL UNION
SELECT '2726','constructief, gootconstructies' FROM DUAL UNION
SELECT '2810','kolommen en liggers, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2811','kolommen en liggers, kolom-/liggerconstructies' FROM DUAL UNION
SELECT '2812','kolommen en liggers, spanten' FROM DUAL UNION
SELECT '2820','wanden en vloeren, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2821','wanden en vloeren, wand-/vloerconstructies' FROM DUAL UNION
SELECT '2830','ruimte-eenheden, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '2831','ruimte-eenheden, doosconstructies' FROM DUAL UNION
SELECT '3110','niet gevuld, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3111','niet gevuld, daglichtopeningen' FROM DUAL UNION
SELECT '3112','niet gevuld, buitenluchtopeningen' FROM DUAL UNION
SELECT '3120','gevuld met ramen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3121','gevuld met ramen, gesloten ramen' FROM DUAL UNION
SELECT '3122','gevuld met ramen, ramen draaiend aan een kant' FROM DUAL UNION
SELECT '3123','gevuld met ramen, schuiframen' FROM DUAL UNION
SELECT '3124','gevuld met ramen, ramen draaiend op verticale of horizontale as' FROM DUAL UNION
SELECT '3125','gevuld met ramen, combinatieramen' FROM DUAL UNION
SELECT '3130','gevuld met deuren, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3131','gevuld met deuren, draaideuren' FROM DUAL UNION
SELECT '3132','gevuld met deuren, schuifdeuren' FROM DUAL UNION
SELECT '3133','gevuld met deuren, tuimeldeuren' FROM DUAL UNION
SELECT '3134','gevuld met deuren, tourniqets' FROM DUAL UNION
SELECT '3140','gevuld met puien, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3141','gevuld met puien, gesloten puien' FROM DUAL UNION
SELECT '3210','niet gevuld, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3211','niet gevuld, openingen als doorgang' FROM DUAL UNION
SELECT '3212','niet gevuld, openingen als doorzicht' FROM DUAL UNION
SELECT '3220','gevuld met ramen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3221','gevuld met ramen, gesloten ramen' FROM DUAL UNION
SELECT '3222','gevuld met ramen, ramen draaiend aan een kant' FROM DUAL UNION
SELECT '3223','gevuld met ramen, schuiframen' FROM DUAL UNION
SELECT '3224','gevuld met ramen, ramen draaiend op verticale of horizontale as' FROM DUAL UNION
SELECT '3225','gevuld met ramen, combinatieramen' FROM DUAL UNION
SELECT '3230','gevuld met deuren, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3231','gevuld met deuren, draaideuren' FROM DUAL UNION
SELECT '3232','gevuld met deuren, schuifdeuren' FROM DUAL UNION
SELECT '3233','gevuld met deuren, tuimeldeuren' FROM DUAL UNION
SELECT '3234','gevuld met deuren, tourniqets' FROM DUAL UNION
SELECT '3240','gevuld met puien, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3241','gevuld met puien, gesloten puien' FROM DUAL UNION
SELECT '3310','niet gevuld, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3311','niet gevuld, openingen als doorgang' FROM DUAL UNION
SELECT '3312','niet gevuld, openingen als doorzicht' FROM DUAL UNION
SELECT '3320','gevuld, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3321','gevuld, beloopbare vullingen' FROM DUAL UNION
SELECT '3322','gevuld, niet-beloopbare vullingen' FROM DUAL UNION
SELECT '3410','balustrades, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3411','balustrades, binnenbalustrades' FROM DUAL UNION
SELECT '3412','balustrades, buitenbalustrades' FROM DUAL UNION
SELECT '3420','leuningen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3421','leuningen, binnenleuningen' FROM DUAL UNION
SELECT '3422','leuningen, buitenleuningen' FROM DUAL UNION
SELECT '3431','leuningen, binnentrapleuning hout' FROM DUAL UNION
SELECT '3710','niet gevuld, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3711','niet gevuld, daglichtopeningen' FROM DUAL UNION
SELECT '3712','niet gevuld, buitenluchtopeningen' FROM DUAL UNION
SELECT '3720','gevuld, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3721','gevuld, gesloten ramen' FROM DUAL UNION
SELECT '3722','gevuld, ramen draaiend aan <20><>n kant' FROM DUAL UNION
SELECT '3723','gevuld, schuiframen' FROM DUAL UNION
SELECT '3724','gevuld, ramen draaiend op een as' FROM DUAL UNION
SELECT '3725','gevuld, combinatieramen' FROM DUAL UNION
SELECT '3810','algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '3811','inbouwpakketten met te openen delen' FROM DUAL UNION
SELECT '3812','inbouwpakketten met gesloten delen' FROM DUAL UNION
SELECT '4110','algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '4111','afwerklagen' FROM DUAL UNION
SELECT '4112','bekledingen' FROM DUAL UNION
SELECT '4113','voorzetwanden' FROM DUAL UNION
SELECT '4210','algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '4211','afwerklagen' FROM DUAL UNION
SELECT '4212','bekledingen' FROM DUAL UNION
SELECT '4310','verhoogd, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '4311','verhoogd, podiums' FROM DUAL UNION
SELECT '4312','verhoogd, installatievloeren' FROM DUAL UNION
SELECT '4320','niet verhoogd, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '4321','niet verhoogd, afwerklagen' FROM DUAL UNION
SELECT '4322','niet verhoogd, bekledingen' FROM DUAL UNION
SELECT '4323','niet verhoogd, systeemvloerafwerkingen' FROM DUAL UNION
SELECT '4410','trapafwerkingen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '4411','trapafwerkingen, afwerklagen' FROM DUAL UNION
SELECT '4412','trapafwerkingen, bekledingen' FROM DUAL UNION
SELECT '4413','trapafwerkingen, systeemafwerkingen' FROM DUAL UNION
SELECT '4420','hellingafwerkingen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '4421','hellingafwerkingen, afwerklagen' FROM DUAL UNION
SELECT '4422','hellingafwerkingen, bekledingen' FROM DUAL UNION
SELECT '4423','hellingafwerkingen, systeemafwerkingen' FROM DUAL UNION
SELECT '4510','verlaagd, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '4511','verlaagd, verlaagde plafonds' FROM DUAL UNION
SELECT '4512','verlaagd, systeem plafonds' FROM DUAL UNION
SELECT '4514','verlaagd, koofconstructies' FROM DUAL UNION
SELECT '4515','verlaagd, gordijnplanken' FROM DUAL UNION
SELECT '4520','niet verlaagd, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '4521','niet verlaagd, afwerkingen' FROM DUAL UNION
SELECT '4522','niet verlaagd, bekledingen' FROM DUAL UNION
SELECT '4523','niet verlaagd, systeemafwerkingen' FROM DUAL UNION
SELECT '4524','niet verlaagd, koofconstructies' FROM DUAL UNION
SELECT '4525','niet verlaagd, gordijnplanken' FROM DUAL UNION
SELECT '4621','buitenschilderwerk, hout' FROM DUAL UNION
SELECT '4622','binnenschilderwerk, spuitwerk' FROM DUAL UNION
SELECT '4624','binnenschilderwerk, trap hout transparant' FROM DUAL UNION
SELECT '4628','binnenschilderwerk, betoncontructie' FROM DUAL UNION
SELECT '4631','buitenschilderwerk, kozijn en raam hout dekkend' FROM DUAL UNION
SELECT '4632','binnenschilderwerk, kozijn en raam staal' FROM DUAL UNION
SELECT '4645','buitenschilderwerk, plafond hout dekkend' FROM DUAL UNION
SELECT '4710','afwerkingen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '4711','afwerkingen, vlakke dakafwerkingen' FROM DUAL UNION
SELECT '4712','afwerkingen, hellende dakafwerkingen' FROM DUAL UNION
SELECT '4713','afwerkingen, luifel afwerkingen' FROM DUAL UNION
SELECT '4714','afwerkingen, overkappings afwerkingen' FROM DUAL UNION
SELECT '4715','afwerkingen, beloopbare dakafwerkingen' FROM DUAL UNION
SELECT '4716','afwerkingen, berijdbare dakafwerkingen' FROM DUAL UNION
SELECT '4720','bekledingen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '4721','bekledingen, vlakke bekledingen' FROM DUAL UNION
SELECT '4722','bekledingen, hellende bekledingen' FROM DUAL UNION
SELECT '4723','bekledingen, luifel bekledingen' FROM DUAL UNION
SELECT '4724','bekledingen, overkapping bekledingen' FROM DUAL UNION
SELECT '4725','bekledingen, beloopbare dak bekledingen' FROM DUAL UNION
SELECT '4726','bekledingen, berijdbare dak bekledingen' FROM DUAL UNION
SELECT '4810','algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '4811','naadloze afwerkingen' FROM DUAL UNION
SELECT '4812','overige afwerkingen' FROM DUAL UNION
SELECT '5110','lokaal, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5111','lokaal, gasvormige brandstoffen' FROM DUAL UNION
SELECT '5112','lokaal, vloeibare brandstoffen' FROM DUAL UNION
SELECT '5113','lokaal, vaste brandstoffen' FROM DUAL UNION
SELECT '5114','lokaal, schoorstenen/kanalen (niet bouwkundig)' FROM DUAL UNION
SELECT '5116','lokaal, gecombineerde tapwaterverwarming' FROM DUAL UNION
SELECT '5119','lokaal, brandstoffenopslag' FROM DUAL UNION
SELECT '5120','centraal, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5121','centraal, gasvormige brandstoffen' FROM DUAL UNION
SELECT '5122','centraal, vloeibare brandstoffen' FROM DUAL UNION
SELECT '5123','centraal, vaste brandstoffen' FROM DUAL UNION
SELECT '5124','centraal, schoorstenen/kanalen (niet bouwkundig)' FROM DUAL UNION
SELECT '5126','centraal, gecombineerde tapwater verwarming' FROM DUAL UNION
SELECT '5129','centraal, brandstoffenopslag' FROM DUAL UNION
SELECT '5130','toegeleverde warmte, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5131','toegeleverde warmte, water tot 140<34> C.' FROM DUAL UNION
SELECT '5132','toegeleverde warmte, water boven 140<34> C.' FROM DUAL UNION
SELECT '5133','toegeleverde warmte, stoom' FROM DUAL UNION
SELECT '5136','toegeleverde warmte, gecombineerde tapwaterverwarming' FROM DUAL UNION
SELECT '5140','warmte-krachtkoppeling, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5141','warmte-krachtkoppeling, total-energy' FROM DUAL UNION
SELECT '5144','warmte-krachtkoppeling, schoorstenen/kanalen (niet bouwkundig)' FROM DUAL UNION
SELECT '5146','warmte-krachtkoppeling, gecombineerde tapwaterverwarming' FROM DUAL UNION
SELECT '5149','warmte-krachtkoppeling, brandstoffenopslag' FROM DUAL UNION
SELECT '5150','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5151','bijzonder, warmtepomp' FROM DUAL UNION
SELECT '5152','bijzonder, zonnecollectoren' FROM DUAL UNION
SELECT '5153','bijzonder, accumulatie' FROM DUAL UNION
SELECT '5154','bijzonder, aardwarmte' FROM DUAL UNION
SELECT '5155','bijzonder, kernenergie' FROM DUAL UNION
SELECT '5210','regenwater, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5211','regenwater, afvoerinstallatie in het gebouw' FROM DUAL UNION
SELECT '5212','regenwater, afvoerinstallatie buiten het gebouw' FROM DUAL UNION
SELECT '5216','regenwater, pompsysteem' FROM DUAL UNION
SELECT '5220','fecali<6C>n, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5221','fecali<6C>n, standaard systeem' FROM DUAL UNION
SELECT '5222','fecali<6C>n, vacu<63>msysteem' FROM DUAL UNION
SELECT '5223','fecali<6C>n, overdruksysteem' FROM DUAL UNION
SELECT '5226','fecali<6C>n, pompsysteem' FROM DUAL UNION
SELECT '5230','afvalwater, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5231','afvalwater, huishoudelijk afval' FROM DUAL UNION
SELECT '5232','afvalwater, bedrijfsafval' FROM DUAL UNION
SELECT '5236','afvalwater, pompsysteem' FROM DUAL UNION
SELECT '5240','gecombineerd, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5241','gecombineerd, ge<67>ntegreerd systeem' FROM DUAL UNION
SELECT '5246','gecombineerd, pompsysteem' FROM DUAL UNION
SELECT '5250','speciaal, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5251','speciaal, chemisch verontreinigd afvalwater' FROM DUAL UNION
SELECT '5252','speciaal, biologisch besmet afvalwater' FROM DUAL UNION
SELECT '5253','speciaal, radioactief besmet afvalwater' FROM DUAL UNION
SELECT '5256','speciaal, pompsysteem' FROM DUAL UNION
SELECT '5260','vast vuil, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5261','vast vuil, stortkokers' FROM DUAL UNION
SELECT '5262','vast vuil, vacu<63>msysteem' FROM DUAL UNION
SELECT '5263','vast vuil, persluchtsysteem' FROM DUAL UNION
SELECT '5264','vast vuil, verdichtingssysteem' FROM DUAL UNION
SELECT '5265','vast vuil, verbrandingssysteem' FROM DUAL UNION
SELECT '5310','drinkwater, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5311','drinkwater, netaansluiting' FROM DUAL UNION
SELECT '5312','drinkwater, bronaansluiting' FROM DUAL UNION
SELECT '5313','drinkwater, reinwaterkelderaansluiting' FROM DUAL UNION
SELECT '5314','drinkwater, drukverhoging' FROM DUAL UNION
SELECT '5319','drinkwater, opslagtanks' FROM DUAL UNION
SELECT '5320','verwarmd tapwater, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5321','verwarmd tapwater, direct verwarmd met voorraad' FROM DUAL UNION
SELECT '5322','verwarmd tapwater, indirect verwarmd met voorraad' FROM DUAL UNION
SELECT '5323','verwarmd tapwater, doorstroom direct verwarmd' FROM DUAL UNION
SELECT '5324','verwarmd tapwater, doorstroom indirect verwarmd' FROM DUAL UNION
SELECT '5330','bedrijfswater, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5331','bedrijfswater, onthard-watersysteem' FROM DUAL UNION
SELECT '5332','bedrijfswater, demi-watersysteem' FROM DUAL UNION
SELECT '5333','bedrijfswater, gedistilleerd-watersysteem' FROM DUAL UNION
SELECT '5334','bedrijfswater, zwembad-watersysteem' FROM DUAL UNION
SELECT '5340','gebruiksstoom en condens, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5341','gebruiksstoom en condens, lage-druk stoomsysteem' FROM DUAL UNION
SELECT '5342','gebruiksstoom en condens, hoge-druk stoomsysteem' FROM DUAL UNION
SELECT '5344','gebruiksstoom en condens, condens verzamelsysteem' FROM DUAL UNION
SELECT '5350','waterbehandeling, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5351','waterbehandeling, filtratiesysteem' FROM DUAL UNION
SELECT '5352','waterbehandeling, absorptiesysteem' FROM DUAL UNION
SELECT '5353','waterbehandeling, ontgassingsysteem' FROM DUAL UNION
SELECT '5354','waterbehandeling, destillatiesysteem' FROM DUAL UNION
SELECT '5410','brandstof, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5411','brandstof, aardgasvoorziening' FROM DUAL UNION
SELECT '5412','brandstof, butaanvoorziening' FROM DUAL UNION
SELECT '5413','brandstof, propaanvoorziening' FROM DUAL UNION
SELECT '5414','brandstof, LPG-voorziening' FROM DUAL UNION
SELECT '5420','perslucht en vacu<63>m, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5421','perslucht en vacu<63>m, persluchtvoorziening' FROM DUAL UNION
SELECT '5422','perslucht en vacu<63>m, vacu<63>mvoorziening' FROM DUAL UNION
SELECT '5430','medisch, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5431','medisch, zuurstofvoorziening' FROM DUAL UNION
SELECT '5432','medisch, carbogeenvoorziening' FROM DUAL UNION
SELECT '5433','medisch, lachgasvoorziening' FROM DUAL UNION
SELECT '5434','medisch, koolzuurvoorziening' FROM DUAL UNION
SELECT '5435','medisch, medische luchtvoorziening' FROM DUAL UNION
SELECT '5440','technisch, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5441','technisch, stikstofvoorziening' FROM DUAL UNION
SELECT '5442','technisch, waterstofvoorziening' FROM DUAL UNION
SELECT '5443','technisch, argonvoorziening' FROM DUAL UNION
SELECT '5444','technisch, heliumvoorziening' FROM DUAL UNION
SELECT '5445','technisch, acetyleenvoorziening' FROM DUAL UNION
SELECT '5446','technisch, propaanvoorziening' FROM DUAL UNION
SELECT '5447','technisch, koolzuurvoorziening' FROM DUAL UNION
SELECT '5450','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5451','bijzonder, voorziening zuivere gassen' FROM DUAL UNION
SELECT '5452','bijzonder, voorziening menggassen' FROM DUAL UNION
SELECT '5510','lokaal, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5511','lokaal, raamkoelers' FROM DUAL UNION
SELECT '5512','lokaal, splitsystemen' FROM DUAL UNION
SELECT '5513','lokaal, compactsystemen' FROM DUAL UNION
SELECT '5520','centraal, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5521','centraal, compressorensystemen' FROM DUAL UNION
SELECT '5522','centraal, absorptiesystemen' FROM DUAL UNION
SELECT '5523','centraal, grondwatersystemen' FROM DUAL UNION
SELECT '5524','centraal, oppervlaktewatersystemen' FROM DUAL UNION
SELECT '5530','distributie, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5531','distributie, distributiesystemen' FROM DUAL UNION
SELECT '5610','water, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5611','water, radiatorsystemen' FROM DUAL UNION
SELECT '5612','water, convectorsystemen' FROM DUAL UNION
SELECT '5613','water, vloerverwarmingssystemen' FROM DUAL UNION
SELECT '5620','stoom, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5621','stoom, radiatorsystemen' FROM DUAL UNION
SELECT '5622','stoom, convectorsystemen' FROM DUAL UNION
SELECT '5624','stoom, stralingspanelen' FROM DUAL UNION
SELECT '5630','lucht, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5631','lucht, directe distributiesysteem' FROM DUAL UNION
SELECT '5632','lucht, systeem met stralingsoverdracht' FROM DUAL UNION
SELECT '5640','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5641','bijzonder, zonnewarmtesystemen' FROM DUAL UNION
SELECT '5642','bijzonder, aardwarmtesystemen' FROM DUAL UNION
SELECT '5643','bijzonder, centraal warmtepompsysteem' FROM DUAL UNION
SELECT '5710','natuurlijke ventilatie, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5711','natuurlijke ventilatie, voorzieningen regelbaar' FROM DUAL UNION
SELECT '5712','natuurlijke ventilatie, voorzieningen niet regelbaar' FROM DUAL UNION
SELECT '5720','lokale mechanische afzuiging, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5721','lokale mechanische afzuiging, afzuiginstallatie' FROM DUAL UNION
SELECT '5730','centrale mechanische afzuiging, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5731','centrale mechanische afzuiging, afzuiginstallatie' FROM DUAL UNION
SELECT '5740','lokale mechanische ventilatie, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5741','lokale mechanische ventilatie, ventilatie-installatie' FROM DUAL UNION
SELECT '5750','centrale mechanische ventilatie, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5751','centrale mechanische ventilatie, ventilatie-installatie' FROM DUAL UNION
SELECT '5752','centrale mechanische ventilatie, ventilatie-installatie met warmteterugwinning' FROM DUAL UNION
SELECT '5760','lokaal, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5761','lokaal, luchtbehandelingsinstallatie' FROM DUAL UNION
SELECT '5770','centraal, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5771','centraal, luchtbehandelingsinstallatie' FROM DUAL UNION
SELECT '5810','specifieke regelingen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5811','specifieke regelingen, specifieke regeling' FROM DUAL UNION
SELECT '5812','specifieke regelingen, gecombineerde regeling' FROM DUAL UNION
SELECT '5820','centrale melding, meting en sturing, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '5821','centrale melding, meting en sturing, specifieke regeling' FROM DUAL UNION
SELECT '5822','centrale melding, meting en sturing, gecombineerde regeling' FROM DUAL UNION
SELECT '6110','energie, noodstroom, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6111','energie, noodstroom, eigen energieopwekking' FROM DUAL UNION
SELECT '6120','aarding, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6121','aarding, veiligheidsaarding' FROM DUAL UNION
SELECT '6122','aarding, medische aarding' FROM DUAL UNION
SELECT '6123','aarding, speciale aarding' FROM DUAL UNION
SELECT '6124','aarding, statische elektriciteit' FROM DUAL UNION
SELECT '6125','aarding, bliksemafleiding' FROM DUAL UNION
SELECT '6126','aarding, potentiaalvereffening' FROM DUAL UNION
SELECT '6130','kanalisatie, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6131','kanalisatie, t.b.v. installaties voor hoge spanning' FROM DUAL UNION
SELECT '6132','kanalisatie, t.b.v. installaties voor lage spanning' FROM DUAL UNION
SELECT '6133','kanalisatie, t.b.v. installaties voor communicatie of beveiliging' FROM DUAL UNION
SELECT '6140','energie, hoogspanning, algemeen' FROM DUAL UNION
SELECT '6141','energie, hoogspanning, 1 Kv en hoger' FROM DUAL UNION
SELECT '6150','energie, laagspanning, algemeen' FROM DUAL UNION
SELECT '6151','energie, laagspanning, lager dan 1 Kv en hoger dan 100 V' FROM DUAL UNION
SELECT '6160','energie, zeer lage spanning, algemeen' FROM DUAL UNION
SELECT '6161','energie, zeer lage spanning, lager dan 100 V' FROM DUAL UNION
SELECT '6170','bliksemafleiding, algemeen' FROM DUAL UNION
SELECT '6171','bliksemafleiding' FROM DUAL UNION
SELECT '6210','hoogspanning, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6211','hoogspanning, 1 t/m 3 Kv' FROM DUAL UNION
SELECT '6212','hoogspanning, boven 3 Kv' FROM DUAL UNION
SELECT '6220','laagspanning, onbewaakt, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6221','laagspanning, onbewaakt, 220/230 V - 380 V' FROM DUAL UNION
SELECT '6222','laagspanning, onbewaakt, 380 V - 660 V' FROM DUAL UNION
SELECT '6223','laagspanning, onbewaakt, 660 V - 1 Kv' FROM DUAL UNION
SELECT '6230','laagspanning, bewaakt, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6231','laagspanning, bewaakt, 220/230 V - 380 V' FROM DUAL UNION
SELECT '6232','laagspanning, bewaakt, 380 V - 660 V' FROM DUAL UNION
SELECT '6233','laagspanning, bewaakt, 660 V - 1 kV' FROM DUAL UNION
SELECT '6240','laagspanning, gestabiliseerd, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6241','laagspanning, gestabiliseerd, 220/230 V - 380 V' FROM DUAL UNION
SELECT '6242','laagspanning, gestabiliseerd, 380 V - 660 V' FROM DUAL UNION
SELECT '6243','laagspanning, gestabiliseerd, 660 V - 1 Kv' FROM DUAL UNION
SELECT '6250','laagspanning, gecompenseerd, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6251','laagspanning, gecompenseerd, 220/230 V - 380 V' FROM DUAL UNION
SELECT '6252','laagspanning, gecompenseerd, 380 V - 660 V' FROM DUAL UNION
SELECT '6253','laagspanning, gecompenseerd, 660 V - 1 Kv' FROM DUAL UNION
SELECT '6310','standaard, onbewaakt, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6311','standaard, onbewaakt, 220/230 V' FROM DUAL UNION
SELECT '6312','standaard, onbewaakt, 115 V' FROM DUAL UNION
SELECT '6313','standaard, onbewaakt, 42 V' FROM DUAL UNION
SELECT '6314','standaard, onbewaakt, 24 V' FROM DUAL UNION
SELECT '6320','calamiteiten, decentraal gevoed, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6323','calamiteiten, decentraal gevoed, 42 V' FROM DUAL UNION
SELECT '6324','calamiteiten, decentraal gevoed, 24 V' FROM DUAL UNION
SELECT '6330','bijzonder, onbewaakt, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6331','bijzonder, onbewaakt, 220/230 V' FROM DUAL UNION
SELECT '6332','bijzonder, onbewaakt, 115 V' FROM DUAL UNION
SELECT '6333','bijzonder, onbewaakt, 42 V' FROM DUAL UNION
SELECT '6334','bijzonder, onbewaakt, 24 V' FROM DUAL UNION
SELECT '6340','standaard, bewaakt, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6341','standaard, bewaakt, 220/230 V' FROM DUAL UNION
SELECT '6342','standaard, bewaakt, 115 V' FROM DUAL UNION
SELECT '6343','standaard, bewaakt, 42 V' FROM DUAL UNION
SELECT '6344','standaard, bewaakt, 24 V' FROM DUAL UNION
SELECT '6350','calamiteiten, centraal gevoed, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6351','calamiteiten, centraal gevoed, 220/230 V' FROM DUAL UNION
SELECT '6352','calamiteiten, centraal gevoed, 115 V' FROM DUAL UNION
SELECT '6353','calamiteiten, centraal gevoed, 42 V' FROM DUAL UNION
SELECT '6354','calamiteiten, centraal gevoed, 24 V' FROM DUAL UNION
SELECT '6360','bijzonder, bewaakt, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6361','bijzonder, bewaakt, 220/230 V' FROM DUAL UNION
SELECT '6362','bijzonder, bewaakt, 115 V' FROM DUAL UNION
SELECT '6363','bijzonder, bewaakt, 42 V' FROM DUAL UNION
SELECT '6364','bijzonder, bewaakt, 24 V' FROM DUAL UNION
SELECT '6370','reclame, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6371','reclame, 220/230 V' FROM DUAL UNION
SELECT '6372','reclame, 115 V' FROM DUAL UNION
SELECT '6373','reclame, 42 V' FROM DUAL UNION
SELECT '6374','reclame, 24 V' FROM DUAL UNION
SELECT '6375','reclame, 1 Kv en hoger' FROM DUAL UNION
SELECT '6410','overdracht van signalen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6411','overdracht van signalen, algemene signaleringen' FROM DUAL UNION
SELECT '6412','overdracht van signalen, algemene personenoproep' FROM DUAL UNION
SELECT '6413','overdracht van signalen, tijdsignalering' FROM DUAL UNION
SELECT '6414','overdracht van signalen, aanwezigheid-/beletsignalering' FROM DUAL UNION
SELECT '6420','overdracht van geluid/spraak, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6421','overdracht van geluid/spraak, telefoon' FROM DUAL UNION
SELECT '6422','overdracht van geluid/spraak, intercom' FROM DUAL UNION
SELECT '6423','overdracht van geluid/spraak, radio/mobilofoon' FROM DUAL UNION
SELECT '6424','overdracht van geluid/spraak, geluidsdistributie' FROM DUAL UNION
SELECT '6425','overdracht van geluid/spraak, vertaalsystemen' FROM DUAL UNION
SELECT '6426','overdracht van geluid/spraak, conferentiesystemen' FROM DUAL UNION
SELECT '6430','overdracht van beelden, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6431','overdracht van beelden, gesloten televisiecircuits' FROM DUAL UNION
SELECT '6432','overdracht van beelden, beeldreproductie' FROM DUAL UNION
SELECT '6433','overdracht van beelden, film/dia/overhead' FROM DUAL UNION
SELECT '6440','overdracht van data, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6441','overdracht van data, gesloten datanet' FROM DUAL UNION
SELECT '6442','overdracht van data, openbaar datanet' FROM DUAL UNION
SELECT '6450','ge<67>ntegreerde systemen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6451','ge<67>ntegreerde systemen, gesloten netwerken' FROM DUAL UNION
SELECT '6452','ge<67>ntegreerde systemen, openbare netwerken' FROM DUAL UNION
SELECT '6460','antenne-inrichtingen, algemeen' FROM DUAL UNION
SELECT '6510','brand, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6511','brand, detectie en alarmering' FROM DUAL UNION
SELECT '6512','brand, deurvergrendelingen en -ontgrendelingen' FROM DUAL UNION
SELECT '6513','brand, brandbestrijding' FROM DUAL UNION
SELECT '6520','braak, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6521','braak, detectie en alarmering' FROM DUAL UNION
SELECT '6522','braak, toegangscontrole' FROM DUAL UNION
SELECT '6530','overlast, detectie en alarmering, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6531','overlast, detectie en alarmering, zonweringsinstallatie' FROM DUAL UNION
SELECT '6532','overlast, detectie en alarmering, elektromagnetische voorzieningen' FROM DUAL UNION
SELECT '6533','overlast, detectie en alarmering, elektromagnetische voorzieningen' FROM DUAL UNION
SELECT '6534','overlast, detectie en alarmering, overspanningsbeveiliging' FROM DUAL UNION
SELECT '6535','overlast, detectie en alarmering, gassenbeveiliging' FROM DUAL UNION
SELECT '6536','overlast, detectie en alarmering, vloeistofbeveiliging' FROM DUAL UNION
SELECT '6537','overlast, detectie en alarmering, stralingsbeveiliging' FROM DUAL UNION
SELECT '6539','overlast, detectie en alarmering, overige beveiligingen' FROM DUAL UNION
SELECT '6540','sociale alarmering, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6541','sociale alarmering, nooddetectie gesloten systemen' FROM DUAL UNION
SELECT '6542','sociale alarmering, nooddetectie open systemen' FROM DUAL UNION
SELECT '6550','milieu-overlast, detectie en alarmering, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6610','liften en heftableaus, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6611','liften en heftableaus, elektrische liften' FROM DUAL UNION
SELECT '6612','liften en heftableaus, hydraulische liften' FROM DUAL UNION
SELECT '6613','liften en heftableaus, trapliften' FROM DUAL UNION
SELECT '6614','liften en heftableaus, heftableaus' FROM DUAL UNION
SELECT '6620','roltrappen en rolpaden, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6621','roltrappen en rolpaden, roltrappen' FROM DUAL UNION
SELECT '6622','roltrappen en rolpaden, rolpaden' FROM DUAL UNION
SELECT '6630','goederen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6631','goederen, goederenliften' FROM DUAL UNION
SELECT '6632','goederen, goederenheffers' FROM DUAL UNION
SELECT '6633','goederen, baantransportmiddelen' FROM DUAL UNION
SELECT '6634','goederen, bandtransportmiddelen' FROM DUAL UNION
SELECT '6635','goederen, baktransportmiddelen' FROM DUAL UNION
SELECT '6636','goederen, hijswerktuigen' FROM DUAL UNION
SELECT '6637','goederen, vrije-baan-transportvoertuigen' FROM DUAL UNION
SELECT '6640','documenten, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6641','documenten, buizenpost' FROM DUAL UNION
SELECT '6642','documenten, railcontainer banen' FROM DUAL UNION
SELECT '6644','documenten, bandtransportmiddelen' FROM DUAL UNION
SELECT '6710','bediening en signalering, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6711','bediening en signalering, elektrotechnische systemen' FROM DUAL UNION
SELECT '6712','bediening en signalering, optische systemen' FROM DUAL UNION
SELECT '6713','bediening en signalering, pneumatische systemen' FROM DUAL UNION
SELECT '6714','bediening en signalering, ge<67>ntegreerde systemen' FROM DUAL UNION
SELECT '6720','gebouwautomatisering, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6721','gebouwautomatisering, elektrotechnische systemen' FROM DUAL UNION
SELECT '6722','gebouwautomatisering, optische systemen' FROM DUAL UNION
SELECT '6723','gebouwautomatisering, pneumatische systemen' FROM DUAL UNION
SELECT '6724','gebouwautomatisering, ge<67>ntegreerde systemen' FROM DUAL UNION
SELECT '6730','regelinstallaties klimaat en sanitair (op afstand), algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '6731','regelinstallaties klimaat en sanitair (op afstand), elektrotechnische systemen' FROM DUAL UNION
SELECT '6732','regelinstallaties klimaat en sanitair (op afstand), optische systemen' FROM DUAL UNION
SELECT '6733','regelinstallaties klimaat en sanitair (op afstand), pneumatische systemen' FROM DUAL UNION
SELECT '6734','regelinstallaties klimaat en sanitair (op afstand), ge<67>ntegreerde systemen' FROM DUAL UNION
SELECT '7110','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7111','standaard, meubileringen' FROM DUAL UNION
SELECT '7112','standaard, bewegwijzeringen' FROM DUAL UNION
SELECT '7113','standaard, kunstwerken' FROM DUAL UNION
SELECT '7114','standaard, decoraties e.d.' FROM DUAL UNION
SELECT '7120','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7121','bijzonder, meubileringen' FROM DUAL UNION
SELECT '7122','bijzonder, bewegwijzeringen' FROM DUAL UNION
SELECT '7123','bijzonder, specifieke voorz. (o.a. loopleuningen)' FROM DUAL UNION
SELECT '7210','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7211','standaard, meubilering' FROM DUAL UNION
SELECT '7212','standaard, lichtweringen' FROM DUAL UNION
SELECT '7213','standaard, gordijnvoorzieningen' FROM DUAL UNION
SELECT '7214','standaard, beschermende voorzieningen' FROM DUAL UNION
SELECT '7220','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7221','bijzonder, meubilering voor specifieke functiedoeleinden' FROM DUAL UNION
SELECT '7222','bijzonder, instrumenten/apparatuur' FROM DUAL UNION
SELECT '7310','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7311','standaard, keukenmeubilering' FROM DUAL UNION
SELECT '7312','standaard, keukenapparatuur' FROM DUAL UNION
SELECT '7320','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7321','bijzonder, keukenmeubilering' FROM DUAL UNION
SELECT '7322','bijzonder, keukenapparatuur' FROM DUAL UNION
SELECT '7410','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7411','standaard, sanitaire toestellen normaal' FROM DUAL UNION
SELECT '7412','standaard, sanitaire toestellen aangepast' FROM DUAL UNION
SELECT '7413','standaard, accessoires' FROM DUAL UNION
SELECT '7420','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7421','bijzonder, sanitaire toestellen voor bijzondere toepassing' FROM DUAL UNION
SELECT '7422','bijzonder, ingebouwde sanitaire voorzieningen' FROM DUAL UNION
SELECT '7510','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7511','standaard, gebouwonderhoudsvoorzieningen' FROM DUAL UNION
SELECT '7512','standaard, interieur onderhoudsvoorzieningen' FROM DUAL UNION
SELECT '7513','standaard, gevelonderhoudsvoorzieningen' FROM DUAL UNION
SELECT '7520','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7521','bijzonder, gebouwonderhoudsvoorzieningen' FROM DUAL UNION
SELECT '7522','bijzonder, interieur onderhoudsvoorzieningen' FROM DUAL UNION
SELECT '7523','bijzonder, gemechaniseerde gevelonderhoudsvoorzieningen' FROM DUAL UNION
SELECT '7610','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7611','standaard, meubileringen' FROM DUAL UNION
SELECT '7620','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '7621','bijzonder, gemechaniseerde voorzieningen' FROM DUAL UNION
SELECT '7622','bijzonder, specifieke voorzieningen' FROM DUAL UNION
SELECT '8110','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8111','standaard, meubilering' FROM DUAL UNION
SELECT '8112','standaard, bewegwijzering' FROM DUAL UNION
SELECT '8113','standaard, kunstwerken' FROM DUAL UNION
SELECT '8114','standaard, decoraties e.d.' FROM DUAL UNION
SELECT '8120','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8121','bijzonder, meubilering' FROM DUAL UNION
SELECT '8122','bijzonder, bewegwijzering' FROM DUAL UNION
SELECT '8123','bijzonder, specifieke voorzieningen (o.a. afvalbakken)' FROM DUAL UNION
SELECT '8210','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8211','standaard, meubilering' FROM DUAL UNION
SELECT '8212','standaard, lichtweringen/verduisteringen' FROM DUAL UNION
SELECT '8213','standaard, stofferingen' FROM DUAL UNION
SELECT '8220','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8221','bijzonder, meubilering voor specifieke functiedoeleinden' FROM DUAL UNION
SELECT '8222','bijzonder, instrumenten/apparatuur' FROM DUAL UNION
SELECT '8310','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8311','standaard, keukenmeubilering' FROM DUAL UNION
SELECT '8312','standaard, keukenapparatuur' FROM DUAL UNION
SELECT '8313','standaard, kleine keukeninventaris' FROM DUAL UNION
SELECT '8320','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8321','bijzonder, keukeninrichting' FROM DUAL UNION
SELECT '8322','bijzonder, keukenapparatuur' FROM DUAL UNION
SELECT '8323','bijzonder, kleine keukeninventaris' FROM DUAL UNION
SELECT '8324','bijzonder, transportmiddelen' FROM DUAL UNION
SELECT '8410','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8411','standaard, afvalvoorzieningen' FROM DUAL UNION
SELECT '8412','standaard, voorzieningen t.b.v. hygi<67>ne' FROM DUAL UNION
SELECT '8413','standaard, accessoires' FROM DUAL UNION
SELECT '8420','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8421','bijzonder, sanitaire toestellen voor bijzondere toepassing' FROM DUAL UNION
SELECT '8510','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8511','standaard, schoonmaakapparatuur' FROM DUAL UNION
SELECT '8512','standaard, vuilopslag' FROM DUAL UNION
SELECT '8513','standaard, vuiltransport' FROM DUAL UNION
SELECT '8520','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8521','bijzonder, schoonmaakapparatuur' FROM DUAL UNION
SELECT '8522','bijzonder, vuilopslag' FROM DUAL UNION
SELECT '8523','bijzonder, vuiltransport' FROM DUAL UNION
SELECT '8610','standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8611','standaard, meubileringen' FROM DUAL UNION
SELECT '8620','bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '8621','bijzonder, gemechaniseerde voorzieningen' FROM DUAL UNION
SELECT '8622','bijzonder, specifieke voorzieningen' FROM DUAL UNION
SELECT '9010','grondvoorzieningen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '9011','grondvoorzieningen, verwijderen obstakels' FROM DUAL UNION
SELECT '9012','grondvoorzieningen, grondwaterverlagingen' FROM DUAL UNION
SELECT '9013','grondvoorzieningen, drainagevoorzieningen' FROM DUAL UNION
SELECT '9020','opstallen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '9021','opstallen, gebouwtjes met speciale functie' FROM DUAL UNION
SELECT '9022','opstallen, overkappingen' FROM DUAL UNION
SELECT '9030','omheiningen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '9031','omheiningen, muren' FROM DUAL UNION
SELECT '9032','omheiningen, hekwerken' FROM DUAL UNION
SELECT '9033','omheiningen, overige afscheidingen' FROM DUAL UNION
SELECT '9034','omheiningen, toegangen' FROM DUAL UNION
SELECT '9040','terreinafwerkingen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '9041','terreinafwerkingen, verhardingen' FROM DUAL UNION
SELECT '9042','terreinafwerkingen, beplantingen' FROM DUAL UNION
SELECT '9043','terreinafwerkingen, waterpartijen' FROM DUAL UNION
SELECT '9044','terreinafwerkingen, keerwanden en balustrades' FROM DUAL UNION
SELECT '9045','terreinafwerkingen, pergolas' FROM DUAL UNION
SELECT '9050','terreinvoorzieningen, werktuigbouwkundig, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '9051','terreinvoorzieningen, werktuigbouwkundig, verwarmingsvoorzieningen' FROM DUAL UNION
SELECT '9052','terreinvoorzieningen, werktuigbouwkundig, afvoervoorzieningen' FROM DUAL UNION
SELECT '9053','terreinvoorzieningen, werktuigbouwkundig, watervoorzieningen' FROM DUAL UNION
SELECT '9054','terreinvoorzieningen, werktuigbouwkundig, gasvoorzieningen' FROM DUAL UNION
SELECT '9055','terreinvoorzieningen, werktuigbouwkundig, koudeopwekkingsvoorzieningen' FROM DUAL UNION
SELECT '9056','terreinvoorzieningen, werktuigbouwkundig, warmtedistributievoorzieningen' FROM DUAL UNION
SELECT '9057','terreinvoorzieningen, werktuigbouwkundig, luchtbehandelingsvoorzieningen' FROM DUAL UNION
SELECT '9058','terreinvoorzieningen, werktuigbouwkundig, regelingvoorzieningen' FROM DUAL UNION
SELECT '9060','terreinvoorzieningen, elektrotechnisch, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '9061','terreinvoorzieningen, elektrotechnisch, elektrotechnische en aardingsvoorzieningen' FROM DUAL UNION
SELECT '9062','terreinvoorzieningen, elektrotechnisch, krachtvoorzieningen' FROM DUAL UNION
SELECT '9063','terreinvoorzieningen, elektrotechnisch, lichtvoorzieningen' FROM DUAL UNION
SELECT '9064','terreinvoorzieningen, elektrotechnisch, communicatievoorzieningen' FROM DUAL UNION
SELECT '9065','terreinvoorzieningen, elektrotechnisch, beveiligingsvoorzieningen' FROM DUAL UNION
SELECT '9066','terreinvoorzieningen, elektrotechnisch, transportvoorzieningen' FROM DUAL UNION
SELECT '9067','terreinvoorzieningen, elektrotechnisch, beheervoorzieningen' FROM DUAL UNION
SELECT '9070','terreininrichtingen, standaard, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '9071','terreininrichtingen, standaard, terreinmeubilering' FROM DUAL UNION
SELECT '9072','terreininrichtingen, standaard, bewegwijzering' FROM DUAL UNION
SELECT '9073','terreininrichtingen, standaard, kunstwerken' FROM DUAL UNION
SELECT '9074','terreininrichtingen, standaard, decoraties e.d.' FROM DUAL UNION
SELECT '9080','terreininrichtingen, bijzonder, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '9081','terreininrichtingen, bijzonder, terreinmeubilering' FROM DUAL UNION
SELECT '9082','terreininrichtingen, bijzonder, specifieke voorzieningen' FROM DUAL UNION
SELECT '9083','terreininrichtingen, bijzonder, bijzondere verhardingen' FROM DUAL UNION
SELECT '0010','werkterreininrichting, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '0011','werkterreininrichting, bijkomende werken' FROM DUAL UNION
SELECT '0012','werkterreininrichting, personen/materiaalvoorzieningen' FROM DUAL UNION
SELECT '0013','werkterreininrichting, energievoorzieningen' FROM DUAL UNION
SELECT '0014','werkterreininrichting, beveiligingsvoorzieningen' FROM DUAL UNION
SELECT '0015','werkterreininrichting, doorwerkvoorzieningen' FROM DUAL UNION
SELECT '0016','werkterreininrichting, voorzieningen belendende percelen' FROM DUAL UNION
SELECT '0017','werkterreininrichting, onderhoudsvoorzieningen' FROM DUAL UNION
SELECT '0020','materieelvoorzieningen, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '0021','materieelvoorzieningen, transport' FROM DUAL UNION
SELECT '0022','materieelvoorzieningen, gereedschappen' FROM DUAL UNION
SELECT '0030','risicodekking, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '0031','risicodekking, verzekeringen' FROM DUAL UNION
SELECT '0032','risicodekking, waarborgen' FROM DUAL UNION
SELECT '0033','risicodekking, prijsstijgingen' FROM DUAL UNION
SELECT '0040','projectorganisatie, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '0041','projectorganisatie, administratie' FROM DUAL UNION
SELECT '0042','projectorganisatie, uitvoering' FROM DUAL UNION
SELECT '0043','projectorganisatie, documentatie' FROM DUAL UNION
SELECT '0050','bedrijfsorganisatie, algemeen (verzamelniveau)' FROM DUAL UNION
SELECT '0051','bedrijfsorganisatie, bestuur en directie' FROM DUAL UNION
SELECT '0052','bedrijfsorganisatie, winstregelingen' FROM DUAL;
-- Import routine voor het verwerken nvan Assets uit de O-Prognose dump
CREATE OR REPLACE PROCEDURE CONN_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_text VARCHAR2(20);
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_error NUMBER:=0;
v_objectcount NUMBER:=0;
v_volgnr VARCHAR2(5);
CURSOR c
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
CURSOR nlsfb_dis
IS
SELECT '1-Onderbouw' ins_omsch FROM DUAL
UNION
SELECT '2-Ruwbouw' ins_omsch FROM DUAL
UNION
SELECT '3-Afbouw' ins_omsch FROM DUAL
UNION
SELECT '4-Afwerkingen' ins_omsch FROM DUAL
UNION
SELECT '5-Installaties werktuigbouwkundig' ins_omsch FROM DUAL
UNION
SELECT '6-Installaties elektrotechnisch' ins_omsch FROM DUAL
UNION
SELECT '7-Vaste voorzieningen' ins_omsch FROM DUAL
UNION
SELECT '8-Losse gebruiks inventaris' ins_omsch FROM DUAL
UNION
SELECT '9-Terrein' AS ins_omsch FROM DUAL
UNION
SELECT '0-Indirecte projectvoorzieningen' AS ins_omsch FROM DUAL;
CURSOR nlsfb_grp
IS
SELECT '11-bodemvoorzieningen' groep FROM DUAL
UNION
SELECT '13-vloeren op grondslag' groep FROM DUAL
UNION
SELECT '16-funderingsconstructie' groep FROM DUAL
UNION
SELECT '17-paalfundering' groep FROM DUAL
UNION
SELECT '19-onderhoud algemeen' groep FROM DUAL
UNION
SELECT '21-buitenwanden' groep FROM DUAL
UNION
SELECT '22-binnenwanden' FROM DUAL
UNION
SELECT '23-vloeren, galerijen' FROM DUAL
UNION
SELECT '24-trappen en hellingen' FROM DUAL
UNION
SELECT '25-binnenzijde gevelconstructie' FROM DUAL
UNION
SELECT '26-vloerconstructie' FROM DUAL
UNION
SELECT '27-daken' FROM DUAL
UNION
SELECT '28-hoofddraagkonstrukties' FROM DUAL
UNION
SELECT '29-draagconstructie' FROM DUAL
UNION
SELECT '31-buitenwandopeningen' FROM DUAL
UNION
SELECT '32-binnenwandopeningen' FROM DUAL
UNION
SELECT '33-vloeropeningen' FROM DUAL
UNION
SELECT '34-balustrades en leuningen' FROM DUAL
UNION
SELECT '35-plafonds' FROM DUAL
UNION
SELECT '37-dakopeningen' FROM DUAL
UNION
SELECT '38-inbouwpakketten' FROM DUAL
UNION
SELECT '39-afbouw' FROM DUAL
UNION
SELECT '41-buitenwandafwerkingen' FROM DUAL
UNION
SELECT '42-binnenwandafwerkingen' FROM DUAL
UNION
SELECT '43-vloerafwerkingen' FROM DUAL
UNION
SELECT '44-trap- en hellingafwerkingen' FROM DUAL
UNION
SELECT '45-plafondafwerkingen' FROM DUAL
UNION
SELECT '46-schilderwerk' FROM DUAL
UNION
SELECT '47-dakafwerkingen' FROM DUAL
UNION
SELECT '48-afwerkingspakketten' FROM DUAL
UNION
SELECT '49-afwerking algemeen' FROM DUAL
UNION
SELECT '51-warmte-opwekking' FROM DUAL
UNION
SELECT '52-afvoeren' FROM DUAL
UNION
SELECT '53-water' FROM DUAL
UNION
SELECT '54-gas' FROM DUAL
UNION
SELECT '55-koude-opwekking' FROM DUAL
UNION
SELECT '56-warmtedistributie' FROM DUAL
UNION
SELECT '57-luchtbehandeling' FROM DUAL
UNION
SELECT '58-regeling klimaat en sanitair' FROM DUAL
UNION
SELECT '59-mechanische installaties' FROM DUAL
UNION
SELECT '61-centrale elektrotechnische voorzieningen' FROM DUAL
UNION
SELECT '62-kracht' FROM DUAL
UNION
SELECT '63-verlichting' FROM DUAL
UNION
SELECT '64-communicatie' FROM DUAL
UNION
SELECT '65-beveiliging' FROM DUAL
UNION
SELECT '66-transport' FROM DUAL
UNION
SELECT '67-gebouwbeheersysteem' FROM DUAL
UNION
SELECT '69-electrische installaties algemeen' FROM DUAL
UNION
SELECT '71-vaste verkeersvoorzieningen' FROM DUAL
UNION
SELECT '72-vaste gebruikersvoorzieningen' FROM DUAL
UNION
SELECT '73-vaste keukenvoorzieningen' FROM DUAL
UNION
SELECT '74-vaste sanitaire voorzieningen' FROM DUAL
UNION
SELECT '75-vaste onderhoudsvoorzieningen' FROM DUAL
UNION
SELECT '76-vaste opslagvoorzieningen' FROM DUAL
UNION
SELECT '79-vaste inrichtingen' FROM DUAL
UNION
SELECT '80-losse inrichting' FROM DUAL
UNION
SELECT '81-losse inventaris voor verkeersruimten' FROM DUAL
UNION
SELECT '82-losse inventaris voor gebruiksruimten' FROM DUAL
UNION
SELECT '83-losse keukeninventaris' FROM DUAL
UNION
SELECT '84-losse sanitaire inventaris' FROM DUAL
UNION
SELECT '85-losse schoonmaakinventaris' FROM DUAL
UNION
SELECT '86-losse opberginventaris' FROM DUAL
UNION
SELECT '89-losse inventaris' FROM DUAL
UNION
SELECT '90-terrein' FROM DUAL
UNION
SELECT '91-grondvoorzieningen' FROM DUAL
UNION
SELECT '92-opstallen' FROM DUAL
UNION
SELECT '93-omeheiningen' FROM DUAL
UNION
SELECT '94-terreinafwerking' FROM DUAL
UNION
SELECT '95-terreininstallaties, werktuigkundig' FROM DUAL
UNION
SELECT '96-terreininstallaties, elektrotechnisch' FROM DUAL
UNION
SELECT '97-terreininrichting standaard' FROM DUAL
UNION
SELECT '98-terreininrichting bijzonder' FROM DUAL
UNION
SELECT '99-terrein algemeen' FROM DUAL
UNION
SELECT '00-indirecte projectvoorzieningen' FROM DUAL;
BEGIN
v_count_error := 0;
header_is_valid := 0;
v_count_tot := 0;
v_count_import := 0;
v_errormsg := 'Eerts fac_imp_ins opschonen';
DELETE fac_imp_ins;
COMMIT;
v_errormsg := 'Hebben we al NL_SFB disciplines ';
SELECT COUNT(*) into v_count FROM ins_discipline where ins_discipline_omschrijving IN ('0-Algemeen','3-Afbouw');
IF v_count=0 THEN
v_errormsg := 'NLFSB structuur aanlegen';
FOR rec_dis IN nlsfb_dis
LOOP
BEGIN
SELECT ins_discipline_key INTO v_discipline_key FROM ins_discipline where UPPER(ins_discipline_omschrijving)=UPPER(rec_dis.ins_omsch);
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO ins_tab_discipline (ins_discipline_omschrijving,
ins_discipline_min_level)
VALUES (rec_dis.ins_omsch, 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);
END;
END LOOP;
END IF;
FOR rec_grp IN nlsfb_grp
LOOP
SELECT ins_discipline_key
INTO v_discipline_key
FROM ins_tab_discipline
WHERE SUBSTR (ins_discipline_omschrijving, 1, 2) =
SUBSTR (rec_grp.groep, 1, 1) || '-';
BEGIN
SELECT ins_srtgroep_key
INTO v_srtgroep_key
FROM ins_srtgroep
WHERE UPPER (ins_srtgroep_omschrijving) = UPPER (rec_grp.groep)
AND ins_discipline_key = v_discipline_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO ins_srtgroep (ins_discipline_key,
ins_srtgroep_omschrijving)
VALUES (v_discipline_key, rec_grp.groep);
END;
END LOOP;
FOR rec IN c
LOOP
BEGIN
V_count_import := v_count_import +1;
v_errormsg := 'Fout FETCH te importeren rij '||v_count_import;
v_error:=0;
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 := '';
v_gebouw_code:='';
-- Lees alle veldwaarden
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_gebouw_code);
v_errormsg := 'Fout opvragen K3 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_ins_srtdeel_code);
v_errormsg := 'Fout opvragen K4 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_ins_deel_opmerking);
v_errormsg := 'Fout opvragen K6 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_kenmerk1); -- Taak omschrijving
v_errormsg := 'Fout opvragen K8 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_ins_deel_aantal_text);
v_errormsg := 'Fout opvragen K9 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_kenmerk2); -- eenheid
v_errormsg := 'Fout opvragen K10 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_kenmerk3); -- kosten
v_errormsg := 'Fout opvragen K16 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 16, v_kenmerk4); -- startjaar
v_errormsg := 'Fout opvragen K11 te importeren rij '||v_count_import;
fac.imp_getfield_nr (v_newline, c_fielddelimitor, 11, v_kenmerk5); -- cyclus
IF LENGTH(v_gebouw_code) > 0 -- AND UPPER(v_kenmerk1) NOT LIKE 'HERSTELLEN%'
THEN
v_errormsg := 'vervangen , door . '||v_count_import;
v_ins_srtdeel_code := REPLACE(v_ins_srtdeel_code,',','.');
v_errormsg := 'Tekens uit prijs verwijderen '||v_count_import;
v_kenmerk3 := REPLACE(v_kenmerk3,'<27> ',''); -- euro teken van prijs halen
v_kenmerk3 := REPLACE(v_kenmerk3,'.',''); -- duizentallen verwijderen
v_kenmerk3 := REPLACE(v_kenmerk3,',','.'); -- , omzetten naar .
-- 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,ins_discipline_key
INTO d_ins_discipline_omschrijving, v_discipline_key
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
v_errormsg:='Fout bij achterhalen discipline';
v_error:=1;
--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,ins_srtgroep_key
INTO d_ins_srtgroep_omschrijving,v_srtgroep_key
FROM ins_srtgroep sg
WHERE SUBSTR (sg.ins_srtgroep_omschrijving, 1, 2) = SUBSTR (v_ins_srtdeel_code, 1, 2);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_errormsg:='Fout bij achterhalen srtgroep';
v_error :=1;
END;
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_srtdeel_omschrijving: ' || v_ins_srtdeel_code ||'('||v_count_import||')';
d_ins_srtdeel_omschrijving:='';
SELECT TRIM(omsch) INTO v_ins_srtdeel_omschrijving FROM conn_v_select_nlsfb_grpsoort WHERE code=v_ins_srtdeel_code;
BEGIN
SELECT sd.ins_srtdeel_omschrijving
INTO d_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;
BEGIN
SELECT alg_locatie_code, alg_gebouw_upper, alg_verdieping_code, alg_ruimte_nr
INTO v_alg_locatie_code,v_alg_gebouw_code, v_alg_verdieping_volgnr, v_alg_ruimte_nr
FROM alg_v_ruimte_gegevens where alg_locatie_code=SUBSTR(v_gebouw_code,3,6) AND alg_verdieping_upper='00' AND alg_ruimte_nr='1';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_errormsg:= 'Locatie/Gebouw heet geen Verdipeing00 en RuimteNr 1';
v_error:=1;
END;
v_errormsg := '1 Fout bij toevoegen te impoteren startjaar('||v_ins_deel_omschrijving||'): ' || v_kenmerk15;
v_ins_deel_aanmaak := SYSDATE;
/*
IF v_kenmerk4 IS NOT NULL
THEN
IF v_kenmerk4='0' THEN
v_ins_deel_aanmaak := to_date('01012022' , 'ddmmyyyy');
ELSE
v_startjaar:= to_number(v_kenmerk4);
v_cyclus := to_number(v_kenmerk5);
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; */
v_errormsg := 'Fout bij toevoegen te impoteren v_ins_deel_aantal_txt: ' || v_ins_deel_aantal;
IF v_ins_deel_aantal_text IS NOT NULL
THEN
v_ins_deel_aantal_text := REPLACE(v_ins_deel_aantal_text,'.','');
v_ins_deel_aantal_text := REPLACE(v_ins_deel_aantal_text,',','.');
v_ins_deel_aantal := to_number(v_ins_deel_aantal_text);
ELSE
v_ins_deel_aantal := 1;
END IF;
v_errormsg := 'Fout bij ophalen ins_deel : '||v_ins_deel_opmerking;
v_ins_deel_omschrijving:='';
v_volgnr:=0;
v_objectcount:=0;
BEGIN
SELECT DISTINCT (ins_deel_omschrijving) INTO v_ins_deel_omschrijving
FROM FAC_IMP_INS
WHERE UPPER(ins_deel_opmerking) = UPPER(v_ins_deel_opmerking)
AND alg_locatie_code=SUBSTR(v_gebouw_code,3,6)
AND INS_SRTDEEL_CODE=v_ins_srtdeel_code;
EXCEPTION
WHEN NO_DATA_FOUND THEN
SELECT COUNT(*) INTO v_objectCount
FROM (SELECT DISTINCT (ins_deel_omschrijving) FROM FAC_IMP_INS
WHERE alg_locatie_code=SUBSTR(v_gebouw_code,3,6)
AND INS_SRTDEEL_CODE=v_ins_srtdeel_code);
v_volgnr:=v_objectcount+1;
v_ins_deel_omschrijving := SUBSTR(v_gebouw_code,3,6)||'-'||v_ins_srtdeel_code||'-'||v_volgnr;
END;
IF v_error=0 THEN
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, -- Taak omschrijving
ins_kenmerkwaarde2, -- eenheid ?
ins_kenmerkwaarde3, -- kosten ?
ins_kenmerkwaarde4, -- startjaar
ins_kenmerkwaarde5,
ins_kenmerkwaarde6) -- cyclus
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),
v_ins_deel_omschrijving,
SUBSTR(v_ins_deel_opmerking, 1, 320),
SUBSTR(v_gebouw_code,3,6),
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),
v_kenmerk1,
v_kenmerk2,
v_kenmerk3,
v_kenmerk4,
v_kenmerk5,
v_count_import);
COMMIT;
ELSE
fac.imp_writelog (p_import_key,
'W',
v_errormsg,
v_errorhint);
END IF;
ELSE
v_errormsg := 'Locatie code '||v_gebouw_code||'-'||v_count_import;
fac.imp_writelog (p_import_key,
'W',
v_errormsg,
v_errorhint);
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;
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;
/
CREATE OR REPLACE PROCEDURE CONN_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;
v_taak_cyclus NUMBER;
v_taak_afmeld_date DATE;
v_taak_afmeld_jaar NUMBER;
v_taak_nextyear NUMBER;
v_xcprecords 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 (rec.INS_KENMERKWAARDE3);
-- 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
AND ins_deel_verwijder IS NULL;
--Haal de taakgroep op
v_errorhint := 'Problemen bij ophalen taakcategorie';
SELECT ins_discipline_key
INTO v_taakcat_key
FROM INS_TAB_DISCIPLINE
WHERE UPPER(ins_discipline_omschrijving) = 'MJOB'
AND ins_discipline_module='CTR'
AND ins_discipline_verwijder IS NULL;
--v_taakcat_key:=2621; -- MJOB
v_taak_cyclus := TO_NUMBER(COALESCE(rec.ins_kenmerkwaarde5,0));
v_taak_nextyear := TO_NUMBER(rec.ins_kenmerkwaarde4);
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_kenmerkwaarde1,0,50);
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
IF v_taak_cyclus=0 THEN
v_taak_cyclus:=99;
END IF;
-- Controle of er al een xcp record vor dit ins_del srtcontrole al aanwezig is.
SELECT COUNT(*)
INTO v_xcprecords
FROM ins_srtcontroledl_xcp
WHERE ins_srtcontrole_key=v_srtcontrole_key
AND ins_deel_key=v_deel_key;
IF v_xcprecords=0 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,
v_taak_cyclus,
v_materiaal,
v_taak_afmeld_date,
rec.ins_kenmerkwaarde2);
END IF;
-- 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_kenmerkwaarde1,0,50);
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,
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_srtcontroledl_xcp_aantal,
ins_deel_key,
ins_srtcontroledl_xcp_startdat,
ins_srtcontroledl_xcp_aanteh)
VALUES (v_srtcontrole_key,
v_materiaal,
v_taak_cyclus,
4,
rec.ins_deel_aantal,
v_deel_key,
v_taak_afmeld_date,
rec.ins_kenmerkwaarde2)
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||'-'||rec.ins_deel_omschrijving||'-'||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 CONN_UPDATE_ASSETS
-- Migratie Views
-- Export contract bijlages
CREATE OR REPLACE FORCE VIEW CONN_V_RAP_EXP_CNT_BIJLAGEN
(
module,
contract_key,
contract_nr,
contract_nr_extern,
contractsoort,
srtkenmerk,
fac_bijlage_key,
filenaam,
directory
)
AS
SELECT 'CNT',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_nummer,
csd.ins_discipline_omschrijving contractsoort,
ck.cnt_kenmerk_omschrijving,
fb.fac_bijlagen_key,
fb.fac_bijlagen_filename filename,
fb.fac_bijlagen_disk_directory
FROM cnt_srtkenmerk csk,
cnt_kenmerk ck,
fac_bijlagen fb,
cnt_contract c,
cnt_v_aanwezigdiscipline csd
WHERE csk.cnt_srtkenmerk_kenmerktype='M'
AND ck.cnt_srtkenmerk_key = csk.cnt_srtkenmerk_key
AND fb.fac_bijlagen_kenmerk_key=ck.cnt_kenmerk_key
AND fb.fac_bijlagen_verwijder IS NULL
AND c.cnt_contract_key = fb.fac_bijlagen_refkey
AND c.cnt_contract_verwijder IS NULL
AND csd.ins_discipline_key = c.ins_discipline_key;
CREATE OR REPLACE VIEW CONN_V_TAKEN_BIJLAGES
(
discipline,
groep,
objectsoort,
objectid,
opmerking,
object_aanmaak,
object_vervaldatum,
srtcontrole,
srtcontrole_periode,
srtcontrole_eenheid,
controle_datum,
controle_status,
controle_behandelaar,
controle_opmerking,
bijlage_key,
object_bijlages,
bijlage_directory
)
AS
SELECT disc.ins_discipline_omschrijving discipline,
isg.ins_srtgroep_omschrijving groep,
id.ins_srtdeel_omschrijving objectsoort,
i.ins_deel_omschrijving objectid,
i.ins_deel_opmerking opmerking,
i.ins_deel_aanmaak object_aanmaak,
i.ins_deel_vervaldatum object_vervaldatum,
isc.ins_srtcontrole_omschrijving srtcontrole,
isc.ins_srtcontrole_periode srtcontrole_periode,
DECODE (isc.ins_srtcontrole_eenheid, 1, 'Dagen', 'Jaren') srtcontrole_eenheid,
idc.ins_deelsrtcontrole_datum controle_datum,
DECODE (idc.ins_deelsrtcontrole_status,
0, 'Ingepland',
2, 'Gestart/In behandeling',
5, 'Afgemeld/Gereed gemeld',
6, 'Afgerond',
'Onbekend') controle_status,
p.prs_perslid_naam_friendly controle_behandelaar,
idc.ins_deelsrtcontrole_opmerking controle_opmerking,
fac.fac_bijlagen_key,
fac.fac_bijlagen_filename object_bijlages,
fac.fac_bijlagen_disk_directory
FROM ins_deelsrtcontrole idc,
ins_deel i,
ins_srtdeel id,
ins_srtgroep isg,
ins_discipline disc,
ins_srtcontrole isc,
ins_srtkenmerk isk,
ins_kenmerk ikm,
fac_bijlagen fac,
prs_v_perslid_fullnames_all p
WHERE isk.ins_srtkenmerk_omschrijving = 'Documenten'
AND isk.ins_srtkenmerk_kenmerktype = 'M'
AND ikm.ins_srtkenmerk_key = isk.ins_srtkenmerk_key
AND fac.fac_bijlagen_kenmerk_key = ikm.ins_kenmerk_key
AND fac.fac_bijlagen_refkey = i.ins_deel_key
AND idc.INS_DEEL_KEY = i.ins_deel_key
AND i.ins_deel_verwijder IS NULL
AND isc.ins_srtcontrole_key = idc.ins_srtcontrole_key
AND p.prs_perslid_key = idc.prs_perslid_key
AND id.ins_srtdeel_key = i.ins_srtdeel_key
AND isg.ins_srtgroep_key = id.ins_srtgroep_key
AND disc.ins_discipline_key = isg.ins_discipline_key;
-- Export object bijlages
CREATE OR REPLACE VIEW CONN_V_TAKEN_BIJLAGES_ALL
AS
SELECT i.ins_deel_omschrijving objectid,
i.ins_discipline_omschrijving discipline,
i.ins_srtgroep_omschrijving groep,
i.ins_srtdeel_omschrijving objectsoort,
i.alg_gebouw_code locatie_code,
i.alg_gebouw_naam gebouw_naam,
isc.ins_srtcontrole_omschrijving srt_controle,
isc.ins_srtcontrole_periode periode,
DECODE(isc.ins_srtcontrole_eenheid,1, 'Dag', 2,'Maand',3,'Jaar') eenheid,
idc.ins_deelsrtcontrole_datum controle_datum,
idc.ins_deelsrtcontrole_opmerking controle_opmerking,
DECODE(idc.ins_deelsrtcontrole_status,0,'Ingepland',2,'Gestart/In behandeling', 5,'Afgemeld/Gereed gemeld', 6,'Afgerond') controle_status,
bijlages.srtkenmerk,
bijlages.fac_bijlagen_filename bestandnaam,
bijlages.fac_bijlagen_disk_directory||'/'||bijlages.fac_bijlagen_filename pad
FROM ins_v_deel_gegevens i, ins_srtcontrole isc, INS_DEELSRTCONTROLE idc,
(SELECT fb.* ,isk.ins_srtkenmerk_omschrijving srtkenmerk
FROM fac_bijlagen fb, ins_kenmerk ikm, ins_srtkenmerk isk
WHERE fb.fac_bijlagen_kenmerk_key=ikm.ins_kenmerk_key
AND isk.ins_srtkenmerk_key = ikm.ins_srtkenmerk_key
AND isk.ins_srtkenmerk_key IN (1261,1501)) bijlages
WHERE i.ins_srtdeel_key = isc.ins_srtinstallatie_key
AND idc.ins_deel_key = i.ins_deel_key
AND idc.ins_srtcontrole_key = isc.ins_srtcontrole_key
AND bijlages.fac_bijlagen_refkey = i.ins_deel_key (+)
AND TRUNC(idc.ins_deelsrtcontrole_datum) > TO_DATE('01-01-2014','DD-MM-YYYY')
ORDER BY 1;
------ 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