<%@ language = "javascript" %> <% /* $Revision$ $Id$ File: pda/orders_list.asp Description: Toont een beknopte opdrachtenlijst voor op de pda Parameters: Context: - Status optie a nog testen Note: Twee varianten: - opdrachten die aan mij toegekend zijn (ik ben de uitvoerder) - intern - als contactpersoon van een extern bedrijf - opdrachten die ik mag zien (gegroepeerd per uitvoerder) */ %> <% var qrc = getQParamInt("qrc", 0) != 0; var mld_key = getQParamInt("mld_key", -1); var grp_sel = getQParamUTF8("grp", ""); var own = getQParamInt("own", 0) == 1; var klus = getQParamInt("klus", 0) == 1; var disc_type = getQParamInt("grpby", 1); // 1 = Vakgroep (default), 2 = Behandelteam var deelsrtcont_key = getQParamInt("deelsrtcont_key", -1); // nieuwe melding vanuit een controletaak /* Self; -2: Opdrachten zonder actieve behandelaar 0/null: Alle opdrachten, ongeacht actieve behandelaar 1: Opdrachten waarbij ik de actieve behandelaar ben 2: -2 & 1 (Dus; Geen actieve behandelaar, of ik ben de actieve behandelaar) */ var self = getQParamInt("self", null); function getDistrictKey() { var loc_key = user.alg_locatie_key({withcurrent:true}); if (loc_key == -1) return -1; var sqlDis = "SELECT alg_district_key FROM alg_locatie WHERE alg_locatie_key = " + loc_key; var oRsDis = Oracle.Execute(sqlDis); var initDis = oRsDis(0).Value; oRsDis.Close(); return initDis; } // bepaal filterlevel voor mobiel. Filterlevel kan afwijken van werklocatie niveau var filterLevel = (S("mobile_alg_filterlevel") ? S("mobile_alg_filterlevel") : S("mobile_alg_level")); var verdieping_key = -1; var gebouw_key = -1; var locatie_key = -1; var district_key = -1; // cases zonder break om bovenliggende niveaus mee te pakken // Als filterlevel=A dan blijven alle keys op default -1 staan. switch(filterLevel) { case "V": verdieping_key = getQParamInt("verdieping_key" , user.alg_verdieping_key({withcurrent:true})); case "G": gebouw_key = getQParamInt("gebouw_key" , user.alg_gebouw_key({withcurrent:true})); case "L": locatie_key = getQParamInt("locatie_key" , user.alg_locatie_key({withcurrent:true})); case "D": district_key = getQParamInt("district_key" , getDistrictKey()); } // Wat zijn de criteria voor de orderslijst? // Standaard lopende meldingen (0,2,3,4,7) var urole = getQParamSafe("urole", "bo"); var params = { urole: urole }; params.disc_type = disc_type; params.flags = []; var checkboxParams = []; var hasParamFlag = false; for (flagkey=0; flagkey < S("mld_opdracht_flags"); flagkey++) { if (getQParam("flag" + flagkey, "off") == "on") { hasParamFlag = true; checkboxParams[flagkey] = "on"; params.flags.push(flagkey); } else { checkboxParams[flagkey] = "false"; } } if (!hasParamFlag) { for (flagkey=0; flagkey < S("mld_opdracht_flags"); flagkey++) { if (getQParam("flag" + flagkey, "on") == "off") { checkboxParams[flagkey] = "off"; } else { params.flags.push(flagkey); checkboxParams[flagkey] = "on"; } } } %>
<% FCLTMHeader.Generate({title: L("lcl_mobile_opdrachten")}); %>
<% // Filter var thisfilter = ""; var listmode = 0; var autfunction = []; var addAllowed = false; // Bepaal mijn hoedanigheid voor deze lijst; er is een logische hierarchy // 1. is er een mld_key bekend?, dan wil ik alleen de opdrachten bij die melding. if (mld_key > -1) { var sql = "SELECT sd.ins_srtdiscipline_prefix" + " FROM mld_melding m" + " , mld_stdmelding s" + " , mld_discipline md" + " , ins_srtdiscipline sd" + " WHERE m.mld_melding_key = " + mld_key + " AND s.mld_stdmelding_key = m.mld_stdmelding_key" + " AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key" + " AND md.ins_discipline_key = s.mld_ins_discipline_key"; var oRs = Oracle.Execute(sql); var meldingNr = oRs("ins_srtdiscipline_prefix").Value + mld_key; oRs.Close(); var this_mld = mld.func_enabled_melding(mld_key); addAllowed = this_mld.canAddOpdr; listmode = 4; } else { var exhandler = user.iamContact(); if (exhandler) { // a. ben ik een contactpersoon van een extern bedrijf? // Autorisatie (WEB_EXTORD: Dan mag ik opdrachten zien/afmelden waar ik volgens de WEB_EXTORD (ALG) autorisatie rechten op heb. listmode = 1; autfunction = ["WEB_EXTORD"]; // Op mobile een dag(en)overzicht tonen van opdrachten op basis van een from en een to datum, voor mij als contactpersoon van de uitvoerende. // Die datums zijn dan gebaseerd op de plandatum. var plandatefrom = getQParamDate("plandate_from", getQParamDate("plandate", null)); var plandateto = getQParamDate("plandate_to", plandatefrom); plandatefrom = plandatefrom || plandateto; // Nu zijn ze altijd allebei wel of allebei niet gedefinieerd } else { // b. heb ik dan opdrachtrechten binnen een scope, dat is ORDBOF of ORDBO2? Dan mag ik opdrachten binnen de scope zien. // ORDBOF is aanmaken, wijzigen en afmelden, maar aanmaken doet er niet toe // ORDBO2 is alleen afmelden. Voor de lijst is er geen verschil; ik interpreteer BOF zwaarder dan BO2 (..) // Ik wil voor de scope wel weten welke autorisatie geldig is authparams = user.checkAutorisation(["WEB_ORDBOF", "WEB_ORDBO2"], true); if (authparams) { autfunction = ["WEB_ORDBOF", "WEB_ORDBO2"]; listmode = 2; } __Log ('autfunction bepaald op '+ autfunction.join(",")); // Zo nee if (autfunction.length == 0 || urole == "fe") { // c. ben ik een interne uitvoerder van opdrachten? Dan mag ik de aan mij toegekende opdrachten zien. // Dat kan ik passief controleren: zijn er actieve opdrachten op mijn naam? listmode = 3; // De actieve controle is of ik MLDORD rechten heb. Dubbelop? Met MLDORD rechten mag je eigen opdrachten afmelden. authparams = user.checkAutorisation("WEB_MLDORD"); // Als je ook geen WEB_MLDORD rechten hebt, mag je verder niets meer. autfunction = ["WEB_MLDORD"]; } } } // Vooralsnog is dit altijd false, want dit overzicht toont alleen actieve opdrachten function canBeVerwerkt(oRs) { return oRs("mld_statusopdr_key").Value == 6 || oRs("mld_statusopdr_key").Value == 9; } // Wel, afhankelijk van mijn bepaalde rol kan ik mijn overzicht anders willen, // toegespitster op mijn behoefte (listmode): // 1. Alle opdrachten, met de naam van de contactpersoon erbij (ik of mijn collega, leeg als ik) // 2. Alle opdrachten per uitvoerder, kan ik makkelijk afmelden // 3. Al mijn opdrachten, mijn todolijst // 4. Alle opdracht van de meegegeven melding function grp_sel_listmode2(grp) { var x = " AND mu.naam = " + safe.quoted_sql(grp); return x; } function grp_sel_listmode3(grp) { var x = " AND ( (m.mld_alg_onroerendgoed_keys IS NOT NULL AND va.plaatsmelding = " + safe.quoted_sql(grp) + ")" + " OR (m.mld_alg_onroerendgoed_keys IS NULL AND l.alg_locatie_code = " + safe.quoted_sql(grp) + ")" + " )"; return x; } sql = "SELECT o.mld_opdr_key" + " , " + lcl.xsqla('d.ins_discipline_omschrijving', 'd.ins_discipline_key') + " , " + lcl.xsqla('std.mld_stdmelding_omschrijving','std.mld_stdmelding_key') + " , sd.ins_srtdiscipline_prefix || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht" + " , NVL(va.plaatsmelding, l.alg_locatie_code) plaatsmelding" + " , m.mld_melding_spoed" + " , o.mld_opdr_plandatum" + " , o.mld_opdr_datumbegin" + " , o.mld_opdr_einddatum" + " , o.mld_opdr_omschrijving" + " , o.mld_opdr_bedrijfopdr_volgnr" + " , o.mld_statusopdr_key" + " , (SELECT p.prs_perslid_naam_full FROM prs_v_perslid_fullnames_all p WHERE p.prs_perslid_key = o.prs_perslid_key) behandelaar" + " , " + S("prs_contactpers_string") + " contactpersoon" + " , mu.naam" + " , mu.type" + " , mu.intern" + " , CASE" + " WHEN o.mld_statusopdr_key = 8" + " THEN 1" + " ELSE 0" + " END actief" + " , COALESCE(o.mld_opdr_plandatum, o.mld_opdr_einddatum) einddatum" + " , o.mld_opdr_halted halted" + " , o.mld_opdr_flag" + " , o.mld_opdr_actiecode" + " , (SELECT LISTAGG( COALESCE (" + lcl.xsql("k.mld_kenmerk_omschrijving", "k.mld_kenmerk_key") + " ," + lcl.xsql("skm.mld_srtkenmerk_omschrijving", "skm.mld_srtkenmerk_key") + " ) || ':'|| CHR(160) || " + " CASE WHEN skm.mld_srtkenmerk_kenmerktype IN ('R', 'r', 'S')" + " THEN flx.getdomeinwaarde (skm.fac_kenmerkdomein_key, km.mld_kenmerkopdr_waarde)" + " WHEN ( skm.mld_srtkenmerk_kenmerktype = 'N'" + " AND skm.mld_srtkenmerk_lengte = 1" + " AND skm.mld_srtkenmerk_nmin = 0" + " AND skm.mld_srtkenmerk_nmax = 1" + " AND (skm.mld_srtkenmerk_dec = 0 OR skm.mld_srtkenmerk_dec IS NULL)" + " )" + " THEN DECODE (km.mld_kenmerkopdr_waarde," + " 0, "+safe.qL("lcl_check_0")+", " + " 1, "+safe.qL("lcl_check_1")+", " + " km.mld_kenmerkopdr_waarde)" + " ELSE km.mld_kenmerkopdr_waarde" + " END" + " , CHR(13)" + " )" + " WITHIN GROUP (ORDER BY mld_kenmerk_volgnummer)" + " FROM mld_srtkenmerk skm, mld_kenmerk k, mld_kenmerkopdr km" + " WHERE km.mld_opdr_key = o.mld_opdr_key" + " AND k.mld_kenmerk_key = km.mld_kenmerk_key" + " AND BITAND(k.mld_kenmerk_inlijst,1) = 1" + " AND BITAND(skm.mld_srtkenmerk_systeem,4) = 0" // niet als vertrouwelijk + " AND skm.mld_srtkenmerk_key = k.mld_srtkenmerk_key" + " AND skm.mld_srtkenmerk_verwijder IS NULL" + " AND k.mld_kenmerk_verwijder IS NULL" + " AND km.mld_kenmerkopdr_verwijder IS NULL" + " ) flex " + " FROM mld_opdr o" + " , mld_melding m" + " , mld_stdmelding std" + " , ins_tab_discipline d" + " , ins_srtdiscipline sd" + " , (SELECT v.alg_onroerendgoed_keys" + " , v.alg_gebouw_key" + " , v.alg_verdieping_key" + " , v.alg_ruimte_key" + " , " + (listmode == 1 ? "l.alg_locatie_code||'-'||" : "") /* voor uitvoerders is locatie handig want currentlocatie doet dan niet mee */ + " DECODE(v.alg_plaatsaanduiding, '', ' ('||l.alg_locatie_omschrijving||')', v.alg_plaatsaanduiding || DECODE(v.alg_plaatsomschrijving, '','' ,' (' || v.alg_plaatsomschrijving || ')'))" + " plaatsmelding" + " FROM alg_v_allonrgoed_gegevens v, alg_locatie l" + " WHERE l.alg_locatie_key = v.alg_locatie_key" + ") va" + " , alg_locatie l" + " , alg_district di" + " , mld_v_uitvoerende mu" + " , prs_contactpersoon cp" + " WHERE o.mld_melding_key = m.mld_melding_key (+)" + " AND m.mld_stdmelding_key = std.mld_stdmelding_key (+)" + " AND std.mld_ins_discipline_key = d.ins_discipline_key (+)" + " AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key (+)" + " AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key" // type b of p toch nog ergens doen@? + " AND cp.prs_contactpersoon_key(+) = o.prs_contactpersoon_key" + (grp_sel=="" ? "" : (listmode == 2 ? grp_sel_listmode2(grp_sel) // listmode=2 : grp_sel_listmode3(grp_sel) // listmode=3 ) ) + " AND o.mld_statusopdr_key IN (4, 5, 8) " + " AND m.mld_alg_onroerendgoed_keys = va.alg_onroerendgoed_keys(+)" // De opdracht heeft zelf ook een plaats of nie? + " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)" + " AND l.alg_district_key = di.alg_district_key(+)"; var filterNull = false; for (var i=0; i< params.flags.length; i++) { if (params.flags[i] === 0) { filterNull = true; } } if(params.flags.length > 0) { sql += " AND (o.mld_opdr_flag IN (" + params.flags.join(",") + ")"; if (filterNull) { sql += " or o.mld_opdr_flag is null"; } sql += ")"; } if (listmode != 4 && listmode !=1) { // Verrassing: we tonen een niveau hoger dan dat we weten waar we zitten // zo heeft de uitvoerder meer overzicht. We weten dat de hogere keys goed gevuld zijn. if (verdieping_key > -1) sql += " AND (l.alg_locatie_key IS NULL OR va.alg_gebouw_key = " + gebouw_key + ")"; else if (gebouw_key > -1) sql += " AND (l.alg_locatie_key IS NULL OR l.alg_locatie_key = " + locatie_key + ")"; //else if (locatie_key > -1) } if (listmode == 1) { var plandate_where = ""; var oneday = false; if (plandatefrom || plandateto) { var oneday = plandatefrom.midnight().getTime() == plandateto.midnight().getTime(); plandate_where = " AND o.mld_opdr_plandatum BETWEEN " + plandatefrom.beginToSQL() + " AND " + plandateto.endToSQL(); } sql += " AND EXISTS (SELECT 'X' " // Ben ik contactpersoon van het uitvoerende externe bedrijf. + " FROM prs_contactpersoon" + " WHERE prs_perslid_key = " + user_key + " AND prs_contactpersoon_verwijder is null " + " AND prs_bedrijf_key = o.mld_uitvoerende_keys)" + plandate_where; } if (listmode == 3) { // Eerst controleren of ik misschien een plaatsvervanger ben. Ook als plaatsvervanger heb ik "WEB_MLDORD" rechten (listmode 3) var prsKeys = user.collegakeylist(); // Zijn er actieve opdrachten op mijn naam of als plaatsvervanger op mijn bordje? sql += " AND o.mld_uitvoerende_keys IN (" + prsKeys + ")"; // is scherper dan evt voorgaande } if (listmode == 4) sql += " AND m.mld_melding_key = " + mld_key; if (own) sql += " AND o.prs_perslid_key = " + user_key; if (klus) sql += " AND o.prs_perslid_key IS NULL" + " AND o.mld_uitvoerende_keys = (SELECT a.prs_bedrijf_key" + " FROM prs_perslid p" + " , prs_v_aanwezigafdeling a" + " WHERE p.prs_afdeling_key = a.prs_afdeling_key" + " AND p.prs_perslid_key = " + user_key + ")"; if (self) { // Self heeft betrekking op de actieve behandelaar, dat kan zowel de contactpersoon als de behandelaar zijn // -2: Opdrachten zonder actieve behandelaar // 0/null: Alle opdrachten, ongeacht actieve behandelaar // 1: Opdrachten waarbij ik de actieve behandelaar ben // 2: -2 & 1 (Dus; Geen actieve behandelaar, of ik ben de actieve behandelaar) switch (self) { case -2: sql += " AND COALESCE(o.prs_contactpersoon_key, o.prs_perslid_key) IS NULL"; break; case 1: sql += " AND ( cp.prs_perslid_key = " + user_key + " OR o.prs_perslid_key = " + user_key + ")"; break; case 2: sql += " AND ( COALESCE(o.prs_contactpersoon_key, o.prs_perslid_key) IS NULL" + " OR cp.prs_perslid_key = " + user_key + " OR o.prs_perslid_key = " + user_key + ")"; break; } } // Een afmelder (ORDBO2 of EXTORD) mag externe opdrachten zien/afmelden onder bepaalde voorwaarden: // EXTORD: Hij mag opdrachten zien/afmelden van externe bedrijven waar hij contactpersoon van is, // als hij ALG read/write rechten (WEB_EXTORD) heeft op de plaats van de bijbehorende melding van de opdracht. // ORDBO2: Setting mld_typeopdr_afmelden_extern: Afmelder (ORDBO2) mag externe opdrachten (0=Niet zien, 1=Zien, 2=Afmelden) // Als hij een interne (decentraal/intern) uitvoerder is mag hij de externe opdrachten niet zien/afmelden als mld_typeopdr_afmelden_extern==0/(0 of 1). // De voorwaarde en setting geldt niet als: // 1) de opdracht toegekend is aan een (intern) persoon (P). Dan mag hij alleen eigen opdrachten zien. // 2) de opdracht toegekend is aan het eigen (intern) bedrijf (BI). Opdrachten van het eigen bedrijf mag hij alleen zien. var sql_ORDBO2 = " AND ((SELECT mto.mld_typeopdr_afmelden_extern" + " FROM mld_typeopdr mto" + " WHERE mto.mld_typeopdr_key = o.mld_typeopdr_key) IN (1, 2)" + " OR EXISTS (SELECT 'X' " // Toegekend aan een intern persoon (P). + " FROM prs_perslid" + " WHERE prs_perslid_key = o.mld_uitvoerende_keys)" + " OR EXISTS (SELECT 'X'" // Toegekend aan het EIGEN interne bedrijf (B). + " FROM prs_bedrijf b" + " , prs_perslid p" + " , prs_v_afdeling a" + " WHERE b.prs_bedrijf_key = a.prs_bedrijf_key" + " AND p.prs_afdeling_key = a.prs_afdeling_key" + " AND b.prs_bedrijf_intern = 1" + " AND b.prs_bedrijf_key = o.mld_uitvoerende_keys" + " AND p.prs_perslid_key = " + user_key + ")" + " )"; var sqlA = ""; if (listmode == 4) sqlA = sql; else { // pautfunction is nu altijd een Array met webfuncties for (var ii = 0; ii < autfunction.length; ii++) { // Voorwaarden die meegenomen moeten worden voor de verschillende listmodes (1 t/m 3): // Als listmode == 1: Voorwaarde: 1) Ik ben contactpersoon van externe bedrijf (is al toegevoegd voor listmode == 1) en // 2) 3d WEB_EXTORD(ALG)/WEB_ORDBO2 autorisatie // Als listmode == 2: Voorwaarde: 1) Voor a) WEB_ORDBO2: 3d WEB_ORDBO2 autorisatie + sql_ORDBO2 of // b) Rest: 3d WEB_XXXXXX autorisatie // Als listmode == 3: Voorwaarde: 3d WEB_XXXXXX autorisatie. if (listmode == 2 && autfunction[ii] == "WEB_ORDBO2") var sql3d = sql + sql_ORDBO2; else var sql3d = sql; sqlA = (ii > 0? sqlA + " UNION " : "") + discxalg3d(sql3d, "o.mld_opdr_discipline_key", "di.alg_regio_key", "l.alg_district_key", "l.alg_locatie_key", "va.alg_gebouw_key", "va.alg_verdieping_key", "va.alg_ruimte_key", autfunction[ii], '' ); } } // Bij groepslijst tonen (orders_list.asp) sorteren op naam of stdmelding omschrijving sql = "SELECT * FROM (" + sqlA + ") ORDER BY " + ((grp_sel == "" && listmode == 2) ? " naam, mld_opdr_datumbegin" : (listmode == 1 && plandatefrom ? " mld_opdr_plandatum," : "") + " actief DESC, halted, einddatum, opdracht"); function fncolLink(oRs) { var url = ""; if (grp_sel == "") { if (listmode == 1 || listmode == 4 || listmode == 3) { url = "../pda/order.asp?opdr_key=" + oRs("mld_opdr_key").Value; } else { var col = (listmode == 2 ? "naam" : ""); if (col != "") url = "../pda/orders_list.asp?grp=" + safe.urlUTF8(oRs(col).Value) + "&urole=" + urole + (own? "&own=1" : "") + (klus? "&klus=1" : ""); for (flagkey=0; flagkey < S("mld_opdracht_flags"); flagkey++) { url += ((getQParam("flag" + flagkey, "off") == "on") ? "&flag" + flagkey + "=on" : ""); } } }else{ url = "../pda/order.asp?opdr_key=" + oRs("mld_opdr_key").Value + "&urole=" + urole; } return url; }; function fncolaside(oRs) { // PF: vind de status in zo'n ballon eigenlijk niet mooi return mld.getextendedopdrstatustext(oRs("mld_statusopdr_key").Value, oRs("mld_opdr_key").Value); } function fncolSubHeader(oRs) { // Ik wil zo goed mogelijk de actieve behandelaar tonen: wie is er actief mee bezig? // Sinds DJIN#35660 zijn daar wat smaken in: // extern bedrijf (en behandelaar is de interne BO-contactpersoon) // extern bedrijf + contactpersoon (en behandelaar is de interne BO-contactpersoon) // intern bedrijf // intern bedrijf + behandelaar var bedrijf = oRs("naam").Value; var behandelaar = oRs("behandelaar").Value; var contactpersoon = oRs("contactpersoon").Value; var intern = oRs("intern").Value == 1; var PBtype = oRs("type").Value; var safeuitv = ""; var flagkey = oRs("mld_opdr_flag").Value||0; var actiecode = S("mld_opdr_actiecode") > 0 ? oRs("mld_opdr_actiecode").Value : 0; if (contactpersoon != null) safeuitv = "" + I("fa-user") + " " + safe.html(contactpersoon); else if (listmode !=1 && bedrijf != null && !intern) safeuitv = "" + I("fa-industry", { fastyle: "far" }) + " " + safe.html(bedrijf); else if (behandelaar != null) safeuitv = "" + I("fa-user", { fastyle: "far" }) + " " + safe.html(behandelaar); var subheader = "
" + (actiecode & 128 ? "" + I("fa-bell", { fastyle: "far" }) + " " + L("lcl_mld_actiecodeATT") + "
" : "") + (actiecode & 4 ? "" + I("fa-comment-smile fa-flip-horizontal", { fastyle: "far" }) + " " + L("lcl_mld_actiecodeUITV") + "
" : "") + (oRs("plaatsmelding").Value? "" + I("fa-map-marker", { fastyle: "far" }) + " "+safe.html(oRs("plaatsmelding").Value) + "
" : "") + (safeuitv != "" ? safeuitv + "
" : "") + "" + I("fa-clock", { fastyle: "far" }) + " " + toDateTimeString(oRs("einddatum").Value, false, false, true, true) + (flagkey ? "
" + I("fa-fclt-flag", { fastyle: "far" }) + " " + L("lcl_opdr_flag" + flagkey) : "") + "
" + "
" + safe.html(shorttxt(oRs("mld_opdr_omschrijving").Value, S("rs_mobile_maxchar"))) + "
"; var flexkenmerken = LIST_KENMERK_COL(oRs, {kmcol: "flex"}); return subheader + flexkenmerken; }; // Om wat explicieter te zijn in wat we zien specifieke titels per mode var listtitle = L("lcl_mobile_opdrachten"); switch (listmode) { case 1: if (plandatefrom) { var datefrom_str = toDateString(plandatefrom, true, true).toLowerCase(); if (oneday) { listtitle = "Planning van {0}".format(datefrom_str); } else { listtitle = "Planning van {0} t/m {1}".format(datefrom_str, toDateString(plandateto, true, true).toLowerCase()); } } else { listtitle = L("lcl_mobile_opdrachten1"); } break; case 2: listtitle = L("lcl_mobile_opdrachten2") + " " + CurrentPositionMinus1; break; /* is niveau hoger */ case 3: listtitle = L("lcl_mobile_opdrachten3") + " " + CurrentPositionMinus1; break; /* is niveau hoger */ case 4: listtitle = L("lcl_mobile_opdrachten") + " " + L("lcl_mobile_objbijmelding") + " " + meldingNr; break; } var addaction = (addAllowed? "../pda/order.asp?mld_key=" + mld_key : ""); PAGE_START({datacache:false}); %>
<% FILTER_PANEL_START(); %> <% if (S("mld_opdracht_flags") > 1) { CONTROLGROUP_START(); for (flagkey=0; flagkey < S("mld_opdracht_flags"); flagkey++) { var label_html = '' + I("fa-fclt-flag" + (flagkey == 0 ? "0" : "")) + ' ' + L("lcl_opdr_flag" + flagkey) + '' + ''; CHB_FIELD("flag" + flagkey, label_html, checkboxParams[flagkey] == "on", { "inline": true }); } CONTROLGROUP_END(); } CONTROLGROUP_START(); BUTTON(L("lcl_mobile_panel_filter"), { id: "search_submit", click: "orders_filter()", icon: "fa-fclt-refresh" }); CONTROLGROUP_END(); %> <% FILTER_PANEL_END(); var multiactions = []; if (user.has("WEB_ORDBOF") || user.has("WEB_ORDBO2")) { multiactions.push({ icon: "fa-flag-checkered", action: "orders_close", caption: L("lcl_close") }); } if (S("mld_opdr_archive_by_gui")) { var authparamsORDAFR = user.checkAutorisation("WEB_ORDAFR", true); var authparamsORDBOF = user.checkAutorisation("WEB_ORDBOF", true); var canWriteORDAFR = authparamsORDAFR && authparamsORDAFR.PRSwritelevel < 9 && authparamsORDAFR.ALGwritelevel < 9; var canReadORDBOF = authparamsORDBOF && authparamsORDBOF.PRSreadlevel < 9 && authparamsORDBOF.ALGreadlevel < 9; if (canWriteORDAFR && canReadORDBOF) { multiactions.push({ icon: "fa-archive", action: "orders_verwerk", caption: L("lcl_mld_opdr_verwerk"), fnCheckIfAny: canBeVerwerkt }); } } var isGrouped = (grp_sel == "" && listmode == 2); HEADER({ title: listtitle, filterPanel: S("mld_opdracht_flags") > 0, addaction: addaction, multiactions: !isGrouped && multiactions.length }); CONTENT_START(); var rst = new ResultsetTable({ keyColumn: "mld_opdr_key", sql: sql, ID: "orderstable", linkColumn: fncolLink, groupColumn: (listmode == 2 ? "naam" : ""), groupSelect: grp_sel, headerColumn: "opdracht", detailColumn: "mld_stdmelding_omschrijving", subheaderColumn: fncolSubHeader, asideColumn: fncolaside, multiactions: multiactions, showAll: true }); var cnt = rst.processResultset(); CONTENT_END(); FOOTER({}); PAGE_END(); PDA_PAGE_END(); %>
<% ASPPAGE_END(); %>