--
-- $Id$
--
-- Vul de historische tabel met monitorings aan met detail informatie voor meldingen
-- die niet tot een korting geleid hebben maar wel een afwijking hadden.

DEFINE thisfile = 'PCHA#52977.sql'
DEFINE dbuser   = 'PCHA'


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


CREATE OR REPLACE PROCEDURE pchx_select_freeze_mon_T (
   p_applname   IN VARCHAR2,
   p_applrun    IN VARCHAR2)
AS


   CURSOR c_svd_opdracht
   IS
      SELECT * FROM pchx_v_rap_svd
       WHERE status = 'Verwerkt'
         AND xml_node = 'opdracht'
         AND datum < TRUNC (SYSDATE, 'MONTH')
         AND mld_opdr_key NOT IN (SELECT mld_opdr_key FROM pchx_svd);



   v_exportdate       DATE;
   v_lastexport       DATE;
   v_kortingen_totaal NUMBER(11,2);
   v_svd_totaal       NUMBER(11,2);
   v_status           NUMBER;
BEGIN
   v_exportdate := SYSDATE;
   -- Als ik deze maand al een freeze heb uitgevoerd dan mag ik dat niet nog een keer doen.
   SELECT MAX(export_datum)
     INTO v_lastexport
     FROM pchx_monitoring;

   DELETE imp_log WHERE COALESCE(imp_log_applicatie, 'QueQeLeQue') = p_applname;

   -- Freeze van SVD's
   -- Als ik deze maand al een freeze heb uitgevoerd dan mag ik dat niet nog een keer doen.
   SELECT MAX(export_datum)
     INTO v_lastexport
     FROM pchx_svd;

   IF 1=1
   THEN
      FOR rec IN c_svd_opdracht
      LOOP
         BEGIN
            INSERT INTO pchx_svd (mld_melding_key,
                                  svd_type,
                                  status,
                                  datum,
                                  omschrijving,
                                  aantal,
                                  prijs,
                                  totaal,
                                  index_totaal,
                                  mld_opdr_key,
                                  lomschr,
                                  kostensoort,
                                  kostenkenmerk,
                                  export_datum)
                VALUES (rec.mld_melding_key,
                        rec.svd_type,
                        rec.status,
                        rec.datum,
                        rec.omschrijving,
                        rec.aantal,
                        rec.prijs,
                        rec.totaal,
                        rec.index_totaal,
                        rec.mld_opdr_key,
                        rec.lomschr,
                        rec.kostensoort,
                        rec.kostenkenmerk,
                        v_exportdate);

            mld.setopdrachtstatus (rec.mld_opdr_key, 7, NULL);

            mld.updatemeldingstatus (rec.mld_melding_key, 0, NULL);
         END;
      END LOOP;

      SELECT SUM(totaal)
        INTO v_svd_totaal
        FROM pchx_svd
       WHERE export_datum = v_exportdate;

      INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel, fac_rapport_volgnr)
             VALUES ('FREEZE', 'SVD totaal: ' || v_svd_totaal, 2);
   ELSE
      INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel, fac_rapport_volgnr)
             VALUES ('FREEZE', 'SVDs zijn al bevroren deze maand op ' || TO_CHAR(v_lastexport, 'dd-mm-yyyy hh24:mi:ss'), 2);
   END IF;
COMMIT;
END pchx_select_freeze_mon_T;
/

BEGIN
   pchx_select_freeze_mon_T ('FREEZE_MON', 'NOW');
END;
/

drop procedure pchx_select_freeze_mon_T;

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