From c8b3ea12bfc487dd8fc033cf8efb72b294f0aaca Mon Sep 17 00:00:00 2001 From: Maykel Geerdink Date: Thu, 26 Apr 2018 07:08:23 +0000 Subject: [PATCH] MNNL#52305: Testresultaat: Multiwijzigen/Multiverplaatsen over meerdere objectsoorten. svn path=/Website/trunk/; revision=37774 --- APPL/INS/ins_edit_deel_multi.asp | 33 +++++++++++++++++++++++--------- APPL/INS/ins_flexkenmerk.inc | 10 +++++++--- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/APPL/INS/ins_edit_deel_multi.asp b/APPL/INS/ins_edit_deel_multi.asp index 08a4ebc9e5..296a363caa 100644 --- a/APPL/INS/ins_edit_deel_multi.asp +++ b/APPL/INS/ins_edit_deel_multi.asp @@ -117,20 +117,27 @@ authparams = last_this_ins.authparams(autfunction); <% 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, diff --git a/APPL/INS/ins_flexkenmerk.inc b/APPL/INS/ins_flexkenmerk.inc index 1d7fc3a811..837bb3aec8 100644 --- a/APPL/INS/ins_flexkenmerk.inc +++ b/APPL/INS/ins_flexkenmerk.inc @@ -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 + "%") + "))"