-- Customer specific once-script MDUX#36777.

SET ECHO ON
SPOOL xMDUX#36777.lst
SET DEFINE OFF

-- verwijder alle artikelen met verwijderde leveranciers die ook bestaan met niet verwijderde leveranciers
UPDATE bes_srtdeel
   SET bes_srtdeel_verwijder = SYSDATE
 WHERE bes_srtdeel_key IN
             (SELECT srt.bes_srtdeel_key
                FROM bes_srtdeel srt,
                     prs_bedrijf b,
                     (SELECT bes_srtdeel_key,
                             bes_srtgroep_key,
                             bes_srtdeel_omschrijving,
                             bes_srtdeel_nr,
                             b.prs_bedrijf_naam,
                             b.prs_bedrijf_verwijder
                        FROM bes_srtdeel srt, prs_bedrijf b
                       WHERE bes_srtdeel_verwijder IS NULL
                         AND b.prs_bedrijf_key = srt.prs_bedrijf_key
                         AND b.prs_bedrijf_verwijder IS NULL) b2
               WHERE bes_srtdeel_verwijder IS NULL
                 AND b.prs_bedrijf_key = srt.prs_bedrijf_key
                 AND b.prs_bedrijf_verwijder IS NOT NULL
                 AND b2.bes_srtdeel_nr = srt.bes_srtdeel_nr
                 AND UPPER (b2.prs_bedrijf_naam) = UPPER (b.prs_bedrijf_naam)
                 AND srt.bes_srtgroep_key = b2.bes_srtgroep_key);

COMMIT;

-- Verwijder een van de dubbele artikelen zonder leverancier
UPDATE bes_srtdeel
   SET bes_srtdeel_verwijder = SYSDATE
 WHERE bes_srtdeel_key IN
             (  SELECT MIN (srt.bes_srtdeel_key)
                  FROM bes_srtdeel srt, prs_bedrijf b, prs_v_aanwezigbedrijf b2
                 WHERE bes_srtdeel_verwijder IS NULL
                   AND b.prs_bedrijf_key = srt.prs_bedrijf_key
                   AND b.prs_bedrijf_verwijder IS NOT NULL
                   AND UPPER (b2.prs_bedrijf_naam) = UPPER (b.prs_bedrijf_naam)
              GROUP BY bes_srtdeel_nr,
                       bes_srtdeel_omschrijving,
                       bes_srtgroep_key,
                       b2.prs_bedrijf_key
                HAVING COUNT ( * ) > 1);
                
COMMIT;                

-- update arikelen met een verwijderde leverancier naar een gelijke leveranicer die nog niet is verwijderd
UPDATE bes_srtdeel sd
   SET prs_bedrijf_key =
          (  SELECT b2.prs_bedrijf_key
               FROM bes_srtdeel srt, prs_bedrijf b, prs_v_aanwezigbedrijf b2
              WHERE bes_srtdeel_verwijder IS NULL
                AND b.prs_bedrijf_key = srt.prs_bedrijf_key
                AND b.prs_bedrijf_verwijder IS NOT NULL
                AND UPPER (b2.prs_bedrijf_naam) = UPPER (b.prs_bedrijf_naam)
                AND sd.bes_srtdeel_key = srt.bes_srtdeel_key)
 WHERE EXISTS
          (  SELECT 1
               FROM bes_srtdeel srt, prs_bedrijf b, prs_v_aanwezigbedrijf b2
              WHERE bes_srtdeel_verwijder IS NULL
                AND b.prs_bedrijf_key = srt.prs_bedrijf_key
                AND b.prs_bedrijf_verwijder IS NOT NULL
                AND UPPER (b2.prs_bedrijf_naam) = UPPER (b.prs_bedrijf_naam)
                AND sd.bes_srtdeel_key = srt.bes_srtdeel_key);
                
COMMIT;                                         

BEGIN adm.systrackscriptId('$Id$'); END;
/
SPOOL OFF
