diff --git a/APPL/INS/ins_move_deel_multi.asp b/APPL/INS/ins_move_deel_multi.asp index 72347d713d..a87eb6c15e 100644 --- a/APPL/INS/ins_move_deel_multi.asp +++ b/APPL/INS/ins_move_deel_multi.asp @@ -63,59 +63,105 @@ user.anything_todo_or_abort(tobemoved > 0); // We klagen niet over enkele wel en var g_key = getFParamInt("gebouwkey"); var l_key = getFParamInt("locatiekey"); var btype = getFParam("bttype",""); - var wis_grafisch = getFParam("wis_grafisch",'off') == 'on'; - var bind_typ; - var bind_key; + var wis_grafisch = getFParam("wis_grafisch","off") == "on"; - if (l_key > 0) - { bind_typ = 'L'; - bind_key = l_key; - } - if (btype == 'T') + var bindings = []; + var bind_msg = ""; + for (var i = 0; i < ingesloten.length; i++) { - if (g_key > 0) - { bind_typ = 'T'; - bind_key = g_key; + var sql_s = "SELECT ins_srtdeel_binding" + + " FROM ins_srtdeel s" + + " , ins_deel d" + + " WHERE s.ins_srtdeel_key = d.ins_srtdeel_key" + + " AND d.ins_deel_key = " + ingesloten[i]; + var oRs_s = Oracle.Execute(sql_s); + var bindingBits = oRs_s("ins_srtdeel_binding").Value; + oRs_s.Close(); + + var bind_typ; + var bind_key; + // Deze kun je hier toch niet kiezen + //if (bindingBits & BIND_AFDELI) + //{ + // // Kan niet naar afdeling verplaatsen + // msg = L("lcl_obj_bind_a") + " of "; + // bind_msg += (bind_msg.indexOf(msg) == -1 ? msg : ""); + //} + //if (bindingBits & BIND_PERSOO) + //{ + // // Kan niet naar persoon verplaatsen + // msg = L("lcl_obj_bind_p")+ " of "; + // bind_msg += (bind_msg.indexOf(msg) == -1 ? msg : ""); + //} + + if (bindingBits & BIND_TERREI) + { + if (g_key > 0 && btype == "T") + { + bind_typ = "T"; + bind_key = g_key; + } + else + { + msg = L("lcl_obj_bind_t")+ " of "; + bind_msg += (bind_msg.indexOf(msg) == -1 ? msg : ""); + } + } + + if (bindingBits & BIND_RUIMTE) + { + if( r_key > 0 ) + { + bind_typ = "R"; + bind_key = r_key; + } + else + { + msg = L("lcl_obj_bind_r")+ " of "; + bind_msg += (bind_msg.indexOf(msg) == -1 ? msg : ""); + } + } + + if ((bindingBits & BIND_WERKPL) && w_key) + { + if (w_key > 0) + { + bind_typ = "W"; + bind_key = w_key; + } + else + { + msg = L("lcl_obj_bind_w")+ " of "; + bind_msg += (bind_msg.indexOf(msg) == -1 ? msg : ""); + } + } + bindings.push({bind_typ: bind_typ, bind_key: bind_key}); + } + bind_msg = bind_msg.substring(0, bind_msg.length - 3); + + if (bind_msg == "") + { + var sql_wis_dwgxy = ", ins_deel_dwgx = null" + + ", ins_deel_dwgy = null" + + ", ins_deel_dwgz = null" + var warning = null; + for (var i = 0; i < ingesloten.length; i++) + { + // Ik mag het object wijzigen dus voer wijziging uit + sql_u = "UPDATE ins_deel" + + " SET ins_alg_ruimte_key = " + bindings[i].bind_key + + " , ins_alg_ruimte_type = " + safe.quoted_sql(bindings[i].bind_typ) + + (wis_grafisch ? sql_wis_dwgxy : "") + + " WHERE ins_deel_key = " + ingesloten[i]; + var err = Oracle.Execute(sql_u, true); + if (err.friendlyMsg) + warning = err.friendlyMsg; } } else { - if (g_key > 0) - { bind_typ = 'G'; - bind_key = g_key; - } - if (v_key > 0) - { bind_typ = 'V'; - bind_key = v_key; - } - if (r_key > 0) - { bind_typ = 'R'; - bind_key = r_key; - } - if (w_key > 0) - { bind_typ = 'W'; - bind_key = w_key; - } + warning = L("lcl_obj_bind_mandatory") + "\n" + bind_msg; } - - var sql_wis_dwgxy = ", ins_deel_dwgx = null" - + ", ins_deel_dwgy = null" - + ", ins_deel_dwgz = null" - var warning = null; - var first = true; - for (var i = 0; i < ingesloten.length; i++) - { - // Ik mag het object wijzigen dus voer wijziging uit - sql = "UPDATE ins_deel" - + " SET ins_alg_ruimte_key = " + bind_key - + ", ins_alg_ruimte_type = " + safe.quoted_sql(bind_typ) - + (wis_grafisch ? sql_wis_dwgxy : "") - + " WHERE ins_deel_key = " + ingesloten[i]; - var err = Oracle.Execute(sql, true); - if (err.friendlyMsg) - warning = err.friendlyMsg; - } - %>