--
-- $Id$
--
-- Script containing customer specific db-configuration for MAYF.
DEFINE thisfile = 'MAYF.SQL'
DEFINE dbuser   = '^MAYF'
DEFINE custid   = 'MAYF'

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 mayf_export_nachtwerk (p_applname   IN VARCHAR2,
                                                   p_applrun    IN VARCHAR2,
                                                   p_filedir    IN VARCHAR2,
                                                   p_filename   IN VARCHAR2)
AS
   CURSOR crem
   IS
    SELECT   sn.fac_srtnotificatie_code scode,
                'REMINDER: Voor opdracht '
             || mld_melding_key
             || '/'
             || mld_opdr_bedrijfopdr_volgnr
             || ' is de einddatum '
             || DECODE (
                   TRUNC (o.mld_opdr_einddatum),
                   TRUNC (SYSDATE),
                   'verstreken',
                      'met '
                   || fac.count_work_days (o.mld_opdr_einddatum, SYSDATE)
                   || ' dag(en) verstreken'
                )
                text,
             o.mld_opdr_key opdrkey,
             DECODE (INSTR (ba.prs_bedrijfadres_url, 'mailto:'),
                     0, 'servicedesk@mayfieldproperty.nl',
                     TRIM (REPLACE (ba.prs_bedrijfadres_url, 'mailto:', '')))
                ontv
      FROM   mld_opdr o, prs_bedrijfadres ba, fac_srtnotificatie sn
     WHERE       o.mld_statusopdr_key IN (5, 8)  -- Lopend=Uitgegeven/Geaccepteerd
             AND o.mld_opdr_einddatum < SYSDATE
             AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6'           -- Ma t/m Vr
             AND o.mld_uitvoerende_keys = ba.prs_bedrijf_key
             AND ba.prs_bedrijfadres_type = 'O'
             AND ba.mld_typeopdr_key IS NULL
             AND o.mld_typeopdr_key NOT IN
                      (SELECT   mld_typeopdr_key
                         FROM   prs_bedrijfadres
                        WHERE   prs_bedrijf_key = o.mld_uitvoerende_keys
                                AND mld_typeopdr_key IS NOT NULL)
             AND UPPER (ba.prs_bedrijfadres_url) NOT LIKE 'FTP%'
             AND NOT EXISTS
                   (SELECT   1
                      FROM   prs_bedrijfadres
                     WHERE       mld_typeopdr_key = o.mld_typeopdr_key
                             AND prs_bedrijf_key = o.mld_uitvoerende_keys
                             AND prs_bedrijfadres_key != ba.prs_bedrijfadres_key)
             AND sn.fac_srtnotificatie_code = 'CUST01'
    UNION ALL
    SELECT   sn.fac_srtnotificatie_code scode,
                'REMINDER: Voor opdracht '
             || mld_melding_key
             || '/'
             || mld_opdr_bedrijfopdr_volgnr
             || ' is de einddatum '
             || DECODE (
                   TRUNC (o.mld_opdr_einddatum),
                   TRUNC (SYSDATE),
                   'verstreken',
                      'met '
                   || fac.count_work_days (o.mld_opdr_einddatum, SYSDATE)
                   || ' dag(en) verstreken'
                )
                text,
             o.mld_opdr_key opdrkey,
             DECODE (INSTR (ba.prs_bedrijfadres_url, 'mailto:'),
                     0, 'servicedesk@mayfieldproperty.nl',
                     TRIM (REPLACE (ba.prs_bedrijfadres_url, 'mailto:', '')))
                ontv
      FROM   mld_opdr o, prs_bedrijfadres ba, fac_srtnotificatie sn
     WHERE       o.mld_statusopdr_key IN (5, 8)  -- Lopend=Uitgegeven/Geaccepteerd
             AND o.mld_opdr_einddatum < SYSDATE
             AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6'           -- Ma t/m Vr
             AND o.mld_uitvoerende_keys = ba.prs_bedrijf_key
             AND ba.prs_bedrijfadres_type = 'O'
             AND ba.mld_typeopdr_key = o.mld_typeopdr_key
             AND UPPER (ba.prs_bedrijfadres_url) NOT LIKE 'FTP%'
             AND NOT EXISTS
                   (SELECT   1
                      FROM   prs_bedrijfadres
                     WHERE       mld_typeopdr_key = o.mld_typeopdr_key
                             AND prs_bedrijf_key = o.mld_uitvoerende_keys
                             AND prs_bedrijfadres_key != ba.prs_bedrijfadres_key)
             AND sn.fac_srtnotificatie_code = 'CUST01';

   v_errorhint      VARCHAR2 (1000);
   v_errormsg       VARCHAR2 (1000);
   oracle_err_num   NUMBER;
   oracle_err_mes   VARCHAR2 (200);
   v_count          NUMBER := 0;
