--
-- $Id$
--
-- Conversie van het oude Logcentre naar het nieuwe

DEFINE thisfile = 'Convertfromlogcentre.SQL'
DEFINE dbuser   = '^LOGC'

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

/* Tools to convert from tha Access data */

-- Bijlagen gaan buitenom

-- Niet geconverteerd worden:
-- * Mijn uren tot dusver
-- * Totaal uren deze actie
-- * Datum afhandeling
-- * Goedgekeurd door
-- * Besteed (uren)

-----------------------------------------------------------------------------
-- ONDERSTAANDE EERST UITVOEREN IN DE FCLT-ORACLE DATABASE, dit zijn de tijdelijke importtabellen
-----------------------------------------------------------------------------

CREATE TABLE tmp_bugs
(
   bug_id            NUMBER (10),                         -- logcentrenr #1235
   cust_id           VARCHAR2 (6),               -- 4-letterige klantcode XXXX
   project_id        NUMBER (10), -- 1-Project ID, verwijst naar combi van klant code en srt melding
   priority_id       NUMBER (10),                                    -- 2-Prio
   status_id         NUMBER (10),                                  -- 9-Status
   bug_name          VARCHAR2 (100),             -- Beschrijving, melding ondw
   bug_desc          VARCHAR2 (4000),          -- Omschrijving, melding omschr
   bug_desc2         VARCHAR2 (4000),        -- voorlopig om te bewaren alleen
   resolution        VARCHAR2 (4000),        -- Oplossing, melding note omschr
   resolution2       VARCHAR2 (4000),        -- Oplossing, melding note omschr
   resolution3       VARCHAR2 (4000),        -- Oplossing, melding note omschr
   resolution4       VARCHAR2 (4000),        -- Oplossing, melding note omschr
   resolution5       VARCHAR2 (4000),        -- Oplossing, melding note omschr
   resolution6       VARCHAR2 (4000),        -- Oplossing, melding note omschr
   resolution7       VARCHAR2 (4000),        -- Oplossing, melding note omschr
   resolution8       VARCHAR2 (4000),        -- Oplossing, melding note omschr
   assigned_by       NUMBER (10),                             -- 4-Gemeld door
   assigned_to       NUMBER (10),                               -- 6-Actie bij
   date_assigned     DATE,                                   -- 7-Datum invoer
   date_resolved     DATE,                                              -- ???
   fixversie         VARCHAR2 (10),                             -- 3-Fixversie
   approved_by       NUMBER (10),                                       -- ???
   time_spent        NUMBER (10, 2),                   -- Mijn uren tot dusver
   time_cumulative   NUMBER (10, 2),                 -- Totaal uren deze actie
   client_code       VARCHAR2 (50), -- Versch gebruikt, bevat nu projectnr Facilitor (AX nr)
   releasenote       VARCHAR2 (4000) -- Releasenotes, melding opm (eindres/releasenote)
);

CREATE TABLE tmp_projects
(
   project_id     NUMBER (10) PRIMARY KEY, -- 1-Project ID voor/bij 'project_name'
   project_appl   VARCHAR2 (15),                                -- Intranet???
   project_name   VARCHAR2 (50),              -- 1-Project Name, soort melding
   employee_id    NUMBER (10),                                           -- PL
   cust_id        VARCHAR2 (6)                        -- 4-lettercode (of FSN)
);

-- De platgeslagen tag-referenties

CREATE TABLE tmp_tags
(
   bug_id            NUMBER (10),                         -- logcentrenr #1235
   tag_id            NUMBER (10),
   tag_code          VARCHAR2 (50),
   tag_description   VARCHAR2 (100)
);

CREATE TABLE tmp_employees
(
   employee_id      NUMBER (10),
   employee_name    VARCHAR2 (100),
   login            VARCHAR2 (100),
   pass             VARCHAR2 (100),
   email            VARCHAR2 (100),
   phone            VARCHAR2 (100),
   security_level   VARCHAR2 (100),
   login_guid       VARCHAR2 (100)
);

