ARAI#38181: Opdracht-uitvoeringsconsole.

svn path=/Website/trunk/; revision=33689
This commit is contained in:
Maykel Geerdink
2017-05-04 13:48:31 +00:00
parent 1f8b6db5db
commit 392e56511f
5 changed files with 877 additions and 665 deletions

View File

@@ -123,7 +123,7 @@ function prettyJson(j)
<iframe width="100%" height="100%"
src="../Shared/empty.asp"
name="workFrame" id="workFrame"
onload="FcltMgr.iframeLoaded(this, false, true)"
onload="FcltMgr.iframeLoaded(this, {widthToo: false, largerOnly: true})"
frameborder="0" scrolling="no">
</iframe>
</div>

182
APPL/MLD/mld.css Normal file
View File

@@ -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; */
}

View File

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

View File

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

File diff suppressed because it is too large Load Diff