BEGIN
   FOR r IN crem
   LOOP
      BEGIN
         fac.trackaction ('#'||r.scode,
                          r.opdrkey,
                          NULL,
                          NULL,
                          'Reminder verzonden');

         fac.putnotificationsrtprio (NULL,
                                     NULL,
                                     r.scode,
                                     r.opdrkey,
                                     r.text,
                                     NULL,
                                     r.ontv,
                                     NULL,
                                     NULL,
                                     2,
                                     NULL);
         v_count := v_count + 1;

         COMMIT;
      EXCEPTION
         WHEN OTHERS
         THEN
            oracle_err_num := SQLCODE;
            oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
            v_errormsg :=
                  ' ORACLE (error '
               || oracle_err_num
               || '/'
               || oracle_err_mes
               || ')';
            fac.writelog (p_applname,
                          'W',
                          v_errormsg,
                          v_errorhint);
            COMMIT;
      END;
   END LOOP;

   fac.writelog (p_applname,
                 'S',
                 'Aantal notificaties verstuurd:' || TO_CHAR (v_count),
                 '');
EXCEPTION
   WHEN OTHERS
   THEN
      oracle_err_num := SQLCODE;
      oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
      v_errormsg :=
         'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
      fac.writelog (p_applname,
                    'E',
                    'Proces NACHTWERK afgebroken!',
                    v_errormsg);
      COMMIT;
END;
/