CREATE OR REPLACE VIEW tmp_damo
AS
   SELECT b.*, p.project_name
     FROM tmp_bugs b, tmp_projects p
    WHERE b.project_id = p.project_id;

-- Doe maar eens een globale gooi, dan hebben we wat vulling.
-- Van personen die niet meer bestaan negeren we de meldingen

DELETE FROM mld_kenmerkmelding;

DELETE FROM mld_melding_note;

DELETE FROM mld_melding;

DELETE FROM fac_tracking;

DELETE FROM fac_notificatie;

DELETE FROM web_user_messages;

DELETE FROM tmp_bugs;

INSERT INTO tmp_bugs (bug_id,
                      cust_id,
                      project_id,
                      priority_id,
                      status_id,
                      bug_name,
                      bug_desc,
                      bug_desc2,
                      resolution,
                      resolution2,
                      resolution3,
                      resolution4,
                      resolution5,
                      resolution6,
                      resolution7,
                      resolution8,
                      assigned_by,
                      assigned_to,
                      date_assigned,
                      date_resolved,
                      fixversie,
                      approved_by,
                      time_spent,
                      time_cumulative,
                      client_code,
                      releasenote)
   SELECT bug_id,
          cust_id,
          project_id,
          priority_id,
          status_id,
          bug_name,
          bug_desc,
          bug_desc2,
          resolution,
          resolution2,
          resolution3,
          resolution4,
          resolution5,
          resolution6,
          resolution7,
          resolution8,
          assigned_by,
          assigned_to,
          date_assigned,
          date_resolved,
          fixversie,
          approved_by,
          time_spent,
          time_cumulative,
          client_code,
          releasenote
     FROM tmp_bugs_org_saved;
-----------------------------------------------------------------------------
-- IN ACCES DIT ALS QUERYS UITVOEREN
-----------------------------------------------------------------------------
-- Handig: via Acces gewoon linken naar de tabellen en dan kopieren
-- Haal die gekke email-kolom (bugs.email) in access eerst weg.
-- De eerste duurt best heel lang, reken op een dik uur voor alles (mdb lokaal!)
--INSERT INTO fclt_tmp_bugs SELECT * FROM bugs WHERE bug_id < 10000;
--INSERT INTO fclt_tmp_bugs SELECT * FROM bugs WHERE bug_id < 20000 and bug_id >= 10000;
--INSERT INTO fclt_tmp_bugs SELECT * FROM bugs WHERE bug_id < 30000 and bug_id >= 22127;
--INSERT INTO fclt_tmp_bugs SELECT * FROM bugs WHERE bug_id < 40000 and bug_id >= 30000;

--INSERT INTO fclt_tmp_bugs
--   SELECT bugs.bug_id AS bug_id,
--          bugs.cust_id AS cust_id,
--          bugs.project_id AS project_id,
--          bugs.priority_id AS priority_id,
--          bugs.status_id AS status_id,
--          bugs.bug_name AS bug_name,
--          mid (bugs.bug_desc, 1, 4000) AS bug_desc,
--          mid (bugs.bug_desc, 4001, 4000) AS bug_desc2,
--          mid (bugs.resolution, 1, 4000) AS resolution,
--          mid (bugs.resolution, 4001, 4000) AS resolution2,
--          mid (bugs.resolution, 8001, 4000) AS resolution3,
--          mid (bugs.resolution, 12001, 4000) AS resolution4,
--          mid (bugs.resolution, 16001, 4000) AS resolution5,
--          mid (bugs.resolution, 20001, 4000) AS resolution6,
--          mid (bugs.resolution, 24001, 4000) AS resolution7,
--          mid (bugs.resolution, 28001, 4000) AS resolution8,
--          bugs.assigned_by AS assigned_by,
--          bugs.assigned_to AS assigned_to,
--          bugs.date_assigned AS date_assigned,
--          bugs.date_resolved AS date_resolved,
--          bugs.fixversie AS fixversie,
--          bugs.approved_by AS approved_by,
--          bugs.time_spent AS time_spent,
--          bugs.time_cumulative AS time_cumulative,
--          bugs.client_code AS client_code,
--          bugs.releasenote AS releasenote
--     FROM bugs
--    WHERE bug_id BETWEEN 0 AND 5000;
--WHERE bug_id >= 40000 ;
--WHERE bug_id between 35000 and 40000 ;
--WHERE bug_id between 30000 and 35000 ;
-- enz.

