%@ language="javascript"%> <% /* $Revision$ $Id$ File: mld_show_note2.asp Description: Nieuwe notities versie. Betere layout, altijd een invulveld Parameters: mld_key (altijd verplicht hier) Note: Nu kan iedereen hier zijn, FE of FOBO. FE mag de interne notes niet zien, let daarop. */ var mld_key = getQParamInt("mld_key"); // altijd verplicht mld_key var LOCKED_USER_OK = { "xmlnode": "melding", "key": mld_key }; %> <% FCLTHeader.Requires({js: ["../mld/mld_list.js"]}) var urole = getQParamSafe("urole", "fe"); var outputmode = getQParamInt("outputmode", 0); var tracking = getQParamInt("tracking", (urole=="fe"?0:1)) == 1; // tracking erbij tonen? Onderdrukken met 0 var tmp_note = getQParam("tmp_note", ""); var parent_reload = getQParamInt("parent_reload", 0); var note_key = getQParamInt("note_key", -1); var mld_info = mld.mld_melding_info(mld_key); var stdm_info = mld.mld_stdmeldinginfo(mld_info.stdm); var verynew = getQParamInt("verynew", 0) == 1; lcl.set_dialect(mld_info.srtdisc, "MLD_SRTDISCIPLINE_KEY"); var mfe = mld.func_enabled_melding (mld_key); // Heb ik rechten om notities te zien user.auth_required_or_abort(mfe.canReadNotes); var eigenMelding = user_key == mld_info.melder_key || user.isCollega(mld_info.melder_key); var afgehandeld = (mld_info.mld_status == 1 || mld_info.mld_status == 5 || mld_info.mld_status == 6); var timestamp_notes = new Date(); var kenmerk_key_arr = []; var srtkenm_oms_arr = []; var multipleBijlagenTypes = false; if (mld_key > 0) { // Zijn er een bijlage kenmerken? var sql = mld.getMldKenmerk_sql(mld_key, {wheres: ["mkm.mld_kenmerk_volgnummer < 800", "(mkm.mld_kenmerk_verplicht IS NULL OR mkm.mld_kenmerk_verplicht=0)", "msk.mld_srtkenmerk_kenmerktype = 'M'"]} ); var oRs = Oracle.Execute(sql); while (!oRs.eof) { kenmerk_key_arr.push(oRs("mld_kenmerk_key").Value); srtkenm_oms_arr.push(oRs("mld_srtkenmerk_omschrijving").Value); oRs.moveNext(); if (!multipleBijlagenTypes && !oRs.eof) multipleBijlagenTypes = true; } oRs.Close(); } %>
<% FCLTHeader.Generate({outputmode: outputmode}); %> <% function fnPerslidNaamFull(oRs) { if (!oRs("prs_perslid_key").Value) return ""; if (outputmode != 0) return safe.html(oRs("prs_perslid_naam_friendly").Value); if (oRs("prs_perslid_key").Value == user_key) { var html = "" + safe.html(oRs("prs_perslid_naam_friendly").Value) + ""; } else { var html = "" + safe.html(oRs("prs_perslid_naam_friendly").Value) + ""; } return html; } var buttons = []; buttons.push({ icon: "page_refresh.png", title: L("lcl_refresh"), action: "FcltMgr.stopEdit(window);FcltMgr.reload()"}); if (urole=="fo" || urole=="bo") buttons.push({ icon: "print.png", title: L("lcl_print"), action: "doPrint()" }); if (kenmerk_key_arr.length == 1) buttons.push({ icon: "attach.png", title: L("lcl_appendixes"), action: "Upload()" }); else if (kenmerk_key_arr.length > 1) buttons.push({ icon: "fa-chevron-down", title: L("lcl_appendixes"), action: "toggleDropdown()" }); BLOCK_START("mldHistorie", (tracking?L("lcl_mld_behandeling"):L("lcl_mld_frame_notes")), { buttons: buttons }); // what info to show? determined by mld_merge_notes_and_tracking // 0 = meldingnotes // &1 = met meldingtracking (mits tracking) // &2 = met opdrachtnotes (voor fe alleen indien tevens opdrachttype.zichtbaarfe=1) // &4 = met opdrachttracking (voor fe alleen indien tevens opdrachttype.zichtbaarfe=1 en tracking) if (multipleBijlagenTypes) { // Create a dropDown div for the multiple bijlagen types Response.write(""); } sql = "SELECT n.mld_melding_note_aanmaak" + ", n.mld_melding_note_key" + ", pf.prs_perslid_key" + ", pf.prs_perslid_naam_friendly" + ", n.mld_melding_note_omschrijving" + ", mld_melding_note_flag" + ", NULL fac_srtnotificatie_code" + ", 1 regeltype" + ", null suffix" + " FROM mld_melding_note n, prs_v_perslid_fullnames_all pf" + " WHERE n.prs_perslid_key = pf.prs_perslid_key (+)" + " AND n.mld_melding_key = " + mld_key + (mfe.haveOnlyFErights? " AND mld_melding_note_flag = 1" : ""); var sqls = [sql]; if (S("mld_merge_notes_and_tracking")&1 && tracking) // meldingtracking info erbij? { var sql = "SELECT tr.fac_tracking_datum" + " , tr.fac_tracking_key" + " , tr.prs_perslid_key" + " , pf.prs_perslid_naam_friendly" + " , tr.fac_tracking_oms" + " , NULL mld_melding_note_flag" + " , str.fac_srtnotificatie_code" + " , 1 regeltype" + " , null suffix" + " FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf" + " WHERE tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key" + " AND tr.prs_perslid_key = pf.prs_perslid_key (+)" + " AND str.fac_srtnotificatie_code <> 'MLDNOT'" // beetje dubbelop + " AND tr.fac_tracking_refkey = " + mld_key + " AND str.fac_srtnotificatie_xmlnode IN ('melding')"; sqls.push(sql); } if (S("mld_merge_notes_and_tracking")&2) // opdrachtnotes erbij? { sql = "SELECT no.mld_opdr_note_aanmaak" + " , no.mld_opdr_note_key" + " , pf.prs_perslid_key" + " , pf.prs_perslid_naam_friendly" + " , no.mld_opdr_note_omschrijving" + " , DECODE(ty.mld_typeopdr_zichtbaarfe, 1, 1, 0) " + " , NULL" + " , 2 regeltype" + " , mld_opdr_bedrijfopdr_volgnr suffix" + " FROM mld_opdr_note no, prs_v_perslid_fullnames_all pf, mld_opdr o, mld_typeopdr ty" + " WHERE no.prs_perslid_key = pf.prs_perslid_key (+)" + " AND o.mld_opdr_key = no.mld_opdr_key" + " AND ty.mld_typeopdr_key = o.mld_typeopdr_key" + " AND no.mld_opdr_key IN (SELECT mld_opdr_key FROM mld_opdr WHERE mld_melding_key = " + mld_key + ")" + (mfe.haveOnlyFErights? " AND ty.mld_typeopdr_zichtbaarfe = 1" : ""); sqls.push(sql); } if (S("mld_merge_notes_and_tracking")&4 && tracking) // opdrachttracking info erbij? { var sql = "SELECT tr.fac_tracking_datum" + " , tr.fac_tracking_key" + " , tr.prs_perslid_key" + " , pf.prs_perslid_naam_friendly" + " , tr.fac_tracking_oms" + " , NULL mld_melding_note_flag" + " , str.fac_srtnotificatie_code" + " , 2 regeltype" + " , mld_opdr_bedrijfopdr_volgnr suffix" + " FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf, mld_opdr o, mld_typeopdr ty" + " WHERE tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key" + " AND o.mld_opdr_key = tr.fac_tracking_refkey" + " AND tr.prs_perslid_key = pf.prs_perslid_key (+)" + " AND ty.mld_typeopdr_key = o.mld_typeopdr_key" + " AND tr.fac_tracking_refkey IN (SELECT mld_opdr_key FROM mld_opdr WHERE mld_melding_key = " + mld_key + ") " + " AND str.fac_srtnotificatie_xmlnode IN ('opdracht')" + (mfe.haveOnlyFErights? " AND ty.mld_typeopdr_zichtbaarfe = 1" : ""); sqls.push(sql); } sql = "SELECT * FROM ("+ sqls.join(" UNION ") + ") ORDER BY 1" + ", 2"; // ook bij gelijktijdigheid chronologisch var oRs = Oracle.Execute(sql); var lasttime = null; var lastuser = null; while(!oRs.Eof) { var thisuser = oRs("prs_perslid_naam_friendly").Value; var suffix = oRs("suffix").Value; var prs_key = oRs("prs_perslid_key").Value; var thistime = new Date(oRs("mld_melding_note_aanmaak").Value); var timestr = toTimeString(thistime); var srtnoti = oRs("fac_srtnotificatie_code").Value; var note_oms = oRs("mld_melding_note_omschrijving").Value; var fullname = fnPerslidNaamFull(oRs); var last_note_key = oRs("mld_melding_note_key").Value; var note_zichtbaarFE = oRs("mld_melding_note_flag").value == 1; var cls_tr = " rt"+ oRs("regeltype").value; // 1=melding, 2=opdracht var isvanOpdracht = oRs("regeltype").value == 2; oRs.MoveNext(); var LastIsNote = oRs.Eof && !srtnoti; var LastIsSelfNote = LastIsNote && user.isCollega(prs_key); var clsself = ""; if (prs_key == user_key) clsself = ' mldhandlingself' // Bij user of dag switch altijd kopje. Ik zou graag systeemmeldingen niet als user-switch zien, // dus die bij het voorgaande kopje laten horen door die te skippen bij lastuser if (LastIsSelfNote && last_note_key == note_key) break; // uit de while-loop var dedatum = toDateString(thistime, false, true); if (lasttime == null || thistime.midnight() > lasttime.midnight()) Response.Write("