/* Formatted on 30-5-2011 17:30:40 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW mayf_v_stdmld_lijst
(
   stdmld_key,
   stdmld_oms
)
AS
   SELECT   sm.mld_stdmelding_key stdmld_key,
               sd.ins_srtdiscipline_prefix
            || '-'
            || td.ins_discipline_omschrijving
            || '-'
            || sm.mld_stdmelding_omschrijving
               stdmld_oms
     FROM   mld_stdmelding sm, ins_tab_discipline td, ins_srtdiscipline sd
    WHERE       sm.mld_stdmelding_verwijder IS NULL
            AND sm.mld_ins_discipline_key = td.ins_discipline_key
            AND td.ins_discipline_verwijder IS NULL
            AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
            AND sd.ins_srtdiscipline_verwijder IS NULL;

/* Formatted on 5-9-2011 14:22:00 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW mayf_v_rap_mld_per_loc
(
   fclt_f_maand,
   fclt_f_portefeuille,
   fclt_f_locatie,
   aantal,
   kosten
)
AS
     SELECT   TO_CHAR (mld_melding_datum, 'yyyy-mm') maand,
              alg_regio_omschrijving portefeuille,
              alg_locatie_omschrijving locatie,
              COUNT (mld_melding_key) aantal,
              SUM (kosten) kosten
       FROM   (SELECT   m.mld_melding_key,
                        m.mld_melding_datum,
                        r.alg_regio_omschrijving,
                        l.alg_locatie_omschrijving,
                        COALESCE (
                           (  SELECT   SUM (o.mld_opdr_kosten)
                                FROM   mld_opdr o, mld_typeopdr ot
                               WHERE   o.mld_melding_key = m.mld_melding_key
                                       AND o.mld_typeopdr_key =
                                             ot.mld_typeopdr_key
                                       AND ot.mld_typeopdr_kosten = 1
                            GROUP BY   m.mld_melding_key),
                           0
                        )
                           kosten
                 FROM   mld_melding m,
                        alg_locatie l,
                        alg_district d,
                        alg_regio r,
                        mld_stdmelding sm,
                        mld_discipline md,
                        ins_srtdiscipline sd
                WHERE       m.mld_alg_locatie_key = l.alg_locatie_key(+)
                        AND l.alg_district_key = d.alg_district_key(+)
                        AND d.alg_regio_key = r.alg_regio_key(+)
                        AND m.mld_stdmelding_key = sm.mld_stdmelding_key
                        AND sm.mld_ins_discipline_key = md.ins_discipline_key
                        AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
                        AND m.fac_activiteit_key IS NULL)
   GROUP BY   TO_CHAR (mld_melding_datum, 'yyyy-mm'),
              alg_locatie_omschrijving,
              alg_regio_omschrijving;

CREATE OR REPLACE VIEW mayf_v_rap_mld_tracking
(
   fclt_f_meldingnr,
   fclt_d_datum,
   tijdstip,
   fclt_f_code,
   actie,
   fclt_f_door
)
AS
   SELECT   TO_CHAR (t.fac_tracking_refkey) meldingnr,
            TO_CHAR (t.fac_tracking_datum, 'dd-mm-yyyy') datum,
            TO_CHAR (t.fac_tracking_datum, 'hh24:mi:ss') tijdstip,
            sn.fac_srtnotificatie_code code,
            --COALESCE (t.fac_tracking_oms, sn.fac_srtnotificatie_oms) actie,
            COALESCE (t.fac_tracking_oms, lcl.x('fac_srtnotificatie_oms', sn.fac_srtnotificatie_key, sn.fac_srtnotificatie_oms)) actie,
            pf.prs_perslid_naam_full door
     FROM   fac_tracking t,
            fac_srtnotificatie sn,
            prs_v_perslid_fullnames_all pf
    WHERE       t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
            AND sn.fac_srtnotificatie_code LIKE 'MLD%'
            AND t.prs_perslid_key = pf.prs_perslid_key;

CREATE OR REPLACE VIEW mayf_v_rap_ord_tracking
(
   fclt_f_opdrachtnr,
   fclt_d_datum,
   tijdstip,
   fclt_f_code,
   actie,
   fclt_f_door
)
AS
   SELECT      TO_CHAR (o.mld_melding_key)
            || '/'
            || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
               opdrachtnr,
            TO_CHAR (t.fac_tracking_datum, 'dd-mm-yyyy') datum,
            TO_CHAR (t.fac_tracking_datum, 'hh24:mi:ss') tijdstip,
            sn.fac_srtnotificatie_code code,
            --COALESCE (t.fac_tracking_oms, sn.fac_srtnotificatie_oms) actie,
            COALESCE (t.fac_tracking_oms, lcl.x('fac_srtnotificatie_oms', sn.fac_srtnotificatie_key, sn.fac_srtnotificatie_oms)) actie,
            pf.prs_perslid_naam_full door
     FROM   fac_tracking t,
            fac_srtnotificatie sn,
            prs_v_perslid_fullnames_all pf,
            mld_opdr o
    WHERE       t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
            AND sn.fac_srtnotificatie_code LIKE 'ORD%'
            AND t.prs_perslid_key = pf.prs_perslid_key
            AND t.fac_tracking_refkey = o.mld_opdr_key;

/* Formatted on 9-9-2013 15:32:40 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW mayf_v_rap_mld_geg
(
   id,
   prio,
   fclt_f_vakgroep,
   fclt_f_melding,
   fclt_d_aanmaak,
   t0,
   plaats,
   loc_plaats,
   fclt_f_loc_adres,
   omschrijving,
   melder,
   fclt_f_status,
   behandelaar,
   gepland,
   t1,
   gereed,
   plan,                                                     -- afspraak_dagen
   echt,                                                    -- werkelijke_duur
   fclt_f_tijdigheid,
   maand,
   jaar
)
AS
   SELECT   TO_CHAR (meld.mld_key),
            TO_CHAR (meld.prio),
            meld.vakgroep_oms,
            meld.stdmld_oms,
            TO_CHAR (mldnew.fac_tracking_datum, 'dd-mm-yyyy') aanmaak_datum,
            TO_CHAR (mldnew.fac_tracking_datum, 'hh24:mi') aanmaak_tijd,
            meld.plaats,
            meld.locatie_plaats,
            meld.locatie_adres,
            meld.mld_oms,
            meld.melder,
            meld.status_oms,
            meld.behandelaar,
            TO_CHAR (meld.einddatum, 'dd-mm-yyyy') gepland_datum,
            TO_CHAR (meld.einddatum, 'hh24:mi') gepland_tijd,
            COALESCE (mldrej.fac_tracking_datum, mldafm.fac_tracking_datum)
               gereed_datum,
            DECODE (meld.einddatum,
                    NULL, NULL,
                    TRUNC (meld.einddatum - mldnew.fac_tracking_datum) + 1)
               afspraak_dagen,
            DECODE (
               COALESCE (mldrej.fac_tracking_datum,
                         mldafm.fac_tracking_datum),
               NULL,
               NULL,
               TRUNC(COALESCE (mldrej.fac_tracking_datum,
                               mldafm.fac_tracking_datum)
                     - mldnew.fac_tracking_datum
                     + 1)
            )
               werkelijke_duur,
            DECODE (
               COALESCE (mldrej.fac_tracking_datum,
                         mldafm.fac_tracking_datum),
               NULL,
               CASE
                  WHEN TRUNC (SYSDATE - mldnew.fac_tracking_datum) <=
                          TRUNC (
                             meld.einddatum - mldnew.fac_tracking_datum + 1
                          )
                  THEN
                     'Open/op tijd'
                  ELSE
                     'Open/te laat'
               END,
               CASE
                  WHEN TRUNC(COALESCE (mldrej.fac_tracking_datum,
                                       mldafm.fac_tracking_datum)
                             - mldnew.fac_tracking_datum) <=
                          TRUNC (
                             meld.einddatum - mldnew.fac_tracking_datum + 1
                          )
                  THEN
                     'Op tijd'
                  ELSE
                     'Te laat'
               END
            )
               tijdigheid,
            TO_CHAR (TO_NUMBER (TO_CHAR (mldnew.fac_tracking_datum, 'mm')))
               maand,
            TO_CHAR (mldnew.fac_tracking_datum, 'yyyy') jaar
     FROM            (SELECT   m.mld_melding_key mld_key,
                               m.mld_melding_spoed prio,
                               td.ins_discipline_omschrijving vakgroep_oms,
                               sm.mld_stdmelding_omschrijving stdmld_oms,
                               l.alg_locatie_code
                               || NVL2 (v.alg_gebouw_code,
                                        '-' || v.alg_gebouw_code,
                                        '')
                               || NVL2 (v.alg_verdieping_code,
                                        '-' || v.alg_verdieping_code,
                                        '')
                               || NVL2 (
                                     v.alg_ruimte_nr,
                                        '-'
                                     || v.alg_ruimte_nr
                                     || ' '
                                     || v.alg_ruimte_omschrijving,
                                     ''
                                  )
                               || NVL2 (v.alg_terreinsector_code,
                                        '-' || v.alg_terreinsector_code,
                                        '')
                                  plaats,
                               l.alg_locatie_plaats locatie_plaats,
                               l.alg_locatie_adres locatie_adres,
                               m.mld_melding_omschrijving mld_oms,
                               pm.prs_perslid_naam_full melder,
                               s.mld_statuses_omschrijving status_oms,
                               pb.prs_perslid_naam_full behandelaar,
                               --m.mld_melding_datum begindatum,
                               m.mld_melding_einddatum einddatum
                        FROM   mld_melding m,
                               mld_stdmelding sm,
                               mld_stdmeldinggroep smg,
                               ins_tab_discipline td,
                               alg_v_allonrgoed_gegevens v,
                               alg_locatie l,
                               prs_v_perslid_fullnames_all pm,
                               mld_statuses s,
                               prs_v_perslid_fullnames_all pb
                       WHERE   m.mld_stdmelding_key = sm.mld_stdmelding_key
                               AND sm.mld_stdmeldinggroep_key =
                                     smg.mld_stdmeldinggroep_key(+)
                               AND sm.mld_ins_discipline_key =
                                     td.ins_discipline_key
                               AND m.mld_alg_onroerendgoed_keys =
                                     v.alg_onroerendgoed_keys(+)
                               AND m.mld_alg_locatie_key =
                                     l.alg_locatie_key(+)
                               AND m.prs_perslid_key = pm.prs_perslid_key
                               AND m.mld_melding_status =
                                     s.mld_statuses_key(+)
                               AND m.mld_melding_behandelaar_key =
                                     pb.prs_perslid_key) meld
                  LEFT JOIN                                       -- MLDNEW=33
                     fac_tracking mldnew
                  ON meld.mld_key = mldnew.fac_tracking_refkey
                     AND mldnew.fac_srtnotificatie_key = 33
               LEFT JOIN                                          -- MLDREJ=34
                  fac_tracking mldrej
               ON meld.mld_key = mldrej.fac_tracking_refkey
                  AND mldrej.fac_srtnotificatie_key = 34
            LEFT JOIN                                             -- MLDAFM=29
               fac_tracking mldafm
            ON meld.mld_key = mldafm.fac_tracking_refkey
               AND mldafm.fac_srtnotificatie_key = 29;

/* Formatted on 16-9-2013 17:24:12 (QP5 v5.115.810.9015) */
CREATE OR REPLACE VIEW mayf_v_rap_ord_geg
(
   id,
   prio,
   fclt_f_opdrachttype,
   plaats,
   fclt_f_regio,
   fclt_f_district,
   loc_plaats,
   fclt_f_loc_adres,
   melding,
   omschrijving,
   fclt_d_aanmaak,
   --aanmaak_tijd,
   fclt_f_status,
   gepland,
   --gepland_tijd,
   fclt_f_uitvoerende,
   contactpersoon,
   aanvrager,
   fclt_f_bedrijf,
   fclt_f_organisatie,
   afhandeling,
   kosten,
   fiatteur,
   mandaat,
   offertedatum,
   offertenummer,
   gereed,
   plan,                                                     -- afspraak_dagen
   echt,                                                    -- werkelijke_duur
   fclt_f_tijdigheid,
   maand,
   jaar,
   offertecheck,                                         -- datum_offertecheck
   fclt_f_offerte_ok
)
AS
   SELECT   'O' || TO_CHAR (opdr.mld_key) || '/' || TO_CHAR (opdr.volgnr),
            TO_CHAR (opdr.prio),
            opdr.typeopdr_oms,
            opdr.plaats,
            opdr.regio_oms,
            opdr.district_oms,
            opdr.locatie_plaats,
            opdr.locatie_adres,
            opdr.stdmld_oms,
            opdr.opdr_oms,
            TO_CHAR (ordnew.fac_tracking_datum, 'dd-mm-yyyy') gepland_datum,
            --TO_CHAR (ordnew.fac_tracking_datum, 'hh24:mi') aanmaak_tijd,
            opdr.status_oms,
            TO_CHAR (opdr.einddatum, 'dd-mm-yyyy') gepland_datum,
            --TO_CHAR (meld.einddatum, 'hh24:mi') gepland_tijd,
            opdr.uitv,
            opdr.cp,
            opdr.aanvrager,
            opdr.bedrijf,
            opdr.organisatie,
            opdr.opdr_opm,
            opdr.kosten,
            (SELECT   prs_perslid_naam_full
               FROM   prs_v_perslid_fullnames_all
              WHERE   prs_perslid_key = ordaut.prs_perslid_key)
               fiatteur,
            k1.mandaat,
            k2.offertedatum,
            k3.offertenummer,
            COALESCE (TO_CHAR (ordcan.fac_tracking_datum, 'dd-mm-yyyy'),
                      TO_CHAR (ordafm.fac_tracking_datum, 'dd-mm-yyyy'))
               gereed_datum,
            DECODE (opdr.einddatum,
                    NULL, NULL,
                    TRUNC (opdr.einddatum - ordnew.fac_tracking_datum) + 1)
               afspraak_dagen,
            DECODE (
               COALESCE (ordcan.fac_tracking_datum,
                         ordafm.fac_tracking_datum),
               NULL,
               NULL,
               TRUNC(COALESCE (ordcan.fac_tracking_datum,
                               ordafm.fac_tracking_datum)
                     - ordnew.fac_tracking_datum
                     + 1)
            )
               werkelijke_duur,
            DECODE (
               COALESCE (ordcan.fac_tracking_datum,
                         ordafm.fac_tracking_datum),
               NULL,
               CASE
                  WHEN TRUNC (SYSDATE - ordnew.fac_tracking_datum) <=
                          TRUNC (
                             opdr.einddatum - ordnew.fac_tracking_datum + 1
                          )
                  THEN
                     'Open/op tijd'
                  ELSE
                     'Open/te laat'
               END,
               CASE
                  WHEN TRUNC(COALESCE (ordcan.fac_tracking_datum,
                                       ordafm.fac_tracking_datum)
                             - ordnew.fac_tracking_datum) <=
                          TRUNC (
                             opdr.einddatum - ordnew.fac_tracking_datum + 1
                          )
                  THEN
                     'Op tijd'
                  ELSE
                     'Te laat'
               END
            )
               tijdigheid,
            TO_CHAR (TO_NUMBER (TO_CHAR (ordnew.fac_tracking_datum, 'mm')))
               maand,
            TO_CHAR (ordnew.fac_tracking_datum, 'yyyy') jaar,
            DECODE (ordoff.fac_tracking_datum,
                    NULL, DECODE (opdr.typeopdr_key, 122, 'O', 'X'),
                    TO_CHAR (ordoff.fac_tracking_datum, 'dd-mm-yyyy'))
               datum_offertecheck,
            DECODE (ordoff.fac_srtnotificatie_key,
                    NULL,
                    DECODE (opdr.typeopdr_key, 122, 'O', 'X'),
                    201,
                    'Ja',
                    202,
                    'Nee')
               offerte_ok
     FROM                              (SELECT   o.mld_opdr_key opdr_key,
                                                 o.mld_melding_key mld_key,
                                                 o.mld_opdr_bedrijfopdr_volgnr
                                                    volgnr,
                                                 m.mld_melding_spoed prio,
                                                 ot.mld_typeopdr_key
                                                    typeopdr_key,
                                                 ot.mld_typeopdr_omschrijving
                                                    typeopdr_oms,
                                                 sm.mld_stdmelding_omschrijving
                                                    stdmld_oms,
                                                 l.alg_locatie_code
                                                 || NVL2 (
                                                       v.alg_gebouw_code,
                                                       '-'
                                                       || v.alg_gebouw_code,
                                                       ''
                                                    )
                                                 || NVL2 (
                                                       v.alg_verdieping_code,
                                                       '-'
                                                       || v.alg_verdieping_code,
                                                       ''
                                                    )
                                                 || NVL2 (
                                                       v.alg_ruimte_nr,
                                                          '-'
                                                       || v.alg_ruimte_nr
                                                       || ' '
                                                       || v.alg_ruimte_omschrijving,
                                                       ''
                                                    )
                                                 || NVL2 (
                                                       v.alg_terreinsector_code,
                                                       '-'
                                                       || v.alg_terreinsector_code,
                                                       ''
                                                    )
                                                    plaats,
                                                 l.alg_locatie_plaats
                                                    locatie_plaats,
                                                 l.alg_locatie_adres
                                                    locatie_adres,
                                                 d.alg_district_omschrijving
                                                    district_oms,
                                                 r.alg_regio_omschrijving
                                                    regio_oms,
                                                 o.mld_opdr_omschrijving
                                                    opdr_oms,
                                                 s.mld_statusopdr_omschrijving
                                                    status_oms,
                                                 eb.prs_bedrijf_naam uitv,
                                                 o.mld_opdr_contactpersoon cp,
                                                 pm.prs_perslid_naam_full
                                                    aanvrager,
                                                 ib.prs_bedrijf_naam bedrijf,
                                                 a.prs_afdeling_omschrijving
                                                    organisatie,
                                                 o.mld_opdr_opmerking
                                                    opdr_opm,
                                                 o.mld_opdr_kosten kosten,
                                                 --o.mld_opdr_datumbegin
                                                 --   begindatum,
                                                 o.mld_opdr_einddatum
                                                    einddatum
                                          FROM   mld_opdr o,
                                                 mld_melding m,
                                                 mld_stdmelding sm,
                                                 mld_typeopdr ot,
                                                 alg_v_allonrgoed_gegevens v,
                                                 alg_locatie l,
                                                 alg_district d,
                                                 alg_regio r,
                                                 mld_statusopdr s,
                                                 prs_bedrijf eb,
                                                 prs_perslid p,
                                                 prs_v_perslid_fullnames_all pm,
                                                 prs_v_afdeling a,
                                                 prs_bedrijf ib
                                         WHERE   o.mld_melding_key =
                                                    m.mld_melding_key
                                                 AND m.mld_stdmelding_key =
                                                       sm.mld_stdmelding_key
                                                 AND o.mld_typeopdr_key =
                                                       ot.mld_typeopdr_key
                                                 AND m.mld_alg_onroerendgoed_keys =
                                                       v.alg_onroerendgoed_keys(+)
                                                 AND m.mld_alg_locatie_key =
                                                       l.alg_locatie_key(+)
                                                 AND l.alg_district_key =
                                                       d.alg_district_key(+)
                                                 AND d.alg_regio_key =
                                                       r.alg_regio_key(+)
                                                 AND o.mld_statusopdr_key =
                                                       s.mld_statusopdr_key(+)
                                                 AND o.mld_uitvoerende_keys =
                                                       eb.prs_bedrijf_key
                                                 AND m.prs_perslid_key =
                                                       p.prs_perslid_key
                                                 AND p.prs_perslid_key =
                                                       pm.prs_perslid_key
                                                 AND p.prs_afdeling_key =
                                                       a.prs_afdeling_key
                                                 AND a.prs_bedrijf_key =
                                                       ib.prs_bedrijf_key)
                                       opdr
                                    LEFT JOIN                    -- Mandaat=41
                                       (SELECT   ko.mld_opdr_key,
                                                 ko.mld_kenmerkopdr_waarde
                                                    mandaat
                                          FROM   mld_v_aanwezigkenmerkopdr ko,
                                                 mld_kenmerk k
                                         WHERE   ko.mld_kenmerk_key =
                                                    k.mld_kenmerk_key
                                                 AND k.mld_srtkenmerk_key =
                                                       41) k1
                                    ON opdr.opdr_key = k1.mld_opdr_key
                                 LEFT JOIN                  -- Offertedatum=81
                                    (SELECT   ko.mld_opdr_key,
                                              ko.mld_kenmerkopdr_waarde
                                                 offertedatum
                                       FROM   mld_v_aanwezigkenmerkopdr ko,
                                              mld_kenmerk k
                                      WHERE   ko.mld_kenmerk_key =
                                                 k.mld_kenmerk_key
                                              AND k.mld_srtkenmerk_key = 81)
                                    k2
                                 ON opdr.opdr_key = k2.mld_opdr_key
                              LEFT JOIN                    -- Offertenummer=82
                                 (SELECT   ko.mld_opdr_key,
                                           ko.mld_kenmerkopdr_waarde
                                              offertenummer
                                    FROM   mld_v_aanwezigkenmerkopdr ko,
                                           mld_kenmerk k
                                   WHERE   ko.mld_kenmerk_key =
                                              k.mld_kenmerk_key
                                           AND k.mld_srtkenmerk_key = 82) k3
                              ON opdr.opdr_key = k3.mld_opdr_key
                           LEFT JOIN                              -- ORDNEW=45
                              fac_tracking ordnew
                           ON opdr.opdr_key = ordnew.fac_tracking_refkey
                              AND ordnew.fac_srtnotificatie_key = 45
                        LEFT JOIN                                 -- ORDAFM=44
                           fac_tracking ordafm
                        ON opdr.opdr_key = ordafm.fac_tracking_refkey
                           AND ordafm.fac_srtnotificatie_key = 44
                     LEFT JOIN                                -- FOK/FNO=48/49
                        (SELECT   t.fac_tracking_refkey,
                                  t.fac_tracking_datum,
                                  t.prs_perslid_key
                           FROM   fac_tracking t
                          WHERE   t.fac_srtnotificatie_key IN (48, 49)
                                  AND t.fac_tracking_key =
                                        (SELECT   MAX (fac_tracking_key)
                                           FROM   fac_tracking
                                          WHERE   fac_srtnotificatie_key IN
                                                        (48, 49)
                                                  AND fac_tracking_refkey =
                                                        t.fac_tracking_refkey))
                        ordaut
                     ON opdr.opdr_key = ordaut.fac_tracking_refkey
                  LEFT JOIN                                       -- ORDCAN=45
                     fac_tracking ordcan
                  ON opdr.opdr_key = ordcan.fac_tracking_refkey
                     AND ordcan.fac_srtnotificatie_key = 54
               LEFT JOIN                                      -- REJ/CAN=50/54
                  (SELECT   t.fac_tracking_refkey,
                            t.fac_tracking_datum,
                            t.prs_perslid_key
                     FROM   fac_tracking t
                    WHERE   t.fac_srtnotificatie_key IN (50, 54)
                            AND t.fac_tracking_key =
                                  (SELECT   MAX (fac_tracking_key)
                                     FROM   fac_tracking
                                    WHERE   fac_srtnotificatie_key IN
                                                  (50, 54)
                                            AND fac_tracking_refkey =
                                                  t.fac_tracking_refkey))
                  ordann
               ON opdr.opdr_key = ordann.fac_tracking_refkey
            LEFT JOIN                                       -- OOK/ONO=201/202
               (SELECT   t.fac_tracking_refkey,
                         t.fac_tracking_datum,
                         t.fac_srtnotificatie_key,
                         t.prs_perslid_key
                  FROM   fac_tracking t
                 WHERE   t.fac_srtnotificatie_key IN (201, 202)
                         AND t.fac_tracking_key =
                               (SELECT   MAX (fac_tracking_key)
                                  FROM   fac_tracking
                                 WHERE   fac_srtnotificatie_key IN (201, 202)
                                         AND fac_tracking_refkey =
                                               t.fac_tracking_refkey)) ordoff
            ON opdr.opdr_key = ordoff.fac_tracking_refkey;
   