INSERT INTO fclt_tmp_projects
       SELECT * FROM projects;

INSERT INTO fclt_tmp_tags
   SELECT bt.bug_id,
          t.tag_id,
          t.code AS tag_code,
          t.description AS tag_description
     FROM bugtag bt, tags t
    WHERE bt.tag_id = t.tag_id
-- De eerste calls stammen uit 2002. Dat is niet erg relevant meer.
-- Voorstel is om lekker op te ruimen: alles wat gesloten is van voor 2011 wegdoen
-- Dat kan natuurlijk beter direct hierboven, die had ik al niet mee hoeven nemen
-- Melding 22127 is van 2-1-2012
--DELETE FROM fclt_tmp_bugs WHERE status_id IN (5,8) AND date_assigned < TO_DATE('01-01-2012','DD-MM-YYYY');


-----------------------------------------------------------------------------
-- De FIP-import moeten ook nog worden gedaan voor Personen, Organisatie en Meldingstructuur
-----------------------------------------------------------------------------
--SELECT projects.cust_id as afdelingscode, employees.employee_name as persoonachternaam, Null AS tussenvoegsel, Null AS voorletters, Null AS voornaam, null as titel, employees.phone as telefoonnummer, Null AS mobiel, employees.email as email, 'nvt' AS functie, employees.employee_id as personeelsnummer, employees.login as loginnaam, employees.pass as password, employees.employee_name
--FROM employees INNER JOIN projects ON employees.employee_id = projects.employee_id;

 -- Alle PLATO calls worden op een dummy melder gezet
 -- Deze bestaat niet in Logcentre maar heeft in Facilitor klantnr 0000 gekregen
 -- Als we deze assigned by daar op zetten komt het straks vanzelf goed.

UPDATE tmp_bugs
   SET assigned_by = 0000
 WHERE cust_id = 'PLAT';

  -- Mareon calls worden nu gemeld namens Aareon (VG), klantnr. 1564
 --  Om alles netjes op Mareon te krijgen mogen al deze calls omgezet worden
 -- Dat kan zijn waar cust_id  MARX of behandelaar = MARX (1592)

UPDATE tmp_bugs
   SET assigned_by = 1564
 WHERE cust_id = 'MARX' OR assigned_to = 1592;

 -- Alles wat ooit door 'de helpdesk' gemeld is (assigned by = 1256)
 --  Dat zetten we maar even op RLI  (assigned by = 1326) voor het gemak

UPDATE tmp_bugs
   SET assigned_by = 1326
 WHERE assigned_by = 1256;

  -- Alles wat ooit rondom  'administratie' gemeld is (assigned by / to= 1246 )
 --  Dat zetten we maar even op PF  (= 1210) voor het gemak

UPDATE tmp_bugs
   SET assigned_by = 1210
 WHERE assigned_by = 1246;


-- Als de call door een Facilitor medewerker geregistreerd is, dan kán dat namens een klant zijn
-- Om dit te kunnen herleiden nemen we de xxxx code op in de omschrijving
-- Dit schoont vanzelf op, omdat we in Facilitor ook daadwerkelijk melden namens de klant
-- FSN meldingen laten we buiten beschouwing, die zijn echt vanuit 'ons'

UPDATE tmp_bugs b
   SET bug_name = cust_id || ' - ' || bug_name
 WHERE cust_id <> 'FSN'
       --AND cust_id not like '%-%'
       AND assigned_by IN
                (SELECT prs_perslid_nr
                   FROM prs_v_perslid_gegevens
                  WHERE UPPER (prs_perslid_email) LIKE '%FACILITOR%');

-- NU KUNNEN WE ALLE MELDINGEN IMPORTEREN
-- hierbij sluiten we de volgende fsn meldingen uit:
-- cursus=klant (1345), demo/proeftuin (1419) omdat we hier separate meldingen voor hebben
-- support credits (1475) omdat we hier iets anders voor moeten verzinnen

-- Meldingen die op naam van support staan (assigned to = Helpdesk 1256)
-- De MARX meldingen die 'in behandeling zijn'  door f:marx (assigned_to=1592)
-- Of op naam van het archief (assigned to = Archief 1228)
-- stdmeldingkey = 3, geen behandelaar

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          '',                                              -- geen behandelaar
          3,                                                 --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE     assigned_to in (1256,1228,1592)
          AND project_id NOT IN (1345, 1419, 1475)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Meldingen die op naam van CAB staan (assigned to = F:CAB 1521)
-- stdmeldingkey = 22, geen behandelaar

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          '',                                              -- geen behandelaar
          22,                                                --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE  assigned_to = 1521
          AND project_id NOT IN (1345, 1419, 1475)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Ook meldingen waar PF behandelaar (perslidnr =1210) is gaan naar CAB
-- stdmeldingkey = 22, behandelaar is PF

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
           (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_to),
          22,                                                --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE  assigned_to = 1210
          AND project_id NOT IN (1345, 1419, 1475)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Meldingen die op Release staan (assigned to = F:Release 1296)
-- deze gaan naar support, maar krijgen de status 'afgemeld', vlaggetje 'release' aan
-- stdmeldingkey = 3, geen behandelaar

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed,
                         mld_melding_flag)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          '',                                              -- geen behandelaar
          3,                                                 --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          5,                                      -- status is altijd afgemeld
          priority_id,
          4
     FROM tmp_damo
    WHERE     assigned_to = 1296
          AND project_id NOT IN (1345, 1419, 1475)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Meldingen die op planning staan (F:PLANNING 1540)
-- gaan naar development
-- stdmeldingkey = 24, geen behandelaar

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          '',                                              -- geen behandelaar
          24,                                                --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE     assigned_to = 1540
          AND project_id NOT IN (1345, 1419, 1475)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Meldingen die op consult staan (F:CONSULT 1624)
-- gaan naar consultancy
-- stdmeldingkey = 23, geen behandelaar

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          '',                                              -- geen behandelaar
          23,                                                --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE     assigned_to = 1624
          AND project_id NOT IN (1345, 1419, 1475)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Meldingen die op naam van een supportmedewerker moeten komen te staan (stdmeldingkey=3)
-- prs_afdeling_omschrijving = 'Support'

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_to),
          3,                                                 --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE assigned_to IN
                (SELECT prs_perslid_nr
                   FROM PRS_V_PERSLID_GEGEVENS
                  WHERE UPPER (PRS_PERSLID_EMAIL) LIKE '%FACILITOR%'
                        AND prs_afdeling_omschrijving = 'Support')
          AND project_id NOT IN (1345, 1419, 1475)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Meldingen die op naam van een consultant moeten komen te staan (stdmeldingkey=23)
-- prs_afdeling_omschrijving = consultancy

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_to),
          23,                                                --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE assigned_to IN
                (SELECT prs_perslid_nr
                   FROM PRS_V_PERSLID_GEGEVENS
                  WHERE UPPER (PRS_PERSLID_EMAIL) LIKE '%FACILITOR%'
                        AND prs_afdeling_omschrijving = 'Consultancy')
          AND project_id NOT IN (1345, 1419, 1475)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Meldingen die op naam van een developer moeten komen te staan (stdmeldingkey=24)
-- prs_afdeling_omschrijving = development

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_to),
          24,                                                --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE assigned_to IN
                (SELECT prs_perslid_nr
                   FROM PRS_V_PERSLID_GEGEVENS
                  WHERE UPPER (PRS_PERSLID_EMAIL) LIKE '%FACILITOR%'
                        AND prs_afdeling_omschrijving = 'Development')
          AND project_id NOT IN (1345, 1419, 1475)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Meldingen die op naam van sales moeten komen te staan (stdmeldingkey=25)
-- prs_afdeling_omschrijving = sales

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_to),
          25,                                                --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE assigned_to IN
                (SELECT prs_perslid_nr
                   FROM PRS_V_PERSLID_GEGEVENS
                  WHERE UPPER (PRS_PERSLID_EMAIL) LIKE '%FACILITOR%'
                        AND prs_afdeling_omschrijving = 'Sales')
          AND project_id NOT IN (1345, 1419, 1475)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Dan nog meldingen die op een klantnaam staan
-- Al deze meldingen zetten we op support (stdmelding = 3)
-- Met het vlaggetje 'klantreactie vereist' aan (mld_melding_flag = 1)
-- Natuurlijk niet als een melding al is afgehandeld (5=verwerkt, 8=vervallen)

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed,
                         mld_melding_flag)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          '',           -- geen behandelaar, want een klant kan immers geen behandelaar zijn
          3,                                                 --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id,
          1
     FROM tmp_damo
    WHERE assigned_to NOT IN
                (SELECT prs_perslid_nr
                   FROM PRS_V_PERSLID_GEGEVENS
                  WHERE UPPER (PRS_PERSLID_EMAIL) LIKE '%FACILITOR%')
          AND assigned_to IS NOT NULL
          AND assigned_to NOT IN
                   (1246,
                    1521,
                    1624,
                    1592,
                    1540,
                    1591,
                    1296,
                    1425,
                    1520,
                    1256,
                    1228)                      --- fictieve fclt users (F:...)
          AND project_id NOT IN (1345, 1419, 1475)
          AND status_id NOT IN (5, 8)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Dan nog AFGEHANDELDE meldingen die op een klantnaam staan
-- Al deze meldingen zetten we op support (stdmelding = 3)
-- De status is afgehandeld (5=verwerkt, 8=vervallen)

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          '',       -- geen behandelaar, klant kan immers geen behandelaar zijn
          3,                                                 --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE assigned_to NOT IN
                (SELECT prs_perslid_nr
                   FROM PRS_V_PERSLID_GEGEVENS
                  WHERE UPPER (PRS_PERSLID_EMAIL) LIKE '%FACILITOR%')
          AND assigned_to IS NOT NULL
          AND assigned_to NOT IN
                   (1246,
                    1521,
                    1624,
                    1592,
                    1540,
                    1591,
                    1296,
                    1425,
                    1520,
                    1256,
                    1228)                      --- fictieve fclt users (F:...)
          AND project_id NOT IN (1345, 1419, 1475)
          AND status_id IN (5, 8)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- NU MOETEN DE MELDINGEN CURSUS KLANT EN PROEFTUIN NOG OMGEZET WORDEN

-- Proeftuin (project=1419 of assigned_to=1591) kan naar de volgende stdmelding: 41=proeftuin
-- Alles wat assigned to 1591 is mag, zonder behandelaar, naar 41
-- Alles wat project 1419 is mag naar 41, indien assigned to = 1591 dan zonder behandelaar anders behandelaar overnemen

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          DECODE (assigned_to,
                  1591, '',
                  (SELECT prs_perslid_key
                     FROM prs_perslid
                    WHERE prs_perslid_nr = assigned_to)),
          41,                                                --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE (assigned_to = 1591 OR project_id = 1419)
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- Cursus klant (1345) kan naar de volgende stdmelding: 42=cursus klant

INSERT INTO mld_melding (mld_melding_key,
                         mld_melding_module,
                         mld_melding_onderwerp,
                         mld_meldbron_key,
                         mld_melding_datum,
                         mld_melding_omschrijving,
                         mld_melding_opmerking,
                         mld_melding_behandelaar_key,
                         mld_stdmelding_key,
                         mld_melding_ordernr,
                         prs_perslid_key,
                         mld_melding_status,
                         mld_melding_spoed)
   SELECT bug_id,
          'MLD',
          SUBSTR (bug_name, 1, 80),                             --lang genoeg?
          6,
          date_assigned,
          bug_desc,
          releasenote,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_to),
          42,                                                --std melding key
          client_code,
          (SELECT prs_perslid_key
             FROM prs_perslid
            WHERE prs_perslid_nr = assigned_by),
          DECODE (status_id,
                  1, 2,
                  2, 4,
                  3, 5,
                  4, 4,
                  5, 6,
                  8, 1,
                  15, 4,
                  16, 4,
                  17, 4),
          priority_id
     FROM tmp_damo
    WHERE project_id = 1345
          AND EXISTS (SELECT prs_perslid_key
                        FROM prs_perslid
                       WHERE prs_perslid_nr = assigned_by);

-- NU ALLE 'SUBSTATUSSEN' OFWEL DE VLAGGETJES GOED ZETTEN
-- Als er al een vlaggetje staat (bij klant) dan deze niet overschrijven!

--"status_id";"status";"status_en"
--1;"0.Open";"0.Open"
--2;"1.InBehandeling";"1.In progress"
--3;"2.Opleveren";"2.Release"  >> FLAG4 RELEASE
--4;"3.Acceptatie";"3.Approval"
--5;"4.Verwerkt";"4.Closed"
--8;"9.Vervallen";"9.Rejected"
--15;"*HOLD*";"*HOLD*"  >> FLAG3 ON HOLD
--16;"1.Testen";"1.Test"
--17;"1.Afronden";"1.Finishing"

-- Hold> flag 3

UPDATE mld_melding
   SET mld_melding_flag = 3
 WHERE mld_melding_flag IS NULL
       AND mld_melding_key IN (SELECT bug_id
                                 FROM tmp_damo
                                WHERE status_id = 15);

-- Release > flag 4

UPDATE mld_melding
   SET mld_melding_flag = 4
 WHERE mld_melding_flag IS NULL
       AND mld_melding_key IN (SELECT bug_id
                                 FROM tmp_damo
                                WHERE status_id = 3);

-- De Behandeling (plat) naar notes
-- De Behandeling (plat) naar notes in blokken van 4000.

INSERT INTO mld_melding_note (mld_melding_key, mld_melding_note_omschrijving, mld_melding_note_aanmaak)
   SELECT bug_id, resolution, TRUNC (SYSDATE)
     FROM tmp_damo
    WHERE EXISTS (SELECT ''
                    FROM mld_melding
                   WHERE mld_melding_key = bug_id)
          AND resolution IS NOT NULL;

INSERT INTO mld_melding_note (mld_melding_key, mld_melding_note_omschrijving, mld_melding_note_aanmaak)
   SELECT bug_id, resolution, TRUNC (SYSDATE) + 1 / 24 / 60
     FROM tmp_damo
    WHERE EXISTS (SELECT ''
                    FROM mld_melding
                   WHERE mld_melding_key = bug_id)
          AND resolution2 IS NOT NULL;

INSERT INTO mld_melding_note (mld_melding_key, mld_melding_note_omschrijving, mld_melding_note_aanmaak)
   SELECT bug_id, resolution, TRUNC (SYSDATE) + 2 / 24 / 60
     FROM tmp_damo
    WHERE EXISTS (SELECT ''
                    FROM mld_melding
                   WHERE mld_melding_key = bug_id)
          AND resolution3 IS NOT NULL;

INSERT INTO mld_melding_note (mld_melding_key, mld_melding_note_omschrijving, mld_melding_note_aanmaak)
   SELECT bug_id, resolution, TRUNC (SYSDATE) + 3 / 24 / 60
     FROM tmp_damo
    WHERE EXISTS (SELECT ''
                    FROM mld_melding
                   WHERE mld_melding_key = bug_id)
          AND resolution4 IS NOT NULL;

INSERT INTO mld_melding_note (mld_melding_key, mld_melding_note_omschrijving, mld_melding_note_aanmaak)
   SELECT bug_id, resolution, TRUNC (SYSDATE) + 4 / 24 / 60
     FROM tmp_damo
    WHERE EXISTS (SELECT ''
                    FROM mld_melding
                   WHERE mld_melding_key = bug_id)
          AND resolution5 IS NOT NULL;

