ARAI#38183: Starten en Stoppen van opdrachtuitvoering.

svn path=/Website/trunk/; revision=33440
This commit is contained in:
Maykel Geerdink
2017-04-10 08:36:54 +00:00
parent 1eaba2b8b7
commit 539d2dbf34
9 changed files with 102 additions and 21 deletions

View File

@@ -512,6 +512,38 @@ mld = {setmeldingstatus:
return mld.getmldstatustext(xstatus);
},
// Geeft de opdrachtstatus terug, maar checkt bij status 5 en 8, of de behandeling onderbroken/hervat is (ORDHLT/ORDRSM).
// De opdr_key geef ik mee omdat ik die toch altijd al weet; ik had daarmee de status natuurlijk hier ook zelf kunnen bepalen.
getextendedopdrstatus:
function (pstatus, popdr_key)
{
var result = pstatus;
if (pstatus == 8)
{
var sql = "SELECT fac.gettrackingdate ('ORDHLT', " + popdr_key + ") trackdatehlt"
+ " , fac.gettrackingdate ('ORDRSM', " + popdr_key + ") trackdatersm"
+ " FROM DUAL";
var oRs = Oracle.Execute(sql);
var trackdateHLT = oRs("trackdatehlt").Value != null? new Date(oRs("trackdatehlt").Value) : null;
var trackdateRSM = oRs("trackdatersm").Value != null? new Date(oRs("trackdatersm").Value) : null;
oRs.Close();
if (trackdateHLT != null && (trackdateRSM == null || trackdateHLT > trackdateRSM))
result = 81; // Onderbroken.
if (trackdateRSM != null && trackdateHLT < trackdateRSM)
result = 82; // Hervat.
}
return result;
},
getextendedopdrstatustext:
function (pstatus, popdr_key)
{
var xstatus = mld.getextendedopdrstatus(pstatus, popdr_key);
return status.getopdrstatustext(xstatus);
},
// bereken de SLA-einddatum gegeven onderstaande info
geteinddatum:
function (startdate, stdm_key, prio, geb_key, ruimte_key, obj_key)
@@ -2066,6 +2098,7 @@ mld = {setmeldingstatus:
contactpers_naam: oRs("mld_opdr_contact_naam").Value,
contactpersuitv_key: oRs("prs_contactpersoon_key").Value,
opdr_status: oRs("mld_statusopdr_key").Value,
extended_opdr_status: mld.getextendedopdrstatus(oRs("mld_statusopdr_key").Value, opdr_key),
opdr_status_refiat: oRs("mld_statusopdr_key_refiat").Value || 0,
mld_opdr_fiat_user: oRs("mld_opdr_fiat_user").Value, // Laatste fiatteur die gefiatteerd heeft
stdm_key: oRs("mld_stdmelding_key").Value,
@@ -3044,6 +3077,8 @@ 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_kosten"
+ " , mto.mld_typeopdr_zichtbaarfe"
+ " , o.mld_opdr_teverzenden"
@@ -3113,6 +3148,8 @@ 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 typehas_cost = moRs("mld_typeopdr_kosten").Value == 1;
var decentraal = moRs("mld_typeopdr_decentraal").Value;
var isofferte = moRs("mld_typeopdr_isofferte").Value == 1;
@@ -3272,6 +3309,8 @@ mld = {setmeldingstatus:
mresult.canReject = false; // Afwijzen
mresult.canCancel = false; // Annuleren
mresult.canClose = false; // Afmelden
mresult.canOnderbreken = false; // Onderbreken
mresult.canHervatten = false; // Hervatten
mresult.canFinish = false; // Afronden
mresult.hadFinishRights = false; // Had ik in status "Technisch Voltooid/Afgemeld(6)" de rechten om de opdracht financieel te voltooien.
mresult.couldClose = false; // Kon de opdracht afmelden of heb hem afgemeld (Kan in show mode close kenmerken zien)
@@ -3397,10 +3436,13 @@ mld = {setmeldingstatus:
(mresult.canWrite("WEB_ORDBO2") && myBO2Change)) &&
!is_planned_action && /* AAFM#23455 */
!noCancel; /* AAZC#28894 */
mresult.canClose = (mresult.canWrite("WEB_ORDBOF") && (decentraal < 2) ||
mresult.canCloseRights = (mresult.canWrite("WEB_ORDBOF") && (decentraal < 2) ||
(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.canClose = mresult.canCloseRights && !mresult.canHervatten;
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond);
mresult.canVeldChange = (mresult.canWrite("WEB_ORDBOF") ||
(mresult.canWrite("WEB_ORDBO2") && myBO2FieldChange));

View File

@@ -720,6 +720,8 @@ if (!frontend && srtdisc > -1)
+ " UNION ALL SELECT 'MLDVER', " + safe.quoted_sql(L("lcl_mld_trackprefixmld")+L("lcl_mld_is_mldver")) + " FROM DUAL"
+ " UNION ALL SELECT 'ORDACP', " + safe.quoted_sql(L("lcl_mld_trackprefixord")+L("lcl_ord_is_ordacp")) + " FROM DUAL"
+ " UNION ALL SELECT 'ORDHLT', " + safe.quoted_sql(L("lcl_mld_trackprefixord")+L("lcl_ord_is_ordhlt")) + " FROM DUAL"
+ " UNION ALL SELECT 'ORDRSM', " + safe.quoted_sql(L("lcl_mld_trackprefixord")+L("lcl_ord_is_ordrsm")) + " FROM DUAL"
+ " UNION ALL SELECT 'ORDAFM', " + safe.quoted_sql(L("lcl_mld_trackprefixord")+L("lcl_ord_is_ordafm")) + " FROM DUAL"
+ " UNION ALL SELECT 'ORDAFR', " + safe.quoted_sql(L("lcl_mld_trackprefixord")+L("lcl_ord_is_ordafr")) + " FROM DUAL"
+ " UNION ALL SELECT 'ORDCAN', " + safe.quoted_sql(L("lcl_mld_trackprefixord")+L("lcl_ord_is_ordcan")) + " FROM DUAL"

View File

@@ -298,6 +298,13 @@ var opdr_kosten = mld_opdr.t_cost;
if (this_opdr.canCancel)
buttons.push({ title: L("lcl_mld_opdr_cancel_button"), icon: "cancel.png", action: "opdr_cancel()"});
// Onderbreken.
if (this_opdr.canOnderbreken)
buttons.push({ title: L("lcl_halt"), icon: "fa-pause", action: "opdr_onderbreken()" });
// Hervatten.
if (this_opdr.canHervatten)
buttons.push({ title: L("lcl_resume"), icon: "fa-play", action: "opdr_hervatten()" });
if (this_opdr.canClose)
buttons.push({ title: L("lcl_close"), icon: "close.png", action: "opdr_close()" });
@@ -471,7 +478,7 @@ var opdr_kosten = mld_opdr.t_cost;
Title: L("lcl_status_details") + " " + (prefix||"") + mld_opdr.mld_key + "/" + mld_opdr.volgnr
}
}
ROFIELDTR("fld" + (mld_opdr.opdr_status == 2? " notapproved" : ""), L("lcl_mld_status"), status.getopdrstatustext(mld_opdr.opdr_status), params); // Opdrachtstatus omschrijving
ROFIELDTR("fld" + (mld_opdr.opdr_status == 2? " notapproved" : ""), L("lcl_mld_status"), mld.getextendedopdrstatustext(mld_opdr.extended_opdr_status, opdr_key), params); // Opdrachtstatus omschrijving
if (mld_opdr.opdr_status == 2)
{ // Opdracht Niet akkoord

View File

@@ -176,3 +176,29 @@ function mld_melding_materiaal()
matpricestr: $("#matpricestr").val()
});
}
function opdr_onderbreken()
{
//FcltMgr.reload({ appendurl: "hlt=1" })
FcltMgr.confirm(L("lcl_mld_opdr_hlt").format(prefix + mld_key + "/" + volgnr),
function()
{
var data = { opdr_key: opdr_key,
hlt: 1 };
protectRequest.dataToken(data);
$.post("opdr_hltrsm.asp", data, FcltCallbackRefresh, "json");
});
}
function opdr_hervatten()
{
//FcltMgr.reload({ appendurl: "rsm=1" })
FcltMgr.confirm(L("lcl_mld_opdr_rsm").format(prefix + mld_key + "/" + volgnr),
function()
{
var data = { opdr_key: opdr_key,
rsm: 1 };
protectRequest.dataToken(data);
$.post("opdr_hltrsm.asp", data, FcltCallbackRefresh, "json");
});
}