-- MAYF#28197 MLD/OPDR rapportage inclusief substatus bolletje            
CREATE OR REPLACE VIEW MAYF_V_RAP_MLDOPDR_GEG
(
   PRIO,
   FCLT_F_Status_bolletje,
   FCLT_F_Opdrachtnr,
   FCLT_F_Opdrachttype,
   plaats,
   Locatie_adres,
   Woonplaats,
   FCLT_F_Melding,
   Omschrijving,
   Datum,
   FCLT_F_Meldingstatus,
   FCLT_F_Opdrachtstatus,
   FCLT_D_Geplande_einddatum,
   FCLT_F_Uitvoerende,
   Aanvrager,
   Afhandeling
)
AS
   SELECT   DECODE (m.mld_melding_spoed,
                    1, 'Kritiek',
                    2, 'Hoog',
                    4, 'Laag',
                    'Normaal')
               Prio,
            code.omschrijving filter,
            o.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr Opdracht,
            t.mld_typeopdr_omschrijving Opdrachttype,
            l.alg_locatie_code
            || (SELECT   CASE geg.alg_gebouw_code
                            WHEN NULL THEN ''
                            ELSE '-' || geg.alg_gebouw_code
                         END
                         || CASE geg.alg_verdieping_code
                               WHEN NULL THEN ''
                               ELSE '-' || geg.alg_verdieping_code
                            END
                         || CASE geg.alg_ruimte_nr
                               WHEN NULL THEN ''
                               ELSE '-' || geg.alg_ruimte_nr
                            END
                         || CASE geg.alg_terreinsector_code
                               WHEN NULL THEN ''
                               ELSE '-' || geg.alg_terreinsector_code
                            END
                  FROM   alg_v_allonrgoed_gegevens geg
                 WHERE   m.mld_alg_onroerendgoed_keys =
                            geg.alg_onroerendgoed_keys
                         AND ROWNUM = 1)
               plaatsmelding,
            l.alg_locatie_adres Locatieadres,
            l.alg_locatie_plaats Woonplaats,
            std.mld_stdmelding_omschrijving Melding,
            o.mld_opdr_omschrijving Omschrijving,
            o.mld_opdr_datumbegin Datum,
            mstat.mld_statuses_omschrijving Meldingstatus,
            ostat.mld_statusopdr_omschrijving Opdrachtstatus,
            to_char(o.mld_opdr_einddatum, 'dd-mm-yyyy') Geplande_einddatum,
            b.prs_bedrijf_naam Uitvoerende,
            p.prs_perslid_naam_full Aanvrager,
            o.mld_opdr_opmerking Afhandeling
     FROM   mld_opdr o,
            mld_melding m,
            mld_typeopdr t,
            alg_locatie l,
            mld_stdmelding std,
            mld_statuses mstat,
            mld_statusopdr ostat,
            prs_bedrijf b,
            prs_v_perslid_fullnames p,
            (SELECT   SUBSTR (fac_locale_xsl_label, 13, 1) key,
                      fac_locale_xsl_cust omschrijving
               FROM   fac_locale_xsl
              WHERE       fac_locale_xsl_lang = 'NL'
                      AND fac_locale_XSL_cust IS NOT NULL
                      AND fac_locale_xsl_tekst LIKE 'Code%') code
    WHERE       m.mld_melding_key = o.mld_melding_key
            AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
            AND m.mld_stdmelding_key = std.mld_stdmelding_key
            AND mstat.mld_statuses_key = m.mld_melding_status
            AND ostat.mld_statusopdr_key = o.mld_statusopdr_key
            AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
            AND t.mld_typeopdr_key = o.mld_typeopdr_key
            AND p.prs_perslid_key = m.prs_perslid_key
            AND code.key(+) = m.mld_melding_flag
            AND mstat.mld_statuses_key NOT IN (1, 5, 6);
            