INSERT INTO mld_melding_note (mld_melding_key, mld_melding_note_omschrijving, mld_melding_note_aanmaak)
   SELECT bug_id, resolution, TRUNC (SYSDATE) + 5 / 24 / 60
     FROM tmp_damo
    WHERE EXISTS (SELECT ''
                    FROM mld_melding
                   WHERE mld_melding_key = bug_id)
          AND resolution6 IS NOT NULL;

INSERT INTO mld_melding_note (mld_melding_key, mld_melding_note_omschrijving, mld_melding_note_aanmaak)
   SELECT bug_id, resolution, TRUNC (SYSDATE) + 6 / 24 / 60
     FROM tmp_damo
    WHERE EXISTS (SELECT ''
                    FROM mld_melding
                   WHERE mld_melding_key = bug_id)
          AND resolution7 IS NOT NULL;

INSERT INTO mld_melding_note (mld_melding_key, mld_melding_note_omschrijving, mld_melding_note_aanmaak)
   SELECT bug_id, resolution, TRUNC (SYSDATE) + 7 / 24 / 60
     FROM tmp_damo
    WHERE EXISTS (SELECT ''
                    FROM mld_melding
                   WHERE mld_melding_key = bug_id)
          AND resolution8 IS NOT NULL;


--  DE SOORT MELDING KOMT IN EEN FLEXKENMERK (SOORT MELDING = 21) TE STAAN
-- 1002 = FSN BUG=Onderhoud
-- 1=gebrek

INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
   SELECT bug_id, 21, 1
     FROM tmp_damo
    WHERE (UPPER (project_name) IN
                 ('BEVINDING (NTB)', 'BUG', 'BUG=ONDERHOUD', 'GEBREK')
           OR project_id = 1002)
          AND EXISTS (SELECT mld_melding_key
                        FROM mld_melding
                       WHERE mld_melding_key = bug_id);

-- 1028 = FSN Project=Klant
-- 2=ondersteuning

INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
   SELECT bug_id, 21, 2
     FROM tmp_damo
    WHERE (UPPER (project_name) NOT IN
                 ('WENS',
                  'WENS=ONTWIKKELING',
                  'WISH',
                  'OPTIMALISATIE',
                  'FAQ',
                  'BUG',
                  'FAQ=SUPPORT',
                  'BEVINDING (NTB)',
                  'BUG',
                  'BUG=ONDERHOUD',
                  'GEBREK',
                  'ONBEKEND',
                  'ONBEKEND (NTB)')
           OR project_id = 1028)
          AND EXISTS (SELECT mld_melding_key
                        FROM mld_melding
                       WHERE mld_melding_key = bug_id);

-- 1310 = FSN FAQ=Support
-- 3=vraag

INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
   SELECT bug_id, 21, 3
     FROM tmp_damo
    WHERE (UPPER (project_name) IN ('FAQ', 'FAQ=SUPPORT')
           OR project_id = 1310)
          AND EXISTS (SELECT mld_melding_key
                        FROM mld_melding
                       WHERE mld_melding_key = bug_id);

-- 1006 = FSN Wens
-- 4=wens

INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
   SELECT bug_id, 21, 4
     FROM tmp_damo
    WHERE (UPPER (project_name) IN
                 ('WENS', 'WENS=ONTWIKKELING', 'WISH', 'OPTIMALISATIE')
           OR project_id = 1006)
          AND EXISTS (SELECT mld_melding_key
                        FROM mld_melding
                       WHERE mld_melding_key = bug_id);

-- na de soort melding moeten de tags omgezet worden:
-- Tags mbt module (kenmerk 22): Indien meerdere module tags: dan maar niets!

INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
   SELECT bug_id, 22, fac_usrdata_key
     FROM fac_usrdata d, tmp_tags_modules m
    WHERE     m.tag_code = d.fac_usrdata_upper
          AND EXISTS (  SELECT bug_id, COUNT (tag_id)
                          FROM tmp_tags_modules c
                         WHERE c.bug_id = m.bug_id
                      GROUP BY bug_id
                        HAVING COUNT (tag_id) = 1)
          AND EXISTS (SELECT mld_melding_key
                        FROM mld_melding
                       WHERE mld_melding_key = bug_id);