View File

@@ -380,7 +380,7 @@ function opdr_list(params)
function fnOpdrStatus(oRs)
{
var txt = status.getopdrstatustext(oRs("mld_statusopdr_key").Value);
var txt = mld.getextendedopdrstatustext(oRs("mld_statusopdr_key").Value, oRs("mld_opdr_key").Value);
if (oRs("mld_opdr_verzonden").Value == null && L("lcl_mld_opdr_notyetsent"))
txt += "<br>" + L("lcl_mld_opdr_notyetsent");
return txt;

View File

@@ -70,7 +70,7 @@ var opdrtype_key = getQParamInt("opdrtype_key", -1);
var date_from = getQParamDate("date_from", null);
var date_to = getQParamDate("date_to", null);
var handler_key = getQParamInt("handler_key", -1); // Uitvoerende
var uitv_type = getQParam("uitv_type", ""); // Uitvoerende type (I(ntern) of E(xtern)).
var uitv_type = getQParam("uitv_type", "IE"); // Uitvoerende type (I(ntern) en/of E(xtern)).
var FreezeHandler = getQParamInt("fh", -1) == 1; // FreezeHandler
var searchtekst = getQParam("searchtekst", ""); // Zoektekst
var verantw_key = getQParamInt("verantw", -1); // Gebouw verantwoordelijke
@@ -336,8 +336,8 @@ oRs.close();
<td></td>
<td>
<div id="ieuitboxes">
<input type="checkbox" class="fldopdrinternuit" name="opdrInternUit" id="opdrInternUit" onClick="checkieuitv();" value="1" <%=uitv_type == "E"? 0 : "CHECKED"%>><label for="opdrInternUit"><%=L("lcl_opdr_internuit")%></label>
<input type="checkbox" class="fldopdrexternuit" name="opdrExternUit" id="opdrExternUit" onClick="checkieuitv();" value="1" <%=uitv_type == "I"? 0 : "CHECKED"%>><label for="opdrExternUit"><%=L("lcl_opdr_externuit")%></label>
<input type="checkbox" class="fldopdriuit" name="opdrIUit" id="opdrIUit" onClick="checkieuitv();" value="1" <%=uitv_type == "IE" || uitv_type == "I"? "CHECKED" : ""%>><label for="opdrIUit"><%=L("lcl_opdr_internuit")%></label>
<input type="checkbox" class="fldopdreuit" name="opdrEUit" id="opdrEUit" onClick="checkieuitv();" value="1" <%=uitv_type == "IE" || uitv_type == "E"? "CHECKED" : ""%>><label for="opdrEUit"><%=L("lcl_opdr_externuit")%></label>
</div>
</td>
</tr>

View File

@@ -35,9 +35,9 @@ function updateStdm(purole, pautfunction)
function checkieuitv()
{
if (!document.getElementById("opdrInternUit").checked &&
!document.getElementById("opdrExternUit").checked)
if (!document.getElementById("opdrIUit").checked &&
!document.getElementById("opdrEUit").checked)
{
document.getElementById("opdrInternUit").checked = true;
document.getElementById("opdrIUit").checked = true;
}
}

View File

@@ -40,8 +40,8 @@ var cnt_key = "";
var contract = getQParamInt("contract", -1);
var cntnr = getQParamInt("cntnr", -1);
var handler = getQParamInt("handler", -1); // uitvoerder
var internuit = getQParamInt("opdrInternUit", 0) == 1; // Interne uitvoerder.
var externuit = getQParamInt("opdrExternUit", 0) == 1; // Externe uitvoerder.
var internuit = getQParamInt("opdrIUit", 0) == 1; // Interne uitvoerder.
var externuit = getQParamInt("opdrEUit", 0) == 1; // Externe uitvoerder.
var bld = getQParamInt("bld", -1);
var sName_key = getQParamInt("sName_key", -1);
var regiokey = getQParamInt("regiokey", -1); // Regio

View File

@@ -42,16 +42,18 @@ var status = {
var s = parseInt(p, 10);
switch (s)
{
case 1: {statustekst = L("lcl_mld_ord_afgewzen"); break;}
case 2: {statustekst = L("lcl_mld_ord_niet_akkoord"); break;}
case 3: {statustekst = L("lcl_mld_ord_ter_fiattering"); break;}
case 4: {statustekst = L("lcl_mld_ord_gefiatteerd"); break;}
case 5: {statustekst = L("lcl_mld_ord_uitgegeven"); break;}
case 6: {statustekst = L("lcl_mld_ord_afgemeld"); break;}
case 7: {statustekst = L("lcl_mld_ord_verwerkt"); break;}
case 8: {statustekst = L("lcl_mld_ord_geaccepteerd"); break;}
case 9: {statustekst = L("lcl_mld_ord_afgerond"); break;}
case 10: {statustekst= L("lcl_mld_ord_ter_goedkeuring"); break;}
case 1: {statustekst = L("lcl_mld_ord_afgewzen"); break;}
case 2: {statustekst = L("lcl_mld_ord_niet_akkoord"); break;}
case 3: {statustekst = L("lcl_mld_ord_ter_fiattering"); break;}
case 4: {statustekst = L("lcl_mld_ord_gefiatteerd"); break;}
case 5: {statustekst = L("lcl_mld_ord_uitgegeven"); break;}
case 6: {statustekst = L("lcl_mld_ord_afgemeld"); break;}
case 7: {statustekst = L("lcl_mld_ord_verwerkt"); break;}
case 8: {statustekst = L("lcl_mld_ord_geaccepteerd"); break;}
case 81: {statustekst = L("lcl_mld_ord_hlt"); break;} // Substatus van Geaccepteerd(8).
case 82: {statustekst = L("lcl_mld_ord_rsm"); break;} // Substatus van Geaccepteerd(8).
case 9: {statustekst = L("lcl_mld_ord_afgerond"); break;}
case 10: {statustekst = L("lcl_mld_ord_ter_goedkeuring"); break;}
}
if (Session("logging") > 0)
statustekst += " (" + String(p) + ")";
@@ -156,6 +158,8 @@ var status = {
case "ORDREJ" : tekst = L("lcl_ord_is_ordrej") ; break;
case "ORDCAN" : tekst = L("lcl_ord_is_ordcan") ; break;
case "ORDACP" : tekst = L("lcl_ord_is_ordacp") ; break;
case "ORDHLT" : tekst = L("lcl_ord_is_ordhlt") ; break;
case "ORDRSM" : tekst = L("lcl_ord_is_ordrsm") ; break;
case "ORDMLE" : tekst = L("lcl_ord_is_ordmle") ; break;
case "ORDMLI" : tekst = L("lcl_ord_is_ordmli") ; break;
case "ORDAFR" : tekst = L("lcl_ord_is_ordafr") ; break;