BAMG#67179 -- Kostenplaatsen in import aanpassen

svn path=/Customer/trunk/; revision=54129
This commit is contained in:
Arthur Egberink
2021-12-13 10:31:41 +00:00
parent 642f813199
commit 0d464dee1a

View File

@@ -456,53 +456,74 @@ BEGIN
SET prs_perslid_externsyncdate = SYSDATE
WHERE prs_perslid_key = v_perslid_key;
-- Welke kostenplaats staat er geregistreerd bij de persoon
v_kostenplaats_nr := FLX.getflex ('PRS', 1000, v_perslid_key, 'P');
IF COALESCE(v_kostenplaats_nr, '999') <> COALESCE(rec.prs_kenmerk3, '999')
-- Check of de persoon maandaat heeft op alle kostenplaatsen
SELECT COUNT(*)
INTO v_count
FROM prs_perslidkostenplaats
WHERE prs_perslid_key = v_perslid_key
AND prs_perslidkostenplaats_boeken = 1
AND prs_kostenplaats_key IS NULL;
IF v_count = 1
THEN
-- verwijder het oude mandaat en voeg een nieuw mandaat toe.
-- eerst gaan we kijken of de nieuwe kostenplaats al bestaat.
IF rec.prs_kenmerk3 IS NOT NULL
IF v_kostenplaats_nr IS NOT NULL
THEN
-- Dan zetten maken we de kostenplaats leeg bij de persoon. Als iemand daarna
-- de mandatering van alle kostenplaatsen verwijderd, wordt bij de import de
-- default kostenplaats weer gelinkt.
FLX.setflex ('PRS', 1000, v_perslid_key, 'P', NULL);
END IF;
ELSE
IF COALESCE(v_kostenplaats_nr, '999') <> COALESCE(rec.prs_kenmerk3, '999')
THEN
-- verwijder het oude mandaat en voeg een nieuw mandaat toe.
-- eerst gaan we kijken of de nieuwe kostenplaats al bestaat.
IF rec.prs_kenmerk3 IS NOT NULL
THEN
BEGIN
SELECT prs_kostenplaats_key
INTO v_kostenplaats_key_new
FROM prs_kostenplaats
WHERE prs_kostenplaats_nr = rec.prs_kenmerk3
AND prs_kostenplaats_module = 'PRS';
EXCEPTION WHEN NO_DATA_FOUND
THEN
INSERT INTO prs_kostenplaats( prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module)
VALUES (rec.prs_kenmerk3, rec.prs_kenmerk4, 'PRS')
RETURNING prs_kostenplaats_key INTO v_kostenplaats_key_new;
END;
ELSE
v_kostenplaats_key_new := -1;
END IF;
-- nu gaan we de key van de oude kostenplaats opzoeken
BEGIN
SELECT prs_kostenplaats_key
INTO v_kostenplaats_key_new
INTO v_kostenplaats_key_oud
FROM prs_kostenplaats
WHERE prs_kostenplaats_nr = rec.prs_kenmerk3
WHERE prs_kostenplaats_nr = v_kostenplaats_nr
AND prs_kostenplaats_module = 'PRS';
EXCEPTION WHEN NO_DATA_FOUND
THEN
INSERT INTO prs_kostenplaats( prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module)
VALUES (rec.prs_kenmerk3, rec.prs_kenmerk4, 'PRS')
RETURNING prs_kostenplaats_key INTO v_kostenplaats_key_new;
v_kostenplaats_key_oud := -1;
END;
ELSE
v_kostenplaats_key_new := -1;
DELETE prs_perslidkostenplaats
WHERE prs_perslid_key = v_perslid_key
AND prs_kostenplaats_key = v_kostenplaats_key_oud;
IF v_kostenplaats_key_new <> -1
THEN
INSERT INTO prs_perslidkostenplaats (prs_perslid_key, prs_kostenplaats_key, prs_perslidkostenplaats_boeken, prs_perslidkostenplaats_inzage)
VALUES (v_perslid_key, v_kostenplaats_key_new, 1, 0);
END IF;
-- Pas de kostenplaats aan bij de persoon.
FLX.setflex ('PRS', 1000, v_perslid_key, 'P', rec.prs_kenmerk3);
END IF;
-- nu gaan we de key van de oude kostenplaats opzoeken
BEGIN
SELECT prs_kostenplaats_key
INTO v_kostenplaats_key_oud
FROM prs_kostenplaats
WHERE prs_kostenplaats_nr = v_kostenplaats_nr
AND prs_kostenplaats_module = 'PRS';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_kostenplaats_key_oud := -1;
END;
DELETE prs_perslidkostenplaats
WHERE prs_perslid_key = v_perslid_key
AND prs_kostenplaats_key = v_kostenplaats_key_oud;
IF v_kostenplaats_key_new <> -1
THEN
INSERT INTO prs_perslidkostenplaats (prs_perslid_key, prs_kostenplaats_key, prs_perslidkostenplaats_boeken, prs_perslidkostenplaats_inzage)
VALUES (v_perslid_key, v_kostenplaats_key_new, 1, 0);
END IF;
-- Pas de kostenplaats aan bij de persoon.
FLX.setflex ('PRS', 1000, v_perslid_key, 'P', rec.prs_kenmerk3);
END IF;
-- registreren van de leidinggevende
@@ -613,19 +634,17 @@ CREATE OR REPLACE VIEW bamg_v_import_resultaat
AS
SELECT 'Organisatie' importtype,
TRUNC (fac_import_datum_gelezen) datum,
COUNT (*) aantal
imp_log_omschrijving || ' - ' || imp_log_hint omschrijving
FROM fac_import i, imp_log l
WHERE fac_import_app_key = 42 -- organisatie import
AND i.fac_import_key = l.fac_import_key
AND imp_log_status = 'E'
GROUP BY TRUNC (fac_import_datum_gelezen)
UNION ALL
SELECT 'Personen',
TO_DATE (SUBSTR (fac_rapport_regel, 1, 10), 'dd-mm-yyyy'),
COUNT (*)
fac_rapport_regel
FROM fac_rapport
WHERE fac_rapport_node = 'PERSLID_E'
GROUP BY SUBSTR (fac_rapport_regel, 1, 10);
WHERE fac_rapport_node = 'PERSLID_E';
-- Contract reminder
CREATE OR REPLACE VIEW bamg_v_noti_cntreminder_coll