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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user