DJIN#37690 opdrachten flags toegevoegd

svn path=/Website/trunk/; revision=34280
This commit is contained in:
2017-06-15 09:22:34 +00:00
parent 4fda73029c
commit 901342ce85
9 changed files with 161 additions and 16 deletions

View File

@@ -2072,6 +2072,7 @@ mld = {setmeldingstatus:
+ " , mdp.mld_disc_params_opdr_kosten"
+ " , o.mld_opdr_opmerking"
+ " , mld_opdr_einddatum"
+ " , o.mld_opdr_flag"
+ " , sd.ins_srtdiscipline_bes"
+ " , sd.ins_srtdiscipline_prefix"
+ " , o.fac_activiteit_key"
@@ -2203,6 +2204,7 @@ mld = {setmeldingstatus:
opdrkosten_verplicht: oRs("mld_disc_params_opdr_kosten").Value || 0,
opdr_opmerking: oRs("mld_opdr_opmerking").Value,
mld_opdr_einddatum: new Date(oRs("mld_opdr_einddatum").Value),
flag: oRs("mld_opdr_flag").Value,
srtdiscbes: (oRs("ins_srtdiscipline_bes").Value == 1),
srtdiscprefix: oRs("ins_srtdiscipline_prefix").Value,
act_key: oRs("fac_activiteit_key").Value || -1,
@@ -3644,6 +3646,8 @@ mld = {setmeldingstatus:
var myBO2FieldChange = (myBO2Change && !mresult.iamBedrijfContact);
mresult.canWriteFlags = S("mld_opdracht_flags") > 0 && (mresult.canWrite("WEB_ORDBO2") || mresult.canWrite("WEB_ORDBOF") || mresult.canWrite("WEB_MLDORD"));
__Log("myBO2Change: " + myBO2Change);
switch (opdr_status)
@@ -4917,6 +4921,7 @@ mld = {setmeldingstatus:
+ " FROM prs_kostenplaats k"
+ " WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key) kpstring"
+ " , o.mld_opdr_key"
+ " , o.mld_opdr_flag"
+ " , c.cnt_contract_key"
+ " , c.cnt_contract_nummer"
+ " , c.cnt_contract_nummer_intern"
@@ -5083,6 +5088,22 @@ mld = {setmeldingstatus:
if (frontend && mld_key)
sql += " AND t.mld_typeopdr_zichtbaarfe = 1";
if (params.flags && params.flags.length > 0 && params.flags.length < S("mld_opdracht_flags"))
{
var filterNull = false;
for (var i = 0; i < params.flags.length; i++)
{
if (params.flags[i] === 0)
filterNull = true;
}
sql += " AND (o.mld_opdr_flag IN (" + params.flags.join(",") + ")";
if (filterNull)
sql += " OR o.mld_opdr_flag IS NULL";
sql += ")";
}
if (mld_key)
{
sql += " AND o.mld_melding_key = " + mld_key;

View File

@@ -748,6 +748,21 @@ oRs.Close();
suppressEmpty: true,
no_table: true
});
if ((urole == "bo" || urole == "fo") && (S("mld_opdracht_flags") > 0))
{
sql = [];
for (var i=0; i<S("mld_opdracht_flags"); i++)
{
sql.push("SELECT "+i+","+safe.quoted_sql(L("lcl_opdr_flag"+i))+" FROM DUAL");
}
FCLTselector("opdrflag",
sql.join(" UNION ALL "),
{ initKey: mld_opdr.flag,
label: L("lcl_opdr_flags")
});
}
BLOCK_END();
if (mld_melding.show_ins)

View File

@@ -352,6 +352,9 @@ for (var u = 0; u < uitvkeyArray.length; u++)
}
fields.push({ dbs: "mld_opdr_datumbegin", typ: "datetime", val: startdate });
if (S("mld_opdracht_flags") > 0)
fields.push({ dbs: "mld_opdr_flag", typ: "key" /* geen echte key, wel key-gedrag */, frm: "opdrflag" /* notrack */ });
if (autoorder)
{
if (opdracht_uitvoertijd)
@@ -654,6 +657,9 @@ for (var u = 0; u < uitvkeyArray.length; u++)
fields.push({ dbs: "mld_opdr_teverzenden", typ: "check", val: "" });
}
if (S("mld_opdracht_flags") > 0)
fields.push({ dbs: "mld_opdr_flag", typ: "key" /* geen echte key, wel key-gedrag */, frm: "opdrflag" /* notrack */ });
if (authparamsORDBOF)
{
fields.push({ dbs: "mld_uitvoerende_keys", typ: "key", frm: "uitvoerende", track: L("lcl_ord_company_uit"), foreign: "mld_uitvoerende", savewhen: "uitvoerende" });

View File

@@ -549,6 +549,12 @@ else
suppressEmpty: true // unsupported yet
});
if ((urole == "bo" || urole == "fo") && mld_opdr.flag)
{
// I would like the circle icon in the value instead of the label, but that is html-safe
ROFIELDTR("fld showflag", L("lcl_opdr_flags")+I("fa-circle opdrflag"+ mld_opdr.flag), L("lcl_opdr_flag" + mld_opdr.flag), {trclass: "showflag"});
}
BLOCK_END();
mld.generate_relobject_block(mld_opdr.mld_key);

View File

@@ -504,6 +504,33 @@ function opdr_list(params)
return safe.html(cnt_nr);
}
function fncolFlags(oRs)
{
var opdrkey = oRs("mld_opdr_key").Value;
var flagkey = oRs("mld_opdr_flag").Value || 0;
var ttl = L("lcl_opdr_flag" + flagkey);
var displ = "";
if (print)
{
if (flagkey != 0) displ = safe.html(ttl); // else blijft-ie gewoon leeg
}
else if (excel) // dan gewoon maar de code, handig groeperen
{
displ = flagkey||"";
}
else // maak er dan nog leuke plaatjes van
{
var flagIcon = flagkey == 0 ? "fa-circle-o" : "fa-circle";
// Met hidden flagkey voor sortering. 999 zorgt dat bij 1 keer sorteren de gevlagde direct bovenaan staan
displ = "<div" + ((urole == "bo" || urole == "fo") ? " onclick='toggleFlag(event, "+ opdrkey +");'":"")
+ " title='"+safe.htmlattr(ttl)+"'>"
+ "<i id='opdrflag"+opdrkey+"' flagkey='"+flagkey+"' class='fa "+flagIcon+" opdrflag"+flagkey+"'></i>"
+ "<span style='display:none'>"+(flagkey||999)+"</span></div>";
}
return displ;
}
// We really need to suppress columns that are obviously irrelevant for this configuration
// Fast check to see if we have anything to do with geographics
var algsql= "SELECT COUNT(*) FROM ins_srtdiscipline WHERE ins_srtdiscipline_alg > 0 AND ins_srtdiscipline_verwijder IS NULL";
@@ -539,6 +566,8 @@ function opdr_list(params)
});
// Gebruik (!tiny) om bepaalde kolommen in compacte mode niet te tonen
if (S("mld_opdracht_flags") > 0 && !frontend)
rst.addColumn(new Column({caption: I("fa-circle"), content: fncolFlags, align: "center"}));
rst.addColumn(new Column({caption: "!", content: fncolSpoed}));
var nrtooltip = (!tiny ? "mld_typeopdr_omschrijving" : null);
rst.addColumn(new Column({caption: L("lcl_shared_order"), content: fncolKey, tooltip: nrtooltip, hasActions: true }));
@@ -680,7 +709,16 @@ function opdr_list(params)
<td title="<%= L("lcl_mld_legenda_expired2_tt") %>/<%= L("lcl_mld_legenda_updated_tt")%>"><%= L("lcl_mld_legenda_expired2") %>/<%= L("lcl_mld_legenda_updated") %></td>
</tr>
</table>
<!-- Geen flags -->
<table id="opdrflaglegenda">
<% // Vlag 0 tonen we niet
for (var flagkey = 1; flagkey < S("mld_opdracht_flags"); flagkey++)
{ %>
<tr><td>
<% Response.Write(I("fa-circle opdrflag"+flagkey)); %>
&nbsp;<%=L("lcl_opdr_flag"+flagkey)%></td></tr><%
}
%>
</table>
</div>
<%
}

