From 392e56511f2b2d98c976f2cea1d6292ad4df3d58 Mon Sep 17 00:00:00 2001 From: Maykel Geerdink Date: Thu, 4 May 2017 13:48:31 +0000 Subject: [PATCH] ARAI#38181: Opdracht-uitvoeringsconsole. svn path=/Website/trunk/; revision=33689 --- APPL/FAC/fac_edit_template.asp | 2 +- APPL/MLD/mld.css | 182 ++++++ APPL/MLD/mld.inc | 249 ++++--- APPL/MLD/opdr_handlerchange.asp | 25 +- APPL/MLD/opdr_plan.inc | 1084 +++++++++++++++---------------- 5 files changed, 877 insertions(+), 665 deletions(-) create mode 100644 APPL/MLD/mld.css diff --git a/APPL/FAC/fac_edit_template.asp b/APPL/FAC/fac_edit_template.asp index 876aff9d21..5bc47bcd8b 100644 --- a/APPL/FAC/fac_edit_template.asp +++ b/APPL/FAC/fac_edit_template.asp @@ -123,7 +123,7 @@ function prettyJson(j) diff --git a/APPL/MLD/mld.css b/APPL/MLD/mld.css new file mode 100644 index 0000000000..3c0d874a02 --- /dev/null +++ b/APPL/MLD/mld.css @@ -0,0 +1,182 @@ +/* + * $Revision$ + * $Id$ + */ + + +/* CSS code voor opdrachten planbord opdr_plan.inc. */ +#pbMaxHistoryB, #pbMaxHistoryE { + clear: both; + color: blue; + background-color: white; + font-weight: bold; + padding: 1px 8px 1px 1px; + margin: 0; + line-height: 15px; + font-size: 1em; +} + +#pbMaxHistoryB A, #pbMaxHistoryE A { + color: red; + text-decoration: none; +} +.fcltcardbox { + position: relative; + width: 200px; + /*height: 300px;*/ + padding: 0px; + background: #EFEFEF; + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + border-radius: 10px; + border: #EFEFEF solid 10px; + float: left; + margin-left: 5px; + margin-top: 5px; +} +.fcltcardboxhead { + background-color: #EFEFEF; + color: #000000; + font-weight: bold; + font-size: 1.1em; + height: 25px; +} +.fcltcard { + position: relative; + width: 200px; + /*height: 300px;*/ + background-color: #FFFFFF; + background: #FFFFFF; + border: 1px solid; + float: left; + color: #000000; + /*margin-left: 5px;*/ + margin-top: 5px; +} +.fcltcard:hover { + color: #00a; +} +html#planhtml { + background-color: #D9F4FF; +} +.sortable .fcltcardtab { + cursor: move; +} +.fcltcardtab td { + padding-left: 4px; +} +.fcltcardtab td.profile { + padding: 2px 0 0 2px; +} +.cardbeheerder { + background-color: #559CB9; + min-height: 72px; +} +.cardbeheerder.uitvbe { + background-color: #C99CA8; /* Bedrijf Extern. */ +} +.cardbeheerder.uitvbi { + background-color: #55B99C; /* Bedrijf Intern. */ +} +.cardbeheerder.uitvpi { + background-color: #559CB9; /* Persoon Intern. */ +} +.cardbeheerder.uitvnt { + background-color: #8F6329; /* Niet Toegewezen. CD4A48 5ED75F*/ +} +.cardbeheerder.goto { + background-color: #DAA520; +} +.cardbeheerder .profile img.profile { + max-height: 64px; +} +.cardname { + font-weight: bold; + color: #fff; + line-height: 1.2em; +} +.cardsubname { + color: #eee; + line-height: 1em; +} +.carddate { + font-size: 0.8em; + color: #999; + padding-left: 6px; +} +.cardplace { + font-size: 0.8em; + color: #999; +} +.cardopdrtxt { + font-style: italic; + font-size: 0.8em; + line-height: 1.05em; + color: #222; +} +.cardorders { +} +div.latecard { + background-color: #FFF0F0; + color: #9C0006; + border-color: #9C0006; +} +div.pholder { + background-color: #DAA520; /* Voor het testen pholder zichtbaar (show()) en rood (#DA0000) maken. Dan is de clone kaart goed zichtbaar. */ +} +div.cardmoved { + background-color: #AEE9FF; +} +div.cardnotmoved { + background-color: #E35931; /* ED4429 */ +} +.ui-sortable-helper { + background-color: #FFDC23; +} +div.selectedcard { + background-color: #DAA520; +} +div.disable-sort-item, span.disable-sort-item { + background-color: #F5F5F5; + /* Maak alle tekst unselectable */ + -webkit-touch-callout: none; /* iOS Safari */ + -webkit-user-select: none; /* Safari */ + -khtml-user-select: none; /* Konqueror HTML */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* Internet Explorer/Edge */ + user-select: none; /* Non-prefixed version, currently + supported by Chrome and Opera */ +} +.cardopdrnochange { + /*font-size: 1em; */ + /*vertical-align: top; */ + /*margin-top: 3px; */ + color: #CC0000; +} +div.activecard { + background-color: #FFFA7A; /*#E8FFE8;*/ + border-color: #333; +} +div.activecard.halt { + background-color: #FFCA7B; /*#E8FFE8;*/ + border-color: #333; +} +/* div.activecard.resume { + background-color: #FFE57A; / *#E8FFE8;* / + border-color: #333; +} */ +div.legendaright { + float: right; + padding-left: 8px; + padding-right: 8px; +} +div.legendaleft { + float: left; +} +.placeholderclass { + background: red !important; + /*visibility: visible; */ + display:none; + /*width: inherited; */ + /*height:inherited; */ +} diff --git a/APPL/MLD/mld.inc b/APPL/MLD/mld.inc index f08ebcb45c..1f3d390539 100644 --- a/APPL/MLD/mld.inc +++ b/APPL/MLD/mld.inc @@ -303,15 +303,11 @@ mld = {setmeldingstatus: getFirstApprover: function (mld_info, mld_opdr) { - //var mld_opdr = mld.mld_opdr_info(opdr_key); - //var mld_info = mld.mld_melding_info(mld_opdr.mld_key); - // Bepalen eerste persoon om te fiatteren. var approver_key = -1; var prsname = ""; var pkey = -1; var for_approval = false; - //var mld_info = mld.mld_melding_info(mld_opdr.mld_key); // Als de kostenplaats bij de opdracht overruled is dan wordt altijd tegen het profiel van de BO-medewerker getest. if (mld_info.mld_kk == 1 && mld_info.kostenpl_key == mld_opdr.kp_key) pkey = mld_info.melder_key; // Melder van de melding. @@ -653,16 +649,13 @@ mld = {setmeldingstatus: + " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key" + " AND o.mld_typeopdr_key = top.mld_typeopdr_key" + " AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key" - + " AND o.prs_perslid_key = " + (pprs_key? pprs_key : "(SELECT o2.prs_perslid_key FROM mld_opdr o2 WHERE o2.mld_opdr_key = " + popdr_key + ")") - + " AND o.mld_uitvoerende_keys = " + (puitv_key? puitv_key : "(SELECT o2.mld_uitvoerende_keys FROM mld_opdr o2 WHERE o2.mld_opdr_key = " + popdr_key + ")") + + " AND o.prs_perslid_key = " + (pprs_key > 0? pprs_key : "(SELECT o2.prs_perslid_key FROM mld_opdr o2 WHERE o2.mld_opdr_key = " + popdr_key + ")") + + " AND o.mld_uitvoerende_keys = " + (puitv_key > 0? puitv_key : "(SELECT o2.mld_uitvoerende_keys FROM mld_opdr o2 WHERE o2.mld_opdr_key = " + popdr_key + ")") + " AND o.mld_statusopdr_key = 8" // Alleen Actieve (Status Geaccepteerd(8)) opdrachten. + " AND top.mld_typeopdr_sequential = 1" // Alleen opdrachten die sequentieel uitgevoerd moeten worden. + (mode == "A" - ? " AND (fac.gettrackingdate('ORDHLT', o.mld_opdr_key) IS NULL" // Alleen geaccepteerde(8) en hervatte(82) opdrachten. - + " OR (fac.gettrackingdate('ORDRSM', o.mld_opdr_key) IS NOT NULL AND" - + " fac.gettrackingdate('ORDHLT', o.mld_opdr_key) < fac.gettrackingdate('ORDRSM', o.mld_opdr_key)))" - : " AND fac.gettrackingdate('ORDHLT', o.mld_opdr_key) IS NOT NULL" - + " AND (fac.gettrackingdate('ORDRSM', o.mld_opdr_key) IS NULL OR fac.gettrackingdate('ORDHLT', o.mld_opdr_key) > fac.gettrackingdate('ORDRSM', o.mld_opdr_key))") + ? " AND o.mld_opdr_halted = 0" + : " AND o.mld_opdr_halted = 1") + " AND mu.intern = 1" // Alleen interne uitvoerders. + " AND mld_opdr_key != " + popdr_key; var oRs = Oracle.Execute(sql); @@ -2611,13 +2604,13 @@ mld = {setmeldingstatus: + " , fac_faq_datum DESC" + " , fac_faq_question"; var oRs = Oracle.Execute(sql); + result.popup_faq = false; while (!oRs.EOF) { - result.faq_popup = false; var displaymode = oRs("fac_faq_displaymode").Value; if (displaymode == 0) // Auto { - if ( ((S("faq_kennisbank_popup") & 1) && canFAQUSEread) // Voor FE + if ( ((S("faq_kennisbank_popup") & 1) && canFAQUSEread) // Voor FE || ((S("faq_kennisbank_popup") & 2) && canFAQFOFread)) // Voor FO result.popup_faq = true } @@ -2648,7 +2641,93 @@ mld = {setmeldingstatus: return result; }, + alg_faq_info: + function _alg_faq(loc_key, alg_key) { + if (!loc_key || loc_key == -1) return; // Minimal requirement + var filtWHERE = " WHERE af.alg_locatie_key = " + loc_key + + " AND af.alg_onroerendgoed_keys"; + if (alg_key && alg_key != -1) + { + var algKeys = "SELECT COALESCE(alg_ruimte_key, -1) rk," + + " COALESCE(alg_verdieping_key, -1) vk," + + " COALESCE(alg_gebouw_key, -1) gk," + + " COALESCE(alg_terreinsector_key, -1) tk" + + " FROM alg_v_allonroerendgoed" + + " WHERE alg_onroerendgoed_keys = " + alg_key; + + var keysoRs = Oracle.Execute(algKeys); + var alg_key_arr = []; + alg_key_arr.push(keysoRs("rk").Value); + alg_key_arr.push(keysoRs("vk").Value); + alg_key_arr.push(keysoRs("gk").Value); + alg_key_arr.push(keysoRs("tk").Value); + keysoRs.Close(); + filtWHERE += " IN (" + alg_key_arr + ")"; + } + else + filtWHERE += " IS NULL"; + + var canFAQUSEread = user.checkAutorisation("WEB_FAQUSE", true); + var canFAQFOFread = user.checkAutorisation("WEB_FAQFOF", true); + var faq_bits = 0; + if (canFAQUSEread) + faq_bits += 1; + if (canFAQFOFread) + faq_bits += 2; + + var sql = "SELECT ff.fac_faq_key, " + + " fac_faq_question, " + + " fac_faq_answer, " + + " fac_faq_url, " + + " fac_faq_level, " + + " fac_faq_displaymode" + + " FROM fac_faq ff" + + " , alg_algfaq af" + + filtWHERE + + " AND ff.fac_faq_key = af.fac_faq_key" + + " AND BITAND(fac_faq_level," + faq_bits + ") <> 0" + + " AND fac_faq_datum < SYSDATE" + + " AND (fac_faq_lang = " + safe.quoted_sql(user_lang) + " OR fac_faq_lang IS NULL)" + + " ORDER BY fac_faq_rank DESC NULLS LAST" + + " , fac_faq_datum DESC" + + " , fac_faq_question"; + var oRs = Oracle.Execute(sql); + var result = { fixed_faq: [], popup_faq: false}; + while (!oRs.EOF) + { + var displaymode = oRs("fac_faq_displaymode").Value; + if (displaymode == 0) // Auto + { + if ( ((S("faq_kennisbank_popup") & 1) && canFAQUSEread) // Voor FE + || ((S("faq_kennisbank_popup") & 2) && canFAQFOFread)) // Voor FO + result.popup_faq = true + } + else + { + var data = { question: oRs("fac_faq_question").Value, + answer: safe.fclthtml(oRs("fac_faq_answer").Value), + displaymode: oRs("fac_faq_displaymode").Value + }; + var fac_url = oRs("fac_faq_url").value; + if (fac_url) + { + var arr = fac_url.split("|"); + var hurl = arr[0]; + data.hlnk = arr.length>1?arr[1]:hurl; + + if (hurl.slice(0,4) == "http") // extern + data.hurl = hurl; + else // in cust subdir + data.hurl = custpath + "/" + hurl; + } + result.fixed_faq.push(data); + } + oRs.MoveNext(); + } + oRs.Close(); + return result; + }, func_enabled_mld: // Heb ik als FO, BO, of FE, enige write rechten voor een discipline binnen de meegekregen discipline string function _func_enabled_mld(pkey, ptype) { // is pkey een srtdiscipline of discipline @@ -3137,8 +3216,7 @@ mld = {setmeldingstatus: + " , fac.gettrackinguserkey('ORDFOK', " + pmld_opdr_key + ") fiat_trackinguser_key" + " , fac.gettrackingdate('ORDFIA', o.mld_opdr_key) trackdateFIA" + " , fac.gettrackingdate('ORDFOK', o.mld_opdr_key) trackdateFOK" - + " , fac.gettrackingdate('ORDHLT', o.mld_opdr_key) trackdateHLT" - + " , fac.gettrackingdate('ORDRSM', o.mld_opdr_key) trackdateRSM" + + " , o.mld_opdr_halted" + " , o.mld_opdr_kosten" + " , mto.mld_typeopdr_zichtbaarfe" + " , o.mld_opdr_teverzenden" @@ -3208,8 +3286,7 @@ mld = {setmeldingstatus: opdr_status == 3 && // Opdracht staat "Ter fiattering" moRs("trackdateFIA").Value != null && moRs("trackdateFOK").Value != null && // Er is al gefiatteerd moRs("trackdateFIA").Value < moRs("trackdateFOK").Value; // De eerste fiatteur heeft opnieuw gefiatteerd. - var trackdateHLT = moRs("trackdateHLT").Value != null? new Date(moRs("trackdateHLT").Value) : null; - var trackdateRSM = moRs("trackdateRSM").Value != null? new Date(moRs("trackdateRSM").Value) : null; + var halted = moRs("mld_opdr_halted").Value == 1; var typehas_cost = moRs("mld_typeopdr_kosten").Value == 1; var decentraal = moRs("mld_typeopdr_decentraal").Value; var isofferte = moRs("mld_typeopdr_isofferte").Value == 1; @@ -3412,6 +3489,9 @@ mld = {setmeldingstatus: var myBO2FieldChange = (myBO2Change && !mresult.iamBedrijfContact); + // Voor de ORDBO2-er moet de uitvoerende wel die van mijn interne bedrijf zijn. + var myBO2Change = myBO2Change && (uitv_key == user.afdeling().prs_bedrijf_key()); + __Log("myBO2Change: " + myBO2Change); switch (opdr_status) @@ -3500,8 +3580,8 @@ mld = {setmeldingstatus: (mresult.canWrite("WEB_ORDBO2") && myBO2Change) || (mresult.canWrite("WEB_MLDORD") && user.isCollega(uitv_key))) && !is_planned_action; - mresult.canOnderbreken = mresult.canCloseRights && opdr_status == 8 && (trackdateHLT == null || (trackdateRSM != null && trackdateHLT < trackdateRSM)); - mresult.canHervatten = mresult.canCloseRights && opdr_status == 8 && trackdateHLT != null && (trackdateRSM == null || trackdateHLT > trackdateRSM); + mresult.canOnderbreken = mresult.canCloseRights && opdr_status == 8 && !halted; + mresult.canHervatten = mresult.canCloseRights && opdr_status == 8 && halted; mresult.canClose = mresult.canCloseRights && !mresult.canHervatten; mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond); mresult.canVeldChange = (mresult.canWrite("WEB_ORDBOF") || @@ -4534,6 +4614,7 @@ mld = {setmeldingstatus: var opdr_key = params.opdr_key; // opdracht nummer is voor de gebruiker hetzelfde als mld_key var intopdr_key = params.intopdr_key; // de technische echte mld_opdr_key var behandel_key = params.behandel_key; + var beh_key_arr = params.beh_key_arr; // Array met keys (e.g. [3, 4, 5]) var srtdisc_key = params.srtdisc_key; var searchtekst = params.searchtekst; var reg_key = params.reg_key; @@ -4583,51 +4664,6 @@ mld = {setmeldingstatus: var mldopdrstrej = params.mldopdrstrej; var mldopdrstafm = params.mldopdrstafm; var mldopdrstver = params.mldopdrstver; - //var justClose = params.justClose; - // close_only is vervangen door (pautfunction == "WEB_ORDBO2"): Als je die rechten hebt mag je ook afmelden - //var mldstpen = params.mldstpen; - //var mldstnew = params.mldstnew; - //var mldsting = params.mldsting; - //var mldstacc = params.mldstacc; - //var mldstuit = params.mldstuit; - //var mldstrej = params.mldstrej; - //var mldstafm = params.mldstafm; - //var mldstver = params.mldstver; - //var mldnieto = params.mldnieto; - //var mldopdrstrej = params.mldopdrstrej; - //var mldopdrstnak = params.mldopdrstnak; - //var mldopdrsttfi = params.mldopdrsttfi; - //var mldopdrstfia = params.mldopdrstfia; - //var mldopdrstuit = params.mldopdrstuit; - //var mldopdrstafm = params.mldopdrstafm; - //var mldopdrstver = params.mldopdrstver; - //var mldopdrstacp = params.mldopdrstacp; - //var mldopdrstafr = params.mldopdrstafr; - //var mldopdrstgoe = params.mldopdrstgoe; - - //var showstatus = ""; - //if (mldstpen) showstatus = (showstatus == ""? "" : showstatus + ",") + "0"; - //if (mldstrej) showstatus = (showstatus == ""? "" : showstatus + ",") + "1"; - //if (mldstnew) showstatus = (showstatus == ""? "" : showstatus + ",") + "2"; - //if (mldsting) showstatus = (showstatus == ""? "" : showstatus + ",") + "3"; - //if (mldstacc) showstatus = (showstatus == ""? "" : showstatus + ",") + "4"; - //if (mldstafm) showstatus = (showstatus == ""? "" : showstatus + ",") + "5"; - //if (mldstver) showstatus = (showstatus == ""? "" : showstatus + ",") + "6"; - //if (mldstuit) showstatus = (showstatus == ""? "" : showstatus + ",") + "7"; - //if (mldnieto) showstatus = (showstatus == ""? "" : showstatus + ",") + "99"; - //var from_mld = (showstatus != ""); - - //var showopdrstatus = ""; - //if (mldopdrstrej) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "1"; - //if (mldopdrstnak) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "2"; - //if (mldopdrsttfi) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "3"; // Verderop wordt wel bepaald of 'b2' status 3 mag zien - //if (mldopdrstfia) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "4"; - //if (mldopdrstuit) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "5"; - //if (mldopdrstafm) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "6"; - //if (mldopdrstver) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "7"; - //if (mldopdrstacp) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "8"; - //if (mldopdrstafr) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "9"; - //if (mldopdrstgoe) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "10"; // Verderop wordt wel bepaald of 'b2' status 10 mag zien var groepering_key = params.groepering_key; // Voor maninfo. 2 en 16 ondersteund @@ -4670,16 +4706,36 @@ mld = {setmeldingstatus: bld_scope = true; } - sqltrack = (groepering_key == 2 || groepering_key == 16 // Minfo groepering Opdracht(2) en Opdracht + Kosten(16). - ? ", TO_DATE('01-01-1970', 'DD-MM-YYYY')" - : ", (SELECT MAX(t.fac_tracking_datum)" - + " FROM fac_tracking t" - + " , fac_srtnotificatie sn" - + " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key" - + " AND t.fac_tracking_refkey = o.mld_opdr_key" // opdracht key uit "sql" - + " AND sn.fac_srtnotificatie_xmlnode = 'opdracht')") - + " recentdatum"; + var sqltrack = (groepering_key == 2 || groepering_key == 16 // Minfo groepering Opdracht(2) en Opdracht + Kosten(16). + ? ", TO_DATE('01-01-1970', 'DD-MM-YYYY')" + : ", (SELECT MAX(t.fac_tracking_datum)" + + " FROM fac_tracking t" + + " , fac_srtnotificatie sn" + + " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key" + + " AND t.fac_tracking_refkey = o.mld_opdr_key" // opdracht key uit "sql" + + " AND sn.fac_srtnotificatie_xmlnode = 'opdracht')") + + " recentdatum"; + var uitv_type = " CASE" + + " WHEN COALESCE ( (SELECT 'B'" + + " FROM prs_bedrijf" + + " WHERE prs_bedrijf_key = o.mld_uitvoerende_keys)" + + " , (SELECT 'P'" + + " FROM prs_perslid" + + " WHERE prs_perslid_key = o.mld_uitvoerende_keys)) = 'B'" + + " THEN" + + " CASE" + + " WHEN (SELECT u.intern" + + " FROM mld_v_uitvoerende u" + + " WHERE u.mld_uitvoerende_key = o.mld_uitvoerende_keys) = 1" + + " THEN" + + " 'BI'" + + " ELSE" + + " 'BE'" + + " END" + + " ELSE" + + " 'PI'" + + " END" var whereUs = ""; // straks voor de statussen sql = "SELECT o.mld_melding_key" + " , o.mld_opdr_bedrijfopdr_volgnr" @@ -4721,7 +4777,7 @@ mld = {setmeldingstatus: + " , sd.ins_srtdiscipline_prefix" + " , sd.ins_srtdiscipline_omschrijving" + " , " + lcl.xsqla('std.mld_stdmelding_omschrijving','std.mld_stdmelding_key') - + " , " + S("prs_pers_string")+ " melder" + + " , " + S("prs_pers_string") + " melder" + " , SYSDATE nu" + " , o.mld_opdr_kosten" + (urole == 'mi' @@ -4745,26 +4801,7 @@ mld = {setmeldingstatus: + " , (SELECT 'P'" + " FROM prs_perslid" + " WHERE prs_perslid_key = o.mld_uitvoerende_keys)) B_OF_P" - + " , CASE" - + " WHEN COALESCE ( (SELECT 'B'" - + " FROM prs_bedrijf" - + " WHERE prs_bedrijf_key = o.mld_uitvoerende_keys)" - + " , (SELECT 'P'" - + " FROM prs_perslid" - + " WHERE prs_perslid_key = o.mld_uitvoerende_keys)) = 'B'" - + " THEN" - + " CASE" - + " WHEN (SELECT u.intern" - + " FROM mld_v_uitvoerende u" - + " WHERE u.mld_uitvoerende_key = o.mld_uitvoerende_keys) = 1" - + " THEN" - + " 'BI'" - + " ELSE" - + " 'BE'" - + " END" - + " ELSE" - + " 'PI'" - + " END uitv_type" + + " , " + uitv_type + " uitv_type" + " , CASE" + " WHEN COALESCE ( (SELECT 'B'" + " FROM prs_bedrijf" @@ -4867,16 +4904,16 @@ mld = {setmeldingstatus: ? " , mld_v_uitvoerende mu" : "") + " WHERE o.mld_melding_key = m.mld_melding_key" + (urole == 'bgt' ? '(+)' : '') - + " AND pfiat.prs_perslid_key(+) = prs.getkpverantwoordelijke(o.prs_kostenplaats_key, "+S("prs_approvemethod")+", -1)" + + " AND pfiat.prs_perslid_key(+) = prs.getkpverantwoordelijke(o.prs_kostenplaats_key, " + S("prs_approvemethod") + ", -1)" + " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)" + " AND l.alg_district_key = di.alg_district_key(+)" - + " AND std.mld_ins_discipline_key = md.ins_discipline_key"+ (urole == 'bgt' ? '(+)' : '') - + " AND md.ins_discipline_key = mdp.mld_ins_discipline_key"+ (urole == 'bgt' ? '(+)' : '') + + " AND std.mld_ins_discipline_key = md.ins_discipline_key" + (urole == 'bgt' ? '(+)' : '') + + " AND md.ins_discipline_key = mdp.mld_ins_discipline_key" + (urole == 'bgt' ? '(+)' : '') + " AND o.fac_activiteit_key IS NULL" + " AND o.cnt_contract_key = c.cnt_contract_key(+)" - + " AND m.mld_stdmelding_key = std.mld_stdmelding_key"+ (urole == 'bgt' ? '(+)' : '') + + " AND m.mld_stdmelding_key = std.mld_stdmelding_key" + (urole == 'bgt' ? '(+)' : '') + " AND m.prs_perslid_key = p.prs_perslid_key"+ (urole == 'bgt' ? '(+)' : '') - + " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"+ (urole == 'bgt' ? '(+)' : '') + + " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key" + (urole == 'bgt' ? '(+)' : '') + " AND o.mld_typeopdr_key = t.mld_typeopdr_key"; if (add_prs_restrict) @@ -5011,6 +5048,10 @@ mld = {setmeldingstatus: if (behandel_key) sql += " AND o.prs_perslid_key = " + behandel_key; + if (beh_key_arr) + //sql += " AND (o.prs_perslid_key IN (" + beh_key_arr.join(",") + ") OR o.prs_perslid_key IS NULL)"; + // Niet toegewezen (prs_perslid_key IS NULL) opdrachten van het opdrachttype Bedrijf Intern (BI) moeten ook getoond worden. + sql += " AND (o.prs_perslid_key IN (" + beh_key_arr.join(",") + ") OR (o.prs_perslid_key IS NULL AND (" + uitv_type + ") = 'BI'))"; if (opdrtype_key) sql += " AND o.mld_typeopdr_key = " + opdrtype_key; @@ -5043,11 +5084,17 @@ mld = {setmeldingstatus: if (datefrom) { - sql += " AND o.mld_opdr_datumbegin >= " + datefrom.beginToSQL(); + if (planb) + sql += " AND COALESCE(o.mld_opdr_plandatum, o.mld_opdr_einddatum) >= " + datefrom.beginToSQL(); + else + sql += " AND o.mld_opdr_datumbegin >= " + datefrom.beginToSQL(); } if (dateto) { - sql += " AND o.mld_opdr_datumbegin < " + dateto.endToSQL(); + if (planb) + sql += " AND COALESCE(o.mld_opdr_plandatum, o.mld_opdr_einddatum) < " + dateto.endToSQL(); + else + sql += " AND o.mld_opdr_datumbegin < " + dateto.endToSQL(); } if (offerte >= 0) diff --git a/APPL/MLD/opdr_handlerchange.asp b/APPL/MLD/opdr_handlerchange.asp index da911c2ef1..c0b14d2048 100644 --- a/APPL/MLD/opdr_handlerchange.asp +++ b/APPL/MLD/opdr_handlerchange.asp @@ -25,9 +25,9 @@ var JSON_Result = true; <% protectRequest.validateToken(); -var uitv_key = getFParamInt("uitv_key"); -var prs_key = getFParamInt("prs_key"); -var uitv_type_dest = getFParam("uitv_type"); +var uitv_key = getFParamInt("uitv_key"); // Uitvoerder destination. +var prs_key = getFParamInt("prs_key"); // Behandelaar destination. +var uitv_type_dest = getFParam("uitv_type"); // Type uitvoerder destination. var opdr_key_arr = getFParamIntArray("opdr_key_arr"); var tobechanged = 0; @@ -37,19 +37,24 @@ var notmoved = []; for (var i = 0; i < opdr_key_arr.length; i++) { var this_opdr = mld.func_enabled_opdracht(opdr_key_arr[i]); // Wat heb ik zoal aan rechten op deze specifieke opdracht - var mld_opdr = mld.mld_opdr_info(opdr_key_arr[i]); + + var canSelection = true; var uitv_type_src = "PI"; if (mld_opdr.uitv_type == "B") { if (mld_opdr.uitv_intern) var uitv_type_src = "BI"; else - var uitv_type_src = "BE"; + { + var uitv_type_src = "BE"; // Kan niet voorkomen. + canSelection = false; + } } - var canSelectBeheerder = true; - if (uitv_type_src == "BI" && uitv_type_dest != "BI") + // Kan de beheerder bij de interne persoon of kan de beheerder bij de uitvoerder voor desbetreffende disipline? Dit checken. + // Als de beheerder niet is ingevuld is, dan hoef ik het niet te checken. + if (prs_key > 0 && (uitv_type_src == "BI" && uitv_type_dest == "PI")) { var sql = "SELECT prs_perslid_key" + " FROM fac_v_webgebruiker f" @@ -62,13 +67,13 @@ for (var i = 0; i < opdr_key_arr.length; i++) + " OR fac_functie_code = 'WEB_ORDBOF')" + " AND f.fac_gebruiker_prs_level_write < 9" + " AND f.fac_gebruiker_alg_level_write < 9" - + " AND prs_perslid_key = " + mld_opdr.contactpers_key // Beheerder opdracht. + + " AND prs_perslid_key = " + prs_key // Beheerder opdracht. oRs = Oracle.Execute(sql); - canSelectBeheerder = !oRs.eof; + canSelection = !oRs.eof; oRs.close(); } - if (this_opdr.canChange && canSelectBeheerder) + if (this_opdr.canChange && canSelection) { ingesloten.push({ opdr_key: opdr_key_arr[i], mld_key: mld_opdr.mld_key, diff --git a/APPL/MLD/opdr_plan.inc b/APPL/MLD/opdr_plan.inc index 80933397e8..218dc6c476 100644 --- a/APPL/MLD/opdr_plan.inc +++ b/APPL/MLD/opdr_plan.inc @@ -19,10 +19,9 @@ <% FCLTHeader.Requires({plugins: ["jQuery"], - js: ["./opdr_plan.js", - "./mld.js", - "jquery-ui.js"] //, // Voor slepen - //css: ["../mld/opdr.css"] + js: ["./mld.js", + "jquery-ui.js"], // Voor het slepen. + css: ["../mld/mld.css"] }); // Om planbord kaarten in een kaartenbak te groeperen. @@ -33,13 +32,13 @@ function CARDBOX_START(id, params) if (__cardboxactive__) ERROR_NESTED_BLOCK_START_DETECTED; __cardboxactive__ = true; %> -
" <%=params.hidden? ' style="display:none"' : ''%> <%=params.html? " " + params.html : ""%>><% +
" <%=params.hidden? ' style="display:none"' : ''%> <%=params.html? " " + params.html : ""%>><% } function CARDBOX_END() { if (!__cardboxactive__) ERROR_BLOCK_END_WITHOUT_BLOCKSTART; __cardboxactive__ = false; -%>
+%>
<% } @@ -75,24 +74,9 @@ function opdr_plan(params) var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc. var isPrinting = (outputmode == 1 || outputmode == 5); var isExcel = (outputmode == 2 || outputmode == 6); - var showall = params.showall; + var showAll = params.showall; var mld_key = params.mld_key; - //var contract = params.contract - //var cnt_key = params.cnt_key; - //// Er kunen twee contract keys meegegeven worden. Een extra contract key die bij contract hoort. - //// Als cnt_key en contract_key verschillen kun het nooit een resultaat opleveren - //if (contract > 0) - // cnt_key = cnt_key + (cnt_key != ""? ", " : "") + contract; - - //var bes = params.bes; - //var tiny = params.tiny; - //var inline = params.inline; - //var justClose = params.justClose; - // close_only is vervangen door (pautfunction == "WEB_ORDBO2"): Als je die rechten hebt mag je ook afmelden - //var mldopdrstrej = params.mldopdrstrej; - //var mldopdrstafm = params.mldopdrstafm; - //var mldopdrstver = params.mldopdrstver; var mldstpen = params.mldstpen; var mldstnew = params.mldstnew; @@ -188,171 +172,9 @@ function opdr_plan(params) } %> - + <% FCLTHeader.Generate({ outputmode: params.outputmode }); %> - @@ -530,395 +594,310 @@ function opdr_plan(params) IFRAMER_HEADER(L("lcl_orders"), buttons); %> -
+
+
+
<% - var sql = mld.getopdroverzicht_sql(pautfunction, params); - oRs = Oracle.Execute(sql); - var olduitv_key = -2; - var oldprs_key = -2; - while (!oRs.eof) - { - var prs_key = oRs("prs_perslid_key").Value || -1; // Melder key. - var opdr_key = oRs("mld_opdr_key").Value; - var behandelaar = oRs("behandelaar").Value; // Behandelaar - var B_OF_P = oRs("B_OF_P").Value; - var uitv_key = oRs("uitv_key").Value || -1; - var uitv_naam = oRs("uitv_naam").Value; - var uitv_type = oRs("uitv_type").Value; - var opdracht = oRs("ins_srtdiscipline_prefix").Value + oRs("mld_melding_key").Value + "/" + oRs("mld_opdr_bedrijfopdr_volgnr").Value; - var einddatum = new Date(oRs("mld_opdr_einddatum").Value).getTime(); - var now = new Date().getTime(); - var mld_statusopdr_key = oRs("mld_statusopdr_key").Value; - var mld_opdr_omschrijving = oRs("mld_opdr_omschrijving").Value || ""; - var plaatsmelding = oRs("plaatsmelding").Value || ""; + // TODO width van planbodylist gebruiken om horizontale scrollbar te verkrijgen. + // jquery scrollbar kun je nog gebruiken? jQuery('.textarea-scrollbar').scrollbar();?? + var sql = mld.getopdroverzicht_sql(pautfunction, params); + oRs = Oracle.Execute(sql); - var uitvclass = uitv_type; - if (uitv_type == "BI" && prs_key < 0) - uitvclass = "NT" // Niet Toegewezen. - - // Ik wil weten of ik de opdracht mag wijzigen. - // Als de opdracht niet te wijzigen is, dan mag ik deze niet slepen. - // Een niet te wijzigen opdracht heeft ook een icon "fa-lock" voor het opdrachtnummer. - // TODO: Kost dit niet te veel tijd. Zelf uitrekenen is zeer lastig. - var this_opdr = mld.func_enabled_opdracht(opdr_key); // Wat mag ik zoal op deze opdracht? - - if ((uitv_type != "BI" && uitv_key != olduitv_key) || - (uitv_type == "BI" && (uitv_key != olduitv_key || prs_key != oldprs_key))) + var prs_key = -1; // Melder key. + var uitv_key = -1; + var uitv_type = ""; + var olduitv_key = -2; + var oldprs_key = -2; + var nrCardBoxes = 0; + var aantal_int = 0; + var aantal_ext = 0; + var nrCardsInCardbox = 0; + for (var cnt = 0; (cnt < S("qp_maxrows") || showAll) && + (cnt < S("qp_maxrows2") || isExcel) && // Naar excel altijd alle regels (meer dan S("qp_maxrows2")) weergeven. + !oRs.eof; cnt++) { - CARDBOX_START("cardboxbeh" + uitv_key + (uitv_type == "BI"? "_" + prs_key : ""), - {cardclass: "cardbox cbsortable uitv" + uitvclass.toLowerCase(), - html: "uitv_key=" + uitv_key + " prs_key=" + (uitv_type == "BI"? prs_key : "-1") - }); - if (uitv_type != "BE") - { -%> +<% + CARD_START("cardbeh" + uitv_key + (uitv_type == "BI"? "_" + prs_key : ""), + { cardclass: "cardbeheerder uitv" + uitvclass.toLowerCase(), + html: "uitv_key='" + uitv_key + "' prs_key='" + prs_key + "' opdr_key='-1'" + " einddatum='-1'" + " opdracht='-1' active='1' halt='0'" + }); + switch(uitv_type) + { + case "BI": if (prs_key < 0) + { // Niet Toegewezen. +%> +<% } + else + { // Toegewezen. + var thisUser = new Perslid(prs_key); // geeft ook handige informatie +%> + + + + + + +<% } - }); - //$("#cardboxbeh<%=uitv_key%>").sortable("disable"); - }); - -<% } - else - { -%> -<% } - CARD_START("cardbeh" + uitv_key, - { cardclass: "cardbeheerder uitv" + uitvclass.toLowerCase(), - html: "uitv_key='" + uitv_key + "' prs_key='" + prs_key + "' opdr_key='-1'" + " einddatum='-1'" + " opdracht='-1' active='1' halt='0' resume='0'" - }); - switch(uitv_type) - { - case "BI": if (prs_key < 0) - { // Niet Toegewezen. -%> -<% } - else - { // Toegewezen. - var thisUser = new Perslid(prs_key); // geeft ook handige informatie + break; + case "PI": var thisUser = new Perslid(uitv_key); // geeft ook handige informatie %> - + - - -<% - } - break; - case "PI": var thisUser = new Perslid(uitv_key); // geeft ook handige informatie -%> - - - - - - -<% break; - case "BE": - var bsql = "SELECT COALESCE(prs_bedrijf_bezoek_plaats, prs_bedrijf_post_plaats) plaats" - + " , COALESCE(prs_bedrijf_contact_telefoon, prs_bedrijf_telefoon, prs_bedrijf_telefoon2) telefoon " - + " FROM prs_bedrijf WHERE prs_bedrijf_key = " + uitv_key; - boRs = Oracle.Execute(bsql); - var uitv_plaats = ""; - var uitv_telefoon = ""; - if (!boRs.eof) { - uitv_plaats = boRs("plaats").value; - uitv_telefoon = boRs("telefoon").value; - } - boRs.close(); -%> - - - - - - -<% break; - } + + +<% break; + case "BE": + var bsql = "SELECT COALESCE(prs_bedrijf_bezoek_plaats, prs_bedrijf_post_plaats) plaats" + + " , COALESCE(prs_bedrijf_contact_telefoon, prs_bedrijf_telefoon, prs_bedrijf_telefoon2) telefoon " + + " FROM prs_bedrijf WHERE prs_bedrijf_key = " + uitv_key; + boRs = Oracle.Execute(bsql); + var uitv_plaats = ""; + var uitv_telefoon = ""; + if (!boRs.eof) { + uitv_plaats = boRs("plaats").value; + uitv_telefoon = boRs("telefoon").value; + } + boRs.close(); %> + + + + + + +<% break; + } - - -<% - CARD_END(); - } - if (isPrinting || S("rs_maxchar") < 0 || mld_opdr_omschrijving.length < S("rs_maxchar") * 1.20) // 'Meer' moet minstens 20% extra tekst opleveren. - safe_mld_opdr_omschrijving = safe.html(oRs("mld_opdr_omschrijving").Value); // simpelweg hele tekst - else - { - // Oke, op scherm afkappen na S("rs_maxchar") karakters. - // Probeer op de eerste spatie maar die moet wel binnen 20% karakters komen - var full_mld_opdr_omschrijving = mld_opdr_omschrijving; - var spatie = String(mld_opdr_omschrijving).substr(S("rs_maxchar")).indexOf(" "); - if (spatie < 0 || spatie > S("rs_maxchar")/5) - spatie = 0; - var part_mld_opdr_omschrijving = full_mld_opdr_omschrijving.substr(0, S("rs_maxchar") + spatie + 1); - // pas op: val is al 'html-safe' terwijl we dat voor afkappen niet kunnen hebben? - // in ieder geval geen safe.htmlattr. - var safe_mld_opdr_omschrijving = safe.html(part_mld_opdr_omschrijving) - + "" + L("lcl_rs_truncated") + ""; - } - - var extended_opdr_status = mld.getextendedopdrstatus(mld_statusopdr_key, opdr_key); - CARD_START("opdrcard" + opdr_key, - { cardclass: "cardorders sortable" + - (!this_opdr.canChange || mld_statusopdr_key == 8 || uitv_type == "BE"? " disable-sort-item" : "") + - (mld_statusopdr_key == 8? " activecard" + (extended_opdr_status == 81? " halt" : "") + (extended_opdr_status == 82? " resume" : ""): "") + - (einddatum < now? " latecard" : ""), - html: "opdr_key='" + opdr_key + "'" - + " opdracht='" + safe.html(opdracht) + "'" - + " einddatum='" + einddatum + "'" - + " active='" + (mld_statusopdr_key == 8? "1" : "0") + "'" - + " halt='" + (extended_opdr_status == 81? "1" : "0") + "'" - + " resume='" + (extended_opdr_status == 82? "1" : "0") + "'" - + " sortid='" + (mld_statusopdr_key == 8? "0" : "1") + einddatum + "/" + opdracht + "'" - }); -%> - + - -<% CARD_END(); - - olduitv_key = uitv_key; - oldprs_key = prs_key; - oRs.MoveNext(); - if (oRs.eof || ((uitv_type != "BI" && (oRs("uitv_key").Value || -1) != olduitv_key) || - (uitv_type == "BI" && ((oRs("uitv_key").Value || -1) != olduitv_key || (oRs("prs_perslid_key").Value || -1) != oldprs_key)))) - CARDBOX_END(); - } + + +<% CARD_END(); + if (S("mld_show_cards") > 0 && nrCardsInCardbox == (S("mld_show_cards") + 1)) + { + CARD_START("cardasc", + { cardclass: "cardasc disable-sort-item", + html: "opdr_key='-1' opdracht='-1' einddatum='0' active='0' halt='2'", + hidden: true + }); %> + + + +<% CARD_END(); + CARD_START("carddesc", + { cardclass: "carddesc disable-sort-item", + html: "opdr_key='-1' opdracht='-1' einddatum='-1' active='0' halt='3'" + }); +%> + + + +<% CARD_END(); + } + olduitv_key = uitv_key; + oldprs_key = prs_key; + oRs.MoveNext(); + if (oRs.eof || ((uitv_type != "BI" && (oRs("uitv_key").Value || -1) != olduitv_key) || + (uitv_type == "BI" && ((oRs("uitv_key").Value || -1) != olduitv_key || (oRs("prs_perslid_key").Value || -1) != oldprs_key)))) + CARDBOX_END(); + } +%> +
<%=L("lcl_opdr_unassigned") + " " + safe.html(uitv_naam)%>
<%=safe.html(uitv_naam)%>
<%=safe.html(behandelaar)%>
+ <%= safe.html(thisUser.prs_srtperslid())%> + <%= thisUser.prs_perslid_telefoonnr() ? "
 "+safe.html(thisUser.prs_perslid_telefoonnr()) : "" %> +
<%=L("lcl_opdr_unassigned") + " " + safe.html(uitv_naam)%>
<%=safe.html(uitv_naam)%>
<%=safe.html(behandelaar)%>
<%=safe.html(thisUser.naam())%>
- <%= safe.html(thisUser.prs_srtperslid())%> - <%= thisUser.prs_perslid_telefoonnr() ? "
 "+safe.html(thisUser.prs_perslid_telefoonnr()) : "" %> -
<%=safe.html(thisUser.naam())%>
- <%= safe.html(thisUser.prs_srtperslid())+"
"%> - <%= thisUser.prs_perslid_telefoonnr() ? " "+safe.html(thisUser.prs_perslid_telefoonnr()) : "" %> -
<%=safe.html(uitv_naam)%>
- <%= uitv_plaats ? safe.html(uitv_plaats) + "
" : ""%> - <%= uitv_telefoon ? " "+safe.html(uitv_telefoon) : "" %> -
+ <%= safe.html(thisUser.prs_srtperslid())+"
"%> + <%= thisUser.prs_perslid_telefoonnr() ? " "+safe.html(thisUser.prs_perslid_telefoonnr()) : "" %> +
<%=safe.html(uitv_naam)%>
+ <%= uitv_plaats ? safe.html(uitv_plaats) + "
" : ""%> + <%= uitv_telefoon ? " "+safe.html(uitv_telefoon) : "" %> +
-<% if (!this_opdr.canChange) + CARD_END(); + if (S("mld_show_cards") > 0) { %> - + + <% } - else if (mld_statusopdr_key == 8) - { - if (extended_opdr_status == 81) + } + + if (isPrinting || S("rs_maxchar") < 0 || mld_opdr_omschrijving.length < S("rs_maxchar") * 1.20) // 'Meer' moet minstens 20% extra tekst opleveren. + var safe_mld_opdr_omschrijving = safe.html(oRs("mld_opdr_omschrijving").Value); // simpelweg hele tekst + else + { + // Oke, op scherm afkappen na S("rs_maxchar") karakters. + // Probeer op de eerste spatie maar die moet wel binnen 20% karakters komen + var full_mld_opdr_omschrijving = mld_opdr_omschrijving; + var spatie = String(mld_opdr_omschrijving).substr(S("rs_maxchar")).indexOf(" "); + if (spatie < 0 || spatie > S("rs_maxchar")/5) + spatie = 0; + var part_mld_opdr_omschrijving = full_mld_opdr_omschrijving.substr(0, S("rs_maxchar") + spatie + 1); + // pas op: val is al 'html-safe' terwijl we dat voor afkappen niet kunnen hebben? + // in ieder geval geen safe.htmlattr. + var safe_mld_opdr_omschrijving = safe.html(part_mld_opdr_omschrijving) + + "" + L("lcl_rs_truncated") + ""; + } + + var extended_opdr_status = mld.getextendedopdrstatus(mld_statusopdr_key, opdr_key); + nrCardsInCardbox++; + CARD_START("opdrcard" + opdr_key, + { cardclass: "cardorders" + (!this_opdr.canChange || mld_statusopdr_key == 8 || uitv_type == "BE"? "" : " sortable") + + (!this_opdr.canChange || mld_statusopdr_key == 8 || uitv_type == "BE"? " disable-sort-item" : "") + + (mld_statusopdr_key == 8? " activecard" + (extended_opdr_status == 81? " halt" : ""): "") + + (einddatum < now? " latecard" : ""), + html: "opdr_key='" + opdr_key + "'" + + " opdracht='" + safe.html(opdracht) + "'" + + " einddatum='" + einddatum + "'" + + " active='" + (mld_statusopdr_key == 8? "1" : "0") + "'" + + " halt='" + (extended_opdr_status == 81? "1" : "0") + "'" + + " sortid='" + (mld_statusopdr_key == 8? "0" : "1") + einddatum + "/" + opdracht + "'", + hidden: S("mld_show_cards") > 0? true : false + }); +%>
+<% if (!this_opdr.canChange) { %> - -<% } - else if (extended_opdr_status == 82) - { %> - + <% } + else if (mld_statusopdr_key == 8) + { + if (extended_opdr_status == 81) + { %> + +<% } + else + { %> + +<% } + } else { %> - -<% } - } - else - { %> - -<% } %> - "><%=safe.html(opdracht)%> -<% if (oRs("mld_opdr_plandatum").Value != null) - { - %><%=toDateTimeString(oRs("mld_opdr_plandatum").Value, false,false, true)%><% - } else { // straks ook de startdatum - %><%=toDateTimeString(oRs("mld_opdr_einddatum").Value, false,false, true)%><% - } - if (plaatsmelding) { - %>
<%=plaatsmelding.length < 40 ? safe.html(plaatsmelding) : safe.html(plaatsmelding.substr(0,36))+"…" %><% - } + +<% } %> + "><%=safe.html(opdracht)%> +<% if (oRs("mld_opdr_plandatum").Value != null) + { + %><%=toDateTimeString(oRs("mld_opdr_plandatum").Value, false,false, true)%><% + } else { // straks ook de startdatum + %><%=toDateTimeString(oRs("mld_opdr_einddatum").Value, false,false, true)%><% + } + if (plaatsmelding) { + %>
<%=plaatsmelding.length < 40 ? safe.html(plaatsmelding) : safe.html(plaatsmelding.substr(0,36))+"…" %><% + } %> -
"><%=safe_mld_opdr_omschrijving%>
"><%=safe_mld_opdr_omschrijving%>
+
+
+
+
+ +<% if (S("mld_show_cards") > 0) + { %> + +<% } %> + +
+<% + var hisInfo = "empty"; + if (!oRs.eof) + { + var a_element = "" + + L("lcl_qp_maxcards1").format(S("qp_maxrows")) + + ""; + hisInfo = (cnt <= S("qp_maxrows") + ? a_element + : L("lcl_qp_maxcards2").format(S("qp_maxrows2"))) + } + + var extraTitle = []; + if (aantal_int > 0) + extraTitle.push(L("lcl_opdr_internuit") + " " + aantal_int); + if (aantal_ext > 0) + extraTitle.push(L("lcl_opdr_externuit") + " " + aantal_ext); +%> + +