PCHX#88879 Relaties die overgenomen worden uit de PCHD omgeving kunnen nu ook door de koppeling verwijderd worden. Hiervoor is een kenmerk met code BEDRIJF_SYNC in de pchs, pcha, pchw en pghe omgeving toegevoegd. Dit kenmerk wordt gezet als het bedrijf gesynchroniseerd is met de pchd omgeving. Als het bedrijf uit de import verwijderd wordt en het vinkje staat bij het bedrijf dan wordt het bedrijf ook hier voorzien van een verwijdervlag.

svn path=/Customer/trunk/; revision=68926
This commit is contained in:
Arthur Egberink
2025-05-07 07:16:41 +00:00
parent 47401fa0a9
commit 9d95590153

View File

@@ -3858,17 +3858,41 @@ AS
WHERE prs_bedrijf_key = c_bedrijf_key
AND prs_bedrijfadres_type IS NOT NULL;
CURSOR c_del (c_kenmerk_key NUMBER)
IS
SELECT b.prs_bedrijf_key
FROM prs_bedrijf b, prs_kenmerklink kl
WHERE b.prs_bedrijf_verwijder IS NULL
AND b.prs_bedrijf_key = kl.prs_link_key
AND kl.prs_kenmerk_key = c_kenmerk_key
AND kl.prs_kenmerklink_waarde = '1'
AND b.prs_leverancier_nr NOT IN
(SELECT prs_leverancier_nr FROM pchx_imp_bedrijf_gegevens);
v_leverancier_nr prs_bedrijf.prs_leverancier_nr%TYPE;
v_bedrijf_key prs_bedrijf.prs_bedrijf_key%TYPE;
v_bedrijf_key_pchd prs_bedrijf.prs_bedrijf_key%TYPE;
v_kenmerk_sync_key prs_kenmerk.prs_kenmerk_key%TYPE;
v_bedrijfadres_key prs_bedrijfadres.prs_bedrijfadres_key%TYPE;
v_errormsg VARCHAR (200);
v_errorhint VARCHAR (200);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
BEGIN
-- Zoek het kenmerk voor de bedrijf synchronisatie. Als dit kenmerk aangevinkt is dan is dit bedrijf aangemaakt
-- via deze koppeling. Als het bedrijf dan niet meer in het importbestand voorkomt en het vinkje staat aan, dan mag
-- het bedrijf verwijderd worden.
BEGIN
SELECT prs_kenmerk_key
INTO v_kenmerk_sync_key
FROM prs_kenmerk
WHERE prs_kenmerk_code = 'BEDRIJF_SYNC';
EXCEPTION WHEN NO_DATA_FOUND
THEN
v_kenmerk_sync_key := -1;
END;
FOR rec IN c
LOOP
BEGIN
@@ -3933,6 +3957,11 @@ BEGIN
prs_relatietype_key = rec.prs_relatietype_key
WHERE b.prs_bedrijf_key = v_bedrijf_key;
IF v_kenmerk_sync_key <> -1
THEN
FLX.setflex('PRS', v_kenmerk_sync_key, v_bedrijf_key, 'B', '1');
END IF;
FOR rec1 IN c_addr (v_bedrijf_key_pchd)
LOOP
BEGIN
@@ -3982,6 +4011,19 @@ BEGIN
END LOOP;
SELECT count(*)
INTO v_count
FROM pchx_imp_bedrijf_gegevens;
IF v_count > 0
THEN
FOR rec2 IN c_del(v_kenmerk_sync_key)
LOOP
UPDATE prs_bedrijf SET prs_bedrijf_verwijder = SYSDATE WHERE prs_bedrijf_key = rec2.prs_bedrijf_key;
END LOOP;
END IF;
EXCEPTION
WHEN OTHERS
THEN