22 Commits

Author SHA1 Message Date
Maykel Geerdink
32f50cfc0d RWSN#86923: Probleem e-mailnotificaties bij fiatteren €3-opdrachten na update 2024.2.
svn path=/Website/branches/v2024.2/; revision=67553
2025-01-09 13:02:53 +00:00
Jos Groot Lipman
19eda0446f Release 2024.2 Gold D
svn path=/Website/branches/v2024.2/; revision=66457
2024-10-03 13:47:18 +00:00
Jos Groot Lipman
760f7887ee KFNS#85677 Refresh anonimiseren wel doen als er geen upgrade nodig is.
svn path=/Website/branches/v2024.2/; revision=66379
2024-09-30 12:33:54 +00:00
987e0953ee UWVA#85395 De subtab-badge niet resetten als er een subtab-icon is, maar wel als er geen regels zijn (dan moet de spinner weg)
svn path=/Website/branches/v2024.2/; revision=66327
2024-09-25 13:13:11 +00:00
Jos Groot Lipman
5faaf9fb00 UWVA#85616 mld_melding_omschrijving beter afkappen op S("mld_melding_oms_maxlen") als die op 4000 staat
svn path=/Website/branches/v2024.2/; revision=66295
2024-09-24 09:23:16 +00:00
Jos Groot Lipman
f93ebaef82 UWVA#85553 Verschil in deelnemers bij boekingen E-afspraak en Afspraak
svn path=/Website/branches/v2024.2/; revision=66279
2024-09-23 10:27:15 +00:00
Jos Groot Lipman
c8f87ef9bb Putorders FORCE mag best ook gelden voor vertraagde mislukte notificatie
svn path=/Website/branches/v2024.2/; revision=66270
2024-09-19 14:15:15 +00:00
Jos Groot Lipman
bff4d5b96d RWSN#85505 Probleem met CC-functionaliteit tijdens testactiviteit in T-omgeving
svn path=/Website/branches/v2024.2/; revision=66264
2024-09-19 11:22:08 +00:00
Jos Groot Lipman
04ea1bd347 FCLT#81144 gen_scheduler.bat en gen_notify.bat versimpelen moet in trunk
svn path=/Website/branches/v2024.2/; revision=66219
2024-09-17 07:51:24 +00:00
Jos Groot Lipman
ee983f7ee5 FCLT#81144 gen_scheduler.bat en gen_notify.bat versimpelen
svn path=/Website/branches/v2024.2/; revision=66218
2024-09-17 07:38:48 +00:00
Jos Groot Lipman
07e9b17cf0 CARG#85452 extern_id altijd bewerkbaar via API2
svn path=/Website/branches/v2024.2/; revision=66217
2024-09-17 07:26:00 +00:00
Jos Groot Lipman
1de67fe756 AAAH#84510 Standaard opdrachtbijlagen worden niet goed meegestuurd
svn path=/Website/branches/v2024.2/; revision=66204
2024-09-16 09:39:37 +00:00
Erik Groener
1b72de6313 SKAF#85384 Verandering in oppervlakteberekening m2 in Graphics bij locatie de Mammoet
svn path=/Website/branches/v2024.2/; revision=66202
2024-09-16 08:26:47 +00:00
Jos Groot Lipman
1f4cff7357 PROR#85473 Probleem met importeren gebruiker via AFAS koppeling
svn path=/Website/branches/v2024.2/; revision=66178
2024-09-11 13:36:17 +00:00
Jos Groot Lipman
a0ac244587 PROR#85242 Graph oAuth access token vaker refreshen
svn path=/Website/branches/v2024.2/; revision=66169
2024-09-11 07:54:34 +00:00
Arthur Egberink
bfb4a02ac5 YAXX#82250 -- Koppeling tussen VBGO omgeving en logcenter
svn path=/Website/branches/v2024.2/; revision=66164
2024-09-10 11:46:42 +00:00
Erik Groener
6e5928b911 UWVA#85395 Problemen met scope-uitroepteken en verwijderfunctie in contactbeheer
svn path=/Website/branches/v2024.2/; revision=66155
2024-09-09 10:53:19 +00:00
Jos Groot Lipman
d271d17ab4 Release 2024.2 Gold C
svn path=/Website/branches/v2024.2/; revision=66142
2024-09-05 14:17:46 +00:00
Jos Groot Lipman
6d962640c7 DEMO#77582 Nieuwe masterdemo ook automatisch vervangbaar
svn path=/Website/branches/v2024.2/; revision=66139
2024-09-05 12:26:32 +00:00
Jos Groot Lipman
5a6896ba50 DEMO#77582 Nieuwe masterdemo ook automatisch vervangbaar
svn path=/Website/branches/v2024.2/; revision=66138
2024-09-05 11:16:33 +00:00
Jos Groot Lipman
7f2e030dfc PNBR#83672 Workflow starten ook bij API1
svn path=/Website/branches/v2024.2/; revision=66137
2024-09-05 10:16:29 +00:00
Jos Groot Lipman
d20b37f65c VBGO#85313 Backoffice medewerker kan geen notities toevoegen bij meldingen als melder
Backport uit trunk van BLCC#85177

svn path=/Website/branches/v2024.2/; revision=66132
2024-09-04 15:10:35 +00:00
1220 changed files with 84084 additions and 47874 deletions

2
APPL/.gitignore vendored
View File

@@ -1,2 +0,0 @@
/.vscode
.vs

View File

@@ -99,6 +99,13 @@ alg = {
var autfunctionMAN = "WEB_ALGMAN";
var autfunctionUSE = "WEB_ALGUSE";
// Met ALG* bepaal je wat je ziet (Read).
rresult.readman = rresult.canRead (autfunctionMAN);
if (onrgoedlvl != "T")
rresult.readuse = rresult.canRead (autfunctionUSE);
// Met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
switch (onrgoedlvl)
{
case "T": autfunctionMAN = "WEB_TERMAN";
@@ -107,15 +114,14 @@ alg = {
autfunctionUSE = "WEB_RUIUSE";
break;
}
// Met ALG* bepaal je wat je ziet (Read).
rresult.readman = rresult.canRead (autfunctionMAN);
rresult.readuse = rresult.canRead (autfunctionUSE);
// Met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
rresult.readmgt = rresult.canRead("WEB_ALGMGT");
rresult.writemgt = rresult.canWrite("WEB_ALGMGT");
rresult.writeman = rresult.canWrite(autfunctionMAN);
rresult.writeuse = rresult.canWrite(autfunctionUSE);
if (onrgoedlvl != "T")
rresult.writeuse = rresult.canWrite(autfunctionUSE);
else
rresult.writeuse = false;
}
else // iets meer werk
{
@@ -137,7 +143,7 @@ alg = {
+ "WHERE prs_perslid_key = " + user_key
+ " AND alg_district_key = " + alg_key;
break;
case "E":
case "RG":
sql = "SELECT MAX(niveau) FROM fac_v_my_regions "
+ "WHERE prs_perslid_key = " + user_key
+ " AND alg_regio_key = " + alg_key;
@@ -303,7 +309,6 @@ alg = {
+ " , p.prs_perslid_key"
+ " , COALESCE(g.alg_gebouw_beginuur, -1) alg_gebouw_beginuur"
+ " , COALESCE(g.alg_gebouw_einduur, -1) alg_gebouw_einduur"
+ " , mld_vrije_dagen_id"
+ " FROM alg_gebouw g"
+ " , prs_kostenplaats k"
+ " , prs_perslid p"
@@ -335,27 +340,10 @@ alg = {
kostenplaats_budgethouder_key: oRs("prs_perslid_key").Value,
kostenplaats_budgethouder: oRs("budgethouder").Value,
gebouw_beginuur: oRs("alg_gebouw_beginuur").Value,
gebouw_einduur: oRs("alg_gebouw_einduur").Value,
vrije_dagen: {id: oRs("mld_vrije_dagen_id").Value}
gebouw_einduur: oRs("alg_gebouw_einduur").Value
};
}
oRs.Close();
if (result.vrije_dagen.id && result.vrije_dagen.id.toUpperCase() != "DEFAULT")
{
var vrije_dagen_alt = [];
var sql = "SELECT mld_vrije_dagen_datum"
+ " FROM mld_vrije_dagen"
+ " WHERE mld_vrije_dagen_id = " + safe.quoted_sql(result.vrije_dagen.id);
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
vrije_dagen_alt.push((new Date(oRs("mld_vrije_dagen_datum").Value)).getTime());
oRs.MoveNext();
}
oRs.Close();
if (vrije_dagen_alt.length)
result.vrije_dagen.alt = vrije_dagen_alt;
}
return result;
},
@@ -457,12 +445,12 @@ alg = {
return algm2;
},
alg_onroerendgoed_flex_params: function(p_niveau, p_inlijst)
alg_onroerendgoed_flex_params: function(p_niveau)
{
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, " + (p_inlijst? p_inlijst : 1) + ") = " + (p_inlijst? p_inlijst : 1) + ")"
+ " WHERE (BITAND(alg_kenmerk_inlijst, 1) = 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";
@@ -478,7 +466,7 @@ alg = {
if (!oRs.eof)
{
multiflex = true;
v_flexParams.flexlabel = L("lcl_flexlist_alg_" + p_niveau.toLowerCase());
v_flexParams.flexlabel = L("lcl_flexlist");
while (!oRs.eof)
{
if (oRs("alg_kenmerk_kenmerktype").Value == "M")
@@ -492,7 +480,6 @@ alg = {
var onrgoed_fld = "";
switch (p_niveau)
{
case "E": onrgoed_fld = "e.alg_regio_key"; break;
case "D": onrgoed_fld = "d.alg_district_key"; break;
case "L": onrgoed_fld = "l.alg_locatie_key"; break;
case "T": onrgoed_fld = "g.alg_terreinsector_key"; break;
@@ -500,70 +487,76 @@ 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, " + (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"
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"
: ""
)
return v_flexParams;
},
alg_onroerendgoed_flex_bijlagen: function(p_niveau, p_alg_key, p_inlijst)
alg_onroerendgoed_flex_bijlagen: function(p_niveau, p_alg_key)
{
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 BITAND(k.alg_kenmerk_inlijst, " + (p_inlijst? p_inlijst : 1) + ") = " + (p_inlijst? p_inlijst : 1)
+ " AND k.alg_kenmerk_verwijder IS NULL"
+ " WHERE 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)
{
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++)
if (oRs_k("in_overzicht_tonen").Value == 1)
{
bijlagen_lijst.push(bestanden.files[i].name);
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_aantal += km_aantal;
oRs_k.MoveNext();
}
oRs_k.Close();

View File

@@ -47,7 +47,7 @@ FCLTHeader.Requires({ plugins:["jQuery"] });
var data = { key: disKeyString,
level: "D"
};
<% protectRequest.dataToken("data"); %>
<% protectRequest.dataToken("data"); %>+
$.post("alg_delete.asp", data, FcltCallbackRefresh, "json");
}
);
@@ -152,10 +152,10 @@ function district_list(pautfunction, params)
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var flexval = oRs("flex").Value;
var alg_key = oRs("alg_district_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
@@ -194,3 +194,4 @@ function district_list(pautfunction, params)
</body>
</html>
<%}%>

View File

@@ -78,7 +78,6 @@ if (bld_key > 0)
var vervaldatum = oRs("alg_gebouw_vervaldatum").Value != null ? new Date(oRs("alg_gebouw_vervaldatum").Value) : null;
var geb_score1 = oRs("alg_gebouw_mjb_score1").Value;
var actie_grp_key = oRs("bez_actie_groep_key").Value;
var kalender_id = oRs("mld_vrije_dagen_id").Value;
oRs.Close();
}
else
@@ -233,17 +232,6 @@ else
filtercode: "A",
readonly: !this_alg.writeman
}) ;
var sql = "SELECT DISTINCT mld_vrije_dagen_id, mld_vrije_dagen_id"
+ " FROM mld_vrije_dagen";
FCLTselector("cal_id"
, sql
, { label: L("lcl_calendar")
, initKey: kalender_id
, emptyOption: ""
, emptyKey: ""
, readonly: !this_alg.writeman
}
);
var times = [];
for (i=0; i<24; i++)
{

View File

@@ -77,7 +77,7 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we
</script>
</head>
<body class="fclt-modal" id="mod_algmultiedit">
<body class="modal" id="mod_algmultiedit">
<% MODAL_START(); %>
<form name="u2" action="alg_edit_gebouw_multi_save.asp?bld_keys=<%=ingesloten.join(",")%>" method="post">
<%
@@ -147,15 +147,6 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we
initEmpty: true,
readonly: !this_alg.writeuse
});
sql = "SELECT DISTINCT mld_vrije_dagen_id, mld_vrije_dagen_id"
+ " FROM mld_vrije_dagen";
FCLTselector("cal_id"
, sql
, { label: L("lcl_calendar")
, emptyOption: ""
, initEmpty: true
, readonly: !this_alg.writeman
});
var times = [];
for (i=0; i<24; i++)
{

View File

@@ -49,9 +49,6 @@ if (Request.Form("toon_kenteken").Count == 1 && getFParam("check_toon_kenteken",
}
if (Request.Form("dienstniveau").Count == 1 && getFParam("check_dienstniveau", "off") == "on")
fields.push({ dbs: "mld_dienstniveau_key", typ: "key", frm: "dienstniveau", track: L("lcl_mld_dienst_niveau"), foreign: "mld_dienstniveau" });
if (Request.Form("cal_id").Count == 1 && getFParam("check_cal_id", "off") == "on")
fields.push({ dbs: "mld_vrije_dagen_id", typ: "varchar", frm: "cal_id", track: L("lcl_calendar") });
if (Request.Form("bld_beginuur").Count == 1 && getFParam("check_bld_beginuur", "off") == "on")
fields.push({ dbs: "alg_gebouw_beginuur", typ: "float", frm: "bld_beginuur", track: L("lcl_estate_gebouw_beginuur") });
if (Request.Form("bld_einduur").Count == 1 && getFParam("check_bld_einduur", "off") == "on")
@@ -115,11 +112,9 @@ for (var i = 0; i < bld_key_arr.length; i++)
isNew: false
});
if ((algUpd.trackarray && algUpd.trackarray.length) || (flextrack && flextrack.length))
if (flextrack && flextrack.length)
{
var update_string = L("lcl_alg_is_alglup") + "\n";
if (algUpd.trackarray && algUpd.trackarray.length)
update_string += algUpd.trackarray.join("\n");
var update_string = L("lcl_alg_is_alglup") + "\n" + algUpd.trackarray.join("\n");
if (flextrack && flextrack.length)
update_string += flextrack.join("\n");
shared.trackaction("ALGGUP", alg_key, update_string);

View File

@@ -37,6 +37,14 @@ var fields = [ /* { dbs: "alg_gebouw_getekend", typ: "date", frm: "bld
{ dbs: "alg_gebouw_dwgy", typ: "float", frm: "bld_dwgy" }, Deze 3 velden worden nergens meegegeven? */
];
if (this_alg.writeuse)
{
fields.push({ dbs: "mld_dienstniveau_key", typ: "key", frm: "dienstniveau", track: L("lcl_mld_dienst_niveau"), foreign: "mld_dienstniveau" },
// De gebouwverantwoordelijke(n) moeten eigenlijk nog een PRS-scope test ondergaan alvorens opgeslagen te worden, maar dat is voor nu teveel eer
{ dbs: "prs_perslid_key_verantw", typ: "key", frm: "verantw", track: L("lcl_alg_verantw"), foreign: "prs_perslid" },
{ dbs: "prs_perslid_key_verantw2", typ: "key", frm: "verantw2", track: L("lcl_alg_verantw2"), foreign: "prs_perslid" });
}
if (user.checkAutorisation("WEB_BEZMGT", true))
{
fields.push({ dbs: "alg_gebouw_toon_telefoon", typ: "number", frm: "toon_telefoon", track: L("lcl_estate_gebouw_toon_telefoon") },
@@ -64,16 +72,11 @@ if (this_alg.writeman)
{ dbs: "alg_gebouw_image", typ: "varchar", frm: "bld_image", track: L("lcl_alg_gebouw_image") },
{ dbs: "mld_adres_key", typ: "key", frm: "mld_adres", track: L("lcl_delivery_address"), foreign: "mld_v_factuuradres" },
{ dbs: "prs_kostenplaats_key", typ: "key", frm: "prs_kstpl", track: L("lcl_prs_dept_kosten"), foreign: "prs_kostenplaats" },
{ dbs: "mld_dienstniveau_key", typ: "key", frm: "dienstniveau", track: L("lcl_mld_dienst_niveau"), foreign: "mld_dienstniveau" },
{ dbs: "alg_gebouw_bez", typ: "check", frm: "bld_bez", track: L("lcl_estate_gebouw_bez") },
{ dbs: "alg_gebouw_mld", typ: "check", frm: "bld_mld", track: L("lcl_estate_gebouw_mld") },
{ dbs: "alg_gebouw_werkdagen", typ: "check0", frm: "bld_werkdagen", track: L("lcl_estate_gebouw_werkdagen") },
{ dbs: "alg_gebouw_vervaldatum", typ: "date", frm: "vervaldatum", track: L("lcl_alg_vervaldatum") },
{ dbs: "bez_actie_groep_key", typ: "key", frm: "group", track: L("bez_actie_groep"), foreign: "bez_actie_groep" },
{ dbs: "mld_vrije_dagen_id", typ: "varchar", frm: "cal_id", track: L("lcl_calendar")},
// De gebouwverantwoordelijke(n) moeten eigenlijk nog een PRS-scope test ondergaan alvorens opgeslagen te worden, maar dat is voor nu teveel eer
{ dbs: "prs_perslid_key_verantw", typ: "key", frm: "verantw", track: L("lcl_alg_verantw"), foreign: "prs_perslid" },
{ dbs: "prs_perslid_key_verantw2", typ: "key", frm: "verantw2", track: L("lcl_alg_verantw2"), foreign: "prs_perslid" });
{ dbs: "bez_actie_groep_key", typ: "key", frm: "group", track: L("bez_actie_groep"), foreign: "bez_actie_groep" });
if (beginuur != -2)
fields.push({ dbs: "alg_gebouw_beginuur", typ: "float", val: beginuur, track: L("lcl_estate_gebouw_beginuur") });

View File

@@ -11,12 +11,12 @@
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!--#include file="../Shared/common.inc" -->
<!--#include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/timezoneselector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!--#include file="../Shared/selector.inc" -->
<!--#include file="../Shared/plaatsselector.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<!-- #include file="alg.inc" -->
@@ -59,7 +59,6 @@ if (loc_key > 0)
var dienstniveau = oRs("mld_dienstniveau_key").Value;
var loc_score1 = oRs("alg_locatie_mjb_score1").Value;
var vervaldatum = oRs("alg_locatie_vervaldatum").Value != null ? new Date(oRs("alg_locatie_vervaldatum").Value) : null;
var alg_tz = oRs("alg_locatie_timezone").Value;
oRs.Close();
}
@@ -132,7 +131,6 @@ BLOCK_END();
BLOCK_START("facFM", L("lcl_operations_block"), {icon: "fa-users-cog"});
manRWFIELD("loc_volgnr", "fld", L("lcl_alg_locatie_volgnr"), loc_volgnr, {maxlength: 3});
FCLTtimezoneselector("alg_tz", { initVal: alg_tz });
FCLTcalendar("vervaldatum",
{ datum: vervaldatum,
initEmpty: vervaldatum==null,

View File

@@ -74,7 +74,7 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we
</script>
</head>
<body class="fclt-modal" id="mod_algmultiedit">
<body class="modal" id="mod_algmultiedit">
<% MODAL_START(); %>
<form name="u2" action="alg_edit_locatie_multi_save.asp?loc_keys=<%=ingesloten.join(",")%>" method="post">
<%

View File

@@ -49,9 +49,7 @@ if (this_alg.writeman)
{ dbs: "alg_locatie_vervaldatum", typ: "date", frm: "vervaldatum", track: L("lcl_alg_vervaldatum") },
{ dbs: "alg_locatie_email", typ: "varchar", frm: "loc_mail", track: L("lcl_noti_email") },
{ dbs: "alg_locatie_image", typ: "varchar", frm: "loc_image", track: L("lcl_alg_locatie_image") },
{ dbs: "alg_locatie_volgnr", typ: "number", frm: "loc_volgnr", track: L("lcl_alg_locatie_volgnr") },
{ dbs: "alg_locatie_timezone", typ: "varchar", frm: "alg_tz", track: L("lcl_timezone") }
);
{ dbs: "alg_locatie_volgnr", typ: "number", frm: "loc_volgnr", track: L("lcl_alg_locatie_volgnr") });
if (alg.canWriteDistrict(dis_key, this_alg.authparams("WEB_ALGMAN").ALGwritelevel))
fields.push({ dbs: "alg_district_key", typ: "key", val: dis_key });

View File

@@ -18,14 +18,12 @@
FCLTHeader.Requires({plugins:["suggest","jQuery"], js: []})
var regio_key = getQParamInt("regio_key");
var onrgoedlvl = "E";
var params = { filter: { id: regio_key,
isNew: (regio_key == -1 ? true : false)
}
};
var model = new model_regions();
var regio_array = model.REST_GET(params); // Roep de API2 GET aan
var regio_array = model_regions.REST_GET(params); // Roep de API2 GET aan
var regio_data = (regio_array[0] ? regio_array[0] : {id: -1}); // GET kan meerdere records opleveren, maar we verwachten hier maar 1.
var this_alg = params.func_enabled; // params bevat nu ook waarden die in API2 zijn bepaald.
var action = (regio_key == -1 ? "I" : "U");
@@ -78,14 +76,6 @@ var action = (regio_key == -1 ? "I" : "U");
manRWFIELD("reg_oms", "fld", L("lcl_name"), regio_data.name, {required: true, maxlength: 30});
BLOCK_END();
generateFlexKenmerkBlock ({
onrgoed_key : regio_key,
onrgoed_niveau : onrgoedlvl,
reado : false,
this_alg : this_alg
});
IFACE.FORM_END();
%>
</form>

View File

@@ -18,7 +18,7 @@ protectRequest.validateToken();
var regio_key = getQParamInt("regio_key");
var action = getQParam("action", "");
var onrgoedlvl = "E";
var onrgoedlvl = "RG";
var this_alg = alg.func_enabled(regio_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.writeman || (regio_key > 0 && this_alg.writeuse));
@@ -26,22 +26,21 @@ var formfields = [];
if (this_alg.writeman)
formfields.push({ name: "name", frm: "reg_oms" });
var params = { filter: { "id": regio_key }};
var model = new model_regions();
var jsondata = api2.form2JSONdata(model, params, formfields);
var jsondata = api2.form2JSONdata(model_regions, params, formfields);
switch (action)
{
case "I":
var regio_array = model.REST_POST(params, jsondata);
var regio_array = model_regions.REST_POST(params, jsondata);
regio_key = regio_array.key;
break;
case "U":
if (regio_key > 0)
var regio_array = model.REST_PUT(params, jsondata, params.filter.id);
var regio_array = model_regions.REST_PUT(params, jsondata, params.filter.id);
break;
case "D":
if (regio_key > 0)
var regio_array = model.REST_DELETE(params, params.filter.id);
var regio_array = model_regions.REST_DELETE(params, params.filter.id);
break;
default :
var regio_array = {warning: L("lcl_cnt_Del_Fails_Auth")};
@@ -52,34 +51,5 @@ var result = { regio_key: regio_key,
warning: warning,
keepForm: !!warning,
success: true };
if (!warning)
{
currentKenmerkenSQL = "SELECT k.alg_kenmerk_key"
+ " , ok.alg_onrgoedkenmerk_waarde"
+ " , k.alg_kenmerk_toonbaar"
+ " , k.fac_functie_key"
+ " FROM alg_onrgoedkenmerk ok"
+ " , alg_kenmerk k"
+ " WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key"
+ " AND alg_onrgoedkenmerk_verwijder IS NULL"
+ " AND alg_onrgoed_niveau = 'E'"
+ " AND alg_onrgoed_key = " + regio_key;
saveFlexKenmerken(regio_key,
{ kenmerkTable: "alg_onrgoedkenmerk",
kenmerkParentKey : "alg_onrgoed_key",
kenmerkWaarde: "alg_onrgoedkenmerk_waarde",
kenmerkKey: "alg_kenmerk_key",
kenmerkToonbaar: "alg_kenmerk_toonbaar",
currentKenmerkenSQL: currentKenmerkenSQL,
requestQF: Request.Form,
flexPath: "ALG/E",
module: "ALG",
moduleName: "alg_onrgoed_niveau",
moduleVal: "E",
isNew: regio_key < 0
});
}
Response.Write(JSON.stringify(result));
%><% ASPPAGE_END(); %>

View File

@@ -150,14 +150,18 @@ if (!room_exists)
manRWFIELD("room_opp", "fldshort", L("lcl_estate_ruimte_bruto_vloeropp"), room_data.grossarea, {maxlength: 10, datatype: "float"});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_getekendopp"), room_data.cadcontours[0].cadarea, {datatype: "float"});
manRWFIELD("room_oppa1", "fldshort", L("lcl_estate_ruimte_opp_alt1"), room_data.area1, {maxlength: 10, datatype: "float"});
if (L("lcl_estate_ruimte_opp_alt1") != "")
{
manRWFIELD("room_oppa1", "fldshort", L("lcl_estate_ruimte_opp_alt1"), room_data.area1, {maxlength: 10, datatype: "float"});
}
if (S("fg_labellayers_alt1")!="" && S("fg_contourlayers_alt1")!="") {
ROFIELDTR("fldshort", L("lcl_fg_tek_room_opp_g_alt1"), room_data.cadcontours[0].cadalt1, {datatype: "float"});
}
manRWFIELD("room_oppa2", "fldshort", L("lcl_estate_ruimte_opp_alt2"), room_data.area2, {maxlength: 10, datatype: "float"});
if (L("lcl_estate_ruimte_opp_alt2") != "")
{
manRWFIELD("room_oppa2", "fldshort", L("lcl_estate_ruimte_opp_alt2"), room_data.area2, {maxlength: 10, datatype: "float"});
}
if (S("fg_labellayers_alt2")!="" && S("fg_contourlayers_alt2")!="") {
ROFIELDTR("fldshort", L("lcl_fg_tek_room_opp_g_alt2"), room_data.cadcontours[0].cadalt2, {datatype: "float"});
}

View File

@@ -111,7 +111,7 @@ oRs.Close();
</script>
</head>
<body class="fclt-modal" id="mod_algmultiedit">
<body class="modal" id="mod_algmultiedit">
<% MODAL_START(); %>
<form name="u2" action="alg_edit_ruimte_multi_save.asp?alg_level=<%=safe.htmlattr(alg_level)%>&alg_keys=<%=ingesloten.join(",")%>" method="post">
<%

View File

@@ -54,7 +54,6 @@ if (ter_key > 0)
+ ", prs_afdeling_key"
+ ", prs_perslid_key_verantw"
+ ", prs_perslid_key_verantw2"
+ ", mld_dienstniveau_key"
+ " FROM alg_terreinsector "
+ " WHERE alg_terreinsector_key = " + ter_key;
@@ -78,7 +77,6 @@ if (ter_key > 0)
var toon_email = oRs("alg_terreinsector_toon_email").Value;
var toon_kenteken = oRs("alg_terreinsector_toon_kentk").Value;
var vervaldatum = oRs("alg_terreinsector_vervaldatum").Value != null ? new Date(oRs("ALG_TERREINSECTOR_VERVALDATUM").Value) : null;
var dienstniveau = oRs("mld_dienstniveau_key").Value;
oRs.Close();
}
@@ -215,20 +213,6 @@ BLOCK_START("algter3", L("lcl_alg_gebouw_administr"), {icon: "fa-clipboard"});
FILEPICKERTR("ter_image", L("lcl_alg_terreinsector_image"), ter_image, { "key": ter_key, "module": "ALGPHT", "readonly": !this_alg.writeman });
BLOCK_END();
BLOCK_START("algter4", L("lcl_alg_gebouw_facilitair"), {icon: "fa-users-cog"});
sql = "SELECT mld_dienstniveau_key"
+ " , " + lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau"
+ " ORDER BY UPPER(" + lcl.xsql("mld_dienstniveau_omschr", "mld_dienstniveau_key") + ")";
FCLTselector("dienstniveau",
sql,
{ label: L("lcl_mld_dienst_niveau"),
initKey: dienstniveau,
emptyOption: "",
readonly: !this_alg.writeman
});
BLOCK_END();
BLOCK_START("algter4", L("lcl_alg_gebouw_fysiek"), {icon: "fa-ruler-combined"});
RWFIELDTR("ter_opp", "fldshort", L("lcl_estate_terreinsector_man_oppervlak"), ter_opp, {maxlength: 15});

View File

@@ -78,7 +78,7 @@ user.auth_required_or_abort(tobeedited > 0); // We klagen niet over enkele wel e
</script>
</head>
<body class="fclt-modal" id="mod_algmultiedit">
<body class="modal" id="mod_algmultiedit">
<% MODAL_START(); %>
<form name="u2" action="alg_edit_terreinsector_multi_save.asp?ter_keys=<%=ingesloten.join(",")%>" method="post">
<%
@@ -145,17 +145,6 @@ user.auth_required_or_abort(tobeedited > 0); // We klagen niet over enkele wel e
emptyOption: "",
initEmpty: true
});
sql = "SELECT mld_dienstniveau_key"
+ " , " + lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau"
+ " ORDER BY UPPER(" + lcl.xsql("mld_dienstniveau_omschr", "mld_dienstniveau_key") + ")";
FCLTselector("dienstniveau",
sql,
{ label: L("lcl_mld_dienst_niveau"),
emptyOption: "",
initEmpty: true,
readonly: !this_alg.writeuse
});
MODAL_BLOCK_END();

