YKPN#44728 -- Toevoegen import toegang
svn path=/Customer/trunk/; revision=35845
This commit is contained in:
505
YKPN/ykpn.sql
505
YKPN/ykpn.sql
@@ -26,7 +26,7 @@ AS
|
||||
p_link_key IN NUMBER,
|
||||
p_kenmerk_waarde IN VARCHAR2,
|
||||
p_history IN NUMBER);
|
||||
|
||||
|
||||
PROCEDURE set_nedap_status(p_bezoekers_key IN NUMBER,
|
||||
p_nedap_id IN VARCHAR2);
|
||||
|
||||
@@ -54,13 +54,13 @@ AS
|
||||
BEGIN
|
||||
v_count := 0;
|
||||
v_found := 0;
|
||||
|
||||
|
||||
SELECT TRUNC (bez_afspraak_datum), kw.bez_kenmerkwaarde_waarde, kw.bez_kenmerkwaarde_key, a.bez_actie_key
|
||||
INTO v_date, v_code, v_kenmerkwaarde_key, v_actie_key
|
||||
FROM bez_afspraak a,
|
||||
bez_bezoekers b,
|
||||
res_rsv_deel rrd,
|
||||
res_deel rd,
|
||||
res_deel rd,
|
||||
ins_v_deel_gegevens d,
|
||||
(SELECT bez_kenmerkwaarde_waarde, bez_kenmerkwaarde_key, bez_bezoekers_key
|
||||
FROM bez_kenmerkwaarde kw
|
||||
@@ -71,13 +71,13 @@ AS
|
||||
AND b.bez_bezoekers_key = rrd.bez_bezoekers_key
|
||||
AND rrd.res_deel_key = rd.res_deel_key
|
||||
AND rd.res_ins_deel_key = d.ins_deel_key;
|
||||
|
||||
|
||||
--DBMS_OUTPUT.put_line ('Bestaande code:' || v_code);
|
||||
|
||||
|
||||
WHILE v_found = 0 AND v_count < 1000
|
||||
LOOP
|
||||
--DBMS_OUTPUT.put_line (COALESCE (v_code, '-1'));
|
||||
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO v_exists
|
||||
FROM bez_bezoekers b, bez_kenmerkwaarde kw, bez_afspraak a
|
||||
@@ -86,31 +86,31 @@ AS
|
||||
AND b.bez_bezoekers_key <> p_bezoekers_key
|
||||
AND kw.bez_kenmerkwaarde_waarde = COALESCE (v_code, '-1')
|
||||
AND bez_afspraak_datum BETWEEN v_date -1 AND v_date + 2;
|
||||
|
||||
|
||||
IF v_exists > 0 OR v_code IS NULL
|
||||
THEN
|
||||
v_code := TRUNC (DBMS_RANDOM.VALUE (9999, 100000));
|
||||
--DBMS_OUTPUT.put_line ('Nieuwe code:' || v_code);
|
||||
ELSE
|
||||
v_found := 1;
|
||||
|
||||
|
||||
ykpn.set_kenmerk('BEZ', 1020, p_bezoekers_key, v_code, 0);
|
||||
END IF;
|
||||
|
||||
|
||||
v_count := v_count + 1;
|
||||
END LOOP;
|
||||
|
||||
IF v_actie_key = 1 THEN
|
||||
ykpn.set_kenmerk('BEZ', 1140, p_bezoekers_key, 'Let op: Een parkeerplaats op eigen standplaats reserveren is niet toegestaan, dit i.v.m. het tekort aan bezoekersparkeerplaatsen wat dan ontstaat.', 0);
|
||||
END IF;
|
||||
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
NULL;
|
||||
-- Bezoeker heeft geen parkeerplaats
|
||||
END;
|
||||
|
||||
|
||||
PROCEDURE set_kenmerk(p_module IN VARCHAR2,
|
||||
p_kenmerk_key IN NUMBER,
|
||||
p_link_key IN NUMBER,
|
||||
@@ -129,14 +129,14 @@ AS
|
||||
INTO v_niveau
|
||||
FROM prs_kenmerk
|
||||
WHERE prs_kenmerk_key = p_kenmerk_key;
|
||||
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count
|
||||
FROM prs_kenmerklink
|
||||
WHERE prs_link_key = p_link_key
|
||||
AND prs_kenmerk_key = p_kenmerk_key
|
||||
AND prs_kenmerklink_verwijder IS NULL;
|
||||
|
||||
|
||||
IF v_count = 1
|
||||
THEN
|
||||
IF p_kenmerk_waarde IS NULL
|
||||
@@ -165,7 +165,7 @@ AS
|
||||
p_kenmerk_waarde);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
|
||||
WHEN 'ALG'
|
||||
THEN
|
||||
-- niveau van prs_kenmerk ophalen, omdat deze ook in prs_kenmerklink wordt
|
||||
@@ -174,14 +174,14 @@ AS
|
||||
INTO v_niveau
|
||||
FROM alg_kenmerk
|
||||
WHERE alg_kenmerk_key = p_kenmerk_key;
|
||||
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count
|
||||
FROM alg_onrgoedkenmerk
|
||||
WHERE alg_onrgoed_key = p_link_key
|
||||
AND alg_kenmerk_key = p_kenmerk_key
|
||||
AND alg_onrgoedkenmerk_verwijder IS NULL;
|
||||
|
||||
|
||||
IF v_count = 1
|
||||
THEN
|
||||
IF p_kenmerk_waarde IS NULL
|
||||
@@ -213,14 +213,14 @@ AS
|
||||
|
||||
WHEN 'BEZ'
|
||||
THEN
|
||||
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count
|
||||
FROM bez_kenmerkwaarde
|
||||
WHERE bez_bezoekers_key = p_link_key
|
||||
AND bez_kenmerk_key = p_kenmerk_key
|
||||
AND bez_kenmerkwaarde_verwijder IS NULL;
|
||||
|
||||
|
||||
IF v_count = 1
|
||||
THEN
|
||||
IF p_kenmerk_waarde IS NULL
|
||||
@@ -247,7 +247,7 @@ AS
|
||||
p_kenmerk_waarde);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
|
||||
WHEN 'MLD'
|
||||
THEN
|
||||
-- melding- of opdrachtkenmerk?
|
||||
@@ -255,7 +255,7 @@ AS
|
||||
INTO v_niveau
|
||||
FROM mld_kenmerk
|
||||
WHERE mld_kenmerk_key = p_kenmerk_key;
|
||||
|
||||
|
||||
CASE v_niveau
|
||||
WHEN 'O'
|
||||
THEN
|
||||
@@ -265,7 +265,7 @@ AS
|
||||
WHERE mld_opdr_key = p_link_key
|
||||
AND mld_kenmerk_key = p_kenmerk_key
|
||||
AND mld_kenmerkopdr_verwijder IS NULL;
|
||||
|
||||
|
||||
IF v_count = 1
|
||||
THEN
|
||||
IF p_kenmerk_waarde IS NULL
|
||||
@@ -300,7 +300,7 @@ AS
|
||||
WHERE mld_melding_key = p_link_key
|
||||
AND mld_kenmerk_key = p_kenmerk_key
|
||||
AND mld_kenmerkmelding_verwijder IS NULL;
|
||||
|
||||
|
||||
IF v_count = 1
|
||||
THEN
|
||||
IF p_kenmerk_waarde IS NULL
|
||||
@@ -338,7 +338,7 @@ AS
|
||||
WHERE res_rsv_ruimte_key = p_link_key
|
||||
AND res_kenmerk_key = p_kenmerk_key
|
||||
AND res_kenmerkwaarde_verwijder IS NULL;
|
||||
|
||||
|
||||
IF v_count = 1
|
||||
THEN
|
||||
IF p_kenmerk_waarde IS NULL
|
||||
@@ -379,10 +379,10 @@ AS
|
||||
FROM bez_kenmerkwaarde
|
||||
WHERE bez_kenmerk_key = 1060 -- nedap resultaat
|
||||
AND bez_bezoekers_key = p_bezoekers_key;
|
||||
|
||||
UPDATE bez_kenmerkwaarde
|
||||
SET bez_kenmerkwaarde_waarde = p_nedap_id
|
||||
WHERE bez_kenmerkwaarde_key = v_kenmerkwaarde_key;
|
||||
|
||||
UPDATE bez_kenmerkwaarde
|
||||
SET bez_kenmerkwaarde_waarde = p_nedap_id
|
||||
WHERE bez_kenmerkwaarde_key = v_kenmerkwaarde_key;
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
INSERT INTO bez_kenmerkwaarde (bez_kenmerk_key, bez_bezoekers_key, bez_kenmerkwaarde_waarde)
|
||||
@@ -394,27 +394,27 @@ AS
|
||||
PROCEDURE set_vc_status(p_reservering_key IN NUMBER,
|
||||
p_vc_id IN VARCHAR2)
|
||||
AS
|
||||
|
||||
|
||||
CURSOR c IS
|
||||
SELECT *
|
||||
FROM res_rsv_ruimte
|
||||
SELECT *
|
||||
FROM res_rsv_ruimte
|
||||
WHERE res_reservering_key = p_reservering_key;
|
||||
|
||||
|
||||
|
||||
|
||||
BEGIN
|
||||
FOR rec IN c LOOP
|
||||
FOR rec IN c LOOP
|
||||
-- Update kenmerk
|
||||
YKPN.set_kenmerk('RES', 2, rec.res_rsv_ruimte_key, p_vc_id, 0);
|
||||
|
||||
|
||||
-- Track update
|
||||
FAC.trackaction ('#CUST01', rec.res_rsv_ruimte_key, NULL, NULL, 'Code ontvangen van Talk and Vision: ' || p_vc_id);
|
||||
|
||||
|
||||
-- Track update
|
||||
FAC.trackaction ('#CUST01', rec.res_rsv_ruimte_key, NULL, NULL, 'Code ontvangen van Talk and Vision: ' || p_vc_id);
|
||||
|
||||
|
||||
|
||||
|
||||
END LOOP;
|
||||
|
||||
|
||||
END;
|
||||
|
||||
END;
|
||||
@@ -538,7 +538,7 @@ CREATE OR REPLACE PROCEDURE ykpn_update_organisatie (p_import_key IN NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
NULL;
|
||||
-- update wordt door scheduled taak uitgevoerd.
|
||||
-- update wordt door scheduled taak uitgevoerd.
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -729,11 +729,11 @@ AS
|
||||
FROM fac_imp_perslid i
|
||||
GROUP BY prs_perslid_oslogin
|
||||
HAVING COUNT (prs_perslid_oslogin) > 1;
|
||||
|
||||
|
||||
v_seq_of_columns VARCHAR(255);
|
||||
BEGIN
|
||||
-- we plaaten de functie in kenmerkx
|
||||
-- de functie wordt tijdelijk gevuld met de key van het record. Puur om een waarde
|
||||
-- de functie wordt tijdelijk gevuld met de key van het record. Puur om een waarde
|
||||
-- erin te hebben staan.
|
||||
UPDATE fac_imp_file SET fac_imp_file_line = REPLACE(fac_imp_file_line, 'NULL') WHERE fac_import_key = p_import_key;
|
||||
v_seq_of_columns := '14;14;0;0;0;0;8;6;5;24;4;17;16;20;0;11;0;9;0;2;1;3;0;0;0;0;1;0;23;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0';
|
||||
@@ -744,8 +744,8 @@ BEGIN
|
||||
SELECT alg_gebouw_key, '_', 99, 'Dummy'
|
||||
FROM alg_gebouw g
|
||||
WHERE alg_gebouw_verwijder IS NULL
|
||||
AND NOT EXISTS (SELECT v.alg_gebouw_key
|
||||
FROM alg_verdieping v
|
||||
AND NOT EXISTS (SELECT v.alg_gebouw_key
|
||||
FROM alg_verdieping v
|
||||
WHERE v.alg_gebouw_key = g.alg_gebouw_key
|
||||
AND v.alg_verdieping_code = '_');
|
||||
|
||||
@@ -754,36 +754,36 @@ BEGIN
|
||||
SELECT v.alg_verdieping_key, '_', 1
|
||||
FROM alg_verdieping v
|
||||
WHERE alg_verdieping_verwijder IS NULL
|
||||
AND NOT EXISTS (SELECT r.alg_verdieping_key
|
||||
FROM alg_ruimte r
|
||||
AND NOT EXISTS (SELECT r.alg_verdieping_key
|
||||
FROM alg_ruimte r
|
||||
WHERE r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND r.alg_ruimte_nr = '_');
|
||||
|
||||
AND r.alg_ruimte_nr = '_');
|
||||
|
||||
UPDATE fac_imp_perslid SET alg_verdieping_volgnr = '99',
|
||||
alg_ruimte_nr = '_'
|
||||
WHERE alg_locatie_code IS NOT NULL;
|
||||
|
||||
WHERE alg_locatie_code IS NOT NULL;
|
||||
|
||||
UPDATE fac_imp_perslid i
|
||||
SET alg_locatie_code = ( SELECT alg_locatie_code
|
||||
FROM alg_locatie l, alg_gebouw g
|
||||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||||
AND g.alg_gebouw_code = i.alg_gebouw_code);
|
||||
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_perslid_nr = TO_CHAR (prs_perslid_nr, 'fm000000')
|
||||
WHERE fac.safe_to_number (prs_perslid_nr) IS NOT NULL;
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_srtperslid_omschrijving = COALESCE(prs_kenmerk3, 'Extern');
|
||||
|
||||
|
||||
-- Verwijder dubbele records (personen met <20><>n login en meerdere personeelsnummers
|
||||
-- Anders krijgen we allemaal onnodige logging
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
DELETE fac_imp_perslid
|
||||
WHERE prs_perslid_oslogin = rec.prs_perslid_oslogin AND prs_perslid_nr <> rec.prs_perslid_nr;
|
||||
END LOOP;
|
||||
|
||||
END LOOP;
|
||||
|
||||
END ykpn_import_perslid;
|
||||
/
|
||||
|
||||
@@ -792,7 +792,7 @@ AS
|
||||
v_seq_of_columns VARCHAR(255);
|
||||
BEGIN
|
||||
NULL;
|
||||
-- de daadwerkelijke update wordt door een scheduled task (ykpn_update_perslid_sched) in de nacht uitgevoerd.
|
||||
-- de daadwerkelijke update wordt door een scheduled task (ykpn_update_perslid_sched) in de nacht uitgevoerd.
|
||||
END ykpn_update_perslid;
|
||||
/
|
||||
|
||||
@@ -805,7 +805,7 @@ END;
|
||||
|
||||
CREATE OR REPLACE PROCEDURE ykpn_update_perslid_sched (p_import_key IN NUMBER)
|
||||
AS
|
||||
CURSOR c_del IS
|
||||
CURSOR c_del IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full, p.prs_perslid_oslogin
|
||||
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
|
||||
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
|
||||
@@ -818,8 +818,8 @@ AS
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_hint VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_count NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_count NUMBER;
|
||||
|
||||
BEGIN
|
||||
-- De afdelingscode uit het persoonsbestand komt overeen met de kostenplaats. Dus zoeken we a.d.h.v.
|
||||
@@ -833,19 +833,19 @@ BEGIN
|
||||
AND k.prs_kostenplaats_nr = i.prs_afdeling_naam);
|
||||
|
||||
-- KPN gebruikt een andere codering voor het gebruik van de partnernaam daarom gaan we deze even omzetten
|
||||
-- KPN code 1 eigennaam wordt 0
|
||||
-- KPN code 2 partnernaam wordt 2
|
||||
-- KPN code 3 partner - eigen naam wordt 1
|
||||
-- KPN code 4 eigen - partner naam wordt 3
|
||||
-- KPN code 1 eigennaam wordt 0
|
||||
-- KPN code 2 partnernaam wordt 2
|
||||
-- KPN code 3 partner - eigen naam wordt 1
|
||||
-- KPN code 4 eigen - partner naam wordt 3
|
||||
UPDATE fac_imp_perslid i
|
||||
SET prs_perslid_naamgebruik_code = DECODE(prs_perslid_naamgebruik_code,1,0,2,2,3,1,4,3,0);
|
||||
|
||||
-- Controleer of er wel genoeg mensen in de database staan
|
||||
-- Controleer of er wel genoeg mensen in de database staan
|
||||
-- Veilige check is 10000 medewerkers
|
||||
SELECT COUNT(*)
|
||||
INTO v_count
|
||||
FROM fac_imp_perslid;
|
||||
|
||||
|
||||
IF v_count > 10000
|
||||
THEN
|
||||
-- Voordat we gaan importeren gaan we op zoek of we nog mensen moeten verwijderen die niet in de import voorkomen.
|
||||
@@ -855,17 +855,17 @@ BEGIN
|
||||
FOR rec IN c_del LOOP
|
||||
BEGIN
|
||||
v_hint := 'Zoek naar bestaande logincode: ' || rec.prs_perslid_nr || '-' || rec.prs_perslid_oslogin;
|
||||
SELECT MIN(prs_perslid_nr)
|
||||
INTO v_perslid_nr
|
||||
FROM fac_imp_perslid i
|
||||
SELECT MIN(prs_perslid_nr)
|
||||
INTO v_perslid_nr
|
||||
FROM fac_imp_perslid i
|
||||
WHERE UPPER(i.prs_perslid_oslogin) = rec.prs_perslid_oslogin
|
||||
AND NOT EXISTS (SELECT prs_perslid_key FROM prs_perslid p WHERE p.prs_perslid_nr = i.prs_perslid_nr);
|
||||
|
||||
|
||||
IF v_perslid_nr IS NOT NULL
|
||||
THEN
|
||||
THEN
|
||||
v_hint := 'Pas login van te verwijderen persoon aan: ' || rec.prs_perslid_nr || '->' || v_perslid_nr || '-' || rec.prs_perslid_oslogin;
|
||||
fac.imp_writelog (p_import_key, 'I', 'Te verwijderen persoon op login gevonden: ' || rec.prs_perslid_nr || '->' || v_perslid_nr || '-' || rec.prs_perslid_oslogin, '');
|
||||
UPDATE prs_perslid p SET prs_perslid_nr = v_perslid_nr WHERE p.prs_perslid_key = rec.prs_perslid_key;
|
||||
UPDATE prs_perslid p SET prs_perslid_nr = v_perslid_nr WHERE p.prs_perslid_key = rec.prs_perslid_key;
|
||||
ELSE
|
||||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||||
END IF;
|
||||
@@ -876,13 +876,13 @@ BEGIN
|
||||
v_errormsg := 'error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_hint);
|
||||
END;
|
||||
END LOOP;
|
||||
END LOOP;
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key, 'E', 'Te weinig personen in de database om te verwijderen: ' || v_count, '');
|
||||
END IF;
|
||||
|
||||
END IF;
|
||||
|
||||
prs.update_perslid (p_import_key, 'NR', 'A');
|
||||
|
||||
|
||||
-- Iedereen mag op elke kostenplaats boeken.
|
||||
INSERT INTO prs_perslidkostenplaats (prs_perslid_key, prs_perslidkostenplaats_boeken)
|
||||
SELECT prs_perslid_key, 1
|
||||
@@ -893,10 +893,10 @@ BEGIN
|
||||
WHERE pk.prs_perslid_key = p.prs_perslid_key);
|
||||
|
||||
-- Vul het mobiele nummer in als mensen een telefoonnummer hebben dat begint met +316
|
||||
UPDATE prs_perslid
|
||||
UPDATE prs_perslid
|
||||
SET prs_perslid_mobiel = prs_perslid_telefoonnr
|
||||
WHERE prs_perslid_telefoonnr LIKE '+316%';
|
||||
|
||||
|
||||
END ykpn_update_perslid_sched;
|
||||
/
|
||||
|
||||
@@ -1138,13 +1138,13 @@ BEGIN
|
||||
imp_get_filled_field (v_newline, v_fielddelimitor, v_field);
|
||||
|
||||
IF v_field LIKE '%-->%'
|
||||
THEN
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
'Lege ruimtesoort',
|
||||
v_gebouw_code || '-' || v_errorhint || v_aanduiding);
|
||||
v_srtruimte_omschrijving := 'ONBEKEND!!!!';
|
||||
ELSE
|
||||
ELSE
|
||||
v_srtruimte_omschrijving := v_field;
|
||||
END IF;
|
||||
|
||||
@@ -1156,7 +1156,7 @@ BEGIN
|
||||
v_errorhint := 'Inlezen toepassing: ';
|
||||
imp_get_filled_field (v_newline, v_fielddelimitor, v_field);
|
||||
IF v_field LIKE '%-->%'
|
||||
THEN
|
||||
THEN
|
||||
v_ruimte_toepassing := 'onbekend';
|
||||
ELSE
|
||||
v_ruimte_toepassing := REPLACE (v_field, ' ');
|
||||
@@ -1183,7 +1183,7 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
imp_get_filled_field (v_newline, v_fielddelimitor, v_field);
|
||||
|
||||
|
||||
v_errorhint := 'Inlezen wo: ';
|
||||
--v_wo_txt := REPLACE (SUBSTR (v_field, 1, INSTR (v_field, 'm') - 1), ',', '.');
|
||||
v_wo := my_to_number (SUBSTR (v_field, 1, INSTR (v_field, 'm') - 1));
|
||||
@@ -1344,7 +1344,7 @@ AS
|
||||
AND a.bez_afspraak_datum > SYSDATE + 2 / 24;
|
||||
|
||||
CURSOR cs
|
||||
IS
|
||||
IS
|
||||
SELECT a.bez_afspraak_key,
|
||||
b.bez_bezoekers_key,
|
||||
kwm.bez_kenmerkwaarde_waarde mobiel,
|
||||
@@ -1374,8 +1374,8 @@ AS
|
||||
AND NOT EXISTS (SELECT bez_kenmerkwaarde_waarde
|
||||
FROM bez_kenmerkwaarde kws
|
||||
WHERE bez_kenmerk_key = 1043 -- sms verzonden
|
||||
AND kws.bez_bezoekers_key = b.bez_bezoekers_key);
|
||||
|
||||
AND kws.bez_bezoekers_key = b.bez_bezoekers_key);
|
||||
|
||||
BEGIN
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
@@ -1406,14 +1406,14 @@ BEGIN
|
||||
|| rec.alg_gebouw_key
|
||||
|| '/1040/'
|
||||
|| rec.bijlage);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
YKPN.set_kenmerk('BEZ', 1042, rec.bez_bezoekers_key, TO_CHAR (rec.bez_afspraak_datum, 'yyyy-mm-dd hh24:mi:ss')
|
||||
|| ';' || COALESCE (rec.res_deel_key, -1) || ';' || rec.xemail, 0);
|
||||
|
||||
END LOOP;
|
||||
|
||||
|
||||
-- en nu de SMS berichten versturen
|
||||
FOR rec IN cs
|
||||
LOOP
|
||||
@@ -1432,7 +1432,7 @@ BEGIN
|
||||
rec.bez_afspraak_key,
|
||||
rec.bez_bezoekers_key,
|
||||
2);
|
||||
|
||||
|
||||
YKPN.set_kenmerk('BEZ', 1043, rec.bez_bezoekers_key, TO_CHAR (SYSDATE, 'yyyy-mm-dd hh24:mi:ss'),0);
|
||||
END LOOP;
|
||||
END;
|
||||
@@ -2056,7 +2056,7 @@ AS
|
||||
AND a8.prs_afdeling_parentkey = a7.prs_afdeling_key
|
||||
AND a9.prs_afdeling_parentkey = a8.prs_afdeling_key
|
||||
AND a10.prs_afdeling_parentkey = a9.prs_afdeling_key
|
||||
AND a1.prs_afdeling_parentkey IS NULL
|
||||
AND a1.prs_afdeling_parentkey IS NULL
|
||||
UNION
|
||||
SELECT '11' niveau,
|
||||
a1.prs_bedrijf_key,
|
||||
@@ -2112,7 +2112,7 @@ AS
|
||||
bez_kenmerkwaarde_aanmaak,
|
||||
bez_kenmerk_omschrijving
|
||||
FROM bez_kenmerkwaarde kw, bez_kenmerk k, bez_bezoekers b
|
||||
WHERE k.bez_kenmerk_key = kw.bez_kenmerk_key
|
||||
WHERE k.bez_kenmerk_key = kw.bez_kenmerk_key
|
||||
AND kw.bez_bezoekers_key = b.bez_bezoekers_key;
|
||||
|
||||
|
||||
@@ -2181,7 +2181,7 @@ AS
|
||||
WHERE on1.mld_opdr_key = on2.mld_opdr_key
|
||||
AND SUBSTR (on2.mld_opdr_note_omschrijving, 1, 1) = '#'
|
||||
AND on2.mld_opdr_note_key > on1.mld_opdr_note_key))
|
||||
actie
|
||||
actie
|
||||
FROM mld_melding m,
|
||||
mld_stdmelding sm,
|
||||
mld_opdr op,
|
||||
@@ -2330,7 +2330,7 @@ AS
|
||||
AND p.prs_afdeling_key = b.prs_afdeling_key
|
||||
AND op.mld_statusopdr_key = so.mld_statusopdr_key
|
||||
AND op.mld_uitvoerende_keys = 42702;
|
||||
|
||||
|
||||
-- Rapport om misbruik van parkeerplaatsen op eigen locatie te rapporteren.
|
||||
CREATE OR REPLACE VIEW ykpn_v_rap_pp_eigen_gebruik
|
||||
(
|
||||
@@ -2384,7 +2384,7 @@ AS
|
||||
SELECT *
|
||||
FROM mld_opdr
|
||||
-- Arnoud Pleij en bedrijf KPN RES services
|
||||
WHERE mld_uitvoerende_keys IN (7676, 42702)
|
||||
WHERE mld_uitvoerende_keys IN (7676, 42702)
|
||||
-- status geaccepteerd
|
||||
AND mld_statusopdr_key = 8;
|
||||
BEGIN
|
||||
@@ -2396,6 +2396,313 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
-----------------------------------------
|
||||
-- Import toegangscontrole bestanden
|
||||
-----------------------------------------
|
||||
CREATE OR REPLACE VIEW ykpn_v_toegang
|
||||
(
|
||||
alg_gebouw_code,
|
||||
alg_gebouw_naam,
|
||||
datum,
|
||||
soort_lezer,
|
||||
tijd, aantal
|
||||
)
|
||||
AS
|
||||
SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '00', h00 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '01', h01 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '02', h02 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '03', h03 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '04', h04 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '05', h05 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '06', h06 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '07', h07 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '08', h08 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '09', h09 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '10', h10 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '11', h11 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '12', h12 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '13', h13 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '14', h14 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '15', h15 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '16', h16 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '17', h17 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '18', h18 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '19', h19 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '20', h20 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '21', h21 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '22', h22 FROM ykpn_imp_toegang
|
||||
UNION ALL SELECT alg_gebouw_code, alg_gebouw_naam, datum, soort_lezer, '23', h23 FROM ykpn_imp_toegang;
|
||||
|
||||
CREATE OR REPLACE PROCEDURE ykpn_import_toegang (p_import_key IN NUMBER)
|
||||
AS
|
||||
CURSOR c
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
|
||||
v_newline VARCHAR2 (1000);
|
||||
v_aanduiding VARCHAR2 (1000); -- Import line
|
||||
v_field VARCHAR2 (100); -- Import field
|
||||
v_fielddelimitor VARCHAR2 (1); -- Field seperator
|
||||
v_errormsg VARCHAR (200);
|
||||
v_errorhint VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_skipfield VARCHAR2 (100);
|
||||
-- De importvelden
|
||||
header_found BOOLEAN;
|
||||
v_alg_gebouw_code VARCHAR2 (12);
|
||||
v_alg_gebouw_soort VARCHAR2 (10);
|
||||
v_alg_gebouw_naam VARCHAR2 (60);
|
||||
v_soort_lezer VARCHAR2 (10);
|
||||
v_datum_txt VARCHAR2 (10);
|
||||
v_lezer VARCHAR2 (500);
|
||||
v_h00 NUMBER;
|
||||
v_h01 NUMBER;
|
||||
v_h02 NUMBER;
|
||||
v_h03 NUMBER;
|
||||
v_h04 NUMBER;
|
||||
v_h05 NUMBER;
|
||||
v_h06 NUMBER;
|
||||
v_h07 NUMBER;
|
||||
v_h08 NUMBER;
|
||||
v_h09 NUMBER;
|
||||
v_h10 NUMBER;
|
||||
v_h11 NUMBER;
|
||||
v_h12 NUMBER;
|
||||
v_h13 NUMBER;
|
||||
v_h14 NUMBER;
|
||||
v_h15 NUMBER;
|
||||
v_h16 NUMBER;
|
||||
v_h17 NUMBER;
|
||||
v_h18 NUMBER;
|
||||
v_h19 NUMBER;
|
||||
v_h20 NUMBER;
|
||||
v_h21 NUMBER;
|
||||
v_h22 NUMBER;
|
||||
v_h23 NUMBER;
|
||||
v_datum DATE;
|
||||
v_first NUMBER;
|
||||
BEGIN
|
||||
-- Init
|
||||
header_found := FALSE;
|
||||
v_fielddelimitor := ';';
|
||||
|
||||
-- Clear my previous imported rows
|
||||
DELETE FROM ykpn_imp_toegang;
|
||||
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
BEGIN
|
||||
v_newline := rec.fac_imp_file_line;
|
||||
v_aanduiding := v_newline;
|
||||
|
||||
IF SUBSTR (v_newline, 1, 3) = '?'
|
||||
THEN
|
||||
-- EF BB BF aangetroffen
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
'Byte Order Mark aangetroffen',
|
||||
'Bestand heeft onbehandeld UTF-8 formaat.');
|
||||
v_newline := SUBSTR (v_newline, 4);
|
||||
END IF;
|
||||
|
||||
-- Skip until a valid header is found
|
||||
IF UPPER (rec.fac_imp_file_line) LIKE
|
||||
'GEBCODE;GEBSOORT;GEBOUWNAW;SOORTLEZER;YYYYMMDD;LEZER;H0;H1;H2;H3;H4;H5;H6;H7;H8;H9;H10;H11;H12;H13;H14;H15;H16;H17;H18;H19;H20;H21;H22;H23;TOTAAL%'
|
||||
THEN
|
||||
-- Sla de kopregel over.
|
||||
header_found := TRUE;
|
||||
ELSIF (header_found)
|
||||
THEN
|
||||
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_alg_gebouw_code);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_alg_gebouw_soort);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_alg_gebouw_naam);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_soort_lezer);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_datum_txt);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_lezer);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h00);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h01);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h02);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h03);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h04);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h05);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h06);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h07);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h08);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h09);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h10);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h11);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h12);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h13);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h14);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h15);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h16);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h17);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h18);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h19);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h20);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h21);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h22);
|
||||
fac.imp_getfield (v_newline, v_fielddelimitor, v_h23);
|
||||
v_datum := TO_DATE (v_datum_txt, 'yyyymmdd');
|
||||
|
||||
INSERT INTO ykpn_imp_toegang (alg_gebouw_code,
|
||||
alg_gebouw_soort,
|
||||
alg_gebouw_naam,
|
||||
soort_lezer,
|
||||
datum_txt,
|
||||
lezer,
|
||||
h00,
|
||||
h01,
|
||||
h02,
|
||||
h03,
|
||||
h04,
|
||||
h05,
|
||||
h06,
|
||||
h07,
|
||||
h08,
|
||||
h09,
|
||||
h10,
|
||||
h11,
|
||||
h12,
|
||||
h13,
|
||||
h14,
|
||||
h15,
|
||||
h16,
|
||||
h17,
|
||||
h18,
|
||||
h19,
|
||||
h20,
|
||||
h21,
|
||||
h22,
|
||||
h23,
|
||||
datum)
|
||||
VALUES (v_alg_gebouw_code,
|
||||
v_alg_gebouw_soort,
|
||||
v_alg_gebouw_naam,
|
||||
v_soort_lezer,
|
||||
v_datum_txt,
|
||||
SUBSTR(v_lezer,1,50),
|
||||
v_h00,
|
||||
v_h01,
|
||||
v_h02,
|
||||
v_h03,
|
||||
v_h04,
|
||||
v_h05,
|
||||
v_h06,
|
||||
v_h07,
|
||||
v_h08,
|
||||
v_h09,
|
||||
v_h10,
|
||||
v_h11,
|
||||
v_h12,
|
||||
v_h13,
|
||||
v_h14,
|
||||
v_h15,
|
||||
v_h16,
|
||||
v_h17,
|
||||
v_h18,
|
||||
v_h19,
|
||||
v_h20,
|
||||
v_h21,
|
||||
v_h22,
|
||||
v_h23,
|
||||
v_datum);
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
IF NOT header_found
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
'Geen geldige header aangetroffen',
|
||||
'Bestand is geen geldig toegang importbestand.');
|
||||
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',
|
||||
SUBSTR (v_errormsg, 1, 1000),
|
||||
v_aanduiding);
|
||||
|
||||
-- maak de importtabel leeg om te voorkomen dat er halve bestanden ingelezen worden.
|
||||
DELETE FROM ykpn_imp_toegang;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE ykpn_update_toegang (p_import_key IN NUMBER)
|
||||
AS
|
||||
v_datum DATE;
|
||||
|
||||
BEGIN
|
||||
|
||||
-- haal de eerste dag van de ingelezen maand op.
|
||||
SELECT DISTINCT TRUNC(datum, 'MON')
|
||||
INTO v_datum
|
||||
FROM ykpn_imp_toegang;
|
||||
|
||||
-- verwijder oude records als we deze maand al eerder ingelezen hebben.
|
||||
DELETE ykpn_toegang_saldo WHERE TRUNC(datum, 'MON') = v_datum;
|
||||
|
||||
-- de data in de ykpn_imp_toegang tabel bevat delta's per uur voor een specifieke lezer
|
||||
-- deze data gaan we nu zo opslaan dat we per uur het aantal aanwezige persoonen kunnen rapporteren.
|
||||
INSERT INTO ykpn_toegang_saldo (alg_gebouw_code,
|
||||
alg_gebouw_naam,
|
||||
datum,
|
||||
tijd,
|
||||
saldo)
|
||||
SELECT t.alg_gebouw_code,
|
||||
t.alg_gebouw_naam,
|
||||
t.datum,
|
||||
t.tijd,
|
||||
(SELECT SUM (DECODE (soort_lezer, 'IN', 1, -1) * aantal)
|
||||
FROM ykpn_v_toegang ts
|
||||
WHERE ts.alg_gebouw_code = t.alg_gebouw_code
|
||||
AND ts.datum = t.datum
|
||||
AND TO_NUMBER (ts.tijd) <= TO_NUMBER (t.tijd))
|
||||
saldo
|
||||
FROM ykpn_v_toegang t
|
||||
GROUP BY alg_gebouw_code,
|
||||
alg_gebouw_naam,
|
||||
datum,
|
||||
tijd;
|
||||
|
||||
-- voor de rapportages is het ook wenselijk om andere notaties van de datum erbij te hebben.
|
||||
-- verder voegen we ook het aantal werkplekken van het gebouw en de bezetting toe.
|
||||
|
||||
UPDATE ykpn_toegang_saldo s
|
||||
SET dag = DECODE(to_char(datum, 'D'), 1, 'Zondag', 2, 'Maandag', 3, 'Dinsdag', 4, 'Woensdag', 5, 'Donderdag', 6, 'Vrijdag', 7, 'Zaterdag'),
|
||||
dag_nummer = to_char(datum, 'D'),
|
||||
weekend = DECODE(to_char(datum, 'D'), 1, 'Ja', 7, 'Ja', 'Nee'),
|
||||
(bezetting, aantal_wp) = ( SELECT ROUND( (saldo * 100) / fac.safe_to_number(alg_onrgoedkenmerk_waarde)),
|
||||
fac.safe_to_number(alg_onrgoedkenmerk_waarde)
|
||||
FROM alg_onrgoedkenmerk aogk, alg_gebouw g
|
||||
WHERE alg_kenmerk_key = 1100
|
||||
AND aogk.alg_onrgoed_key = g.alg_gebouw_key
|
||||
AND g.alg_gebouw_code = s.alg_gebouw_code)
|
||||
WHERE TRUNC(datum, 'MON') = v_datum;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
-----------------------------------------
|
||||
-- Koppeling met Strukton
|
||||
-----------------------------------------
|
||||
@@ -2458,9 +2765,9 @@ BEGIN
|
||||
fac.imp_getfield (v_newline, c_delim, v_opmerking);
|
||||
fac.imp_getfield (v_newline, c_delim, v_totaal_str);
|
||||
v_totaal := fac.safe_to_number(v_totaal_str);
|
||||
|
||||
|
||||
fac.imp_writelog (p_import_key, 'I', 'v_totaal_str:' || v_totaal_str || ' v_totaal:' || v_totaal || ' fac.safe_to_number(v_totaal_str):' || fac.safe_to_number(v_totaal_str),'');
|
||||
|
||||
|
||||
v_opmerking := substr(v_opmerking, 1, 1000);
|
||||
-- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben.
|
||||
v_opmerking := replace(v_opmerking, '@@',CHR (13) || CHR (10));
|
||||
@@ -2546,7 +2853,7 @@ BEGIN
|
||||
WHEN v_status_code = '30' -- technisch gereed
|
||||
THEN
|
||||
v_status := 6; -- afgemeld
|
||||
-- YKPN#32991
|
||||
-- YKPN#32991
|
||||
-- WHEN v_status_code = '40' -- uitgeprijst
|
||||
-- THEN
|
||||
-- v_status := 9; -- afgerond
|
||||
@@ -3183,13 +3490,13 @@ SELECT m.mld_melding_key,
|
||||
NULL procuratiebedrag,
|
||||
NULL opdrachtbedrag,
|
||||
(select fac.safe_to_number(mld_kenmerkmelding_waarde) from mld_kenmerkmelding km, mld_kenmerk k where km.mld_melding_key = m.mld_melding_key and km.mld_kenmerk_key = k.mld_kenmerk_key and k.mld_srtkenmerk_key = 221) factuurbedrag
|
||||
FROM mld_melding m, alg_locatie l, alg_district d, mld_stdmelding std, ins_tab_discipline di,
|
||||
FROM mld_melding m, alg_locatie l, alg_district d, mld_stdmelding std, ins_tab_discipline di,
|
||||
mld_statuses ms
|
||||
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
|
||||
AND l.alg_district_key = d.alg_district_key
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.mld_ins_discipline_key = di.ins_discipline_key
|
||||
AND m.mld_melding_status = ms.mld_statuses_key
|
||||
AND m.mld_melding_status = ms.mld_statuses_key
|
||||
order by mld_melding_key, mld_opdr_bedrijfopdr_volgnr;
|
||||
|
||||
------ payload end ------
|
||||
|
||||
Reference in New Issue
Block a user