DJIN#41676 BES: kleurbolletjes zoals in andere modules ook in BES-module

svn path=/Website/trunk/; revision=36617
This commit is contained in:
Erik Groener
2018-01-17 15:10:42 +00:00
parent 2410fb2d8e
commit 3b49ad4d20
9 changed files with 195 additions and 15 deletions

View File

@@ -611,6 +611,7 @@
+ " , b.bes_bestelopdr_delivery_opmerk"
+ " , b.bes_bestelopdr_korting"
+ " , b.bes_bestelopdr_levkosten"
+ " , b.bes_bestelopdr_flag"
+ " , bes_bestelopdr_status"
+ " , (SELECT ks.prs_kostensoort_btw"
+ " FROM prs_kostensoort ks"
@@ -659,7 +660,8 @@
perslid_key : oRs("prs_perslid_key").Value,
dis_key : oRs("ins_discipline_key").Value,
korting : parseFloat((oRs("bes_bestelopdr_korting").Value? oRs("bes_bestelopdr_korting").Value : 0).toFixed(2)),
levkosten : parseFloat((oRs("bes_bestelopdr_levkosten").Value? oRs("bes_bestelopdr_levkosten").Value : 0).toFixed(2))
levkosten : parseFloat((oRs("bes_bestelopdr_levkosten").Value? oRs("bes_bestelopdr_levkosten").Value : 0).toFixed(2)),
flag : oRs("bes_bestelopdr_flag").Value
}
if(oRs("bes_bestelopdr_status").Value == 6 && oRs("bes_bestelling_retourvan_key").Value > 0)
bes_bestelopdr.statustxt = L("lcl_bes_collected");
@@ -947,6 +949,7 @@
bresult.canReadAny = bresult.canRead("WEB_BESBOF") || bresult.canRead("WEB_BESBOR") || bresult.canRead("WEB_BESBAC"); // Bestel opdracht alleen zichtbaar voor backoffice
bresult.canReadBOF = bresult.canRead("WEB_BESBOF");
bresult.canReadBOR = bresult.canRead("WEB_BESBOR");
bresult.canWriteFlags = bresult.canWrite("WEB_BESBOF") || bresult.canWrite("WEB_BESFOF"); // Kan ik flags aanpassen
// Op button niveau
bresult.canChange = false; // Wijzigen

View File

@@ -47,7 +47,8 @@ var this_bestelopdr = bes.func_enabled_bestelopdracht(opdr_key);
var fields = [ { dbs: "bes_bestelopdr_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 320 },
{ dbs: "mld_adres_key_lev", typ: "key", frm: "levering", track: L("lcl_bes_adres_lev"), foreign: "MLD_V_AFLEVERADRES" } ,
{ dbs: "mld_adres_key_fac", typ: "key", frm: "factuur", track: L("lcl_bes_adres_fac"), foreign: "MLD_V_FACTUURADRES" }
{ dbs: "mld_adres_key_fac", typ: "key", frm: "factuur", track: L("lcl_bes_adres_fac"), foreign: "MLD_V_FACTUURADRES" } ,
{ dbs: "bes_bestelopdr_flag", typ: "number", frm: "besopdrflag" }
];
if (getFParam("chkproceed", "off") == "on")
fields.push({ dbs: "bes_bestelopdr_status", typ: "key", val: 3});
@@ -229,6 +230,22 @@ var this_bestelopdr = bes.func_enabled_bestelopdracht(opdr_key);
RWTEXTAREATR("opmerk", "fldtxt", L("lcl_remark"), bes_bestelopdr.opmerking, {html: "rows='3'", suppressEmpty: true}); // Afhandeling, reden niet akkoord
ROTEXTAREATR("fldtxt", L("lcl_bes_comment"), bes_bestelopdr.delivery_opmerk, {suppressEmpty: true});
ROTEXTAREATR("fldtxt", L("lcl_bes_bestelling_lev_opm"), bes_bestelling.lev_opm, {suppressEmpty: true} );
if (this_bestelopdr.canWriteFlags && (S("bes_bestelopdr_flags") > 0))
{
var besflagnr = bes_bestelopdr.flag || 0;
sql = "";
for (var i=0; i<S("bes_bestelopdr_flags"); i++)
{
sql += "SELECT "+i+","+safe.quoted_sql(L("lcl_bestelopdr_flag"+i))+" FROM DUAL" + (i<(parseInt(S("bes_bestelopdr_flags"))-1)?" UNION ALL ":"");
}
FCLTselector("besopdrflag",
sql,
{ initKey: bes_bestelopdr.flag,
label: L("lcl_bestelopdr_flags")
});
}
BLOCK_END();

39
APPL/BES/bes_flag.asp Normal file
View File

@@ -0,0 +1,39 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
verhoog de status van de flag met 1.
*/ %>
<%
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="bes.inc" -->
<%
protectRequest.validateToken();
var besopdr_key = getFParamInt("besopdr_key");
var flagkey = getFParamInt("flagkey");
var this_besopdr = bes.func_enabled_bestelopdracht(besopdr_key);
user.auth_required_or_abort(this_besopdr.canWriteFlags);
var result = {};
flagkey += 1;
flagkey = flagkey % S("bes_bestelopdr_flags"); // cycle door de waarden {0, 1, ... , (S('bes_bestelopdr_flags')-1)}.
var updatesql = "UPDATE bes_bestelopdr"
+ " SET bes_bestelopdr_flag = " + flagkey
+ " WHERE bes_bestelopdr_key = " + besopdr_key;
Oracle.Execute(updatesql);
result.success = true;
result.besopdr_key = besopdr_key;
result.newflag = flagkey; // Het nieuwe volgnummer van de bezoeker vlaggetjes.
Response.Write(JSON.stringify(result));
%>

View File

@@ -203,6 +203,11 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera
ROTEXTAREATR("fldtxt", L("lcl_remark"), bes_bestelopdr.opmerking, {id: "txt", suppressEmpty: true}); // Afhandeling, reden niet akkoord
ROTEXTAREATR("fldtxt", L("lcl_bes_comment"), bes_bestelopdr.delivery_opmerk, {id: "odtxt", suppressEmpty: true});
ROTEXTAREATR("fldtxt", L("lcl_bes_bestelling_lev_opm"), bes_bestelling.lev_opm, {suppressEmpty: true} );
if (this_bestelopdr.canWriteFlags && bes_bestelopdr.flag)
{
ROFIELDTR("fld showflag", L("lcl_bestelopdr_flags")+I("fa-circle besopdrflag"+ bes_bestelopdr.flag), L("lcl_bestelopdr_flag" + bes_bestelopdr.flag), {trclass: "showflag"});
}
BLOCK_END();
BLOCK_START("besOpdrItems", L("lcl_bes_geselecteerd"));

View File

@@ -63,10 +63,14 @@ function opdr_list (pautfunction, params)
// params.besopdrstbev : boolean (true | false)
// params.besopdrstlev : boolean (true | false)
// params.besopdrstver : boolean (true | false)
// params.flags : intArray [flagkeys {0-9}]
var authparams = user.checkAutorisation(pautfunction);
var urole = params.urole;
var urole = params.urole;
var fronto = (urole == "fo");
var backo = (urole == "bo");
var frontend = (urole == "fe");
// Voor resulttable de globalen zetten; zou ng anders moeten.
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
@@ -93,6 +97,7 @@ function opdr_list (pautfunction, params)
var besopdrstbev = params.besopdrstbev;
var besopdrstlev = params.besopdrstlev;
var besopdrstver = params.besopdrstver;
var flags = params.flags;
var showopdrstatus = "";
if (besopdrstafg) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "1";
@@ -125,6 +130,7 @@ function opdr_list (pautfunction, params)
+ ", be.prs_bedrijf_naam prs_bedrijf_naam"
// straks + ", bes.bestelopdr_tooltip(b.bes_bestelopdr_key) tooltip" // TODO JGL: Dit is een dure tooltip!
+ ", b.bes_bestelopdr_status"
+ ", b.bes_bestelopdr_flag"
+ ", ma.mld_adres_naam afleveradres"
+ ", bst.bes_bestelling_plaats"
+ ", bst.bes_bestelling_leverdatum"
@@ -226,6 +232,23 @@ function opdr_list (pautfunction, params)
if (supplier_key)
sql += " AND be.prs_bedrijf_key = " + supplier_key;
if (!frontend && flags && flags.length > 0 && flags.length < S("bes_bestelopdr_flags"))
{
var filterNull = false;
for (var i = 0; i < flags.length; i++)
{
if (flags[i] === 0)
{
filterNull = true;
}
}
sql += " AND (b.bes_bestelopdr_flag IN (" + flags.join(",") + ")"
+ (filterNull ? " OR b.bes_bestelopdr_flag IS NULL" : "")
+ " )";
}
}
// apply 3D authorization to the locations and to the to the organisations (both ALG and PRS)
@@ -307,6 +330,33 @@ function opdr_list (pautfunction, params)
return safe.html(bestellingvoor);
}
function fncolFlags(oRs)
{
var bestelopdr_key = oRs("bes_bestelopdr_key").Value;
var flagkey = oRs("bes_bestelopdr_flag").Value || 0;
var ttl = L("lcl_bestelopdr_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='toggleBesopdrFlag(event, "+ bestelopdr_key +");'":"")
+ " title='"+safe.htmlattr(ttl)+"'>"
+ "<i id='besopdrflagimg"+bestelopdr_key+"' flagkey='"+flagkey+"' class='fa "+flagIcon+" besopdrflag"+flagkey+"'></i>"
+ "<span style='display:none'>"+(flagkey||999)+"</span></div>";
}
return displ;
}
var rst = new ResultsetTable({keyColumn: "bes_bestelopdr_key",
ID: "opdrtable",
rowData: fnrowData,
@@ -319,6 +369,10 @@ function opdr_list (pautfunction, params)
});
// Kolommen
if (S("bes_bestelopdr_flags") > 0 && !frontend) // Flags
{
rst.addColumn(new Column({caption: (outputmode == 0 ? I("fa-circle") : L("lcl_bestelopdr_flags")), content: fncolFlags, align: "center"}));
}
rst.addColumn(new Column({caption: L("lcl_ord_order_num"), content: fncolBesOpdrId}));
rst.addColumn(new Column({caption: L("lcl_bes_add_date"), content: "datum", datatype: "date"}));
rst.addColumn(new Column({caption: L("lcl_bes_Supplier"), content: "prs_bedrijf_naam", tooltip: "tooltip"}));

View File

@@ -65,3 +65,32 @@ function opdrDeliver(row)
FcltMgr.openModalDetail(url, L("lcl_bes_delivery"), {xwidth: 800});
}
}
function toggleBesopdrFlag(evt, besopdr_key)
{
FcltMgr.stopPropagation(evt);
var flagkey = $('#besopdrflagimg'+besopdr_key).attr('flagkey');
var data = { besopdr_key: besopdr_key
, flagkey : flagkey
};
protectRequest.dataToken(data);
$.post("../bes/bes_flag.asp"
, data
, FcltCallbackAndThen(setBesopdrFlag)
, "json"
);
}
function setBesopdrFlag(data)
{ // Zet de flag en het volgnummer van de flag.
var bes_key = data.besopdr_key;
var flagkey = data.newflag;
var flagimg = (flagkey == 0 ? 'fa fa-circle-o besopdrflag'+flagkey : 'fa fa-circle besopdrflag'+flagkey);
$('#besopdrflagimg'+bes_key).attr('flagkey', flagkey);
$('#besopdrflagimg'+bes_key).attr('class', flagimg);
$('#besopdrflagimg'+bes_key).parent().attr('title', L("lcl_bestelopdr_flag" + flagkey));
$('#besopdrflagimg'+bes_key).next().text(flagkey||999); // Hidden span voor sorteren
$('#opdrtable th').removeClass('sorttable_sorted sorttable_sorted_reverse'); // sortable cache't namelijk
}

View File

@@ -149,6 +149,26 @@ oRs.Close();
trclass: "secsearch"
}) ;
if (!frontend && S("bes_bestelopdr_flags") > 1) // Flags checkboxen -->
{
%>
<tr>
<td class="label"><label><%=L("lcl_bestelopdr_flags")%>:&nbsp;</label></td>
<td id="besFlags">
<% for (flagkey=0; flagkey < S("bes_bestelopdr_flags"); flagkey++)
{
if (flagkey == 0)
{
%><label for="flag0"><input type="checkbox" name="flag0" id="flag0" checked>&nbsp;<%=safe.html(L("lcl_bestelopdr_flag0"))%></label><br>
<% }
else
{
%><label for="flag<%=flagkey%>"><input type="checkbox" name="flag<%=flagkey%>" id="flag<%=flagkey%>" checked><i class="fa fa-circle besopdrflag<%=flagkey%> besopdrs"></i>&nbsp;<%=safe.html(L("lcl_bestelopdr_flag"+flagkey))%></label><br>
<% }
} %>
</td>
</tr>
<% }
%>
</table>
</td><!-- end column 1 -->

