GVBA#64318 -- Verlengen mandaten en vrijstellingen voor 2021
svn path=/Customer/trunk/; revision=48651
This commit is contained in:
169
GVBA/gvba.sql
169
GVBA/gvba.sql
@@ -112,7 +112,7 @@ CREATE OR REPLACE PACKAGE gvba AS
|
||||
|
||||
PROCEDURE set_mandaat_vrijstelling;
|
||||
|
||||
PROCEDURE verleng_mandaat_vrijstelling (p_deel_key NUMBER, p_user_key NUMBER);
|
||||
PROCEDURE verleng_mandaat_vrijstelling (p_deel_key NUMBER, p_user_key NUMBER, p_jaren NUMBER);
|
||||
|
||||
END gvba;
|
||||
/
|
||||
@@ -856,6 +856,22 @@ CREATE OR REPLACE PACKAGE BODY gvba AS
|
||||
FROM mld_melding_object mo
|
||||
WHERE mo.mld_melding_key = m.mld_melding_key);
|
||||
|
||||
-- kenmerk 283 is gevuld als de melding afgehandeld is.
|
||||
CURSOR c_del IS
|
||||
SELECT m.*,
|
||||
kenteken
|
||||
FROM mld_melding m,
|
||||
(SELECT mld_melding_key, mld_kenmerkmelding_waarde kenteken
|
||||
FROM mld_kenmerkmelding
|
||||
WHERE mld_kenmerk_key = 282) k
|
||||
WHERE m.mld_melding_key = k.mld_melding_key(+)
|
||||
AND m.mld_stdmelding_key = 801 -- Intrekken vrijstelling
|
||||
AND m.mld_melding_status = 4 -- Geaccepteeerd
|
||||
AND NOT EXISTS
|
||||
(SELECT mld_kenmerkmelding_key
|
||||
FROM mld_kenmerkmelding km
|
||||
WHERE km.mld_melding_key = m.mld_melding_key
|
||||
AND km.mld_kenmerk_key = 283);
|
||||
|
||||
v_berijder_arr VARCHAR2 (1000);
|
||||
v_kenteken_arr VARCHAR2 (1000);
|
||||
@@ -866,6 +882,11 @@ CREATE OR REPLACE PACKAGE BODY gvba AS
|
||||
v_deel_key NUMBER;
|
||||
v_vrijstelling_nr NUMBER;
|
||||
v_einddatum DATE;
|
||||
v_einddatum_max DATE;
|
||||
|
||||
v_oud_verval_str VARCHAR2(20);
|
||||
v_new_verval_str VARCHAR2(20);
|
||||
v_deel_vervaldatum DATE;
|
||||
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
@@ -903,11 +924,18 @@ CREATE OR REPLACE PACKAGE BODY gvba AS
|
||||
WHERE prs_bedrijf_key = rec.bedrijf_key;
|
||||
|
||||
v_hint := 'Instellen einddatum: ' || rec.einddatum;
|
||||
IF rec.einddatum IS NULL
|
||||
v_einddatum := TO_DATE (rec.einddatum, 'dd-mm-yyyy');
|
||||
|
||||
IF TO_CHAR(SYSDATE, 'MM') IN (12,13)
|
||||
THEN
|
||||
v_einddatum := TO_DATE (TO_CHAR (SYSDATE, 'yy') || '1231', 'yymmdd');
|
||||
v_einddatum_max := TO_DATE (TO_CHAR (SYSDATE, 'yy')+1 || '1231', 'yymmdd');
|
||||
ELSE
|
||||
v_einddatum := TO_DATE (rec.einddatum, 'dd-mm-yyyy');
|
||||
v_einddatum_max := TO_DATE (TO_CHAR (SYSDATE, 'yy') || '1231', 'yymmdd');
|
||||
END IF;
|
||||
|
||||
IF v_einddatum IS NULL OR v_einddatum > v_einddatum_max
|
||||
THEN
|
||||
v_einddatum := v_einddatum_max;
|
||||
END IF;
|
||||
|
||||
WHILE v_berijder_arr IS NOT NULL AND v_loop < 20
|
||||
@@ -933,9 +961,7 @@ CREATE OR REPLACE PACKAGE BODY gvba AS
|
||||
rec.prs_perslid_key_voor,
|
||||
'P',
|
||||
1,
|
||||
'MAN-'
|
||||
|| TO_CHAR (SYSDATE, 'yy')
|
||||
|| ' '
|
||||
'MAN '
|
||||
|| v_bedrijf_naam
|
||||
|| '-'
|
||||
|| v_berijder,
|
||||
@@ -1012,23 +1038,26 @@ CREATE OR REPLACE PACKAGE BODY gvba AS
|
||||
v_loop := 1;
|
||||
|
||||
v_hint := 'Instellen einddatum: ' || rec.einddatum;
|
||||
IF rec.einddatum IS NULL
|
||||
|
||||
v_hint := 'Instellen einddatum: ' || rec.einddatum;
|
||||
v_einddatum := TO_DATE (rec.einddatum, 'dd-mm-yyyy');
|
||||
|
||||
v_einddatum_max := add_months(SYSDATE, 5*12);
|
||||
IF v_einddatum IS NULL OR v_einddatum > v_einddatum_max
|
||||
THEN
|
||||
v_einddatum := TO_DATE (TO_CHAR (SYSDATE, 'yy') || '1231', 'yymmdd');
|
||||
ELSE
|
||||
v_einddatum := TO_DATE (rec.einddatum, 'dd-mm-yyyy');
|
||||
v_einddatum := v_einddatum_max;
|
||||
END IF;
|
||||
|
||||
WHILE v_kenteken_arr IS NOT NULL AND v_loop < 20
|
||||
LOOP
|
||||
BEGIN
|
||||
SELECT FAC.safe_to_number (
|
||||
MAX (SUBSTR (ins_deel_omschrijving, 9)))
|
||||
MAX (SUBSTR (ins_deel_omschrijving, 6)))
|
||||
INTO v_vrijstelling_nr
|
||||
FROM ins_deel
|
||||
WHERE ins_srtdeel_key = 161
|
||||
AND ins_deel_omschrijving LIKE
|
||||
'VRIJ-' || TO_CHAR (SYSDATE, 'yy') || '%';
|
||||
'VRIJ %';
|
||||
|
||||
IF v_vrijstelling_nr IS NULL
|
||||
THEN
|
||||
@@ -1055,9 +1084,7 @@ CREATE OR REPLACE PACKAGE BODY gvba AS
|
||||
rec.prs_perslid_key_voor,
|
||||
'P',
|
||||
1,
|
||||
'VRIJ-'
|
||||
|| TO_CHAR (SYSDATE, 'yy')
|
||||
|| ' '
|
||||
'VRIJ '
|
||||
|| TO_CHAR (v_vrijstelling_nr, 'fm0000'),
|
||||
641,
|
||||
NULL,
|
||||
@@ -1101,6 +1128,11 @@ CREATE OR REPLACE PACKAGE BODY gvba AS
|
||||
INSERT INTO mld_melding_object (mld_melding_key,
|
||||
ins_deel_key)
|
||||
VALUES (rec.mld_melding_key, v_deel_key);
|
||||
|
||||
-- vul het kenmerk 283 met de huidige datum om aan te geven dat deze
|
||||
-- melding is afgehandeld.
|
||||
MLD.upsertmeldingkenmerk (283, rec.mld_melding_key, TO_CHAR(SYSDATE, 'DD-MM-YYYY'));
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
@@ -1120,20 +1152,95 @@ CREATE OR REPLACE PACKAGE BODY gvba AS
|
||||
END LOOP;
|
||||
END LOOP;
|
||||
|
||||
-- intrekken vrijstellingen
|
||||
FOR rec IN c_del
|
||||
LOOP
|
||||
v_kenteken_arr := REPLACE (rec.kenteken, CHR (13), '#');
|
||||
v_kenteken_arr := REPLACE (v_kenteken_arr, CHR (10), '#');
|
||||
v_kenteken_arr := REPLACE (v_kenteken_arr, '##', '#');
|
||||
v_loop := 1;
|
||||
|
||||
WHILE v_kenteken_arr IS NOT NULL AND v_loop < 20
|
||||
LOOP
|
||||
BEGIN
|
||||
get_element (v_kenteken_arr, v_kenteken);
|
||||
DBMS_OUTPUT.put_line (v_kenteken);
|
||||
v_loop := v_loop + 1;
|
||||
|
||||
SELECT MAX(d.ins_deel_key)
|
||||
INTO v_deel_key
|
||||
FROM ins_deel d, ins_kenmerkdeel kd
|
||||
WHERE d.ins_deel_key = kd.ins_deel_key
|
||||
AND kd.ins_kenmerk_key = 23 -- kenteken
|
||||
AND TRIM(UPPER(REPLACE(v_kenteken,'-'))) = TRIM(UPPER(REPLACE(kd.ins_kenmerkdeel_waarde,'-')))
|
||||
AND kd.ins_kenmerkdeel_verwijder IS NULL
|
||||
AND d.ins_deel_verwijder IS NULL
|
||||
AND ins_deel_vervaldatum > SYSDATE;
|
||||
|
||||
SELECT ins_deel_vervaldatum
|
||||
INTO v_deel_vervaldatum
|
||||
FROM ins_deel
|
||||
WHERE ins_deel_key = v_deel_key;
|
||||
|
||||
UPDATE ins_deel
|
||||
SET ins_deel_vervaldatum = SYSDATE
|
||||
WHERE ins_deel_key = v_deel_key;
|
||||
|
||||
v_oud_verval_str := SUBSTR(TO_CHAR(v_deel_vervaldatum, 'Day'),1,2) || TO_CHAR(v_deel_vervaldatum, ' dd-mm-yyyy');
|
||||
v_new_verval_str := SUBSTR(TO_CHAR(SYSDATE, 'Day'),1,2) || TO_CHAR(SYSDATE, ' dd-mm-yyyy');
|
||||
|
||||
fac.trackaction('INSUPD', v_deel_key, rec.prs_perslid_key, NULL, 'Object gewijzigd' || CHR(10)
|
||||
|| 'Vervaldatum: ' || v_oud_verval_str || ' --> ' || v_new_verval_str);
|
||||
|
||||
INSERT INTO mld_melding_object (mld_melding_key,
|
||||
ins_deel_key)
|
||||
VALUES (rec.mld_melding_key, v_deel_key);
|
||||
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
-- LOG geen vrijstelling gevonden met dit kenteken.
|
||||
fac.writelog ('Export vrijstellingen',
|
||||
'E',
|
||||
'Geen vrijstelling gevonden met dit kenteken: ' || v_kenteken,
|
||||
'');
|
||||
END;
|
||||
END LOOP;
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
|
||||
PROCEDURE verleng_mandaat_vrijstelling (p_deel_key NUMBER, p_user_key NUMBER)
|
||||
PROCEDURE verleng_mandaat_vrijstelling (p_deel_key NUMBER, p_user_key NUMBER, p_jaren NUMBER)
|
||||
AS
|
||||
v_oud_verval INS_DEEL.INS_DEEL_VERVALDATUM%TYPE;
|
||||
v_contact INS_DEEL.INS_ALG_RUIMTE_KEY%TYPE;
|
||||
v_jaren NUMBER;
|
||||
v_new_verval DATE;
|
||||
v_new_verval_str VARCHAR2(20);
|
||||
v_oud_verval_str VARCHAR2(20);
|
||||
BEGIN
|
||||
UPDATE ins_deel
|
||||
SET ins_deel_omschrijving = REPLACE (ins_deel_omschrijving,
|
||||
'-' || to_char(SYSDATE, 'YY') || ' ',
|
||||
'-' || to_char(SYSDATE+365, 'YY') || ' '),
|
||||
ins_deel_vervaldatum = TO_DATE('3112' || TO_CHAR(SYSDATE+365, 'YY'), 'DDMMYY')
|
||||
SELECT ins_deel_vervaldatum, ins_alg_ruimte_key
|
||||
INTO v_oud_verval, v_contact
|
||||
FROM ins_deel
|
||||
WHERE ins_deel_key = p_deel_key;
|
||||
|
||||
fac.trackaction ('INSUPD', p_deel_key, p_user_key, SYSDATE, '#Mandaat/Vrijstelling is verlengd');
|
||||
v_new_verval := TO_DATE('3112' || TO_CHAR(SYSDATE, 'YY') + p_jaren, 'DDMMYY');
|
||||
v_new_verval_str := SUBSTR(TO_CHAR(v_new_verval, 'Day'),1,2) || TO_CHAR(v_new_verval, ' dd-mm-yyyy');
|
||||
v_oud_verval_str := SUBSTR(TO_CHAR(v_oud_verval, 'Day'),1,2) || TO_CHAR(v_oud_verval, ' dd-mm-yyyy');
|
||||
|
||||
-- extra check. Alleen de contactpersoon mag verlengen. Verder is het onzinnig om verlopen
|
||||
-- mandaten en vrijstellingen te verlengen.
|
||||
IF v_contact = p_user_key AND v_oud_verval > SYSDATE
|
||||
THEN
|
||||
UPDATE ins_deel
|
||||
SET ins_deel_vervaldatum = v_new_verval
|
||||
WHERE ins_deel_key = p_deel_key;
|
||||
|
||||
fac.trackaction('INSUPD', p_deel_key, p_user_key, NULL, 'Object gewijzigd' || CHR(10)
|
||||
|| 'Vervaldatum: ' || v_oud_verval_str || ' --> ' || v_new_verval_str);
|
||||
|
||||
fac.trackaction ('CUST01', p_deel_key, p_user_key, NULL, '#Mandaat/Vrijstelling is verlengd');
|
||||
END IF;
|
||||
END;
|
||||
--
|
||||
END gvba;
|
||||
@@ -3279,13 +3386,21 @@ SELECT d.ins_deel_key,
|
||||
afw_contact,
|
||||
m.mld_melding_key,
|
||||
s.mld_statuses_omschrijving,
|
||||
DECODE(SUBSTR(ins_deel_omschrijving, INSTR(ins_deel_omschrijving, '-')+1, INSTR(ins_deel_omschrijving, ' ') - INSTR(ins_deel_omschrijving, '-') - 1), TO_CHAR(SYSDATE, 'YY'), 'Verlengen', 'Verlengd') Verlengstatus
|
||||
FROM ins_v_deel_gegevens d, mld_melding_object mo, mld_melding m, mld_statuses s
|
||||
WHERE ins_discipline_key = 641 AND ins_deel_vervaldatum > SYSDATE
|
||||
DECODE (TO_CHAR(ins_deel_vervaldatum, 'YYYYMMDD'), TO_CHAR(SYSDATE, 'YYYY') || '1231', 'Verlengen', 'Onbekend') verlengstatus,
|
||||
TO_CHAR(SYSDATE, 'MM') verlengmaand,
|
||||
dv.fac_tracking_datum verlengd_op
|
||||
FROM ins_v_deel_gegevens d, mld_melding_object mo, mld_melding m, mld_statuses s,
|
||||
( SELECT fac_tracking_refkey, fac_tracking_datum
|
||||
FROM fac_tracking t, fac_srtnotificatie sn
|
||||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||||
AND sn.fac_srtnotificatie_code = 'CUST01' -- man/vrij is verlengd
|
||||
AND TRUNC(t.fac_tracking_datum, 'YY') = TRUNC(SYSDATE, 'YY')) dv
|
||||
WHERE ins_discipline_key = 641
|
||||
AND ins_deel_vervaldatum > SYSDATE
|
||||
AND d.ins_deel_key = mo.ins_deel_key(+)
|
||||
AND mo.mld_melding_key = m.mld_melding_key(+)
|
||||
AND m.mld_melding_status = s.mld_statuses_key(+)
|
||||
AND SUBSTR(ins_deel_omschrijving, INSTR(ins_deel_omschrijving, '-')+1, INSTR(ins_deel_omschrijving, ' ') - INSTR(ins_deel_omschrijving, '-') - 1) = TO_CHAR(SYSDATE, 'YY');
|
||||
AND d.ins_deel_key = dv.fac_tracking_refkey(+);
|
||||
|
||||
------ payload end ------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user