AAIT#70980: Extra prioritering meegeven in MJOB-planning/begroting.

svn path=/Website/trunk/; revision=65661
This commit is contained in:
Maykel Geerdink
2024-07-22 12:43:35 +00:00
parent 197408fd3a
commit 5ab5816b64
7 changed files with 522 additions and 316 deletions

View File

@@ -463,12 +463,12 @@ alg = {
return algm2;
},
alg_onroerendgoed_flex_params: function(p_niveau)
alg_onroerendgoed_flex_params: function(p_niveau, p_inlijst)
{
var sql = "SELECT DISTINCT " + lcl.xsqla("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key")
+ " , k.alg_kenmerk_kenmerktype"
+ " FROM alg_kenmerk k"
+ " WHERE (BITAND(alg_kenmerk_inlijst, 1) = 1)"
+ " WHERE (BITAND(alg_kenmerk_inlijst, " + (p_inlijst? p_inlijst : 1) + ") = " + (p_inlijst? p_inlijst : 1) + ")"
+ " AND (BITAND(alg_kenmerk_systeem, 4) = 0 OR k.alg_kenmerk_systeem IS NULL)"
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql_upper(p_niveau)
+ " AND k.alg_kenmerk_verwijder IS NULL";
@@ -484,7 +484,7 @@ alg = {
if (!oRs.eof)
{
multiflex = true;
v_flexParams.flexlabel = L("lcl_flexlist");
v_flexParams.flexlabel = L("lcl_flexlist_alg_b");
while (!oRs.eof)
{
if (oRs("alg_kenmerk_kenmerktype").Value == "M")
@@ -505,76 +505,70 @@ alg = {
case "V": onrgoed_fld = "v.alg_verdieping_key"; break;
case "R": onrgoed_fld = "r.alg_ruimte_key"; break;
}
v_flexParams.sql = ( v_flexParams.anyflex
? " , (SELECT LISTAGG(" + ( multiflex
? lcl.xsql("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key") + " || ':' || chr(160) || "
: ""
)
+ " CASE WHEN k.alg_kenmerk_kenmerktype = 'R' OR k.alg_kenmerk_kenmerktype = 'r' OR k.alg_kenmerk_kenmerktype = 'S'"
+ " THEN flx.getdomeinwaarde(k.fac_kenmerkdomein_key, km.alg_onrgoedkenmerk_waarde)"
+ " WHEN ( ( k.alg_kenmerk_kenmerktype = 'N'"
+ " AND k.alg_kenmerk_lengte = 1"
+ " AND k.alg_kenmerk_nmin = 0"
+ " AND k.alg_kenmerk_nmax = 1"
+ " AND (k.alg_kenmerk_dec = 0 OR k.alg_kenmerk_dec IS NULL)"
+ " )"
+ " OR (k.alg_kenmerk_kenmerktype = 'V')"
+ " )"
+ " THEN DECODE( km.alg_onrgoedkenmerk_waarde"
+ " , 0, " + safe.qL("lcl_check_0")
+ " , 1, " + safe.qL("lcl_check_1")
+ " , km.alg_onrgoedkenmerk_waarde"
+ " )"
+ " ELSE km.alg_onrgoedkenmerk_waarde"
+ " END"
+ " , CHR(13)"
+ " )"
+ " WITHIN GROUP (ORDER BY k.alg_kenmerk_volgnr)"
+ " FROM alg_kenmerk k"
+ " , alg_onrgoedkenmerk km"
+ " WHERE km.alg_onrgoed_key = " + onrgoed_fld
+ " AND km.alg_onrgoed_niveau = " + safe.quoted_sql_upper(p_niveau)
+ " AND k.alg_kenmerk_key = km.alg_kenmerk_key"
+ " AND (BITAND(k.alg_kenmerk_inlijst,1) = 1)"
+ " AND (BITAND(k.alg_kenmerk_systeem,4) = 0 OR k.alg_kenmerk_systeem IS NULL)" // -- niet als vertrouwelijk
+ " AND k.alg_kenmerk_verwijder IS NULL"
+ " AND km.alg_onrgoedkenmerk_verwijder IS NULL"
+ " ) flex"
v_flexParams.sql = (v_flexParams.anyflex
? ", (SELECT LISTAGG(" + (multiflex
? lcl.xsql("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key") + " || ':' || chr(160) || "
: "")
+ " CASE WHEN k.alg_kenmerk_kenmerktype = 'R' OR k.alg_kenmerk_kenmerktype = 'r' OR k.alg_kenmerk_kenmerktype = 'S'"
+ " THEN flx.getdomeinwaarde(k.fac_kenmerkdomein_key, km.alg_onrgoedkenmerk_waarde)"
+ " WHEN ( ( k.alg_kenmerk_kenmerktype = 'N'"
+ " AND k.alg_kenmerk_lengte = 1"
+ " AND k.alg_kenmerk_nmin = 0"
+ " AND k.alg_kenmerk_nmax = 1"
+ " AND (k.alg_kenmerk_dec = 0 OR k.alg_kenmerk_dec IS NULL)"
+ " )"
+ " OR (k.alg_kenmerk_kenmerktype = 'V')"
+ " )"
+ " THEN DECODE( km.alg_onrgoedkenmerk_waarde"
+ " , 0, " + safe.qL("lcl_check_0")
+ " , 1, " + safe.qL("lcl_check_1")
+ " , km.alg_onrgoedkenmerk_waarde"
+ " )"
+ " ELSE km.alg_onrgoedkenmerk_waarde"
+ " END"
+ " , CHR(13)"
+ " )"
+ " WITHIN GROUP (ORDER BY k.alg_kenmerk_volgnr)"
+ " FROM alg_kenmerk k"
+ " , alg_onrgoedkenmerk km"
+ " WHERE km.alg_onrgoed_key = " + onrgoed_fld
+ " AND km.alg_onrgoed_niveau = " + safe.quoted_sql_upper(p_niveau)
+ " AND k.alg_kenmerk_key = km.alg_kenmerk_key"
+ " AND (BITAND(k.alg_kenmerk_inlijst, " + (p_inlijst? p_inlijst : 1) + ") = " + (p_inlijst? p_inlijst : 1) + ")"
+ " AND (BITAND(k.alg_kenmerk_systeem, 4) = 0 OR k.alg_kenmerk_systeem IS NULL)" // -- niet als vertrouwelijk
+ " AND k.alg_kenmerk_verwijder IS NULL"
+ " AND km.alg_onrgoedkenmerk_verwijder IS NULL"
+ ") algflex"
: ""
)
return v_flexParams;
},
alg_onroerendgoed_flex_bijlagen: function(p_niveau, p_alg_key)
alg_onroerendgoed_flex_bijlagen: function(p_niveau, p_alg_key, p_inlijst)
{
var bijlagen_aantal = 0;
var bijlagen_oms = "";
var bijlagen_lijst = [];
var sql_k = "SELECT k.alg_kenmerk_key"
+ " , " + lcl.xsqla("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key")
+ " , CASE WHEN BITAND(k.alg_kenmerk_inlijst, 1) = 1"
+ " THEN 1"
+ " ELSE 0"
+ " END in_overzicht_tonen"
+ " FROM alg_kenmerk k"
+ " WHERE k.alg_kenmerk_verwijder IS NULL"
+ " WHERE BITAND(k.alg_kenmerk_inlijst, " + (p_inlijst? p_inlijst : 1) + ") = " + (p_inlijst? p_inlijst : 1)
+ " AND k.alg_kenmerk_verwijder IS NULL"
+ " AND k.alg_kenmerk_kenmerktype= 'M'"
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql_upper(p_niveau);
var oRs_k = Oracle.Execute(sql_k);
while (!oRs_k.eof)
{
if (oRs_k("in_overzicht_tonen").Value == 1)
var kenmerk_key = oRs_k("alg_kenmerk_key").Value;
var bijlagen_oms = oRs_k("alg_kenmerk_omschrijving").Value;
var bestanden = flexProps("ALG", p_alg_key, kenmerk_key, "A", {getFiles: true});
var km_aantal = bestanden.files.length;
for (var i=0; i<km_aantal; i++)
{
var kenmerk_key = oRs_k("alg_kenmerk_key").Value;
var bijlagen_oms = oRs_k("alg_kenmerk_omschrijving").Value;
var bestanden = flexProps("ALG", p_alg_key, kenmerk_key, "A", {getFiles: true});
var km_aantal = bestanden.files.length;
for (var i=0; i<km_aantal; i++)
{
bijlagen_lijst.push(bestanden.files[i].name);
}
bijlagen_aantal += km_aantal;
bijlagen_lijst.push(bestanden.files[i].name);
}
bijlagen_aantal += km_aantal;
oRs_k.MoveNext();
}
oRs_k.Close();

View File

@@ -324,7 +324,7 @@ function gebouw_list(pautfunction, params)
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("flex").Value;
var flexval = oRs("algflex").Value;
var alg_key = oRs("alg_gebouw_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
@@ -397,4 +397,3 @@ function gebouw_list(pautfunction, params)
</html>
<%
} %>

View File

@@ -109,7 +109,23 @@ function model_alg_kenmerk(niveau, params)
"inlist": {
"dbs": "alg_kenmerk_inlijst",
"label": L("mgt_kenmerk_systeem_overview"),
"typ": "check0",
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 1,
"radios": [
{
"name": "inplan",
"label": L("mgt_kenmerk_systeem_overview_bui"),
"mask": 1,
"defaultvalue": 0
}
]
}
],
"multiedit": true
},
"length": {
@@ -188,7 +204,15 @@ function model_alg_kenmerk(niveau, params)
gparams.GET = { wheres: [ "alg_kenmerk.alg_kenmerk_niveau = " + safe.quoted_sql(niveau) ] };
}
if (niveau == "G")
{
this.fields.inlist.bits[0].mask = 3;
this.fields.inlist.bits[0].radios.push({ "name": "start",
"label": L("mgt_kenmerk_systeem_overview_mjob"),
"mask": 2,
"defaultvalue": 0
});
}
this.REST_GET = generic_REST_GET(this, gparams);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);

View File

@@ -174,7 +174,29 @@ function model_ins_kenmerk(niveau, params)
"inlist": {
"dbs": "ins_kenmerk_inlijst",
"label": L("mgt_kenmerk_systeem_overview"),
"typ": "check0",
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 3,
"radios": [
{
"name": "inplan",
"label": L("mgt_kenmerk_systeem_overview_obj"),
"mask": 1,
"defaultvalue": 0
},
{
"name": "start",
"label": L("mgt_kenmerk_systeem_overview_mjob"),
"mask": 2,
"defaultvalue": 0
}
]
}
],
"multiedit": true
},
"measurement": {

File diff suppressed because it is too large Load Diff

View File

@@ -401,32 +401,8 @@ function ins_list (pautfunction, params)
if (withflex && !excel && !print)
{
// Fast check to see if we have any listable flex at all, to prevent superfluous column
var sql = "SELECT DISTINCT(sk.ins_srtkenmerk_key)"
+ " , COALESCE (" + lcl.xsql("k.ins_kenmerk_omschrijving", "k.ins_kenmerk_key")
+ " , " + lcl.xsql("sk.ins_srtkenmerk_omschrijving", "sk.ins_srtkenmerk_key") + ") kenmerk_omschrijving"
+ " FROM ins_srtkenmerk sk"
+ " , ins_kenmerk k"
+ " WHERE BITAND (ins_kenmerk_inlijst, 1) = 1"
+ " AND sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key"
+ " AND k.ins_kenmerk_verwijder IS NULL"
+ " AND sk.ins_srtkenmerk_verwijder IS NULL";
var oRs = Oracle.Execute(sql);
params.anyflex = !oRs.eof;
if (params.anyflex)
{
params.multiflex = false;
var flexlabel = oRs("kenmerk_omschrijving").Value;
oRs.MoveNext();
if (!oRs.Eof)
{
params.multiflex = true;
flexlabel = L("lcl_flexlist");
}
}
oRs.close();
}
var insFlexParams = ins.ins_deel_flex_params(1, inspect); // 2=MJOB Planningsconsole.
params.insflex_sql = insFlexParams.sql;
%>
<% // =======================================================
// All header information been emitted. Now start building
@@ -1003,6 +979,20 @@ function ins_list (pautfunction, params)
return displ;
}
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("insflex").Value;
var ins_key = oRs("ins_deel_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (insFlexParams.bijlageflex)
{
result += ins.ins_deel_flex_bijlagen(ins_key, 1, inspect); // 1=Objectebeheer overzicht.
}
return result;
}
var deleted_room = false;
if (room_key_arr.length)
@@ -1226,8 +1216,8 @@ function ins_list (pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_obj_geoxcoord"), content: "ins_deel_x", purpose: PRINTING_ONLY}));
rst.addColumn(new Column({caption: L("lcl_obj_geoycoord"), content: "ins_deel_y", purpose: PRINTING_ONLY}));
if (params.anyflex)
rst.addColumn(new Column({caption: flexlabel, content: "flex"}));
if (withflex && !excel && !print && insFlexParams.anyflex)
rst.addColumn(new Column({caption: insFlexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
}
if (groepering > 0)

View File

@@ -15,6 +15,7 @@
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../alg/alg.inc" -->
<!-- #include file="../ins/ins.inc" -->
<%
FCLTHeader.Requires({plugins: ["jQuery"],
@@ -374,6 +375,8 @@ var transitParam = buildTransitParam(["urole", "mode", "deel", "groep", "categor
<%
// Start building the query to fetch all objects satisfying
var algFlexParams = alg.alg_onroerendgoed_flex_params("G", 2); // In overzicht tonen: 2=MJOB Planningsconsole.
var insFlexParams = ins.ins_deel_flex_params(2, false); // In overzicht tonen: 2=MJOB Planningsconsole.
var mjbparams = { execute: mode == 3,
scenario: scenario,
fulldetails: fulldetails,
@@ -415,7 +418,9 @@ var transitParam = buildTransitParam(["urole", "mode", "deel", "groep", "categor
mjbStatus2: mjbStatus2,
mjbStatus3: mjbStatus3,
jaren: jaren,
show_scenario_oms: ((print || excel) && scenario > 1)
show_scenario_oms: ((print || excel) && scenario > 1),
algflex_sql: algFlexParams.sql,
insflex_sql: insFlexParams.sql
};
var sql = ins.getmjblist_sql(mjbparams);
// ========== now 'sql' holds the main SQL-statement voor de mjbsearchlist.
@@ -914,6 +919,36 @@ var transitParam = buildTransitParam(["urole", "mode", "deel", "groep", "categor
}
}
function fncolFlexAlgBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var alg_key = oRs("alg_gebouw_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (algFlexParams.bijlageflex)
{
result += alg.alg_onroerendgoed_flex_bijlagen("G", alg_key, 2);
}
return result;
}
function fncolFlexInsBijlagen(oRs)
{
var flexval = oRs("insflex").Value;
var ins_key = oRs("ins_deel_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (insFlexParams.bijlageflex)
{
result += ins.ins_deel_flex_bijlagen(ins_key, 2, false); // In overzicht tonen: 2=MJOB Planningsconsole.
}
return result;
}
var buttons = [];
buttons.push({ icon: "fa-columns", title: L("lcl_scf_columns"), action: "openColumns()"});
buttons.push({ icon: "fa-fclt-refresh", title: L("lcl_refresh"), action: "FcltMgr.reload()" });
@@ -1023,10 +1058,20 @@ var transitParam = buildTransitParam(["urole", "mode", "deel", "groep", "categor
}
rst.addColumn(new Column({caption: L("lcl_prs_kosten"), content: "kostenplaats"}));
}
if (groupby == 9 && excel)
if (fulldetails)
{
rst.addColumn(new Column({caption: L("lcl_mjb_scen_opm"), content: "ins_srtcontrole_opmerking"}));
if (excel)
rst.addColumn(new Column({caption: L("lcl_mjb_scen_opm"), content: "ins_srtcontrole_opmerking"}));
rst.addColumn(new Column({caption: L("lcl_mjb_datum_org"), content: "ins_deelsrtcontrole_datum_org"}));
rst.addColumn(new Column({caption: L("lcl_mjb_plan_opmerking"), content: "ins_deelsrtcontrole_plan_opm"}));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_srtgebouw"), content: "alg_srtgebouw_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_alg_verantw"), content: "gebouwverantwoordelijke"}));
rst.addColumn(new Column({caption: L("ctr_discipline"), content: "taakcategorie"}));
rst.addColumn(new Column({caption: L("lcl_mjb_call_history"), content: "meldingshistorie", datatype: "number"}));
if (algFlexParams.anyflex)
rst.addColumn(new Column({caption: algFlexParams.flexlabel, content: fncolFlexAlgBijlagen, colName: "fncolFlexAlgBijlagen"}));
if (insFlexParams.anyflex)
rst.addColumn(new Column({caption: insFlexParams.flexlabel, content: fncolFlexInsBijlagen, colName: "fncolFlexInsBijlagen"}));
}
for (var j = 0; j < jaren.length; j++)
{