View File

@@ -49,8 +49,6 @@ if (Request.Form("toon_kenteken").Count == 1 && getFParam("check_toon_kenteken",
{ var toon_k = (getFParam("toon_kenteken") ? getFParam("toon_kenteken") : 0);
fields.push({ dbs: "alg_terreinsector_toon_kentk", typ: "number", val: toon_k, track: L("lcl_estate_gebouw_toon_kenteken")});
}
if (Request.Form("dienstniveau").Count == 1 && getFParam("check_dienstniveau", "off") == "on")
fields.push({ dbs: "mld_dienstniveau_key", typ: "key", frm: "dienstniveau", track: L("lcl_mld_dienst_niveau"), foreign: "mld_dienstniveau" });
for (var i = 0; i < ter_key_arr.length; i++)

View File

@@ -37,8 +37,7 @@ var fields = [{ dbs: "alg_terreinsector_omschrijving", typ: "varchar", frm: "ter
{ dbs: "prs_kostenplaats_key", typ: "key", frm: "prs_kstn", track: L("lcl_prs_dept_kosten"), foreign: "PRS_KOSTENPLAATS" },
{ dbs: "prs_afdeling_key", typ: "key", frm: "prs_afd", track: L("lcl_dep_name_level2"), foreign: "PRS_AFDELING" },
{ dbs: "prs_perslid_key_verantw", typ: "key", frm: "verantw", track: L("lcl_alg_verantw"), foreign: "PRS_PERSLID" },
{ dbs: "prs_perslid_key_verantw2", typ: "key", frm: "verantw2", track: L("lcl_alg_verantw2"), foreign: "PRS_PERSLID" },
{ dbs: "mld_dienstniveau_key", typ: "key", frm: "dienstniveau", track: L("lcl_mld_dienst_niveau"), foreign: "MLD_DIENSTNIVEAU" }];
{ dbs: "prs_perslid_key_verantw2", typ: "key", frm: "verantw2", track: L("lcl_alg_verantw2"), foreign: "PRS_PERSLID" }];
if (this_alg.writeman)
{

View File

@@ -74,7 +74,7 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we
</script>
</head>
<body class="fclt-modal" id="mod_algmultiedit">
<body class="modal" id="mod_algmultiedit">
<% MODAL_START(); %>
<form name="u2" action="alg_edit_verdieping_multi_save.asp?flr_keys=<%=ingesloten.join(",")%>" method="post">
<%

View File

@@ -25,27 +25,22 @@ function generateFlexKenmerkBlock(params)
var advanced = params.advanced; // Geavanceerd
var hasfilter = params.hasfilter? params.hasfilter : null;
function isReadonly (oRs)
function isReadonly (volgnummer)
{
if (reado)
return true;
var rolcode = oRs("kenmerk_rolcode").value;
var canWrite = (params.this_alg.writeman && (rolcode&1)) || (params.this_alg.writeuse && (rolcode&2));
return !canWrite; // readonly
if (volgnummer < 100 && !params.this_alg.writeman)
return true;
if (volgnummer > 100 && !params.this_alg.writeuse)
return true;
}
function isInvisible(oRs)
function isInvisible(volgnummer, ktype)
{
var ktype = oRs("kenmerk_kenmerktype").value;
if (params.multi)
return (ktype == 'M' || ktype == 'F' || ktype == 'E'); // onzichtbaar bij multi
}
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
var myreadrolcode = 0 + (params.this_alg.readman ? 1 : 0)
+ (params.this_alg.readuse ? 2 : 0);
var sql = "SELECT k.alg_kenmerk_key kenmerk_key"
+ " , 1 kenmerk_key_count"
+ " , NULL srtkenmerk_key"
@@ -70,7 +65,6 @@ function generateFlexKenmerkBlock(params)
: " , " + lcl.xsql("k.alg_kenmerk_default", "k.alg_kenmerk_key")
) + " kenmerk_waarde"
+ " , k.alg_kenmerk_volgnr kenmerk_volgnr"
+ " , k.alg_kenmerk_rolcode kenmerk_rolcode"
+ " , " + lcl.xsql("k.alg_kenmerk_dimensie", "k.alg_kenmerk_key") +" kenmerk_dimensie"
+ " , " + lcl.xsql("k.alg_kenmerk_hint", "k.alg_kenmerk_key") +" kenmerk_hint"
+ " , " + lcl.xsql("k.alg_kenmerk_default", "k.alg_kenmerk_key") + " kenmerk_default"
@@ -85,11 +79,12 @@ function generateFlexKenmerkBlock(params)
+ " FROM alg_kenmerk k "
+ " WHERE k.alg_kenmerk_niveau = " + safe.quoted_sql(onrgoed_niveau)
+ " AND k.alg_kenmerk_verwijder IS NULL "
+ " AND BITAND(alg_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
+ (!params.this_alg.readman? " AND alg_kenmerk_volgnr >= 100" : "")
+ (!params.this_alg.readuse? " AND alg_kenmerk_volgnr <= 100" : "")
+ " ORDER BY k.alg_kenmerk_volgnr"
+ " , " + lcl.xsql("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key");
var trn = 0; // fijn, maar waarom?
var trn = 0;
listKenmerk(sql,
"ALG", //module

View File

@@ -125,7 +125,7 @@ sql0 = "SELECT {0} id, " // 1 query voor beide
+ " '{2}' lbl, "
+ " COUNT (*) val, "
+ " '' det "
+ " FROM ins_v_deelenonderdeel i, ins_srtdeel sd "
+ " FROM ins_deel i, ins_srtdeel sd "
+ " WHERE i.ins_deel_verwijder IS NULL "
+ " AND i.ins_srtdeel_key = sd.ins_srtdeel_key"
+ " AND sd.ins_srtdeel_verwijder IS NULL "
@@ -139,7 +139,7 @@ sql0 = "SELECT {0} id, " // 1 query voor beide
+ " AND r.res_ins_deel_key = i.ins_deel_key) ";
sql1 = "SELECT {0} id, '> ' || ins_discipline_omschrijving lbl, COUNT (*) val, '' det "
+ " FROM ins_v_deelenonderdeel i, ins_discipline rd, ins_srtdeel sd "
+ " FROM ins_deel i, ins_discipline rd, ins_srtdeel sd "
+ " WHERE i.ins_discipline_key = rd.ins_discipline_key "
+ " AND i.ins_deel_verwijder IS NULL "
+ " AND sd.ins_srtdeel_verwijder IS NULL "

View File

@@ -40,7 +40,6 @@ FCLTHeader.Requires({ plugins: ["jQuery"] });
oRs.close()
}
var canImport = (user.checkAutorisation("WEB_IMPORT", true) != null);
%>
<script type="text/javascript">
@@ -63,6 +62,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"] });
function gebouwEdit(row)
{
var algData = JSON.parse(row.getAttribute("ROWDATA"));
var v_all_cnt = <%=cnt_full%>;
var url = "appl/alg/alg_gebouw.asp?mode=viewChange&key=" + algData.key + "&cnt_full=<%=cnt_full%>";
FcltMgr.openDetail(url, L("lcl_building") + " " + algData.oms);
}
@@ -105,6 +105,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"] });
var url = "appl/ins/ins_search.asp?urole=bo&gebouw_key=" + algData.key;
FcltMgr.openDetail(url, L("lcl_building") + " " + algData.oms);
}
</script>
<%
@@ -132,18 +133,6 @@ function gebouw_list(pautfunction, params)
var fitness_score1_from = params.fitness_score1_from;
var fitness_score1_through = params.fitness_score1_through;
var transitParam = buildTransitParam(["locatiekey", "urole", "bld_key", "flo_key", "room_key"]);
var rstFilters = params.rstFilters;
var checkBoxes = [
{
lcl: L("lcl_alg_gebouw_vervallen_incl"),
param: 'expAlgIncl',
checked: expalgincl,
transitParams: transitParam
}
];
var rstCheckBoxes = rstFilters ? checkBoxes : [];
var autparamsINSUSE = user.checkAutorisation("WEB_INSUSE", true);
var autparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);
var readuse = autparamsINSUSE && autparamsINSUSE.PRSreadlevel < 9 && autparamsINSUSE.ALGreadlevel < 9; // Wijzigen Afgeronde gegevens.
@@ -245,12 +234,13 @@ function gebouw_list(pautfunction, params)
var addurl = "appl/alg/alg_gebouw.asp";
var addButton = [];
if (canAdd)
{
addButton.push({ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" });
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
}
// addurl += buildTransitParam(["loc_key", "bld_key", "flo_key", "room_key"], params) // TODO: welke allemaal?
/**********************************
* Callback functies ResultsetTable
*********************************/
@@ -325,10 +315,10 @@ function gebouw_list(pautfunction, params)
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var flexval = oRs("flex").Value;
var alg_key = oRs("alg_gebouw_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
@@ -351,9 +341,7 @@ function gebouw_list(pautfunction, params)
flexParams: fnrowFlexParams,
filterParams: params,
outputmode: outputmode,
buttons: addButton,
rstCheckBoxes: rstCheckBoxes,
roundtripCode: (canImport ? "ONRGOED1" : "")
buttons: addButton
});
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_descr"), content: "alg_locatie_omschrijving"}));
@@ -399,3 +387,4 @@ function gebouw_list(pautfunction, params)
</html>
<%
} %>

View File

@@ -32,7 +32,6 @@ var srtgebouw_key = getQParamInt("srt", -1); // Gebouwfunctie
var verantw_key = getQParamInt("verantw", -1); // Gebouw verantwoordelijke
var verantw_key2 = getQParamInt("verantw2", -1); // Gebouw verantwoordelijke 2
var expalgincl = getQParamInt("expAlgIncl", 0) == 1; // Ook vervallen gebouwen
var rstFilters = getQParamInt("rst_filters", 0) ;// button vervallen gebouwen
var cnt_full = getQParamInt("cnt_full", 1);
var fitness_score1_from = getQParamFloat("fitness_score1_from", -1); // Conditie score van.
var fitness_score1_through = getQParamFloat("fitness_score1_through", -1); // Conditie score t/m.
@@ -57,8 +56,7 @@ gebouw_list ( "*",
bld_email : bld_email,
bld_groep : bld_groep,
noref: (noref != -1? noref : null),
expalgincl: expalgincl,
rstFilters: (rstFilters == true ? 1 : 0)
expalgincl: expalgincl
}
);
%><% ASPPAGE_END(); %>
%><% ASPPAGE_END(); %>

View File

