--
-- $Id$
--
-- Script om facturen waarbij het factuurtotaal afwijkt van het factuurregeltotaal te corrigeren


DEFINE thisfile = 'UWVA#55696.SQL'
DEFINE dbuser   = '^UWVA'

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 ------

UPDATE fin_factuur f
   SET fin_factuur_totaal =
          (SELECT SUM (fin_factuurregel_totaal)
             FROM fin_factuurregel fr
            WHERE f.fin_factuur_key = fr.fin_factuur_key)
 WHERE fin_factuur_key IN (SELECT fin_factuur_key
                             FROM (SELECT fin_factuur_key,
                                          fin_factuur_totaal tot1,
                                          (SELECT SUM (
                                                     fin_factuurregel_totaal)
                                             FROM fin_factuurregel fr
                                            WHERE f.fin_factuur_key =
                                                     fr.fin_factuur_key)
                                             tot2
                                     FROM fin_factuur f
                                    WHERE fin_factuur_verwijder IS NULL
                                          AND fin_factuur_datum >
                                                SYSDATE - 300)
                            WHERE tot1 != tot2);

UPDATE fin_factuur f
   SET fin_factuur_totaal_btw =
          (SELECT SUM (fin_factuurregel_btw)
             FROM fin_factuurregel fr
            WHERE f.fin_factuur_key = fr.fin_factuur_key)
 WHERE fin_factuur_key IN (SELECT fin_factuur_key
                             FROM (SELECT fin_factuur_key,
                                          fin_factuur_totaal_btw tot1,
                                          (SELECT SUM (fin_factuurregel_btw)
                                             FROM fin_factuurregel fr
                                            WHERE f.fin_factuur_key =
                                                     fr.fin_factuur_key)
                                             tot2
                                     FROM fin_factuur f
                                    WHERE fin_factuur_verwijder IS NULL
                                          AND fin_factuur_datum >
                                                SYSDATE - 300)
                            WHERE tot1 != tot2);

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

SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 1); END;
/

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