ASDL#52019 -- Signalering WAV pas

svn path=/Customer/trunk/; revision=36822
This commit is contained in:
Arthur Egberink
2018-02-02 12:45:53 +00:00
parent 675219a78c
commit 3fb4fbc914

View File

@@ -97,12 +97,12 @@ AS
THEN
-- uurlijks doen we nog even niets mee
NULL;
ELSIF p_eenheid = 1
THEN
ELSIF p_eenheid = 1
THEN
-- dagelijks doen we nog even niets mee
NULL;
ELSIF p_eenheid = 2
THEN
ELSIF p_eenheid = 2
THEN
-- wekelijks
IF BITAND (p_bits, 2) <> 0 THEN v_result := 'Ma'; END IF;
IF BITAND (p_bits, 4) <> 0 THEN v_result := v_result || 'Di'; END IF;
@@ -112,8 +112,8 @@ AS
IF BITAND (p_bits, 64) <> 0 THEN v_result := v_result || 'Za'; END IF;
IF BITAND (p_bits, 1) <> 0 THEN v_result := v_result || 'Zo'; END IF;
IF BITAND (p_bits, 128) <> 0 THEN v_result := v_result || 'NF'; END IF;
ELSIF p_eenheid = 3
THEN
ELSIF p_eenheid = 3
THEN
-- maandelijks
IF BITAND (p_bits, 2) <> 0 THEN v_result := 'Ma'; END IF;
IF BITAND (p_bits, 4) <> 0 THEN v_result := v_result || 'Di'; END IF;
@@ -126,7 +126,7 @@ AS
END IF;
RETURN v_result;
END;
FUNCTION get_bits_value (p_eenheid IN NUMBER,
p_rangorde IN NUMBER,
p_dagen IN VARCHAR2) RETURN NUMBER
@@ -147,22 +147,22 @@ AS
v_result := v_result + (p_rangorde * 256);
END IF;
RETURN v_result;
END;
END;
FUNCTION get_bits_rangorde (p_eenheid IN NUMBER,
p_bits IN NUMBER) RETURN NUMBER
AS
m_bits NUMBER;
BEGIN
IF p_eenheid = 3
THEN
IF p_eenheid = 3
THEN
-- maandelijks
m_bits := BITAND(p_bits, 256 + 512 + 1024) / 256;
END IF;
RETURN m_bits;
END;
FUNCTION get_kenmerks (p_module IN VARCHAR2,
p_srtkenmerk_key IN NUMBER,
p_soort_key IN NUMBER,
@@ -192,7 +192,7 @@ AS
AND ins_srtinstallatie_key = p_soort_key
AND ins_kenmerk_niveau = p_soort_niveau;
END CASE;
RETURN asdl.get_kenmerk (p_module,
v_kenmerk_key,
p_link_key);
@@ -270,7 +270,7 @@ AS
INTO v_kenmerk_niveau
FROM ins_kenmerk k
WHERE ins_kenmerk_key = p_kenmerk_key;
IF v_kenmerk_niveau = 'C' THEN
SELECT sk.ins_srtkenmerk_kenmerktype,
sk.fac_kenmerkdomein_key,
@@ -299,13 +299,13 @@ AS
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
END IF;
END CASE;
RETURN asdl.get_kenmerkwaarde (v_kenmerk_type,
v_kenmerkdomein_key,
v_kenmerk_waarde);
END;
FUNCTION get_kenmerkwaarde (p_kenmerk_type VARCHAR2,
p_kenmerkdomein_key NUMBER,
p_kenmerk_waarde VARCHAR2)
@@ -479,7 +479,7 @@ AS
WHERE idsc.ins_deelsrtcontrole_status < 5
AND idsc.ins_deel_key = d.ins_deel_key
AND idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key
)
)
)
OR EXISTS (SELECT idsc.ins_deelsrtcontrole_status
FROM ins_deelsrtcontrole idsc
@@ -583,7 +583,7 @@ AS
WHERE idsc.ins_deelsrtcontrole_status < 5
AND idsc.ins_deel_key = d.ins_deel_key
AND idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key
)
)
)
OR EXISTS (SELECT idsc.ins_deelsrtcontrole_status
FROM ins_deelsrtcontrole idsc
@@ -654,10 +654,10 @@ SELECT r.alg_regio_key,
AND di.alg_regio_key = r.alg_regio_key
AND idc.prs_perslid_key = pf.prs_perslid_key;
CREATE OR REPLACE VIEW asdl_v_rap_persoonsgegevens
CREATE OR REPLACE VIEW asdl_v_rap_persoonsgegevens
AS
SELECT pf.prs_perslid_naam_full naam,
prs_afdeling_naam,
prs_afdeling_naam,
p.prs_perslid_key,
prs_perslid_email email,
prs_srtperslid_omschrijving,
@@ -697,11 +697,11 @@ SELECT pf.prs_perslid_naam_full naam,
asdl.get_kenmerk ('PRS', 1041, p.prs_perslid_key) wavpas,
fac.safe_to_date(asdl.get_kenmerk ('PRS', 1100, p.prs_perslid_key), 'yyyy-mm-dd') wavpasgeldigtot,
d.alg_district_omschrijving
FROM prs_perslid p,
FROM prs_perslid p,
prs_afdeling a,
prs_srtperslid sp,
prs_v_perslid_fullnames pf,
( SELECT prs_perslid_key, alg_district_key
( SELECT prs_perslid_key, alg_district_key
FROM prs_v_perslidwerkplek_gegevens pwg, alg_locatie l
WHERE pwg.alg_locatie_key = l.alg_locatie_key
AND alg_district_key <> 21 -- Algemene Asito locatie
@@ -893,7 +893,7 @@ AS
AND d.alg_locatie_key = l.alg_locatie_key
AND d.ins_deel_key = x.ins_deel_key
AND d.ins_deel_key = id.ins_deel_key
AND l.alg_district_key = di.alg_district_key;
AND l.alg_district_key = di.alg_district_key;
CREATE OR REPLACE VIEW asdl_v_rap_check_schedule
AS
@@ -1236,6 +1236,25 @@ AS
'dd-mm-yyyy')
- (2 * 7))
UNION
SELECT 'WAV (wet arbeid vreemdelingen)',
prs_link_key,
prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1100
AND TRUNC (SYSDATE) IN
(fac.safe_to_date (prs_kenmerklink_waarde,
'dd-mm-yyyy')
- (8 * 7),
fac.safe_to_date (prs_kenmerklink_waarde,
'dd-mm-yyyy')
- (6 * 7),
fac.safe_to_date (prs_kenmerklink_waarde,
'dd-mm-yyyy')
- (4 * 7),
fac.safe_to_date (prs_kenmerklink_waarde,
'dd-mm-yyyy')
- (2 * 7))
UNION
SELECT 'VCA Basis', prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerk_key = 1054
@@ -1404,7 +1423,7 @@ AS
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND UPPER(nj.fac_notificatie_job_view) = 'ASDL_V_NOTI_GLAS_FACTUUR'
AND t.fac_tracking_datum > nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24);
-------------------------------------------------------------------------------------------
--
-- Importsheets
@@ -1534,25 +1553,25 @@ BEGIN
SELECT count(*)
INTO v_count
FROM fac_imp_perslid;
IF v_count > 0 THEN
-- generic update
prs.update_perslid (p_import_key, 'NR', NULL);
FOR rec IN c_del
LOOP
BEGIN
-- Niet gebruik maken van de standaard functie omdat we geen medewerkers
-- hard willen verwijderen.
-- prs.delete_perslid (p_import_key, rec.prs_perslid_key);
-- Controleer of er ACTUELE verplichtingen zijn
SELECT COUNT ( * )
INTO v_count
FROM prs_v_verplichting_keys vp
WHERE vp.prs_perslid_key = rec.prs_perslid_key;
IF v_count > 0
THEN
UPDATE prs_perslid
@@ -1562,12 +1581,12 @@ BEGIN
prs_perslid_oslogin2 = NULL
WHERE prs_perslid_key = rec.prs_perslid_key
AND prs_perslid_naam NOT LIKE 'INACTIEF:%';
IF rec.prs_perslid_naam_full NOT LIKE '%INACTIEF%'
THEN
fac.trackaction ('PRSUPD', rec.prs_perslid_key, NULL, SYSDATE, 'Persoon als INACTIEF gemarkeerd of was al INACTIEF gemarkeerd.' );
END IF;
fac.imp_writelog (
p_import_key,
'I',
@@ -1606,17 +1625,17 @@ BEGIN
'Inactiveren persoon is niet gelukt',
v_errorhint);
END;
END IF;
END IF;
END;
END LOOP;
UPDATE fac_imp_perslid i
SET prs_kenmerk3 =
(SELECT prs_perslid_key
FROM prs_perslid p
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_nr = i.prs_kenmerk1);
FOR rec IN c_flex
LOOP
BEGIN
@@ -1707,9 +1726,9 @@ BEGIN
THEN
v_errorhint := 'Datum omzetten naar intern formaat';
v_datum := to_date(v_datum_str, 'dd-mm-yyyy');
-- personeelsnummer voorzien van voorloopnullen
v_perslid_nr := LPAD(v_perslid_nr, 8, '0');
v_perslid_nr := LPAD(v_perslid_nr, 8, '0');
v_errorhint := 'Vind de juiste persoon';
SELECT prs_perslid_key
@@ -1717,12 +1736,12 @@ BEGIN
FROM prs_perslid p
WHERE prs_perslid_verwijder IS NULL
AND prs_perslid_nr = v_perslid_nr;
v_errorhint := 'Vind de juiste locatie (op postcode)';
BEGIN
SELECT alg_locatie_key
INTO v_locatie_key
FROM alg_locatie
FROM alg_locatie
WHERE alg_locatie_verwijder IS NULL
AND REPLACE(alg_locatie_code, ' ') = SUBSTR(v_locatie_code, 1, 6);
EXCEPTION WHEN NO_DATA_FOUND
@@ -1730,7 +1749,7 @@ BEGIN
v_errorhint := 'Vind de juiste locatie (op omschrijving)';
SELECT alg_locatie_key
INTO v_locatie_key
FROM alg_locatie
FROM alg_locatie
WHERE alg_locatie_verwijder IS NULL
AND UPPER(v_locatie_omschrijving) like '%' || UPPER(alg_locatie_omschrijving);
END;
@@ -1740,9 +1759,9 @@ BEGIN
INTO v_ruimte_key
FROM alg_v_ruimte_gegevens rg
WHERE alg_locatie_key = v_locatie_key;
BEGIN
v_errorhint := 'Check of er al een werkplek voor deze persoon bestaat.';
v_errorhint := 'Check of er al een werkplek voor deze persoon bestaat.';
SELECT wp.prs_werkplek_key, prs_perslidwerkplek_key
INTO v_werkplek_key, v_perslidwerkplek_key
FROM prs_werkplek wp,
@@ -1750,21 +1769,21 @@ BEGIN
WHERE wp.prs_werkplek_key = pwp.prs_werkplek_key
AND wp.prs_alg_ruimte_key = v_ruimte_key
AND pwp.prs_perslid_key = v_perslid_key
AND prs_werkplek_type = 1 -- we gebruikten type flex om conflict met echter wp te voorkomen.
AND prs_werkplek_type = 1 -- we gebruikten type flex om conflict met echter wp te voorkomen.
AND prs_werkplek_virtueel = 1;
v_errorhint := 'Pas de datum aan bij de werkplek';
UPDATE prs_werkplek SET prs_werkplek_getekend = v_datum WHERE prs_werkplek_key = v_werkplek_key;
UPDATE prs_werkplek SET prs_werkplek_getekend = v_datum WHERE prs_werkplek_key = v_werkplek_key;
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_errorhint := 'Bepaal max werkplekvolgnummer';
v_errorhint := 'Bepaal max werkplekvolgnummer';
SELECT MAX(prs_werkplek_volgnr)
INTO v_max_werkplek_volgnr
FROM prs_werkplek
WHERE prs_alg_ruimte_key = v_ruimte_key;
v_errorhint := 'Toevoegen werkplek';
v_errorhint := 'Toevoegen werkplek';
INSERT INTO prs_werkplek
( prs_alg_ruimte_key,
prs_werkplek_volgnr,
@@ -1779,8 +1798,8 @@ BEGIN
1,
1)
RETURNING prs_werkplek_key INTO v_werkplek_key;
v_errorhint := 'Toevoegen perslidwerkplek';
v_errorhint := 'Toevoegen perslidwerkplek';
INSERT INTO prs_perslidwerkplek
( prs_werkplek_key,
prs_perslid_key)
@@ -1807,7 +1826,7 @@ BEGIN
'Bestand is geen geldig ruimtesoort importbestand.'
);
END IF;
-- Werkplekken ouder dan 18 maanden gaan we weggooien.
DELETE prs_perslidwerkplek pwp
WHERE pwp.prs_werkplek_key IN (SELECT prs_werkplek_key
@@ -1863,11 +1882,11 @@ AS
v_count NUMBER;
BEGIN
fac_import_ins(p_import_key);
-- vul een volgnummer in kenmerk20
UPDATE fac_imp_ins
SET ins_kenmerkwaarde20 = ROWNUM;
-- markeer objecten die niet uniek zijn met *<volgnummer>
FOR rec IN c
LOOP
@@ -1949,7 +1968,7 @@ BEGIN
v_district := SUBSTR (rec.ins_kenmerkwaarde3, 1, 30);
v_locatie := SUBSTR (rec.ins_kenmerkwaarde4, 1, 60);
v_locatie_code := rec.alg_locatie_code;
v_aanduiding := 'Locatiecode: ' || v_locatie_code || ' - Locatie omschrijving: ' || v_locatie;
SELECT alg_regio_key
@@ -2000,7 +2019,7 @@ BEGIN
UPDATE alg_locatie
SET alg_locatie_omschrijving = v_locatie
WHERE alg_locatie_key = v_locatie_key;
EXCEPTION WHEN OTHERS
EXCEPTION WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
@@ -2019,7 +2038,7 @@ BEGIN
TRIM (v_locatie))
RETURNING alg_locatie_key
INTO v_locatie_key;
EXCEPTION WHEN OTHERS
EXCEPTION WHEN OTHERS
THEN
v_locatie_key := -1;
oracle_err_num := SQLCODE;
@@ -2130,7 +2149,7 @@ BEGIN
181)
RETURNING ins_srtcontrole_key INTO v_srtcontrole_key;
END;
BEGIN
-- Kijk of het kenmerk bijlage al bestaat
SELECT ins_kenmerk_key
@@ -2301,13 +2320,13 @@ AS
WHERE mld_melding_status = 4 -- geaccepteerd dus in behandeing
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = 241;
BEGIN
FOR rec in c
LOOP
BEGIN
-- nu de status op afgemeld zetten.
mld.setmeldingstatus(rec.mld_melding_key, 5, NULL);
mld.setmeldingstatus(rec.mld_melding_key, 5, NULL);
END;
END LOOP;
END;
@@ -2315,19 +2334,19 @@ END;
CREATE OR REPLACE VIEW asdl_v_rap_locatie_mismatch(alg_locatie_code, alg_locatie_omschrijving)
AS
SELECT DISTINCT locatie, locatieoms
FROM (
SELECT SUBSTR(fac_imp_file_line,
INSTR(fac_imp_file_line, ';', 1, 3)+1,
SELECT DISTINCT locatie, locatieoms
FROM (
SELECT SUBSTR(fac_imp_file_line,
INSTR(fac_imp_file_line, ';', 1, 3)+1,
INSTR(fac_imp_file_line, ';', 1, 4)- INSTR(fac_imp_file_line, ';', 1, 3)-1) locatie,
SUBSTR(fac_imp_file_line,
INSTR(fac_imp_file_line, ';', 1, 4)+1,
SUBSTR(fac_imp_file_line,
INSTR(fac_imp_file_line, ';', 1, 4)+1,
INSTR(fac_imp_file_line, ';', 1, 5)- INSTR(fac_imp_file_line, ';', 1, 4)-1) locatieoms
FROM fac_imp_file f, fac_import i
WHERE f.fac_import_key = i.fac_import_key
FROM fac_imp_file f, fac_import i
WHERE f.fac_import_key = i.fac_import_key
AND fac_import_app_key = 81) im
WHERE SUBSTR(im.locatie, 1, 6) NOT IN (SELECT alg_locatie_code
FROM alg_locatie
WHERE SUBSTR(im.locatie, 1, 6) NOT IN (SELECT alg_locatie_code
FROM alg_locatie
WHERE alg_locatie_verwijder IS NULL);
CREATE OR REPLACE VIEW asdl_v_rap_mi_glas
@@ -2494,7 +2513,7 @@ AS
AND p.prs_perslid_key = pfm.prs_perslid_key
AND st.mld_statuses_key = m.mld_melding_status
AND m.mld_melding_key = mafm.fac_tracking_refkey(+)
AND sd.ins_srtdiscipline_key = 141;
AND sd.ins_srtdiscipline_key = 141;
------ payload end ------