--
-- $Id$
--
-- Korte beschrijving wat het script doet
-- Voor dbuser invullen: - indien script voor 1 klant is: 'MARX' (de klantcode, zoals vermeld in fac_version_cust)
--                       - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group)
--                       - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM'
--
DEFINE thisfile = 'MARX25.SQL'
DEFINE dbuser   = '^MARX'

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

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


-- MARX#69956 Notities bij opdrachten naar de opdrachtgever

-- Nieuwe API voor ophalen van bijlagen van notities, die we (alleen) nodig hebben in geval van AX2012 (AX2009 doen we niet, en T365 en Facilitor verlopen via NQ)
INSERT INTO fac_api (fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_api_viewmapping_json, fac_api_stylesheet)
SELECT 'BIJLAGEN_OPDR_NOTES_4AX', 'Webservice voor ophalen van bijlagen bij opdracht notities', 'appl/api/api_soap.asp',
       '[{"req":"BIJLAGEN_OPDR_NOTES_4AX","node":"data_row","view":"mar_v_opdr_note_mog_bijlagen", "filter":{"APIkey": {"colName": "prs_perslid_apikey","datatype": "string","operand": "EQ"}}}]',
       'cust/MARX/xsl/F_GetApiXML.xsl'
FROM DUAL;


-- Zie MARX#84154 opdr_actiecodes; handjes willen onderdrukken: mld_opdr_actiecode = 2 die hetzelfde als 1 doet, maar dat de actiecode niet via de GUI (expliciet) gezet kan worden.
-- We hadden in MARX24i deze instelling op 1 gezet, ivm MARX#81606 Signaleren dat een opdracht gewijzigd is - VM000000566278.
-- Echter, met dit ticket  MARX#69956 Notities bij opdrachten naar de opdrachtgever moet die niet meer op 1, om te voorkomen dat het handje/vinger icoontje "actie bij" verschijnt.
UPDATE fac_setting
SET fac_setting_pvalue = '2'
WHERE fac_setting_name = 'mld_opdr_actiecode';

--Zie FCLT#84170 Default van belletje bij opdrachtnotities naar de opdrachtgever
--Nu eerst fac_reserved_number2 hiervoor gebruiken, dat wordt opdr_note_default_notifyBO (of zo)
--Uitleg: Uitvoerder notificeert de BO default niet, tenzij S(fac_reserved_number2) == 1, dan -default- wel
-- bitje betekent:
-- +0 notificeren-vinkje, default uit en zichtbaar
-- +1 default aan
-- +2 vinkje hidden
-- We willen dat elke notitie voor opdrachtgever is, oftewel belletje default aan (t.b.v. ORDNOB zodai in NQ), en ook niet uit te zetten
UPDATE fac_setting
SET fac_setting_pvalue = '3'
WHERE fac_setting_name = 'fac_reserved_number2';


-- Belletje/notificatie voor naar opdrachtgever (woco), zodat notities een ORDNOB notificaties krijgen. Notities zonder ORDNOB worden niet naar opdrachtgever gestuurd, en zijn daarmee interne notities voor eigen gebruik.
UPDATE mld_stdmelding
SET mld_stdmelding_notes = 2
WHERE mld_stdmelding_key = 1;

-- ORDNOB moet in NQ terechtkomen, dat lukt via de mode op 64 te zetten.
UPDATE fac_srtnotificatie
SET fac_srtnotificatie_mode = 64
WHERE fac_srtnotificatie_code = 'ORDNOB';

-- Edit plandates { 1=in order (default), 2=with buttons, 3=both }
UPDATE fac_setting
SET fac_setting_pvalue = '2'
WHERE fac_setting_name = 'mld_ord_edit_plandates';

-- Het veld afhandeling alleen in te vullen bij afmelden/afwijzen (0=no, 1=yes)
UPDATE fac_setting
SET fac_setting_pvalue = '1'
WHERE fac_setting_name = 'mld_afhandeling_restrict_edit';

UPDATE fac_locale_xsl
SET fac_locale_xsl_cust = 'afspraakdatum'
WHERE  fac_locale_xsl_label = 'lcl_schedule_start'
AND fac_locale_xsl_module = 'ASP'
AND fac_locale_xsl_lang = 'NL';

UPDATE fac_locale_xsl
SET fac_locale_xsl_cust = 'einddatum'
WHERE  fac_locale_xsl_label = 'lcl_schedule_end'
AND fac_locale_xsl_module = 'ASP'
AND fac_locale_xsl_lang = 'NL';


