--
-- $Id$
--
-- Opschonen technisch adressen tbv opdrachten. Alles op 'Geen/Overige opdrachten' & dubbelingen verwijderd.

DEFINE thisfile = 'PCHW#53258'
DEFINE dbuser   = '^PCHW'
DEFINE custid   = '^PCHW'

SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF

------ payload begin ------

-- Dit zet de instelling op 'Geen/Overige opdrachten' wanneer 1 technische adressen is obv Opdracht
UPDATE prs_bedrijfadres
   SET mld_typeopdr_key = NULL
 WHERE prs_bedrijf_key IN
             (SELECT a.prs_bedrijf_key
                FROM (  SELECT ta.prs_bedrijf_key,
                               COUNT (ta.prs_bedrijf_key) AS aantal
                          FROM prs_bedrijfadres ta
                         WHERE ta.prs_bedrijfadres_type = 'O'
                      GROUP BY ta.prs_bedrijf_key
                      ORDER BY ta.prs_bedrijf_key) telling,
                     prs_bedrijfadres a
               WHERE     a.prs_bedrijf_key = telling.prs_bedrijf_key
                     AND telling.aantal = 1 
                     AND a.prs_bedrijfadres_type = 'O'
                     AND mld_typeopdr_key IS NOT NULL);

-- Dit verwijder de technische adressen die ingesteld staan op anders dan 'Geen/Overige opdrachten' wanneer er meer dan 1 technische adressen is obv Opdracht
DELETE FROM prs_bedrijfadres
      WHERE prs_bedrijf_key IN
                  (SELECT a.prs_bedrijf_key
                     FROM (  SELECT ta.prs_bedrijf_key,
                                    COUNT (ta.prs_bedrijf_key) AS aantal
                               FROM prs_bedrijfadres ta
                              WHERE ta.prs_bedrijfadres_type = 'O'
                           GROUP BY ta.prs_bedrijf_key
                           ORDER BY ta.prs_bedrijf_key) telling,
                          (  SELECT ta.prs_bedrijf_key,
                                    COUNT (ta.prs_bedrijfadres_xsl) AS aantal,
                                    ta.prs_bedrijfadres_xsl
                               FROM prs_bedrijfadres ta
                              WHERE ta.prs_bedrijfadres_type = 'O'
                           GROUP BY ta.prs_bedrijf_key,
                                    ta.prs_bedrijfadres_xsl
                           ORDER BY prs_bedrijf_key) xsl,
                          (  SELECT ta.prs_bedrijf_key,
                                    COUNT (ta.prs_bedrijfadres_attachfile)
                                       AS aantal,
                                    ta.prs_bedrijfadres_attachfile
                               FROM prs_bedrijfadres ta
                              WHERE ta.prs_bedrijfadres_type = 'O'
                           GROUP BY ta.prs_bedrijf_key,
                                    ta.prs_bedrijfadres_attachfile
                           ORDER BY prs_bedrijf_key) attachfile,
                          (  SELECT ta.prs_bedrijf_key,
                                    COUNT (ta.prs_bedrijfadres_ordermode)
                                       AS aantal,
                                    ta.prs_bedrijfadres_ordermode
                               FROM prs_bedrijfadres ta
                              WHERE ta.prs_bedrijfadres_type = 'O'
                           GROUP BY ta.prs_bedrijf_key,
                                    ta.prs_bedrijfadres_ordermode
                           ORDER BY prs_bedrijf_key) ordermode,
                          (  SELECT ta.prs_bedrijf_key,
                                    COUNT (ta.prs_bedrijfadres_url) AS aantal,
                                    ta.prs_bedrijfadres_url
                               FROM prs_bedrijfadres ta
                              WHERE ta.prs_bedrijfadres_type = 'O'
                           GROUP BY ta.prs_bedrijf_key,
                                    ta.prs_bedrijfadres_url
                           ORDER BY prs_bedrijf_key) url,
                          prs_bedrijfadres a
                    WHERE     a.prs_bedrijf_key = telling.prs_bedrijf_key
                          AND telling.aantal > 1
                          AND a.prs_bedrijfadres_type = 'O'
                          AND a.mld_typeopdr_key IS NOT NULL
                          AND url.prs_bedrijf_key = a.prs_bedrijf_key
                          AND url.aantal > 1
                          AND xsl.prs_bedrijf_key = a.prs_bedrijf_key
                          AND xsl.aantal > 1
                          AND ordermode.prs_bedrijf_key = a.prs_bedrijf_key
                          AND ordermode.aantal > 1
                          AND attachfile.prs_bedrijf_key = a.prs_bedrijf_key
                          AND attachfile.aantal > 1)
            AND prs_bedrijfadres_type = 'O'
            AND mld_typeopdr_key IS NOT NULL;

UPDATE prs_bedrijfadres
   SET prs_bedrijfadres_attachfile = 'Alg. inkoopvoorwaarden PCH IFMS.pdf'
 WHERE prs_bedrijfadres_type = 'O'
       AND SUBSTR (prs_bedrijfadres_url, 1, 7) = 'mailto:'
       AND (prs_bedrijfadres_attachfile <>
               'Alg. inkoopvoorwaarden PCH IFMS.pdf'
            OR prs_bedrijfadres_attachfile IS NULL);


------ payload end   ------

SET DEFINE OFF
BEGIN adm.systrackscriptid('$Id$'); END;
/

COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile