DJIN#55139 D&O: Maat aanpassen in bestelopdracht (kenmerk van bestelregel)
svn path=/Website/trunk/; revision=41506
This commit is contained in:
@@ -30,7 +30,12 @@
|
||||
var prs_key = getQParamInt('prs_key',-1);
|
||||
var urole = getQParamSafe("urole");
|
||||
var PRSreadlevel = getQParamInt('PRSreadlevel',-1);
|
||||
|
||||
|
||||
if (bestel_item_key == -1)
|
||||
{
|
||||
var km_key_arr = getQParamIntArray("km_key", []);
|
||||
var km_val_arr = getQParamArray("km_val", []);
|
||||
}
|
||||
var autfunction = {fo: 'WEB_BESFOF', bo: 'WEB_BESBOF'}[urole] || 'WEB_BESUSE';
|
||||
authparams = user.checkAutorisation(autfunction, true, dis_key);
|
||||
|
||||
@@ -223,6 +228,26 @@ function changeName(prs_key) {
|
||||
<tr><td><table width=100% id="theTable">
|
||||
|
||||
<%
|
||||
var sql_km_key = "(SELECT w.bes_kenmerkbesteli_waarde"
|
||||
+ " FROM bes_kenmerkbesteli w"
|
||||
+ " WHERE w.bes_bestelling_item_key = " + bestel_item_key
|
||||
+ " AND w.bes_kenmerk_key = k.bes_kenmerk_key"
|
||||
+ ")";
|
||||
|
||||
var sql_km_new = "";
|
||||
if (bestel_item_key == -1 && km_key_arr.length > 0)
|
||||
{
|
||||
sql_km_new = "DECODE(k.bes_kenmerk_key";
|
||||
// de waarden die al ingevuld zijn.
|
||||
for (k=0; k<km_key_arr.length; k++)
|
||||
{
|
||||
sql_km_new += "," + km_key_arr[k] + "," + safe.quoted_sql(km_val_arr[k]);
|
||||
}
|
||||
sql_km_new += "," + lcl.xsql("k.bes_kenmerk_default", "k.bes_kenmerk_key")
|
||||
+ ")";
|
||||
}
|
||||
|
||||
|
||||
sql = "SELECT k.bes_kenmerk_key kenmerk_key, "
|
||||
+ lcl.xsql('sk.bes_srtkenmerk_omschrijving', 'sk.bes_srtkenmerk_key') +" kenmerk_omschrijving, "
|
||||
+ " sk.bes_srtkenmerk_kenmerktype kenmerk_kenmerktype, "
|
||||
@@ -233,8 +258,11 @@ function changeName(prs_key) {
|
||||
+ " sk.bes_srtkenmerk_nmax kenmerk_nmax, "
|
||||
+ " sk.bes_srtkenmerk_systeem kenmerk_systeem, "
|
||||
+ ( bestel_item_key > -1
|
||||
? " w.bes_kenmerkbesteli_waarde"
|
||||
: lcl.xsql('k.bes_kenmerk_default', 'k.bes_kenmerk_key')
|
||||
? sql_km_key
|
||||
: ( sql_km_new == ""
|
||||
? lcl.xsql("k.bes_kenmerk_default", "k.bes_kenmerk_key")
|
||||
: sql_km_new
|
||||
)
|
||||
) + " kenmerk_waarde, "
|
||||
+ " k.bes_kenmerk_volgnummer kenmerk_volgnr, "
|
||||
+ lcl.xsql('sk.bes_srtkenmerk_dimensie', 'sk.bes_srtkenmerk_key') +" kenmerk_dimensie, "
|
||||
@@ -248,7 +276,6 @@ function changeName(prs_key) {
|
||||
+ " k.bes_kenmerk_regexp kenmerk_regexp"
|
||||
+ " FROM bes_srtkenmerk sk"
|
||||
+ " , bes_kenmerk k"
|
||||
+ (bestel_item_key > -1 ? " , bes_kenmerkbesteli w" : "")
|
||||
+ " WHERE (k.bes_srtinstallatie_key = " + dis_key + " AND k.bes_kenmerk_niveau LIKE 'D'"
|
||||
+ " OR k.bes_srtinstallatie_key = " + srtgroup_key + " AND k.bes_kenmerk_niveau LIKE 'G'"
|
||||
+ " OR k.bes_srtinstallatie_key = " + srtdeel_key + " AND k.bes_kenmerk_niveau LIKE 'S')"
|
||||
@@ -256,7 +283,6 @@ function changeName(prs_key) {
|
||||
+ " AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND k.bes_kenmerk_type = 'I'"
|
||||
+ (bestel_item_key > -1 ? " AND k.bes_kenmerk_key = w.bes_kenmerk_key AND w.bes_bestelling_item_key = "+bestel_item_key : "")
|
||||
+ " ORDER BY k.bes_kenmerk_volgnummer, UPPER("+lcl.xsql('sk.bes_srtkenmerk_omschrijving', 'sk.bes_srtkenmerk_key')+")";
|
||||
|
||||
var trn = 0;
|
||||
|
||||
@@ -48,10 +48,25 @@ if (bresult.canWrite("WEB_BESBOF"))
|
||||
{
|
||||
for (i=0; i<kenmerk_key_array.length; i++)
|
||||
{
|
||||
var sql = "UPDATE bes_kenmerkbesteli"
|
||||
+ " SET bes_kenmerkbesteli_waarde = " + safe.quoted_sql(kenmerk_val_array[i])
|
||||
+ " WHERE bes_bestelling_item_key = " + bes_item_key
|
||||
+ " AND bes_kenmerk_key = " + kenmerk_key_array[i];
|
||||
// UPSERT
|
||||
var sql = "MERGE INTO bes_kenmerkbesteli t"
|
||||
+ " USING (SELECT " + bes_item_key + " item_key"
|
||||
+ " , " + kenmerk_key_array[i] + " kenmerk_key"
|
||||
+ " , " + safe.quoted_sql(kenmerk_val_array[i]) + " kenmerk_waarde"
|
||||
+ " FROM DUAL) s"
|
||||
+ " ON ( t.bes_bestelling_item_key = s.item_key"
|
||||
+ " AND t.bes_kenmerk_key = s.kenmerk_key"
|
||||
+ ")"
|
||||
+ " WHEN MATCHED THEN"
|
||||
+ " UPDATE SET t.bes_kenmerkbesteli_waarde = s.kenmerk_waarde"
|
||||
+ " WHEN NOT MATCHED THEN"
|
||||
+ " INSERT ( bes_bestelling_item_key"
|
||||
+ ", bes_kenmerk_key"
|
||||
+ ", bes_kenmerkbesteli_waarde)"
|
||||
+ " VALUES ( s.item_key"
|
||||
+ ", s.kenmerk_key"
|
||||
+ ", s.kenmerk_waarde)";
|
||||
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (err.friendlyMsg)
|
||||
{
|
||||
|
||||
@@ -250,7 +250,7 @@ function generateDetails(bes_key, params)
|
||||
opmerking: "<%=safe.jsstring(oRs("bes_srtdeel_opmerking").value || "")%>",
|
||||
urole: "<%=safe.jsstring(params.urole)%>",
|
||||
disc_key: <%=oRs("ins_discipline_key").Value%>,
|
||||
srtgroep_key: <%=oRs("bes_srtgroep_key").Value%>,
|
||||
srtgroup_key: <%=oRs("bes_srtgroep_key").Value%>,
|
||||
auth: { canWriteBESBOF: <%=(bresult.canWrite("WEB_BESBOF")?1:0)%> }
|
||||
};
|
||||
|
||||
|
||||
@@ -281,6 +281,7 @@ var new_item_key = 0;
|
||||
// levert een verwijzing naar de aantal_cell op.
|
||||
function CreateRow(bes_item_info, aantal, received, editable, objFlex, urole)
|
||||
{
|
||||
var is_new_item = false;
|
||||
var table = $("#sel_items>tbody")[0];
|
||||
|
||||
// insert data rows
|
||||
@@ -292,14 +293,10 @@ function CreateRow(bes_item_info, aantal, received, editable, objFlex, urole)
|
||||
else
|
||||
{
|
||||
tr.title = bes_item_info.srtgroup_text;
|
||||
tr.setAttribute("urole", bes_item_info.urole);
|
||||
tr.setAttribute("disc_key", bes_item_info.disc_key);
|
||||
tr.setAttribute("srtgroep_key", bes_item_info.srtgroep_key);
|
||||
tr.setAttribute("srtdeel_key", bes_item_info.srtdeel_key);
|
||||
tr.setAttribute("item_key", bes_item_info.item_key);
|
||||
}
|
||||
if (!bes_item_info.item_key || String(bes_item_info.item_key).match(/^new/))
|
||||
{
|
||||
is_new_item = true;
|
||||
new_item_key ++; // alstie vooralsnog maar uniek is.
|
||||
// Maak een kloon van bes_item_info omdat we het (compleet) gaan opslaan in de <tr>
|
||||
// JScript slaat alleen een referentie naar het object op en elke regel zou anders
|
||||
@@ -312,6 +309,15 @@ function CreateRow(bes_item_info, aantal, received, editable, objFlex, urole)
|
||||
bes_item_info = binfo;
|
||||
bes_item_info.item_key = "new" + new_item_key;
|
||||
}
|
||||
if (!bes_item_info.isFreeArticle)
|
||||
{
|
||||
tr.setAttribute("disc_key", bes_item_info.disc_key);
|
||||
tr.setAttribute("srtdeel_key", bes_item_info.srtdeel_key);
|
||||
tr.setAttribute("srtgroup_key", bes_item_info.srtgroup_key);
|
||||
tr.setAttribute("new_id", bes_item_info.item_key);
|
||||
tr.setAttribute("item_key", (is_new_item ? -1 : bes_item_info.item_key));
|
||||
tr.setAttribute("urole", (is_new_item ? urole : bes_item_info.urole));
|
||||
}
|
||||
|
||||
tr.bes_item_info = bes_item_info;
|
||||
if (editable)
|
||||
@@ -331,7 +337,7 @@ function CreateRow(bes_item_info, aantal, received, editable, objFlex, urole)
|
||||
? "<i class='fa fa-fw fa-trash-o fa-lg' onclick='cancel_item(this)' style='cursor:pointer'></i><BR>"
|
||||
: ""
|
||||
)
|
||||
+ ( editable && objFlex[0].length && bes_item_info.auth.canWriteBESBOF==1 // minimaal 1 kenmerk aanwezig en BESBOF-rechten op catalogus
|
||||
+ ( editable && !is_new_item && objFlex[0].length && bes_item_info.auth.canWriteBESBOF==1 // minimaal 1 kenmerk aanwezig en BESBOF-rechten op catalogus
|
||||
? "<i class='fa fa-fw fa-edit' title='"+ L("lcl_change") +"' onclick='edit_kenmerk_item(this)' style='cursor:pointer'></i><BR>"
|
||||
: ""
|
||||
)
|
||||
@@ -379,10 +385,12 @@ function CreateRow(bes_item_info, aantal, received, editable, objFlex, urole)
|
||||
var flexkeys = [];
|
||||
var flexdeels = [];
|
||||
var flexitems = [];
|
||||
var flexvals = [];
|
||||
var cell_arr = [];
|
||||
for (i=0; i<objFlex[0].length; i++) {
|
||||
cell_arr.push(objFlex[2][i] + ": " + objFlex[3][i]);
|
||||
flexkeys.push(objFlex[0][i]);
|
||||
flexvals.push(escape(objFlex[1][i]));
|
||||
tr.flexvals.push(escape(objFlex[1][i])); // escape om komma's in teksten te ondersteunen
|
||||
flexdeels.push(bes_item_info.srtdeel_key);
|
||||
flexitems.push(bes_item_info.item_key);
|
||||
@@ -397,14 +405,17 @@ function CreateRow(bes_item_info, aantal, received, editable, objFlex, urole)
|
||||
$("#besitemflex").append(newDiv);
|
||||
|
||||
cell.appendChild(newDiv);
|
||||
cell.innerHTML += "<input type='hidden' name='flexkeys" + id_key + "' id='flexkeys" + id_key + "' value='" + flexkeys.join(",") + "'>";
|
||||
cell.innerHTML += "<input type='hidden' name='flexkeys" + id_key + "' id='flexkeys" + id_key + "' value='" + flexkeys.join(",") + "'>";
|
||||
cell.innerHTML += "<input type='hidden' name='flexdeels" + id_key + "' id='flexdeels" + id_key + "' value='" + flexdeels.join(",") + "'>";
|
||||
cell.innerHTML += "<input type='hidden' name='flexitems" + id_key + "' id='flexitems" + id_key + "' value='" + flexitems.join(",") + "'>";
|
||||
cell.innerHTML += "<input type='hidden' name='flexvals" + id_key + "' id='flexvals" + id_key + "' value='" + flexvals.join(",") + "'>";
|
||||
}
|
||||
else {
|
||||
cell.innerHTML += "<input type='hidden' name='flexkeys" + id_key + "' id='flexkeys" + id_key + "' value='-1'>";
|
||||
else
|
||||
{
|
||||
cell.innerHTML += "<input type='hidden' name='flexkeys" + id_key + "' id='flexkeys" + id_key + "' value='-1'>";
|
||||
cell.innerHTML += "<input type='hidden' name='flexdeels" + id_key + "' id='flexdeels" + id_key + "' value=''>";
|
||||
cell.innerHTML += "<input type='hidden' name='flexitems" + id_key + "' id='flexitems" + id_key + "' value=''>";
|
||||
cell.innerHTML += "<input type='hidden' name='flexvals" + id_key + "' id='flexvals" + id_key + "' value=''>";
|
||||
}
|
||||
cell.innerHTML += "<div id='div" + id_key + "' style='display: \"none\"'></div>"+ "</nobr>";
|
||||
|
||||
@@ -521,14 +532,19 @@ function edit_kenmerk_item(een_cell)
|
||||
|
||||
var prs_key = document.u2.person.value;
|
||||
|
||||
var srtdeel_key = $tr.attr("srtdeel_key");
|
||||
var item_id = $tr.attr("new_id");
|
||||
|
||||
v_url = "../bes/bes_edit_item_kenmerk.asp"
|
||||
+ "?urole=" + $tr.attr("urole")
|
||||
+ "&srtdeel_key=" + $tr.attr("srtdeel_key")
|
||||
+ "&srtgroup_key=" + $tr.attr("srtgroep_key")
|
||||
+ "&srtgroup_key=" + $tr.attr("srtgroup_key")
|
||||
+ "&dis_key=" + $tr.attr("disc_key")
|
||||
+ "&prs_key=" + prs_key
|
||||
+ "&item_key=" + $tr.attr("item_key");
|
||||
FcltMgr.openModalDetail(v_url, L("lcl_kenmerk_frame"));
|
||||
+ "&item_key=" + $tr.attr("item_key")
|
||||
+ "&km_key=" + $("#flexkeys"+srtdeel_key+"_"+item_id).val()
|
||||
+ "&km_val=" + $("#flexvals"+srtdeel_key+"_"+item_id).val();
|
||||
FcltMgr.openModalDetail(v_url, L("lcl_kenmerk_frame"), {callback: FcltMgr.reload});
|
||||
}
|
||||
|
||||
function checkInput()
|
||||
|
||||
Reference in New Issue
Block a user