408 lines
12 KiB
MySQL
408 lines
12 KiB
MySQL
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_omschrijving,2,8) = 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_omschrijving,2,8) = 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 kd.ins_kenmerkdeel_waarde = 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 kd.ins_kenmerkdeel_waarde = 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_xcoordinaat_kenmerk_key INTEGER := 505;
|
||
c_ycoordinaat_kenmerk_key INTEGER := 506;
|
||
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_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);
|
||
|
||
-- 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 := '-- 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));
|
||
|
||
select get_halte_key(v_HALTECODE,c_halte_code)
|
||
into v_ins_deel_key
|
||
from dual;
|
||
|
||
IF (v_ins_deel_key <= 0) THEN
|
||
|
||
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)
|
||
values
|
||
(v_ins_deel_key
|
||
,c_srtdeel_key
|
||
,c_srtdeel_module
|
||
,v_terreinsector_key
|
||
,c_ruimte_type
|
||
,v_DEEL_OMSCHRIJVING);
|
||
|
||
ELSE
|
||
|
||
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_xcoordinaat_kenmerk_key,c_ycoordinaat_kenmerk_key,c_Lijnnummer1_kenmerk_key);
|
||
|
||
|
||
-- c_halte_code
|
||
v_errormsg := '--C-- flexprops Halte code toevoegen';
|
||
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_xcoordinaat_kenmerk_key
|
||
v_errormsg := '--N-- flexprops X co<63>rdinaten toevoegen';
|
||
IF v_X_COORDINAAT IS NOT NULL THEN
|
||
|
||
INSERT INTO ins_kenmerkdeel
|
||
( ins_kenmerk_key
|
||
, ins_deel_Key
|
||
, ins_kenmerkdeel_waarde)
|
||
VALUES(c_xcoordinaat_kenmerk_key
|
||
, v_ins_deel_key
|
||
, v_X_COORDINAAT);
|
||
|
||
END IF;
|
||
|
||
|
||
-- c_ycoordinaat_kenmerk_key
|
||
v_errormsg := '--N-- flexprops Y co<63>rdinaten toevoegen';
|
||
IF v_Y_COORDINAAT IS NOT NULL THEN
|
||
|
||
INSERT INTO ins_kenmerkdeel
|
||
( ins_kenmerk_key
|
||
, ins_deel_Key
|
||
, ins_kenmerkdeel_waarde)
|
||
VALUES(c_ycoordinaat_kenmerk_key
|
||
, v_ins_deel_key
|
||
, v_Y_COORDINAAT);
|
||
|
||
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;
|
||
|
||
v_errormsg := 'Verwijderen rapportage meldingen ouder dan 30 dagen';
|
||
DELETE FROM imp_log WHERE imp_log_applicatie = 'VERWERK_HALTE' AND imp_log_datum + 30 < SYSDATE;
|
||
|
||
RETURN v_result;
|
||
|
||
EXCEPTION WHEN OTHERS THEN
|
||
|
||
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
'(ORACLE error ' || to_char(oracle_err_num) || '/' || oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog ('VERWERK_HALTE',
|
||
'PACKAGE CONN_HALTES',
|
||
'E',
|
||
v_errormsg,
|
||
v_import_row
|
||
);
|
||
RETURN c_error_result;
|
||
|
||
END verwerk_halte;
|
||
|
||
END CONN_HALTES;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE TRIGGER conn_t_oac_stg_haltes_B_IU
|
||
BEFORE INSERT OR UPDATE ON oac_stg_haltes
|
||
FOR EACH ROW
|
||
BEGIN
|
||
|
||
IF CONN_HALTES.verwerk_halte(:new.HALTE_CODE,:new.HALTENAAM_KORT,:new.PLACE_CODE,:new.PLAATSNAAM,:new.ZONE_CODE,to_char(:new.LOKATIECODE_X),to_char(:new.LOKATIECODE_Y),:new.PASSERENDE_LIJNEN) > -1 THEN
|
||
:new.HALTE_CODE := :new.HALTE_CODE; -- dummy
|
||
ELSE
|
||
:new.HALTE_CODE := :new.HALTE_CODE; -- dummy
|
||
END IF;
|
||
|
||
END;
|
||
/
|
||
|
||
INSERT INTO FAC_USRRAP ( FAC_USRRAP_OMSCHRIJVING, FAC_USRRAP_VIEW_NAME,
|
||
FAC_USRRAP_IN_HUIDIGE_LOCATIE, FAC_USRRAP_TEMPLATE, FAC_USRRAP_MACRO, FAC_USRRAP_VRAAGBEGINDATUM,
|
||
FAC_USRRAP_VRAAGEINDDATUM, FAC_USRRAP_FUNCTIE, FAC_USRRAP_INFO, FAC_FUNCTIE_KEY,
|
||
FAC_USRRAP_AUTOREFRESH ) VALUES (
|
||
'Haltes die niet zijn toegevoegd of gewijzigd', 'conn_v_rap_chalte_import', NULL, NULL, NULL
|
||
, 0, 0, 0, '', 30, 0);
|
||
|
||
|
||
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
|
||
ORDER BY imp_log_datum DESC;
|
||
|
||
commit;
|
||
|
||
|
||
|
||
|