View File

@@ -65,6 +65,15 @@ else
params.adr_key = (adr_key != -1 ? adr_key : null);
params.loc_key = (loc_key != -1 ? loc_key : null);
// Flags
var flags = [];
for (flagkey=0; flagkey < S("bes_bestelopdr_flags"); flagkey++)
{
if (getQParam("flag" + flagkey, "off") == "on")
flags.push(flagkey);
}
params.flags = flags;
// FORM checkboxes
var st_opdrRej = (getQParamInt("opdrRej", 0) == 1);
var st_opdrOpen = (getQParamInt("opdrOpen", 0) == 1);

View File

@@ -1630,23 +1630,27 @@ border-spacing: 1px;
.finflag0,.finflag1,.finflag2,
.finflag3,.finflag4,.finflag5,
.finflag6,.finflag7,.finflag8,
.finflag9 {
.finflag9,
.besopdrflag0,.besopdrflag1,.besopdrflag2,
.besopdrflag3,.besopdrflag4,.besopdrflag5,
.besopdrflag6,.besopdrflag7,.besopdrflag8,
.besopdrflag9 {
font-size: 1.3em;
vertical-align: middle;
}
.mldflag0, .resflag0, .opdrflag0, .bezflag0, .finflag0 { color: #b0b0b0; }
.mldflag1, .resflag1, .opdrflag1, .bezflag1, .finflag1 { color: #4d4d4d; }
.mldflag2, .resflag2, .opdrflag2, .bezflag2, .finflag2 { color: #f15854; }
.mldflag3, .resflag3, .opdrflag3, .bezflag3, .finflag3 { color: #ffd600; }
.mldflag4, .resflag4, .opdrflag4, .bezflag4, .finflag4 { color: #5da5da; }
.mldflag5, .resflag5, .opdrflag5, .bezflag5, .finflag5 { color: #60bd68; }
.mldflag6, .resflag6, .opdrflag6, .bezflag6, .finflag6 { color: #673ab7; }
.mldflag7, .resflag7, .opdrflag7, .bezflag7, .finflag7 { color: #faa43a; }
.mldflag8, .resflag8, .opdrflag8, .bezflag8, .finflag8 { color: #b276b2; }
.mldflag9, .resflag9, .opdrflag9, .bezflag9, .finflag9 { color: #b2912f; }
.mldflag0, .resflag0, .opdrflag0, .bezflag0, .finflag0, .besopdrflag0 { color: #b0b0b0; }
.mldflag1, .resflag1, .opdrflag1, .bezflag1, .finflag1, .besopdrflag1 { color: #4d4d4d; }
.mldflag2, .resflag2, .opdrflag2, .bezflag2, .finflag2, .besopdrflag2 { color: #f15854; }
.mldflag3, .resflag3, .opdrflag3, .bezflag3, .finflag3, .besopdrflag3 { color: #ffd600; }
.mldflag4, .resflag4, .opdrflag4, .bezflag4, .finflag4, .besopdrflag4 { color: #5da5da; }
.mldflag5, .resflag5, .opdrflag5, .bezflag5, .finflag5, .besopdrflag5 { color: #60bd68; }
.mldflag6, .resflag6, .opdrflag6, .bezflag6, .finflag6, .besopdrflag6 { color: #673ab7; }
.mldflag7, .resflag7, .opdrflag7, .bezflag7, .finflag7, .besopdrflag7 { color: #faa43a; }
.mldflag8, .resflag8, .opdrflag8, .bezflag8, .finflag8, .besopdrflag8 { color: #b276b2; }
.mldflag9, .resflag9, .opdrflag9, .bezflag9, .finflag9, .besopdrflag9 { color: #b2912f; }
.mlds, .ress, .opdrs, .bezs, .fins { /* small flags for search use*/
.mlds, .ress, .opdrs, .bezs, .fins, .besopdrs { /* small flags for search use*/
font-size: 1em;
vertical-align: inherit;
}