CSUN#25914 -- koppeling om locaties te importeren of aan te passen
svn path=/Customer/trunk/; revision=18658
This commit is contained in:
607
CSUN/CSUN.sql
607
CSUN/CSUN.sql
@@ -807,7 +807,7 @@ AS
|
|||||||
l.alg_locatie_adres,
|
l.alg_locatie_adres,
|
||||||
l.alg_locatie_postcode,
|
l.alg_locatie_postcode,
|
||||||
l.alg_locatie_plaats,
|
l.alg_locatie_plaats,
|
||||||
(SELECT u.fac_usrdata_code
|
(SELECT u.fac_usrdata_omschr
|
||||||
FROM fac_usrdata u, alg_onrgoedkenmerk ogk
|
FROM fac_usrdata u, alg_onrgoedkenmerk ogk
|
||||||
WHERE alg_kenmerk_key = 1000
|
WHERE alg_kenmerk_key = 1000
|
||||||
AND ogk.alg_onrgoed_key = l.alg_locatie_key
|
AND ogk.alg_onrgoed_key = l.alg_locatie_key
|
||||||
@@ -1019,12 +1019,12 @@ END;
|
|||||||
/
|
/
|
||||||
|
|
||||||
|
|
||||||
-- TODO: Projectnummer toevoegen aan import en imp tabel. !!!!!!!!!!!!!!!!!!!!!!!!!!
|
CREATE OR REPLACE PROCEDURE csun_import_project (p_import_key IN NUMBER)
|
||||||
CREATE OR REPLACE PROCEDURE csun_import_onrgoed (p_import_key IN NUMBER)
|
|
||||||
AS
|
AS
|
||||||
c_fielddelimitor VARCHAR2 (1) := ';';
|
c_fielddelimitor VARCHAR2 (1) := ';';
|
||||||
v_newline VARCHAR2 (1000); -- Input line
|
v_newline VARCHAR2 (1000); -- Input line
|
||||||
v_errormsg VARCHAR2 (1000);
|
v_errormsg VARCHAR2 (1000);
|
||||||
|
v_error_hint VARCHAR2 (1000);
|
||||||
oracle_err_num NUMBER;
|
oracle_err_num NUMBER;
|
||||||
oracle_err_mes VARCHAR2 (200);
|
oracle_err_mes VARCHAR2 (200);
|
||||||
header_is_valid NUMBER;
|
header_is_valid NUMBER;
|
||||||
@@ -1032,22 +1032,15 @@ AS
|
|||||||
v_error NUMBER (1);
|
v_error NUMBER (1);
|
||||||
v_aanduiding VARCHAR2 (200);
|
v_aanduiding VARCHAR2 (200);
|
||||||
-- De importvelden:
|
-- De importvelden:
|
||||||
v_prjnr VARCHAR2 (10);
|
v_accountcode VARCHAR2 (255); --
|
||||||
v_regio_omschrijving VARCHAR2 (255); -- 30
|
v_project VARCHAR2 (255); -- 8
|
||||||
v_regio_key NUMBER (10);
|
|
||||||
v_district_omschrijving VARCHAR2 (255); -- 30
|
|
||||||
v_district_key NUMBER (10);
|
|
||||||
v_locatie_code VARCHAR2 (255); -- 10
|
v_locatie_code VARCHAR2 (255); -- 10
|
||||||
v_locatie_omschrijving VARCHAR2 (255); -- 30
|
v_locatie_omschrijving VARCHAR2 (255); -- 30
|
||||||
v_locatie_adres VARCHAR2 (255); -- 35
|
v_locatie_adres VARCHAR2 (255); -- 35
|
||||||
v_locatie_postcode VARCHAR2 (255); -- 12
|
v_locatie_postcode VARCHAR2 (255); -- 12
|
||||||
v_locatie_plaats VARCHAR2 (255); -- 30
|
v_locatie_plaats VARCHAR2 (255); -- 30
|
||||||
v_client VARCHAR2 (255); --40
|
v_dm VARCHAR2 (255); -- 100
|
||||||
v_client_key NUMBER (10);
|
v_bu VARCHAR2 (255);
|
||||||
v_bud VARCHAR2 (255); -- 100
|
|
||||||
v_bud_key NUMBER (10);
|
|
||||||
v_bb VARCHAR2 (255); -- 100
|
|
||||||
v_bb_key NUMBER (10);
|
|
||||||
v_kenmerk1 VARCHAR2 (255);
|
v_kenmerk1 VARCHAR2 (255);
|
||||||
v_kenmerk2 VARCHAR2 (255);
|
v_kenmerk2 VARCHAR2 (255);
|
||||||
v_kenmerk3 VARCHAR2 (255);
|
v_kenmerk3 VARCHAR2 (255);
|
||||||
@@ -1062,11 +1055,12 @@ AS
|
|||||||
WHERE fac_import_key = p_import_key
|
WHERE fac_import_key = p_import_key
|
||||||
ORDER BY fac_imp_file_index;
|
ORDER BY fac_imp_file_index;
|
||||||
BEGIN
|
BEGIN
|
||||||
|
v_error_hint := 'Verwijderen oude records';
|
||||||
-- Eerst opruiming
|
-- Eerst opruiming
|
||||||
DELETE FROM imp_log
|
DELETE FROM imp_log
|
||||||
WHERE fac_import_key = p_import_key;
|
WHERE fac_import_key = p_import_key;
|
||||||
|
|
||||||
DELETE FROM fac_imp_onrgoed1;
|
DELETE FROM csun_imp_project;
|
||||||
|
|
||||||
header_is_valid := 0;
|
header_is_valid := 0;
|
||||||
v_count := 0;
|
v_count := 0;
|
||||||
@@ -1075,332 +1069,73 @@ BEGIN
|
|||||||
FOR rec1 IN c1
|
FOR rec1 IN c1
|
||||||
LOOP
|
LOOP
|
||||||
BEGIN
|
BEGIN
|
||||||
v_errormsg := 'Fout FETCH te importeren rij';
|
v_error_hint := 'Fout FETCH te importeren rij';
|
||||||
v_newline := rec1.fac_imp_file_line;
|
v_newline := rec1.fac_imp_file_line;
|
||||||
v_errormsg := 'Fout opvragen te importeren rij';
|
v_error_hint := 'Fout opvragen te importeren rij';
|
||||||
v_aanduiding := '';
|
v_aanduiding := '';
|
||||||
v_error := 0;
|
v_error := 0;
|
||||||
-- Lees alle veldwaarden
|
-- Lees alle veldwaarden
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prjnr);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_accountcode);
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_regio_omschrijving);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_project);
|
||||||
fac.imp_getfield (v_newline,
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_bu);
|
||||||
c_fielddelimitor,
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_dm);
|
||||||
v_district_omschrijving);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_omschrijving);
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_code);
|
|
||||||
fac.imp_getfield (v_newline,
|
|
||||||
c_fielddelimitor,
|
|
||||||
v_locatie_omschrijving);
|
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_adres);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_adres);
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_postcode);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_postcode);
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_plaats);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_plaats);
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_client);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_code);
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_bud);
|
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_bb);
|
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk1);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk1);
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk2);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk2);
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk3);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk3);
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk4);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk4);
|
||||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk5);
|
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk5);
|
||||||
|
|
||||||
v_regio_key := '';
|
|
||||||
v_district_key := '';
|
|
||||||
v_client_key := '';
|
|
||||||
v_bud_key := '';
|
|
||||||
v_bb_key := '';
|
|
||||||
|
|
||||||
v_aanduiding :=
|
v_aanduiding :=
|
||||||
v_locatie_code || '|' || v_locatie_omschrijving || '| ';
|
v_locatie_code || '|' || v_locatie_omschrijving || '| ';
|
||||||
|
|
||||||
IF (header_is_valid = 0)
|
IF (header_is_valid = 0)
|
||||||
THEN
|
THEN
|
||||||
IF UPPER (v_regio_omschrijving) = 'REGIOOMSCHRIJVING'
|
IF UPPER (v_accountcode) = 'ACCOUNTCODE'
|
||||||
AND UPPER (v_locatie_postcode) = 'POSTCODE'
|
AND UPPER (v_project) = 'PROJECT'
|
||||||
AND UPPER (v_bb) = 'BB'
|
AND UPPER (v_bu) = 'BU'
|
||||||
|
AND UPPER (v_locatie_omschrijving) = 'OMSCHRIJVING'
|
||||||
|
AND UPPER (v_dm) = 'DM'
|
||||||
THEN
|
THEN
|
||||||
header_is_valid := 1;
|
header_is_valid := 1;
|
||||||
END IF;
|
END IF;
|
||||||
ELSE
|
ELSE
|
||||||
|
|
||||||
-- Controleer alle veldwaarden
|
|
||||||
IF LENGTH (v_regio_omschrijving) > 30
|
|
||||||
THEN
|
|
||||||
v_regio_omschrijving := SUBSTR (v_regio_omschrijving, 1, 30);
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'W',
|
|
||||||
v_aanduiding || 'District-aanduiding is te lang',
|
|
||||||
'Aanduiding wordt afgebroken tot <'
|
|
||||||
|| v_regio_omschrijving
|
|
||||||
|| '>');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
BEGIN
|
|
||||||
SELECT alg_regio_key
|
|
||||||
INTO v_regio_key
|
|
||||||
FROM alg_regio
|
|
||||||
WHERE alg_regio_verwijder IS NULL
|
|
||||||
AND UPPER (alg_regio_omschrijving) =
|
|
||||||
UPPER (v_regio_omschrijving);
|
|
||||||
EXCEPTION
|
|
||||||
WHEN NO_DATA_FOUND
|
|
||||||
THEN
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'E',
|
|
||||||
v_aanduiding || 'Regio kan niet gevonden worden',
|
|
||||||
'Controleer regio notatie! <'
|
|
||||||
|| v_regio_omschrijving
|
|
||||||
|| '>');
|
|
||||||
v_error := 1;
|
|
||||||
END;
|
|
||||||
|
|
||||||
--
|
|
||||||
IF LENGTH (v_district_omschrijving) > 30
|
|
||||||
THEN
|
|
||||||
v_district_omschrijving :=
|
|
||||||
SUBSTR (v_district_omschrijving, 1, 30);
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'W',
|
|
||||||
v_aanduiding || 'District-aanduiding is te lang',
|
|
||||||
'Aanduiding wordt afgebroken tot <'
|
|
||||||
|| v_district_omschrijving
|
|
||||||
|| '>');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
BEGIN
|
|
||||||
SELECT alg_district_key
|
|
||||||
INTO v_district_key
|
|
||||||
FROM alg_district
|
|
||||||
WHERE alg_district_verwijder IS NULL
|
|
||||||
AND UPPER (alg_district_omschrijving) =
|
|
||||||
UPPER (v_district_omschrijving);
|
|
||||||
EXCEPTION
|
|
||||||
WHEN NO_DATA_FOUND
|
|
||||||
THEN
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'E',
|
|
||||||
v_aanduiding || 'District kan niet gevonden worden',
|
|
||||||
'Controleer district notatie! <'
|
|
||||||
|| v_district_omschrijving
|
|
||||||
|| '>');
|
|
||||||
v_error := 1;
|
|
||||||
END;
|
|
||||||
|
|
||||||
--
|
|
||||||
IF LENGTH (v_locatie_code) > 10
|
|
||||||
THEN
|
|
||||||
v_locatie_code := SUBSTR (v_locatie_code, 1, 10);
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'W',
|
|
||||||
v_aanduiding || 'Locatiecode-aanduiding is te lang',
|
|
||||||
'Aanduiding wordt afgebroken tot <'
|
|
||||||
|| v_locatie_code
|
|
||||||
|| '>');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
--
|
|
||||||
IF LENGTH (v_locatie_omschrijving) > 50
|
|
||||||
THEN
|
|
||||||
v_locatie_omschrijving :=
|
|
||||||
SUBSTR (v_locatie_omschrijving, 1, 50);
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'W',
|
|
||||||
v_aanduiding || 'Locatie-aanduiding is te lang',
|
|
||||||
'Aanduiding wordt afgebroken tot <'
|
|
||||||
|| v_locatie_omschrijving
|
|
||||||
|| '>');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
--
|
|
||||||
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
|
|
||||||
|| 'Locatie-aanduiding bezoek-adres is te lang',
|
|
||||||
'Aanduiding wordt afgebroken tot <'
|
|
||||||
|| v_locatie_adres
|
|
||||||
|| '>');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
--
|
|
||||||
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
|
|
||||||
|| 'Postcode-aanduiding bezoek-adres is te lang',
|
|
||||||
'Aanduiding wordt afgebroken tot <'
|
|
||||||
|| v_locatie_postcode
|
|
||||||
|| '>');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
--
|
|
||||||
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 || 'Plaats-aanduiding bezoek-adres is te lang',
|
|
||||||
'Aanduiding wordt afgebroken tot <'
|
|
||||||
|| v_locatie_plaats
|
|
||||||
|| '>');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
--
|
|
||||||
IF LENGTH (v_client) > 40
|
|
||||||
THEN
|
|
||||||
v_client := SUBSTR (v_client, 1, 40);
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'W',
|
|
||||||
v_aanduiding || 'client-aanduiding is te lang',
|
|
||||||
'Aanduiding wordt afgebroken tot <' || v_client || '>');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF v_client IS NOT NULL
|
|
||||||
THEN
|
|
||||||
BEGIN
|
|
||||||
SELECT fac_usrdata_key
|
|
||||||
INTO v_client_key
|
|
||||||
FROM fac_usrdata
|
|
||||||
WHERE fac_usrdata_verwijder IS NULL
|
|
||||||
AND fac_usrtab_key = 1
|
|
||||||
AND UPPER (fac_usrdata_omschr) = UPPER (v_client);
|
|
||||||
EXCEPTION
|
|
||||||
WHEN NO_DATA_FOUND
|
|
||||||
THEN
|
|
||||||
INSERT INTO fac_usrdata (fac_usrtab_key,
|
|
||||||
fac_usrdata_code,
|
|
||||||
fac_usrdata_omschr)
|
|
||||||
VALUES (1,
|
|
||||||
SUBSTR (v_client, 1, 40),
|
|
||||||
SUBSTR (v_client, 1, 60))
|
|
||||||
RETURNING fac_usrdata_key INTO v_client_key;
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'I',
|
|
||||||
v_aanduiding || 'Client wordt toegevoegd',
|
|
||||||
'<' || v_client || '>');
|
|
||||||
END;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
--
|
|
||||||
IF v_bud IS NOT NULL
|
|
||||||
THEN
|
|
||||||
IF LENGTH (v_bud) > 100
|
|
||||||
THEN
|
|
||||||
v_bud := SUBSTR (v_bud, 1, 100);
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'W',
|
|
||||||
v_aanduiding || 'BUD-aanduiding is te lang',
|
|
||||||
'Aanduiding wordt afgebroken tot <' || v_bud || '>');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
BEGIN
|
|
||||||
SELECT prs_perslid_key
|
|
||||||
INTO v_bud_key
|
|
||||||
FROM prs_v_perslid_fullnames
|
|
||||||
WHERE prs_perslid_naam_full = v_bud;
|
|
||||||
EXCEPTION
|
|
||||||
WHEN NO_DATA_FOUND
|
|
||||||
THEN
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'E',
|
|
||||||
v_aanduiding || 'BUD kan niet gevonden worden',
|
|
||||||
'Controleer BUD notatie! <' || v_bud || '>');
|
|
||||||
v_error := 1;
|
|
||||||
END;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
--
|
|
||||||
IF v_bb IS NOT NULL
|
|
||||||
THEN
|
|
||||||
IF LENGTH (v_bb) > 100
|
|
||||||
THEN
|
|
||||||
v_bb := SUBSTR (v_bb, 1, 100);
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'W',
|
|
||||||
v_aanduiding || 'BB-aanduiding post-adres is te lang',
|
|
||||||
'Aanduiding wordt afgebroken tot <' || v_bb || '>');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
BEGIN
|
|
||||||
SELECT prs_perslid_key
|
|
||||||
INTO v_bb_key
|
|
||||||
FROM prs_v_perslid_fullnames
|
|
||||||
WHERE prs_perslid_naam_full = v_bb;
|
|
||||||
EXCEPTION
|
|
||||||
WHEN NO_DATA_FOUND
|
|
||||||
THEN
|
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
|
||||||
'E',
|
|
||||||
v_aanduiding || 'BB kan niet gevonden worden',
|
|
||||||
'Controleer BB notatie! <' || v_bb || '>');
|
|
||||||
v_error := 1;
|
|
||||||
END;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
|
|
||||||
-- Insert geformatteerde import record
|
-- Insert geformatteerde import record
|
||||||
IF v_error = 0
|
IF v_error = 0
|
||||||
THEN
|
THEN
|
||||||
|
|
||||||
v_errormsg :=
|
v_error_hint :=
|
||||||
'Fout bij toevoegen te impoteren locatie ['
|
'Fout bij toevoegen te impoteren locatie ['
|
||||||
|| v_locatie_code
|
|| v_locatie_code
|
||||||
|| ']';
|
|| ']';
|
||||||
|
|
||||||
INSERT INTO csun_imp_onrgoed (alg_regio_omschrijving,
|
INSERT INTO csun_imp_project (accountcode,
|
||||||
alg_regio_key,
|
project,
|
||||||
alg_district_omschrijving,
|
bu,
|
||||||
alg_district_key,
|
dm,
|
||||||
alg_locatie_code,
|
code,
|
||||||
alg_locatie_omschrijving,
|
omschrijving,
|
||||||
alg_locatie_adres,
|
adres,
|
||||||
alg_locatie_postcode,
|
postcode,
|
||||||
alg_locatie_plaats,
|
woonplaats,
|
||||||
client,
|
|
||||||
client_key,
|
|
||||||
bud,
|
|
||||||
bud_key,
|
|
||||||
bb,
|
|
||||||
bb_key,
|
|
||||||
kenmerk1,
|
kenmerk1,
|
||||||
kenmerk2,
|
kenmerk2,
|
||||||
kenmerk3,
|
kenmerk3,
|
||||||
kenmerk4,
|
kenmerk4,
|
||||||
kenmerk5)
|
kenmerk5)
|
||||||
VALUES (v_regio_omschrijving,
|
VALUES (SUBSTR(TRIM(v_accountcode),1,14),
|
||||||
v_regio_key,
|
SUBSTR(TRIM(v_project),1,14),
|
||||||
v_district_omschrijving,
|
SUBSTR(TRIM(v_bu),1,14),
|
||||||
v_district_key,
|
TO_NUMBER(TRIM(v_dm)),
|
||||||
v_locatie_code,
|
SUBSTR(TRIM(v_locatie_code),1,10),
|
||||||
v_locatie_omschrijving,
|
SUBSTR(TRIM(v_locatie_omschrijving),1,60),
|
||||||
v_locatie_adres,
|
SUBSTR(TRIM(v_locatie_adres),1,35),
|
||||||
v_locatie_postcode,
|
SUBSTR(TRIM(v_locatie_postcode),1,9),
|
||||||
v_locatie_plaats,
|
SUBSTR(TRIM(v_locatie_plaats),1,35),
|
||||||
v_client,
|
|
||||||
v_client_key,
|
|
||||||
v_bud,
|
|
||||||
v_bud_key,
|
|
||||||
v_bb,
|
|
||||||
v_bb_key,
|
|
||||||
v_kenmerk1,
|
v_kenmerk1,
|
||||||
v_kenmerk2,
|
v_kenmerk2,
|
||||||
v_kenmerk3,
|
v_kenmerk3,
|
||||||
@@ -1436,132 +1171,177 @@ EXCEPTION
|
|||||||
fac.imp_writelog (p_import_key,
|
fac.imp_writelog (p_import_key,
|
||||||
'E',
|
'E',
|
||||||
v_errormsg,
|
v_errormsg,
|
||||||
'');
|
v_error_hint);
|
||||||
END csun_import_onrgoed;
|
END csun_import_project;
|
||||||
/
|
/
|
||||||
|
|
||||||
|
|
||||||
CREATE OR REPLACE PROCEDURE csun_update_onrgoed (p_import_key IN NUMBER)
|
/* Formatted on 1/28/2013 4:46:45 PM (QP5 v5.136.908.31019) */
|
||||||
|
CREATE OR REPLACE PROCEDURE csun_update_project (p_import_key IN NUMBER)
|
||||||
IS
|
IS
|
||||||
v_errormsg VARCHAR2 (1000);
|
v_errormsg VARCHAR2 (1000);
|
||||||
v_errorhint VARCHAR2 (1000);
|
v_error_hint VARCHAR2 (1000);
|
||||||
oracle_err_num NUMBER;
|
oracle_err_num NUMBER;
|
||||||
oracle_err_mes VARCHAR2 (200);
|
oracle_err_mes VARCHAR2 (1000);
|
||||||
v_aanduiding VARCHAR2 (200);
|
v_aanduiding VARCHAR2 (200);
|
||||||
|
v_count NUMBER (10);
|
||||||
|
v_ongeldig NUMBER (1);
|
||||||
|
v_count_update NUMBER (10);
|
||||||
|
v_count_tot NUMBER (10);
|
||||||
|
|
||||||
|
-- De importvelden:
|
||||||
v_locatie_key NUMBER (10);
|
v_locatie_key NUMBER (10);
|
||||||
|
v_bud_key NUMBER (10);
|
||||||
|
v_bb_key NUMBER (10);
|
||||||
|
v_account_key NUMBER (10);
|
||||||
|
v_district_key NUMBER (10);
|
||||||
|
v_locatie_code VARCHAR2 (10);
|
||||||
|
|
||||||
CURSOR c_dist
|
CURSOR c_account
|
||||||
|
IS
|
||||||
|
SELECT distinct accountcode
|
||||||
|
FROM csun_imp_project;
|
||||||
|
|
||||||
|
CURSOR c_district (c_accountcode IN VARCHAR2)
|
||||||
IS
|
IS
|
||||||
SELECT alg_regio_key,
|
SELECT distinct dm FROM csun_imp_project
|
||||||
alg_district_key,
|
WHERE accountcode = c_accountcode;
|
||||||
alg_district_omschrijving,
|
|
||||||
alg_regio_omschrijving
|
|
||||||
FROM csun_imp_onrgoed i
|
|
||||||
WHERE NOT EXISTS
|
|
||||||
(SELECT alg_district_key
|
|
||||||
FROM alg_district d
|
|
||||||
WHERE d.alg_district_key = i.alg_district_key
|
|
||||||
AND d.alg_regio_key = i.alg_regio_key
|
|
||||||
AND d.alg_district_verwijder IS NULL)
|
|
||||||
GROUP BY alg_regio_key,
|
|
||||||
alg_district_key,
|
|
||||||
alg_district_omschrijving,
|
|
||||||
alg_regio_omschrijving;
|
|
||||||
|
|
||||||
|
CURSOR c (c_accountcode IN VARCHAR2, c_dm IN NUMBER)
|
||||||
CURSOR c
|
|
||||||
IS
|
IS
|
||||||
SELECT * FROM csun_imp_onrgoed;
|
SELECT * FROM csun_imp_project
|
||||||
|
WHERE accountcode = c_accountcode
|
||||||
|
AND dm = c_dm;
|
||||||
|
|
||||||
|
FUNCTION get_alg_kenmerk (p_kenmerk_key IN NUMBER, p_onrgoed_key IN NUMBER) RETURN VARCHAR2
|
||||||
|
AS
|
||||||
|
v_waarde VARCHAR2(255);
|
||||||
|
BEGIN
|
||||||
|
SELECT alg_onrgoedkenmerk_waarde
|
||||||
|
INTO v_waarde
|
||||||
|
FROM alg_onrgoedkenmerk
|
||||||
|
WHERE alg_kenmerk_key = p_kenmerk_key
|
||||||
|
AND alg_onrgoed_key = p_onrgoed_key;
|
||||||
|
|
||||||
|
RETURN v_waarde;
|
||||||
|
|
||||||
|
EXCEPTION WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
RETURN NULL;
|
||||||
|
END;
|
||||||
BEGIN
|
BEGIN
|
||||||
-- v_count_update := 0;
|
-- v_count_update := 0;
|
||||||
-- v_count_tot := 0;
|
-- v_count_tot := 0;
|
||||||
|
v_error_hint := 'Start met doorlopen accounts';
|
||||||
|
|
||||||
FOR rec IN c_dist
|
FOR rec_a IN c_account
|
||||||
LOOP
|
LOOP
|
||||||
BEGIN
|
BEGIN
|
||||||
UPDATE alg_district
|
v_error_hint := 'Ophalen data voor accountcode: ' || rec_a.accountcode;
|
||||||
SET alg_regio_key = rec.alg_regio_key
|
SELECT fac_usrdata_key
|
||||||
WHERE alg_district_key = rec.alg_district_key;
|
INTO v_account_key
|
||||||
|
FROM fac_usrdata
|
||||||
|
WHERE fac_usrtab_key = 1 -- Eigentabel met client
|
||||||
|
AND fac_usrdata_code = rec_a.accountcode;
|
||||||
|
|
||||||
fac.imp_writelog (
|
FOR rec_d IN c_district(rec_a.accountcode)
|
||||||
p_import_key,
|
LOOP
|
||||||
'I',
|
BEGIN
|
||||||
'District onder andere regio geplaatst['
|
v_error_hint := 'Ophalen data voor dm: ' || rec_d.dm;
|
||||||
|| rec.alg_district_omschrijving
|
SELECT alg_onrgoed_key
|
||||||
|| '] naar regio: '
|
INTO v_district_key
|
||||||
|| rec.alg_regio_omschrijving,
|
FROM prs_kenmerklink kl,
|
||||||
'');
|
alg_onrgoedkenmerk aog
|
||||||
END;
|
WHERE prs_kenmerk_key = 1040 -- dm beheerderscode
|
||||||
END LOOP;
|
AND alg_kenmerk_key = 1021 -- key van districtmanager
|
||||||
|
AND prs_link_key = fac.safe_to_number(alg_onrgoedkenmerk_waarde)
|
||||||
|
AND prs_kenmerklink_waarde = rec_d.dm;
|
||||||
|
|
||||||
|
FOR rec IN c(rec_a.accountcode, rec_d.dm)
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
-- Get BUD reference
|
||||||
|
v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
|
||||||
|
v_bud_key := get_alg_kenmerk (1060, v_district_key);
|
||||||
|
|
||||||
|
-- Get BB reference
|
||||||
|
v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
|
||||||
|
v_bb_key := get_alg_kenmerk (1020, v_district_key);
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
v_error_hint := 'Kijk of de locatie al bestaat: ' || rec.project;
|
||||||
|
SELECT alg_onrgoed_key
|
||||||
|
INTO v_locatie_key
|
||||||
|
FROM alg_onrgoedkenmerk
|
||||||
|
WHERE alg_kenmerk_key = 1040 -- projectnummer
|
||||||
|
AND alg_onrgoedkenmerk_waarde = rec.project;
|
||||||
|
|
||||||
|
EXCEPTION WHEN NO_DATA_FOUND
|
||||||
|
THEN
|
||||||
|
IF rec.code IS NULL THEN
|
||||||
|
v_locatie_code := rec.project;
|
||||||
|
ELSE
|
||||||
|
v_locatie_code := rec.code;
|
||||||
|
END IF;
|
||||||
|
INSERT INTO alg_locatie (alg_district_key, alg_locatie_code, alg_locatie_omschrijving)
|
||||||
|
VALUES (v_district_key, v_locatie_code, SUBSTR(rec.omschrijving,1,50))
|
||||||
|
RETURNING alg_locatie_key
|
||||||
|
INTO v_locatie_key;
|
||||||
|
END;
|
||||||
|
|
||||||
|
UPDATE alg_locatie
|
||||||
|
SET alg_locatie_omschrijving = SUBSTR(rec.omschrijving,1,50),
|
||||||
|
alg_district_key = v_district_key,
|
||||||
|
alg_locatie_adres = rec.adres,
|
||||||
|
alg_locatie_postcode = rec.postcode,
|
||||||
|
alg_locatie_plaats = rec.woonplaats
|
||||||
|
WHERE alg_locatie_key = v_locatie_key;
|
||||||
|
|
||||||
|
csun_set_kenmerk ('ALG', 1006, v_locatie_key, v_bud_key, 0);
|
||||||
|
csun_set_kenmerk ('ALG', 1007, v_locatie_key, v_bb_key, 0);
|
||||||
|
csun_set_kenmerk ('ALG', 1000, v_locatie_key, v_account_key, 0);
|
||||||
|
csun_set_kenmerk ('ALG', 1040, v_locatie_key, rec.project, 0);
|
||||||
|
|
||||||
|
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',
|
||||||
|
'Import locaties afgebroken (' || rec.dm || '-' || rec.accountcode || '-' || rec.project || '):' || v_errormsg,
|
||||||
|
v_error_hint);
|
||||||
|
|
||||||
FOR rec IN c
|
END;
|
||||||
LOOP
|
END LOOP;
|
||||||
BEGIN
|
|
||||||
v_aanduiding := 'rec.alg_locatie_code';
|
|
||||||
v_errorhint := 'check of locatie al bestaat';
|
|
||||||
|
|
||||||
-- check of locatie al bestaat
|
|
||||||
BEGIN
|
|
||||||
SELECT alg_locatie_key
|
|
||||||
INTO v_locatie_key
|
|
||||||
FROM alg_locatie
|
|
||||||
WHERE UPPER(alg_locatie_code) = UPPER (rec.alg_locatie_code)
|
|
||||||
AND alg_locatie_verwijder IS NULL;
|
|
||||||
EXCEPTION
|
|
||||||
WHEN NO_DATA_FOUND
|
|
||||||
THEN
|
|
||||||
v_errorhint := 'voeg locatie toe';
|
|
||||||
INSERT INTO alg_locatie (alg_district_key,
|
|
||||||
alg_locatie_code,
|
|
||||||
alg_locatie_omschrijving)
|
|
||||||
VALUES (rec.alg_district_key,
|
|
||||||
rec.alg_locatie_code,
|
|
||||||
rec.alg_locatie_omschrijving)
|
|
||||||
RETURNING alg_locatie_key
|
|
||||||
INTO v_locatie_key;
|
|
||||||
|
|
||||||
|
EXCEPTION WHEN OTHERS THEN
|
||||||
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||||||
|
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||||||
fac.imp_writelog (
|
fac.imp_writelog (
|
||||||
p_import_key,
|
p_import_key,
|
||||||
'I',
|
'E',
|
||||||
'Nieuwe locatie aangemaakt ['
|
'Import locaties afgebroken (' || rec_d.dm || '-' || rec_a.accountcode || '):' || v_errormsg,
|
||||||
|| rec.alg_locatie_code
|
v_error_hint);
|
||||||
|| ']: '
|
END;
|
||||||
|| rec.alg_locatie_omschrijving,
|
END LOOP;
|
||||||
'');
|
|
||||||
END;
|
EXCEPTION WHEN OTHERS THEN
|
||||||
v_errorhint := 'pas locatiegegevens aan';
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
|
||||||
UPDATE alg_locatie
|
v_errormsg := '(ORACLE error ' || oracle_err_mes || ')';
|
||||||
SET alg_locatie_omschrijving = rec.alg_locatie_omschrijving,
|
fac.imp_writelog (
|
||||||
alg_district_key = rec.alg_district_key,
|
p_import_key,
|
||||||
alg_locatie_adres = rec.alg_locatie_adres,
|
'E',
|
||||||
alg_locatie_postcode = rec.alg_locatie_postcode,
|
'Import locaties afgebroken (' || rec_a.accountcode || '):' || v_errormsg,
|
||||||
alg_locatie_plaats = rec.alg_locatie_plaats
|
v_error_hint);
|
||||||
WHERE alg_locatie_key = v_locatie_key;
|
|
||||||
|
|
||||||
-- set kenmerken
|
|
||||||
v_errorhint := 'pas kenmerken aan';
|
|
||||||
csun_set_kenmerk ('ALG',
|
|
||||||
1000,
|
|
||||||
v_locatie_key,
|
|
||||||
rec.client_key,
|
|
||||||
0);
|
|
||||||
csun_set_kenmerk ('ALG',
|
|
||||||
1006,
|
|
||||||
v_locatie_key,
|
|
||||||
rec.bud_key,
|
|
||||||
0);
|
|
||||||
csun_set_kenmerk ('ALG',
|
|
||||||
1007,
|
|
||||||
v_locatie_key,
|
|
||||||
rec.bb_key,
|
|
||||||
0);
|
|
||||||
csun_export_set_werkplek ('ONRGOED',
|
|
||||||
TO_CHAR (SYSDATE, 'yyyymmdd hh24:mi:ss'),
|
|
||||||
'',
|
|
||||||
'');
|
|
||||||
END;
|
END;
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
|
csun_export_set_werkplek (p_import_key);
|
||||||
|
|
||||||
|
-- to do : locatie verwijderen.
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN OTHERS
|
WHEN OTHERS
|
||||||
THEN
|
THEN
|
||||||
@@ -1572,7 +1352,7 @@ EXCEPTION
|
|||||||
'E',
|
'E',
|
||||||
'Fout tijdens importeren van onroerend goed (locatie en gebouw) ',
|
'Fout tijdens importeren van onroerend goed (locatie en gebouw) ',
|
||||||
v_errormsg);
|
v_errormsg);
|
||||||
END csun_update_onrgoed;
|
END csun_update_project;
|
||||||
/
|
/
|
||||||
|
|
||||||
|
|
||||||
@@ -1730,12 +1510,7 @@ END;
|
|||||||
/
|
/
|
||||||
|
|
||||||
|
|
||||||
CREATE OR REPLACE PROCEDURE csun_export_set_werkplek (
|
CREATE OR REPLACE PROCEDURE csun_export_set_werkplek (p_import_key IN NUMBER)
|
||||||
p_applname IN VARCHAR2,
|
|
||||||
p_applrun IN VARCHAR2,
|
|
||||||
p_filedir IN VARCHAR2,
|
|
||||||
p_filename IN VARCHAR2
|
|
||||||
)
|
|
||||||
AS
|
AS
|
||||||
BEGIN
|
BEGIN
|
||||||
-- toevoegen gebouwen
|
-- toevoegen gebouwen
|
||||||
@@ -1813,7 +1588,7 @@ INSERT INTO prs_perslidwerkplek (prs_perslid_key, prs_perslidwerkplek_bezetting,
|
|||||||
AND aogk.alg_kenmerk_key = 1000
|
AND aogk.alg_kenmerk_key = 1000
|
||||||
AND aogk.alg_onrgoed_key = wpg.alg_locatie_key
|
AND aogk.alg_onrgoed_key = wpg.alg_locatie_key
|
||||||
AND wpg.prs_werkplek_volgnr = 1
|
AND wpg.prs_werkplek_volgnr = 1
|
||||||
AND UPPER (prs_afdeling_naam) LIKE UPPER (fac_usrdata_code) || '%'
|
AND UPPER (prs_afdeling_naam) LIKE UPPER (fac_usrdata_omschr) || '%'
|
||||||
AND fac_usrtab_key = 1
|
AND fac_usrtab_key = 1
|
||||||
AND EXISTS
|
AND EXISTS
|
||||||
(SELECT gg.prs_perslid_key
|
(SELECT gg.prs_perslid_key
|
||||||
@@ -1934,7 +1709,7 @@ AS
|
|||||||
|
|
||||||
BEGIN adm.systrackscript('$Workfile: csun.sql $', '$Revision$', 0); END;
|
BEGIN adm.systrackscript('$Workfile: csun.sql $', '$Revision$', 0); END;
|
||||||
/
|
/
|
||||||
BEGIN fac.registercustversion('CSUN', 9); END;
|
BEGIN fac.registercustversion('CSUN', 10); END;
|
||||||
/
|
/
|
||||||
COMMIT;
|
COMMIT;
|
||||||
spool off
|
spool off
|
||||||
|
|||||||
Reference in New Issue
Block a user