View File

@@ -42,7 +42,7 @@ function opdr_accept(rowArray, isMulti)
{
var opdrKeyString = getKeyString(rowArray);
var data = { opdr_key: opdrKeyString };
protectRequest.dataToken(data);
protectRequest.dataToken(data);
$.post("../mld/opdr_accept.asp",
data,
FcltCallbackRefresh,
@@ -92,3 +92,32 @@ function opdr_list_invoice(row)
FcltMgr.openDetail(url, (urole == "fe"? L("lcl_menu_fin_fe_overz") : L("lcl_menu_fin_fo_overz")));
}
}
function toggleFlag(evt, opdr_key)
{
FcltMgr.stopPropagation(evt);
var flagkey = $("#opdrflag"+opdr_key).attr("flagkey");
var data = { opdr_key: opdr_key
, flagkey: flagkey
};
protectRequest.dataToken(data);
$.post("../mld/opdr_flag.asp"
, data
, FcltCallbackAndThen(setFlag)
, "json"
);
}
function setFlag(data)
{ // Zet de flag en het volgnummer van de flag.
var opdr_key = data.opdr_key;
var flagkey = data.newflag;
var flagClass = "fa fa-circle opdrflag"+flagkey;
$("#opdrflag"+opdr_key).attr("flagkey", flagkey)
.attr("class", flagClass)
.parent().attr("title", L("lcl_opdr_flag"+flagkey));
$("#opdrflag"+opdr_key).next().text(flagkey||999); // Hidden span voor sorteren
$("#opdrtable th").removeClass("sorttable_sorted sorttable_sorted_reverse"); // sortable cache't namelijk
}