@@ -84,10 +84,7 @@ else
if (loc_key > -1)
{
var urole = "bo";
var page0 = "../alg/alg_gebouw_search_list.asp?urole="
+ urole +"&locatiekey="+loc_key
+ "&rst_filters=1";
var page0 = "../alg/alg_gebouw_search_list.asp?urole=" + urole +"&locatiekey="+loc_key;
IFRAMER("alggebouwframe", page0, { icon: "fa-list"} );
var page1 = "../alg/alg_terreinsector_search_list.asp?urole=" + urole +"&locatiekey="+loc_key;
IFRAMER("algterreinframe", page1, { icon: "fa-list"} );
@@ -103,7 +100,6 @@ else
{
var page2 = "../cnt/cnt_search_list.asp?embedded=1&tiny=1&urole=" + curole
+ "&ffutu=1&fact=1&frap=1&fopz=1&sact=1&loc_key=" + loc_key
+ "&rst_filters=1"
+ "&cnt_full="+cnt_full;
IFRAMER("cntlistframe", page2, { icon: "fa-list" } );
}

View File

@@ -234,7 +234,7 @@ function locatie_list(pautfunction, params)
}
return lclass;
}
function fnrowActionEnabler(oRs)
{
var eDelete = false;
@@ -258,10 +258,10 @@ function locatie_list(pautfunction, params)
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var flexval = oRs("flex").Value;
var alg_key = oRs("alg_locatie_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
@@ -305,7 +305,6 @@ function locatie_list(pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_prs_address_post_plaats"), content: "alg_locatie_post_plaats"}));
rst.addColumn(new Column({caption: L("lcl_prs_address_post_land"), content: "alg_locatie_post_land"}));
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_verantw"), content: "alg_locatie_verantw"}));
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_verantw_tel"), content: "alg_locatie_verantw_tel"}));
rst.addColumn(new Column({caption: L("lcl_geoxcoord"), content: "alg_locatie_x"}));
rst.addColumn(new Column({caption: L("lcl_geoycoord"), content: "alg_locatie_y"}));
}
@@ -329,3 +328,4 @@ function locatie_list(pautfunction, params)
<%
}
%>

View File

@@ -17,6 +17,19 @@
<%
FCLTHeader.Requires({ plugins:["jQuery"] });
function fnrowData(oRs)
{
var detail_key = oRs.Fields("id").Value;
var key = oRs.Fields("id").Value;
var oms = oRs.Fields("name").Value;
var data = {detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
%>
<script type="text/javascript">
@@ -29,7 +42,7 @@ FCLTHeader.Requires({ plugins:["jQuery"] });
FcltMgr.openDetail(url, L("lcl_district"));
}
function districtEdit(row)
function districtEdit(row)
{
var algData = JSON.parse(row.getAttribute("ROWDATA"));
var url = "appl/ALG/alg_regio.asp?mode=viewUpdate&key=" + algData.key;
@@ -41,13 +54,13 @@ FCLTHeader.Requires({ plugins:["jQuery"] });
FcltMgr.confirm(L("lcl_alg_del_txt_regio"), { autoconfirm: isMulti }, function() {
var regKeyString = getKeyString(rowArray);
var data = { key: regKeyString,
level: "E"
level: "RE"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp", data, FcltCallbackRefresh, "json");
});
}
</script>
</script>
<%
function regio_list(pautfunction, params)
@@ -62,45 +75,13 @@ function regio_list(pautfunction, params)
var showall = params.showall;
var reg_key = params.reg_key;
function fnrowData(oRs)
{
var detail_key = oRs.Fields("id").Value;
var key = oRs.Fields("id").Value;
var oms = oRs.Fields("name").Value;
var data = {detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
function fnrowActionEnabler(oRs)
{
var eDelete = false;
if (alg.canWriteRegio(oRs.Fields("id").Value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete});
var eDelete = false;
if (alg.canWriteRegio(oRs.Fields("id").Value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
function fnrowFlexParams(oRs)
{
var reg_key = oRs.Fields("id").Value;
var this_alg = alg.func_enabled(reg_key, "E");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
function fncolFlexBijlagen(oRs)
{
var flexval = oRs.Fields("algflex").Value;
var alg_key = oRs.Fields("id").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
{
result += alg.alg_onroerendgoed_flex_bijlagen("E", alg_key);
}
return result;
}
%>
<html>
<head>
@@ -109,30 +90,16 @@ function regio_list(pautfunction, params)
<body id="listbody">
<%
// Ophalen regio`s
var flexParams = alg.alg_onroerendgoed_flex_params("E");
var regio_key = getQParamInt("regiokey");
var filter = {};
if (regio_key > -1)
filter = {id: regio_key};
else
{
var kenmerk_sql = getKenmerkSql("ALG", "alg_regio.alg_regio_key");
if (kenmerk_sql)
filter = {kenmerk_sql: kenmerk_sql.substr(4)}; // De "AND" aan het begin eraf halen.
}
var params = { filter: filter // Alle regio`s ophalen, behalve de verwijderde.
, flexparams: { anyflex: flexParams.anyflex
, bijlageflex: flexParams.bijlageflex
, sql: flexParams.sql.substr(1).replace("e.", "alg_regio.")
, algflex: {"dbs": "algflex", "typ": "varchar"}
}
};
var model = new model_regions();
var regio_array = model.REST_GET(params); // Roep de API2 GET aan
var filter = {id: regio_key};
var params = { filter: filter }; // Alle regio`s ophalen, behalve de verwijderde.
var regio_array = model_regions.REST_GET(params); // Roep de API2 GET aan
//
var addurl = "appl/alg/alg_regio.asp";
// addurl += buildTransitParam(["loc_key", "bld_key", "flo_key", "room_key"], params) // TODO: welke allemaal?
if (canAdd)
{
@@ -145,17 +112,13 @@ function regio_list(pautfunction, params)
showAll: showall,
rowData: fnrowData,
rowActionEnabler: fnrowActionEnabler,
flexModule: "ALG",
flexId: "alg_regio_key",
flexParams: fnrowFlexParams,
outputmode: outputmode,
filterParams: params,
buttons: addButton
});
rst.addColumn(new Column({caption: L("lcl_estate_regio_descr"), content: "name"}));
if (flexParams.anyflex)
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
rst.addAction({ action: "districtEdit", caption: L("lcl_edit"), isDefault: true});
rst.addAction({ action: "doDelete", caption: L("lcl_delete"), enabler: "eDelete", multi: true, multiOnce: true});

View File

@@ -24,31 +24,7 @@ var authparams = alg.checkAutorisation();
<head>
<% FCLTHeader.Generate(); %>
<script type="text/javascript">
function doSubmit()
{
// Submitten met kenmerken
doSubmitWithKenmerken();
}
async function myModal(init)
{
var lvl = "E";
var key = 0;
var bld_key = "";
var url = "load_kenmerk.asp?disc="
+ "&urole=bo"
+ "&advanced=1"
+ "&hasFilter=1"
+ "&onrgoed_key=" +bld_key
+ "&onrgoed_niveau=" + lvl;
var titel = L("lcl_properties");
await showKenmerkModal(url, titel, init);
}
$(function() {
<% if (autosearch) { %>
document.forms.u2.submit();
<% } %>
});
$(function() {<% if (autosearch) { %> document.forms.u2.submit(); <%}%> });
</script>
</head>
<body id="searchbody">
@@ -63,10 +39,8 @@ var authparams = alg.checkAutorisation();
whenEmpty: L("lcl_search_generic")
});
SEARCH_BLOCK_END();
var buttons = [{title: L("lcl_overview_list"), action: "document.forms.u2.submit();", id: "bSearch", icon: "fa-clipboard-list" }];
SIMPLE_BLOCK_START();
var buttons = [ {title: L("lcl_overview_list"), action: "doSubmit();", id: "bSearch", icon: "fa-clipboard-list" }
, {title: L("lcl_shared_advanced"), action: "myModal()", id: "bAdvanced", importance: 3, icon: "fa-filter" }
];
CreateButtons(buttons, { entersubmit: true, showIcons: true });
SIMPLE_BLOCK_END();
SEARCH_PAGE_END(); %>

View File

@@ -19,10 +19,10 @@ FCLTHeader.Requires({ plugins:["jQuery", "suggest"], js: ["jQuery-ui.js"] });
function ruimte_list(pautfunction, params)
{
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
var addButton = [];
var authparams = alg.checkAutorisation();
// Met ALG* bepaal je wat je ziet (Read), met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
var canAdd = (authparams.rmALGwritelevel < 9);
var canImport = (user.checkAutorisation("WEB_IMPORT", true) != null);
// Voor resulttable de globalen zetten; zou ng anders moeten.
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
@@ -41,19 +41,6 @@ function ruimte_list(pautfunction, params)
var expalgincl = params.expalgincl;
var chkgeb = params.chkgeb;
var cnt_full = params.cnt_full;
var usingoccupationsensors = params.sensorstats;
// Het lijkt zinvol, ook voor onnodig performanceverlies, dat we deze alleen doen als we autorisatie hebben voor WEB_RESBAC of WEB_RESMSU
var showdeskreservationstats = params.resstats && (user.has("WEB_RESBAC") || user.has("WEB_RESMSU"))
var showroomreservationstats = params.resstats && (user.has("WEB_RESBAC") || user.has("WEB_RESMSU"));
if (showdeskreservationstats) {
// Fast check to see if we do have werkplekdisciplines
sql= "SELECT 1 FROM res_discipline WHERE ins_discipline_min_level = 5 AND ins_discipline_verwijder IS NULL AND ROWNUM = 1";
oRs = Oracle.Execute(sql);
showdeskreservationstats = !oRs.eof;
oRs.close();
}
%>
<html>
@@ -153,29 +140,11 @@ function ruimte_list(pautfunction, params)
+ " AND sn.fac_srtnotificatie_xmlnode = 'ruimte'"
+ " ) recentdatum"
+ flexParams.sql
+ (usingoccupationsensors
? ", sstats.total_person_hours"
+ ", sstats.avg_utilization_pct"
+ ", sstats.peak_occupied_desks"
: "")
+ (showdeskreservationstats
? ", dstats.total_reserved_hours_desk"
+ ", dstats.avg_reserved_count_desk"
+ ", dstats.peak_reserved_count_desk"
: "")
+ (showroomreservationstats
? ", rstats.total_reserved_hours_room" // hoeveel uur in de afgelopen 90 dagen
+ ", rstats.avg_persons_per_reservation" // gemiddeld aantal deelnemers per reservering
+ ", rstats.avg_reservation_duration_hours" // gemiddelde reserveringsduur
: "")
+ " FROM alg_ruimte r"
+ ", alg_verdieping v"
+ ", alg_gebouw g"
+ ", alg_locatie l"
+ ", alg_srtruimte s"
+ (usingoccupationsensors ? ", ins_v_room_occupancy_kpis sstats" : "")
+ (showdeskreservationstats ? ", res_v_desk_reservation_kpis dstats" : "")
+ (showroomreservationstats ? ", res_v_room_simple_kpis rstats" : "")
+ " WHERE v.alg_verdieping_key = r.alg_verdieping_key "
+ " AND g.alg_gebouw_key = v.alg_gebouw_key "
+ " AND l.alg_locatie_key(+) = g.alg_locatie_key "
@@ -189,9 +158,6 @@ function ruimte_list(pautfunction, params)
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + authparams.ALGreadlevel + ")";
}
sqln += (usingoccupationsensors ? " AND r.alg_ruimte_key = sstats.alg_ruimte_key(+)" : "")
sqln += (showdeskreservationstats ? " AND r.alg_ruimte_key = dstats.alg_ruimte_key(+)" : "")
sqln += (showroomreservationstats ? " AND r.alg_ruimte_key = rstats.alg_ruimte_key(+)" : "")
sqln += getKenmerkSql("ALG", "r.alg_ruimte_key");
@@ -253,13 +219,10 @@ function ruimte_list(pautfunction, params)
var addurl = "appl/alg/alg_ruimte.asp?a=1";
addurl += buildTransitParam(["locatiekey", "gebouwkey", "verdiepingkey", "ruimtekey"], params) // TODO: welke allemaal?
var buttons = [];
if (canAdd)
{
buttons.push({ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" });
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
}
buttons.push({ icon: "fa-columns", title: L("lcl_scf_columns"), action: "openColumns()"});
/**********************************
* Callback functies ResultsetTable
@@ -336,10 +299,10 @@ function ruimte_list(pautfunction, params)
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var flexval = oRs("flex").Value;
var alg_key = oRs("alg_ruimte_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
@@ -353,7 +316,6 @@ function ruimte_list(pautfunction, params)
keyColumn: "alg_ruimte_key",
ID: "algtable",
title: L("lcl_menu_alg_ruimte"),
tabs_code: "algruimte_list-x",
showAll: showall,
rowData: fnrowData,
rowClass: fnrowClass,
@@ -363,8 +325,7 @@ function ruimte_list(pautfunction, params)
flexId: "alg_ruimte_key",
flexParams: fnrowFlexParams,
filterParams: params,
buttons: buttons,
roundtripCode: (canImport ? "ONRGOED2" : "")
buttons: addButton
});
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_descr"), content: "alg_locatie_omschrijving"}));
@@ -378,8 +339,16 @@ function ruimte_list(pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_man_sort"), content: "alg_srtruimte_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_bruto_vloeropp"), content: "alg_ruimte_bruto_vloeropp", datatype: "float", decimals: 2 }));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_opp_alt1"), content: "alg_ruimte_opp_alt1", datatype: "float", decimals: 2 }));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_opp_alt2"), content: "alg_ruimte_opp_alt2", datatype: "float", decimals: 2 }));
if (L("lcl_estate_ruimte_opp_alt1") != "")
{
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_opp_alt1"), content: "alg_ruimte_opp_alt1", datatype: "float", decimals: 2 }));
}
if (L("lcl_estate_ruimte_opp_alt1") != "")
{
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_opp_alt2"), content: "alg_ruimte_opp_alt2", datatype: "float", decimals: 2 }));
}
if (outputmode != 0) // to be completed
{
@@ -392,25 +361,6 @@ function ruimte_list(pautfunction, params)
if (flexParams.anyflex)
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
if (usingoccupationsensors)
{
rst.addColumn(new Column({caption: I("fa-sensor")+"&nbsp;"+L("lcl_alg_occupationsensor_ph"), content: "total_person_hours", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-sensor")+"&nbsp;"+L("lcl_alg_occupationsensor_au"), content: "avg_utilization_pct", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-sensor")+"&nbsp;"+L("lcl_alg_occupationsensor_po"), content: "peak_occupied_desks", datatype: "number"}));
}
if (showroomreservationstats)
{
rst.addColumn(new Column({caption: I("fa-calendar")+"&nbsp;"+L("lcl_alg_resstats_trhr"), content: "total_reserved_hours_room", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-calendar")+"&nbsp;"+L("lcl_alg_resstats_appr"), content: "avg_persons_per_reservation", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-calendar")+"&nbsp;"+L("lcl_alg_resstats_ardh"), content: "avg_reservation_duration_hours", datatype: "float"}));
}
if (showdeskreservationstats)
{
rst.addColumn(new Column({caption: I("fa-chair-office")+"&nbsp;"+L("lcl_alg_wpresstats_trh"), content: "total_reserved_hours_desk", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-chair-office")+"&nbsp;"+L("lcl_alg_wpresstats_arc"), content: "avg_reserved_count_desk", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-chair-office")+"&nbsp;"+L("lcl_alg_wpresstats_prc"), content: "peak_reserved_count_desk", datatype: "number"}));
}
rst.addAction({ action: "ruimteEdit", caption: L("lcl_edit"), isDefault: true });
rst.addAction({ action: "ruimteEditMulti", caption: L("lcl_alg_multi_edit"), multi: true, multiOnce: true, single: false, enabler: "eEditMulti"});
rst.addAction({ action: "doDelete", caption: L("lcl_delete"), multi: true, single: !noref, enabler: "eDelete" });
@@ -430,3 +380,4 @@ function ruimte_list(pautfunction, params)
<%
}
%>

View File

@@ -14,7 +14,6 @@
<%
FCLTHeader.Requires({ plugins:["jQuery", "kenmerk"] });
// pre-filters
var locatie_key = getQParamInt("locatie_key", -1); // Locatie
var gebouw_key = getQParamInt("gebouw_key", -1); // Gebouw
var verdieping_key = getQParamInt("verdieping_key", -1); // Verdieping
@@ -22,15 +21,12 @@ var ruimte_key = getQParamInt("ruimte_key", -1); // ruimte
var ruimte_nr = getQParam("ruimte_nr", "");
var ruimte_use = getQParamInt("ruimte_use", -1); // Ruimtefunctie
var ruimte_descr = getQParam("ruimte_descr", "");
// behaviour
var autosearch = getQParamInt("autosearch", 0) == 1;
var alg_startlevel = getQParamInt("alg_startlevel", 2); // Startlevel van plaatsselector, default Locatie
var chkgeb = getQParamInt("chkgeb", 0) == 1; // Controleer tegen de vervallenstatus van het bovenliggende gebouw (vertrouw lvl_key/geb_key niet)
var chkgeb = getQParamInt("chkgeb", 0) == 1;
var cnt_full = getQParamInt("cnt_full", 1);
var sensorstats = getQParamInt("nosensorstats", 0) == 0;
var resstats = getQParamInt("noresstats", 0) == 0;
var authparams = alg.checkAutorisation();
%>
<html>
<head>
@@ -83,7 +79,6 @@ var authparams = alg.checkAutorisation();
filtercode: "INCVR",
whenEmpty: L("lcl_search_generic") // want filter
});
RWCHECKBOXTR("expAlgIncl", "fld", L("lcl_alg_ruimte_vervallen_incl"), false, { html: " value='1' ", boxfirst: true, twocols: true});
SEARCH_BLOCK_END();
SEARCH_BLOCK_START();
%>
@@ -93,7 +88,7 @@ var authparams = alg.checkAutorisation();
</tr>
<tr class="primsearch">
<td class="label"><label for="descr"><%=L("lcl_estate_ruimte_man_descr")%></label></td>
<td><input type="text" class="fldsrch fld" name="descr" value="<%=safe.htmlattr(ruimte_descr)%>"></td>
<td><input type="text" class="fldsrch fldshort" name="descr" value="<%=safe.htmlattr(ruimte_descr)%>"></td>
</tr>
<%
@@ -125,14 +120,16 @@ var authparams = alg.checkAutorisation();
filtercode: "AR"
});
}
if (sensorstats && (S("ins_occupationsensors_srtgroep_key") > 0))
{
RWCHECKBOXTR("sensorstats", "fld", L("lcl_alg_sensorstats"), false, { html: " value='1' ", boxfirst: true, twocols: true});
}
if (resstats && (user.has("WEB_RESBAC") || user.has("WEB_RESMSU")))
{
RWCHECKBOXTR("resstats", "fld", L("lcl_alg_resstats"), false, { html: " value='1' ", boxfirst: true, twocols: true});
}
%>
<!-- Vervallen ruimten -->
<tr class="primsearch">
<td></td>
<td align=left>
<input type="checkbox" class="fld" name="expAlgIncl" id="expAlgIncl" value="1" >
<label for="expAlgIncl"><%=L("lcl_alg_ruimte_vervallen_incl")%></label>
</td>
</tr>
<%
SEARCH_BLOCK_END();
SIMPLE_BLOCK_START();

View File

@@ -52,8 +52,6 @@ ruimte_list ( "*",
dept_key_arr: dept_key_arr,
noref: (noref != -1? noref : null),
expalgincl: expalgincl,
sensorstats: getQParamInt("sensorstats", 0) == 1,
resstats: getQParamInt("resstats", 0) == 1,
chkgeb: chkgeb
}
);

View File

@@ -201,7 +201,7 @@ else
</script>
</head>
<body class="fclt-modal" id="mod_ruimteafdeling">
<body class="modal" id="mod_ruimteafdeling">
<% MODAL_START(); %>
<form name="u2" method="post" action="alg_ruimteafdeling.asp?submit=1&ruimte_keys=<%=ruimte_key_arr.join(",")%>">
<% MODAL_BLOCK_START("alg_ruimteafdeling", L("lcl_alg_geselecteerde_ruimten") + ": " + ruimte_key_arr.length, { icon: "fa-map-marker" }); %>
@@ -298,4 +298,4 @@ IFACE.FORM_END();
</html>
<%
}
ASPPAGE_END(); %>
ASPPAGE_END(); %>

View File

@@ -51,7 +51,7 @@ FCLTHeader.Requires({plugins:["suggest","jQuery"], js: ["jQuery-ui.js"]})
</script>
</head>
<body class="fclt-modal" id="mod_ruimtefunctie">
<body class="modal" id="mod_ruimtefunctie">
<% MODAL_START(); %>
<%
var page="alg_edit_ruimtefunctie.asp?srtruimte_lg_key=" + srtruimte_lg_key; // Edit
@@ -65,4 +65,4 @@ FCLTHeader.Requires({plugins:["suggest","jQuery"], js: ["jQuery-ui.js"]})
<% MODAL_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -41,7 +41,7 @@ var ruimte_key_arr = getQParamIntArray("ruimte_keys");
</script>
</head>
<body class="fclt-modal" id="mod_ruimteresscope">
<body class="modal" id="mod_ruimteresscope">
<% MODAL_START(); %>
<form name="u2" method="post" action="alg_ruimteresscope_save.asp?ruimte_keys=<%=ruimte_key_arr.join(",")%>">
<% MODAL_BLOCK_START("alg_ruimteresscope", L("lcl_alg_geselecteerde_ruimten") + ": " + ruimte_key_arr.length, { icon: "fa-map-marker" }); %>
@@ -74,4 +74,4 @@ var ruimte_key_arr = getQParamIntArray("ruimte_keys");
<% MODAL_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -72,7 +72,6 @@ var verantw2 = oRs("prs_perslid_key_verantw2").Value;
var vervaldatum = oRs("alg_gebouw_vervaldatum").Value;
var geb_score1 = oRs("alg_gebouw_mjb_score1").Value;
var actie_grp_key = oRs("bez_actie_groep_key").Value;
var kalender_id = oRs("mld_vrije_dagen_id").Value;
oRs.Close();
%>
@@ -240,7 +239,6 @@ oRs.Close();
}
oRs.Close();
ROFIELDTR("fld", L("lcl_calendar"), kalender_id, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_gebouw_beginuur"), toTimeString(beginuur), {suppressEmpty:true} );
ROFIELDTR("fld", L("lcl_estate_gebouw_einduur"), toTimeString(einduur), {suppressEmpty:true} );
ROCHECKBOXTR("fldalgwerk", L("lcl_estate_gebouw_werkdagen"), werkdagen==1);

View File

@@ -11,7 +11,6 @@
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/timezoneselector.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<!-- #include file="alg.inc" -->
@@ -50,8 +49,6 @@ var pst_land = oRs("alg_locatie_post_land").Value;
var loc_deleted = oRs("alg_locatie_verwijder").Value != null;
var vervaldatum = oRs("alg_locatie_vervaldatum").Value;
var dienstniveau_key = oRs("mld_dienstniveau_key").Value;
var alg_tz = oRs("alg_locatie_timezone").Value;
oRs.Close();
%>
<html>
@@ -139,7 +136,6 @@ oRs.Close();
BLOCK_START("facFM", L("lcl_operations_block"), {icon: "fa-users-cog"});
ROFIELDTR("fld", L("lcl_alg_locatie_volgnr"), loc_volgnr, {suppressEmpty: true});
FCLTtimezoneselector("", {initVal: alg_tz, readonly: true, suppressEmpty: true});
var fldcls = "fld";
if (vervaldatum <= new Date())
fldcls += " expired2";

View File

@@ -47,16 +47,14 @@ var afgehandeld = false;
var kenmerk_key = -1;
if (alg_key > 0)
{
// Als ik canReadNotes heb dan heb ik canUSEread en/of canMANread rechten.
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
var myreadrolcode = 0 + (this_alg.canMANread ? 1 : 0)
+ (this_alg.canUSEread ? 2 : 0);
// Is er een bijlage kenmerk?
var sql = "SELECT k.alg_kenmerk_key"
+ " FROM alg_kenmerk k"
+ " WHERE k.alg_kenmerk_niveau IN ('R','V','G','T','L')"
+ " AND k.alg_kenmerk_verwijder IS NULL"
+ " AND BITAND(k.alg_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
// Als ik canReadNotes heb dan heb ik canUSEread en/of canMANread rechten.
+ (!this_alg.canMANread ? " AND k.alg_kenmerk_volgnr >= 100" : "")
+ (!this_alg.canUSEread ? " AND k.alg_kenmerk_volgnr <= 100" : "")
+ " AND ( k.alg_kenmerk_verplicht IS NULL"
+ " OR k.alg_kenmerk_verplicht = 0)"
+ " AND k.alg_kenmerk_kenmerktype = 'M'"

View File

@@ -5,7 +5,7 @@
File: alg_show_regio.asp
Status:
Description:
Description:
Parameters: regio_key
*/ %>
@@ -21,14 +21,11 @@
FCLTHeader.Requires({plugins:["jQuery"], js: []})
var regio_key = getQParamInt("regio_key");
var onrgoedlvl = "E";
var regio_params = { filter: { id: regio_key
, show_deleted: true // Ook indien verwijderd ophalen.
}};
//var regio_array = model_regions.REST_GET(regio_params); // Roep de API2 GET aan
var model = new model_regions();
var regio_array = model.REST_GET(regio_params);
var regio_array = model_regions.REST_GET(regio_params); // Roep de API2 GET aan
var regio_data = (regio_array[0] ? regio_array[0] : {id: -1}); // GET kan meerdere records opleveren, maar we verwachten hier maar 1.
var this_alg = regio_params.func_enabled; // regio_params bevat nu ook waarden die in API2 zijn bepaald.
@@ -49,8 +46,11 @@ var regio_deleted = regio_exists && !!regio_data.deleted;
function reg_delete()
{
FcltMgr.confirm(L("lcl_alg_del_txt_regio"), function() {
var data = $("[name=u2]").serialize();
$.post("alg_edit_regio_save.asp?regio_key=<%=regio_data.id%>&action=D",
var data = {
action: "D"
};
<% protectRequest.dataToken("data"); %>
$.post($("form[name=u2]")[0].action,
data,
FcltCallbackClose,
"json");
@@ -60,8 +60,8 @@ var regio_deleted = regio_exists && !!regio_data.deleted;
</head>
<body class="showmode">
<%
SUBFRAME_START();
<%
SUBFRAME_START();
var buttons = [];
if (!regio_deleted)
{
@@ -85,14 +85,9 @@ var regio_deleted = regio_exists && !!regio_data.deleted;
<% BLOCK_START("algInfo", L("lcl_region"), {icon: "fa-globe"});
ROFIELDTR("fld", L("lcl_name"), regio_data.name);
BLOCK_END();
generateFlexKenmerkBlock ({ onrgoed_key : regio_key,
onrgoed_niveau : onrgoedlvl,
reado : true,
this_alg : this_alg });
IFACE.FORM_END();
%> </form><%
SUBFRAME_END(); %>
%>
</form>
<% SUBFRAME_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -41,6 +41,7 @@ var sql = "SELECT ts.alg_locatie_key"
+ " , ts.alg_terreinsector_oppervlak"
+ " , ts.alg_terreinsector_omtrek"
+ " , ts.alg_terreinsector_aanmaak"
+ " , ts.alg_terreinsector_omschrijving"
+ " , ts.alg_terreinsector_ordernr"
+ " , ts.alg_terreinsector_image"
+ " , ts.alg_terreinsector_toon_telef"
@@ -58,7 +59,6 @@ var sql = "SELECT ts.alg_locatie_key"
+ " , prs_perslid_key_verantw2"
+ " , ts.alg_terreinsector_vervaldatum"
+ " , ts.alg_terreinsector_verwijder"
+ " , ts.mld_dienstniveau_key"
+ " FROM alg_terreinsector ts"
+ " WHERE ts.alg_terreinsector_key = " + ter_key;
var oRs = Oracle.Execute(sql);
@@ -71,6 +71,7 @@ var ter_sroms = oRs("srtterreinsector_oms").Value;
var ter_opp = oRs("alg_terreinsector_oppervlak").Value;
var ter_omt = oRs("alg_terreinsector_omtrek").Value;
var ter_aanmk = oRs("alg_terreinsector_aanmaak").Value;
var ter_oms = oRs("alg_terreinsector_omschrijving").Value;
var ter_ordnr = oRs("alg_terreinsector_ordernr").Value;
var ter_image = oRs("alg_terreinsector_image").Value;
var toon_telefoon = oRs("alg_terreinsector_toon_telef").Value;
@@ -84,7 +85,6 @@ var verantw_key = oRs("prs_perslid_key_verantw").Value;
var verantw2_key = oRs("prs_perslid_key_verantw2").Value;
var ter_deleted = oRs("alg_terreinsector_verwijder").Value != null;
var vervaldatum = oRs("alg_terreinsector_vervaldatum").Value;
var dienstniveau_key = oRs("mld_dienstniveau_key").Value;
oRs.Close();
%>
@@ -215,20 +215,6 @@ oRs.Close();
FILEPICKERTR("ter_image", L("lcl_alg_terreinsector_image"), ter_image, { "key": ter_key, "module": "ALGPHT", "readonly": true });
BLOCK_END();
BLOCK_START("algter4", L("lcl_alg_gebouw_facilitair"), {icon: "fa-users-cog"});
if (dienstniveau_key)
{
sql = "SELECT mld_dienstniveau_key"
+ " , " + lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau"
+ " WHERE mld_dienstniveau_key = " + dienstniveau_key;
oRs = Oracle.Execute(sql);
ROFIELDTR("fld", L("lcl_mld_dienst_niveau"), oRs("mld_dienstniveau_omschr").value);
oRs.Close();
}
BLOCK_END();
if (!(ter_opp == null && ter_omt == null && vervaldatum == null))
{
BLOCK_START("algter4", L("lcl_alg_gebouw_fysiek"), {icon: "fa-ruler-combined"});

View File

@@ -31,7 +31,7 @@ if (ter_key > 0)
var loc_code = oRs("alg_locatie_code").value;
var ter_code = oRs("alg_terreinsector_code").value;
oRs.Close();
var ter_naam = " " + loc_code + "-" + ter_code;
}
else

View File

@@ -259,10 +259,10 @@ function terrein_list(pautfunction, params)
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var flexval = oRs("flex").Value;
var alg_key = oRs("alg_terreinsector_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
@@ -316,3 +316,4 @@ function terrein_list(pautfunction, params)
</body>
</html>
<%}%>

View File

@@ -231,10 +231,10 @@ function verdiepingen_list(pautfunction, params)
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var flexval = oRs("flex").Value;
var alg_key = oRs("alg_verdieping_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
@@ -280,3 +280,4 @@ function verdiepingen_list(pautfunction, params)
</body>
</html>
<%}%>

View File

@@ -1,148 +0,0 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: default.asp
Description: Test-pagina om in Exchange te kunnen kijken
Parameters:
Status:
Context:
Notes:
*/
THIS_FILE = "../api/default.asp";
%>
<!-- #include file="../../Shared/common.inc" -->
<!-- #include file="../../Shared/iface.inc" -->
<!-- #include file="../../Shared/calendar.inc" -->
<%
FCLTHeader.Requires({
plugins: ["jQuery"]
});
user.checkAutorisation("WEB_FACTAB");
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<style>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
body, #result {
display: grid;
grid-template-rows: auto 1fr;
font-size: 13px;
}
.captions, .content {
display: flex;
flex-wrap: wrap;
}
.attention-bar {
flex-basis: 100%;
font-size: 1.25em;
font-weight: bold;
text-align: center;
}
.inform {
background-color: orange;
color: white;
}
.captions > span {
height: 2em;
flex-basis: 50%;
text-align: center;
}
textarea {
overflow: auto;
white-space: pre;
padding: .5em;
flex-basis: 50%;
}
</style>
<script>
function doSubmit() {
$.post(
"get_exchange_info.asp",
$("[name=exchange]").serialize(),
FcltCallbackAndThenAlways(exc_submit_callback),
"json"
);
}
function exc_submit_callback(json) {
$(".host, .room").val("");
$(".attention-bar").remove();
if (json.success) {
if (json.info?.length) { // Als json.success === false, dan wordt de json.info al in een popup weergegeven
for (var i = 0; i < json.info.length; i++) {
$(".captions > .host").before("<div class='attention-bar inform'>" + I("fa-circle-info fa-lg") + " " + safe.html(json.info) + "</div>");
}
}
$(".host").val(json.host ? JSON.stringify(json.host, null, 4) : "N/A");
$(".room").val(json.room ? JSON.stringify(json.room, null, 4) : "N/A");
}
}
</script>
</head>
<body id="searchbody">
<form name="exchange" onsubmit="doSubmit(); return false;">
<% SEARCH_PAGE_START({ header: L("lcl_filterblok") });
SEARCH_BLOCK_START();
RWFIELDTR("reservering", null, L("lcl_res_number"));
RWCHECKBOXTR("compact", null, "Compact", true);
SEARCH_BLOCK_END();
SEARCH_BLOCK_START();
RWFIELDTR("userPrincipalName", null, "Eigenaar van de Exchange agenda", null, { "placeholder": "prs_perslid_email of res_ruimte_extern_id" });
FCLTcalendar("date_from", {
label: L("lcl_period_from"),
initEmpty: true,
volgnr: 1
});
FCLTcalendar("date_to", {
label: L("lcl_period_to"),
initEmpty: true,
volgnr: 2
});
SEARCH_BLOCK_END();
var buttons = [{ title: L("lcl_search"), action: "doSubmit()", importance: 1, icon: "fa-search" }];
SIMPLE_BLOCK_START();
CreateButtons(buttons, { "entersubmit": true });
SIMPLE_BLOCK_END();
SEARCH_PAGE_END();
IFACE.FORM_END();
%> </form>
<div id="result">
<div class="captions">
<span class="host">Hieronder het Exchange event uit de agenda van de <i>Gastheer</i></span>
<span class="room">Hieronder het Exchange event uit de agenda van de <i>Ruimte</i></span>
</div>
<div class="content">
<textarea class="host"></textarea>
<textarea class="room"></textarea>
</div>
</div>
</body>
</html>
<%
ASPPAGE_END();
%>

View File

@@ -1,243 +0,0 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: get_exchange_info.asp
Description: Haalt events uit Exchange op en geeft deze terug
Parameters:
Context:
Note:
*/
var JSON_Result = true;
%>
<!-- #include file="../../Shared/common.inc" -->
<%
Session.Codepage = 65001; // We doen *uitsluitend* utf-8
Response.Charset = "UTF-8";
protectRequest.validateToken();
user.checkAutorisation("WEB_FACTAB");
function early_exit(err) {
result.success = false;
result.warning = err;
ASPPAGE_END();
Response.Write(JSON.stringify(result));
Response.End;
}
function verifyMSGraphResult(response) {
if (response === false || response === null) {
early_exit("MS Graph [Generic Error] - Zie Logging voor details");
}
}
// Minimaliseer het resultaat door alleen zeer relevante velden over te nemen
function strip(result) {
function _minify(event) {
return {
"createdDateTime": event.createdDateTime,
"id": event.id,
"iCalUId": event.iCalUId,
"subject": event.subject,
"isCancelled": event.isCancelled,
"sensitivity": event.sensitivity,
"isOnlineMeeting": event.isOnlineMeeting,
"responseStatus": event.responseStatus,
"start": event.start,
"end": event.end,
// "locations": event.locations,
"attendees": event.attendees
}
}
if (result.host) {
if (result.host instanceof Array) {
for (var i = 0; i < result.host.length; i++) {
result.host[i] = _minify(result.host[i]);
}
} else {
result.host = _minify(result.host);
}
}
if (result.room) {
if (result.room instanceof Array) {
for (var i = 0; i < result.room.length; i++) {
result.room[i] = _minify(result.room[i]);
}
} else {
result.room = _minify(result.room);
}
}
return result;
}
// Polyfill
if (!Date.prototype.toISOString) {
Date.prototype.toISOString = function () {
function pad(n) { return n < 10 ? '0' + n : n }
return this.getUTCFullYear() + '-'
+ pad(this.getUTCMonth() + 1) + '-'
+ pad(this.getUTCDate()) + 'T'
+ pad(this.getUTCHours()) + ':'
+ pad(this.getUTCMinutes()) + ':'
+ pad(this.getUTCSeconds()) + 'Z';
};
}
var result = {
info: []
};
if (!(S("msgraph_sync_level") > 0)) {
result.info = ["S(\"msgraph_sync_level\") staat op '0'"];
}
// Initialize hook
var hook = hookfunc.gethook("UTILS/Exchange/res_to_graph.wsc");
var DEZE = this;
try {
var init = hook.initialize({
DEZE: DEZE,
custabspath: Server.MapPath(custpath)
});
if (init === null) { // Is alleen null als de exchange.config ontbreekt
early_exit("Geen exchange.config aangetroffen");
}
} catch (e) {
early_exit("Hook error: " + e.description);
}
var host_id = null;
var room_id = null;
var host_email = null;
var room_email = null;
var res_rsv_ruimte_key = null;
var fallback_user = false;
var compact = getFParam("compact", "off") == "on";
var reservering_nr = getFParam("reservering", "");
var userPrincipalName = getFParam("userPrincipalName", null);
var date_from = getFParamDate("date_from", null);
var date_to = getFParamDate("date_to", null);
if (reservering_nr != "") {
// We gaan het event ophalen met een reserveringsnr als informatie
var res_reservering_key = parseInt(reservering_nr.split("/")[0], 10);
var res_rsv_ruimte_volgnr = parseInt((reservering_nr.split("/")[1] || 1), 10);
if (isNaN(res_reservering_key) || isNaN(res_rsv_ruimte_volgnr)) {
early_exit("Ongeldig reserveringsnr, verwachte formaat; 12345/1");
}
var sql = "SELECT rrr.res_rsv_ruimte_externnr2 host_id,"
+ " rrr.res_rsv_ruimte_externnr room_id,"
+ " p_host.prs_perslid_email host_email,"
+ " rr.res_ruimte_extern_id room_email,"
+ " rrr.res_rsv_ruimte_key res_rsv_ruimte_key,"
+ " p_host.prs_perslid_oslogin host_login"
+ " FROM res_rsv_ruimte rrr"
+ " JOIN prs_perslid p_host"
+ " ON p_host.prs_perslid_key = rrr.res_rsv_ruimte_host_key"
+ " JOIN res_ruimte_opstelling rro"
+ " ON rro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key"
+ " JOIN res_ruimte rr ON rr.res_ruimte_key = rro.res_ruimte_key"
+ " WHERE rrr.res_reservering_key = " + res_reservering_key
+ " AND rrr.res_rsv_ruimte_volgnr = " + res_rsv_ruimte_volgnr;
var oRs = Oracle.Execute(sql);
if (!oRs.EoF) {
host_id = oRs("host_id").Value;
room_id = oRs("room_id").Value;
host_email = oRs("host_email").Value;
room_email = oRs("room_email").Value;
res_rsv_ruimte_key = oRs("res_rsv_ruimte_key").Value;
fallback_user = oRs("host_login").Value === null ? false : !!oRs("host_login").Value.match(/^_MSGRAPH_FALLBACK_/);
} else {
early_exit("Reservering niet in Facilitor gevonden");
}
oRs.Close();
// Wat error-handling
if (host_id === null && room_id === null) {
if (room_email === null) {
early_exit("Ruimte is geen Exchange-gekoppelde ruimte");
} else {
early_exit("Reservering is niet aan Exchange gekoppeld");
}
} else if (fallback_user) {
early_exit("Deze reservering is geboekt op een fallback user, we kunnen hiervan niets uitlezen op basis van de reservering. Probeer de reservering zelf op te zoeken mbv een datum bereik");
}
// Haal nu de eigenlijke Exchange-events op
if (host_id && host_id != "##PENDING##" && host_email) {
var method = host_id.match(/^##iCalUId##/) ? "iCalUId" : "id";
result.host = hook.getCalendarEvent(method, host_email, host_id);
verifyMSGraphResult(result.host);
}
if (room_id && room_email) {
room_id = room_id.split("|")[1] || room_id.split("|")[0];
var method = room_id.match(/^##iCalUId##/) ? "iCalUId" : "id";
if (method == "iCalUId") {
room_id = room_id.slice(11); // Strip de '##iCalUId##'
}
result.room = hook.getCalendarEvent(method, room_email, room_id);
verifyMSGraphResult(result.room);
}
// Niet gevonden, nog eens proberen obv res_rsv_ruimte_key
if (!result.host && !result.room) {
if (host_id == "##PENDING##" && host_email) {
result.info.push("Deze reservering heeft nog geen antwoord van MSGraph ontvangen");
result.host = hook.getCalendarEvent("res_rsv_ruimte_key", host_email, res_rsv_ruimte_key);
verifyMSGraphResult(result.host);
if (!result.host) {
early_exit("Reservering niet in Exchange gevonden op basis van res_rsv_ruimte_key");
}
} else {
result.info.push("Reservering niet in Exchange gevonden");
}
if (!result.host) {
early_exit("Reservering niet in Exchange gevonden");
}
}
// Klaar
} else if (userPrincipalName && date_from != null && date_to != null) {
// We gaan het event ophalen met een (ruimte of gastheer)email en een datum bereik
var id = date_from.toISOString() + "##" + date_to.toISOString();
var response = hook.getCalendarEvent("date", userPrincipalName, id);
verifyMSGraphResult(response);
// Verwerk het resultaat
if (response.value) {
// Convert een javascript Array naar een JSON Array
var events = [];
for (var x in response.value) {
events.push(response.value[x]);
}
if (events.length != 1) {
result.info.push("Er zijn " + events.length + " events gevonden");
}
var sql = "SELECT 1"
+ " FROM res_ruimte"
+ " WHERE UPPER(res_ruimte_extern_id) = " + safe.quoted_sql_upper(userPrincipalName);
var oRs = Oracle.Execute(sql);
if (oRs.EoF) {
result.host = events;
} else {
result.room = events;
}
oRs.Close();
}
} else {
early_exit("Onvoldoende parameters meegegeven; zoek op reserveringsnr, of de combinatie; email/datum-van/datum-tot");
}
result.success = true;
// Strip onnodige velden
if (compact) {
result = strip(result);
};
Response.Write(JSON.stringify(result));
Response.End;
%>
<% ASPPAGE_END(); %>

View File

@@ -306,6 +306,7 @@ try
var xml_content = oRs("xml_blob").Value;
oRs.Close();
__Log("XML blob is {0} karakters.".format(xml_content.length));
Oracle.Execute("BEGIN DBMS_SESSION.free_unused_user_memory; END;");
if (API.apidata.loglevel) __Log2File(xml_content, API.APIname + "_DATA");

View File

@@ -44,9 +44,9 @@
var result = api_gen_import(API, Request.BinaryRead(bytes));
xmlResp = result.xmldom;
if (API.apidata.errorhandling == 1 && user.errorhandling() == 1)
if (API.apidata.errorhandling == 1)
{
if (result.anyError) // een 'E' in imp_log
if (result.anyError) // een 'E' in imp_log
{
Response.Status = '400 Bad Request';
}

View File

@@ -198,38 +198,6 @@ function getEmailSetting(xmlReq, xmlParameters)
return senderResult;
}
// Check the subject against general rules (emlSetting null) or some defined
// regular expression from the configuration in emlSetting
// return .success true if the subject is okay, false else
// If false, a reason is given in .message
function checkSubject(emlSetting, xmlParameters)
{
var subjectResult = { success: true };
if (emlSetting == null)
{
// generieke onderwerpcheck tegen rubbish
var v_subject_undeliverable = new RegExp(S("mail_subject_undeliverable")).test(xmlParameters.Subject);
var v_subject_ignore = new RegExp(S("mail_subject_ignore")).test(xmlParameters.Subject);
var senderResult = null;
if (v_subject_undeliverable || v_subject_ignore)
{
subjectResult.success = false;
subjectResult.message = ( v_subject_undeliverable ? S("mail_subject_undeliverable") : S("mail_subject_ignore"));
}
} else {
// matcht het mailonderwerp wellicht met een specifieke configuratie?
if (emlSetting.text)
{
subjectResult.success = new RegExp(emlSetting.text, "ig").test(xmlParameters.Subject);
subjectResult.message = "Subject " + xmlParameters.Subject + (subjectResult.success ? " matches " : " does not match ") + emlSetting.text
__Log(subjectResult.message);
}
else // geen voorwaarde is altijd goed
subjectResult.success = true;
}
return subjectResult;
}
function setPath(attachpath)
{
var path = attachpath;
@@ -250,23 +218,17 @@ function getEmailSetting(xmlReq, xmlParameters)
+ " fac_email_setting_volgnr,"
+ " fac_email_setting_action,"
+ " fac_email_setting_expire,"
+ " fac_email_setting_from," // optioneel: waar de afzender aan moet voldoen
+ " fac_email_setting_from,"
+ " fac_email_setting_frommode,"
+ " fac_email_setting_text," // optioneel: waar het onderwerp aan moet voldoen
+ " fac_email_setting_attachpath,"
+ " fac_email_setting_attachext,"
+ " fac_email_setting_reqattachext," // optioneel: extensie van de bijlage die verplicht is
+ " fac_email_setting_reqattachext,"
+ " fac_email_setting_attachmaxkb,"
+ " fac_email_setting_loglevel,"
+ " prs_perslid_key_auth"
+ " FROM fac_email_setting"
+ " WHERE upper(fac_email_setting_user) = UPPER("+safe.quoted_sql(xmlParameters.mailuser)+")"
+ " ORDER BY fac_email_setting_volgnr";
// Als je het zo zou doen vind je organischer de meest specifieke match, met volgnummer slechts beslissend als er meerdere zouden zijn
// Het lijkt echter safer om datr aan de gebruiker over te laten en die dat met volgnummer expliciet te kunnen laten definieren.
//+ " ORDER BY fac_email_setting_reqattachext NULLS LAST, fac_email_setting_from NULLS LAST, fac_email_setting_text NULLS LAST, fac_email_setting_volgnr";
var oRs = Oracle.Execute(sql);
if (oRs.eof)
{ // Er is geen fac_email_setting record gevonden.
@@ -277,22 +239,11 @@ function getEmailSetting(xmlReq, xmlParameters)
};
}
else
{ // Er bestaat minimaal 1 fac_email_setting record voor deze ontvanger.
{ // Er bestaat minimaal 1 fac_email_setting record.
var allowedSetting = {};
var rejectedAttach = [];
var hasRequiredAttachment = false;
var hasMatchingFrom = false;
var hasMatchingSubject = false;
// Loop door de fac_email_setting records en bepaal welke het beste past bij deze e-mail
// Dat is de eerste match op basis van het volgnummer, waarbij de 3 criteria niet conflicteren.
// - de afzender matcht of is niet specifiek gedefinieerd
// - het onderwerp matcht de conditie of is niet specifiek gedefinieerd
// - de verplichte bijlage is present of is niet specifiek gedefinieerd
// Het gevonden record levert de aan te roepen mailprocessor en
// (bij de default fac.processemail) de aan te maken standaardmelding
while (!oRs.eof && !(hasRequiredAttachment && hasMatchingFrom && hasMatchingSubject))
while (!oRs.eof && !hasRequiredAttachment)
{
var emlSetting = {
key: oRs("fac_email_setting_key").Value,
@@ -306,29 +257,21 @@ function getEmailSetting(xmlReq, xmlParameters)
attach_maxkb: oRs("fac_email_setting_attachmaxkb").Value,
fromMode: oRs("fac_email_setting_frommode").Value,
from: oRs("fac_email_setting_from").Value,
text: oRs("fac_email_setting_text").Value,
loglevel: oRs("fac_email_setting_loglevel").Value
};
emlSetting.path = setPath(emlSetting.attachpath);
__Log("Scanning e-mail setting: "+emlSetting.key + " (volgnr "+emlSetting.volgnr+")");
__Log("Scanning e-mail setting: "+emlSetting.volgnr);
var expireResult = checkExpire(emlSetting.expire);
var senderResult = checkSender(emlSetting, xmlParameters);
var subjectResult = checkSubject(emlSetting, xmlParameters);
var expireResult = checkExpire(emlSetting.expire);
var senderResult = checkSender(emlSetting, xmlParameters);
hasMatchingFrom = senderResult.success;
hasMatchingSubject = subjectResult.success;
__Log('hasMatchingFrom '+ hasMatchingFrom);
__Log('hasMatchingSubject '+ hasMatchingSubject);
// als fron en subject okay zijn, dan kijken we of er een verplicht kenmerk is
if (expireResult.success && hasMatchingFrom && hasMatchingSubject)
if (expireResult.success && senderResult.success)
{
emlSetting.theFrom = senderResult.theFrom; // verbeter na de uitgevoerde controle
emlSetting.theFrom = senderResult.theFrom;
var attachResult = checkAttach(xmlReq, xmlParameters, emlSetting);
emlSetting.allowedFiles = attachResult.allowedFiles;
emlSetting.requiredFound = attachResult.requiredFound;
hasRequiredAttachment = emlSetting.required_attachext == null || attachResult.requiredFound;
hasRequiredAttachment = attachResult.requiredFound;
allowedSetting = emlSetting;
if (attachResult.rejectedFiles.tekst != "")
{
@@ -346,12 +289,10 @@ function getEmailSetting(xmlReq, xmlParameters)
result.rejectMail = (!expireResult.success ? expireResult.rejectMail : senderResult.rejectMail);
}
}
__Log("hasRequiredAttachment: " + hasRequiredAttachment);
oRs.MoveNext();
}
__Log("Done looking for matching e-mail settings");
result.emlSetting = allowedSetting;
result.silentignoreemail = checkSubject(null, xmlParameters).message;
}
oRs.Close();
return result;
@@ -373,11 +314,11 @@ function emailAction(emlSetting, xmlParam, resultParam)
}
var actionsql =
"BEGIN " + emlSetting.action + " (" + safe.quoted_sql(emlSetting.theFrom) + ", "
+ safe.quoted_sql(xmlParam.toAddr) + ", "
+ safe.quoted_sql(xmlParam.Subject || L("lcl_fac_hmail_no_subject")) + ", " // de actions kunnen slecht tegen lege subject
"BEGIN " + emlSetting.action + " (" + safe.quoted_sql(emlSetting.theFrom) + ","
+ safe.quoted_sql(xmlParam.toAddr) + ","
+ safe.quoted_sql(xmlParam.Subject || L("lcl_fac_hmail_no_subject")) + "," // de actions kunnen slecht tegen lege subject
+ "?, "
+ safe.quoted_sql(xmlParam.sessionId) + ", "
+ safe.quoted_sql(xmlParam.sessionId) + ","
+ emlSetting.key + ");"
+ "END;";
@@ -476,7 +417,6 @@ function emailAction(emlSetting, xmlParam, resultParam)
return result;
}
//
function checkAttach(xmlReq, xmlParameter, emlSetting)
{
var requiredFound = false;
@@ -497,14 +437,10 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
{ // Waarschijnlijk een FACILITOR bon gereply'd
__Log("Bijlage {0} genegeerd.".format(safefilename));
}
else if (attsize < S("flex_min_size")) // sowieso te klein
else if (attsize < S("flex_min_size"))
{
__Log("Bijlage {0} genegeerd, te klein met {1} bytes.".format(safefilename, attsize));
}
else if (attsize < S("flex_min_imgsize") && new RegExp(S("flex_min_imgsize_ext"), "ig").test(safefilename)) // plaatje te klein (facebook, twitter, X)
{
__Log("Plaatje {0} genegeerd, te klein met {1} bytes.".format(safefilename, attsize));
}
else if ( emlSetting.attach_maxkb && emlSetting.attach_maxkb > 0 // Er is een maximum bestandsgrootte ingesteld
&& parseFloat(filesize_MB) > parseFloat(maxsize_MB)) // En die is overschreden
{
@@ -514,7 +450,7 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
}
else if (!new RegExp(S("flexallowedext"), "ig").test(safefilename))
{ // Niet ondersteunde bestandstype
__Log("Onbekende extensie e-mail bijlage: {0} ({1} bytes) van {2}. Bestand is niet opgeslagen.".format(safefilename, attsize, emlSetting.theFrom));
__DoLog("Onbekende extensie e-mail bijlage: {0} ({1} bytes) van {2}. Bestand is niet opgeslagen.".format(safefilename, attsize, emlSetting.theFrom));
}
else if (emlSetting.allowed_attachext && !new RegExp(emlSetting.allowed_attachext, "ig").test(safefilename))
{ // bestand is niet van het opgegeven type
@@ -728,41 +664,33 @@ if (emlResult.emlSetting && !emlResult.rejectMail)
__Log("htmlBody: " + xmlParameters.htmlBody);
__Log("body: " + xmlParameters.Body);
__Log("E-mail user ontvankelijk: " + xmlParameters.mailuser);
__Log("gebruikt email setting: " + emlSetting.key);
__Log("gebruikt email setting: " + emlSetting.volgnr);
if (emlResult.silentignoreemail)
{
var saveResult = { silentignoreemail : true, maillog: "Ignored because subject matches " + emlResult.silentignoreemail }
__Log("Ignored because subject matches " + emlResult.silentignoreemail);
}
else
{
var result = { success: true,
path: emlSetting.path,
kenmerkpath: "",
attachments: [],
tempfolder: shared.tempFolder(),
loglevel: emlSetting.loglevel || 0
};
var result = { success: true,
path: emlSetting.path,
kenmerkpath: "",
attachments: [],
tempfolder: shared.tempFolder(),
loglevel: emlSetting.loglevel || 0
};
var actionResult = emailAction(emlSetting, xmlParameters, result);
if (!actionResult.rejectMail)
var actionResult = emailAction(emlSetting, xmlParameters, result);
if (!actionResult.rejectMail)
{
var saveResult = saveAttachments(xmlReq, emlSetting, xmlParameters, actionResult);
if (!saveResult.rejectMail)
{
var saveResult = saveAttachments(xmlReq, emlSetting, xmlParameters, actionResult);
if (!saveResult.rejectMail)
{
saveEml(xmlParameters, saveResult);
}
else
{
emlResult.rejectMail = saveResult.rejectMail;
}
saveEml(xmlParameters, saveResult);
}
else
{
emlResult.rejectMail = actionResult.rejectMail;
emlResult.rejectMail = saveResult.rejectMail;
}
}
else
{
emlResult.rejectMail = actionResult.rejectMail;
}
}
if (emlResult.rejectMail)

View File

@@ -253,7 +253,7 @@ for (i = 0; i < meldingen.length; i++)
fields.push({ dbs: "mld_melding_opmerking", typ: "varchar", val: meld_opm, track: L("lcl_mld_inf_Opmerking"), len: 4000 });
if (meld_onderwerp)
fields.push({ dbs: "mld_melding_onderwerp", typ: "varchar", val: meld_onderwerp, track: L("lcl_mld_inf_Onderwerp"), len: 200 });
fields.push({ dbs: "mld_melding_onderwerp", typ: "varchar", val: meld_onderwerp, track: L("lcl_mld_inf_Onderwerp"), len: 80 });
if (meld_oms)
fields.push({ dbs: "mld_melding_omschrijving", typ: "varchar", val: meld_oms, track: L("lcl_mld_inf_Omschrijving"), len: 4000 });
@@ -441,7 +441,7 @@ for (i = 0; i < meldingen.length; i++)
{ dbs: "mld_melding_module", typ: "varchar", val: "MLD" },
{ dbs: "mld_meldbron_key", typ: "key", val: 6 }, // system
{ dbs: "mld_melding_omschrijving", typ: "varchar", val: meld_oms, len: 4000 },
{ dbs: "mld_melding_onderwerp", typ: "varchar", val: meld_onderwerp, len: 200 },
{ dbs: "mld_melding_onderwerp", typ: "varchar", val: meld_onderwerp, len: 80 },
{ dbs: "prs_kostenplaats_key", typ: "key", val: kpn_key },
{ dbs: "prs_afdeling_key", typ: "key", val: afd_key },
{ dbs: "mld_kosten_klant", typ: "number", val: kpn_key > 0 && ins_srtdiscipline_kk? 1 : null },
@@ -733,7 +733,7 @@ function upsertKenmerk(kenmerken, stdmld_key, mld_key)
xmlResp.appendChild(FCLTElement);
if (API.apidata.errorhandling == 1 && user.errorhandling() == 1)
if (API.apidata.errorhandling == 1)
{
if (resultcode > 0) // -1 en 0 zijn 'goed'
{

View File

@@ -23,12 +23,52 @@ var API = new API_func();
// Bij aanmaken van de subscription doet Graph direct aan validatie-aanroep
// De token parameter moet je teruggeven.
var validationToken = getQParam("validationToken", "");
if (validationToken) {
if (validationToken)
{
__Log("Subscribtion validated: " + validationToken);
Response.ContentType = "text/plain";
Response.Write(validationToken);
Response.End;
}
else
{ // We hebben een notificatie ontvangen, stuur direct een 202 conform specificatie
Response.Status = "202 - Accepted";
Response.Write("");
Response.Flush;
}
function _cleanIncomingOutlookQueue() {
Application.Lock();
var incomingOutlookQueue = JSON.parse(Application(customerId + "_incomingOutlookQueue") || "{}");
for (var x in incomingOutlookQueue) {
if (incomingOutlookQueue[x] < new Date().getTime()) { // Verwijder verlopen changes die hier nog in staan
delete incomingOutlookQueue[x];
}
}
Application(customerId + "_incomingOutlookQueue") = JSON.stringify(incomingOutlookQueue);
Application.UnLock();
}
function _updateIncomingOutlookQueue(etag, CRUD) { // etag = 'The HTTP entity tag that represents the version of the object'
Application.Lock();
var incomingOutlookQueue = JSON.parse(Application(customerId + "_incomingOutlookQueue") || "{}");
if (CRUD == "C") {
if (etag in incomingOutlookQueue) { // We hebben deze al ontvangen en zijn begonnen met verwerken
__Log("MS Graph, duplicate notification ignored", "#FFFF44");
Application.UnLock();
Response.End;
}
incomingOutlookQueue[etag] = new Date().getTime() + 4 * 60 * 60 * 1000; // Expired in 4 uur
} else if (CRUD == "D") {
// delete incomingOutlookQueue[etag];
// ipv deleten laten we deze expiren over 3s zodat we reeds verwerkte notificaties niet nog eens gaan verwerken als het HTTP verkeer elkaar kruist
if (etag in incomingOutlookQueue) {
incomingOutlookQueue[etag] = new Date().getTime() + 3 * 1000;
}
}
Application(customerId + "_incomingOutlookQueue") = JSON.stringify(incomingOutlookQueue);
Application.UnLock();
}
// Als we hier komen hebben we een echte notificatie binnengekregen
var notidata = RequestJSON(API.apidata.loglevel).value;
@@ -43,10 +83,12 @@ try {
} catch (e) {
__DoLog("Malformed MS Graph notification received:", "#FF0000");
__DoLog(notidata, "#FF0000");
Response.Status = "400 - Bad Request";
Response.End;
}
_cleanIncomingOutlookQueue();
_updateIncomingOutlookQueue(etag, "C");
// {
// "value": [
// {
@@ -68,10 +110,8 @@ try {
// We hebben res_ruimte_key meegegeven in de hookurl. Er zijn meer manieren
// om de ruimte te achterhalen maar deze is het snelst/ simpelst
var res_ruimte_key = getQParamInt("res_ruimte", -1);
if (res_ruimte_key == -1) {
Response.Status = "422 - Unprocessable Content";
Response.End;
}
if (res_ruimte_key == -1)
Response.End; // even geen errors
var sql = "SELECT res_ruimte_extern_id,"
+ " res_ruimte_graphhooksecret"
+ " FROM res_ruimte"
@@ -90,51 +130,20 @@ if (zaalemail == null || oRs("res_ruimte_graphhooksecret").Value != notidata.cli
notidata.subscriptionExpirationDateTime));
}
oRs.Close();
Response.Status = "422 - Unprocessable Content";
Response.End;
}
oRs.Close();
var fso = Server.CreateObject("Scripting.FileSystemObject");
var tempFolder = shared.tempFolder();
if (!fso.FolderExists(tempFolder)) {
fso.CreateFolder(tempFolder);
}
var exchangeFolder = tempFolder + "/exchange";
if (!fso.FolderExists(exchangeFolder)) {
fso.CreateFolder(exchangeFolder);
}
var logfile_path = exchangeFolder + "/" + safe.filename(etag) + ".data";
if (fso.FileExists(logfile_path)) { // Notificaties zijn uniek obv etag, deze is dus dubbel
__Log("MS Graph, duplicate notification ignored", "#FFFF44");
} else {
try {
var ts = fso.CreateTextFile(logfile_path, true);
ts.Write(JSON.stringify(notidata, null, 2));
ts.Close();
} catch (e) {
__DoLog("Failed writing to {0}\n{1}".format(logfile_path, e.description));
}
sql = "INSERT INTO fac_notificatie (fac_srtnotificatie_key,"
+ " fac_notificatie_queue,"
+ " fac_notificatie_refkey,"
+ " fac_notificatie_attachments,"
+ " fac_notificatie_naam,"
+ " fac_notificatie_notbefore,"
+ " fac_notificatie_status)"
+ " SELECT fac_srtnotificatie_key"
+ " , 'EXCHANGE'"
+ " , " + res_ruimte_key
+ " , " + safe.quoted_sql(logfile_path)
+ " , " + safe.quoted_sql(zaalemail)
+ " , SYSDATE"
+ " , 1" // Met 1 omzeilen we fac.cleannotifications en zorgen we dat fac_t_fac_notificatie_A_IU niet de PUTORDERS inschiet (Wij doen er verder niets mee)
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = 'RESUPD'";
Oracle.Execute(sql);
}
var DEZE = this;
var hook = hookfunc.gethook("utils/exchange/process_webhook.wsc");
hook.initialize({
DEZE: DEZE,
custabspath: Server.MapPath(custpath)
});
hook.process_webhook(res_ruimte_key, zaalemail, notidata);
hook = null;
Response.Status = "202 - Accepted";
_updateIncomingOutlookQueue(etag, "D"); // En verwijder hem maar weer
Response.Write("");
ASPPAGE_END();
Response.End;
%>

View File

@@ -121,7 +121,6 @@ for (var i = 0; i < opdrachten.length; i++)
var onderwerp = XMLval(opdrachten[i], "onderwerp"); // NEW
var opdr_kpn = XMLval(opdrachten[i], "kostenplaats");
var flag = parseInt(XMLval(opdrachten[i], "flag"), 10);
var actiecode = parseInt(XMLval(opdrachten[i], "actiecode"), 10);
var txt_mut_datum = XMLval(opdrachten[i], "mut_datum"); // UPD
var opdrstatus = XMLval(opdrachten[i], "status"); // UPD
@@ -883,12 +882,6 @@ for (var i = 0; i < opdrachten.length; i++)
if (oRs("lopend").Value == 0)
{ // Er zijn alleen opdrachten met status 1 (Afgewezen) of 6/9 (Afgemeld/Afgerond)
// Check of setting bij opdrachttype automatisch sluiten ALTIJD (= 2) toestaat.
// Ondertussen kan de status van de opdracht aangepast zijn.
// De waarde this_mld.canClose kan daarom niet meer juist zijn omdat deze van de status afhankelijk is.
// Daarom moet de waarde opnieuw bepaald worden (PROR#90212 / PROR#90706).
var this_mld2 = mld.func_enabled_melding(mld_opdr.mld_key);
tsql = "SELECT mld_typeopdr_sluitmelding FROM mld_typeopdr"
+ " WHERE mld_typeopdr_key = " + topdr_key;
var oRs = Oracle.Execute(tsql);
@@ -896,7 +889,7 @@ for (var i = 0; i < opdrachten.length; i++)
// Afhankelijk van sluitmelding nu melding status zetten (0=nooit, 1=vragen en 2=altijd)
// Als de laatste opdracht een cancel was dan wordt de melding niet afgemeld.
if ((oRs("mld_typeopdr_sluitmelding").Value == 2 || oRs("mld_typeopdr_sluitmelding").Value == 1)
&& this_mld2.canClose
&& this_mld.canClose
&& opdrstatus != 'ORDCAN')
{
mld.setmeldingstatus (mld_key, 5); // Afgemeld
@@ -923,48 +916,17 @@ for (var i = 0; i < opdrachten.length; i++)
if (resultcode == -1) // Nog steeds geen fouten.
{
var tracking_key = coalesce(coalesce(status_tracking_key, datum_tracking_key), update_tracking_key); // volgorde van belangrijkheid
add_note(tracking_key); // voor als nog niet eerder gebeurd
// Alleen als er een notitie is aangemaakt mag ik de actiecode ook aanpassen.
if (note_key > 0)
{ // Er is een notitie aangemaakt.
// Actie bij +1=FOBO behandelaar, +2=melder, +4=uitvoerende, +128=attentie FOBO, +512=attentie uitvoerende.
if (resultcode == -1 && !isNaN(actiecode) && actiecode >= 0)
{ // Actie code.
var newActiecode = 0;
if ((actiecode & 128) == 128)
{
newActiecode += 128; // BO attentie
}
var BOactie = false;
if (S("mld_opdr_actiecode") > 0 && ((actiecode & 1) == 1))
{
newActiecode += 1; // + BO actie
BOactie = true;
}
var sql = "UPDATE mld_opdr"
+ " SET mld_opdr_actiecode = mld_opdr_actiecode" // Bestaande bitjes zoals 512 mag niet verloren gaan.
+ " + " + newActiecode
+ " - BITAND(mld_opdr_actiecode, " + newActiecode + ")" // Als het bitje 1 of 128 al gezet was dan deze waarde weer in minderinig brengen.
+ (BOactie
? " - BITAND(mld_opdr_actiecode, 6)" // Van de bitjes 1+2+4 (=7) moet er altijd 1 aan staan. Als we bitje 1 zetten, dan moeten we bitjes 2 of 4 wissen.
: "") // Bitje 1 is niet gezet. Bitjes 2 en 4 ongemoeit laten.
+ " WHERE mld_opdr_key = " + mld_opdr.opdr_key;
Oracle.Execute(sql);
}
}
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze opdracht.
}
else if (resultcode > 0)
{
var logtxt = "api_opdrsoap fail.\nResultcode: {0}\nReturntekst: {1}\nOpdracht: {2}\nOldstatus: {3}".format(resultcode, resulttekst, opdrid, oldstatus);
if (resulttekst.match(/^Not authorized/)) // Dit komt heel vaak voor door updates op gesloten opdrachten.
__Log(logtxt); // Het vervuilt de logfile veel te veel
__Log(logtxt); // Het vervuilt de logfile veel te veel
else
__DoLog(logtxt, "#00FF00");
}
@@ -1218,7 +1180,7 @@ function upsertKenmerk(kenmerken, topdr_key, opdr_key)
function isGoodCurrency(str)
{
var anum = /^([-\+]?\d{1,6}[.,]?|[-\+]?\d{0,6}[.,]\d{1,7})$/
var anum = /^([-\+]?\d{1,6}[.,]?|[-\+]?\d{0,6}[.,]\d{1,2})$/
return anum.test(str);
}
@@ -1226,7 +1188,6 @@ function upsertOpdrRegels(regels, mld_opdr)
{
var opdr_key = mld_opdr.opdr_key;
var mat_key_list = [];
var mat_tracking_arr = [];
var tracking_key = -1;
for (var r = 0; r < regels.length; r++)
{
@@ -1362,18 +1323,18 @@ function upsertOpdrRegels(regels, mld_opdr)
// Aantal is groter dan 0. Opdrachtregel toevoegen (Update).
// Als aantal 0 is dan is de materiaalregel al verwijderd en kom je hier niet.
mat_fields = mat_fields.concat(
[ { dbs: "mld_opdr_materiaal_aantal", typ: "float", savewhen: aantal !== null, track: L("lcl_mld_opdr_aantal"), val: aantalval },
{ dbs: "mld_opdr_materiaal_eenheidcode", typ: "varchar", savewhen: eenheidcode !== null, track: L("lcl_mld_opdr_eenheidcode"), val: eenheidcode, len: 10 },
{ dbs: "mld_opdr_materiaal_eenheid", typ: "varchar", savewhen: eenheid !== null, track: L("lcl_mld_opdr_eenheid"), val: eenheid, len: 30 },
{ dbs: "mld_opdr_materiaal_prijs", typ: "float", savewhen: prijs !== null, track: L("lcl_mld_opdr_prijs"), val: (prijs? prijsval : null) },
{ dbs: "mld_opdr_materiaal_code", typ: "varchar", savewhen: matcode !== null, track: L("lcl_mld_opdr_code"), val: matcode, len: 30 },
{ dbs: "mld_opdr_materiaal_omschr", typ: "varchar", savewhen: omschr !== null, track: L("lcl_mld_opdr_omschr"), val: omschr, len: 255 },
{ dbs: "mld_opdr_materiaal_info", typ: "varchar", savewhen: info !== null, track: L("lcl_mld_opdr_info"), val: info, len: 4000 },
{ dbs: "mld_opdr_materiaal_groep", typ: "varchar", savewhen: groep !== null, track: L("lcl_mld_opdr_groep"), val: groep, len: 60 },
{ dbs: "mld_opdr_materiaal_extra1", typ: "varchar", savewhen: extra1 !== null, track: L("lcl_mld_opdr_extra1"), val: extra1, len: 60 },
{ dbs: "mld_opdr_materiaal_extra2", typ: "varchar", savewhen: extra2 !== null, track: L("lcl_mld_opdr_extra2"), val: extra2, len: 60 },
{ dbs: "mld_opdr_materiaal_extra3", typ: "varchar", savewhen: extra3 !== null, track: L("lcl_mld_opdr_extra3"), val: extra3, len: 4000 },
{ dbs: "mld_opdr_materiaal_extra4", typ: "varchar", savewhen: extra4 !== null, track: L("lcl_mld_opdr_extra4"), val: extra4, len: 4000 }
[ { dbs: "mld_opdr_materiaal_aantal", typ: "float", savewhen: aantal !== null, val: aantalval },
{ dbs: "mld_opdr_materiaal_eenheidcode", typ: "varchar", savewhen: eenheidcode !== null, val: eenheidcode, len: 10 },
{ dbs: "mld_opdr_materiaal_eenheid", typ: "varchar", savewhen: eenheid !== null, val: eenheid, len: 30 },
{ dbs: "mld_opdr_materiaal_prijs", typ: "float", savewhen: prijs !== null, val: (prijs? prijsval : null) },
{ dbs: "mld_opdr_materiaal_code", typ: "varchar", savewhen: matcode !== null, val: matcode, len: 30 },
{ dbs: "mld_opdr_materiaal_omschr", typ: "varchar", savewhen: omschr !== null, val: omschr, len: 255 },
{ dbs: "mld_opdr_materiaal_info", typ: "varchar", savewhen: info !== null, val: info, len: 4000 },
{ dbs: "mld_opdr_materiaal_groep", typ: "varchar", savewhen: groep !== null, val: groep, len: 60 },
{ dbs: "mld_opdr_materiaal_extra1", typ: "varchar", savewhen: extra1 !== null, val: extra1, len: 60 },
{ dbs: "mld_opdr_materiaal_extra2", typ: "varchar", savewhen: extra2 !== null, val: extra2, len: 60 },
{ dbs: "mld_opdr_materiaal_extra3", typ: "varchar", savewhen: extra3 !== null, val: extra3, len: 4000 },
{ dbs: "mld_opdr_materiaal_extra4", typ: "varchar", savewhen: extra4 !== null, val: extra4, len: 4000 }
]);
if ((btw || btw == 0) && (!isNaN (btwval) && btwval >= 0))
@@ -1403,14 +1364,20 @@ function upsertOpdrRegels(regels, mld_opdr)
var matUpd = buildTrackingUpdate("mld_opdr_materiaal", "mld_opdr_materiaal_key = " + materiaal_key, mat_fields, { noValidateToken: true });
// Zijn er velden die gewijzigd moeten worden? Als matUpd null is, dan waren alle savewhen condities false en hoeft er niets geupdate te worden.
if (matUpd && matUpd.sql && matUpd.trackarray.length) { // Als trackarray.length === 0 dan is er effectief niets aangepast (we tracken alles)
if (matUpd && matUpd.sql)
{ // Er zijn wijzigingen.
Oracle.Execute(matUpd.sql);
mat_tracking_arr.push(L("lcl_ord_is_upd_material").format(id) + "\n" + matUpd.trackarray.join("\n"));
updatetracking_key = mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_updatedbysoap") + "\n" + L("lcl_ord_is_upd_material").format(id) + "\n" + matUpd.trackarray.join("\n"));
}
}
}
oRs.Close();
var sql_del = "DELETE mld_opdr_materiaal"
+ " WHERE mld_opdr_key = " + opdr_key
+ " AND mld_opdr_materiaal_key NOT IN (" + mat_key_list.join(",") + ")";
Oracle.Execute(sql_del);
// 1) Nieuwe materiaalbedrag in de opdracht opslaan.
// 2) De totaalwaarde opnieuw berekenen want het materiaalbedrag is aangepast.
// Dan hebben we het correctie bedrag ook nodig. Dit correctie bedrag moet hetzelfde blijven.
@@ -1427,25 +1394,12 @@ function upsertOpdrRegels(regels, mld_opdr)
+ " WHERE mld_opdr_key = " + opdr_key
Oracle.Execute(sql_total);
}
if (mat_tracking_arr.length)
{ // Er zijn wijzigingen.
tracking_key = mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_updatedbysoap") + "\n" + mat_tracking_arr.join("\n"));
}
if (mat_key_list.length) {
var sql_del = "DELETE mld_opdr_materiaal"
+ " WHERE mld_opdr_key = " + opdr_key
+ " AND mld_opdr_materiaal_key NOT IN (" + mat_key_list.join(",") + ")";
Oracle.Execute(sql_del);
}
return tracking_key;
}
xmlResp.appendChild(FCLTElement);
if (API.apidata.errorhandling == 1 && user.errorhandling() == 1)
if (API.apidata.errorhandling == 1)
{
if (resultcode > 0) // -1 en 0 zijn 'goed'
{

View File

@@ -91,10 +91,10 @@ function L(p_lcl)
toonFoto: true,
detailurl: "appl/fac/fac_user_info.asp",
deeplinkurl: "<%=safe.jsstring(site)%>/?nomenu=1&noheader=1&ihatetabs=1&JumpTo=",
fields: [ { lbl: L("lcl_prs_email"), val: "prs_perslid_email" },
{ lbl: L("lcl_pb_phone"), val: "prs_perslid_telefoonnr" },
{ lbl: L("lcl_pb_mobile"), val: "prs_perslid_mobiel" },
{ lbl: L("lcl_pb_afdeling"), val: "afdeling" }
fields: [ { lbl: "<%=L("lcl_prs_email")%>", val: "prs_perslid_email" },
{ lbl: "<%=L("lcl_pb_phone")%>", val: "prs_perslid_telefoonnr" },
{ lbl: "<%=L("lcl_pb_mobile")%>", val: "prs_perslid_mobiel" },
{ lbl: "<%=L("lcl_pb_afdeling")%>", val: "afdeling" }
]
};
<%
@@ -110,7 +110,7 @@ function L(p_lcl)
window.facilitor.show_phonebook = function(data, textStatus)
{
// Alle styling moet nog via classes
var closer = "<span onclick='$(\"#phonebookdetails\").hide()' style='float: right; cursor: pointer' title='<%=safe.htmlattr(L("lcl_close_window"))%>'>x</span>"
var closer = "<span onclick='$(\"#phonebookdetails\").hide()' style='float: right; cursor: pointer' title='<%=L("lcl_close_window")%>'>x</span>"
if (window.facilitor.phonebook_options.detailurl)
{
var jumpto = window.facilitor.phonebook_options.detailurl;

View File

@@ -0,0 +1,201 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: phonebook_js.asp
Description: Phonebook API
Levert een JavaScript bestand op.
Parameters:
Context:
Note:
*/
DOCTYPE_Disable = 1;
FCLTEXPIRES = 8*60; // geen database interactie tenslotte
THIS_FILE = "appl/api/phonebook_js.asp";
var EXPIRED_PASSWORD_OK = true; // performance
%>
<!-- #include file="../Shared/common.inc"-->
<!-- #include file="../api/api.inc" -->
<%
var API = new API_func();
var nojQuery = getQParam("nojQuery", 0)==1;
var suggesticon = getQParam("suggesticon", "");
var transitParam = "&fac_id="+Session("customerId") + buildTransitParam(["API", "APIKEY", "charset"]);
var proto = (Request.ServerVariables("SERVER_PORT") == "443")?"https":"http";
var sitenoroot = proto + "://" + Request.ServerVariables("SERVER_NAME");
var site = sitenoroot + rooturl;
Response.ContentType = "application/javascript";
//lcl.buildClientLCL();
// LET OP: Geen FcltMgr.js en dus niet (clientside) zelflerend
%>
window.facilitor = window.facilitor || {};
window.facilitor.LCL = {};
window.facilitor.LCL["lcl_shared_suggest_hint"] = "<%=safe.jsstring(L("lcl_shared_suggest_hint"))%>";
window.facilitor.LCL["lcl_shared_suggest_huidig"] = "<%=safe.jsstring(L("lcl_shared_suggest_huidig"))%>";
facilitor.phonebook = facilitor.phonebook || {};
function L(p_lcl)
{
if (p_lcl in window.facilitor.LCL)
return window.facilitor.LCL[p_lcl];
return "??" + p_lcl + "??";
}
(function() {
function getScript(src) {
document.write('<' + 'script src="<%=site%>/' + src + '"' +
' type="text/javascript"><' + '/script>');
}
function getCSS(src) {
document.write('<' + 'link rel="stylesheet" href="<%=site%>/' + src + '"' +
' type="text/css">');
}
var loadScriptTime = (new Date).getTime();
getCSS("appl/shared/suggest/suggest.css");
getCSS("appl/api/api.css");
<% if (!nojQuery) { /* kan conflicteren */ %>
getScript("appl/localscripts/jquery.min.js");
<% } %>
getScript("appl/shared/suggest/suggest_IE11.js?v=<%=safe.url(FCLTVersion)%>"); // FCLTVersion voor anti-caching. Timestamp is me te veel werk
<% if (API.apidata.cust_js) { %>
getScript("<%=API.apidata.cust_js%>");
<% } %>
window.facilitor.open_phonebook = function(key, naam)
{
if (key > 0)
jQuery.ajax({ type: "GET",
url: "<%=safe.jsstring(site)%>/appl/api/get_phonebook_info.asp?req_info=prs_perslid&prs_perslid_key=" + key + "<%=transitParam%>",
dataType: "jsonp",
success: window.facilitor.show_phonebook
});
else
$("#phonebookdetails").hide()
}
// De default waarden, werkt nog niet TODO
window.facilitor.phonebook_options =
{ detailWidth : 450,
toonFoto: true,
detailurl: "appl/fac/fac_user_info.asp",
deeplinkurl: "<%=safe.jsstring(site)%>/?nomenu=1&noheader=1&ihatetabs=1&JumpTo=",
fields: [ { lbl: "<%=L("lcl_prs_email")%>", val: "prs_perslid_email" },
{ lbl: "<%=L("lcl_pb_phone")%>", val: "prs_perslid_telefoonnr" },
{ lbl: "<%=L("lcl_pb_mobile")%>", val: "prs_perslid_mobiel" },
{ lbl: "<%=L("lcl_pb_afdeling")%>", val: "afdeling" }
]
};
<%
// kopieer de serverside overrules naar clientside
for (opt in API.apidata.options)
{
Response.Write("\nwindow.facilitor.phonebook_options['"+opt+"'] = "
+ "JSON.parse('"+ safe.jsstring(JSON.stringify(API.apidata.options[opt])) +"')");
}
%>
window.facilitor.show_phonebook = function(data, textStatus)
{
// Alle styling moet nog via classes
var closer = "<span onclick='$(\"#phonebookdetails\").hide()' style='float: right; cursor: pointer' title='<%=L("lcl_close_window")%>'>x</span>"
if (window.facilitor.phonebook_options.detailurl)
{
var jumpto = window.facilitor.phonebook_options.detailurl;
jumpto += (jumpto.indexOf("?")>=0)?"&":"?";
jumpto += "prs_key="+data.prs_perslid_key;
var link = window.facilitor.phonebook_options.deeplinkurl + escape(jumpto) + "&fac_id=<%=Session("customerId")%>";
var ahref = "<a href='"+link+"' target='_new'>"+data.naam+"</a>"
}
else
ahref=date.naam;
var trh = "<tr><td></td><th colspan='2' class='title'>"+ahref+"</a></th><th></th></tr>"
var trs = "";
if (window.facilitor.phonebook_options.toonFoto && data.photopath)
{
trs += "<tr><td></td><td></td><td rowspan='50'><img alt='<%=safe.htmlattr(L("lcl_menu_prs_phonebook"))%>' src='<%=safe.jsstring(sitenoroot)%>" + data.photopaththumb.replace(/\'/g,'&#39;').replace(/\"/g,'&quot;') +"'></td></tr>";
}
var fld;
for (fld in window.facilitor.phonebook_options.fields)
{
var field = window.facilitor.phonebook_options.fields[fld];
if (field.val && data[field.val])
{
trs += "<tr><td class='label'>"+field.lbl+"</td>";
trs += " <td>"+data[field.val]+"</td></tr>";
}
if (field.fun)
trs += eval(field.fun + "(data)");
}
if (!document.getElementById("phonebookdetails"))
{
// Alle esthetische styling verloopt via de css
var dd = document.createElement('div');
dd.id = "phonebookdetails";
dd.style.position = "absolute";
dd.style.top = $("#sName_key_show").position().top+20 + "px";
dd.style.width = window.facilitor.phonebook_options.detailWidth + "px";
var newLeft = $("#sName_key_show").position().left;
if (newLeft + window.facilitor.phonebook_options.detailWidth > document.body.offsetWidth)
{ // Wel in beeld houden
newLeft = document.body.offsetWidth - window.facilitor.phonebook_options.detailWidth
}
dd.style.left = newLeft + "px";
document.body.appendChild(dd);
if (0)$("body").click // even niet, hij is te agressief
(
function(e)
{
if($(e.target).closest("#phonebookdetails").length==0)
{
$("#phonebookdetails").hide();
}
}
);
}
var dd = document.getElementById("phonebookdetails");
dd.innerHTML = ""+closer+"<table width='100%'>"+trh + trs+"</table>";
dd.style.display = "block";
}
window.facilitor.phonebook = function (elm, options)
{
var opt;
for (opt in options)
{
window.facilitor.phonebook_options[opt] = options[opt];
}
$(elm).append('<input id="sName_key_show" sgonChange="window.facilitor.open_phonebook" class="fldpers" value="">')
$(elm).append('<input type="hidden" id="sName_key" name="sName_key" value="-1">');
sgPerson = new Suggest({ objectName: "sgPerson",
queryField: $("#sName_key_show")[0],
queryUrl: "<%=safe.jsstring(site)%>/appl/shared/suggest/SuggestPerslid.asp?filtcode=PHB<%=transitParam%>",
initKey: -1,
noJustOne: true,
keyField: $("#sName_key")[0],
JSONP: true,
embedded: true,
suggesticon: "<%=safe.jsstring(suggesticon)%>",
site: "<%=safe.jsstring(site)%>"
});
};
})();
<% ASPPAGE_END(); %>

View File

@@ -212,7 +212,7 @@ __Log("== Entering shorturl.asp ==");
if (bookmark_naam != 'faclikedeeplink' && new Perslid(falluser_key).checkAutorisation("WEB_PRSSYS", true))
{
INTERNAL_ERROR_FALLBACK_CANNOT_HAVE_PRSSYS;
// fac_like_deep.asp & fac_like.asp staan we wel toe, die hebben een Session.Abandon();
// fac_like_deep.asp staan we wel toe, die heeft een Session.Abandon();
}
Session("fallback_user_key") = falluser_key; // wordt opgepikt door loginTry.asp
}

View File

@@ -808,10 +808,7 @@ api2 = {
tables.push(tablesql);
}
else
{
if (!inc.isdetailfor)
tables = tables.concat (incquery.tables);
}
tables = tables.concat (incquery.tables);
wheres = wheres.concat (incquery.wheres);
if (inc.model.gparams && inc.model.gparams.GET.tables)
@@ -1018,7 +1015,6 @@ api2 = {
// object met "name": { field.. } wat daar wel omgezet wordt.
var newfield = { dbs: field.dbs,
typ: field.typ,
withseconds: "withseconds" in field? field.withseconds: fld.indexOf("syncdate") > -1,
track: field.track && field.label?field.label:field.track,
foreign: field.foreign,
val: newval,
@@ -1239,10 +1235,7 @@ api2 = {
var spl = api2.splitLOV(LOV);
var result = [];
for (var f in filter)
{
if ( filter[f] in spl)
result.push(filter[f] + ";" + spl[filter[f]]);
}
result.push(filter[f] + ";" + spl[filter[f]]);
return result.join(";");
},
splitLOV: function _splitLOV(LOV, nameprefix)
@@ -1460,21 +1453,7 @@ api2 = {
}
}
if (!incfound)
{
var data2 = api2.sql2jsonfields(params, oRs, incmodel)
if (model.includes[incname].isdetailfor)
{
for (detail in data2)
{
record[model.includes[incname].isdetailfor][detail] = data2[detail];
}
delete record[incname]; // niet meer nodig
}
else
{
record[incname].push(data2);
}
}
record[incname].push(api2.sql2jsonfields(params, oRs, incmodel));
}
else if (model.includes[incname].func) // include via callback functie zoals reservablerooms/occupation
{

View File

@@ -73,7 +73,6 @@ var api2_mapper = {
"objectproperties" : { "filename": "appl/mgt/ins_kenmerk.asp" },
"recurringtasks" : { "filename": "appl/mgt/ins_srtcontrole.asp" },
"objectgroups" : { "filename": "appl/mgt/ins_srtgroep.asp" },
"objecttypes" : { "filename": "appl/mgt/ins_srtdeel.asp" },
"objectpropertytypes" : { "filename": "appl/mgt/ins_srtkenmerk.asp" },
"alldisciplines" : { "filename": "appl/mgt/ins_tab_discipline.asp" },
"kpidefinitions" : { "filename": "appl/mgt/kpi_definitie.asp", "module": "KPI" },
@@ -89,7 +88,6 @@ var api2_mapper = {
"disciplinetypes" : { "filename": "appl/mgt/mld_srtdiscipline.asp" },
"issuepropertytypes" : { "filename": "appl/mgt/mld_srtkenmerk.asp" },
"callgroups" : { "filename": "appl/mgt/mld_stdmeldinggroep.asp" },
"issuetags" : { "filename": "appl/mgt/mld_melding_tag.asp" },
"issueordertypes" : { "filename": "appl/mgt/mld_typeopdr.asp" },
"daysoff" : { "filename": "appl/mgt/mld_vrije_dagen.asp" },
"workflows" : { "filename": "appl/mgt/mld_workflow.asp" },
@@ -147,7 +145,6 @@ var api2_mapper = {
"reportsx" : { "filename": "appl/api2/api_reportsx.asp", "module": "FAC" },
"reports" : { "filename": "appl/api2/api_reports.asp", "module": "FAC", "nodoc": true },
"invoices" : { "filename": "appl/api2/api_invoices.asp", "module": "FIN" },
"invoicelines" : { "filename": "appl/api2/api_invoicelines.asp", "module": "FIN" },
"objects" : { "filename": "appl/api2/api_objects.asp", "module": "INS" },
"inspections" : { "filename": "appl/api2/api_ins_deelsrtcontrole.asp", "module": "INS" },
"statehistory" : { "filename": "appl/mgt/ins_deel_state_history.asp", "module": "INS" },
@@ -159,13 +156,8 @@ var api2_mapper = {
"purchaseorder" : { "filename": "appl/api2/api_purchaseorder.asp", "module": "BES" },
"purchaseorderitem" : { "filename": "appl/api2/api_purchaseorderitem.asp", "module": "BES" },
"messages" : { "filename": "appl/mgt/msg_message.asp", "module": "MSG" },
"generictables" : { "filename": "appl/mgt/mgt_generic.asp", "hidden": true },
"genericselect" : { "filename": "appl/mgt/mgt_generic_select.asp", "hidden": true },
"fclttasks" : { "filename": "appl/mgt/fac_task.asp", "hidden": true },
"notifications" : { "filename": "appl/mgt/fac_notificatie.asp", "hidden": true },
"bestpractices" : { "filename": "appl/mgt/fac_bestpractices.asp", "hidden": true },
"systemtables" : { "filename": "appl/mgt/user_tables.asp", "hidden": true },
"workflowexpressions" : { "filename": "appl/mgt/mld_workflow_expression.asp", "hidden": true } // dit is geen model

View File

@@ -372,11 +372,7 @@ api2_rest = {
jsondata["custom_fields"][0]["attachments"][0].datastream = bodyStream;
if (key == 0) // new record
{
var result = model.includes["custom_fields"].model.REST_POST(requestparams, jsondata.custom_fields[0], -1);
var token = result.token;
// Bestandsnaam kan aangepast zijn.
jsondata.custom_fields[0].value = result.jsondata.value;
jsondata.custom_fields[0].attachments[0] = result.jsondata.attachments[0];
var token = model.includes["custom_fields"].model.REST_POST(requestparams, jsondata.custom_fields[0], -1);
var record = { xflexparentkey: -1, propertyid: jsondata.custom_fields[0].propertyid};
var fileparams = { getFile: jsondata["custom_fields"][0].value, api2name: null, tmpfolder: token };
}
@@ -390,7 +386,7 @@ api2_rest = {
var data = model.includes["custom_fields"].model.get_file_info(requestparams, record, fileparams );
api2_rest.deliver(data, /* dummy model */ { record_name: "attachment" }, outputformat, true);
return jsondata; // Attachment data teruggeven. Bestandsnaam kan aangepast zijn.
return;
}
// Geen atachment dus door met de reguliere code
var data = model["REST_" + method](requestparams, jsondata, key);

View File

@@ -13,92 +13,6 @@
*/
%>
<%
function buildKenmerkRoleCodeLOV(params)
{
var kenmerkRoleCodeLOV = "";
switch (params.module)
{
case "ALG":
kenmerkRoleCodeLOV = "3;"+ L("mgt_kenmerkrolcodealg_3") + ";" // alles
+ "2;"+ L("mgt_kenmerkrolcodealg_2") + ";" // ALGUSE
+ "1;"+ L("mgt_kenmerkrolcodealg_1"); // ALGMAN
break;
case "BES":
kenmerkRoleCodeLOV = "5;"+ L("mgt_kenmerkrolcodebes_5") + ";" // alles
+ "4;"+ L("mgt_kenmerkrolcodebes_4") + ";" // ORDSUP
+ "1;"+ L("mgt_kenmerkrolcodebes_1"); // BES*
break;
case "BESI":
kenmerkRoleCodeLOV = "1;"+ L("mgt_kenmerkrolcodebes_1"); // geen onderscheid in regels
break;
case "BEZ":
kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodebez_7") + ";" // alles
+ "4;"+ L("mgt_kenmerkrolcodebez_4") + ";" // BEZBOF only
+ "2;"+ L("mgt_kenmerkrolcodebez_2") + ";" // BEZFOF only
+ "3;"+ L("mgt_kenmerkrolcodebez_3"); // BEZFOF/BEZUSE only
break;
case "CNT":
kenmerkRoleCodeLOV = "3;"+ L("mgt_kenmerkrolcodecnt_3") + ";" // alles
+ "2;"+ L("mgt_kenmerkrolcodecnt_2") + ";" // CNTUSE
+ "1;"+ L("mgt_kenmerkrolcodecnt_1"); // CNTMAN
break;
case "CTR":
kenmerkRoleCodeLOV = "1;"+ L("mgt_kenmerkrolcodectr_1"); // alles (geen onderscheid)
break;
case "FAQ":
kenmerkRoleCodeLOV = "1;"+ L("mgt_kenmerkrolcodefaq_1"); // alles (geen onderscheid)
break;
case "FIN":
kenmerkRoleCodeLOV = "1;"+ L("mgt_kenmerkrolcodefin_1"); // alles (geen onderscheid)
break;
case "INS":
kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodeins_7") + ";" // alles
+ "4;"+ L("mgt_kenmerkrolcodeins_4") + ";" // INSFOF (uitlenen)
+ "2;"+ L("mgt_kenmerkrolcodeins_2") + ";" // INSUSE
+ "1;"+ L("mgt_kenmerkrolcodeins_1"); // INSMAN
break;
case "MLD":
kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodemld_7") + ";" // alles
+ "6;"+ L("mgt_kenmerkrolcodemld_6") + ";" // MLDBOF+MLDFOF
+ "3;"+ L("mgt_kenmerkrolcodemld_3") + ";" // MLDUSE+MLDBOF
+ "4;"+ L("mgt_kenmerkrolcodemld_4") + ";" // MLDBOF
+ "2;"+ L("mgt_kenmerkrolcodemld_2"); // MLDFOF
break;
case "OPD":
kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodeopd_7") + ";" // alles
+ "5;"+ L("mgt_kenmerkrolcodeopd_5") + ";"
+ "4;"+ L("mgt_kenmerkrolcodeopd_4") + ";" // ORDSUPonly
+ "3;"+ L("mgt_kenmerkrolcodeopd_3") + ";" // beide
+ "2;"+ L("mgt_kenmerkrolcodeopd_2") + ";" // Afmelden? opdrachtnemer
+ "1;"+ L("mgt_kenmerkrolcodeopd_1"); // ORDBOF opdrachtgever
break;
case "PRS":
kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodeprs_7") + ";" // alles
+ "6;"+ L("mgt_kenmerkrolcodeprs_6") + ";" // PRSUSE+PROFIL
+ "3;"+ L("mgt_kenmerkrolcodeprs_3") + ";" // PRSMAN+PRSUSE
+ "2;"+ L("mgt_kenmerkrolcodeprs_2") + ";" // PRSUSE
+ "1;"+ L("mgt_kenmerkrolcodeprs_1"); // PRSMAN
break;
case "REL":
kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcoderel_7") + ";" // alles
+ "6;"+ L("mgt_kenmerkrolcoderel_6") + ";" // RELUSE+EXTREL
+ "3;"+ L("mgt_kenmerkrolcoderel_3") + ";" // RELMAN+RELUSE
+ "2;"+ L("mgt_kenmerkrolcoderel_2") + ";" // RELUSE
+ "1;"+ L("mgt_kenmerkrolcoderel_1"); // RELMAN
break;
case "RES": // dit lijkt technisch een grappige volgorde, maar is logischer
kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcoderes_7") + ";" // iedereen
+ "4;"+ L("mgt_kenmerkrolcoderes_4") + ";" // RESBOF only, afhandelkenmerken
+ "2;"+ L("mgt_kenmerkrolcoderes_2") + ";" // RESFOF ony, professionele kenmerken
+ "3;"+ L("mgt_kenmerkrolcoderes_3"); // RESFOF+RESUSE (d.i. geen RESBOF)
//+ "1;"+ L("mgt_kenmerkrolcoderes_1"); // RESUSE, algemene kenmerken
break;
default:
kenmerkRoleCodeLOV = "?";
}
return kenmerkRoleCodeLOV;
}
function buildKenmerktypeLOV(kenmerktype, params)
{
var kenmerktypeLOV = "";
@@ -123,7 +37,7 @@
break;
case "S":
kenmerktypeLOV = "S;" + L("mgt_srtkenmerk_referentie_s") + ";"
+ "R;" + L("mgt_srtkenmerk_referentie_l") + ";"
+ "R;" + L("mgt_srtkenmerk_referentie_l") + ";"
+ "r;" + L("mgt_srtkenmerk_referentie_r")
break;
case "r":
@@ -145,13 +59,13 @@
break;
case "L":
kenmerktypeLOV = "L;" + L("mgt_srtkenmerk_label") + ";"
+ "l;" + L("mgt_srtkenmerk_label_i")
+ (params && params.module == "MLD"? ";b;" + L("mgt_srtkenmerk_label_ii") : "")
+ "l;" + L("mgt_srtkenmerk_label_i") + ";"
+ (params && params.module == "MLD"? "b;" + L("mgt_srtkenmerk_label_ii") : "")
break;
case "l":
kenmerktypeLOV = "l;" + L("mgt_srtkenmerk_label_i") + ";"
+ "L;" + L("mgt_srtkenmerk_label")
+ (params && params.module == "MLD"? ";b;" + L("mgt_srtkenmerk_label_ii") : "")
+ "L;" + L("mgt_srtkenmerk_label") + ";"
+ (params && params.module == "MLD"? "b;" + L("mgt_srtkenmerk_label_ii") : "")
break;
case "b":
kenmerktypeLOV = "b;" + L("mgt_srtkenmerk_label_ii") + ";"
@@ -182,7 +96,7 @@
+ ";M;" + L("mgt_srtkenmerk_bestand_f")
+ ";L;" + L("mgt_srtkenmerk_label")
+ ";l;" + L("mgt_srtkenmerk_label_i")
+ (params && params.module == "MLD"? ";b;" + L("mgt_srtkenmerk_label_ii") : "")
+ (params && params.module != "MLD"? "" : ";b;" + L("mgt_srtkenmerk_label_ii"))
+ ";Q;" + L("mgt_srtkenmerk_blanco")
+ ";V;" + L("mgt_srtkenmerk_checkbox");
}
@@ -199,7 +113,7 @@
function buildGroepsverplichtingList()
{ // LOV waarden voor xxx_kenmerk_groep.
var s = "0;" + L("mgt_kenmerk_groep0") ;
var s = "0;<" + L("lcl_none") + ">";
for (var i=1; i<=9; i++)
{
s = s + ";" + i + ";" + L("mgt_kenmerk_groep") + " " + i;
@@ -437,9 +351,9 @@ function buildStatusList(pniveau)
function buildHltPropList()
{
var hltPropList = "0;" + L("mld_kenmerk_onderbreken0")
+ ";1;" + L("mld_kenmerk_onderbreken1")
+ ";2;" + L("mld_kenmerk_onderbreken2");
var hltPropList = "0;" + L("lcl_No")
+ ";1;" + L("lcl_Yes")
+ ";2;" + L("lcl_mld_delete_on_resume");
return hltPropList;
}

View File

@@ -1,26 +0,0 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: api_invoicelines.asp
Description: Bestelling API
Parameters:
Context:
Notes: We ondersteunen alleen (nog) het opvragen van de bestelling
*/
DOCTYPE_Disable = true;
ANONYMOUS_Allowed = 1; // Eigenlijk niet waar. We regelen echter alles zelf
THIS_FILE = "appl/api2/api_invoicelines.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="./api2_rest.inc" -->
<!-- #include file="./model_invoicelines.inc" -->
<%
api2_rest.process(model_invoicelines);
%>
<% ASPPAGE_END(); %>

View File

@@ -13,7 +13,7 @@
*/
DOCTYPE_Disable = true;
ANONYMOUS_Allowed = 1; // Eigenlijk niet waar. We regelen echter alles zelf
THIS_FILE = "appl/api2/api_invoices.asp";
THIS_FILE = "appl/api/api_invoices.asp";
%>
<!-- #include file="../Shared/common.inc" -->
@@ -21,4 +21,4 @@
<!-- #include file="./model_invoices.inc" -->
<%
api2_rest.process(model_invoices);
%><% ASPPAGE_END(); %>
%><% ASPPAGE_END(); %>

View File

@@ -20,7 +20,5 @@
<!-- #include file="./api2_rest.inc" -->
<!-- #include file="./model_objects.inc" -->
<%
var mode = "xxxx"; // mode must be defined because of use in model_ins_kenmerk.inc
api2_rest.process(model_objects);
%><% ASPPAGE_END(); %>

View File

@@ -20,8 +20,6 @@
<!-- #include file="./api2_rest.inc" -->
<!-- #include file="./model_reservations.inc" -->
<%
var mode = "xxxx"; // mode must be defined because of use in model_res_kenmerk.inc
api2_rest.process(model_reservations);
ASPPAGE_END();

View File

@@ -26,8 +26,8 @@ function model_alg_kenmerk(niveau, params)
this.module = "ALG";
// overrule titel voor schermen.
this.record_title = L("mgt_kenmerk_of") + " " + get_real_estate_name(niveau);
this.records_title = L("mgt_kenmerk_m_of") + " " + get_real_estate_name(niveau);
this.record_title = L("mgt_kenmerk") + " " + get_real_estate_name(niveau);
this.records_title = L("mgt_kenmerk_m") + " " + get_real_estate_name(niveau);
this.fields = {
@@ -50,16 +50,7 @@ function model_alg_kenmerk(niveau, params)
"dbs": "alg_kenmerk_volgnr",
"label": L("mgt_kenmerk_volgnummer"),
"typ": "number",
"len": 3,
"required": true // deze zou er straks weer af mogen
},
"rolecode": {
"dbs": "alg_kenmerk_rolcode",
"label": L("mgt_kenmerk_rolcode"),
"typ": "number",
"LOV": buildKenmerkRoleCodeLOV({ module: "ALG" }),
"required": true,
"multiedit": true
"required": true
},
"name": {
"dbs": "alg_kenmerk_omschrijving",
@@ -95,7 +86,6 @@ function model_alg_kenmerk(niveau, params)
"label": L("mgt_kenmerk_verplicht"),
"typ": "key",
"LOV": buildVerplichtingList(),
"emptyisrealvalue": true,
"emptyoption": null
},
"group": {
@@ -114,31 +104,12 @@ function model_alg_kenmerk(niveau, params)
"system": {
"dbs": "alg_kenmerk_systeem",
"label": L("mgt_srtkenmerk_systeem"),
"typ": "check",
"readonly": !user.has("WEB_PRSSYS")
"typ": "check"
},
"inlist": {
"dbs": "alg_kenmerk_inlijst",
"label": L("mgt_kenmerk_systeem_overview"),
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"showasgroup": false,
"typ": "check",
"mask": 1,
"radios": [
{
"name": "inplan",
//"label": (niveau == "G"? L("mgt_kenmerk_systeem_overview_bui") + " " : "") + L("mgt_kenmerk_systeem_overview"),
"label": L("mgt_kenmerk_systeem_overview"),
"mask": 1,
"defaultvalue": 0
}
]
}
],
"typ": "check0",
"multiedit": true
},
"length": {
@@ -186,9 +157,9 @@ function model_alg_kenmerk(niveau, params)
},
"code": {
"dbs": "alg_kenmerk_code",
"label": L("mgt_kenmerk_code"),
"label": L("lcl_alg_code"),
"typ": "varchar",
"readonly": !user.has("WEB_PRSSYS")
"readonly": !user.has("WEB_FACTAB")
},
"authorization": {
"dbs": "fac_functie_key",
@@ -217,15 +188,7 @@ function model_alg_kenmerk(niveau, params)
gparams.GET = { wheres: [ "alg_kenmerk.alg_kenmerk_niveau = " + safe.quoted_sql(niveau) ] };
}
if (niveau == "G") // en dan ook nog alleen als je MJOB hebt/gebruikt lijkt me TODO?
{
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);
@@ -237,7 +200,6 @@ function model_alg_kenmerk(niveau, params)
var naam = "";
switch (niveau)
{
case "E": naam = L("lcl_region"); break;
case "D": naam = L("lcl_district"); break;
case "L": naam = L("lcl_location"); break;
case "T": naam = L("lcl_terra"); break;
@@ -250,8 +212,7 @@ function model_alg_kenmerk(niveau, params)
function fill_real_estate_level_LOV()
{
return "E;"+L("lcl_region")
+ ";D;"+L("lcl_district")
return "D;"+L("lcl_district")
+ ";L;"+L("lcl_location")
+ ";G;"+L("lcl_building")
+ ";R;"+L("lcl_room"); // Moet hier T en V ook nog bij?

View File

@@ -61,7 +61,6 @@ function model_aut_idp_map(params)
+ ";11;" + L("lcl_prs_person_mobile")
+ ";12;" + L("prs_perslid_externid")
+ ";13;" + L("prs_perslid_externid") + " (case insensitive)"
+ ";14;" + L("lcl_prs_person_nr")
// De foreign's
+ ";20;" + L("lcl_prs_person_function")

View File

@@ -315,12 +315,6 @@ model_bes_disc_params =
"dbs": "bes_disc_params_deliver_fe",
"label": L("bes_discipline_fe_deliver"),
"typ": "check0"
},
"autodeliver": {
"dbs": "bes_disc_params_autodeliverdays",
"label": L("bes_discipline_autodeliverdays"),
"typ": "number",
"len": 4
}
}
}

View File

@@ -30,6 +30,11 @@ function model_bes_discipline(disc_key, params)
}
);
this.hook_pre_edit = function (obj, fld, params)
{
fld.costtype.foreign = mgt.pre_edit_kostensoort(obj);
}
this.hook_post_post = function (params, obj, key)
{
var org_disc_key = getQParamInt("id", -1);
@@ -38,11 +43,6 @@ function model_bes_discipline(disc_key, params)
{ // Ook de autorisatie van de oude discipline kopieren
mgt.clone_authorization(key, org_disc_key);
}
var clone_art = getQParamInt("clone_art", 0) == 1;
if (clone_art)
{ // Ook de autorisatie van de oude discipline kopieren
mgt.clone_articles(key, org_disc_key);
}
}
this.REST_POST = generic_REST_POST(_model_bes_discipline);
@@ -91,6 +91,7 @@ _model_bes_discipline = // Internal only
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": "prs_kostensoort",
"LOVinit": "",
"showtransit": true
},
"costcentremandatory": {

View File

@@ -4,7 +4,7 @@
File: model_bes_kenmerk.inc
Description: Model voor bes_kenmerk = Kenmerken van bestelregels
Description: Model voor bes_kenmerk
Context:
@@ -56,16 +56,12 @@ function model_bes_kenmerk(params)
"foreign": {
"tbl": "(SELECT bes_srtkenmerk_key"
+ " , bes_srtkenmerk_omschrijving"
+ (mode != "list"
? " || ' (' || bes_srtkenmerk_kenmerktype || ')'"
: "")
+ " oms"
+ " , bes_srtkenmerk_kenmerktype"
+ " FROM bes_srtkenmerk"
+ " WHERE bes_srtkenmerk_verwijder IS NULL"
+ " ORDER by bes_srtkenmerk_omschrijving ASC)",
"key": "bes_srtkenmerk_key",
"desc": "oms",
"desc": "bes_srtkenmerk_omschrijving",
"extravalue": "bes_srtkenmerk_kenmerktype"
},
"defaultvalue": null,
@@ -135,14 +131,6 @@ function model_bes_kenmerk(params)
"dbs": "bes_kenmerk_volgnummer",
"label": L("mgt_kenmerk_volgnummer"),
"typ": "number",
"len": 3,
"required": true
},
"rolecode": {
"dbs": "bes_kenmerk_rolcode",
"label": L("mgt_kenmerk_rolcode"),
"typ": "number",
"LOV": buildKenmerkRoleCodeLOV({ module: "BESI" }),
"required": true
},
"required": {
@@ -150,7 +138,6 @@ function model_bes_kenmerk(params)
"label": L("mgt_kenmerk_verplicht"),
"typ": "key",
"LOV": buildVerplichtingList(),
"emptyisrealvalue": true,
"emptyoption": null
},
"group": {
@@ -174,7 +161,6 @@ function model_bes_kenmerk(params)
{
"name": "",
"label": "",
"showasgroup": false,
"typ": "check",
"mask": 3,
"radios": [
@@ -222,9 +208,9 @@ function model_bes_kenmerk(params)
},
"code": {
"dbs": "bes_kenmerk_code",
"label": L("mgt_kenmerk_code"),
"label": L("lcl_bes_code"),
"typ": "varchar",
"readonly": !user.has("WEB_PRSSYS")
"readonly": !user.has("WEB_FACTAB")
},
"authorization": {
"dbs": "fac_functie_key",

View File

@@ -4,8 +4,11 @@
File: model_bes_kenmerkbestel.inc
Description: Model voor bes_kenmerkbestel = Kenmerken van bestelling
Description: Vanuit CodeCharge gegenereerd model voor bes_kenmerkbestel
Context:
Notes:
*/
%>
<%
@@ -55,16 +58,12 @@ function model_bes_kenmerkbestel()
"foreign": {
"tbl": "(select bes_srtkenmerk_key"
+ " , bes_srtkenmerk_omschrijving"
+ (mode != "list"
? " || ' (' || bes_srtkenmerk_kenmerktype || ')'"
: "")
+ " oms"
+ " , bes_srtkenmerk_kenmerktype"
+ " from bes_srtkenmerk"
+ " where bes_srtkenmerk_verwijder is null"
+ " order by bes_srtkenmerk_omschrijving asc)",
"key": "bes_srtkenmerk_key",
"desc": "oms",
"desc": "bes_srtkenmerk_omschrijving",
"extravalue": "bes_srtkenmerk_kenmerktype"
},
"defaultvalue": null,
@@ -97,14 +96,6 @@ function model_bes_kenmerkbestel()
"dbs": "bes_kenmerk_volgnummer",
"label": L("mgt_kenmerk_volgnummer"),
"typ": "number",
"len": 3,
"required": true
},
"rolecode": {
"dbs": "bes_kenmerk_rolcode",
"label": L("mgt_kenmerk_rolcode"),
"typ": "number",
"LOV": buildKenmerkRoleCodeLOV({ module: "BES" }),
"required": true
},
"required": {
@@ -135,9 +126,8 @@ function model_bes_kenmerkbestel()
{
"name": "",
"label": "",
"showasgroup": false,
"typ": "check",
"mask": 7,
"mask": 3,
"radios": [
{
"name": "overview_req",
@@ -150,12 +140,6 @@ function model_bes_kenmerkbestel()
"label": L("mgt_kenmerk_systeem_overview_pur"),
"mask": 2,
"defaultvalue": 0
},
{
"name": "visible_bes_opdr",
"label": L("lcl_bes_opdr_kenmerk_visible"),
"mask": 4,
"defaultvalue": 0
}
]
}
@@ -180,19 +164,7 @@ function model_bes_kenmerkbestel()
"typ": "memo",
"translate": true
},
"code": {
"dbs": "bes_kenmerk_code",
"label": L("mgt_kenmerk_code"),
"typ": "varchar",
"readonly": !user.has("WEB_PRSSYS")
},
"authorization": { // wordt nog niet ondersteund in deze module
"dbs": "fac_functie_key",
"label": L("mgt_kenmerk_autorisatie"),
"typ": "key",
"foreign": "fac_functie"
},
"regexp": {
"regexp": {
"dbs": "bes_kenmerk_regexp",
"label": L("mgt_kenmerk_regexp"),
"typ": "varchar"

View File

@@ -259,7 +259,6 @@ function model_bes_srtdeel(disc_key)
"orderbys": [
"ins_discipline_omschrijving",
"bes_srtgroep_omschrijving",
"bes_srtdeel_volgnr",
"bes_srtdeel_nr"
]
}

View File

@@ -134,8 +134,8 @@ function model_bes_srtkenmerk(params)
"code": {
"dbs": "bes_srtkenmerk_code",
"typ": "varchar",
"label": L("mgt_srtkenmerk_code"),
"readonly": !user.has("WEB_PRSSYS")
"label": L("lcl_bes_code"),
"readonly": !user.has("WEB_FACTAB")
}
};

View File

@@ -48,34 +48,9 @@ function model_bez_actie()
"action": {
"dbs": "bez_actie_flags",
"label": L("bez_actie_flags"),
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 15,
"radios": [
{
"name": "flag_oproepen",
"label": L("bez_actie_flag_oproepen"),
"mask": 1,
"defaultvalue": 0
},
{ "name": "flag_badge",
"label": L("bez_actie_flag_badge"),
"mask": 2,
"defaultvalue": 0
},
{
"name": "flag_teams",
"label": L("bez_actie_flag_teams"),
"mask": 4,
"defaultvalue": 0
}
]
}
]
"typ": "key",
"required": true,
"LOV": L("bez_actie_flagsLOV")
},
"group": {
"dbs": "bez_actie_groep_key",

View File

@@ -38,7 +38,6 @@ function model_bez_kenmerk(params)
"dbs": "bez_kenmerk_volgnr",
"label": L("mgt_kenmerk_volgnummer"),
"typ": "number",
"len": 3,
"required": true
},
"name": {
@@ -73,7 +72,6 @@ function model_bez_kenmerk(params)
"label": L("mgt_kenmerk_verplicht"),
"typ": "key",
"LOV": buildVerplichtingList(),
"emptyisrealvalue": true,
"emptyoption": null
},
"group": {
@@ -84,13 +82,6 @@ function model_bez_kenmerk(params)
"LOV": buildGroepsverplichtingList(),
"emptyoption": null
},
"rolecode": {
"dbs": "bez_kenmerk_rolcode",
"label": L("mgt_kenmerk_rolcode"),
"typ": "number",
"LOV": buildKenmerkRoleCodeLOV({ module: "BEZ" }),
"required": true
},
"readonly": {
"dbs": "bez_kenmerk_toonbaar",
"label": L("mgt_kenmerk_toonbaar"),
@@ -104,7 +95,6 @@ function model_bez_kenmerk(params)
{
"name": "",
"label": "",
"showasgroup": false,
"typ": "check",
"mask": 15,
"radios": [
@@ -185,9 +175,9 @@ function model_bez_kenmerk(params)
},
"code": {
"dbs": "bez_kenmerk_code",
"label": L("mgt_kenmerk_code"),
"label": L("lcl_bez_code"),
"typ": "varchar",
"readonly": !user.has("WEB_PRSSYS")
"readonly": !user.has("WEB_FACTAB")
},
"authorization": {
"dbs": "fac_functie_key",

View File

@@ -12,7 +12,6 @@
*/
%>
<!-- #include file="../alg/alg.inc"-->
<!-- #include file="../Shared/discxalg3d.inc"-->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="./model_alg_kenmerk.inc"-->
@@ -65,14 +64,9 @@ function model_buildings()
this.REST_GET = function _GET(params)
{
var autfunction = ["WEB_ALGUSE","WEB_ALGMAN"];
var urole = "fe"; // TODO: Moet echt niet ter zake doen
var autfunction = urole == "fe"? "WEB_ALGUSE" : "WEB_ALGMAN";
params.authparams = user.checkAutorisation(autfunction, null, null, true); // pessimistisch
if (params.filter.id)
{
var bld_key = params.filter.id;
var this_alg = alg.func_enabled(bld_key, "G");
user.auth_required_or_abort(this_alg.readman || this_alg.readuse);
}
// TODO: Add authorization
var query = api2.sqlfields(params, this);

View File

@@ -65,7 +65,7 @@ function model_cad_tekening(niveau, params)
// Save in DB (link file to floor)
var cadfields = [
{ dbs: "cad_tekening_filenaam", typ: "varchar", val: safefilename.replace(/\.dwf$/i, "") }
{ dbs: "cad_tekening_filenaam", typ: "varchar", val: safefilename.replace(/.dwf$/i, "") }
];
var sql = buildUpdate("cad_tekening", cadfields, { noValidateToken: true }) + " cad_tekening_key = " + the_key;
Oracle.Execute(sql);
@@ -116,7 +116,7 @@ function model_cad_tekening(niveau, params)
// Save in DB (link file to floor)
var cadfields = [
{ dbs: "cad_tekening_key", typ: "key", seq: "cad_s_cad_tekening_key" },
{ dbs: "cad_tekening_filenaam", typ: "varchar", val: safefilename.replace(/\.dwf$/i, "") },
{ dbs: "cad_tekening_filenaam", typ: "varchar", val: safefilename.replace(/.dwf$/i, "") },
{ dbs: "alg_locatie_key", typ: "key", val: getLocation(jsondata.floor) },
{ dbs: "alg_verdieping_key", typ: "key", val: jsondata.floor },
{ dbs: "cad_tekening_type", typ: "varchar", val: "P" }

View File

@@ -66,6 +66,7 @@ function model_cht_discipline(disc_key, params)
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": "prs_kostensoort",
"LOVinit": "",
"multiedit": true,
"showtransit": true
},

View File

@@ -72,12 +72,6 @@ model_cnt_disc_params =
"label": L("cnt_discipline_factuurappr"),
"typ": "check0"
},
"bookinvoice": {
"dbs": "cnt_disc_params_factuurboeken",
"label": L("cnt_discipline_factuurboeken"),
"typ": "check0",
"defaultvalue": 1
},
"invoicelimit": { // "limit" is een reserved naam in API2
"dbs": "cnt_disc_params_factuurgrens",
"label": L("cnt_discipline_factuurgrens"),
@@ -150,18 +144,6 @@ model_cnt_disc_params =
"label": L("cnt_discipline_verlengbaar"),
"typ": "check0",
"defaultvalue": 0
},
"costtypemandatory": {
"dbs": "cnt_disc_params_ksverplicht",
"label": L("cnt_discipline_ksverplicht"),
"typ": "check0",
"defaultvalue": 0
},
"approvenew": {
"dbs": "cnt_disc_params_approve_new",
"label": L("cnt_discipline_approve_new"),
"typ": "check0",
"defaultvalue": 0
}
/* // Voor als in cnt_disc_params_opties meerdere bits worden gebruikt om verschillende opties aan te geven:
"options": {

View File

@@ -20,6 +20,11 @@ function model_cnt_discipline(disc_key, params)
// E<>n model voor de buitenwereld
api2.merge_disc_params_model(this, _model_cnt_discipline);
this.hook_pre_edit = function (obj, fld, params)
{
fld.costtype.foreign = mgt.pre_edit_kostensoort(obj);
}
this.hook_post_post = function (params, obj, key)
{
var org_disc_key = getQParamInt("id", -1);
@@ -83,7 +88,8 @@ _model_cnt_discipline = // Internal only
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": "prs_kostensoort"
"foreign": "prs_kostensoort",
"LOVinit": ""
},
"email": {
"dbs": "ins_discipline_email",

View File

@@ -50,9 +50,7 @@ function model_cnt_factuurschema()
"typ": "float",
"iscurrency": true,
"required": true,
"label": L("lcl_cnt_period_sum"),
"total": true,
"multiedit": true
"label": L("lcl_cnt_period_sum")
},
"description": {
"dbs": "cnt_factuurschema_opmerking",

View File

@@ -45,16 +45,12 @@ function model_cnt_kenmerk(params)
"foreign": {
"tbl": "(select cnt_srtkenmerk_key"
+ " , cnt_srtkenmerk_omschrijving"
+ (mode != "list"
? " || ' (' || cnt_srtkenmerk_kenmerktype || ')'"
: "")
+ " oms"
+ " , cnt_srtkenmerk_kenmerktype"
+ " from cnt_srtkenmerk"
+ " where cnt_srtkenmerk_verwijder is null"
+ " order by cnt_srtkenmerk_upper asc)",
"key": "cnt_srtkenmerk_key",
"desc": "oms",
"desc": "cnt_srtkenmerk_omschrijving",
"extravalue": "cnt_srtkenmerk_kenmerktype"
},
"defaultvalue": null,
@@ -73,8 +69,7 @@ function model_cnt_kenmerk(params)
"dbs": "cnt_srtkenmerk.cnt_srtkenmerk_kenmerktype",
"label": L("mgt_srtkenmerk_kenmerktype"),
"typ": "varchar",
//"hidden_fld": true,
"readonly" : true,
"hidden_fld": true,
"LOV": buildKenmerktypeLOV(),
"showtransit": true
},
@@ -92,7 +87,6 @@ function model_cnt_kenmerk(params)
"desc": "ins_discipline_omschrijving"
},
"LOVinit": "",
"insertonly" : true,
"showtransit": true
},
"level": {
@@ -107,14 +101,6 @@ function model_cnt_kenmerk(params)
"dbs": "cnt_kenmerk_volgnummer",
"label": L("mgt_kenmerk_volgnummer"),
"typ": "number",
"len": 3,
"required": true
},
"rolecode": {
"dbs": "cnt_kenmerk_rolcode",
"label": L("mgt_kenmerk_rolcode"),
"typ": "number",
"LOV": buildKenmerkRoleCodeLOV({ module: "CNT" }),
"required": true
},
"required": {
@@ -122,7 +108,6 @@ function model_cnt_kenmerk(params)
"label": L("mgt_kenmerk_verplicht"),
"typ": "key",
"LOV": buildVerplichtingList(),
"emptyisrealvalue": true,
"emptyoption": null
},
"group": {
@@ -168,9 +153,9 @@ function model_cnt_kenmerk(params)
},
"code": {
"dbs": "cnt_kenmerk_code",
"label": L("mgt_kenmerk_code"),
"label": L("lcl_cnt_code"),
"typ": "varchar",
"readonly": !user.has("WEB_PRSSYS")
"readonly": !user.has("WEB_FACTAB")
},
"authorization": {
"dbs": "fac_functie_key",

View File

@@ -92,8 +92,8 @@ function model_cnt_srtkenmerk(params)
"code": {
"dbs": "cnt_srtkenmerk_code",
"typ": "varchar",
"label": L("mgt_srtkenmerk_code"),
"readonly": !user.has("WEB_PRSSYS")
"label": L("lcl_cnt_code"),
"readonly": !user.has("WEB_FACTAB")
}
};

View File

@@ -99,17 +99,6 @@ function model_companies()
this.REST_GET = function _GET(params)
{
var autfunction = "WEB_RELMAN";
var bedrijf_key = (!params.isNew && params && params.filter && params.filter.id ? params.filter.id : -1);
if (bedrijf_key > 0) {
var sql = "SELECT NVL(prs_bedrijf_intern, 0) intern"
+ " FROM prs_bedrijf"
+ " WHERE prs_bedrijf_key = " + bedrijf_key;
var oRs = Oracle.Execute(sql);
if (!oRs.EOF && oRs("intern").Value != 0) { // Extern systeem
autfunction = "WEB_PRSMAN";
}
oRs.Close();
}
params.authparams = user.checkAutorisation(autfunction, null, null, true); // pessimistisch
// TODO: Add authorization

View File

@@ -42,8 +42,6 @@ function model_custom_fields(formodel, flexModel, flexParams)
var sqlModule = flexModule;
if (flexModule == 'MLD' && flexParams.pNiveau == 'O')
sqlModule = 'OPDR';
if (flexModule == 'FIN' && flexParams.pNiveau == 'R')
sqlModule = 'FINR';
var theSqlFlex = getSqlFlex(sqlModule, formodel.primary, flexParams);
// enigszins undocumented maar met parameter '&custom_fields=' kun je het aantal opgeleverde velden beperken
// (net zoals je met '&fields=' de gewone vaste velden kunt beperken)
@@ -58,8 +56,6 @@ function model_custom_fields(formodel, flexModel, flexParams)
var sqlModule = flexModule;
if (flexModule == 'MLD' && flexParams.pNiveau == 'O')
sqlModule = 'OPDR';
if (flexModule == 'FIN' && flexParams.pNiveau == 'R')
sqlModule = 'FINR';
var theSqlFlex = "SELECT * FROM ({0}) ".format(getSqlFlex(sqlModule, formodel.primary, flexParams));
return theSqlFlex;
@@ -88,7 +84,6 @@ function model_custom_fields(formodel, flexModel, flexParams)
"sequence": {
"dbs": "volgnummer",
"label": L("mgt_kenmerk_volgnummer"),
"len": 3,
"typ": "number" },
"label": {
"dbs": "omschrijving",
@@ -237,17 +232,6 @@ function model_custom_fields(formodel, flexModel, flexParams)
{
var attachment = jsondata.attachments[i];
var safefilename = safe.filename(attachment.name);
// iPad/IPhone uploaden directe foto altijd als 'Image.jpg' wat erg lastig is
// In dat geval bestandsnaam aanpassen.
var newfilename = renameIphoneIpadFiles(safefilename, i);
if (newfilename)
{
if (i == 0) jsondata.value = newfilename; // Gelijk aan het eerste bestand.
jsondata.attachments[i] = newfilename;
safefilename = newfilename;
}
if (flexparams.isAllowedName(safefilename))
{
CreateFullPath(flexparams.AttachPath);
@@ -263,34 +247,12 @@ function model_custom_fields(formodel, flexModel, flexParams)
attachment.content_base64 || attachment.content_hex,
fileencoding);
}
// resizen van bijlagen
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var fso = Server.CreateObject("Scripting.FileSystemObject")
var orgFile = flexparams.AttachPath + safefilename;
if (flexparams.regexp)
{
var resize_params = { resizecode: flexparams.regexp // "R800x600"
, attachpath: flexparams.AttachPath
, filename: safefilename
, safename: safefilename
, digest: oCrypto.hex_sha1_file(orgFile)
, isupload: false
, module: this.module
};
var resize_result = resizePicture(resize_params);
if (resize_result.newsize && (resize_result.newsize > 0))
{
tmpFile = resize_result.file_resized;
fso.DeleteFile(orgFile);
fso.MoveFile(tmpFile, orgFile);
}
}
// Toevoegen bijlage/bestand tracken.
trackBijlagen(this.module, parent_key, flexparams, {safefilename: [safefilename]}, "upload");
if (flexparams.fac_bijlagen)
{
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var fso = Server.CreateObject("Scripting.FileSystemObject")
var sql = "BEGIN "
+ " flx.setflexbijlage"
+ "(" + safe.quoted_sql(this.module) // MLD | RES | ....
@@ -299,9 +261,9 @@ function model_custom_fields(formodel, flexModel, flexParams)
+ ", " + safe.quoted_sql(flexparams.AttachSubPath)
+ ", " + "NULL" // diskfilename
+ ", " + safe.quoted_sql(safefilename)
+ ", " + fso.GetFile(orgFile).Size
+ ", " + fso.GetFile(flexparams.AttachPath + safefilename).Size
+ ", " + "SYSDATE"
+ ", " + safe.quoted_sql(oCrypto.hex_sha1_file(orgFile))
+ ", " + safe.quoted_sql(oCrypto.hex_sha1_file(flexparams.AttachPath + safefilename))
+ ");"
+ " END;";
Oracle.Execute(sql);
@@ -317,22 +279,17 @@ function model_custom_fields(formodel, flexModel, flexParams)
if (typ != "M" && parent_key > 0)
{
var setFlexModule = this.module;
if (this.module == 'MLD' && flexParams.pNiveau == 'O')
setFlexModule = 'OPD';
if (this.module == 'FIN' && flexParams.pNiveau == 'R')
setFlexModule = 'FINR';
var sql = "BEGIN flx.setflex({0}".format(safe.quoted_sql(setFlexModule))
var sql = "BEGIN flx.setflex({0}".format(this.module == "MLD" && flexParams.pNiveau == "O" ? "'OPD'" : safe.quoted_sql(this.module))
+ " , {0}".format(the_key) // == jsondata.propertyid
+ " , {0}".format(parent_key)
+ " , {0}".format(this.module == "MLD" || this.module == "FIN"? "NULL" : safe.quoted_sql(flexParams.pNiveau))
+ " , {0}".format(this.module == "MLD" ? "NULL" : safe.quoted_sql(flexParams.pNiveau))
+ " , {0});".format(safe.quoted_sql(jsondata.value))
+ "END;"
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
api2.error(400, err.friendlyMsg);
}
return {token: tmpfolder, jsondata: jsondata}; // Tijdelijke folder en attachment data teruggeven. Bestandsnaam kan aangepast zijn.
return tmpfolder;
}
if (flexModel) // nog even niet voor MLD

View File

@@ -19,7 +19,7 @@ function model_fac_email_setting()
this.record_name = "emailsetting";
this.table = "fac_email_setting";
this.primary = "fac_email_setting_key";
this.autfunction = "WEB_MLDMGT"; // de ernstige velden zijn blijven WEB_FACTAB
this.autfunction = "WEB_FACTAB";
this.record_title = L("fac_email_setting");
this.records_title = L("fac_email_setting_m");
@@ -36,7 +36,7 @@ function model_fac_email_setting()
"dbs": "fac_email_setting_volgnr",
"label": L("fac_email_setting_volgnr"),
"typ": "number",
"required": true // de database zorgt voor defaultvalue 10
"required": true
},
"name": {
"dbs": "fac_email_setting_user",
@@ -50,34 +50,19 @@ function model_fac_email_setting()
"typ": "varchar",
"multiedit": true
},
"reqtext": {
"dbs": "fac_email_setting_text",
"label": L("fac_email_setting_text"),
"typ": "varchar",
"multiedit": true
},
"frommode": {
"dbs": "fac_email_setting_frommode",
"label": L("fac_email_setting_frommode"),
"typ": "number",
"required": true,
"LOV": L("fac_email_setting_frommodeLOV"),
"emptyoption": null,
"readonly": !(user.has("WEB_FACTAB"))
"multiedit": true
},
"action": {
"dbs": "fac_email_setting_action",
"label": L("fac_email_setting_action"),
"typ": "varchar",
"defaultvalue" : "fac.processemail",
"multiedit": true,
"readonly": !(user.has("WEB_FACTAB"))
},
"stdmelding": {
"dbs": "mld_stdmelding_key",
"label": L("fac_email_setting_stdmelding_key"),
"typ": "key",
"foreign": "mld_stdmelding"
"multiedit": true
},
"expire": {
"dbs": "fac_email_setting_expire",
@@ -89,15 +74,12 @@ function model_fac_email_setting()
"dbs": "fac_email_setting_attachpath",
"label": L("fac_email_setting_attachpath"),
"typ": "varchar",
"multiedit": true,
"placeholder": "*flexfilespath",
"readonly": !(user.has("WEB_FACTAB"))
"multiedit": true
},
"attachext": {
"dbs": "fac_email_setting_attachext",
"label": L("fac_email_setting_attachext"),
"typ": "varchar",
"placeholder": S("flexAllowedExt"),
"multiedit": true
},
"reqattachext": {
@@ -118,8 +100,7 @@ function model_fac_email_setting()
"typ": "number",
"required": true,
"defaultvalue": 0,
"multiedit": true,
"readonly": !(user.has("WEB_FACTAB"))
"multiedit": true
},
"person": {
"dbs": "prs_perslid_key_auth",

View File

@@ -27,8 +27,8 @@ function model_fac_faq()
this.table = "fac_faq";
this.primary = "fac_faq_key";
this.records_name = "knowledgebase";
this.record_name = "knowledgebase";
this.records_name = "faqs";
this.record_name = "faq";
this.record_title = L("fac_faq");
this.records_title = L("fac_faq_m");
this.module = "FAQ";
@@ -162,6 +162,7 @@ function model_fac_faq()
tables: [],
wheres: [
where_auth, where_lang,
"ROWNUM < " + S("faq_max_results"),
"fac_faq.fac_faq_datum < SYSDATE"
],
orderbys: [

View File

@@ -139,10 +139,7 @@ function model_fac_functie (functie_key, params)
this.groep_key = params.groep_key;
this.REST_DELETE = function (params, the_key) // we verwijderen niet het fac_functie record maar alle rechten er op.
{
var autparams = user.checkAutorisation(this.autfunction);
user.auth_required_or_abort(autparams.PRSwritelevel < 9 && autparams.ALGwritelevel < 9);
var sql = "DELETE fac_groeprechten"
var sql = "DELETE fac_groeprechten"
+ " WHERE fac_functie_key = " + the_key
+ " AND fac_groep_key = " + this.groep_key
+ " AND fac_functie_key NOT IN (SELECT fac_functie_key"

View File

@@ -171,28 +171,10 @@ function model_fac_gebruikersgroep(params)
this.hook_pre_edit = function(obj, fld)
{
var prs_arr = getQParamIntArray("prsarr", []);
if (prs_arr.length > 0)
{ // multiedit mode
// Sluit de groepen die alle gebruikers overeenkomstig hebben uit van de lijst.
// Als er maar 1 gebruiker geselecteerd is dan wordt de standaard where-clause gebruikt
// die wordt gegenereerd obv "field.uniquewith" in scaffolding_edit.inc.
prs_arr.push(obj.person.id);
fld.authorizationgroup.foreign.where = "fac_groep_key NOT IN"
+ "(SELECT fac_groep_key"
+ " FROM (SELECT fac_groep_key, COUNT(prs_perslid_key)"
+ " FROM fac_gebruikersgroep"
+ " WHERE prs_perslid_key IN (" + prs_arr.join(",") + ")"
+ " GROUP BY fac_groep_key"
+ " HAVING COUNT(prs_perslid_key) = " + prs_arr.length
+ " )"
+ ")";
}
if (obj.id > 0) { // Bestaand record
if (!fld._fromperson && obj.person)
{
fld.authorizationgroup.readonly = true;
fld.person.readonly = true;
delete this.fields._fromperson;
}
}

View File

@@ -56,10 +56,7 @@ function model_fac_groep(groep_key, params)
"substitutes": {
"dbs": "fac_groep_collega",
"label": L("lcl_prs_substitutes"),
"typ": "key",
"LOV": L("lcl_prs_substitutesLOV"),
"defaultvalue": "0",
"emptyoption": null
"typ": "check0"
},
"externalid": {
"dbs": "fac_groep_externid",
@@ -72,7 +69,7 @@ function model_fac_groep(groep_key, params)
"label": L("fac_groep_nn_leden"),
"typ": "number"
},
"created": {
"created": {
"dbs": "fac_groep_aanmaak",
"label": "Aanmaakdatum",
"typ": "datetime",

View File

@@ -18,10 +18,8 @@ function model_fac_nieuws_groep()
this.table = "fac_nieuws_groep";
this.primary = "fac_nieuws_groep_key";
this.autfunction = "WEB_MSGBOF";
this.record_name = "messagecategory";
this.records_name = "messagecategories";
this.record_title = L("fac_nieuws_groep");
this.records_title = L("fac_nieuws_groep_m");
this.record_name = L("fac_nieuws_groep");
this.records_name = L("fac_nieuws_groep_m");
this.fields = {
"id": {
"dbs": "fac_nieuws_groep_key",

View File

@@ -108,13 +108,11 @@ function model_fac_notificatie_job(params) // J voor Jobs, S voor Scheduled mail
"label": L("fac_notificatie_job_interval"),
"typ": "number"
},
/* Alleen sensor updates wat nooit is uitgekristalliseerd
"seconds": {
"dbs": "fac_notificatie_job_seconds",
"label": L("fac_notificatie_job_seconds"),
"typ": "number"
},
*/
"lastrun": {
"dbs": "fac_notificatie_job_lastrun",
"label": L("fac_notificatie_job_lastrun"),
@@ -126,14 +124,12 @@ function model_fac_notificatie_job(params) // J voor Jobs, S voor Scheduled mail
"label": L("fac_notificatie_job_nextrun"),
"typ": "datetime"
},
/* Alleen sensor updates wat nooit is uitgekristalliseerd
"queueid": {
"dbs": "fac_notificatie_job_queue",
"label": L("fac_notificatie_job_queue"),
"typ": "varchar",
"defaultvalue": "DEFAULT"
},
*/
"fac_usrrap_key": {
dbs: "fac_usrrap_key",
typ: "key",
@@ -180,7 +176,7 @@ function model_fac_notificatie_job(params) // J voor Jobs, S voor Scheduled mail
wheres: ["fac_notificatie_job_view IS NOT NULL"]
}
};
if (user.has("WEB_PRSSYS"))
{
this.REST_POST = generic_REST_POST(this);

View File

@@ -11,8 +11,8 @@
Notes:
*/
%>
<!-- #include file="../api2/model_prs_bedrijfadres_srtnoti.inc" -->
<%
function model_fac_srtnotificatie(cust)
{
this.records_name = "notificationtypes";
@@ -201,16 +201,6 @@ function model_fac_srtnotificatie(cust)
}
};
this.includes = {
"srtnotifications": {
"model": new model_prs_bedrijfadres_srtnoti(),
"joinfield": "srtnotification"
}
};
delete this.includes["srtnotifications"].model["REST_POST"];
delete this.includes["srtnotifications"].model["REST_PUT"];
delete this.includes["srtnotifications"].model["REST_DELETE"];
if (!S("puo_smsaccount"))
this.fields.notificationmode.bits[0].radios.splice(2, 1);

View File

@@ -33,7 +33,7 @@ function model_faq_kenmerk(params)
"typ": "key",
"seq": "faq_s_faq_kenmerk_key"
},
"facdiscipline": { // NULL betekent alle disciplines (denk ik)
"facdiscipline": {
"dbs": "faq_discipline_key",
"label": L("faq_discipline_key"),
"typ": "key",
@@ -49,7 +49,6 @@ function model_faq_kenmerk(params)
"dbs": "faq_kenmerk_volgnr",
"label": L("mgt_kenmerk_volgnummer"),
"typ": "number",
"len": 3,
"required": true
},
"name": {
@@ -84,7 +83,6 @@ function model_faq_kenmerk(params)
"label": L("mgt_kenmerk_verplicht"),
"typ": "key",
"LOV": buildVerplichtingList(),
"emptyisrealvalue": true,
"emptyoption": null
},
"group": {
@@ -95,13 +93,6 @@ function model_faq_kenmerk(params)
"LOV": buildGroepsverplichtingList(),
"emptyoption": null
},
"rolecode": {
"dbs": "faq_kenmerk_rolcode",
"label": L("mgt_kenmerk_rolcode"),
"typ": "number",
"LOV": buildKenmerkRoleCodeLOV({ module: "FAQ" }),
"required": true
},
"readonly": {
"dbs": "faq_kenmerk_toonbaar",
"label": L("mgt_kenmerk_toonbaar"),
@@ -163,9 +154,9 @@ function model_faq_kenmerk(params)
},
"code": {
"dbs": "faq_kenmerk_code",
"label": L("mgt_kenmerk_code"),
"label": L("lcl_faq_code"),
"typ": "varchar",
"readonly": !user.has("WEB_PRSSYS")
"readonly": !user.has("WEB_FACTAB")
},
"authorization": {
"dbs": "fac_functie_key",

View File

@@ -13,7 +13,7 @@
%>
<%
function model_fin_kenmerk(niveau, params)
function model_fin_kenmerk(params)
{
params = params || {};
this.records_name = "invoiceproperties";
@@ -21,9 +21,9 @@ function model_fin_kenmerk(niveau, params)
this.table = "fin_kenmerk";
this.primary = "fin_kenmerk_key";
this.soft_delete = "fin_kenmerk_verwijder";
this.autfunction = params.internal? false : "WEB_FINMGT";
this.record_title = L("fin_kenmerk") + " " + get_fin_type_name(niveau); // dit niveau lijkt niet te werken?
this.records_title = L("fin_kenmerk_m") + " " + get_fin_type_name(niveau);
this.autfunction = params.internal?false:"WEB_FINMGT";
this.record_title = L("fin_kenmerk");
this.records_title = L("fin_kenmerk_m");
this.module = "FIN";
this.fields = {
@@ -38,7 +38,6 @@ function model_fin_kenmerk(niveau, params)
"dbs": "fin_kenmerk_volgnr",
"label": L("mgt_kenmerk_volgnummer"),
"typ": "number",
"len": 3,
"required": true
},
"name": {
@@ -75,19 +74,11 @@ function model_fin_kenmerk(niveau, params)
"LOV": fill_fin_type_LOV(),
"emptyoption": null
},
"rolecode": { // heeft voor deze module nog geen werking
"dbs": "fin_kenmerk_rolcode",
"label": L("mgt_kenmerk_rolcode"),
"typ": "number",
"LOV": buildKenmerkRoleCodeLOV({ module: "FIN" }),
"required": true
},
"required": {
"dbs": "fin_kenmerk_verplicht",
"label": L("mgt_kenmerk_verplicht"),
"typ": "key",
"LOV": buildVerplichtingList(),
"emptyisrealvalue": true,
"emptyoption": null
},
"group": {
@@ -111,7 +102,6 @@ function model_fin_kenmerk(niveau, params)
{
"name": "",
"label": "",
"showasgroup": false,
"typ": "check",
"mask": 15,
"radios": [
@@ -190,9 +180,9 @@ function model_fin_kenmerk(niveau, params)
},
"code": {
"dbs": "fin_kenmerk_code",
"label": L("mgt_kenmerk_code"),
"label": L("lcl_fin_code"),
"typ": "varchar",
"readonly": !user.has("WEB_PRSSYS")
"readonly": !user.has("WEB_FACTAB")
},
"authorization": {
"dbs": "fac_functie_key",
@@ -223,11 +213,6 @@ function model_fin_kenmerk(niveau, params)
<%
}
var gparams = {"GET": {}};
if (niveau)
{
gparams.GET = { wheres: [ "fin_kenmerk.fin_kenmerk_type = " + safe.quoted_sql(niveau) ] };
}
this.REST_GET = generic_REST_GET(this);
this.REST_POST = generic_REST_POST(this);
@@ -239,16 +224,5 @@ function model_fin_kenmerk(niveau, params)
return "F;"+L("fin_invoice")
+ ";R;"+L("fin_invoicerows");
}
function get_fin_type_name(niveau)
{
var naam = "";
switch (niveau)
{
case "F": naam = L("fin_invoice"); break;
case "R": naam = L("fin_invoicerows"); break;
}
return naam;
}
}
%>

View File

@@ -12,7 +12,6 @@
*/
%>
<!-- #include file="../alg/alg.inc"-->
<!-- #include file="../Shared/discxalg3d.inc"-->
<!-- #include file="./model_cad_tekening.inc"-->
<!-- #include file="./model_alg_kenmerk.inc"-->
@@ -48,14 +47,9 @@ function model_floors() {
}
};
this.REST_GET = function _GET(params) {
var autfunction = ["WEB_ALGUSE", "WEB_ALGMAN"];
var urole = "fe"; // TODO: Moet echt niet ter zake doen
var autfunction = urole == "fe"? "WEB_ALGUSE" : "WEB_ALGMAN";
params.authparams = user.checkAutorisation(autfunction, null, null, true); // pessimistisch
if (params.filter.id)
{
var flr_key = params.filter.id;
var this_alg = alg.func_enabled(flr_key, "V");
user.auth_required_or_abort(this_alg.readman || this_alg.readuse);
}
var query = api2.sqlfields(params, this);
query.wheres.push("alg_verdieping_verwijder IS NULL");

View File

@@ -129,15 +129,14 @@ function model_generic(table, autfunction)
model.nrfields++;
var field = { dbs: oRs.Fields("column_name").Value,
label: oRs.Fields("column_name").Value,
typ: "varchar",
ora_type: oRs("data_type").Value
typ: "varchar"
};
var ora_type = oRs("data_type").Value;
var ora_length = oRs("data_length").Value;
var ora_precision = oRs("data_precision").Value;
var ora_scale = oRs("data_scale").Value;
switch (field.ora_type)
switch (ora_type)
{
case 'NUMBER':
field.typ = 'number';
@@ -208,15 +207,14 @@ function model_generic(table, autfunction)
case "CLOB":
case "LONG":
field.typ = 'memo';
field.istyp = 'memo';
break;
default: // als je hier komt is je view mogelijk niet valid of niet gecompileerd
abort_with_warning("Unknown Oracle type '{0}' for field '{1}.{2}'".format(field.ora_type, table, field.dbs));
abort_with_warning("Unknown Oracle type '{0}' for field '{1}.{2}'".format(ora_type, table, field.dbs));
}
var fld = oRs.Fields("column_name").Value;
if (fld == table.toLowerCase() + "_verwijder" || fld == 'ins_discipline_verwijder' || fld == 'res_srtartikel_og_verwijder' || fld == 'res_ruimte_opstel_verwijder')
if (fld == table.toLowerCase() + "_verwijder" || fld == 'ins_discipline_verwijder')
model.soft_delete = fld;
// Dan zien we hem ook nergens meer?
@@ -240,7 +238,7 @@ function model_generic(table, autfunction)
fld = "name";
hasName = true;
}
if (!hasName && field.ora_type != 'CLOB' && fld.match(/(_omschrijving|_oms|_remark)$/))
if (!hasName && fld.match(/(_omschrijving|_oms|_remark)$/))
{
fld = "name";
hasName = true;

View File

@@ -20,6 +20,11 @@ function model_ins_discipline(disc_key, params)
// E<>n model voor de buitenwereld
api2.merge_disc_params_model(this, _model_ins_discipline);
this.hook_pre_edit = function (obj, fld, params)
{
fld.costtype.foreign = mgt.pre_edit_kostensoort(obj);
}
this.hook_post_post = function (params, obj, key)
{
var org_disc_key = getQParamInt("id", -1);
@@ -83,7 +88,8 @@ _model_ins_discipline = // Internal only
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": "prs_kostensoort"
"foreign": "prs_kostensoort",
"LOVinit": ""
},
"colors": {
"dbs": "ins_discipline_color",

View File

@@ -6,8 +6,8 @@
Description: Vanuit CodeCharge gegenereerd model voor ins_kenmerk
Context: paramater: niveau=O: Object kenmerken (level: D=Discipline, G=Objectgroep, S=Objectsoort)
niveau=T: Taak kenmerken (level: T=Alle taken, C=Periodiek taken, E=Taakcategorie)
Context: Met parameter 'niveau' worden alleen de inspectiekenmerken getoond.
Zonder, alle niet-inspectie kenmerken.
Notes:
*/
@@ -17,8 +17,6 @@
function model_ins_kenmerk(niveau, params)
{
var isTaakKenmerk = (niveau == "T" || niveau == "E" || niveau == "C");
params = params || {};
this.records_name = "objectproperties";
this.record_name = "objectproperty";
@@ -26,8 +24,8 @@ function model_ins_kenmerk(niveau, params)
this.primary = "ins_kenmerk_key";
this.soft_delete = "ins_kenmerk_verwijder";
this.autfunction = params.internal?false:"WEB_INSMGT";
this.record_title = (isTaakKenmerk? L("ins_srtcontrole_kenmerk") : L("ins_kenmerk"));
this.records_title = (isTaakKenmerk? L("ins_srtcontrole_kenmerk_m") : L("ins_kenmerk_m"));
this.record_title = L("ins_kenmerk");
this.records_title = L("ins_kenmerk_m");
this.module = "INS";
this.defaultIcon = "fa-table-tree";
@@ -49,16 +47,12 @@ function model_ins_kenmerk(niveau, params)
"foreign": {
"tbl": "(SELECT ins_srtkenmerk_key"
+ " , ins_srtkenmerk_omschrijving"
+ (mode != "list"
? " || ' (' || ins_srtkenmerk_kenmerktype || ')'"
: "")
+ " oms"
+ " , ins_srtkenmerk_kenmerktype"
+ " FROM ins_srtkenmerk"
+ " WHERE ins_srtkenmerk_verwijder IS NULL"
+ " ORDER by ins_srtkenmerk_omschrijving ASC)",
"key": "ins_srtkenmerk_key",
"desc": "oms",
"desc": "ins_srtkenmerk_omschrijving",
"extravalue": "ins_srtkenmerk_kenmerktype"
},
"showtransit": true
@@ -105,53 +99,25 @@ function model_ins_kenmerk(niveau, params)
"showtransit": true,
"infoPointer": { Url: "appl/ins/ins_srtdeel.asp?srtdeel_key=" }
},
// "attributetypehide": { //het datatype van het kenmerksoort, zal-wel gekopieerd van CNT
// "dbs": "ins_srtkenmerk.ins_srtkenmerk_kenmerktype",
// "label": L("mgt_srtkenmerk_kenmerktype"),
// "typ": "varchar",
// "hidden_fld": true,
// "LOV": buildKenmerktypeLOV(),
// "showtransit": true
// },
"level": {
"dbs": "ins_kenmerk_niveau",
"label": L("mgt_kenmerk_niveau"),
"typ": "varchar",
"LOV": fill_ins_niveau_LOV(),
"defaultvalue": "T",
"showtransit": true,
"insertonly": true
},
"taskdiscipline": {
"dbs": "ctr_v_allsrtinstallatie.ins_discipline_key",
"label": L("ctr_discipline"),
"typ": "key",
"foreign": { "tbl": "ctr_v_aanwezigdiscipline",
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving",
"where": "ins_discipline_verwijder IS NULL"
},
"showtransit": true,
"insertonly": true,
"emptyoption": L("mgt_kenmerk_controle_all")
},
"task": {
"dbs": "ctr_v_allsrtinstallatie.ins_srtcontrole_key",
"label": L("ins_srtcontrole"),
"typ": "key",
"foreign": "ins_srtcontrole",
"foreignfiltercode": "PI",
"urlAdd": [{urlParam: "ctrdisc_key_arr", field: "taskdiscipline"}],
"showtransit": true,
"insertonly": true,
"emptyoption": " "
},
"objectkey": {
"dbs": "ins_srtinstallatie_key",
"label": L("lcl_ins_object"),
"typ": "key",
"hidden_fld": true,
"required": true
"required": true,
"foreign": {"tbl": "ins_srtcontrole",
"key": "ins_srtcontrole_key",
"desc": "ins_srtcontrole_omschrijving"
}
},
"level": {
"dbs": "ins_kenmerk_niveau",
"label": L("mgt_kenmerk_niveau"),
"typ": "varchar",
"hidden_fld": true,
"LOV": fill_ins_niveau_LOV(),
"defaultvalue": "C",
"showtransit": true
},
"editlevel": {
"dbs": "ins_kenmerk_bewerkniveau",
@@ -166,16 +132,13 @@ function model_ins_kenmerk(niveau, params)
"dbs": "ins_kenmerk_volgnummer",
"label": L("ins_kenmerk_volgnummer"),
"typ": "number",
"len": 3,
"required": true
},
"required": {
"dbs": "ins_kenmerk_verplicht",
"label": L("ins_kenmerk_verplicht"),
"typ": "key",
"LOV": buildVerplichtingList(),
"emptyisrealvalue": true,
"emptyoption": null,
"LOV": fill_verplicht_LOV(),
"listfunction": function(oRs) {
var val = oRs.Fields("required.name").Value;
if (val === null) {
@@ -183,6 +146,7 @@ function model_ins_kenmerk(niveau, params)
}
return val;
},
"emptyoption": L("lcl_mld_niet_verplicht"),
"multiedit": true
},
"requiredstatus": {
@@ -192,19 +156,12 @@ function model_ins_kenmerk(niveau, params)
"LOV": L("ins_kenmerk_requiredstatusLOV"),
"emptyoption": null
},
"rolecode": {
"dbs": "ins_kenmerk_rolcode",
"label": L("mgt_kenmerk_rolcode"),
"typ": "number",
"LOV": buildKenmerkRoleCodeLOV({ module: (isTaakKenmerk ? "CTR" : "INS") }),
"required": true
},
"group": {
"dbs": "ins_kenmerk_groep",
"label": L("mgt_kenmerk_groep"),
"label": L("ins_kenmerk_groep"),
"typ": "key",
"required": true,
"LOV": buildGroepsverplichtingList(),
"LOV": fill_groepsverplichting_LOV(),
"defaultvalue": "0",
"multiedit": true
},
@@ -217,32 +174,7 @@ function model_ins_kenmerk(niveau, params)
"inlist": {
"dbs": "ins_kenmerk_inlijst",
"label": L("mgt_kenmerk_systeem_overview"),
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"showasgroup": false,
"typ": "check",
"mask": 3,
"radios": [
{
"name": "listobj",
//"label": L("mgt_kenmerk_systeem_overview_obj") + " " + L("mgt_kenmerk_systeem_overview"),
"label": L("mgt_kenmerk_systeem_overview"),
"mask": 1,
"defaultvalue": 0
},
{
"name": "listmjob",
//"label": L("mgt_kenmerk_systeem_overview_mjob") + " " + L("mgt_kenmerk_systeem_overview"),
"label": L("mgt_kenmerk_systeem_overview_mjob"),
"mask": 2,
"defaultvalue": 0
}
]
}
],
"typ": "check0",
"multiedit": true
},
"measurement": {
@@ -260,6 +192,11 @@ function model_ins_kenmerk(niveau, params)
"emptyoption": null,
"multiedit": true
},
"location": {
"dbs": "ins_kenmerk_locatiekolom",
"label": L("ins_kenmerk_locatiekolom"),
"typ": "varchar"
},
"propertydefault": {
"dbs": "ins_kenmerk_default",
"label": L("mgt_kenmerk_default"),
@@ -284,9 +221,9 @@ function model_ins_kenmerk(niveau, params)
},
"code": {
"dbs": "ins_kenmerk_code",
"label": L("mgt_kenmerk_code"),
"label": L("lcl_ins_code"),
"typ": "varchar",
"readonly": !user.has("WEB_PRSSYS")
"readonly": !user.has("WEB_FACTAB")
},
"authorization": {
"dbs": "fac_functie_key",
@@ -323,57 +260,79 @@ function model_ins_kenmerk(niveau, params)
return result;
}
this.list = {
"columns": ["id",
"objectpropertydesc",
"objectpropertytype",
"sequence",
"required",
"group"
]
};
/*
this.search = {
"autosearch": true,
"filters": ["level",
"objectdiscipline",
"objectgroup",
"objecttype",
"objectpropertytype"
]
};
this.edit = { modal: true};
*/
// Server side code!
//
// Afhankelijk van niveau:
var gparams = { GET: { } };
if (isTaakKenmerk)
if (niveau == "C")
{
delete this.fields.objectdiscipline;
delete this.fields.objectgroup;
delete this.fields.objecttype;
delete this.fields.editlevel;
delete this.fields.measurement;
gparams.GET = {tables: ["ctr_v_allsrtinstallatie"],
wheres: [ "ins_kenmerk.ins_kenmerk_niveau IN ('T', 'E', 'C')" // E=Taakcategorie (discipline), C=Periodiek taak.
, "(ins_kenmerk.ins_srtinstallatie_key = ctr_v_allsrtinstallatie.ctr_srtinstallatie_key OR ins_kenmerk.ins_srtinstallatie_key IS NULL)"
, "ins_kenmerk.ins_kenmerk_niveau = ctr_v_allsrtinstallatie.niveau"
, "ins_kenmerk.ins_kenmerk_verwijder IS NULL"
]
};
this.fields.inlist.bits = [
{
"name": "",
"label": "",
"typ": "check",
"mask": 1,
"radios": [
{
"name": "listctr",
"label": L("mgt_kenmerk_systeem_overview_ctr"),
"mask": 1,
"defaultvalue": 0
}
]
}
]
delete this.fields.objectdiscipline;
delete this.fields.objectgroup;
delete this.fields.objecttype;
delete this.fields.editlevel;
delete this.fields.measurement;
this.fields.objectkey.label = L("ins_srtcontrole");
this.record_title = L("ins_srtcontrole_kenmerk");
this.records_title = L("ins_srtcontrole_kenmerk_m");
gparams.GET = {wheres: [ "ins_kenmerk.ins_kenmerk_niveau = " + safe.quoted_sql(niveau)
, "ins_kenmerk.ins_kenmerk_verwijder IS NULL"
]
};
}
else
{ //kenmerk_niveau: D | G | S
delete this.fields.requiredstatus;
delete this.fields.taskdiscipline;
delete this.fields.task;
gparams.GET = {tables: ["ins_v_allsrtinstallatie"],
wheres: [ "ins_kenmerk.ins_kenmerk_niveau IN ('D', 'G', 'S')",
"ins_kenmerk.ins_srtinstallatie_key = ins_v_allsrtinstallatie.ins_srtinstallatie_key",
"ins_kenmerk.ins_kenmerk_niveau = ins_v_allsrtinstallatie.niveau"
]
};
delete this.fields.requiredstatus;
this.record_title = L("ins_kenmerk");
this.records_title = L("ins_kenmerk_m");
gparams.GET = {tables: ["ins_v_allsrtinstallatie"],
wheres: [ "ins_kenmerk.ins_kenmerk_niveau <> 'C'",
"ins_kenmerk.ins_srtinstallatie_key = ins_v_allsrtinstallatie.ins_srtinstallatie_key",
"ins_kenmerk.ins_kenmerk_niveau = ins_v_allsrtinstallatie.niveau"
]
};
}
function fill_verplicht_LOV()
{ // Listbox verplicht vullen. Bij het veld is de emptyoption gezet.
// Hierdoor is er altijd een waarde geselecteerd.
return "1;" + L("lcl_mld_altijd_verplicht")
+ ";2;" + L("lcl_mld_groepsverplichting");
}
function fill_groepsverplichting_LOV()
{ // Listbox groepsverplichting vullen.
var groep_array = ["0", "<"+L("lcl_none")+">"];
for (i=1; i<=9; i++)
{
groep_array.push(i)
groep_array.push(L("ins_kenmerk_groep")+" "+i);
}
return groep_array.join(";");
}
this.REST_GET = generic_REST_GET(this, gparams);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
@@ -382,42 +341,10 @@ function model_ins_kenmerk(niveau, params)
function fill_ins_niveau_LOV()
{
return "T;" + L("mgt_kenmerk_controle_all")
+ ";E;" + L("mgt_kenmerk_ctrdiscipline")
+ ";C;" + L("mgt_kenmerk_srtcontrole")
+ ";D;" + L("mgt_srtkenmerk_discipline")
+ ";G;" + L("mgt_srtkenmerk_srtgroep")
+ ";S;" + L("mgt_srtkenmerk_srtdeel")
+ ";O;" + "Objecten";
return "D;"+L("mgt_srtkenmerk_discipline")
+ ";G;"+L("mgt_srtkenmerk_srtgroep")
+ ";S;"+L("mgt_srtkenmerk_srtdeel");
}
this.hook_pre_edit = function (obj, fld)
{
fld.propertydefault.label = this_model.get_objectpropertytype_srttype(obj).lbl_default;
fld.readonly.label = this_model.get_objectpropertytype_srttype(obj).lbl_readonly;
if (!obj.level.name)
{
if (obj.level.id == "O")
obj.level.name = L("lcl_ins_objects");
else if (obj.level.id == "T")
obj.level.name = L("ins_srtcontrole_m");
else
obj.level.name = obj.level.id;
}
%>
<script>
var srtinstallatieselector_available = 1; // toon alleen actuele disciplines/groepen en objecten.
</script>
<%
}
this.hook_pre_search = function(fld)
{
%>
<script>
var srtinstallatieselector_available = 1; // toon alleen actuele disciplines/groepen en objecten.
</script>
<%
}
}
%>

View File

@@ -284,7 +284,6 @@ function model_ins_srtcontrole()
"dbs": "ins_srtcontrole_options",
"label": L("ins_srtcontrole_options"),
"typ": "number",
"multiedit": true,
"bits": [
{
"name": "",
@@ -339,18 +338,14 @@ function model_ins_srtcontrole()
}
};
// Met BAUS#80301 is er een eigen menuitem gekomen waarmee de taakkenmerken aangemaakt kunnen worden op dezelfde manier als bij andere kenmerken.
// Taakkenmerken kunnen dan ook aangemaakt worden die voor alle taken gelden of voor een taakcategorie (ctrdiscipline).
// Het tabje "Taakkenmerken bij een taak heb je dan niet meer nodig en is daarom hieronder uitgecommentariseerd.
//
//// Kenmerk *definities* als include is vrij uitzonderlijk
//this.includes = {
// "custom_properties": {
// "model": new model_ins_kenmerk("C", { internal: true }),
// "joinfield": "objectkey",
// "enable_update": true
// }
//};
// Kenmerk *definities* als include is vrij uitzonderlijk
this.includes = {
"custom_properties": {
"model": new model_ins_kenmerk("C", { internal: true }),
"joinfield": "objectkey",
"enable_update": true
}
};
this.REST_GET = generic_REST_GET(this, {
"GET": {

View File

@@ -31,9 +31,23 @@ function model_ins_srtdeel()
"label": L("lcl_key"),
"typ": "key",
"required": true,
"seq": "ins_s_ins_srtinst_keys",
"seq": "ins_s_ins_srtdeel_key",
"defaultvalue": null
},
"objectdiscipline": {
"dbs": "ins_discipline_key",
"label": L("lcl_discipline"),
"typ": "key",
"foreign": {
"tbl": "ins_v_aanwezigdiscipline",
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving"
},
"LOVinit": "",
"defaultvalue": null,
"showtransit": true,
"onchange": "onChangeDiscipline()"
},
"objectgroup": {
"dbs": "ins_srtgroep_key",
"label": L("lcl_obj_group"),
@@ -42,7 +56,7 @@ function model_ins_srtdeel()
"insertonly": true,
"foreign": {
"tbl": "ins_v_aanwezigsrtgroep",
"key": "ins_srtgroep_key",
"key": "inssrtgroep_key",
"desc": "ins_srtgroep_omschrijving"
},
"LOVinit": "",

View File

@@ -97,8 +97,8 @@ function model_ins_srtkenmerk(params)
"code": {
"dbs": "ins_srtkenmerk_code",
"typ": "varchar",
"label": L("mgt_srtkenmerk_code"),
"readonly": !user.has("WEB_PRSSYS")
"label": L("lcl_ins_code"),
"readonly": !user.has("WEB_FACTAB")
}
};

View File

@@ -50,8 +50,7 @@ function model_ins_tab_discipline(disc_key, params)
"foreign" : {
"tbl": "ins_srtdiscipline",
"key": "ins_srtdiscipline_key",
"desc": "ins_srtdiscipline_omschrijving",
"where": "ins_srtdiscipline_verwijder IS NULL"
"desc": "ins_srtdiscipline_omschrijving"
}
},
"scope": {
@@ -79,7 +78,8 @@ function model_ins_tab_discipline(disc_key, params)
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": "prs_kostensoort"
"foreign": "prs_kostensoort",
"LOVinit": ""
},
"costcentremandatory": {
"dbs": "ins_discipline_kpnverplicht",

View File

@@ -15,105 +15,77 @@
%>
<!-- #include file="../Shared/discxalg3d.inc"-->
<!-- #include file="../fin/fin.inc" -->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="./model_fac_tracking.inc"-->
<!-- #include file="./model_fin_kenmerk.inc"-->
<%
function model_invoicelines()
model_invoicelines =
{
this.module = "FIN";
this.table = "fin_factuurregel";
this.primary = "fin_factuurregel_key";
this.records_name = "invoicelines";
this.record_name = "invoiceline";
this.fields = { "id" : { dbs: "fin_factuurregel_key", typ: "key" },
"name" : { dbs: "fin_factuurregel_omschrijving", typ: "varchar", track: true, label: L("lcl_descr"), filter: "like" },
"line" : { dbs: "fin_factuurregel_nr", typ: "number" },
"total" : { dbs: "fin_factuurregel_totaal", typ: "float", iscurrency: true, track: true, label: L("lcl_fin_total_sum_exBTW") },
"vat" : { dbs: "fin_factuurregel_btw", typ: "float", iscurrency: true, track: true, label: L("lcl_fin_total_sum_inBTW") },
"reference" : { dbs: "fin_factuurregel_referentie", typ: "varchar", track: true, label: L("lcl_fin_referencecode"), filter: "like" },
"vatvalue" : { dbs: "fin_btwtabelwaarde_key", typ: "key", foreign: "fin_btwtabelwaarde", track: true, label: L("lcl_fin_btwtarief")},
"costtype" : { dbs: "prs_kostensoort_key", typ: "key", foreign: "prs_kostensoort", track: true, label: L("lcl_shared_charge_type") },
"invoice" : { dbs: "fin_factuur_key", typ: "key", foreign: "fin_factuur", insertonly: true },
"code" : { dbs: "fin_factuurregel_code", typ: "varchar", track: true, label: L("lcl_fin_article_code") },
"amount" : { dbs: "fin_factuurregel_aantal", typ: "float", track: true, label: L("lcl_fin_amount") },
"unit" : { dbs: "fin_factuurregel_eenheid", typ: "varchar", track: true, label: L("lcl_fin_unit") },
"orderlineid" : { dbs: "fin_factuurregel_id", typ: "number", track: true, label: L("lcl_fin_orderline_id") }
};
module: "FIN",
table: "fin_factuurregel",
primary: "fin_factuurregel_key",
records_name: "invoicelines",
record_name: "invoiceline",
fields: { "id" : { dbs: "fin_factuurregel_key", typ: "key" },
"name" : { dbs: "fin_factuurregel_omschrijving", typ: "varchar", track: true, label: L("lcl_descr"), filter: "like" },
"line" : { dbs: "fin_factuurregel_nr", typ: "number" },
"total" : { dbs: "fin_factuurregel_totaal", typ: "float", "iscurrency": true, track: true, label: L("lcl_fin_total_sum_exBTW") },
"vat" : { dbs: "fin_factuurregel_btw", typ: "float", "iscurrency": true, track: true, label: L("lcl_fin_total_sum_inBTW") },
"reference": { dbs: "fin_factuurregel_referentie", typ: "varchar", track: true, label: L("lcl_fin_referencecode"), filter: "like" },
"vatvalue" : { dbs: "fin_btwtabelwaarde_key", typ: "key", foreign: "fin_btwtabelwaarde", track: true, label: L("lcl_fin_btwtarief")},
"costtype" : { dbs: "prs_kostensoort_key", typ: "key", foreign: "prs_kostensoort", track: true, label: L("lcl_shared_charge_type") },
"fin_factuur_key": { dbs: "fin_factuur_key", typ: "key" }
},
this.includes = {
"custom_fields" : {
model: new model_custom_fields(this, new model_fin_kenmerk("R", { internal: true }), { pNiveau: "R", readman: true, readuse: true }),
joinfield: "flexparentkey",
enable_update: true
},
"tracking": {
model: new model_tracking(["factuur"]),
joinfield: "trackingrefkey"
}
};
function _pre_analyze_fields(params, jsondata) /* analyseer inkomende jsondata, common voor PUT en POST */
_pre_analyze_fields: function (params, jsondata) /* analyseer inkomende jsondata, common voor PUT en POST */
{
delete jsondata.line; // factuurregelnummer niet door de gebruiker laten zetten.
};
},
function _analyze_fields(dbfields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
_analyze_fields: function (dbfields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
{
};
},
function _validate_fields(dbfields, params, jsondata) /* valideer dbfields, alle constraints die niet door de database worden afgevangen */
_validate_fields: function (dbfields, params, jsondata) /* valideer dbfields, alle constraints die niet door de database worden afgevangen */
{
//__Log(jsondata);
//var factuurregel_key = parseInt(jsondata.id);
};
},
function _synchronize_totals_sql(factuur_key)
_synchronize_totals_sql: function (factuur_key)
{
// Redundante info bijwerken. Door dat hier te doen hebben we redelijk consistentie-garantie.
var sql = " UPDATE fin_factuur ff"
+ " SET fin_factuur_totaal = (SELECT SUM(fin_factuurregel_totaal)"
+ " FROM fin_factuurregel fr"
+ " WHERE fr.fin_factuur_key = ff.fin_factuur_key)"
+ " FROM fin_factuurregel fr"
+ " WHERE fr.fin_factuur_key = ff.fin_factuur_key)"
+ " , fin_factuur_totaal_btw = (SELECT SUM(fin_factuurregel_btw)"
+ " FROM fin_factuurregel fr"
+ " WHERE fr.fin_factuur_key = ff.fin_factuur_key)"
+ " FROM fin_factuurregel fr"
+ " WHERE fr.fin_factuur_key = ff.fin_factuur_key)"
+ " WHERE fin_factuur_key = " + factuur_key;
return sql;
};
},
function _renumber_invoicelines_sql(factuur_key)
_renumber_invoicelines_sql: function (factuur_key)
{
// Regels hernummeren zodat ze weer opeenvolgend zijn.
var sql = "UPDATE fin_factuurregel"
+ " SET fin_factuurregel_nr = ROWNUM"
+ " WHERE fin_factuur_key = " + factuur_key;
return sql;
};
},
this.REST_GET = function _GET(params)
REST_GET: function _GET(params)
{
var scope = params.filter.scope;
if (scope)
{
var autfunction = { fe: "WEB_EXTFIN", fo: "WEB_FINFOF", bo: "WEB_FINBOF" } [scope];
}
else
{
var autfunction = ["WEB_EXTFIN", "WEB_FINFOF", "WEB_FINBOF"];
var authparamsFINFOF = user.checkAutorisation("WEB_FINFOF", true);
var authparamsFINBOF = user.checkAutorisation("WEB_FINBOF", true);
}
var scope = params.filter.scope || "fe";
var autfunction = { fe: "WEB_EXTFIN", fo: "WEB_FINFOF", bo: "WEB_FINBOF" } [scope];
params.authparams = user.checkAutorisation(autfunction, null, null, true); // pessimistisch
var query = api2.sqlfields(params, this);
var query = api2.sqlfields(params, model_invoicelines );
var parentexists = ["f.fin_factuur_verwijder IS NULL"];
if (scope == "fe" || (!scope && !authparamsFINFOF && !authparamsFINBOF))
{ // Frontend.
parentexists.push("f.prs_perslid_key_user=" + user_key);
if (scope == "fe")
{
parentexists.push("f.prs_perslid_key_user=" + user_key);
}
else
{
@@ -129,25 +101,25 @@ function model_invoicelines()
query.wheres.push(sqlparent);
}
var wheres = api2.sqlfilter(params, this);
var wheres = api2.sqlfilter(params, model_invoicelines);
query.wheres = query.wheres.concat(wheres);
var sql = "SELECT " + query.selects.join(", ")
+ " FROM " + query.tables.join(", ")
+ " WHERE " + query.wheres.join(" AND " )
+ " ORDER BY fin_factuurregel_nr";
var json = api2.sql2json (params, sql, this);
var json = api2.sql2json (params, sql, model_invoicelines );
return json;
};
},
this.REST_PUT = function (params, jsondata, the_key) /* update invoiceline */
REST_PUT: function (params, jsondata, the_key) /* update invoiceline */
{
var finregel_key = the_key;
_pre_analyze_fields(params, jsondata);
var dbfields = api2.update_fields(params, this, jsondata); // Build updater
_analyze_fields(dbfields, params, jsondata);
_validate_fields(dbfields, params, jsondata);
model_invoicelines._pre_analyze_fields(params, jsondata);
var dbfields = api2.update_fields(params, model_invoicelines, jsondata); // Build updater
model_invoicelines._analyze_fields(dbfields, params, jsondata);
model_invoicelines._validate_fields(dbfields, params, jsondata);
//
var sql = "SELECT fin_factuur_key"
+ " FROM fin_factuurregel"
@@ -156,7 +128,6 @@ function model_invoicelines()
var fin_factuur_key = oRs("fin_factuur_key").value;
oRs.Close();
var fin_factuur_old = fin.factuur_info(fin_factuur_key);
var this_fin = fin.func_enabled_factuur(fin_factuur_key);
user.auth_required_or_abort(this_fin.canChange); // Geen wijzigingen toestaan bij onvoldoende rechten.
@@ -165,44 +136,21 @@ function model_invoicelines()
var sql = "BEGIN "
+ finUpd.sql + ";"
+ _synchronize_totals_sql(fin_factuur_key) + ";"
+ model_invoicelines._synchronize_totals_sql(fin_factuur_key) + ";"
+ "END;";
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
var finUpdTrackarray = []; // Alle tracking van elke afzondelijke regel verzamelen.
if (finUpd.trackarray.length > 0)
{
if (jsondata.name != "")
finUpdTrackarray = finUpdTrackarray.concat([jsondata.name + ": "]); // Omschrijving van de regel noteren zodat ik weet welke regel is aangepast.
finUpdTrackarray = finUpdTrackarray.concat(finUpd.trackarray);
}
var fin_factuur_new = fin.factuur_info(fin_factuur_key);
if (fin_factuur_old.fin_totaal != fin_factuur_new.fin_totaal)
finUpdTrackarray.push(L("lcl_fin_total_sum_inBTW") + ": " + safe.curr(fin_factuur_old.fin_totaal + fin_factuur_old.fin_totaal_btw) + " => " + safe.curr(fin_factuur_new.fin_totaal + fin_factuur_new.fin_totaal_btw))
if (fin_factuur_old.fin_totaal_btw != fin_factuur_new.fin_totaal_btw)
finUpdTrackarray.push(L("lcl_fin_BTW_total_sum") + ": " + safe.curr(fin_factuur_old.fin_totaal_btw) + " => " + safe.curr(fin_factuur_new.fin_totaal_btw))
var fintrack = api2.process_includes(params, this, jsondata, the_key);
// update nog tracken
if (fin_factuur_key > 0)
{
fin.trackfactuurupdate(fin_factuur_key, L("lcl_fin_is_finupdtrack").format(fin_factuur_key) + ((finUpdTrackarray.length + fintrack.length) > 0? "\n" : "") + finUpdTrackarray.concat(fintrack).join("\n"));
};
return { key: finregel_key };
};
},
this.REST_POST = function (params, jsondata) /* new invoiceline */
REST_POST: function (params, jsondata, parent_key) /* new invoiceline */
{
params.isNew = true;
var trackarray = [];
var factuur_key = (typeof jsondata.invoice == "object" ? jsondata.invoice.id : jsondata.invoice);
var factuur_key = (parent_key && parent_key > -1 ? parent_key : jsondata.invoice);
var this_fin = fin.func_enabled_factuur(factuur_key); // Wat heb ik zoal aan rechten op deze specifieke factuur
var auth = ( (params.filter && params.filter.api2 && params.filter.api2 == "invoices"
&& params.include && inArray("invoicelines",params.include)
@@ -212,10 +160,10 @@ function model_invoicelines()
);
user.auth_required_or_abort(auth);
_pre_analyze_fields(params, jsondata);
var dbfields = api2.update_fields(params, this, jsondata); // Build updater
_analyze_fields(dbfields, params, jsondata);
_validate_fields(dbfields, params, jsondata);
model_invoicelines._pre_analyze_fields(params, jsondata);
var dbfields = api2.update_fields(params, model_invoicelines, jsondata); // Build updater
model_invoicelines._analyze_fields(dbfields, params, jsondata);
model_invoicelines._validate_fields(dbfields, params, jsondata);
// Zet volgnummer van de nieuwe factuurregel.
var sql = "SELECT COALESCE(MAX(fin_factuurregel_nr),0) volgnr"
@@ -237,22 +185,20 @@ function model_invoicelines()
var sql = "BEGIN "
+ finIns.sql + ";"
+ _synchronize_totals_sql(factuur_key) + ";"
+ model_invoicelines._synchronize_totals_sql(factuur_key) + ";"
+ "END;";
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
var fintrack = api2.process_includes(params, this, jsondata, factuurregel_key);
// Tracking toevoegen.
trackarray.push(L("lcl_fin_invoicerow_add") + ": " + safe.quoted_sql(jsondata.name) + "/" + jsondata.total);
shared.trackaction("FINNEW", factuur_key, trackarray.join("\n"));
//
return { key: factuurregel_key };
};
},
this.REST_DELETE = function (params, the_key) /* delete invoiceline */
REST_DELETE: function (params, the_key) /* delete invoiceline */
{
var trackarray = [];
var factuurregel_key = the_key;
@@ -275,8 +221,8 @@ function model_invoicelines()
fin.deleteFactuurregel(factuurregel_key);
var sql = "BEGIN "
+ _synchronize_totals_sql(factuur_key) + ";"
+ _renumber_invoicelines_sql(factuur_key) + ";"
+ model_invoicelines._synchronize_totals_sql(factuur_key) + ";"
+ model_invoicelines._renumber_invoicelines_sql(factuur_key) + ";"
+ "END;"
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
@@ -286,6 +232,6 @@ function model_invoicelines()
trackarray.push(L("lcl_fin_regel_del") + ": " + safe.quoted_sql(desc) + "/" + total);
//shared.trackaction("FINDEL", factuur_key, trackarray.join("\n")); // srtnotificatie FINDEL bestaat (nog) niet
}
};
}
}
%>

View File

@@ -36,50 +36,42 @@ function model_invoices(fin_key, params)
this.primary = "fin_factuur_key";
this.records_name = "invoices";
this.record_name = "invoice";
this.soft_delete = "fin_factuur_verwijder";
// Het interne factuurnr is de id, het externe nummer is name
this.fields =
{"id" : { dbs: "fin_factuur_key", typ: "key" },
"invoicedate" : { dbs: "fin_factuur_datum", typ: "datetime", track: true, label: L("lcl_fin_findate"), filter: "range" },
/*readonly*/ "creditor" : { dbs: "prs_bedrijf_key", typ: "key", foreign: "prs_bedrijf", track: true, label: L("lcl_ord_company_uit"),
{"id" : { dbs: "fin_factuur_key", typ: "key" },
"invoicedate" : { dbs: "fin_factuur_datum", typ: "datetime", track: true, label: L("lcl_fin_findate"), filter: "range" },
/*readonly*/ "creditor" : { dbs: "prs_bedrijf_key", typ: "key", foreign: "prs_bedrijf", track: true, label: L("lcl_ord_company_uit"),
sql: "COALESCE(mld_opdr.mld_uitvoerende_keys, bes_bestelopdr.prs_bedrijf_key, cnt_contract.cnt_prs_bedrijf_key)" },
/*readonly*/ "referencetype" : { dbs: "dummy", typ: "varchar",
/*readonly*/ "referencetype" : { dbs: "dummy", typ: "varchar",
sql: "DECODE(fin_factuur.mld_opdr_key, NULL, DECODE(fin_factuur.bes_bestelopdr_key, NULL, DECODE(fin_factuur.cnt_contract_key, NULL, '?', 'C'), 'B'), 'O')" },
/*readonly*/ "accountholder" : { dbs: "prs_perslid_key", typ: "key", foreign: "prs_perslid", track: true, label: L("lcl_prs_budgethouder"),
/*readonly*/ "accountholder" : { dbs: "prs_perslid_key", typ: "key", foreign: "prs_perslid", track: true, label: L("lcl_prs_budgethouder"),
sql: "fin.getfiatteur(fin_factuur.fin_factuur_key)" },
"name" : { dbs: "fin_factuur_nr", typ: "varchar", track: true, label: L("lcl_fin_invoice_nr_extern") },
"order" : { dbs: "mld_opdr_key", typ: "key", foreign: "mld_opdr"},
"contract" : { dbs: "cnt_contract_key", typ: "key", foreign: "cnt_contract"},
"purchaseorder" : { dbs: "bes_bestelopdr_key", typ: "key", foreign: "bes_bestelopdr"},
"total" : { dbs: "fin_factuur_totaal", typ: "float", iscurrency: true, track: true, label: L("lcl_fin_totaal_bedrag") },
"vat" : { dbs: "fin_factuur_totaal_btw", typ: "float", iscurrency: true, track: true, label: L("lcl_fin_totaal_bedrag_btw") },
"blockedaccount" : { dbs: "fin_factuur_gbedrag", typ: "float", iscurrency: true, track: true, label: L("lcl_fin_gbedrag") },
"status" : { dbs: "fin_factuur_statuses_key", typ: "key", foreign: fin.getfinstatustext, track: true, label: L("lcl_fin_fin_status")},
"accountingperiod": { dbs: "fin_factuur_boekmaand", typ: "varchar", track: true, label: L("lcl_fin_divide_period"), multiedit: true },
"debiteur_nr" : { dbs: "fin_factuur_debiteur_nr", typ: "varchar", track: true, label: L("lcl_fin_debtor_nr"), filter: "like", multiedit: true },
"costtype" : { dbs: "prs_kostensoort_key", typ: "key", foreign: "prs_kostensoort", track: true, label: L("lcl_shared_charge_type"), multiedit: true },
"contact" : { dbs: "prs_perslid_key_user", typ: "key", foreign: "prs_perslid", track: true, label: L("lcl_mld_name"), multiedit: true },
"validater" : { dbs: "prs_perslid_key_goedkeur", typ: "number", foreign: "prs_perslid", track: true, label: L("lcl_fin_goedkeurder") },
"source" : { dbs: "fin_factuur_bron", typ: "number", track: true, label: L("lcl_fin_invoice_source") },
"advice" : { dbs: "fin_factuur_advies", typ: "date", track: true, label: L("lcl_fin_adviesdatum") },
"flag" : { dbs: "fin_factuur_flag", typ: "number", track: true, label: L("lcl_fin_flags") },
"contractplace" : { dbs: "cnt_contract_plaats_key", typ: "number", track: true, label: L("lcl_fin_location_scope") },
"remark" : { dbs: "fin_factuur_opmerking", typ: "varchar", track: true, label: L("lcl_fin_remark"), filter: "like" },
"remarkreject" : { dbs: "fin_factuur_opmerking_afw", typ: "varchar", track: true, label: L("lcl_fin_remark_reject"), filter: "like" },
"externnr" : { dbs: "fin_factuur_externnr", typ: "varchar", label: L("extern_nr"), readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) },
"externsyncdate" : { dbs: "fin_factuur_externsyncdate", typ: "datetime", label: L("extern_syncdate"), readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) },
"contractplace" : { dbs: "bes_bestellevr_key", typ: "number", track: true, label: L("lcl_bes_bestellevr_pakbon") }
"name" : { dbs: "fin_factuur_nr", typ: "varchar", track: true, label: L("lcl_fin_invoice_nr_extern") },
"order" : { dbs: "mld_opdr_key", typ: "key", foreign: "mld_opdr"},
"contract" : { dbs: "cnt_contract_key", typ: "key", foreign: "cnt_contract"},
"purchaseorder" : { dbs: "bes_bestelopdr_key", typ: "key", foreign: "bes_bestelopdr"},
"total" : { dbs: "fin_factuur_totaal", typ: "float", "iscurrency": true, track: true, label: L("lcl_fin_totaal_bedrag") },
"vat" : { dbs: "fin_factuur_totaal_btw", typ: "float", "iscurrency": true, track: true, label: L("lcl_fin_totaal_bedrag_btw") },
"finstatus" : { dbs: "fin_factuur_statuses_key", typ: "key", foreign: fin.getfinstatustext, track: true, label: L("lcl_fin_fin_status")},
"accountingperiod": { dbs: "fin_factuur_boekmaand", multiedit: true, typ: "varchar", track: true, label: L("lcl_fin_divide_period") },
"debiteur_nr" : { dbs: "fin_factuur_debiteur_nr", multiedit: true, typ: "varchar", track: true, label: L("lcl_fin_debtor_nr"), filter: "like" },
"costtype" : { dbs: "prs_kostensoort_key", multiedit: true, typ: "key", foreign: "prs_kostensoort", track: true, label: L("lcl_shared_charge_type") },
"contact" : { dbs: "prs_perslid_key_user", multiedit: true, typ: "key", foreign: "prs_perslid", track: true, label: L("lcl_mld_name") },
"validater" : { dbs: "prs_perslid_key_goedkeur", typ: "key", foreign: "prs_perslid", track: true, label: L("lcl_fin_goedkeurder") },
"remark" : { dbs: "fin_factuur_opmerking", typ: "varchar", track: true, label: L("lcl_fin_remark"), filter: "like" },
"externnr" : { dbs: "fin_factuur_externnr", typ: "varchar", label: L("extern_nr"), readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) },
"externsyncdate" : { dbs: "fin_factuur_externsyncdate", typ: "datetime", label: L("extern_syncdate"), readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) }
};
this.includes = {
"invoicelines": {
model: new model_invoicelines(),
joinfield: "invoice",
model: model_invoicelines,
joinfield: "fin_factuur_key",
enable_update: true
},
"custom_fields" : {
model: new model_custom_fields(this, new model_fin_kenmerk("F", { internal: true }), { pNiveau: "F", readman: true, readuse: true }),
model: new model_custom_fields(this, new model_fin_kenmerk({ internal: true }), { readman: true, readuse: true }),
joinfield: "flexparentkey",
enable_update: true
},
@@ -89,28 +81,23 @@ function model_invoices(fin_key, params)
}
};
function _pre_analyze_fields(params, jsondata) /* analyseer inkomende jsondata, common voor PUT en POST */
function _pre_analyze_fields (params, jsondata) /* analyseer inkomende jsondata, common voor PUT en POST */
{
// De factuurbedragen worden berekend uit de factuurregels. Eventuele waarden die hier gezet zijn negeren.
if (params.method != "POST")
{
delete jsondata.total;
delete jsondata.vat;
}
jsondata.total = 0;
jsondata.vat = 0;
if (jsondata.status)
{ // Er is een status meegegeven.
jsondata.status = typeof jsondata.status == "object"? jsondata.status.id : jsondata.status;
}
// Status van 3 (foute import) moet bij saven op 2 worden gezet.
var fin_status_key = jsondata.status;
if (fin_status_key == 3) fin_status_key = 2;
// Status 6 (Akkoord) moet bij saven op 2 (Ingevoerd) worden gezet. Factuur dient indien nodig weer gefiatteerd te worden.
if (jsondata.status == 3 || jsondata.status == 6)
{
jsondata.status = 2;
}
if (fin_status_key == 6) fin_status_key = 2;
jsondata.status = fin_status_key;
};
function _analyze_fields(dbfields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
function _analyze_fields (dbfields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
{
if (jsondata.purchaseorder_name && !dbfields.purchaseorder)
{
@@ -132,7 +119,7 @@ function model_invoices(fin_key, params)
}
};
function _validate_fields(dbfields, params, jsondata) /* valideer fields, alle constraints die niet door de database worden afgevangen */
function _validate_fields (dbfields, params, jsondata) /* valideer fields, alle constraints die niet door de database worden afgevangen */
{
};
@@ -179,138 +166,26 @@ function model_invoices(fin_key, params)
{
var fin_key = the_key;
var this_fin = fin.func_enabled_factuur(fin_key);
user.auth_required_or_abort(this_fin.canChange); // Geen wijzigingen toestaan bij onvoldoende rechten.
//
_pre_analyze_fields(params, jsondata);
var dbfields = api2.update_fields(params, this, jsondata); // Build updater
_analyze_fields(dbfields, params, jsondata);
_validate_fields(dbfields, params, jsondata);
//
var wheres = [" fin_factuur_key = " + fin_key];
var finUpd = buildTrackingUpdate("fin_factuur", wheres.join(" AND " ), dbfields, { noValidateToken: true });
var err = Oracle.Execute(finUpd.sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
//if ("filter" in params && "mode" in params.filter)
// this_fin.canFlexChange = this_fin.canReadAny && params.filter.mode == "attachment"; // Deze mag altijd
// Geen wijzigingen toestaan bij onvoldoende rechten.
user.auth_required_or_abort(this_fin.canChange ||
(this_fin.canReject && jsondata.status == 1) || // Afwijzen.
((this_fin.canUnReject || this_fin.canUnapprove) && jsondata.status == 2) || // On-Afwijzen, On-Fiatteren of On-Goedkeuren.
(this_fin.canAccept && jsondata.status == 5) || // Fiatteren.
(this_fin.canGoedkeur && jsondata.status == 6)) // Goedkeuren.
var fintrack = api2.process_includes(params, this, jsondata, the_key);
if (jsondata.status == 1 && this_mld.canReject)
{ // Afwijzen.
var fields = [ { dbs: "fin_factuur_opmerking_afw", typ: "varchar", val: jsondata.remark, track: L("lcl_fin_remark_reject"), len: 4000} ];
var finUpd = buildTrackingUpdate("fin_factuur", "fin_factuur_key = " + fin_key, fields);
oRs = Oracle.Execute(finUpd.sql);
if (finUpd.trackarray.length)
{
fin.trackfactuurupdate(fin_key, L("lcl_fin_is_finupdtrack").format(fin_key) + "\n" + finUpd.trackarray.join("\n"));
}
// Status naar Afgewezen(1).
var sql = "UPDATE fin_factuur"
+ " SET fin_factuur_statuses_key = 1"
+ " WHERE fin_factuur_key = " + fin_key
+ " AND (mld_opdr_key IS NOT NULL OR cnt_contract_key IS NOT NULL OR bes_bestelopdr_key IS NOT NULL)";
Oracle.Execute(sql);
shared.trackaction(this_fin.canAccept? "FINFNO" : "FINGNO", fin_key);
var pResult = new HookResult();
// Klantspecifieke check functie (hookfunction) voor de invoer.
if (!custfunc.fin_postsave(fin_key, pResult))
{
abort_with_warning(pResult.errmsg);
}
}
else if (jsondata.status == 2 && (this_fin.canUnReject || this_fin.canUnapprove))
{ // On-Afwijzen, On-Fiatteren of On-Goedkeuren.
// Huidige status opvragen.
sql = "SELECT fin_factuur_statuses_key"
+ " FROM fin_factuur"
+ " WHERE fin_factuur_key = " + fin_key;
oRs = Oracle.Execute(sql);
var fin_status_old = oRs("fin_factuur_statuses_key").Value;
oRs.Close();
var fields = [ { dbs: "fin_factuur_opmerking_afw", typ: "varchar", val: jsondata.remark, track: L("lcl_fin_remark_reject"), len: 4000} ];
var finUpd = buildTrackingUpdate("fin_factuur", "fin_factuur_key = " + fin_key, fields);
oRs = Oracle.Execute(finUpd.sql);
if (finUpd.trackarray.length)
{
fin.trackfactuurupdate(fin_key, L("lcl_fin_is_finupdtrack").format(fin_key) + "\n" + finUpd.trackarray.join("\n"));
}
// Status terugzetten naar Ingevoerd(2).
sql = "UPDATE fin_factuur"
+ " SET fin_factuur_statuses_key = 2"
+ " WHERE fin_factuur_key = " + fin_key
+ " AND (mld_opdr_key IS NOT NULL OR cnt_contract_key IS NOT NULL OR bes_bestelopdr_key IS NOT NULL)";
Oracle.Execute(sql);
shared.trackaction((fin_status_old == 5? "FINGUN" : "FINFUN"), fin_key); // Vanuit status Afgewezen(1) en Akkoord(6) FINFUN en vanuit status Ter Goedkeuring(5) FINGUN.
}
else if (jsondata.status == 5 && this_fin.canAccept)
{ // Fiatteren.
var fin_enable_goedkeuren = S("fin_enable_goedkeuren");
var fin_status_new = fin_enable_goedkeuren != 0
? "CASE WHEN prs_perslid_key_goedkeur IS NOT NULL THEN 5 ELSE 6 END"
: "6";
sql = "UPDATE fin_factuur"
+ " SET fin_factuur_statuses_key = " + fin_status_new
+ " WHERE fin_factuur_key = " + fin_key
+ " AND (mld_opdr_key IS NOT NULL OR cnt_contract_key IS NOT NULL OR bes_bestelopdr_key IS NOT NULL)";
Oracle.Execute(sql);
shared.trackaction("FINFOK", fin_key);
var sql = "SELECT prs_perslid_key_goedkeur"
+ " FROM fin_factuur f"
+ " WHERE fin_factuur_key = " + fin_key;
oRs = Oracle.Execute(sql);
if (fin_enable_goedkeuren != 0 && oRs("prs_perslid_key_goedkeur").Value > 0)
{ // Factuur is naar status Ter goedkeuring(5) gegaan.
// Notificatie aan de goedkeurder.
fin.sendNeedApprovalNotification(fin_key, oRs("prs_perslid_key_goedkeur").Value);
}
//else // Factuur is naar status Akkoord(6) gegaan.
oRs.Close();
}
else if (jsondata.status == 6 && this_fin.canGoedkeur)
{ // Fiatteren.
var sql = "UPDATE fin_factuur"
+ " SET fin_factuur_statuses_key = 6"
+ " WHERE fin_factuur_key = " + fin_key
+ " AND (mld_opdr_key IS NOT NULL OR cnt_contract_key IS NOT NULL OR bes_bestelopdr_key IS NOT NULL)";
Oracle.Execute(sql);
shared.trackaction("FINGOE", fin_key);
var pResult = new HookResult();
// Klantspecifieke check functie (hookfunction) voor de invoer
if (!custfunc.fin_postsave(fin_key, pResult))
{
abort_with_warning(pResult.errmsg);
}
}
else
// update nog tracken
if (fin_key > 0)
{
var dbfields = api2.update_fields(params, this, jsondata); // Build updater
_analyze_fields(dbfields, params, jsondata);
_validate_fields(dbfields, params, jsondata);
var wheres = [" fin_factuur_key = " + fin_key];
var finUpd = buildTrackingUpdate("fin_factuur", wheres.join(" AND " ), dbfields, { noValidateToken: true });
var err = Oracle.Execute(finUpd.sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
var fintrack = api2.process_includes(params, this, jsondata, the_key);
// update nog tracken
if (fin_key > 0)
{
fin.trackfactuurupdate(fin_key, L("lcl_fin_is_finupdtrack").format(fin_key) + (finUpd.trackarray.length > 0? "\n" : "") + finUpd.trackarray.join("\n"));
};
}
fin.trackfactuurupdate(fin_key, L("lcl_fin_is_finupdtrack").format(fin_key) + (finUpd.trackarray.length > 0? "\n" : "") + finUpd.trackarray.join("\n"));
};
return { key: fin_key };
};
@@ -331,7 +206,9 @@ function model_invoices(fin_key, params)
var finIns = buildInsert("fin_factuur", dbfields, { noValidateToken: true} );
var factuur_key = finIns.sequences["fin_factuur_key"];
var err = Oracle.Execute(finIns.sql, true);
var sql = finIns.sql;
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
@@ -341,7 +218,9 @@ function model_invoices(fin_key, params)
shared.trackaction("FINNEW", factuur_key);
// factuurmatching
var sql_fm = "BEGIN fin.autoapprovefactuur(" + factuur_key + "); END;";
var sql_fm = "BEGIN"
+ " fin.autoapprovefactuur(" + factuur_key + ");"
+ " END;";
Oracle.Execute(sql_fm);
return { key: factuur_key };
@@ -362,7 +241,7 @@ function model_invoices(fin_key, params)
+ " AND fin_factuur_key = " + factuur_key;
oRs = Oracle.Execute(sql);
}
};
}
if (fin_key > 0)
{

Some files were not shown because too many files have changed in this diff Show More