--  De calls met een tag 'Must'
-- Hierbij moet kenmerk MoSCoW (24) ook op must (26) gezet worden.

INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
   SELECT bug_id, 24, 26
     FROM tmp_tags_must
    WHERE EXISTS (SELECT mld_melding_key
                    FROM mld_melding
                   WHERE mld_melding_key = bug_id);

-- Dan alle tags die ook maar iets een release oid van doen hebben
-- Deze worden gecombineerd met de waarde in het veld Fixversie
-- In het kenmerk release (25) zetten

INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
   SELECT DISTINCT b.bug_id, 25, RTRIM(b.fixversie || ' ' || r.tag)
     FROM tmp_bugs b, tmp_tags_release r
    WHERE     b.bug_id = r.bug_id(+)
          AND (fixversie IS NOT NULL OR tag IS NOT NULL)
          AND EXISTS (SELECT mld_melding_key
                        FROM mld_melding
                       WHERE mld_melding_key = b.bug_id);

-- Het projectnummer uit Logcentre moet naar kenmerk Facilitor projectnummer (27)

INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
   SELECT bug_id, 27, client_code
     FROM tmp_bugs
    WHERE client_code IS NOT NULL
          AND EXISTS (SELECT mld_melding_key
                        FROM mld_melding
                       WHERE mld_melding_key = bug_id);

-- De geraamde uren uit Logcentre moeten naar kenmerk Raming (26)

INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
   SELECT bug_id, 26, time_spent
     FROM tmp_bugs
    WHERE time_spent IS NOT NULL
          AND EXISTS (SELECT mld_melding_key
                        FROM mld_melding
                       WHERE mld_melding_key = bug_id);

-- Als het om een IB melding gaat, dan moet het vinkje IB issue aangezet worden (kenmerk 23)

INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
   SELECT bug_id, 23, 1
     FROM tmp_bugs
    WHERE project_id = 1477
          AND EXISTS (SELECT mld_melding_key
                        FROM mld_melding
                       WHERE mld_melding_key = bug_id);

-- Logcenter deed alleen een CR deed en niet een CR+LF
-- Alleenstaande CHR(13) in Oracle vervangen door CHR(10) + CHR(13)

UPDATE mld_melding_note
SET mld_melding_note_omschrijving=REPLACE (mld_melding_note_omschrijving,
                 CHR (13) || '*',
                 CHR (13) || CHR (10) || '*');

UPDATE mld_melding_note
   SET mld_melding_note_omschrijving =
          REPLACE (mld_melding_note_omschrijving, CHR (0), ' ');

-- om notities zichtbaar te krijgen voor klanten
UPDATE mld_melding_note
 SET mld_melding_note_flag = 1
 WHERE mld_melding_note_flag = 0;

-- nieuwe wachtwoord afdwingen
--UPDATE prs_perslid
--  SET prs_perslid_wachtwoord_exp = SYSDATE
--WHERE     prs_srtperslid_key = 441
--       AND prs_perslid_einddatum IS NULL
--       AND prs_perslid_verwijder IS NULL;


-- Met name voor de AA, Kien, Yask etc. klanten:
-- de kostenplaatsen goed zetten
UPDATE mld_melding m
   SET m.prs_kostenplaats_key =
          (SELECT prs_kostenplaats_key
             FROM tmp_bugs_kpl b
            WHERE m.mld_melding_key = b.bug_id);

-- Melding sequence ophogen
DROP SEQUENCE mld_s_mld_melding_key;

DECLARE
   stmt   VARCHAR2 (200);
BEGIN
   SELECT 'CREATE SEQUENCE mld_s_mld_melding_key START WITH '
          || COALESCE (MAX (mld_melding_key + 1), 1)
     INTO stmt
     FROM mld_melding;

   EXECUTE IMMEDIATE stmt;
END;
/

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