-- MAYF#28873
/* Formatted on 24-9-2014 12:40:04 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW MAYF_V_NOTI_OFFERTEAFW
(
   CODE,
   SENDER,
   RECEIVER,
   TEXT,
   KEY,
   XKEY,
   XEMAIL,
   XMOBILE
)
AS
   SELECT sn.fac_srtnotificatie_code,
          NULL,
          NULL,
             'Uw offerte voor offerte aanvraag '
          || mld_melding_key
          || '/'
          || mld_opdr_bedrijfopdr_volgnr
          || ' is afgewezen.',
          o.mld_opdr_key,
          NULL,
          DECODE (INSTR (ba.prs_bedrijfadres_url, 'mailto:'),
                  0, 'servicedesk@mayfieldproperty.nl',
                  TRIM (REPLACE (ba.prs_bedrijfadres_url, 'mailto:', ''))),
          NULL
     FROM mld_opdr o,
          mld_typeopdr ty,
          fac_tracking t,
          fac_srtnotificatie sn,
          prs_bedrijfadres ba
    WHERE     o.mld_statusopdr_key = 2
          AND o.mld_typeopdr_key = ty.mld_typeopdr_key
          AND ty.mld_typeopdr_isofferte = 1
          AND o.mld_opdr_key = t.fac_tracking_refkey
          AND t.fac_tracking_datum > SYSDATE - 1
          AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
          AND sn.fac_srtnotificatie_code = 'ORDONO'
          AND o.mld_uitvoerende_keys = ba.prs_bedrijf_key
          AND ba.prs_bedrijfadres_type = 'O'
          AND UPPER (ba.prs_bedrijfadres_url) NOT LIKE 'FTP%'
          AND NOT EXISTS
                (SELECT 1
                   FROM prs_bedrijfadres
                  WHERE     mld_typeopdr_key = o.mld_typeopdr_key
                        AND prs_bedrijf_key = o.mld_uitvoerende_keys
                        AND prs_bedrijfadres_key != ba.prs_bedrijfadres_key);

-- MAYF#31598 rapporteren op reminders           
CREATE OR REPLACE VIEW MAYF_V_RAP_ORDREMINDERS_DET
(
   FCLT_F_BEDRIJF,
   FCLT_F_OPDRACHT,
   HIDE_F_KEY,
   BEGINDATUM,
   EINDDATUM,
   FCLT_F_OPDRACHT_TYPE,
   FCLT_F_STATUS,
   VERSTUURD
)
AS
   SELECT   b.prs_bedrijf_naam,
            o.mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr,
            o.mld_opdr_key,
            o.mld_opdr_datumbegin,
            o.mld_opdr_einddatum,
            ot.mld_typeopdr_omschrijving,
            st.mld_statusopdr_omschrijving,
            fac_tracking_datum
     FROM   fac_tracking ft,
            mld_opdr o,
            prs_bedrijf b,
            mld_typeopdr ot,
            mld_statusopdr st,
            fac_srtnotificatie srt
    WHERE       fac_tracking_refkey = mld_opdr_key
            AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
            AND ot.mld_typeopdr_key = o.mld_typeopdr_key
            AND st.mld_statusopdr_key = o.mld_statusopdr_key
            AND srt.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
            AND srt.fac_srtnotificatie_code = 'CUST01';

CREATE OR REPLACE VIEW MAYF_V_RAP_ORDREMINDERS_GRP
(
   FCLT_F_BEDRIJF,
   FCLT_F_OPDRACHT,
   BEGINDATUM,
   EINDDATUM,
   FCLT_F_OPDRACHT_TYPE,
   FCLT_F_STATUS,
   AANTAL_REMINDERS,
   LAATST_VERSTUURD
)
AS
     SELECT   FCLT_F_BEDRIJF,
              FCLT_F_OPDRACHT,
              BEGINDATUM,
              EINDDATUM,
              FCLT_F_OPDRACHT_TYPE,
              FCLT_F_STATUS,
              COUNT (HIDE_F_KEY) AANTAL,
              MAX (VERSTUURD)
       FROM   MAYF_V_RAP_ORDREMINDERS_DET
   GROUP BY   FCLT_F_OPDRACHT,
              BEGINDATUM,
              EINDDATUM,
              FCLT_F_BEDRIJF,
              FCLT_F_OPDRACHT_TYPE,
              FCLT_F_STATUS;     

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

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

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