-- Label lcl_opdr_frame_notes vertalen in 'Notities voor opdrachtgever' (was 'Notities voor eigen gebruik')
UPDATE fac_locale_xsl 
SET fac_locale_xsl_cust = 'Notities voor uw opdrachtgever'
WHERE fac_locale_xsl_label = 'lcl_opdr_frame_notes' 
AND fac_locale_xsl_lang = 'NL' 
AND fac_locale_xsl_module = 'ASP';
-- En label lcl_mld_behandeling vertalen in 'Notities voor opdrachtgever' (was 'Notities voor eigen gebruik')
UPDATE fac_locale_xsl 
SET fac_locale_xsl_cust = 'Notities voor uw opdrachtgever'
WHERE fac_locale_xsl_label = 'lcl_mld_behandeling' 
AND fac_locale_xsl_lang = 'NL' 
AND fac_locale_xsl_module = 'ASP';
-- En label lcl_mld_note vertalen in 'Notitie voor opdrachtgever' (was 'Notitie voor eigen gebruik')
UPDATE fac_locale_xsl 
SET fac_locale_xsl_cust = 'Notitie voor uw opdrachtgever'
WHERE fac_locale_xsl_label = 'lcl_mld_note' 
AND fac_locale_xsl_lang = 'NL' 
AND fac_locale_xsl_module = 'ASP';
-- En label lcl_mld_note_new vertalen in 'Notitie voor opdrachtgever' (was 'Notitie voor eigen gebruik')
UPDATE fac_locale_xsl 
SET fac_locale_xsl_cust = 'Notitie voor uw opdrachtgever'
WHERE fac_locale_xsl_label = 'lcl_mld_note_new' 
AND fac_locale_xsl_lang = 'NL' 
AND fac_locale_xsl_module = 'ASP';


---- Label/Bloktitel voor interne notities

-- Titelblok voor bijlages
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype)
VALUES (47, 'Notities voor eigen gebruik', 'l');
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_typeopdr_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_default)
SELECT 56, 47, 5, 'O', 890, 'fa-notebook' FROM DUAL;

-- Nieuw kenmerk voor eigen notities ter vervanging van de opdrachtnotities, en doet mee in ANOnimiseer proces
INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype, mld_srtkenmerk_lengte, mld_srtkenmerk_systeem)
VALUES (46, 'Interne notities', 'C', 4000, 8);
INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_typeopdr_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_toonbaar, mld_kenmerk_hint)
SELECT 55, 46, 5, 'O', 891, NULL, 'Let op: deze notities worden niet naar uw opdrachtgever gestuurd' FROM DUAL;

-- Conversie: alle notities van de opdrachten eerst in flexprop "interne notities" bij betreffende opdracht stoppen...
-- Evt opmaak in notities + plaatjes gaan verloren..
DECLARE
  h_opdr_key        NUMBER(10);
  v_interne_notitie VARCHAR2(4000);
  CURSOR c_interne_notities
   IS
      SELECT n.mld_opdr_note_key, n.mld_opdr_key, n.mld_opdr_note_omschrijving, n.mld_opdr_note_aanmaak
      FROM mld_opdr_note n      
      ORDER BY n.mld_opdr_key, n.mld_opdr_note_aanmaak;
BEGIN
  h_opdr_key := -1;
  v_interne_notitie := '';
  FOR rec IN c_interne_notities
  LOOP
      IF rec.mld_opdr_key <> h_opdr_key AND h_opdr_key <> -1
      THEN
        -- Deze notitie is van ander opdracht, die van de vorige opdracht eerst inserten (en vanwege h_opdr_key <> -1 betekent dat dit niet de 1e keer is (want 1e x moeten we nog ff niets doen)
        mld.upsertopdrachtkenmerk (55, h_opdr_key, SUBSTR(v_interne_notitie,2));
        v_interne_notitie := '';
      END IF;
      -- Oke, dan note(s) van de nieuwe opdracht opsparen...
      v_interne_notitie := SUBSTR(v_interne_notitie || CHR(10) || to_char(rec.mld_opdr_note_aanmaak, 'DD-MM-YYYY HH24:MI') || ': ' || rec.mld_opdr_note_omschrijving, 1, 4000);
      h_opdr_key := rec.mld_opdr_key;
  END LOOP;
  -- En de laatste niet vergeten natuurlijk!
  IF h_opdr_key <> -1
  THEN
    mld.upsertopdrachtkenmerk (55, h_opdr_key, SUBSTR(v_interne_notitie,2));
  END IF;
  -- En tenslotte gaan we alle notities verwijderen
  DELETE FROM mld_opdr_note n;
END;
/


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