View File

@@ -343,8 +343,24 @@ oRs.close();
</div>
</td>
</tr>
<%
}
<% }
if (!justClose && S("mld_opdracht_flags") > 1 && !frontend) // Flags checkboxen -->
{
%>
<tr>
<td class="label"><label><%=L("lcl_opdr_flags")%>:&nbsp;</label></td>
<td id="opdrFlags">
<% for (flagkey=0; flagkey < S("mld_opdracht_flags"); flagkey++)
{ %>
<label for="flag<%=flagkey%>"><input type="checkbox" name="flag<%=flagkey%>" id="flag<%=flagkey%>" checked>
<% if (flagkey > 0) %>
<%=I("fa-circle opdrflag"+flagkey+" opdrs")%>
&nbsp;<%=safe.html(L("lcl_opdr_flag"+flagkey))%></label><br>
<% } %>
</td>
</tr>
<% }
// Als een srtdisc_key meegegeven dan geen lege optie
sql = "SELECT DISTINCT sd.ins_srtdiscipline_key"

View File

@@ -68,6 +68,14 @@ if (opdrtype > 0)
// Plus kalenderdatum
// Flags
var flags = [];
for (flagkey=0; flagkey < S("mld_opdracht_flags"); flagkey++)
{
if (getQParam("flag" + flagkey, "off") == "on")
flags.push(flagkey);
}
// FORM status checkboxes
var st_opdrAfm = getQParamInt("opdrAfm", 0) == 1;
var st_opdrBusy = getQParamInt("opdrBusy", 0) == 1;
@@ -128,6 +136,7 @@ var params = { urole : urole,
offerte: offerte,
planb: planb,
withflex: true,
flags: flags,
mldopdrstrej: status1,
mldopdrstnak: status2,
mldopdrsttfi: status3,
@@ -139,6 +148,7 @@ var params = { urole : urole,
mldopdrstafr: status9,
mldopdrstgoe: status10
};
if (planb)
opdr_plan (params);
else

View File

@@ -1390,7 +1390,7 @@ img.details, span.details, tr.details, i.details, div.ref {
}
.showflag .fa {
cursor: auto;
cursor: auto;
}
img.lendobj {
@@ -1574,6 +1574,10 @@ border-spacing: 1px;
.mldflag3,.mldflag4,.mldflag5,
.mldflag6,.mldflag7,.mldflag8,
.mldflag9,
.opdrflag0,.opdrflag1,.opdrflag2,
.opdrflag3,.opdrflag4,.opdrflag5,
.opdrflag6,.opdrflag7,.opdrflag8,
.opdrflag9,
.resflag0,.resflag1,.resflag2,
.resflag3,.resflag4,.resflag5,
.resflag6,.resflag7,.resflag8,
@@ -1581,18 +1585,18 @@ border-spacing: 1px;
font-size: 1.3em;
vertical-align: middle;
}
.mldflag0, .resflag0 { color: #eee;}
.mldflag1, .resflag1 { color: #4d4d4d; }
.mldflag2, .resflag2 { color: #f15854; }
.mldflag3, .resflag3 { color: #ffd600; }
.mldflag4, .resflag4 { color: #5da5da; }
.mldflag5, .resflag5 { color: #60bd68; }
.mldflag6, .resflag6 { color: #673ab7; }
.mldflag7, .resflag7 { color: #faa43a; }
.mldflag8, .resflag8 { color: #b276b2; }
.mldflag9, .resflag9 { color: #b2912f; }
.mldflag0, .resflag0, .opdrflag0 { color: #eee;}
.mldflag1, .resflag1, .opdrflag1 { color: #4d4d4d; }
.mldflag2, .resflag2, .opdrflag2 { color: #f15854; }
.mldflag3, .resflag3, .opdrflag3 { color: #ffd600; }
.mldflag4, .resflag4, .opdrflag4 { color: #5da5da; }
.mldflag5, .resflag5, .opdrflag5 { color: #60bd68; }
.mldflag6, .resflag6, .opdrflag6 { color: #673ab7; }
.mldflag7, .resflag7, .opdrflag7 { color: #faa43a; }
.mldflag8, .resflag8, .opdrflag8 { color: #b276b2; }
.mldflag9, .resflag9, .opdrflag9 { color: #b2912f; }
.mlds, .ress { /* small flags for search use*/
.mlds, .ress, .opdrs { /* small flags for search use*/
font-size: 1em;
vertical-align: inherit;
}