MNNL#52305: Testresultaat: Multiwijzigen/Multiverplaatsen over meerdere objectsoorten.

svn path=/Website/trunk/; revision=37774
This commit is contained in:
Maykel Geerdink
2018-04-26 07:08:23 +00:00
parent d1756e5690
commit c8b3ea12bf
2 changed files with 31 additions and 12 deletions

View File

@@ -117,20 +117,27 @@ authparams = last_this_ins.authparams(autfunction);
<body class="modal" id="mod_insmultiedit">
<%
sql = "SELECT DISTINCT s.ins_srtdeel_key" // PF: verondersteld de omschrijving overbodig hier
+ ", s.ins_srtdeel_binding"
+ " , g.ins_srtgroep_key"
+ " , g.ins_discipline_key"
+ " FROM ins_deel d"
+ ", ins_srtdeel s"
+ " , ins_srtdeel s"
+ " , ins_srtgroep g"
+ " WHERE s.ins_srtdeel_key = d.ins_srtdeel_key"
+ " AND d.ins_deel_key in (" + ingesloten.join(",") + ")";
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
+ " AND d.ins_deel_key in (" + ingesloten.join(",") + ")";
oRs = Oracle.Execute(sql);
var ins_srtdeel_key = oRs("ins_srtdeel_key").value;
var ins_srtdeel_binding = oRs("ins_srtdeel_binding").value;
var ins_srtdeel_key = oRs("ins_srtdeel_key").Value;
var ins_srtgroep_key = oRs("ins_srtgroep_key").Value;
var ins_discipline_key = oRs("ins_discipline_key").Value;
var diff_objsrt = false;
var i = 0;
var diff_grp = false
var diff_disc = false;
oRs.MoveNext();
while (!oRs.eof)
{
i++;
if (oRs("ins_srtdeel_key").value != ins_srtdeel_key) diff_objsrt = true;
if (oRs("ins_srtdeel_key").Value != ins_srtdeel_key) diff_objsrt = true;
if (oRs("ins_srtgroep_key").Value != ins_srtgroep_key) diff_grp = true;
if (oRs("ins_discipline_key").Value != ins_discipline_key) diff_disc = true;
oRs.MoveNext();
}
oRs.close();
@@ -258,13 +265,21 @@ authparams = last_this_ins.authparams(autfunction);
<%
// Als je objectsoort verschilt dan zijn alleen de "vaste" kenmerken te wijzigen en de flexkenmerken dus niet.
if (!diff_objsrt)
// Als de groep hetzelfde is en de objectsoort verschillend, dan alleen de flexkenmerken op discipline en groep niveau tonen.
// Als de discipline hetzelfde is en de objectgroep en objectsoort verschillend, dan alleen de flexkenmerken op discipline niveau tonen.
if (!diff_disc)
{
var fromniveau = "S";
if (diff_grp)
fromniveau = "D";
else if (diff_objsrt)
fromniveau = "G";
generateFlexKenmerkBlock({ fnpre: function () {BLOCK_START("insMultiEdit", L("lcl_flexible_properties"));},
fnpost: BLOCK_END,
urole: urole,
ins_key: -1,
srtdeelkey_array: ins_srtdeel_key > 0? [ins_srtdeel_key] : [],
fromniveau: fromniveau,
nodefaults: true,
reado: false,
multi: true,

View File

@@ -45,6 +45,7 @@ function generateFlexKenmerkBlock(params)
var ins_key = params.ins_key || -1; // Deel key
var srtdeel_key = params.srtdeel_key || -1; // Srtdeel key
var fromniveau = params.fromniveau || "S";
var srtdeel_oms = params.srtdeel_oms;
var srtdeelkey_array = params.srtdeelkey_array || [];
var disc_key = params.disc_key || -1;
@@ -265,9 +266,12 @@ function generateFlexKenmerkBlock(params)
+ " AND k.ins_kenmerk_niveau = 'G')"
+ " OR (k.ins_srtinstallatie_key = g.ins_discipline_key"
+ " AND k.ins_kenmerk_niveau = 'D'))"
+ (bewerkniveau == 'S'
? " AND ins_kenmerk_bewerkniveau = 'S'"
: "")
+ (fromniveau != "S"
? " AND k.ins_kenmerk_niveau IN ('D'" + (fromniveau == "G"? ", 'G'" : "") + ")"
: "")
+ (bewerkniveau == "S"
? " AND ins_kenmerk_bewerkniveau = 'S'"
: "")
+ (srtdeel_oms && srtdeel_oms != ""
? " AND ( (ins_srtdeel_upper LIKE " + safe.quoted_sql_wild("%" + srtdeel_oms + "%") + ")"
+ " OR (ins_srtdeel_code_upper LIKE " + safe.quoted_sql_wild("%" + srtdeel_oms + "%") + "))"