ARAI#38181: Opdracht-uitvoeringsconsole.

svn path=/Website/trunk/; revision=33225
This commit is contained in:
Maykel Geerdink
2017-03-23 09:06:19 +00:00
parent 79848ee1e0
commit 6c4c7cecb8

View File

@@ -153,7 +153,7 @@ function opdr_plan(params)
// en van het type waarbij mld_typeopdr_zichtbaarfe = 1 als ik een mld_key heb
// Omdat uitsluitend vanuit subframe van mld_melding wordt aangeroepen in deze mode veronderstellen we dat geregeld.
// OF het zijn de opdrachten waarvan ik uitvoerende ben (MLDORD)
if (params.mld_key)
if (mld_key)
var pautfunction = "WEB_MLDUSE";
else
{
@@ -219,12 +219,15 @@ function opdr_plan(params)
/*height: 300px;*/
background-color: #FFFFFF;
background: #FFFFFF;
border: #FFFFFF solid 0px;
border: 1px solid;
float: left;
color: #000000;
/*margin-left: 5px;*/
margin-top: 5px;
}
.fcltcard:hover {
color: #00a;
}
html {
background-color: #D9F4FF;
}
@@ -239,21 +242,22 @@ function opdr_plan(params)
}
.cardbeheerder {
background-color: #559CB9;
min-height: 72px;
}
.cardbeheerder.uitvbe {
background-color: #559CB9;
background-color: #55B99C; /* Bedrijf Extern. */
}
.cardbeheerder.uitvbi {
background-color: #559CB9;
background-color: #C99CA8; /* Bedrijf Intern. */
}
.cardbeheerder.uitvp {
background-color: #559CB9;
.cardbeheerder.uitvpi {
background-color: #559CB9; /* Persoon Intern. */
}
.cardbeheerder.uitvnt {
background-color: #559CB9;
background-color: #CD4A48; /* Niet Toegewezen. */
}
.cardbeheerder.active {
background-color: #95DCF9;
background-color: #DAA520;
}
.cardbeheerder .profile img.profile {
max-height: 64px;
@@ -261,6 +265,7 @@ function opdr_plan(params)
.cardname {
font-weight: bold;
color: #fff;
line-height: 1.2em;
}
.cardsubname {
color: #eee;
@@ -271,19 +276,25 @@ function opdr_plan(params)
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: #333;
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.
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;
@@ -306,13 +317,14 @@ function opdr_plan(params)
supported by Chrome and Opera */
}
.cardopdrnochange {
//font-size: 1em;
//vertical-align: top;
//margin-top: 3px;
/*font-size: 1em; */
/*vertical-align: top; */
/*margin-top: 3px; */
color: #CC0000;
}
div.activecard {
background-color: #E8FFE8;
border-color: #333;
}
div.legendaright {
float: right;
@@ -324,24 +336,24 @@ function opdr_plan(params)
}
.placeholderclass {
background: red !important;
//visibility: visible;
/*visibility: visible; */
display:none;
//width: inherited;
//height:inherited;
/*width: inherited; */
/*height:inherited; */
}
</style>
<script type="text/javascript">
function sort(pkey)
function sort(pcardboxid)
{
var sortableList = $("#cardboxbeh" + pkey);
//alert("pcardboxid = " + pcardboxid);
var sortableList = $("#" + pcardboxid);
var listitems = $("div", sortableList);
listitems.sort(function (a, b)
{
//return ($(a).attr("opdr_key").toUpperCase() > $(b).attr("opdr_key").toUpperCase()) ? 1 : -1;
//return ($(a).attr("einddatum") > $(b).attr("einddatum")) ? 1 : -1;
//return ($(a).attr("einddatum") + $(a).attr("opdr_key").toUpperCase() > $(b).attr("einddatum") + $(b).attr("opdr_key").toUpperCase()) ? 1 : -1;
return (($(a).attr("active") == "1"? "0" : "1") + $(a).attr("einddatum") + $(a).attr("opdr_key").toUpperCase() > ($(b).attr("active") == "1"? "0" : "1") + $(b).attr("einddatum") + $(b).attr("opdr_key").toUpperCase()) ? 1 : -1;
{ // Sorteervolgorde: 1) Active opdrachten (active == 1) bovenaan. Daar zijn ze mee bezig. (Beheerder is ook actief).
// 2) Einddatum, wat het eerst klaar moet zijn staat boven aan (kleinste waarde bovenaan).
// 3) Meldingnummer (A12345/1) (kleinste waarde bovenaan).
return (($(a).attr("active") == "1"? "0" : "1") + $(a).attr("einddatum") + "/" + $(a).attr("opdracht") > ($(b).attr("active") == "1"? "0" : "1") + $(b).attr("einddatum") + "/" + $(b).attr("opdracht")) ? 1 : -1;
});
sortableList.append(listitems);
}
@@ -349,7 +361,7 @@ function opdr_plan(params)
var selectedCard;
var selectedCurrentCard;
var lastClickedPrsKey;
var lastClickedCardboxid;
var lastClickedCard;
var received = false;
var selectedCardArray = [];
@@ -362,9 +374,9 @@ function opdr_plan(params)
if ($(this).hasClass("disable-sort-item"))
return;
var prs_key_clicked = $(this).parent().attr("prs_key");
var cardboxid_clicked = $(this).parent().attr("id");
if (lastClickedPrsKey && lastClickedPrsKey != prs_key_clicked)
if (lastClickedCardboxid && lastClickedCardboxid != cardboxid_clicked)
lastClickedCard = null; // Laatste aangeklikte kaart was in een andere kolom. Dan wordt lastClickedCard null.
// Deselecteer alle kaarten van andere rijen.
@@ -381,7 +393,6 @@ function opdr_plan(params)
selectedCurrentCard.after(selectedCurrentCard.clone().removeClass("selectedcard").addClass("pholder").hide());
}
// debugger;
// Als shift key is ingedrukt dan voorgaande geselecteerde kaart tot aangeklikte kaart selecteren.
if (e.shiftKey)
{ // Shift key is aan geklikt. Dan alle kaarten selecteren tussen huidige kaart en lastClickedCard.
@@ -389,7 +400,7 @@ function opdr_plan(params)
if (lastClickedCard == null)
lastClickedCard = $(this).parents().children("div.cardorders").first(); // De eerste kaart in de kolom.
if (lastClickedCard.attr("opdr_key") < $(this).attr("opdr_key"))
if (lastClickedCard.attr("sortid") < $(this).attr("sortid"))
{
start = lastClickedCard;
end = $(this);
@@ -406,7 +417,7 @@ function opdr_plan(params)
// Nu de juiste kaarten selecteren.
var icard = start; // iterator kaarten.
while (icard.prop("tagName") == "DIV" && icard.attr("opdr_key") != end.attr("opdr_key"))
while (icard.prop("tagName") == "DIV" && icard.attr("sortid") != end.attr("sortid"))
{
// Geblokkeerde kaarten en clonen overslaan.
if (!icard.hasClass("disable-sort-item") && !icard.hasClass("pholder"))
@@ -446,7 +457,7 @@ function opdr_plan(params)
if (selectedCurrentCard.next("div.cardorders").hasClass("pholder"))
selectedCurrentCard.next("div.cardorders").remove();
lastClickedPrsKey = prs_key_clicked;
lastClickedCardboxid = cardboxid_clicked;
lastClickedCard = $(this);
});
@@ -484,8 +495,11 @@ function opdr_plan(params)
"div.cardbeheerder",
function (e)
{
var prs_key_dblclick = $(this).attr("prs_key");
var url = "appl/prs/prs_perslid.asp?prs_key=" + prs_key_dblclick;
var uitv_key_dblclick = $(this).attr("uitv_key");
if ($(this).hasClass("uitvpi"))
var url = "appl/prs/prs_perslid.asp?prs_key=" + uitv_key_dblclick;
else
var url = "appl/prs/prs_bedrijf.asp?bedrijf_key=" + uitv_key_dblclick;
FcltMgr.openDetail(url, { reuse: true });
});
});
@@ -496,20 +510,39 @@ function opdr_plan(params)
<%
var buttons = [];
buttons.push({ icon: "legenda.png", title: L("lcl_res_legenda"), action: "openLegenda()" });
buttons.push({ icon: "print.png", title: L("lcl_print_table"), action: "opdr_print()" });
// PF: bang van niet.. buttons.push({ icon: "print.png", title: L("lcl_print_table"), action: "opdr_print()" });
IFRAMER_HEADER(L("lcl_orders"), buttons);
%>
<div id="planbodylist">
<%
//__Log("'0222/10/1' < '0222/100/1' = " + ("0222/10/1" < "0222/100/1"));
//__Log("'0222/100/1' < '0222/100/2' = " + ("0222/100/1" < "0222/100/2"));
//__Log("'0221/10/1' < '0222/10/1' = " + ("0221/10/1" < "0222/10/1"));
//__Log("'0221/10/1' < '0222/10/1' = " + ("0221/10/1" < "0222/10/1"));
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;
var opdr_key = oRs("mld_opdr_key").Value;
var behandelaar = oRs("behandelaar").Value;
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 || "";
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.
@@ -517,12 +550,16 @@ function opdr_plan(params)
// 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 (prs_key != oldprs_key)
if ((uitv_type != "BI" && uitv_key != olduitv_key) ||
(uitv_type == "BI" && (uitv_key != olduitv_key || prs_key != oldprs_key)))
{
CARDBOX_START("cardboxbeh" + prs_key, {cardclass: "cardbox cbsortable", html: "prs_key=" + prs_key});
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")
});
%> <script type="text/javascript">
$(function() {
$("#cardboxbeh<%=prs_key%>").sortable({
$("#cardboxbeh<%=uitv_key + (uitv_type == "BI"? "_" + prs_key : "")%>").sortable({
items: '.sortable:not(.disable-sort-item)',
connectWith: ".cardbox",
opacity: 0.7,
@@ -581,8 +618,6 @@ function opdr_plan(params)
received = false;
// Bepaal de prs_key van de lijst waar de items naar toe worden gekopieerd (destination) i.v.m. het sorteren op het eind.
var prs_key_dest = ui.item.parent().attr("prs_key");
// Uiteindelijk voeg ik de geselecteerde items toe achter "het item" (aangeklikte en gesleepte item) in de nieuwe lijst.
// Daarna "het item" in de lijst verwijderen omdat het net ook (dubbel) is toegevoegd.
@@ -592,9 +627,10 @@ function opdr_plan(params)
$(".selectedcard").removeClass("selectedcard");
// Sorteer de lijst waar de items aan zijn toegevoegd.
sort(prs_key_dest);
var cardboxid = ui.item.parent().attr("id"); // Item is de opdrcard (destination) en parent() is de cardbox (destination).
sort(cardboxid);
if (<%=prs_key%> != prs_key_dest)
if ("cardboxbeh" + "<%=uitv_key + (uitv_type == "BI"? "_" + prs_key : "")%>" != cardboxid)
{
// Nu werkelijk de behandelaar aanpassen van de verschoven opdrachten.
var opdr_key_array = [];;
@@ -603,7 +639,12 @@ function opdr_plan(params)
opdr_key_array.push(elements.eq(i).attr("opdr_key"));
}
var data = { prs_key: prs_key_dest,
// Bepaal de uitv_key en prs_key van de lijst waar de items naar toe worden gekopieerd (destination).
var uitv_key_dest = ui.item.parent().attr("uitv_key");
var prs_key_dest = ui.item.parent().attr("prs_key");
var data = { uitv_key: uitv_key_dest,
prs_key: <%=prs_key%>,
opdr_key_arr: opdr_key_array.join(",") };
protectRequest.dataToken(data);
$.post("../mld/opdr_handlerchange.asp",
@@ -619,7 +660,7 @@ function opdr_plan(params)
},
create: function (event, ui)
{
sort(<%=prs_key%>);
sort("cardboxbeh<%=uitv_key + (uitv_type == "BI"? "_" + prs_key : "")%>");
},
over: function (event, ui)
{
@@ -630,38 +671,77 @@ function opdr_plan(params)
$(".cardbeheerder", this).toggleClass("active");
}
});
//$("#cardboxbeh<%=prs_key%>").sortable("disable");
//$("#cardboxbeh<%=uitv_key%>").sortable("disable");
});
</script>
<% CARD_START("cardbeh" + prs_key,
{ cardclass: "cardbeheerder",
html: "prs_key=" + prs_key + " opdr_key=-1" + " einddatum=-1" + " active=1"
<% CARD_START("cardbeh" + uitv_key,
{ cardclass: "cardbeheerder uitv" + uitvclass.toLowerCase(),
html: "uitv_key=" + uitv_key + " opdr_key=-1" + " einddatum=-1" + " active=1"
});
if (prs_key > 0)
switch(uitv_type)
{
var thisUser = new Perslid(prs_key); // geeft ook handige informatie
case "BI": if (prs_key < 0)
{ // Niet Toegewezen.
%> <tr><td><span class="readonly cardname"><%=L("lcl_opdr_unassigned") + " " + safe.html(uitv_naam)%></span></td></tr>
<% }
else
{ // Toegewezen.
var thisUser = new Perslid(prs_key); // geeft ook handige informatie
%> <tr>
<td rowspan="2" class='profile'><img id='photo' class='profile' src='<%=thisUser.photoinfo().photopaththumb %>'></td>
<td><span class="readonly cardname"><%=safe.html(uitv_naam)%><br><%=safe.html(behandelaar)%></span></td>
</tr>
<tr>
<td><span class="readonly cardsubname">
<%= safe.html(thisUser.prs_srtperslid())%>
<%= thisUser.prs_perslid_telefoonnr() ? "<br><i class='fa fa-phone'></i>&nbsp;"+safe.html(thisUser.prs_perslid_telefoonnr()) : "" %>
</span></td>
</tr>
<%
}
break;
case "PI": var thisUser = new Perslid(uitv_key); // geeft ook handige informatie
%> <tr>
<td rowspan="2" class='profile'><img id='photo' class='profile' src='<%=thisUser.photoinfo().photopaththumb %>'></td>
<td><span class="readonly cardname"><%=safe.html(thisUser.naam())%></span></td>
</tr>
<tr>
<td><span class="readonly cardsubname">
<%= safe.html(thisUser.prs_srtperslid())+"<br>"%>
<%= thisUser.prs_perslid_telefoonnr() ? "<i class='fa fa-phone'></i>&nbsp;"+safe.html(thisUser.prs_perslid_telefoonnr()) : "" %>
</span></td>
</tr>
<% 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();
%>
<tr><td rowspan="2" class='profile'><img id='photo' class='profile' src='<%=thisUser.photoinfo().photopaththumb %>'></td>
<td><span class="readonly cardname"><%=safe.html(behandelaar)%></span></td></tr>
<tr><td><span class="readonly cardsubname"><%=safe.html(thisUser.prs_srtperslid())%></span></td></tr>
<% }
else
{
%> <tr><td><span class="readonly cardname"><%=L("lcl_opdr_unassigned")%></span></td></tr>
<% }
<tr>
<td><span class="readonly cardname"><%=safe.html(uitv_naam)%></span></td>
</tr>
<tr>
<td><span class="readonly cardsubname">
<%= uitv_plaats ? safe.html(uitv_plaats) + "<br>" : ""%>
<%= uitv_telefoon ? "<i class='fa fa-phone'></i>&nbsp;"+safe.html(uitv_telefoon) : "" %>
</span></td>
</tr>
<% break;
}
CARD_END();
}
var uitvoerende = oRs("naam").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 || "";
if (isPrinting || S("rs_maxchar") < 0 || mld_opdr_omschrijving.length < S("rs_maxchar") * 1.20) // 'Meer' moet minstens 20% extra tekst opleveren.
mld_opdr_omschrijving = safe.html(oRs("mld_opdr_omschrijving").Value); // simpelweg hele tekst
safe_mld_opdr_omschrijving = safe.html(oRs("mld_opdr_omschrijving").Value); // simpelweg hele tekst
else
{
// Oke, op scherm afkappen na S("rs_maxchar") karakters.
@@ -683,11 +763,15 @@ function opdr_plan(params)
CARD_START("opdrcard" + opdr_key,
{ cardclass: "cardorders sortable" +
(!this_opdr.canChange || mld_statusopdr_key == 8? " disable-sort-item" : "") +
(!this_opdr.canChange || mld_statusopdr_key == 8 || uitv_type == "BE"? " disable-sort-item" : "") +
(mld_statusopdr_key == 8? " activecard" : "") +
(einddatum < now? " latecard" : ""),
html: "opdr_key=" + opdr_key + " opdracht=" + safe.html(opdracht) + " einddatum=" + einddatum + " active=" + (mld_statusopdr_key == 8? "1" : "0")
});mld_statusopdr_key
html: "opdr_key=" + opdr_key
+ " opdracht=" + safe.html(opdracht)
+ " einddatum=" + einddatum
+ " active=" + (mld_statusopdr_key == 8? "1" : "0")
+ " sortid=" + (mld_statusopdr_key == 8? "0" : "1") + einddatum + "/" + opdracht
});
%> <tr>
<td>
<% if (!this_opdr.canChange)
@@ -698,14 +782,26 @@ function opdr_plan(params)
<% } else { %>
<i class="fa fa-chevron-right" aria-hidden="true"></i>
<% } %>
<span class="readonly cardopdrnr <%=(!this_opdr.canChange? " disable-sort-item" : "")%>"><%=safe.html(opdracht)%></span><span class="carddate"><i class="fa fa-clock-o fa-fw"></i><%=safe.html(toDateTimeString(oRs("mld_opdr_einddatum").Value), false,false, true)%></span>
<span class="readonly cardopdrnr <%=(!this_opdr.canChange? " disable-sort-item" : "")%>"><%=safe.html(opdracht)%></span>
<% if (oRs("mld_opdr_plandatum").Value != null)
{
%><span class="carddate"><i class="fa fa-clock-o fa-fw"></i><%=toDateTimeString(oRs("mld_opdr_plandatum").Value, false,false, true)%></span><%
} else { // straks ook de startdatum
%><span class="carddate"><i class="fa fa-calendar-check-o fa-fw"></i><%=toDateTimeString(oRs("mld_opdr_einddatum").Value, false,false, true)%></span><%
}
if (plaatsmelding) {
%><br><span class="cardplace"><i class="fa fa-map-marker fa-fw"></i><%=plaatsmelding.length < 40 ? safe.html(plaatsmelding) : safe.html(plaatsmelding.substr(0,36))+"&hellip;" %></span><%
}
%>
</td></tr>
<tr><td><span class="readonly cardopdrtxt <%=(!this_opdr.canChange? " disable-sort-item" : "")%>"><%=safe_mld_opdr_omschrijving%></span></td></tr>
<% CARD_END();
olduitv_key = uitv_key;
oldprs_key = prs_key;
oRs.MoveNext();
if (oRs.eof || (oRs("prs_perslid_key").Value || -1) != oldprs_key)
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();
}