Compare commits
387 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
05994ade1d | ||
|
|
523f4a6a59 | ||
|
|
4596cc42bc | ||
|
|
83a93b93d6 | ||
|
|
c15f616eeb | ||
|
|
24b133aa80 | ||
|
|
bef44fc9db | ||
|
|
02617a8aa7 | ||
|
|
460538ce45 | ||
|
|
ccb65a37d9 | ||
|
|
2b7efe0bfe | ||
|
|
b225d8119a | ||
|
|
12803a60cf | ||
|
|
4f70d82934 | ||
|
|
f30d873d19 | ||
|
|
08f119406f | ||
|
|
03ae42722a | ||
|
|
592a1d63e8 | ||
|
|
130db4a54d | ||
|
|
0aca6be909 | ||
|
|
000e0a3c00 | ||
|
|
c1eb0e79ed | ||
|
|
681540abef | ||
|
|
c9b1b55b8c | ||
|
|
c5e0caab86 | ||
|
|
76547c6014 | ||
|
|
bac97bd703 | ||
|
|
8ec847f495 | ||
|
|
9673bb0157 | ||
|
|
dbbb804b50 | ||
|
|
edf264fd75 | ||
|
|
7bc722084e | ||
|
|
d534a29aa3 | ||
|
|
94c9ed336b | ||
|
|
406c66b783 | ||
|
|
d7c4a4d658 | ||
|
|
b963285e15 | ||
|
|
2545f1fb0f | ||
|
|
2221f81216 | ||
|
|
6b18f79ae3 | ||
|
|
230c278197 | ||
|
|
f643ac8a78 | ||
|
|
185c51e1fd | ||
|
|
cf5e9cfd42 | ||
|
|
b5cae957de | ||
|
|
59adf1b26e | ||
|
|
99b0d18e23 | ||
|
|
b9d97bc500 | ||
|
|
bd047447ee | ||
|
|
3269e233bc | ||
|
|
9d6a09d1f3 | ||
|
|
4895329adc | ||
|
|
56f1863df4 | ||
|
|
5a9b399283 | ||
|
|
c48faa3373 | ||
|
|
dc75d0504b | ||
|
|
86f4f742f5 | ||
|
|
f0262c78db | ||
|
|
8eb29d2ae0 | ||
|
|
bfabc8baee | ||
|
|
abee7895f2 | ||
|
|
90a3f99a71 | ||
|
|
904dec6389 | ||
|
|
f422d2428e | ||
|
|
0376e540d8 | ||
|
|
264b2be173 | ||
|
|
44e3f78b0c | ||
|
|
a5cc73aed5 | ||
|
|
61276b17c1 | ||
|
|
caf35a9cb9 | ||
|
|
a2d133044e | ||
|
|
a12bc95ac3 | ||
|
|
3f0b8a5db8 | ||
|
|
f801a8c14a | ||
|
|
3344db5062 | ||
|
|
1627eaa48b | ||
|
|
2da95d4a95 | ||
|
|
7aa6bdb4fa | ||
|
|
74984c8851 | ||
|
|
7fe9a1a4ca | ||
|
|
984c8b6813 | ||
|
|
99c759adc1 | ||
|
|
cebe2aaa39 | ||
|
|
0a11cdda76 | ||
|
|
d9f66d5f85 | ||
|
|
46544680f5 | ||
|
|
757cf1ebd7 | ||
|
|
88bdc0ec1d | ||
|
|
68c054c62e | ||
|
|
cff06e1053 | ||
|
|
72eeca9063 | ||
|
|
501dc891ca | ||
|
|
3a4242ddd1 | ||
|
|
589569905e | ||
|
|
fd2afa96b6 | ||
|
|
d9bc2d0816 | ||
|
|
f0219b5771 | ||
|
|
97b35f14d7 | ||
|
|
5ee8eaacf1 | ||
|
|
2e26171e59 | ||
|
|
36024f041e | ||
|
|
d2d64cce7d | ||
|
|
a69ea802ec | ||
|
|
f116044f9d | ||
|
|
ed296d684d | ||
|
|
674f6dd3db | ||
|
|
325bc08bd7 | ||
|
|
694cfe6bbe | ||
|
|
8e6f992048 | ||
|
|
496fd27759 | ||
|
|
5e5d97c813 | ||
|
|
90fbaf49dd | ||
|
|
31f7299ee0 | ||
|
|
78e92c1e24 | ||
|
|
1907f0785e | ||
|
|
13d27dd7f0 | ||
|
|
d58d1eb3ae | ||
|
|
c4c4069f39 | ||
|
|
a88481aacb | ||
|
|
08155169dc | ||
|
|
846ebd4be5 | ||
|
|
e6da287aea | ||
|
|
3e8356ee45 | ||
|
|
ade77a56d1 | ||
|
|
b42113a64c | ||
|
|
5cfacbb2d8 | ||
|
|
3e2aee6999 | ||
|
|
180f63068e | ||
|
|
26ff487d48 | ||
|
|
0ec62f1631 | ||
|
|
376d31777d | ||
|
|
16cf36da27 | ||
|
|
89aac713e8 | ||
|
|
5d865ed761 | ||
|
|
cfc86c18d8 | ||
|
|
890cb993ae | ||
|
|
818a00717c | ||
|
|
a5d8a18345 | ||
|
|
0ded2af460 | ||
|
|
2df121cff2 | ||
|
|
fbed6da0e2 | ||
|
|
075e182e67 | ||
|
|
a7db04a7ba | ||
|
|
8305e553eb | ||
|
|
c2a429fa5e | ||
|
|
8bfff75dd7 | ||
|
|
e0e7b2db13 | ||
|
|
316eace715 | ||
|
|
66ba6a5b76 | ||
|
|
8cfba4e964 | ||
|
|
5f37302f53 | ||
|
|
25386a9615 | ||
|
|
877d1f44df | ||
|
|
66f277a1f5 | ||
|
|
a794a654cf | ||
|
|
54f739edd4 | ||
|
|
44b59553a3 | ||
|
|
48ecc9d593 | ||
|
|
bdebf1c0e4 | ||
|
|
ce97c23697 | ||
|
|
1a66ec09bd | ||
|
|
edb32bb4ef | ||
|
|
0e50ee833a | ||
|
|
c5e52fa436 | ||
|
|
b94e79d14c | ||
|
|
d76c61248c | ||
|
|
222537c40c | ||
|
|
71ce9eb97d | ||
|
|
947e9ca724 | ||
|
|
489ba4ca1c | ||
|
|
7097c80407 | ||
|
|
c1f70089ad | ||
|
|
ff266cc72c | ||
|
|
2c1baa6a74 | ||
|
|
888410ee7a | ||
|
|
d0e5a719f4 | ||
|
|
1e41c3970e | ||
|
|
26f1137d7f | ||
|
|
bbb53e363b | ||
|
|
3bb3558f80 | ||
|
|
1b8e578717 | ||
|
|
f1547bde1f | ||
|
|
2bd8f7354a | ||
|
|
8260639955 | ||
|
|
096c1189b4 | ||
|
|
e277459807 | ||
|
|
4e5692b86d | ||
|
|
6d8dfd5917 | ||
|
|
4cedabd230 | ||
|
|
ba4c1538e2 | ||
|
|
a3cc646bb0 | ||
|
|
6ad9b632d1 | ||
|
|
8460bae1da | ||
|
|
a2d2724f6a | ||
|
|
b5a38073bc | ||
|
|
af40ebe8b0 | ||
|
|
469f0d1909 | ||
|
|
380f08b002 | ||
|
|
3854086010 | ||
|
|
2e181e9401 | ||
|
|
9ed40a27d7 | ||
|
|
8730a89f4e | ||
|
|
d3604c0f1c | ||
|
|
e1c26a0d35 | ||
|
|
1bee5b2117 | ||
|
|
34a538e5d2 | ||
|
|
6c1333d586 | ||
|
|
2c55234c9e | ||
|
|
33c84ff11f | ||
|
|
5f4ae46acf | ||
|
|
77ab2b33ce | ||
|
|
68600a3c6a | ||
|
|
91a2a76523 | ||
|
|
b1d2e4703c | ||
|
|
ec03207aad | ||
|
|
9e44675313 | ||
|
|
875d7b2547 | ||
|
|
049e405678 | ||
|
|
d32df961c2 | ||
|
|
27e361cc79 | ||
|
|
d55d263356 | ||
|
|
ace76a1ae2 | ||
|
|
c19e217269 | ||
|
|
250e3e8bf4 | ||
|
|
b71b2b4909 | ||
|
|
cf9d3eb226 | ||
|
|
ecf21935a8 | ||
|
|
3de7fb6fba | ||
|
|
44501d87ac | ||
|
|
d9dcc6ed06 | ||
|
|
c796ee18bf | ||
|
|
2c6ae90289 | ||
|
|
5e18a5a9c0 | ||
|
|
9281b5e58c | ||
|
|
7513a2c6c0 | ||
|
|
09f48b7142 | ||
|
|
115c1e86d9 | ||
|
|
b25322cba1 | ||
|
|
ee5c4688ce | ||
|
|
422c818c03 | ||
|
|
45c5612cb8 | ||
|
|
bde57d071b | ||
|
|
e658497301 | ||
|
|
8947b406a3 | ||
|
|
058bea721f | ||
|
|
65ef50cac5 | ||
|
|
a054dd0cbd | ||
|
|
9f50cc9c91 | ||
|
|
5aa14d3be4 | ||
|
|
a7da8576f1 | ||
|
|
695a93d619 | ||
|
|
f133c94b09 | ||
|
|
97fa83d09c | ||
|
|
e99832f2cc | ||
|
|
159060cd71 | ||
|
|
e11362df24 | ||
|
|
c64f5121d9 | ||
|
|
159175c235 | ||
|
|
f346b74847 | ||
|
|
d6311b143f | ||
|
|
9de55b2281 | ||
|
|
1ef71cf246 | ||
|
|
5a94bdc856 | ||
|
|
1d1bb6cfcb | ||
|
|
4f0f952851 | ||
|
|
7c49b07b41 | ||
|
|
8e8fe2dc64 | ||
|
|
8eb6ddfcf7 | ||
|
|
dd210f18e9 | ||
|
|
dc5c3b24a6 | ||
|
|
6c84b3bee6 | ||
|
|
daa0b45ea6 | ||
|
|
fddef4f656 | ||
|
|
b70a00786e | ||
|
|
4593af7486 | ||
|
|
17d171e15f | ||
|
|
ab638c1f0f | ||
|
|
c76a52fd34 | ||
|
|
38f6b0ea50 | ||
|
|
b57e60428e | ||
|
|
7d1d2fdf45 | ||
|
|
daa80309a3 | ||
|
|
23e0a0dca1 | ||
|
|
c6e885dd14 | ||
|
|
5c6b5041c4 | ||
|
|
304ded0a36 | ||
|
|
2c927e2487 | ||
|
|
d40722999c | ||
|
|
c107d1b691 | ||
|
|
36c32b35ad | ||
|
|
4bafb7f952 | ||
|
|
799cc6790e | ||
|
|
93c1ad4059 | ||
|
|
6f32051d99 | ||
|
|
f06c3110d9 | ||
|
|
d584b34a45 | ||
|
|
6aebba160b | ||
|
|
bcdbeb8701 | ||
|
|
28fa26f31e | ||
|
|
28c972bcba | ||
|
|
ae11cf90cc | ||
|
|
2c090271d9 | ||
|
|
6a6eec30a7 | ||
|
|
a6216b5e2a | ||
|
|
022ac0d13c | ||
|
|
6fb2e83c57 | ||
|
|
205f928c8e | ||
|
|
fbcc0442b6 | ||
|
|
a6eed47c9e | ||
|
|
432848db6e | ||
|
|
75bee0ae77 | ||
|
|
bc272d20bf | ||
|
|
247d523ba1 | ||
|
|
1f4c6fbb31 | ||
|
|
bf3e36f25a | ||
|
|
4e54f5fba0 | ||
|
|
29ecd58933 | ||
|
|
78136ab6e7 | ||
|
|
5fd962ff21 | ||
|
|
7e23436c1a | ||
|
|
f69f7617bf | ||
|
|
882e2d5129 | ||
|
|
19db5ccd9c | ||
|
|
970294f60a | ||
|
|
021200b69b | ||
|
|
79acbf8a2c | ||
|
|
0f483d7aef | ||
|
|
a5181d2b64 | ||
|
|
bdcc1e5c57 | ||
|
|
5b74c86960 | ||
|
|
3feac51d6e | ||
|
|
fea153efb1 | ||
|
|
7499594c28 | ||
|
|
c0d2dfbf78 | ||
|
|
aef1f7771c | ||
|
|
43eeb13a71 | ||
|
|
5437c5b86f | ||
|
|
749ebb43c7 | ||
|
|
cd2b1cea22 | ||
|
|
8df34707e6 | ||
|
|
6fda5e07a2 | ||
|
|
5700aef8f2 | ||
|
|
eff5f8bb63 | ||
|
|
8a2cf5bb37 | ||
|
|
3a77eddff4 | ||
|
|
7863b4ef48 | ||
|
|
e73318f904 | ||
|
|
8fbd1d5890 | ||
|
|
29a6c8a07c | ||
|
|
ae40b296f5 | ||
|
|
d704eecef0 | ||
|
|
59b57824d6 | ||
|
|
eb04566d10 | ||
|
|
623ae3df3a | ||
|
|
27d1fcdb0e | ||
|
|
0c0cb3f321 | ||
|
|
244609f9ce | ||
|
|
a16471d68b | ||
|
|
c81a4872e5 | ||
|
|
c08b38ea9d | ||
|
|
44417e70b7 | ||
|
|
2dfb46b88d | ||
|
|
5a9feae5ff | ||
|
|
d7658ed40e | ||
|
|
0ea446cbdf | ||
|
|
d179b22e3c | ||
|
|
143ea98493 | ||
|
|
60dbe25187 | ||
|
|
25177f290e | ||
|
|
85f33f8ae4 | ||
|
|
be875c504c | ||
|
|
95832cf406 | ||
|
|
8229447803 | ||
|
|
6c08e93eb6 | ||
|
|
92f5d4b3da | ||
|
|
04307f3e3c | ||
|
|
cbc81a878c | ||
|
|
f17a4b610e | ||
|
|
83ce86eb19 | ||
|
|
60e223d087 | ||
|
|
ffab153ec5 | ||
|
|
a86a4ba588 | ||
|
|
49f41c6095 | ||
|
|
8c1f148aa0 | ||
|
|
9e11332d82 | ||
|
|
33627b14fc | ||
|
|
d52ac55c03 |
@@ -37,7 +37,7 @@ function abortRejectMail(tekst)
|
||||
function stripHtml(html)
|
||||
{
|
||||
// verwijder html-tags
|
||||
html = html.replace(/(<([^>]+)>)/ig,"");
|
||||
html = (html||"").replace(/(<([^>]+)>)/ig,"");
|
||||
//verwijder leading spaces and tabs
|
||||
html = html.replace(/^[ \t]+/gm,"");
|
||||
// verwijder lege regels
|
||||
|
||||
@@ -274,6 +274,7 @@ for (i = 0; i < meldingen.length; i++)
|
||||
+ " , mld_discipline d"
|
||||
+ " WHERE s.mld_ins_discipline_key = d.ins_discipline_key"
|
||||
+ " AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key "
|
||||
+ " AND k.mld_kenmerk_verwijder IS NULL "
|
||||
+ " AND sk.mld_srtkenmerk_upper = " + safe.quoted_sql_upper(kenmerk_naam)
|
||||
+ " AND s.mld_ins_discipline_key = d.ins_discipline_key"
|
||||
+ " AND s.mld_stdmelding_key = " + stdmld_key
|
||||
|
||||
@@ -33,14 +33,22 @@ Response.Charset = 'utf-8';
|
||||
var APIname = getQParam("API");
|
||||
var APIKEY = getQParam("APIKEY");
|
||||
var API = new API_func(APIname, APIKEY);
|
||||
var appendRemark = -1;
|
||||
for (opt in API.apidata.options)
|
||||
{
|
||||
if (opt = "appendRemark")
|
||||
|
||||
var MLDremark = 0; // 0= negeer, 1=append bij autoorder, 2=overwrite bij autoorder, 5=append altijd, 6=overwrite altijd
|
||||
var ORDremark = 2; //
|
||||
|
||||
/* API options voorbeeld:
|
||||
{
|
||||
appendRemark = API.apidata.options["appendRemark"] == 1;
|
||||
MLDremark: 0,
|
||||
ORDremark: 2
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
if ("MLDremark" in API.apidata.options)
|
||||
MLDremark = API.apidata.options["MLDremark"];
|
||||
|
||||
if ("ORDremark" in API.apidata.options)
|
||||
ORDremark = API.apidata.options["ORDremark"];
|
||||
|
||||
Session("logging") = API.apidata.loglevel||0;
|
||||
|
||||
@@ -367,6 +375,13 @@ for (i=0; i < opdrachten.length; i++)
|
||||
topdr_key = mld_opdr.opdr_type;
|
||||
|
||||
var autoorder = stdm_info.autoorder;
|
||||
if (autoorder)
|
||||
{
|
||||
if (MLDremark > 0)
|
||||
MLDremark &= 4; // 'Altijd' bitje zetten
|
||||
if (ORDremark > 0)
|
||||
ORDremark &= 4; // 'Altijd' bitje zetten
|
||||
}
|
||||
|
||||
var mut_datum = new Date();
|
||||
if (txt_mut_datum && mld_opdr.typeopdr_afmeldmarge>0)
|
||||
@@ -383,33 +398,37 @@ for (i=0; i < opdrachten.length; i++)
|
||||
if (opdropmerking != null)
|
||||
{ // opmerking bij de opdracht
|
||||
var new_opm = opdropmerking;
|
||||
sql = "SELECT mld_opdr_opmerking"
|
||||
+ " FROM mld_opdr"
|
||||
+ " WHERE mld_opdr_key = " + opdr_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
// in geval van auto-order opdracht wordt de opmerking in de opdracht overschreven
|
||||
// de complete backoffice wordt op dat moment beheerd door de soap gekoppelde partij.
|
||||
// dit is te overrullen met de optie appendRemark. Als deze -1 is dan is de waarde niet
|
||||
// gezet. Ander wordt deze hard gezet.
|
||||
appendRemark = oRs("mld_opdr_opmerking").Value != null && ((!autoorder && appendRemark == -1) || appendRemark == 1);
|
||||
if (appendRemark == 1)
|
||||
if (ORDremark == 5) // Append
|
||||
{
|
||||
new_opm = oRs("mld_opdr_opmerking").Value + "\n" + new_opm;
|
||||
sql = "SELECT mld_opdr_opmerking"
|
||||
+ " FROM mld_opdr"
|
||||
+ " WHERE mld_opdr_key = " + opdr_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (oRs("mld_opdr_opmerking").Value)
|
||||
new_opm = oRs("mld_opdr_opmerking").Value + "\n" + new_opm;
|
||||
oRs.Close();
|
||||
}
|
||||
if (ORDremark == 5 || ORDremark == 6)
|
||||
{
|
||||
opdr_fields.push({ dbs: "mld_opdr_opmerking", typ: "varchar", val: new_opm, track: L("lcl_mld_inf_Opmerking"), len: 4000 });
|
||||
}
|
||||
opdr_fields.push({ dbs: "mld_opdr_opmerking", typ: "varchar", val: new_opm, track: L("lcl_mld_inf_Opmerking"), len: 4000 });
|
||||
|
||||
// opmerking bij de melding
|
||||
var new_mld_opm = opdropmerking;
|
||||
sql = "SELECT mld_melding_opmerking"
|
||||
+ " FROM mld_melding"
|
||||
+ " WHERE mld_melding_key = " + mld_opdr.mld_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
appendRemark = oRs("mld_melding_opmerking").Value != null && ((!autoorder && appendRemark == -1) || appendRemark == 1);
|
||||
if (appendRemark == 1)
|
||||
if (MLDremark == 5) // Append
|
||||
{
|
||||
new_mld_opm = oRs("mld_melding_opmerking").Value + "\n" + new_mld_opm;
|
||||
sql = "SELECT mld_melding_opmerking"
|
||||
+ " FROM mld_melding"
|
||||
+ " WHERE mld_melding_key = " + mld_opdr.mld_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (oRs("mld_melding_opmerking").Value)
|
||||
new_mld_opm = oRs("mld_melding_opmerking").Value + "\n" + new_mld_opm;
|
||||
oRs.Close();
|
||||
}
|
||||
if (MLDremark == 5 || MLDremark == 6)
|
||||
{
|
||||
mld_fields.push({ dbs: "mld_melding_opmerking", typ: "varchar", val: new_mld_opm, track: L("lcl_mld_inf_Opmerking"), len: 4000 });
|
||||
}
|
||||
mld_fields.push({ dbs: "mld_melding_opmerking", typ: "varchar", val: new_mld_opm, track: L("lcl_mld_inf_Opmerking"), len: 4000 });
|
||||
}
|
||||
|
||||
if (opdrkosten != null)
|
||||
@@ -506,7 +525,7 @@ for (i=0; i < opdrachten.length; i++)
|
||||
|
||||
var this_mld = mld.func_enabled_melding(mld_opdr.mld_key);
|
||||
// mag ik de melding ook aanpassen?
|
||||
if (this_mld.canChange && (autoorder || appendRemark))
|
||||
if (this_mld.canClose && (autoorder || MLDremark > 0))
|
||||
{
|
||||
if (mld_fields.length>0)
|
||||
{
|
||||
@@ -538,6 +557,7 @@ for (i=0; i < opdrachten.length; i++)
|
||||
+ " FROM mld_kenmerk k, mld_srtkenmerk sk "
|
||||
+ " WHERE k.mld_typeopdr_key = " + topdr_key
|
||||
+ " AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key "
|
||||
+ " AND k.mld_kenmerk_verwijder IS NULL "
|
||||
+ " AND sk.mld_srtkenmerk_upper = " + safe.quoted_sql_upper(kenmerk_naam);
|
||||
var oRs = Oracle.Execute(ksql);
|
||||
|
||||
|
||||
@@ -502,6 +502,10 @@ api2 = {
|
||||
if (params.include[i] in model.includes)
|
||||
{
|
||||
var inc = model.includes[params.include[i]];
|
||||
// Geneste includes verwijderen, we doen hooguit 1 diep
|
||||
if ("model" in inc) // reservablerooms/include/occupations heeft geen model
|
||||
delete inc.model.includes;
|
||||
|
||||
if (inc.model)
|
||||
{
|
||||
if (inc.single_only && !params.filter.id)
|
||||
@@ -781,7 +785,20 @@ api2 = {
|
||||
incmodel.aliasprefix = incmodel.aliasprefix || "";
|
||||
if (oRs(incmodel.aliasprefix + incmodel.primary).value == null) // Geen record door outer join
|
||||
continue;
|
||||
record[incname].push(api2.sql2jsonfields(oRs, incmodel));
|
||||
|
||||
var inc_record = api2.sql2jsonfields(oRs, incmodel);
|
||||
var inc_record_exists = false;
|
||||
for (var i=0; i<record[incname].length; i++)
|
||||
{
|
||||
var tmp_record = record[incname];
|
||||
var cur_record = tmp_record[i];
|
||||
if (JSON.stringify(cur_record) == JSON.stringify(inc_record))
|
||||
inc_record_exists = true;
|
||||
}
|
||||
if (!inc_record_exists)
|
||||
record[incname].push(inc_record);
|
||||
//else
|
||||
// __Log("Deze bestaat al");
|
||||
}
|
||||
else if (model.includes[incname].func) // include via callback functie zoals reservablerooms/occupation
|
||||
{
|
||||
@@ -1074,6 +1091,35 @@ api2 = {
|
||||
hook = null;
|
||||
return outdata;
|
||||
}
|
||||
},
|
||||
find_fieldindex_by_dbsname: function(array, value)
|
||||
{
|
||||
for(var i = 0; i < array.length; i++)
|
||||
{
|
||||
if(array[i].hasOwnProperty("dbs") && array[i]["dbs"] === value)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
},
|
||||
field_delete: function(array, dbsname)
|
||||
{
|
||||
var index = api2.find_fieldindex_by_dbsname(array, dbsname);
|
||||
if (index != -1)
|
||||
array.splice(index,1);
|
||||
},
|
||||
field_alter: function(array, dbsname, newval)
|
||||
{
|
||||
var index = api2.find_fieldindex_by_dbsname(array, dbsname);
|
||||
var field = array[index];
|
||||
field.val = newval;
|
||||
},
|
||||
field_value: function(array, dbsname)
|
||||
{
|
||||
var index = api2.find_fieldindex_by_dbsname(array, dbsname);
|
||||
var field = array[index];
|
||||
return field.val;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
118
APPL/API2/model_issueobjects.inc
Normal file
@@ -0,0 +1,118 @@
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: model_issueobjects.inc
|
||||
|
||||
Description: Meldingobjecten model. Dit bestand heeft niets met interfacing te maken
|
||||
maar werkt uitsluitend op JSON-data
|
||||
Parameters:
|
||||
Context:
|
||||
|
||||
Notes:
|
||||
*/
|
||||
|
||||
%>
|
||||
<%
|
||||
model_issueobjects =
|
||||
{
|
||||
table: "mld_melding_object",
|
||||
primary: "mld_melding_object_key",
|
||||
records_name: "issueobjects",
|
||||
record_name: "issueobject",
|
||||
fields: [{ name: "id", dbs: "mld_melding_object_key", typ: "key", filter: "exact" },
|
||||
//{ name: "issue", dbs: "mld_melding_key", typ: "key", xforeign: "mld_melding" }, // niet teruglinken // mld_melding zit niet in save2db.foreignKeyTable()
|
||||
{ name: "object", dbs: "ins_deel_key", typ: "key", foreign: "ins_deel" }
|
||||
],
|
||||
|
||||
_analyze_fields: function (fields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
|
||||
{
|
||||
if (jsondata.id)
|
||||
{
|
||||
// Bestaande mld_melding_object: PUT
|
||||
}
|
||||
else
|
||||
{ // Nieuwe mld_melding_object: POST
|
||||
// Controleer of de combinatie melding_key/object_key al bestaat. Zo ja, dan niet toevoegen.
|
||||
var mld_obj_key = -1;
|
||||
var sql = "SELECT mld_melding_object_key"
|
||||
+ " FROM mld_melding_object"
|
||||
+ " WHERE mld_melding_object_verwijder IS NULL"
|
||||
+ " AND mld_melding_key = " + params.filter.id
|
||||
+ " AND ins_deel_key = " + fields[0].val;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
mld_obj_key = oRs("mld_melding_object_key").Value;
|
||||
params.isNew = false;
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
},
|
||||
|
||||
_validate_fields: function (fields, params, jsondata) /* valideer fields, alle constraints die niet door de database worden afgevangen */
|
||||
{
|
||||
},
|
||||
|
||||
REST_GET: function _GET(params)
|
||||
{
|
||||
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
||||
var query = api2.sqlfields(params, model_issueobjects );
|
||||
|
||||
query.wheres.push("mld_melding_object_verwijder IS NULL");
|
||||
|
||||
var wheres = api2.sqlfilter(params, model_issueobjects);
|
||||
query.wheres = query.wheres.concat(wheres);
|
||||
|
||||
var sql = "SELECT " + query.selects.join(", ")
|
||||
+ " FROM " + query.tables.join(", ")
|
||||
+ " WHERE " + query.wheres.join(" AND " );
|
||||
|
||||
var json = api2.sql2json (params, sql, model_issueobjects );
|
||||
|
||||
return json;
|
||||
},
|
||||
|
||||
REST_PUT: function (params, jsondata, the_key) /* update object */
|
||||
{
|
||||
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
||||
var fields = api2.update_fields(params, model_issueobjects, jsondata); // Build updater
|
||||
model_issueobjects._analyze_fields(fields, params, jsondata);
|
||||
|
||||
var mldUpd = buildTrackingUpdate("mld_melding_object", " mld_melding_object_key = " + the_key, fields, { noValidateToken: true });
|
||||
Oracle.Execute(mldUpd.sql);
|
||||
|
||||
// Nu geen api2.process_includes() meer aanroepen, anders ga je de objecten zelf ook nog aanpassen.
|
||||
|
||||
return { key: the_key };
|
||||
},
|
||||
|
||||
REST_POST: function (params, jsondata, parent_key) /* new object */
|
||||
{
|
||||
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
||||
params.isNew = true; // negeer eventuele bestaande keys
|
||||
var fields = api2.update_fields(params, model_issueobjects, jsondata); // Build updater
|
||||
model_issueobjects._analyze_fields(fields, params, jsondata);
|
||||
|
||||
var new_key = null;
|
||||
if (params.isNew)
|
||||
{
|
||||
fields.push({ dbs: "mld_melding_key", typ: "key", val: parent_key });
|
||||
fields.push({ dbs: "mld_melding_object_key", typ: "key", seq: "mld_s_mld_object_key" });
|
||||
|
||||
var mldIns = buildInsert("mld_melding_object", fields, { noValidateToken: true });
|
||||
new_key = mldIns.sequences["mld_melding_object_key"];
|
||||
Oracle.Execute(mldIns.sql);
|
||||
}
|
||||
|
||||
return { key: new_key };
|
||||
},
|
||||
|
||||
REST_DELETE: function (params, jsondata, the_key) /* delete object */
|
||||
{
|
||||
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
||||
var sql = "DELETE FROM mld_melding_object WHERE mld_melding_object_key = " + the_key;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
}
|
||||
%>
|
||||
@@ -16,23 +16,26 @@
|
||||
%>
|
||||
<!-- #include file="../Shared/discx3d.inc" -->
|
||||
<!-- #include file="../mld/mld.inc" -->
|
||||
<!-- #include file="model_objects.inc"-->
|
||||
<!-- #include file="model_issueobjects.inc"-->
|
||||
<!-- #include file="model_notes.inc"-->
|
||||
<!-- #include file="model_orders.inc"-->
|
||||
<%
|
||||
|
||||
model_issues =
|
||||
{
|
||||
module: "MLD",
|
||||
table: "mld_melding",
|
||||
// aliasprefix: "", // Deze prefix wordt voor fields.name gezet.
|
||||
primary: "mld_melding_key",
|
||||
records_name: "issues",
|
||||
record_name: "issue",
|
||||
fields: [{ name: "id", dbs: "mld_melding_key", typ: "key", filter: "exact" },
|
||||
{ name: "name", dbs: "mld_melding_id", typ: "varchar", sql: "ins_srtdiscipline.ins_srtdiscipline_prefix||mld_melding_key", filter: "exact" },
|
||||
{ name: "name", dbs: "mld_melding_id", typ: "varchar", sql: "ins_srtdiscipline.ins_srtdiscipline_prefix||mld_melding.mld_melding_key", filter: "exact" },
|
||||
{ name: "contact", dbs: "prs_perslid_key", typ: "key", foreign: "prs_perslid", track: L("lcl_mld_name"), filter: "exact" },
|
||||
{ name: "requestor", dbs: "prs_perslid_key_voor", typ: "key", foreign: "prs_perslid", track: L("lcl_mld_call_for"), filter: "exact" },
|
||||
{ name: "issuedate", dbs: "mld_melding_datum", typ: "datetime", track: L("lcl_mld_date_time")},
|
||||
{ name: "issuedate", dbs: "mld_melding_datum", typ: "datetime", track: L("lcl_mld_date_time"), filter: "range" },
|
||||
{ name: "enddate", dbs: "mld_melding_einddatum", typ: "datetime", track: L("lcl_mld_enddate")},
|
||||
{ name: "issuetype", dbs: "mld_stdmelding_key", typ: "varchar", foreign: "mld_stdmelding", track: L("lcl_complain"), filter: "exact" },
|
||||
{ name: "issuetype", dbs: "mld_stdmelding_key", typ: "key", foreign: "mld_stdmelding", track: L("lcl_complain"), filter: "exact" },
|
||||
{ name: "description", dbs: "mld_melding_omschrijving", typ: "varchar", track: L("lcl_descr"), filter: "like" },
|
||||
{ name: "remark", dbs: "mld_melding_opmerking", typ: "varchar", track: L("lcl_remark")},
|
||||
{ name: "status", dbs: "mld_melding_status", typ: "key", foreign: mld.getmldstatustext, track: L("lcl_status"), filter: "exact" },
|
||||
@@ -46,25 +49,30 @@ model_issues =
|
||||
{ name: "terrain", dbs: "alg_v_allonroerendgoed.alg_terreinsector_key", typ: "key", foreign: "alg_terreinsector", track: L("lcl_room"), filter: "exact" }
|
||||
],
|
||||
includes: {
|
||||
"objects": {
|
||||
model: model_objects,
|
||||
joinfield: "ins_deel_key",
|
||||
single_only: false,
|
||||
joinfunction: function (params)
|
||||
{
|
||||
return "ins_deel_key IN (SELECT ins_deel_key FROM mld_melding_object WHERE mld_melding_object.mld_melding_key = mld_melding.mld_melding_key AND mld_melding_object_verwijder IS NULL)";
|
||||
}
|
||||
},
|
||||
"notes": { // TODO later
|
||||
//model: model_notes,
|
||||
joinfield: "ins_deel_key",
|
||||
single_only: false,
|
||||
joinfunction: function (params)
|
||||
{
|
||||
/* gaat uit dat die wordt geimplementeerd met een view fac_v_notes (module, key, columns....) */
|
||||
return "module='MLD' AND fac_v_notes.key = mld_melding.mld_melding_key";
|
||||
}
|
||||
}
|
||||
"issueobjects": {
|
||||
model: model_issueobjects,
|
||||
joinfield: "mld_melding_key",
|
||||
single_only: false
|
||||
},
|
||||
"notes": {
|
||||
model: model_notes,
|
||||
joinfield: "parent_key",
|
||||
single_only: false,
|
||||
joinfunction: function (params)
|
||||
{
|
||||
/* gaat uit dat die wordt geimplementeerd met een view fac_v_notes (module, key, columns....) */
|
||||
return "(module='MLD' OR module IS NULL) AND fac_v_notes.parent_key(+) = mld_melding.mld_melding_key";
|
||||
}
|
||||
},
|
||||
"orders": {
|
||||
model: model_orders,
|
||||
joinfield: "mld_melding_key",
|
||||
single_only: false,
|
||||
joinfunction: function (params)
|
||||
{
|
||||
return " mld_melding.mld_melding_key = mld_opdr.mld_melding_key(+) ";
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
REST_GET: function _GET(params)
|
||||
@@ -82,13 +90,14 @@ model_issues =
|
||||
|
||||
if (scope == "fe")
|
||||
{
|
||||
query.wheres.push("prs_perslid_key=" + user_key);
|
||||
query.wheres.push("mld_melding.prs_perslid_key=" + user_key);
|
||||
}
|
||||
|
||||
if (!params.filter.id)
|
||||
{
|
||||
/* You can't go any further back in time than the GUI could (ongeveer)*/
|
||||
if (S("mld_max_history") > 0)
|
||||
/* Als er wel een start_issuedate is dan wordt deze toegevoegd in api2.sqlfilter() verderop. */
|
||||
if (!params.filter.start_issuedate && S("mld_max_history") > 0)
|
||||
{
|
||||
query.wheres.push("mld_melding_datum > SYSDATE - "+ S("mld_max_history"));
|
||||
}
|
||||
@@ -110,7 +119,7 @@ model_issues =
|
||||
query.wheres.push("ins_tab_discipline.ins_srtdiscipline_key = ins_srtdiscipline.ins_srtdiscipline_key");
|
||||
|
||||
query.tables.push("alg_v_allonroerendgoed");
|
||||
query.wheres.push("mld_alg_onroerendgoed_keys = alg_v_allonroerendgoed.alg_onroerendgoed_keys(+)");
|
||||
query.wheres.push("mld_melding.mld_alg_onroerendgoed_keys = alg_v_allonroerendgoed.alg_onroerendgoed_keys(+)");
|
||||
|
||||
if (params.authparams.ALGreadlevel > -1)
|
||||
{
|
||||
@@ -118,7 +127,7 @@ model_issues =
|
||||
alg3d = true;
|
||||
__Log("ALGreadlevel="+params.authparams.ALGreadlevel);
|
||||
query.tables.push("alg_locatie"); /* opletten: outerjoin denk ik? */
|
||||
query.wheres.push("mld_alg_onroerendgoed_keys = alg_locatie.alg_locatie_key(+)");
|
||||
query.wheres.push("mld_melding.mld_alg_onroerendgoed_keys = alg_locatie.alg_locatie_key(+)");
|
||||
query.tables.push("alg_district");
|
||||
query.wheres.push("alg_locatie.alg_district_key = alg_district.alg_district_key(+)");
|
||||
}
|
||||
@@ -160,22 +169,348 @@ model_issues =
|
||||
|
||||
return json;
|
||||
},
|
||||
|
||||
_pre_analyze_fields: function (params, jsondata) /* analyseer inkomende jsondata voor POST */
|
||||
{
|
||||
params.data = {};
|
||||
if (params.isNew)
|
||||
{ // analyseer inkomende jsondata voor POST
|
||||
var msgError = "";
|
||||
var hasError = true;
|
||||
//
|
||||
// Voor een nieuwe melding moet er een geldige stdmelding zijn.
|
||||
msgError = "Missing issuetype";
|
||||
if (jsondata.issue.issuetype)
|
||||
{
|
||||
msgError = "Invalid issuetype";
|
||||
var sql_stdm = "SELECT sm.mld_stdmelding_omschrijving"
|
||||
+ " , sm.mld_ins_discipline_key"
|
||||
+ " , md.ins_srtdiscipline_key"
|
||||
+ " , COALESCE(sm.mld_stdmelding_directklaar, dp.mld_disc_params_directklaar, 0) mld_directklaar"
|
||||
+ " FROM mld_stdmelding sm"
|
||||
+ " , mld_discipline md"
|
||||
+ " , mld_disc_params dp"
|
||||
+ " WHERE sm.mld_ins_discipline_key = md.ins_discipline_key"
|
||||
+ " AND sm.mld_ins_discipline_key = dp.mld_ins_discipline_key";
|
||||
+ " AND sm.mld_stdmelding_key = " + jsondata.issue.issuetype;
|
||||
var oRs_stdm = Oracle.Execute(sql_stdm);
|
||||
if (!oRs_stdm.eof)
|
||||
{
|
||||
params.data.mld_ins_discipline_key = oRs_stdm("mld_ins_discipline_key").Value;
|
||||
params.data.ins_srtdiscipline_key = oRs_stdm("ins_srtdiscipline_key").Value;
|
||||
params.data.mld_directklaar = oRs_stdm("mld_directklaar").Value;
|
||||
hasError = false;
|
||||
}
|
||||
oRs_stdm.Close();
|
||||
}
|
||||
if (hasError) api2.error(500, msgError);
|
||||
//
|
||||
|
||||
// Bepaal de kostenplaats, indien verplicht.
|
||||
var stdm_info = mld.mld_stdmeldinginfo(jsondata.issue.issuetype);
|
||||
var kpkey = (jsondata.issue.account ? jsondata.issue.account : -1);
|
||||
if (stdm_info.kpnverplicht && kpkey < 0)
|
||||
{ // Kostenplaats is verplicht, maar is niet meegegeven. Bepaal default kostenplaats.
|
||||
kpkey = (user.afdeling().prs_kostenplaats_key() || -1); // User kostenplaats key
|
||||
}
|
||||
if (stdm_info.kpnverplicht && kpkey < 0)
|
||||
{ // Kon ook geen default kostenplaats vinden.
|
||||
msgError = "Account could not be validated";
|
||||
api2.error(500, msgError);
|
||||
}
|
||||
jsondata.issue.account = kpkey;
|
||||
params.data.is_kto_antwoord = stdm_info.is_kto_antwoord;
|
||||
//
|
||||
|
||||
//
|
||||
if (!jsondata.issue.contact) jsondata.issue.contact = user_key; // Als er geen aanvrager opgegeven is, dan de huidige gebruiker invullen.
|
||||
// Als de setting niet is gezet is "Melding voor" gelijk aan contactpersoon.
|
||||
if (S("mld_allow_for_others") == 0)
|
||||
{
|
||||
jsondata.issue.requestor = jsondata.issue.contact;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Bestaande melding: Haal de gegevens op.
|
||||
var sql = "SELECT mld_stdmelding_key"
|
||||
+ " FROM mld_melding"
|
||||
+ " WHERE mld_melding_key = " + jsondata.issue.id;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
jsondata.issue.issuetype = oRs("mld_stdmelding_key").Value;
|
||||
oRs.Close();
|
||||
|
||||
}
|
||||
//
|
||||
//
|
||||
var stdm_info = mld.mld_stdmeldinginfo(jsondata.issue.issuetype);
|
||||
// Startdatum: indien niet meegegeven, neem dan sysdate
|
||||
var startdate = (jsondata.issue.issuedate ? jsondata.issue.issuedate : new Date);
|
||||
var startwerkdag = parseFloat(S("fac_t_startofworkday"));
|
||||
var startwerkdag_uur = Math.floor(startwerkdag);
|
||||
var startwerkdag_min = (startwerkdag - Math.floor(startwerkdag)) * 60;
|
||||
var startdatebegin = new Date(startdate.getFullYear(), startdate.getMonth(), startdate.getDate(), startwerkdag_uur, startwerkdag_min);
|
||||
var sysdate = new Date();
|
||||
//
|
||||
if (stdm_info.startdatum)
|
||||
{ // Situatie 1: Einddatum = TRUNC(startdatum) + 8:00 uur + SLA
|
||||
// LET OP!!!: Als setting "mld_disc_params_startdatum" is gezet dan wordt eigenlijk verondersteld dat de SLA in dagen is en niet in uren.
|
||||
// Echter als de startdatum de registratiedatum (bij nieuwe melding dus sysdate) is moet wel voor de begintijd de registratietijd (registratiedatum) genomen worden tijdens het opslaan.
|
||||
// Anders geldt de acceptatietijd (in uren) onterecht al vanaf het begin van de dag.
|
||||
if (params.isNew)
|
||||
{ // Nieuwe melding.
|
||||
// Startdatum is vandaag: starttijd is huidige tijd.
|
||||
// Startdatum is niet vandaag: starttijd is begin werkdag.
|
||||
var startdate_is_today = (startdate.midnight().getTime() == sysdate.midnight().getTime());
|
||||
startdate = (startdate_is_today? sysdate : startdatebegin);
|
||||
}
|
||||
else
|
||||
{ // Bestaande melding
|
||||
var mld_key = jsondata.issue.id;
|
||||
sql = "SELECT mld_melding_datum"
|
||||
+ " FROM mld_melding"
|
||||
+ " WHERE mld_melding_key = " + mld_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
var oldstartdate = new Date(oRs("mld_melding_datum").Value);
|
||||
|
||||
// Alleen als datum veranderd is moet de starttijd worden aangepast.
|
||||
if (startdate.midnight().getTime() != oldstartdate.midnight().getTime())
|
||||
{ // Startdatum is aangepast.
|
||||
// Als de startdatum is aangepast in registratiedatum, dan wel weer de registratietijd (registratiedatum) pakken.
|
||||
// In alle andere gevallen begin van de werkdag pakken.
|
||||
sql = "SELECT fac.gettrackingdate('MLDNEW', " + mld_key + ") registratiedatum FROM DUAL"
|
||||
oRs_1 = Oracle.Execute(sql);
|
||||
var registratiedatum = new Date(oRs_1("registratiedatum").Value);
|
||||
oRs_1.Close();
|
||||
|
||||
var startdatum_is_registratiedatum = (startdate.midnight().getTime() == registratiedatum.midnight().getTime());
|
||||
startdate = (startdatum_is_registratiedatum? registratiedatum : startdatebegin);
|
||||
}
|
||||
else
|
||||
{ // else startdatum niet aanpassen.
|
||||
startdate = oldstartdate;
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Situatie 2: Einddatum = COALESCE(huidige waarde, sysdate) + SLA
|
||||
if (params.isNew)
|
||||
{
|
||||
startdate = new Date();
|
||||
}
|
||||
else
|
||||
{
|
||||
startdate = jsondata.issue.issuedate;
|
||||
}
|
||||
}
|
||||
jsondata.issue.issuedate = startdate;
|
||||
// De einddatum is de meegegeven einddatum, maar als die niet wordt meegegeven regelt de trigger dat wel, dus DAN MOET IK HEM NIET MEEGEVEN
|
||||
//
|
||||
|
||||
// Onroerendgoed_keys wordt de verfijnste van de opgegeven plaats
|
||||
var locatiekey = (jsondata.issue.location ? jsondata.issue.location : -1);
|
||||
var gebouwkey = (jsondata.issue.building ? jsondata.issue.building : -1);
|
||||
var verdiepingkey = (jsondata.issue.floor ? jsondata.issue.floor : -1);
|
||||
var ruimtekey = (jsondata.issue.room ? jsondata.issue.room : -1);
|
||||
var alg_onroerendgoed_keys = -1;
|
||||
|
||||
if (!S("mld_plaats_is_locatie_only"))
|
||||
{ // die specifiekere plaats moet dan leegblijven
|
||||
if (ruimtekey != -1)
|
||||
alg_onroerendgoed_keys = ruimtekey;
|
||||
else if (verdiepingkey != -1)
|
||||
alg_onroerendgoed_keys = verdiepingkey;
|
||||
else if (gebouwkey != -1)
|
||||
alg_onroerendgoed_keys = gebouwkey;
|
||||
}
|
||||
params.data.alg_onroerendgoed_keys = alg_onroerendgoed_keys;
|
||||
|
||||
if (!params.isNew)
|
||||
{ // Verwijder voor PUT wat niet gewijzigd mag worden.
|
||||
delete jsondata.issue.name;
|
||||
delete jsondata.issue.contact;
|
||||
delete jsondata.issue.requestor;
|
||||
delete jsondata.issue.issuetype;
|
||||
delete jsondata.issue.location;
|
||||
}
|
||||
},
|
||||
|
||||
_analyze_fields: function (fields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
|
||||
{
|
||||
},
|
||||
|
||||
_validate_fields: function (fields, params, jsondata) /* valideer fields, alle constraints die niet door de database worden afgevangen */
|
||||
{
|
||||
// als einddatum ingevuld is moet deze groter/gelijk zijn aan de begindatum
|
||||
},
|
||||
|
||||
_validate_close: function (params, jsondata, the_key) /* uit: mld_close_save.asp */
|
||||
{
|
||||
var mld_key = the_key;
|
||||
var this_mld = mld.func_enabled_melding(mld_key);
|
||||
user.auth_required_or_abort(this_mld.canClose); // Als je mag accepteren mag je ook rejecten
|
||||
|
||||
params.data = {};
|
||||
params.data.tobeclosed = false;
|
||||
params.data.canCloseOpdrOfMld = [];
|
||||
var canCloseOpdr = [];
|
||||
var reqStatusEmpty = [];
|
||||
var noOpdrCloseAtAll = false;
|
||||
var futureOpdr = false;
|
||||
|
||||
// Zijn er nog kenmerken die nu wel verplicht zijn?
|
||||
var kvsAfwezig = mld.hasRequiredStatusEmpty(mld_key, 5);
|
||||
if (kvsAfwezig.length)
|
||||
{
|
||||
var mldnr = mld.mld_prefix(mld_key) + mld_key;
|
||||
reqStatusEmpty.push(L("lcl_mld_req_status_empty").format(kvsAfwezig.join(", "), mldnr) );
|
||||
}
|
||||
// Zijn er nog lopende opdrachten?
|
||||
var sql = "SELECT o.mld_opdr_key"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " WHERE o.mld_melding_key = " + mld_key
|
||||
+ " AND o.mld_statusopdr_key NOT IN (1, 6, 7, 9)";
|
||||
var oRsOM = Oracle.Execute(sql);
|
||||
while (!oRsOM.eof)
|
||||
{ // Voor elke opdracht van een melding controleren of deze afgemeld mag worden
|
||||
var mld_opdr_key = oRsOM("mld_opdr_key").Value;
|
||||
sql = "SELECT mld_opdr_einddatum"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " WHERE o.mld_opdr_key = " + mld_opdr_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
// Als Setting S("mld_ord_afmeld_future") niet is gezet (0): Opdrachten waarvan de einddatum in de toekomst ligt mogen niet worden afgemeld.
|
||||
var this_opdr = mld.func_enabled_opdracht(mld_opdr_key);
|
||||
if (!this_opdr.canClose || (S("mld_ord_afmeld_future") != 1 && (oRs("mld_opdr_einddatum").value > new Date())))
|
||||
{ // Geen autorisatie om alle opdrachten van een melding af te melden of opdrachten in de toekomst
|
||||
// met setting S("mld_ord_afmeld_future") niet gezet-->dan geen enkele van die melding
|
||||
noOpdrCloseAtAll = true;
|
||||
if (S("mld_ord_afmeld_future") != 1 && (oRs("mld_opdr_einddatum").value > new Date()))
|
||||
futureOpdr = true; // Indien opdrachten in de toekomst en setting S("mld_ord_afmeld_future") niet gezet (0) dan mag je de melding niet afmelden
|
||||
}
|
||||
oRs.Close();
|
||||
params.data.canCloseOpdrOfMld.push(mld_opdr_key);
|
||||
oRsOM.MoveNext();
|
||||
}
|
||||
oRsOM.Close();
|
||||
|
||||
if (!futureOpdr && !noOpdrCloseAtAll)
|
||||
{ // Indien opdrachten in de toekomst en setting S("mld_ord_afmeld_future") niet gezet (0) dan mag je de melding niet afmelden
|
||||
// EN geen opdrachten of alle opdrachten mogen gesloten worden, dan kan de melding afgemeld worden
|
||||
params.data.tobeclosed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
msgError = "Issue can not be closed";
|
||||
api2.error(500, msgError);
|
||||
}
|
||||
},
|
||||
|
||||
REST_PUT: function (params, jsondata, the_key) /* update call */
|
||||
{
|
||||
if (!jsondata.issue.id) jsondata.issue.id = the_key;
|
||||
var scope = getQParamSafe("scope", "fe");
|
||||
var autfunction = { fe : "WEB_MLDUSE", fo : "WEB_MLDFOF", bo : "WEB_MLDBOF", mi : "WEB_MLDBAC" } [scope];
|
||||
params.authparams = user.checkAutorisation(autfunction, null, null, true); /* pessimistic */
|
||||
|
||||
// Hier kom je niet meer terecht als bovenstaande autorisatiecheck niet tot succes leidt.
|
||||
|
||||
var mld_key = the_key;
|
||||
var this_mld = mld.func_enabled_melding(mld_key);
|
||||
user.auth_required_or_abort(this_mld.canChange); // Geen wijzigingen toestaan bij onvoldoende rechten.
|
||||
|
||||
model_issues._pre_analyze_fields(params, jsondata);
|
||||
var fields = api2.update_fields(params, model_issues, jsondata); // Build updater
|
||||
model_issues._analyze_fields(fields, params, jsondata);
|
||||
model_issues._validate_fields(fields, params, jsondata);
|
||||
|
||||
var wheres = [" mld_melding_key = " + mld_key];
|
||||
var mldUpd = buildTrackingUpdate("mld_melding", wheres.join(" AND " ), fields, { noValidateToken: true });
|
||||
|
||||
// Alle gegevens bijwerken.
|
||||
var sql = "BEGIN "
|
||||
+ mldUpd.sql + ";"
|
||||
+ " END;";
|
||||
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (err.friendlyMsg)
|
||||
abort_with_warning(err.friendlyMsg);
|
||||
|
||||
params.data.module = "MLD"; // model_notes moet weten bij wekle module de notes horen.
|
||||
var mldtrack = api2.process_includes(params, model_issues, jsondata, mld_key);
|
||||
|
||||
// update nog tracken
|
||||
if (mld_key > 0)
|
||||
{
|
||||
shared.trackaction("MLDUPD",
|
||||
mld_key,
|
||||
L("lcl_mld_is_mldupdtrack").format(mld_key) + (mldUpd.trackarray.length > 0? "\n" : "") + mldUpd.trackarray.join("\n"));
|
||||
};
|
||||
|
||||
return { key: mld_key };
|
||||
},
|
||||
|
||||
REST_POST: function (params, jsondata) /* new call */
|
||||
{
|
||||
var scope = getQParamSafe("scope", "fe");
|
||||
var autfunction = { fe : "WEB_MLDUSE", fo : "WEB_MLDFOF", bo : "WEB_MLDBOF", mi : "WEB_MLDBAC" } [scope];
|
||||
params.authparams = user.checkAutorisation(autfunction, null, null, true); /* pessimistic */
|
||||
|
||||
// Hier kom je niet meer terecht als bovenstaande autorisatiecheck niet tot succes leidt.
|
||||
params.isNew = true;
|
||||
model_issues._pre_analyze_fields(params, jsondata);
|
||||
|
||||
var this_mld = mld.func_enabled_mld(params.data.mld_ins_discipline_key, "D");
|
||||
user.auth_required_or_abort(this_mld.canFEwrite || this_mld.canFOwrite);
|
||||
//
|
||||
var fields = api2.update_fields(params, model_issues, jsondata); // Build updater
|
||||
model_issues._analyze_fields(fields, params, jsondata);
|
||||
model_issues._validate_fields(fields, params, jsondata);
|
||||
|
||||
fields.push({ dbs: "mld_alg_onroerendgoed_keys", typ: "key", val: (params.data.alg_onroerendgoed_keys==-1 ? null : params.data.alg_onroerendgoed_keys) });
|
||||
fields.push({ dbs: "mld_meldbron_key", typ: "key", val: S("mld_meldbron_key") });
|
||||
fields.push({ dbs: "mld_melding_module", typ: "varchar", val: "MLD" });
|
||||
fields.push({ dbs: "mld_melding_key", typ: "key", seq: "mld_s_mld_melding_key" });
|
||||
|
||||
var mldIns = buildInsert("mld_melding", fields, { noValidateToken: true });
|
||||
var new_key = mldIns.sequences["mld_melding_key"];
|
||||
var sql = "BEGIN "
|
||||
+ mldIns.sql + ";"
|
||||
+ "END;";
|
||||
Oracle.Execute(mldIns.sql);
|
||||
|
||||
mld.setmeldingstatus(new_key, (params.data.mld_directklaar? 0 : 2)); // Zorgt ook voor tracking & daarmee notificatie
|
||||
|
||||
if (params.data.is_kto_antwoord) // die direct afmelden
|
||||
mld.setmeldingstatus(new_key, 5);
|
||||
|
||||
params.data.module = "MLD"; // model_notes moet weten bij wekle module de notes horen.
|
||||
|
||||
return { key: new_key };
|
||||
},
|
||||
|
||||
REST_DELETE: function (params, jsondata, the_key) /* delete call */
|
||||
{
|
||||
// Een melding wordt niet verwijderd maar wordt afgesloten.
|
||||
var scope = getQParamSafe("scope", "fe");
|
||||
var autfunction = { fe : "WEB_MLDUSE", fo : "WEB_MLDFOF", bo : "WEB_MLDBOF", mi : "WEB_MLDBAC" } [scope];
|
||||
params.authparams = user.checkAutorisation(autfunction, null, null, true); /* pessimistic */
|
||||
|
||||
// Hier kom je niet meer terecht als bovenstaande autorisatiecheck niet tot succes leidt.
|
||||
|
||||
model_issues._validate_close(params, jsondata, the_key);
|
||||
// De melding en eventuele opdrachten mogen afgemeld worden.
|
||||
|
||||
// Ik had nog graag een L("lcl_mld_final_remark") toe willen voegen aan de melding, maar er is geen jsondata bij DELETE.
|
||||
|
||||
// Eventuele opdrachten afmelden.
|
||||
for (opdr_i in params.data.canCloseOpdrOfMld)
|
||||
{
|
||||
mld.setopdrachtstatus(canCloseOpdrOfMld[opdr_i], 6); // Technisch voltooid (TV) (Afgemeld)
|
||||
}
|
||||
|
||||
// De melding zelf afmelden.
|
||||
mld.setmeldingstatus(the_key, 5);
|
||||
}
|
||||
}
|
||||
%>
|
||||
%>
|
||||
|
||||
195
APPL/API2/model_notes.inc
Normal file
@@ -0,0 +1,195 @@
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: model_notes.inc
|
||||
|
||||
Description: notes model. Dit bestand heeft niets met interfacing te maken
|
||||
maar werkt uitsluitend op JSON-data
|
||||
Parameters:
|
||||
Context:
|
||||
|
||||
Notes: Dummy placeholder
|
||||
*/
|
||||
|
||||
/*
|
||||
alle notes in 1 view
|
||||
CREATE OR REPLACE VIEW fac_v_notes
|
||||
( module, key, parent_key, writer_key, aanmaak, omschrijving)
|
||||
AS
|
||||
SELECT 'MLD'
|
||||
, mld_melding_note_key
|
||||
, mld_melding_key
|
||||
, prs_perslid_key
|
||||
, mld_melding_note_aanmaak
|
||||
, mld_melding_note_omschrijving
|
||||
FROM mld_melding_note
|
||||
UNION
|
||||
SELECT 'ORD'
|
||||
, mld_opdr_note_key
|
||||
, mld_opdr_key
|
||||
, prs_perslid_key
|
||||
, mld_opdr_note_aanmaak
|
||||
, mld_opdr_note_omschrijving
|
||||
FROM mld_opdr_note
|
||||
UNION
|
||||
SELECT 'FIN'
|
||||
, fin_factuur_note_key
|
||||
, fin_factuur_key
|
||||
, prs_perslid_key
|
||||
, fin_factuur_note_aanmaak
|
||||
, fin_factuur_note_omschrijving
|
||||
FROM fin_factuur_note
|
||||
UNION
|
||||
SELECT 'CNT'
|
||||
, cnt_contract_note_key
|
||||
, cnt_contract_key
|
||||
, prs_perslid_key
|
||||
, cnt_contract_note_aanmaak
|
||||
, cnt_contract_note_omschrijving
|
||||
FROM cnt_contract_note
|
||||
UNION
|
||||
SELECT 'PRJ'
|
||||
, prj_scenario_note_key
|
||||
, prj_scenario_key
|
||||
, prs_perslid_key
|
||||
, prj_scenario_note_aanmaak
|
||||
, prj_scenario_note_omschrijving
|
||||
FROM prj_scenario_note
|
||||
*/
|
||||
|
||||
%>
|
||||
<!-- #include file="../mld/mld.inc" -->
|
||||
<!-- #include file="model_objects.inc"-->
|
||||
<%
|
||||
|
||||
model_notes =
|
||||
{
|
||||
module: "FAC",
|
||||
table: "fac_v_notes",
|
||||
primary: "key",
|
||||
records_name: "notes",
|
||||
record_name: "note",
|
||||
fields: [{ name: "id", dbs: "key", typ: "key", filter: "exact" },
|
||||
{ name: "writer", dbs: "writer_key", typ: "key", foreign: "prs_perslid", filter: "exact" },
|
||||
{ name: "description", dbs: "omschrijving", typ: "varchar", filter: "like" },
|
||||
{ name: "createdate", dbs: "aanmaak", typ: "datetime" }
|
||||
// { name: "module", dbs: "module", typ: "varchar", filter: "exact" }
|
||||
// { name: "parent", dbs: "parent_key", typ: "key", filter: "exact" } //niet terug linken
|
||||
],
|
||||
|
||||
|
||||
_analyze_fields: function (fields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
|
||||
{
|
||||
},
|
||||
|
||||
_validate_fields: function (fields, params, jsondata) /* valideer fields, alle constraints die niet door de database worden afgevangen */
|
||||
{
|
||||
},
|
||||
|
||||
_getNoteTable: function (module)
|
||||
{
|
||||
var tabel = {}; // De tabel met notes die aangepast moet worden.
|
||||
switch (module)
|
||||
{
|
||||
case "MLD":
|
||||
{ tabel.naam = "mld_melding_note";
|
||||
tabel.seq = "mld_s_mld_melding_note_key";
|
||||
tabel.parent = "mld_melding";
|
||||
break;
|
||||
}
|
||||
case "ORD":
|
||||
{ tabel.naam = "mld_opdr_note";
|
||||
tabel.seq = "mld_s_mld_opdr_note_key";
|
||||
tabel.parent = "mld_opdr";
|
||||
break;
|
||||
}
|
||||
case "FIN":
|
||||
{ tabel.naam = "fin_factuur_note";
|
||||
tabel.seq = "fin_s_fin_factuur_note_key";
|
||||
tabel.parent = "fin_factuur";
|
||||
break;
|
||||
}
|
||||
case "CNT":
|
||||
{ tabel.naam = "cnt_contract_note";
|
||||
tabel.seq = "cnt_s_cnt_contract_note_key";
|
||||
tabel.parent = "cnt_contract";
|
||||
break;
|
||||
}
|
||||
case "PRJ":
|
||||
{ tabel.naam = "prj_scenario_note";
|
||||
tabel.seq = "prj_s_prj_scenario_note_key";
|
||||
tabel.parent = "prj_scenario";
|
||||
break;
|
||||
}
|
||||
}
|
||||
return tabel;
|
||||
},
|
||||
|
||||
REST_GET: function _GET(params)
|
||||
{
|
||||
var query = api2.sqlfields(params, model_notes );
|
||||
var wheres = api2.sqlfilter(params, model_notes);
|
||||
query.wheres = query.wheres.concat(wheres);
|
||||
|
||||
var sql = "SELECT " + query.selects.join(", ")
|
||||
+ " FROM " + query.tables.join(", ")
|
||||
+ (params.filter.id || params.filter.parent ? " WHERE " + query.wheres.join(" AND " ) : "");
|
||||
|
||||
var json = api2.sql2json (params, sql, model_notes );
|
||||
|
||||
return json;
|
||||
},
|
||||
|
||||
REST_PUT: function (params, jsondata, the_key) /* update note */
|
||||
{
|
||||
// Een note kan alleen worden aangepast door de persoon die hem geschreven heeft.
|
||||
// Alleen van de meest recente note bij een (melding/opdrachte/...) kan de omschrijving worden aangepast.
|
||||
//
|
||||
var fields = api2.update_fields(params, model_notes, jsondata); // Build updater
|
||||
|
||||
var xxx_tabel = model_notes._getNoteTable(params.data.module); // De tabel met notes die aangepast moet worden.
|
||||
// Wijzig de veldnamen overeenkomstig de te gebruiken tabel
|
||||
for (i in fields)
|
||||
{
|
||||
if (fields[i].dbs == "writer_key")
|
||||
fields[i].dbs = "prs_perslid_key";
|
||||
else
|
||||
fields[i].dbs = xxx_tabel.naam + "_" + fields[i].dbs;
|
||||
}
|
||||
var wheres = [ xxx_tabel.naam+"_key = " + the_key];
|
||||
var xxxUpd = buildTrackingUpdate(xxx_tabel.naam, wheres.join(" AND " ), fields, { noValidateToken: true });
|
||||
|
||||
Oracle.Execute(xxxUpd.sql);
|
||||
|
||||
return { key: the_key };
|
||||
},
|
||||
|
||||
REST_POST: function (params, jsondata) /* new note */
|
||||
{
|
||||
params.isNew = true;
|
||||
//
|
||||
var xxx_tabel = model_notes._getNoteTable(params.data.module); // De tabel met notes die aangepast moet worden.
|
||||
var fields = [];
|
||||
fields.push({ dbs: "prs_perslid_key", typ: "key", val: user_key });
|
||||
fields.push({ dbs: xxx_tabel.parent+"_key", typ: "key", val: params.filter.id });
|
||||
fields.push({ dbs: xxx_tabel.naam+"_aanmaak", typ: "datetime", val: new Date() });
|
||||
fields.push({ dbs: xxx_tabel.naam+"_omschrijving", typ: "varchar", val: jsondata.description });
|
||||
fields.push({ dbs: xxx_tabel.naam+"_key", typ: "key", seq: xxx_tabel.seq });
|
||||
|
||||
var xxxIns = buildInsert(xxx_tabel.naam, fields, { noValidateToken: true });
|
||||
var new_key = xxxIns.sequences[xxx_tabel.naam];
|
||||
|
||||
var sql = "BEGIN "
|
||||
+ xxxIns.sql + ";"
|
||||
+ "END;";
|
||||
Oracle.Execute(xxxIns.sql);
|
||||
|
||||
return { key: new_key };
|
||||
},
|
||||
|
||||
REST_DELETE: function (params, jsondata, the_key) /* delete note */
|
||||
{ // Niet van toepassing.
|
||||
}
|
||||
}
|
||||
%>
|
||||
193
APPL/BES/bes.inc
@@ -126,6 +126,7 @@
|
||||
disc_params_levopm_url : oRs("bes_disc_params_levopm_url").Value,
|
||||
disc_params_leverdagen : oRs("bes_disc_params_leverdagen").Value || 0,
|
||||
disc_params_punchouturl : oRs("bes_disc_params_punchouturl").Value,
|
||||
isFreeArticle : oRs("bes_disc_params_punchouturl").Value == "FREE",// met 2015.1 komt er een echt 'vinkje'
|
||||
disc_params_punch_bedr_key : oRs("bes_disc_params_punch_bedr_key").Value,
|
||||
disc_params_logo_url : oRs("bes_disc_params_logo_url").Value,
|
||||
disc_params_autoacceptrfo : oRs("bes_disc_params_autoacceptrfo").Value,
|
||||
@@ -323,7 +324,7 @@
|
||||
BLOCK_END();
|
||||
},
|
||||
|
||||
bestelling_info: function (bes_key)
|
||||
bestelling_info: function _bestelling_info(bes_key)
|
||||
{
|
||||
var srtdeel_arr = [];
|
||||
var amount_arr = [];
|
||||
@@ -436,6 +437,7 @@
|
||||
+ ", SUM(bi.bes_bestelling_item_aantal * bi.bes_bestelling_item_prijs) totaal"
|
||||
+ ", SUM(bi.bes_bestelling_item_aantalontv) aantalontv"
|
||||
+ ", MAX(bsg.bes_srtgroep_key) bes_srtgroep_key" // Wordt gebruikt tbv. singlegroep en dan is er maar eentje
|
||||
+ ", MAX(bsd.prs_bedrijf_key) prs_bedrijf_key" // Wordt gebruikt tbv. free-artikel van <20><>n bedrijf
|
||||
+ ", MAX(bes_disc_params_singlegroep) singlegroep"
|
||||
+ ", MAX(ks.prs_kostensoort_btw) inclBTW"
|
||||
+ ", MAX(COALESCE(bes_srtdeel_wijzigdagen, 9999)) bes_srtdeel_wijzigdagen"
|
||||
@@ -461,6 +463,7 @@
|
||||
bes_bestelling.dis_key = oRs("ins_discipline_key").Value,
|
||||
bes_bestelling.srtgroep = oRs("bes_srtgroep_key").Value,
|
||||
bes_bestelling.singlegroep = oRs("singlegroep").Value == 1,
|
||||
bes_bestelling.bedrijf_key = oRs("prs_bedrijf_key").Value,
|
||||
bes_bestelling.inclBTW = oRs("inclBTW").Value || 0,
|
||||
bes_bestelling.totaal = oRs("totaal").Value || 0;
|
||||
bes_bestelling.aantalontv = oRs("aantalontv").Value || 0;
|
||||
@@ -707,7 +710,8 @@
|
||||
bresult.canRetourURL = false; // (Deels) retour via site leverancier
|
||||
bresult.canRetourBES = false; // (Deels) retour via negatieve levering
|
||||
|
||||
var isPunchout = bes_disc_info.disc_params_punchouturl? true : false;
|
||||
bresult.isFreeArticle = bes_disc_info.disc_params_punchouturl == "FREE"; // met 2015.1 komt er een echt 'vinkje'
|
||||
var isPunchout = !bresult.isFreeArticle && bes_disc_info.disc_params_punchouturl;
|
||||
bresult.canMainChange = false; // 'Bovenste stuk', voormalig lower_part
|
||||
bresult.canItemsChange = false; // Mag ik toevoegen en aantallen verhogen
|
||||
|
||||
@@ -896,7 +900,7 @@
|
||||
return bresult;
|
||||
},
|
||||
|
||||
staffel_info: function (srtdeel_keys, itemaantal_arr)
|
||||
staffel_info: function _staffel_info(srtdeel_keys, itemaantal_arr)
|
||||
{
|
||||
var lsgnaamstring = [];
|
||||
var lsgkeystring = [];
|
||||
@@ -947,6 +951,9 @@
|
||||
{
|
||||
// Oplaan bedrijf waar alle artikelen worden besteld. Moet voor elke artikel hetzelfde zijn.
|
||||
prs_bedrijf_key = oRs("prs_bedrijf_key").Value;
|
||||
if (!prs_bedrijf_key)
|
||||
__DoLog("Artikel wordt niet door een bedrijf geleverd.", "#FFFF00")
|
||||
|
||||
// Opslaan van staffelgroep van een item
|
||||
ItemArray.push({ item_key : srtdeel_keys[i],
|
||||
aantal : itemaantal_arr[i],
|
||||
@@ -1034,19 +1041,13 @@
|
||||
sql = "SELECT BES.calcopdrachtkortingbedrag(" + prs_bedrijf_key + ", " + subtotaal + ") opdrachtkortingbedrag"
|
||||
+ " FROM DUAL"
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
opdrachtkortingbedrag = oRs("opdrachtkortingbedrag").Value;
|
||||
}
|
||||
opdrachtkortingbedrag = oRs("opdrachtkortingbedrag").Value;
|
||||
oRs.Close();
|
||||
|
||||
sql = "SELECT BES.calcopdrachtkorting(" + prs_bedrijf_key + ", " + subtotaal + ") opdrachtkorting FROM DUAL";
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
// Korting tot grenswaarde
|
||||
opdrachtkorting = oRs("opdrachtkorting").Value;
|
||||
}
|
||||
// Korting tot grenswaarde
|
||||
opdrachtkorting = oRs("opdrachtkorting").Value;
|
||||
oRs.Close();
|
||||
|
||||
// Nieuw subtotaal: Bestelbedrag - alle kortingen
|
||||
@@ -1120,107 +1121,17 @@
|
||||
return result;
|
||||
},
|
||||
|
||||
besteed_budget_pgb: function (prs_key, dis_key, bes_key)
|
||||
{ // Besteed budget van meegegeven persoon dit jaar voor de meegegeven discipline i.v.m. Persoons Gebonden Budget (PGB)
|
||||
// Eventueel uitgezonderd (huidige) bestelling bes_key
|
||||
var budgetbesteld = 0;
|
||||
if (bes_disc_info.disc_params_pgb == 1 || bes_disc_info.disc_params_pgb == 3)
|
||||
{ // Totaalbedrag van eerder bestellingen dit jaar van de besteller i.v.m. Persoons Gebonden Budget (PGB)
|
||||
sql = "SELECT SUM(totaalbedrag) totaalbedrag"
|
||||
+ ", SUM(b.bes_bestelling_korting) korting"
|
||||
+ ", SUM(b.bes_bestelling_levkosten) levkosten"
|
||||
+ " FROM (SELECT SUM (bi.bes_bestelling_item_aantal * bi.bes_bestelling_item_prijs) totaalbedrag"
|
||||
+ ", b.bes_bestelling_key"
|
||||
+ " FROM bes_bestelling b"
|
||||
+ ", bes_bestelling_item bi"
|
||||
+ ", bes_srtdeel isd"
|
||||
+ ", bes_srtgroep isg"
|
||||
+ " WHERE b.bes_bestelling_key = bi.bes_bestelling_key"
|
||||
+ " AND bi.bes_srtdeel_key = isd.bes_srtdeel_key"
|
||||
+ " AND isd.bes_srtgroep_key = isg.bes_srtgroep_key"
|
||||
+ " AND b.prs_perslid_key = " + prs_key
|
||||
+ " AND isg.ins_discipline_key = " + dis_key
|
||||
+ (bes_key > -1
|
||||
? " AND b.bes_bestelling_key <> " + bes_key
|
||||
: "")
|
||||
+ " AND b.bes_bestelling_datum >= TRUNC (SYSDATE, 'YEAR')"
|
||||
+ " GROUP BY b.bes_bestelling_key) tot"
|
||||
+ ", bes_bestelling b"
|
||||
+ " WHERE b.bes_bestelling_key = tot.bes_bestelling_key"
|
||||
oRs = Oracle.Execute(sql);
|
||||
prstotaalbesteld = oRs("totaalbedrag").Value || 0;
|
||||
korting = oRs("korting").Value || 0;
|
||||
levkosten = oRs("levkosten").Value || 0;
|
||||
budgetbesteld = prstotaalbesteld - korting + levkosten;
|
||||
}
|
||||
return budgetbesteld;
|
||||
},
|
||||
|
||||
besteed_budget_agb: function (prs_key, bes_key)
|
||||
{ // Besteed budget van meegegeven persoon afgelopen periode i.v.m. Afdelings Gebonden Budget (AGB)
|
||||
// Eventueel uitgezonderd (huidige) bestelling bes_key
|
||||
var budgetbesteld = 0;
|
||||
if (bes_disc_info.disc_params_pgb == 2 || bes_disc_info.disc_params_pgb == 3)
|
||||
{ // Totaalbedrag van eerder bestellingen afgelopen periode van de besteller i.v.m. Afdelings Gebonden Budget (AGB)
|
||||
var sql = "SELECT prs.getkostenplaats(" + prs_key + ", " + S("prs_approvemethod") + ", -1) kostenplaats FROM DUAL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var kp_key = oRs("kostenplaats").Value;
|
||||
|
||||
// Limietperiode kostenplaats (prs_kostenplaats_limietperiode): 0(of NULL)=geen(oneindig) (default), 1=maand, 2=jaar
|
||||
if (kp_key > 0)
|
||||
{ // Er is een kostenplaats gevonden
|
||||
var sql = "SELECT k.prs_kostenplaats_limietperiode"
|
||||
+ " FROM prs_kostenplaats k"
|
||||
+ " WHERE k.prs_kostenplaats_key = " + kp_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var kp_limietperiode = oRs("prs_kostenplaats_limietperiode").Value;
|
||||
var periode;
|
||||
if (kp_limietperiode == 1)
|
||||
periode = "MM"; // Maandelijks budget
|
||||
else if (kp_limietperiode == 2)
|
||||
periode = "YYYY"; // Jaarlijks budget
|
||||
|
||||
sql = "SELECT SUM(totaalbedrag) totaalbedrag"
|
||||
+ " , SUM(b.bes_bestelling_korting) korting"
|
||||
+ " , SUM(b.bes_bestelling_levkosten) levkosten"
|
||||
+ " FROM (SELECT SUM (bi.bes_bestelling_item_aantal * bi.bes_bestelling_item_prijs) totaalbedrag"
|
||||
+ " , b.bes_bestelling_key"
|
||||
+ " FROM bes_bestelling b"
|
||||
+ " , bes_bestelling_item bi"
|
||||
+ " WHERE b.bes_bestelling_key = bi.bes_bestelling_key"
|
||||
+ " AND b.prs_kostenplaats_key = " + kp_key
|
||||
+ (bes_key > -1
|
||||
? " AND b.bes_bestelling_key <> " + bes_key
|
||||
: "")
|
||||
+ (kp_limietperiode && kp_limietperiode > 0
|
||||
? " AND b.bes_bestelling_datum >= TRUNC (SYSDATE, " + safe.quoted_sql(periode) + ")" // De eerste van de deze maand of 1 januari dit jaar
|
||||
: "")
|
||||
+ " GROUP BY b.bes_bestelling_key) tot"
|
||||
+ ", bes_bestelling b"
|
||||
+ " WHERE b.bes_bestelling_key = tot.bes_bestelling_key"
|
||||
oRs = Oracle.Execute(sql);
|
||||
prstotaalbesteld = oRs("totaalbedrag").Value || 0;
|
||||
korting = oRs("korting").Value || 0;
|
||||
levkosten = oRs("levkosten").Value || 0;
|
||||
budgetbesteld = prstotaalbesteld - korting + levkosten;
|
||||
}
|
||||
}
|
||||
return budgetbesteld;
|
||||
},
|
||||
|
||||
// Geeft het PGB overschrijdingsbedrag van de PGB-limiet terug
|
||||
get_pgb_exceed_amount: function(bestelbedrag, prs_key, dis_key, bes_key)
|
||||
{
|
||||
var amount = bestelbedrag; // Indien geen pgblimiet dan gehele bestel bedrag
|
||||
|
||||
// Bepaal PGB limiet
|
||||
var sql = "SELECT prs.getprofiellimiet(" + prs_key + ", " + dis_key + ") pgblimiet FROM DUAL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var pgblimiet = oRs("pgblimiet").Value;
|
||||
// Opvragen PGB limiet
|
||||
var pgblimiet = budget.get_pgblimiet(prs_key, dis_key);
|
||||
|
||||
if (pgblimiet != null)
|
||||
{ // Verschil PGB limiet met het besteed budget van persoon en desbetreffende discipline voor dit jaar inclusief bestelbedrag
|
||||
amount = (bes.besteed_budget_pgb(prs_key, dis_key, bes_key) + bestelbedrag - pgblimiet);
|
||||
amount = (budget.besteed_budget_pgb(prs_key, dis_key, {bes_key: bes_key}) + bestelbedrag - pgblimiet);
|
||||
}
|
||||
return amount;
|
||||
},
|
||||
@@ -1230,14 +1141,12 @@
|
||||
{
|
||||
var amount = bestelbedrag; // Indien geen agblimiet dan gehele bestel bedrag
|
||||
|
||||
// Bepaal AGB limiet
|
||||
var sql = "SELECT prs.getlimietagb(" + prs_key + ", " + S("prs_approvemethod") + ", " + dis_key + ") agblimiet FROM DUAL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var agblimiet = oRs("agblimiet").Value;
|
||||
// Opvragen AGB limiet
|
||||
var agblimiet = budget.get_agblimiet(prs_key, dis_key);
|
||||
|
||||
if (agblimiet != null)
|
||||
{ // Verschil AGB limiet met het besteed budget van persoon en desbetreffende discipline voor dit jaar inclusief bestelbedrag
|
||||
amount = (bes.besteed_budget_agb(prs_key, bes_key) + bestelbedrag - agblimiet);
|
||||
amount = (budget.besteed_budget_agb(prs_key, {bes_key: bes_key}) + bestelbedrag - agblimiet);
|
||||
}
|
||||
return amount;
|
||||
},
|
||||
@@ -1250,11 +1159,10 @@
|
||||
|
||||
// Geeft true als het bestelde bedrag boven de PGB-limiet van prs_key uit komt
|
||||
// en dus (eventueel) goedkeuring vereist zal zijn.
|
||||
// Negeer evt bestaand bestelbedrag van bes_key (indien > -1)
|
||||
exceeds_pgb: function(bestelbedrag, prs_key, dis_key, bes_key)
|
||||
exceeds_pgb: function(bestelbedrag, prs_key, dis_key)
|
||||
{
|
||||
if (bes_disc_info.disc_params_pgb == 1 || bes_disc_info.disc_params_pgb == 3)
|
||||
return shared.exceeds_profiel(bestelbedrag + bes.besteed_budget_pgb(prs_key, dis_key), prs_key, dis_key);
|
||||
return budget.exceeds_profiel(bestelbedrag + budget.besteed_budget_pgb(prs_key, dis_key), prs_key, dis_key);
|
||||
else // Geen pgb. Dan kan je ook niet boven de pgb zitten
|
||||
return false;
|
||||
},
|
||||
@@ -1265,7 +1173,7 @@
|
||||
exceeds_agb: function(bestelbedrag, prs_key, dis_key, bes_key)
|
||||
{
|
||||
if (bes_disc_info.disc_params_pgb == 2 || bes_disc_info.disc_params_pgb == 3)
|
||||
return shared.exceeds_limietagb(bestelbedrag + bes.besteed_budget_agb(prs_key, bes_key), prs_key, dis_key);
|
||||
return budget.exceeds_limietagb(bestelbedrag + budget.besteed_budget_agb(prs_key, {bes_key: bes_key}), prs_key, dis_key);
|
||||
else // Geen agb. Dan kan je ook niet boven de agb zitten
|
||||
return false;
|
||||
},
|
||||
@@ -1390,22 +1298,73 @@
|
||||
// JGL: Is dat niet allemaal automatisch meegecascadeerd?
|
||||
// Verwijder bestelaanvraag items
|
||||
sql = "DELETE bes_bestelling_item WHERE bes_bestelling_key = " + bes_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
Oracle.Execute(sql);
|
||||
|
||||
// Indien een bestelopdracht aanwezig is dan bestelopdracht + bestelopdracht items verwijderen.
|
||||
if (bestelopdr_key > 0)
|
||||
{
|
||||
// Verwijder bestelopdracht items
|
||||
sql = "DELETE bes_bestelopdr_item WHERE bes_bestelopdr_key = " + bestelopdr_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
Oracle.Execute(sql);
|
||||
|
||||
// Verwijder bestelopdracht
|
||||
sql = "DELETE bes_bestelopdr WHERE bes_bestelopdr_key = " + bestelopdr_key
|
||||
oRs = Oracle.Execute(sql);
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
message = L("lcl_bes_deleted_1") + S("bes_bestelling_prefix") + bes_key + L("lcl_bes_deleted_2");
|
||||
}
|
||||
return message;
|
||||
},
|
||||
// returns bes_srtdeel_key
|
||||
upsert_deel: function _upsert_deel(dis_key, params)
|
||||
{
|
||||
if (!("srtdeel_btw" in params))
|
||||
params.srtdeel_btw = 21.0;
|
||||
if (!("srtgroep_omschrijving" in params) && params.srtgroep_key > 0)
|
||||
{ // upsert_srtdeel werkt alleen op basis van omschrijving, helaas (nog) niet op srtgroep_key
|
||||
var sql = "SELECT bes_srtgroep_omschrijving"
|
||||
+ " FROM bes_srtgroep"
|
||||
+ " WHERE bes_srtgroep_key = " + params.srtgroep_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
params.srtgroep_omschrijving = oRs("bes_srtgroep_omschrijving").Value;;
|
||||
oRs.Close()
|
||||
}
|
||||
var sql = "BEGIN bes.upsert_srtdeel "
|
||||
+ " ( " + dis_key
|
||||
+ " , " + safe.quoted_sql(params.srtgroep_omschrijving, 60) // bes_srtgroep_omschrijving
|
||||
+ " , " + safe.quoted_sql(params.srtdeel_omschrijving, 100) // bes_srtdeel_omschrijving
|
||||
+ " , " + params.srtdeel_prijs
|
||||
+ " , " + params.srtdeel_btw
|
||||
+ " , " + safe.quoted_sql(params.srtdeel_eenheid, 30) // bes_srtdeel_eenheid
|
||||
+ " , " + safe.quoted_sql(params.srtdeel_nr, 32) // bes_srtdeel_nr
|
||||
+ " , " + (params.bedrijf_key || -1)
|
||||
+ " , NULL " // vervaldatum
|
||||
+ " , ''"
|
||||
+ " , 1 "
|
||||
+ " , " + safe.quoted_sql(params.opmerking, 2000) + "); END;";
|
||||
|
||||
Oracle.Execute(sql);
|
||||
// JGL: Het zou fijn zijn als upsert_srtdeel een functie wordt en gewoon
|
||||
// de bes_srtdeel_key oplevert. Dan wordt het volgende veel simpeler:
|
||||
// PF: Maar dat kan helemaal niet, want een select mag geen DML e.d doen.
|
||||
// Wel beter zou zijn bes.get_upsertkey(), nader te definieren.
|
||||
|
||||
// Zoek aangemaakte item terug.
|
||||
sql = "SELECT bes_srtdeel_key "
|
||||
+ " FROM bes_srtdeel sd, bes_srtgroep sg "
|
||||
+ " WHERE sg.ins_discipline_key = " + dis_key
|
||||
+ " AND sg.bes_srtgroep_key = sd.bes_srtgroep_key "
|
||||
+ " AND sg.bes_srtgroep_omschrijving = " + safe.quoted_sql(params.srtgroep_omschrijving, 60) /* NOXLAT */
|
||||
+ " AND UPPER(sd.bes_srtdeel_omschrijving) = " + safe.quoted_sql_upper(params.srtdeel_omschrijving, 100) /* NOXLAT */
|
||||
+ " AND sd.bes_srtdeel_eenheid " + (params.srtdeel_eenheid? "= " + safe.quoted_sql(params.srtdeel_eenheid, 30): " IS NULL")
|
||||
+ " AND sd.bes_srtdeel_nr = " + safe.quoted_sql(params.srtdeel_nr, 32)
|
||||
+ " ORDER BY sd.bes_srtdeel_key DESC ";
|
||||
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var bes_srtdeel_key = oRs("bes_srtdeel_key").Value;
|
||||
oRs.Close();
|
||||
__Log("bes_srtdeel_key: " + bes_srtdeel_key);
|
||||
return bes_srtdeel_key;
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -17,6 +17,7 @@ DOCTYPE_Disable = 1;
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="../Shared/budget.inc" -->
|
||||
<!-- #include file="bes.inc" -->
|
||||
|
||||
<%
|
||||
@@ -39,7 +40,7 @@ for (var i = 0; i < bes_key_arr.length; i++)
|
||||
totaal: bes_bestelling.totaal,
|
||||
rfoBesKosten: bes_bestelling.rfoBesKosten,
|
||||
rfoLevKosten: bes_bestelling.rfoLevKosten,
|
||||
fiatteur_key: bes_bestelling.fiatteur_key,
|
||||
fiatteur_key: bes_bestelling.fiatteur_key, // LET OP: De huidige fiatteur wordt opgehaald (Ook als de user_key een vervanger is).
|
||||
dis_key: bes_bestelling.dis_key,
|
||||
perslid_key_voor: bes_bestelling.perslid_key_voor,
|
||||
disc_params_bestellimiet: bes_disc_info.disc_params_bestellimiet,
|
||||
@@ -59,12 +60,9 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
Oracle.Execute(sql);
|
||||
|
||||
var totaal = ingesloten[i].totaal - ingesloten[i].rfoBesKosten + ingesloten[i].rfoLevKosten;
|
||||
|
||||
//var message = L("lcl_mld_opdr_approved_1") + bes_key + L("lcl_mld_opdr_approved_2");
|
||||
|
||||
// als het valt binnen onze limiet (of eigenlijk: degene die nu moet fiatteren als we vervanger zijn) dan zijn we klaar
|
||||
// TODO in de volgende versie (zie docu PF) meerlaags fiattering met prs.getfiatteur() vgl opdr_approve.asp
|
||||
if (!shared.exceeds_profiel(totaal, ingesloten[i].fiatteur_key, ingesloten[i].dis_key))
|
||||
if (!budget.exceeds_profiel(totaal, ingesloten[i].fiatteur_key, ingesloten[i].dis_key))
|
||||
{
|
||||
bes.setbestellingstatus(ingesloten[i].bes_key, 3); // helemaal Gefiatteerd
|
||||
if (ingesloten[i].totaal <= ingesloten[i].disc_params_bestellimiet)
|
||||
@@ -84,9 +82,14 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
// vervolgens naar kostenplaatsgroep fiatteur sturen
|
||||
// Fiatteringsproces moet gevolgd worden op de naam van de "voor wie" (bestelling voor)
|
||||
// Als bes_disc_params_for_others niet is gezet zijn perslid_key en perslid_key_voor identiek
|
||||
message = bes.sendNeedApprovalNotification(ingesloten[i].bes_key, ingesloten[i].fiatteur_key);
|
||||
// Haal de kostenplaatsgroep verantwoordelijke/fiatteur op. De kolom b.bes_bestelling_fiat_user is gevuld met de user_key).
|
||||
sql = "SELECT prs.getkpverantwoordelijke (b.prs_kostenplaats_key, 1, COALESCE (b.bes_bestelling_fiat_user, -1)) kpg_fiatteur_key"
|
||||
+ " FROM bes_bestelling b"
|
||||
+ " WHERE b.bes_bestelling_key = " + ingesloten[i].bes_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
message = bes.sendNeedApprovalNotification(ingesloten[i].bes_key, oRs("kpg_fiatteur_key").Value);
|
||||
oRs.close();
|
||||
}
|
||||
|
||||
result.success = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -152,15 +152,12 @@ transitParam = buildTransitParam(["punch", "mld_key", "artikel_key", "ps", "pn",
|
||||
// Vooral met punchout is dat erg pijnlijk: je kwam wel bij de leverancier, kon alles kiezen
|
||||
// en later, pas bij terugkomst kreeg je melding dat je geen rechten had.
|
||||
user.auth_required_or_abort(authparams.PRSwritelevel < 9 && authparams.ALGwritelevel < 9);
|
||||
var bes_disc_info = bes.disc_info(dis_key);
|
||||
|
||||
sql = "SELECT bes_disc_params_punchouturl"
|
||||
+ " FROM bes_disc_params dp"
|
||||
+ " WHERE dp.bes_ins_discipline_key = " + dis_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
var purl = oRs("bes_disc_params_punchouturl").Value;
|
||||
var newWindow = false;
|
||||
if (!from_punch && purl)
|
||||
if (!from_punch && bes_disc_info.disc_params_punchouturl && !bes_disc_info.isFreeArticle)
|
||||
{
|
||||
var purl = bes_disc_info.disc_params_punchouturl;
|
||||
var hook_url = "bes_hook_punch.asp?urole="+urole+"&dis_key="+dis_key+transitParam;
|
||||
// Biedt de mogelijkheid de url te verrijken met gebruikers info
|
||||
var subst_table = { "RANDOM" : shared.random(16),
|
||||
|
||||
@@ -86,6 +86,7 @@ function show_item_details(bes_item_info)
|
||||
window.stock_info = {}; // even onbekend.
|
||||
|
||||
var imgObj = $("#photo")[0];
|
||||
if (imgObj == null) return; // free artikel
|
||||
|
||||
if (bes_item_info.srtdeel_image)
|
||||
{
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
<!-- #include file="../Shared/persoonselector.inc" -->
|
||||
<!-- #include file="../Shared/artikelgroepselector.inc" -->
|
||||
<!-- #include file="../Shared/besitemselector.inc" -->
|
||||
<!-- #include file="../Shared/bedrijfselector.inc" -->
|
||||
<!-- #include file="../Shared/selector.inc" -->
|
||||
<!-- #include file="../Shared/rater.inc" -->
|
||||
<!-- #include file="../prs/prs.inc" -->
|
||||
@@ -125,12 +126,12 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
if (S("prs_dep_default_kpn") == 0)
|
||||
{ // Niet standaard geautoriseerd voor eigen kostenplaats. Dit hier checken
|
||||
sql = "SELECT k.prs_kostenplaats_key kpkey"
|
||||
+ " FROM prs_perslidkostenplaats pk"
|
||||
+ ", prs_v_aanwezigkostenplaats k"
|
||||
+ " FROM prs_perslidkostenplaats pk"
|
||||
+ " , prs_v_aanwezigkostenplaats k"
|
||||
+ " WHERE pk.prs_kostenplaats_key = k.prs_kostenplaats_key(+)"
|
||||
+ " AND pk.prs_perslidkostenplaats_boeken = 1"
|
||||
+ " AND pk.prs_perslid_key = " + user_key
|
||||
+ " AND (k.prs_kostenplaats_key = " + (user.afdeling().prs_kostenplaats_key() || -1)
|
||||
+ " AND pk.prs_perslidkostenplaats_boeken = 1"
|
||||
+ " AND pk.prs_perslid_key = " + user_key
|
||||
+ " AND (k.prs_kostenplaats_key = " + (user.afdeling().prs_kostenplaats_key() || -1)
|
||||
+ " OR pk.prs_kostenplaats_key IS NULL)";
|
||||
oRs = Oracle.Execute(sql);
|
||||
authForOwnAcoount = (!oRs.eof);
|
||||
@@ -208,6 +209,7 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
bes_bestelling.flex_defaults[nm] = val;
|
||||
}
|
||||
}
|
||||
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -217,7 +219,7 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
var details_Items = new Array(); // voor details.inc
|
||||
dis_key = <%=bes_bestelling.dis_key%>;
|
||||
var user_kpkey = <%=user.afdeling().prs_kostenplaats_key() || -1%>;
|
||||
var user_kpnaam = "<%=user.afdeling().kpn_naam()%>";
|
||||
var user_kpnaam = "<%=safe.jsstring(user.afdeling().kpn_naam())%>";
|
||||
var inclBTW = <%=bes_bestelling.inclBTW%> == 1;
|
||||
var maxartikel = <%=bes_disc_info.maxartikel%>;
|
||||
</script>
|
||||
@@ -386,13 +388,13 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
changeKostK(); // Even ordernr goed aan/uitzetten
|
||||
<% }
|
||||
}
|
||||
if (this_bes.canItemsChange)
|
||||
if (this_bes.canItemsChange && !bes_disc_info.isFreeArticle)
|
||||
{ %>
|
||||
sgBesItem.CheckJustOne();
|
||||
<% } %>
|
||||
|
||||
if (front_end)
|
||||
showPicture('<%=bes_disc_info.disc_params_logo_url%>');
|
||||
showPicture('<%=safe.jsstring(bes_disc_info.disc_params_logo_url)%>');
|
||||
|
||||
<% if (bes_key < 0 && artikel_key > 0) { %>
|
||||
load_item_info(<%=artikel_key%>, '<%=urole%>', 1); // AutoAdd eentje
|
||||
@@ -600,6 +602,7 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
var sql = "SELECT prs.getprofiellimiet(" + (S("prs_dep_default_kpn_voor") == 0? bes_bestelling.perslid_key : bes_bestelling.perslid_key_voor) + ", " + bes_bestelling.dis_key +") limiet FROM DUAL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
txt = oRs("limiet").value || ""; // zou alsnog leeg kunnen zijn
|
||||
oRs.Close();
|
||||
}
|
||||
RWFIELDTR ("bestellimiet", "fldprofiel", L("lcl_bes_orderlimit"), txt, { readonly: true});
|
||||
}
|
||||
@@ -709,55 +712,84 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
<% // ======== BLOCK om itemregels toe te voegen ========
|
||||
if (this_bes.canItemsChange)
|
||||
{
|
||||
BLOCK_START("besItemSel" , L("lcl_bes_selectieblok") + " " + bes_disc_info.discipline_omschrijving + " " + (bes_bestelling.inclBTW? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW")));
|
||||
BLOCK_START("besItemSel" , L("lcl_bes_selectieblok") + " " + safe.html(bes_disc_info.discipline_omschrijving) + " " + (bes_bestelling.inclBTW? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW")));
|
||||
|
||||
FCLTartikelgroepselector("srtgroep",
|
||||
"sgSrtgroep",
|
||||
{ label: L("lcl_bes_srtgroup"),
|
||||
artikelgroepKey: bes_bestelling.srtgroep,
|
||||
disc_key: bes_bestelling.dis_key,
|
||||
onChange: "onChangeArtikelgroep",
|
||||
extraParamField: "singlegroep",
|
||||
extracode: "S",
|
||||
readonly: (bes_key > 0 && bes_bestelling.singlegroep)
|
||||
});
|
||||
|
||||
sql = " SELECT bs.bes_staffeltabel_key"
|
||||
+ ", bs.bes_staffeltabel_naam"
|
||||
+ " FROM bes_staffeltabel bs"
|
||||
+ " WHERE EXISTS (SELECT sd.bes_srtdeel_key"
|
||||
+ " FROM bes_v_aanwezigsrtgroep sg"
|
||||
+ ", bes_v_aanwezigsrtdeel sd"
|
||||
+ " WHERE sg.ins_discipline_key = " + bes_bestelling.dis_key
|
||||
+ " AND sg.bes_srtgroep_key = sd.bes_srtgroep_key"
|
||||
+ " AND sd.bes_staffeltabel_key = bs.bes_staffeltabel_key)"
|
||||
+ " ORDER BY 2";
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
FCLTselector("staffelgroep", sql, // filter op suggest besitem
|
||||
{ label: L("lcl_bes_staffelgroep"),
|
||||
emptyOption: ""
|
||||
}
|
||||
);
|
||||
else
|
||||
{ // Staffelgroep hidden weergeven met -1 als waarde (geen staffelgroep geselecteerd)
|
||||
%> <input type="hidden" id="staffelgroep" tabindex="-1" class="fldselect" value="-1">
|
||||
<% } %>
|
||||
<%
|
||||
FCLTbesitemselector("besitem",
|
||||
"sgBesItem",
|
||||
{ label: L("lcl_bes_srtdeel"),
|
||||
bessrtdeel_key: -1,
|
||||
disc_key: bes_bestelling.dis_key,
|
||||
readonly: !this_bes.canItemsChange,
|
||||
urlAdd: [{urlParam: "srtgroep_key", field: "srtgroep"},
|
||||
{urlParam: "staffel_key", field: "staffelgroep"}],
|
||||
onChange: "load_item_info",
|
||||
favouritelist: true
|
||||
if (bes_disc_info.isFreeArticle)
|
||||
{
|
||||
FCLTbedrijfselector("lev_key", // Leverancier
|
||||
"sg_lev",
|
||||
{ companyKey: bes_bestelling.bedrijf_key||-1,
|
||||
label: L("lcl_bes_Supplier"),
|
||||
filtercode: "L",
|
||||
required: true,
|
||||
readonly: bes_bestelling.bedrijf_key > 0
|
||||
});
|
||||
RWFIELDTR("srtdeel_nr", "fld", L("lcl_bes_srtdeel_nr"), "", { required: true, maxlength: 32 });
|
||||
RWFIELDTR("omschrijving", "fld", L("lcl_bes_srtdeel_oms"), "", { required: true, maxlength: 100 })
|
||||
RWFIELDTR("unit", "fld", L("lcl_bes_unity"), "", { maxlength: 30 })
|
||||
RWFIELDTR("price", "fld currency", L("lcl_bes_price_per_unity"), "", { requiredor0: true, maxlength: 10 })
|
||||
RWFIELDTR("aantal_text", "fld", L("lcl_bes_amount"), "", { required: true, maxlength: 10 })
|
||||
%> <tr id="buttons_tr"><td colspan="2">
|
||||
<span class='labelextra'>
|
||||
<img class='details' title='<%=L("lcl_bes_add_btn")%>' src='../Pictures/cartx2.png' onclick="AddFreeArticleItem('<%=urole%>')">
|
||||
</span>
|
||||
</td></tr>
|
||||
|
||||
<%
|
||||
}
|
||||
else // Gewoon artikel uit catalogus kiezen
|
||||
{
|
||||
FCLTartikelgroepselector("srtgroep",
|
||||
"sgSrtgroep",
|
||||
{ label: L("lcl_bes_srtgroup"),
|
||||
artikelgroepKey: bes_bestelling.srtgroep,
|
||||
disc_key: bes_bestelling.dis_key,
|
||||
onChange: bes_disc_info.isFreeArticle?null:"onChangeArtikelgroep",
|
||||
required: bes_disc_info.isFreeArticle,
|
||||
extraParamField: "singlegroep",
|
||||
extracode: "S",
|
||||
readonly: (bes_key > 0 && bes_bestelling.singlegroep)
|
||||
});
|
||||
|
||||
sql = " SELECT bs.bes_staffeltabel_key"
|
||||
+ ", bs.bes_staffeltabel_naam"
|
||||
+ " FROM bes_staffeltabel bs"
|
||||
+ " WHERE EXISTS (SELECT sd.bes_srtdeel_key"
|
||||
+ " FROM bes_v_aanwezigsrtgroep sg"
|
||||
+ ", bes_v_aanwezigsrtdeel sd"
|
||||
+ " WHERE sg.ins_discipline_key = " + bes_bestelling.dis_key
|
||||
+ " AND sg.bes_srtgroep_key = sd.bes_srtgroep_key"
|
||||
+ " AND sd.bes_staffeltabel_key = bs.bes_staffeltabel_key)"
|
||||
+ " ORDER BY 2";
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
FCLTselector("staffelgroep", sql, // filter op suggest besitem
|
||||
{ label: L("lcl_bes_staffelgroep"),
|
||||
emptyOption: ""
|
||||
}
|
||||
);
|
||||
}
|
||||
else
|
||||
{ // Staffelgroep hidden weergeven met -1 als waarde (geen staffelgroep geselecteerd)
|
||||
%> <input type="hidden" id="staffelgroep" tabindex="-1" class="fldselect" value="-1">
|
||||
<% }
|
||||
oRs.Close();
|
||||
|
||||
FCLTbesitemselector("besitem",
|
||||
"sgBesItem",
|
||||
{ label: L("lcl_bes_srtdeel"),
|
||||
bessrtdeel_key: -1,
|
||||
disc_key: bes_bestelling.dis_key,
|
||||
readonly: !this_bes.canItemsChange,
|
||||
urlAdd: [{urlParam: "srtgroep_key", field: "srtgroep"},
|
||||
{urlParam: "staffel_key", field: "staffelgroep"}],
|
||||
onChange: "load_item_info",
|
||||
favouritelist: true
|
||||
});
|
||||
// Het informatieblok van een geselecteerd artikel
|
||||
%>
|
||||
%>
|
||||
<tr><td class="label">
|
||||
<label><img class="besphoto"
|
||||
src="../Pictures/no_photo.gif"
|
||||
@@ -789,17 +821,18 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<% BLOCK_END();
|
||||
<% }
|
||||
BLOCK_END();
|
||||
} // this_bes.canItemsChange
|
||||
%>
|
||||
|
||||
<% BLOCK_START("besItems" , L("lcl_bes_geselecteerd") + " " + (bes_bestelling.inclBTW? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW"))); %>
|
||||
BLOCK_START("besItems" , L("lcl_bes_geselecteerd") + " " + (bes_bestelling.inclBTW? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW"))); %>
|
||||
<tr><td>
|
||||
<!-- SELECTED ITEMS -->
|
||||
<table width="100%" style='border:0px; paddding:0px;' id="sel_items" class="rstable">
|
||||
<table width="100%" style='border:0px; padding:0px;' id="sel_items" class="rstable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<!--<th><%=L("lcl_bes_srtgroup")%></th>-->
|
||||
<th><%=L("lcl_bes_srtdeel_nr")%></th>
|
||||
<th><%=L("lcl_bes_srtdeel")%></th>
|
||||
<th><%=L("lcl_bes_unity")%></th>
|
||||
@@ -844,7 +877,8 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
</div>
|
||||
<% }
|
||||
%> </td></tr><%
|
||||
BLOCK_END(); IFACE.FORM_END();
|
||||
BLOCK_END();
|
||||
IFACE.FORM_END();
|
||||
%>
|
||||
</form>
|
||||
<iframe src="../Shared/empty.html"
|
||||
|
||||
@@ -16,9 +16,10 @@
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="./bes.inc" -->
|
||||
<!-- #include file="../PRS/prs.inc" -->
|
||||
<!-- #include file="../shared/save2db.inc" -->
|
||||
<!-- #include file="../shared/kpl_ksrt_validate.inc" -->
|
||||
<!-- #include file="../Shared/save2db.inc" -->
|
||||
<!-- #include file="../Shared/kpl_ksrt_validate.inc" -->
|
||||
<!-- #include file="../Shared/kenmerk_common.inc" -->
|
||||
<!-- #include file="../Shared/budget.inc" -->
|
||||
|
||||
<%
|
||||
var bes_key = getQParamInt("bes_key", -1);
|
||||
@@ -36,13 +37,43 @@ var bes_disc_info = bes.disc_info(dis_key);
|
||||
var act_key = getFParamInt("act_key", -1);
|
||||
var act_mode = (act_key > 0);
|
||||
var kostenplaats_key = getFParamInt("kostenplaats",-1);
|
||||
var srtdeel_keys = getFParamIntArray("srtdeel_keys",[]);
|
||||
var amount_arr = getFParamIntArray("amount_string",[]);
|
||||
var item_keys_unsafe = getFParamArray("item_keys",[]); // kan ook 'new1' zijn voor nieuwe opdrachten
|
||||
var flexkey_string_arr = getFParamIntArray("flexkey_string",[]);
|
||||
var flexval_string_arr = getFParamArray("flexval_string",[]);
|
||||
var flexdeel_string_arr = getFParamArray("flexdeel_string",[]);
|
||||
var flexitem_string_unsafe = getFParamArray("flexitem_string",[]); // kan ook 'new1' zijn voor nieuwe opdrachten
|
||||
var srtdeel_keys = getFParamIntArray("srtdeel_keys",[]); // Bij isFree ook voor bewerken bestaande
|
||||
|
||||
if (bes_disc_info.isFreeArticle)
|
||||
{ // Moeten we de nieuwe srtdeel-en nog aanmaken
|
||||
for (var itemregelnr = 0; itemregelnr < item_keys_unsafe.length; itemregelnr++)
|
||||
{
|
||||
var srtdeel_nr = getFParam("srtdeel_nr_" + item_keys_unsafe[itemregelnr], ""); // Leeg bij bewerken bestaande;
|
||||
if (srtdeel_nr)
|
||||
{
|
||||
var data = { //srtgroep_key: getFParamInt("srtgroup_key_" + item_keys_unsafe[itemregelnr]),
|
||||
srtgroep_omschrijving: "Vrije artikel groep", // 2015.1 nog lcl van maken
|
||||
srtdeel_nr: srtdeel_nr,
|
||||
srtdeel_omschrijving: getFParam("srtdeel_omschrijving_" + item_keys_unsafe[itemregelnr]),
|
||||
srtdeel_prijs: getFParamFloat("price_" + item_keys_unsafe[itemregelnr]),
|
||||
srtdeel_eenheid: getFParam("eenheid_" + item_keys_unsafe[itemregelnr], ""),
|
||||
srtdeel_btw: 21,
|
||||
bedrijf_key: getFParamInt("lev_key_" + item_keys_unsafe[itemregelnr]),
|
||||
srtdeel_opmerking: "" //opmerking
|
||||
};
|
||||
try
|
||||
{
|
||||
var bes_srtdeel_key = bes.upsert_deel(dis_key, data);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
abort_with_warning("Kan artikel '{0}' niet toevoegen. Dubbel artikelnummer is niet toegestaan.".format(srtdeel_nr));
|
||||
}
|
||||
srtdeel_keys[itemregelnr] = bes_srtdeel_key;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var isNew = (bes_key == -1);
|
||||
var isChange = !isNew && bes_bestelling.parent_key > 0;
|
||||
@@ -136,7 +167,7 @@ else
|
||||
// S("prs_dep_default_kpn_voor") == 0: de contactpersoon prs_key
|
||||
// S("prs_dep_default_kpn_voor") == 1: de "voor wie" (bestelling voor) prs_key_voor
|
||||
// Als bes_disc_params_for_others niet is gezet zijn prs_key en prs_key_voor identiek
|
||||
var exceeds_pgb = bes.exceeds_pgb(staffel_info.totaalbedrag, (S("prs_dep_default_kpn_voor") == 0? prs_key : prs_key_voor), dis_key, bes_key)
|
||||
var exceeds_pgb = bes.exceeds_pgb(staffel_info.totaalbedrag, (S("prs_dep_default_kpn_voor") == 0? prs_key : prs_key_voor), dis_key)
|
||||
var exceeds_agb = bes.exceeds_agb(staffel_info.totaalbedrag, (S("prs_dep_default_kpn_voor") == 0? prs_key : prs_key_voor), dis_key, bes_key)
|
||||
if (exceeds_pgb || exceeds_agb)
|
||||
{
|
||||
@@ -144,21 +175,20 @@ else
|
||||
// Algemene fiatterings proces noodzakelijk naast PGB fiatering
|
||||
ter_finfiattering = true;
|
||||
else
|
||||
{
|
||||
// Fiatteringsproces moet gevolgd worden op de naam van
|
||||
// S("prs_dep_default_kpn_voor") == 0: de contactpersoon prs_key
|
||||
// S("prs_dep_default_kpn_voor") == 1: de "voor wie" (bestelling voor) prs_key_voor
|
||||
// Als bes_disc_params_for_others niet is gezet zijn prs_key en prs_key_voor identiek
|
||||
strState = (exceeds_pgb
|
||||
? L("lcl_bes_exceeds_pgb") + safe.curr(bes.get_pgb_exceed_amount(staffel_info.totaalbedrag, (S("prs_dep_default_kpn_voor") == 0? prs_key : prs_key_voor), dis_key, bes_key))
|
||||
: "")
|
||||
+ (exceeds_pgb && exceeds_agb
|
||||
? "\n" // Nieuwe regel
|
||||
: "")
|
||||
+ (exceeds_agb
|
||||
? L("lcl_bes_exceeds_agb") + safe.curr(bes.get_agb_exceed_amount(staffel_info.totaalbedrag, (S("prs_dep_default_kpn_voor") == 0? prs_key : prs_key_voor), dis_key, bes_key))
|
||||
: "")
|
||||
+ "\n" + L("lcl_bes_adjust_order");
|
||||
{ // Fiatteringsproces moet gevolgd worden op de naam van.
|
||||
// S("prs_dep_default_kpn_voor") == 0: de contactpersoon prs_key.
|
||||
// S("prs_dep_default_kpn_voor") == 1: de "voor wie" (bestelling voor) prs_key_voor.
|
||||
// Als bes_disc_params_for_others niet is gezet zijn prs_key en prs_key_voor identiek.
|
||||
var strState = (exceeds_pgb
|
||||
? L("lcl_bes_exceeds_pgb") + safe.curr(bes.get_pgb_exceed_amount(staffel_info.totaalbedrag, (S("prs_dep_default_kpn_voor") == 0? prs_key : prs_key_voor), dis_key, bes_key))
|
||||
: "")
|
||||
+ (exceeds_pgb && exceeds_agb
|
||||
? "\n" // Nieuwe regel.
|
||||
: "")
|
||||
+ (exceeds_agb
|
||||
? L("lcl_bes_exceeds_agb") + safe.curr(bes.get_agb_exceed_amount(staffel_info.totaalbedrag, (S("prs_dep_default_kpn_voor") == 0? prs_key : prs_key_voor), dis_key, bes_key))
|
||||
: "")
|
||||
+ "\n" + L("lcl_bes_adjust_order");
|
||||
abort_with_warning(strState);
|
||||
}
|
||||
}
|
||||
@@ -168,21 +198,21 @@ else
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Standaard fiatteringscontrole
|
||||
{ // Standaard fiatteringscontrole.
|
||||
// Fiatteringsproces moet gevolgd worden op de naam van
|
||||
// S("prs_dep_default_kpn_voor") == 0: de contactpersoon prs_key
|
||||
// S("prs_dep_default_kpn_voor") == 1: de "voor wie" (bestelling voor) prs_key_voor
|
||||
// Als bes_disc_params_for_others niet is gezet zijn prs_key en prs_key_voor identiek
|
||||
// Als orgineel nog gefiatteerd moet worden door budgethouder (status is 2) dan zeker eerst fiatteren
|
||||
// Als bes_disc_params_for_others niet is gezet zijn prs_key en prs_key_voor identiek.
|
||||
// Als orgineel nog gefiatteerd moet worden door budgethouder (status is 2) dan zeker eerst fiatteren.
|
||||
if (!act_mode
|
||||
&& !bes_disc_info.disc_params_autoacceptrfo
|
||||
&& shared.exceeds_profiel(staffel_info.totaalbedrag, (S("prs_dep_default_kpn_voor") == 0? prs_key : prs_key_voor), dis_key)
|
||||
&& budget.exceeds_profiel(staffel_info.totaalbedrag, (S("prs_dep_default_kpn_voor") == 0? prs_key : prs_key_voor), dis_key)
|
||||
&& (isNew || oldStatus == 2 || bes.herfiatteren(bes_bestelling, bes_disc_info, staffel_info.totaalbedrag)))
|
||||
// niet automatisch fiat(!)teren en profiel wordt overschreden
|
||||
// niet automatisch fiat(!)teren en profiel wordt overschreden.
|
||||
ter_finfiattering = true;
|
||||
}
|
||||
|
||||
// Als het boven mijn profiel is, of ik -als ik budgethouder ben/zou zijn- niet zelf mag goedkeuren
|
||||
// Als het boven mijn profiel is, of ik -als ik budgethouder ben/zou zijn- niet zelf mag goedkeuren.
|
||||
// Gaan we kijken wie dan wel.
|
||||
// Kan ik zelf fiatteren?: true: totaalbedrag <= can_selfapprove
|
||||
// false totaalbedrag > can_selfapprove
|
||||
@@ -195,13 +225,13 @@ else
|
||||
__Log('bestelling afgebroken');
|
||||
abort_with_warning(L("lcl_bes_no_fiatteur"));
|
||||
}
|
||||
if (shared.exceeds_profiel(staffel_info.totaalbedrag, approver_key, dis_key))
|
||||
if (budget.exceeds_profiel(staffel_info.totaalbedrag, approver_key, dis_key))
|
||||
{ // de gevonden fiatteur heeft onvoldoende profiel, is er een hogere (kpngroepverantwoordelijke)
|
||||
// Let wel: alleen controle of hij er bestaat. Wie het is doen we nog niets mee hier.
|
||||
__Log('voldoet niet');
|
||||
var nextapprover_key = prs.getKpVerantwoordelijkeExcept(kostenplaats_key, approver_key);
|
||||
__Log('Vervolgensgevonden fiatteur: ' + nextapprover_key);
|
||||
if (nextapprover_key == -1 || shared.exceeds_profiel(staffel_info.totaalbedrag, nextapprover_key, dis_key))
|
||||
if (nextapprover_key == -1 || budget.exceeds_profiel(staffel_info.totaalbedrag, nextapprover_key, dis_key))
|
||||
{
|
||||
__Log('voldoet ook niet');
|
||||
abort_with_warning(L("lcl_bes_exceed_limit"));
|
||||
@@ -413,8 +443,8 @@ if (status == 1 || status == 2|| status == 3 || status == 4 || status == 5)
|
||||
if (makechange) // in de originele tracking verwijzen we naar de change-request
|
||||
shared.trackaction("BESUPD", getQParamInt("bes_key"), L("lcl_bes_change") + S("bes_bestelling_prefix") + bes_key );
|
||||
|
||||
if (UseRemoteApproval)
|
||||
{
|
||||
if (UseRemoteApproval)
|
||||
{
|
||||
__Log("Requesting remote approval");
|
||||
var remoteResult = custfunc.bes_getremoteapproval(getQParamInt("bes_key", pResult)); // dis_key ook meegeven?
|
||||
// Track dat fiattering gevraagd wordt aan extern systeem (custfunc.bes_remoteapprovalSystemName(dis_key)?)
|
||||
|
||||
@@ -18,11 +18,12 @@
|
||||
*/ %>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="bes.inc" -->
|
||||
<%
|
||||
var urole = getQParamSafe("urole");
|
||||
var dis_key = getQParamInt("dis_key");
|
||||
|
||||
var orderurl = "bes_bestelling.asp?punch=1" + buildTransitParam(["urole", "dis_key", "mld_key"])
|
||||
var orderurl = "bes_bestelling.asp?punch=1" + buildTransitParam(["urole", "dis_key", "mld_key"]);
|
||||
basketEmpty = false;
|
||||
|
||||
function punchNVL(nm, n, def)
|
||||
@@ -55,49 +56,21 @@
|
||||
else
|
||||
{ // Maak item (eventueel) aan in catalogus
|
||||
var prijs = !(prijs!=""&&isNaN(parseFloat(price)))?parseFloat(price).toFixed(2):"NULL";
|
||||
sql = "BEGIN bes.upsert_srtdeel "
|
||||
+ " ( " + dis_key
|
||||
+ " , " + safe.quoted_sql(productGroup, 60) // bes_srtgroep_omschrijving
|
||||
+ " , " + safe.quoted_sql(description, 100) // bes_srtdeel_omschrijving
|
||||
+ " , " + prijs
|
||||
+ " , 21 " // BTW
|
||||
+ " , " + safe.quoted_sql(unitOfMeasure, 30) // bes_srtdeel_eenheid
|
||||
+ " , " + safe.quoted_sql(vendorProductNumber, 32) // bes_srtdeel_nr
|
||||
+ " , -1 "
|
||||
+ " , NULL " // vervaldatum
|
||||
+ " , ''"
|
||||
+ " , 1 "
|
||||
+ " , " + safe.quoted_sql(opmerking, 2000) + "); END;";
|
||||
|
||||
Oracle.Execute(sql);
|
||||
// JGL: Het zou fijn zijn als upsert_srtdeel een functie wordt en gewoon
|
||||
// de bes_srtdeel_key oplevert. Dan wordt het volgende veel simpeler:
|
||||
// PF: Maar dat kan helemaal niet, want een select mag geen DML e.d doen.
|
||||
// Wel beter zou zijn bes.get_upsertkey(), nader te definieren.
|
||||
|
||||
// Zoek aangemaakte item terug.
|
||||
sql = "SELECT bes_srtdeel_key "
|
||||
+ " FROM bes_srtdeel sd, bes_srtgroep sg "
|
||||
+ " WHERE sg.ins_discipline_key = " + dis_key
|
||||
+ " AND sg.bes_srtgroep_key = sd.bes_srtgroep_key "
|
||||
+ " AND sg.bes_srtgroep_omschrijving = " + safe.quoted_sql(productGroup, 60) /* NOXLAT */
|
||||
+ " AND UPPER(sd.bes_srtdeel_omschrijving) = " + safe.quoted_sql_upper(description, 100) /* NOXLAT */
|
||||
+ " AND sd.bes_srtdeel_eenheid " + (unitOfMeasure? "= " + safe.quoted_sql(unitOfMeasure, 30): " IS NULL")
|
||||
+ " AND sd.bes_srtdeel_nr = " + safe.quoted_sql(vendorProductNumber, 32)
|
||||
+ " ORDER BY sd.bes_srtdeel_key DESC ";
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
orderurl += "&ps=" + oRs("bes_srtdeel_key").value + "&pn=" + quantity;
|
||||
}
|
||||
|
||||
var bes_srtdeel_key = bes.upsert_deel(dis_key, { srtdeel_nr: vendorProductNumber,
|
||||
srtgroep_omschrijving: productGroup,
|
||||
srtdeel_omschrijving: description,
|
||||
srtdeel_prijs: prijs,
|
||||
srtdeel_eenheid: unitOfMeasure,
|
||||
srtdeel_btw: 21,
|
||||
srtdeel_opmerking: opmerking
|
||||
});
|
||||
orderurl += "&ps=" + bes_srtdeel_key + "&pn=" + quantity;
|
||||
// Check customer specific restrictions
|
||||
// customer hook
|
||||
pResult = new HookResult();
|
||||
|
||||
// Klantspecifieke check functie (hookfunction) voor de invoer
|
||||
var bes_punch_receive = custfunc.bes_punch_receive(Request.Form, oRs("bes_srtdeel_key").value, i, pResult);
|
||||
var bes_punch_receive = custfunc.bes_punch_receive(Request.Form, bes_srtdeel_key, i, pResult);
|
||||
if (!bes_punch_receive)
|
||||
{
|
||||
abort_with_warning(pResult.errmsg);
|
||||
|
||||
@@ -56,7 +56,7 @@ oRs.Close();
|
||||
<% FCLTHeader.Generate(); %>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
FcltMgr.setTitle("<%=L("lcl_bes_BesOrder") + " " + ordernr_id%>", {hot: false});
|
||||
FcltMgr.setTitle("<%=L("lcl_bes_BesOrder") + " " + safe.jsstring(ordernr_id)%>", {hot: false});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
@@ -478,7 +478,7 @@ oRs.Close();
|
||||
if (!frontend)
|
||||
buttons.push ({title: L("lcl_shared_more"), action:"iface_toggleSecondarySearchblock()", id : "btnMoreLess"});
|
||||
if (backo)
|
||||
buttons.push ({title: L("lcl_obj_advanced")+'>', action:"myModal()", id : "bAdvanced"}); // met actuele waarden van catalogus en vorig filter
|
||||
buttons.push ({title: L("lcl_obj_advanced"), action:"myModal()", id : "bAdvanced"}); // met actuele waarden van catalogus en vorig filter
|
||||
CreateButtons(buttons, { entersubmit: true} );
|
||||
%>
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ else
|
||||
}
|
||||
else // minfo
|
||||
{
|
||||
var rfo_status_arr = getQParamIntArray("rfostatus", [2,3,4,5,6,7,8]); // Aanvraag status
|
||||
var rfo_status_arr = getQParamIntArray("rfostatus", [1,2,3,4,5,6,7,8]); // Aanvraag status
|
||||
var ord_status_arr = getQParamIntArray("orderstatus", [-1]); // Opdracht status
|
||||
|
||||
var besstatus1 = false;
|
||||
|
||||
@@ -57,6 +57,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
<%
|
||||
// Bestelde artikelen intern (gekoppeld via bes_disc_params.bes_ins_discipline_key_inkoop)
|
||||
var sql_from_intern = " SELECT sd.bes_srtdeel_nr"
|
||||
+ ", sd.bes_srtdeel_key"
|
||||
+ ", "+ lcl.xsqla('sd.bes_srtdeel_omschrijving','sd.bes_srtdeel_key')
|
||||
+ ", sd.bes_srtdeel_notitie"
|
||||
+ ", dp.bes_ins_discipline_key_inkoop inkoop_disc"
|
||||
@@ -71,6 +72,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ " WHERE isd2.bes_srtgroep_key = isg2.bes_srtgroep_key"
|
||||
+ " AND bd2.ins_discipline_key = isg2.ins_discipline_key"
|
||||
+ " AND isd2.bes_srtdeel_nr LIKE sd.bes_srtdeel_nr"
|
||||
+ " AND bes_srtdeel_verwijder IS NULL"
|
||||
+ " AND bd2.ins_discipline_key = dp.bes_ins_discipline_key_inkoop) voorraadmax" // Voorraadmax van gekoppelde discipline
|
||||
+ ", (SELECT isd2.bes_srtdeel_voorraadmin"
|
||||
+ " FROM bes_srtdeel isd2"
|
||||
@@ -79,6 +81,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ " WHERE isd2.bes_srtgroep_key = isg2.bes_srtgroep_key"
|
||||
+ " AND bd2.ins_discipline_key = isg2.ins_discipline_key"
|
||||
+ " AND isd2.bes_srtdeel_nr LIKE sd.bes_srtdeel_nr"
|
||||
+ " AND bes_srtdeel_verwijder IS NULL"
|
||||
+ " AND bd2.ins_discipline_key = dp.bes_ins_discipline_key_inkoop) voorraadmin" // Voorraadmin van gekoppelde discipline
|
||||
+ ", SUM (bi.bes_bestelling_item_aantal) aantal_intern"
|
||||
+ ", TO_NUMBER (NULL) aantal_extern_besteld"
|
||||
@@ -109,6 +112,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ " WHERE sd2.bes_srtdeel_key = " + params.item_key + ")"
|
||||
: "")
|
||||
+ " GROUP BY sd.bes_srtdeel_nr"
|
||||
+ ", sd.bes_srtdeel_key"
|
||||
+ ", "+ lcl.xsql('sd.bes_srtdeel_omschrijving','sd.bes_srtdeel_key')
|
||||
+ ", sd.bes_srtdeel_notitie"
|
||||
+ ", dp.bes_ins_discipline_key_inkoop"
|
||||
@@ -120,6 +124,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
// Bestelde artikelen bij de leverancier (extern)
|
||||
// Besteld (status = 5) en Geleverd (status = 6,7)
|
||||
var sql_from_extern = " SELECT sd.bes_srtdeel_nr"
|
||||
+ ", sd.bes_srtdeel_key"
|
||||
+ ", "+ lcl.xsqla('sd.bes_srtdeel_omschrijving','sd.bes_srtdeel_key')
|
||||
+ ", sd.bes_srtdeel_notitie"
|
||||
+ ", bd.ins_discipline_key inkoop_disc"
|
||||
@@ -156,6 +161,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
? " AND sd.bes_srtdeel_key = " + item_key
|
||||
: "")
|
||||
+ " GROUP BY bes_srtdeel_nr"
|
||||
+ ", sd.bes_srtdeel_key"
|
||||
+ ", "+ lcl.xsql('sd.bes_srtdeel_omschrijving','sd.bes_srtdeel_key')
|
||||
+ ", sd.bes_srtdeel_notitie"
|
||||
+ ", bd.ins_discipline_key"
|
||||
@@ -165,6 +171,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ ", bes_srtdeel_voorraadmin"
|
||||
+ " UNION ALL"
|
||||
+ " SELECT sd.bes_srtdeel_nr"
|
||||
+ ", sd.bes_srtdeel_key"
|
||||
+ ", "+ lcl.xsqla('sd.bes_srtdeel_omschrijving','sd.bes_srtdeel_key')
|
||||
+ ", sd.bes_srtdeel_notitie"
|
||||
+ ", bd.ins_discipline_key inkoop_disc"
|
||||
@@ -202,6 +209,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
? " AND sd.bes_srtdeel_key = " + item_key
|
||||
: "")
|
||||
+ " GROUP BY bes_srtdeel_nr"
|
||||
+ ", sd.bes_srtdeel_key"
|
||||
+ ", "+ lcl.xsql('sd.bes_srtdeel_omschrijving','sd.bes_srtdeel_key')
|
||||
+ ", sd.bes_srtdeel_notitie"
|
||||
+ ", bd.ins_discipline_key"
|
||||
@@ -216,7 +224,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
|
||||
|
||||
var sql = "SELECT bes_srtdeel_nr"
|
||||
+ ", "+ lcl.xsqla('bes_srtdeel_omschrijving','sd.bes_srtdeel_key')
|
||||
+ ", "+ lcl.xsqla('bes_srtdeel_omschrijving','bes_srtdeel_key')
|
||||
+ ", bes_srtdeel_notitie"
|
||||
+ ", inkoop_disc"
|
||||
+ ", disc_oms"
|
||||
@@ -238,10 +246,10 @@ function bes_voorraad_list (pautfunction, params)
|
||||
: "")
|
||||
+ (params.searchtekst
|
||||
? (params.catalogus_key? " AND" : " WHERE") + " (UPPER(bes_srtdeel_nr) LIKE " + safe.quoted_sql_wild("%" + params.searchtekst + "%")
|
||||
+ " OR UPPER("+ lcl.xsql('bes_srtdeel_omschrijving','sd.bes_srtdeel_key') +") LIKE " + safe.quoted_sql_wild("%" + params.searchtekst + "%") + ")"
|
||||
+ " OR UPPER("+ lcl.xsql('bes_srtdeel_omschrijving','bes_srtdeel_key') +") LIKE " + safe.quoted_sql_wild("%" + params.searchtekst + "%") + ")"
|
||||
: "")
|
||||
+ " GROUP BY bes_srtdeel_nr"
|
||||
+ ", "+ lcl.xsql('bes_srtdeel_omschrijving','sd.bes_srtdeel_key')
|
||||
+ ", "+ lcl.xsql('bes_srtdeel_omschrijving','bes_srtdeel_key')
|
||||
+ ", bes_srtdeel_notitie"
|
||||
+ ", inkoop_disc"
|
||||
+ ", disc_oms"
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
Context:
|
||||
Note: Op het TR-element stoppen wel allerlei informatie (die vroeger in selectedItems zat)
|
||||
tr.bes_item_info: van alles over het item
|
||||
amount: huidige aantal
|
||||
orgAmount: oorspronkelijke aantal
|
||||
retour:
|
||||
received:
|
||||
@@ -32,7 +33,7 @@ function AddAllItems(editable, show_received)
|
||||
|
||||
|
||||
function RetourItems(bes_key, urole) {
|
||||
var s = "../Bes/bes_retour.asp?bes_key=" + bes_key + "&urole="+ urole;
|
||||
var s = "../bes/bes_retour.asp?bes_key=" + bes_key + "&urole="+ urole;
|
||||
var retourReturn = FcltMgr.openModalDetail(s, L("lcl_bes_retour"), {callback: FcltMgr.reload});
|
||||
}
|
||||
|
||||
@@ -70,6 +71,35 @@ function maxArtikelReached()
|
||||
return (maxartikel > 0 && aantalArtikelen >= maxartikel)
|
||||
}
|
||||
|
||||
var jqFreeFields = ["lev_key_show", "srtdeel_nr", "omschrijving", "srtgroep", "price", "aantal_text"];
|
||||
function AddFreeArticleItem(urole)
|
||||
{
|
||||
if (!validateForm("u2", { checkOnly: jqFreeFields }))
|
||||
return;
|
||||
window.bes_item_info =
|
||||
{
|
||||
aantal: parseInt($('#aantal_text').val(),10),
|
||||
isFreeArticle: true,
|
||||
"srtdeel_key":-1,
|
||||
"srtdeel_nr":$('#srtdeel_nr').val(),
|
||||
"srtdeel_omschrijving":$('#omschrijving').val(),
|
||||
//"srtgroup_key":$("#srtgroep").val(),
|
||||
//"srtgroup_text":$("#srtgroep_show").val(),
|
||||
"lev_key":$("#lev_key").val(),
|
||||
"singlegroep":0,
|
||||
//"srtdeel_image":"https://cos.euroflorist.com/uwv/Products/ARR06_03.jpg",
|
||||
"veelvoud":1,
|
||||
"price":parseFloat(String($("#price").val()).replace(',', '.')) || 0.0,
|
||||
"eenheid":$("#unit").val(),
|
||||
"num_prop":0,
|
||||
"staffelgroep":-1,
|
||||
"bestelminimum":0
|
||||
//"opmerking":"Prijs inclusief bezorgkosten"
|
||||
}
|
||||
AddItem(bes_item_info, window.bes_item_info.aantal, urole, true);
|
||||
$("#lev_key_show").prop('disabled', true); // Maximaal <20><>n leverancier
|
||||
}
|
||||
|
||||
function AddSuggestItem(bes_item_info, aantal, urole)
|
||||
{
|
||||
if (!bes_item_info || bes_item_info.srtdeel_key < 0)
|
||||
@@ -79,7 +109,7 @@ function AddSuggestItem(bes_item_info, aantal, urole)
|
||||
}
|
||||
|
||||
// Als flexkenmerken met prs-sql in default dan moet de persoon minimaal ingevuld zijn.
|
||||
if (bes_item_info.num_prssql != 0 && !validateForm("u2", { checkOnly: ["person_show"] }))
|
||||
if (bes_item_info.num_prssql > 0 && !validateForm("u2", { checkOnly: ["person_show"] }))
|
||||
return false;
|
||||
|
||||
if (window.stock_info.stock == 0)
|
||||
@@ -93,16 +123,15 @@ function AddSuggestItem(bes_item_info, aantal, urole)
|
||||
|
||||
function AddItem(bes_item_info, aantal, urole, doCheckAmount)
|
||||
{
|
||||
var table = $("#sel_items")[0];
|
||||
|
||||
// openModalDetail is dan wel modal maar niet synchroon, daarom continueAdd callback
|
||||
var continueAdd = function(objFlex)
|
||||
{
|
||||
if (objFlex || bes_item_info.num_prop == 0)
|
||||
{
|
||||
var aantal_cell = CreateRow(bes_item_info, aantal, -1, true, objFlex, urole);
|
||||
if (doCheckAmount)
|
||||
checkAmount(aantal_cell); // eventuele minimum en zo
|
||||
if (bes_item_info.num_prop > 0 && !objFlex)
|
||||
return; // geen flex ingevuld
|
||||
|
||||
var aantal_cell = CreateRow(bes_item_info, aantal, -1, true, objFlex, urole);
|
||||
if (doCheckAmount)
|
||||
checkAmount(aantal_cell); // eventuele minimum en zo
|
||||
|
||||
StaffelKortingResult();
|
||||
|
||||
@@ -116,7 +145,16 @@ function AddItem(bes_item_info, aantal, urole, doCheckAmount)
|
||||
}
|
||||
|
||||
// Item veld en details van item wissen: onChangeArtikelgroep does the trick
|
||||
onChangeArtikelgroep();
|
||||
if (!bes_item_info.isFreeArticle)
|
||||
onChangeArtikelgroep();
|
||||
else
|
||||
{
|
||||
$('#aantal_text').val("");
|
||||
$('#srtdeel_nr').val("");
|
||||
$('#omschrijving').val("");
|
||||
$("#price").val("");
|
||||
$("#unit").val("");
|
||||
}
|
||||
|
||||
// Als het maximum aantal artikelen voor deze discipline bereikt is moet het artikel veld gedisabled worden.
|
||||
if (maxArtikelReached())
|
||||
@@ -126,10 +164,6 @@ function AddItem(bes_item_info, aantal, urole, doCheckAmount)
|
||||
}
|
||||
|
||||
FcltMgr.resized(window);
|
||||
}
|
||||
else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var objFlex = false;
|
||||
@@ -202,7 +236,7 @@ function CreateRow(bes_item_info, aantal, received, editable, objFlex, urole)
|
||||
var table = $("#sel_items>tbody")[0];
|
||||
|
||||
// insert data rows
|
||||
tr = table.insertRow(-1);
|
||||
var tr = table.insertRow(-1);
|
||||
tr.title = bes_item_info.srtgroup_text;
|
||||
if (!bes_item_info.item_key || String(bes_item_info.item_key).match(/^new/))
|
||||
{
|
||||
@@ -236,6 +270,15 @@ function CreateRow(bes_item_info, aantal, received, editable, objFlex, urole)
|
||||
+ " <img id='div_staffelinfo" + id_key + "' src=../Pictures/staffel_info.gif OnClick=showStaffels('" + id_key + "') style='display:none;cursor: pointer;'>"
|
||||
);
|
||||
|
||||
if (bes_item_info.isFreeArticle)
|
||||
{
|
||||
cell.innerHTML += "<input type='hidden' name='lev_key_" + bes_item_info.item_key + "' value='" + bes_item_info.lev_key + "'>";
|
||||
cell.innerHTML += "<input type='hidden' name='srtdeel_nr_" + bes_item_info.item_key + "' value='" + bes_item_info.srtdeel_nr + "'>";
|
||||
cell.innerHTML += "<input type='hidden' name='srtdeel_omschrijving_" + bes_item_info.item_key + "' value='" + bes_item_info.srtdeel_omschrijving + "'>";
|
||||
cell.innerHTML += "<input type='hidden' name='price_" + bes_item_info.item_key + "' value='" + bes_item_info.price + "'>";
|
||||
cell.innerHTML += "<input type='hidden' name='eenheid_" + bes_item_info.item_key + "' value='" + bes_item_info.eenheid + "'>";
|
||||
}
|
||||
|
||||
var new_price = aantal * bes_item_info.price;
|
||||
|
||||
// Create srtdeel
|
||||
@@ -369,19 +412,15 @@ function cancel_item(een_cell)
|
||||
// Indien er geen bestelregels aanwezig zijn mag de artikelgroep worden gewijzigd.
|
||||
if ($("#singlegroep").val() == 1)
|
||||
{
|
||||
var teller = 0;
|
||||
// JGL: Wat is er mis met teller = $("#sel_items>tbody>tr").length ?
|
||||
$("#sel_items>tbody>tr").each(function()
|
||||
{
|
||||
teller++;
|
||||
});
|
||||
// Indien readOnly (initieel) is gezet blijft de input box ook readonly. sgSrtgroep is dan ook niet gedefinieerd. $("#srtgroep_show")[0].style.display = "block" doet dan toch niets.
|
||||
if (teller == 0 && !$("#srtgroep_show")[0].readOnly)
|
||||
if (getAantalArtikelen() == 0 && !$("#srtgroep_show")[0].readOnly)
|
||||
{
|
||||
$("#srtgroep_ro")[0].style.display = "none";
|
||||
$("#srtgroep_show")[0].style.display = "block";
|
||||
}
|
||||
}
|
||||
if (getAantalArtikelen() == 0)
|
||||
$("#lev_key_show").prop('disabled', false); // Je mag eventueel weer leverancier kiezen
|
||||
|
||||
StaffelKortingResult();
|
||||
}
|
||||
@@ -408,13 +447,13 @@ function checkInput()
|
||||
|
||||
// Form srtdeel_keys and amount_string
|
||||
// and form flexkey_string and flexval_string of items
|
||||
srtdeel_keys = [];
|
||||
amount_string = [];
|
||||
flexkey_string =[];
|
||||
flexval_string = [];
|
||||
flexdeel_string = [];
|
||||
flexitem_string = [];
|
||||
item_keys = [];
|
||||
var srtdeel_keys = [];
|
||||
var amount_string = [];
|
||||
var flexkey_string =[];
|
||||
var flexval_string = [];
|
||||
var flexdeel_string = [];
|
||||
var flexitem_string = [];
|
||||
var item_keys = [];
|
||||
var id_key = "";
|
||||
var p = 0;
|
||||
$("#sel_items>tbody>tr").each(
|
||||
@@ -462,7 +501,7 @@ function checkInput()
|
||||
function MakeOrder (newOrder)
|
||||
{
|
||||
// Standaard checks op verplichte velden, datum formaat, numeriek en float formaat, currency formaat.
|
||||
if (!validateForm("u2"))
|
||||
if (!validateForm("u2", { checkNot: jqFreeFields }))
|
||||
return false;
|
||||
|
||||
// Formulier specifieke checks
|
||||
@@ -486,6 +525,8 @@ function MakeOrder (newOrder)
|
||||
}
|
||||
}
|
||||
|
||||
// UWVA#13497 Ooit bedacht om klachten over leveranciers in DAMO te registreren
|
||||
// Nooit in productie genomen?
|
||||
function Communication()
|
||||
{
|
||||
bes_key = document.getElementById("RFO_key").value;
|
||||
@@ -506,7 +547,7 @@ function showStaffels(pid_key)
|
||||
function PrsStaffelListResult(prs_bedrijf_key)
|
||||
{
|
||||
var sFeatures="dialogHeight:200px;dialogWidth:400px;status=no;resizable=yes;center=yes;";
|
||||
var s = "../Bes/PrsStaffelInfo.asp?prs_bedrijf_key=" + prs_bedrijf_key;
|
||||
var s = "../bes/PrsStaffelInfo.asp?prs_bedrijf_key=" + prs_bedrijf_key;
|
||||
var retourReturn = window.showModalDialog("ModalForm.asp?title=" + L("lcl_bes_staffel_details"), s, sFeatures);
|
||||
}
|
||||
|
||||
@@ -544,14 +585,14 @@ function showStaffelKortingResult( json)
|
||||
var bes_kosten = json.bes_kosten||0;
|
||||
var bes_limiet = json.bes_limiet||0;
|
||||
var prs_bedrijf_key = json.prs_bedrijf_key;
|
||||
iakorting = json.iakorting||0;
|
||||
totaalbedrag = json.totaalbedrag||0;
|
||||
var iakorting = json.iakorting||0;
|
||||
var totaalbedrag = json.totaalbedrag||0;
|
||||
|
||||
sgnaamstring = json.sgnaamstring;
|
||||
sgkeystring = json.sgkeystring;
|
||||
sgkortingstring = json.sgkortingstring;
|
||||
sgaantalstring = json.sgaantalstring;
|
||||
sgeenheidstring = json.sgeenheidstring;
|
||||
var sgnaamstring = json.sgnaamstring || [];
|
||||
var sgkeystring = json.sgkeystring || [];
|
||||
var sgkortingstring = json.sgkortingstring || [];
|
||||
var sgaantalstring = json.sgaantalstring || [];
|
||||
var sgeenheidstring = json.sgeenheidstring || [];
|
||||
|
||||
// Als sgnaamstring dan zijn er groepsstaffels
|
||||
if (sgnaamstring && (sgkeystring.length != sgnaamstring.length || sgkeystring.length != sgkortingstring.length || sgkeystring.length != sgaantalstring.length))
|
||||
@@ -605,7 +646,6 @@ function showStaffelKortingResult( json)
|
||||
}
|
||||
|
||||
$("#total_list").html(tabeltext);
|
||||
FcltMgr.resized();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -618,6 +658,7 @@ function showStaffelKortingResult( json)
|
||||
$("#total_list").html(tabeltext);
|
||||
}
|
||||
}
|
||||
FcltMgr.resized();
|
||||
}
|
||||
|
||||
function StaffelItem(item_key, aantal)
|
||||
@@ -632,17 +673,23 @@ function onBlurAmount(aantal_cell)
|
||||
StaffelKortingResult();
|
||||
}
|
||||
|
||||
// Toont de totaal regel (al dan niet met staffelkorting)
|
||||
function StaffelKortingResult()
|
||||
{
|
||||
var staffelItemArray = new Array();
|
||||
var table = $("#sel_items")[0];
|
||||
var json = null; // Bij isFreeArticle 'resultaat' van bes_gettotals.asp
|
||||
var anyFree = false; // Dan moeten we het helemaal clientside oplossen
|
||||
$("#sel_items>tbody>tr").each(
|
||||
function () {
|
||||
json = json || { totaalbedrag: 0 }; // voor FreeArtikel
|
||||
json.totaalbedrag += this.amount * this.bes_item_info.price;
|
||||
anyFree = anyFree || this.bes_item_info.isFreeArticle // die gaan niet via bes_gettotals.asp dus zelf totaal bepalen
|
||||
|
||||
var srtdeel_key = this.bes_item_info.srtdeel_key;
|
||||
if (staffelItemArray[srtdeel_key]) // aantallen van een item bij elkaar optellen
|
||||
staffelItemArray[srtdeel_key].aantal += tr.amount;
|
||||
else
|
||||
staffelItemArray[srtdeel_key] = new StaffelItem(srtdeel_key, this.amount, 10)
|
||||
if (staffelItemArray[srtdeel_key]) // aantallen van een item bij elkaar optellen
|
||||
staffelItemArray[srtdeel_key].aantal += this.amount;
|
||||
else
|
||||
staffelItemArray[srtdeel_key] = new StaffelItem(srtdeel_key, this.amount, 10)
|
||||
}
|
||||
);
|
||||
|
||||
@@ -651,7 +698,7 @@ function StaffelKortingResult()
|
||||
var first = true;
|
||||
for (var j in staffelItemArray)
|
||||
{
|
||||
if (staffelItemArray[j] != null && staffelItemArray[j].item_key)
|
||||
if (staffelItemArray[j] && staffelItemArray[j].item_key > 0)
|
||||
{
|
||||
itemstring += (!first? "," : "" ) + staffelItemArray[j].item_key;
|
||||
itemaantalstring += (!first? "," : "" ) + staffelItemArray[j].aantal;
|
||||
@@ -659,14 +706,14 @@ function StaffelKortingResult()
|
||||
}
|
||||
}
|
||||
|
||||
if (itemstring != "")
|
||||
if (!anyFree && itemstring != "")
|
||||
{
|
||||
// Haal (asynchroon) korting informatie op van de artikelen
|
||||
var s = "bes_gettotals.asp?itemstring=" + itemstring + "&itemaantalstring=" + itemaantalstring;
|
||||
$.getJSON(s, showStaffelKortingResult );
|
||||
}
|
||||
else
|
||||
showStaffelKortingResult()
|
||||
showStaffelKortingResult( json )
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -76,7 +76,9 @@ function bez_edit_bezoekers(afspraak_key, afspraak_begin, afspraak_eind, loc_key
|
||||
var teller = 0;
|
||||
while (!oRs.eof && teller < S("bez_max_flex_on_line"))
|
||||
{
|
||||
if (oRs("kenmerk_toonbaar").Value != 1 && (oRs("kenmerk_kenmerktype").Value != "Q" || oRs("kenmerk_kenmerktype").Value != "L" || oRs("kenmerk_kenmerktype").Value != "l"))
|
||||
if (oRs("kenmerk_volgnr").Value >= 0 &&
|
||||
oRs("kenmerk_toonbaar").Value != 1 &&
|
||||
(oRs("kenmerk_kenmerktype").Value != "Q" || oRs("kenmerk_kenmerktype").Value != "L" || oRs("kenmerk_kenmerktype").Value != "l"))
|
||||
{ %>
|
||||
<th><%=safe.html(oRs("kenmerk_omschrijving").Value)%></th>
|
||||
<% teller++;
|
||||
|
||||
@@ -707,8 +707,11 @@ function bez_list(pautfunction, params)
|
||||
|
||||
function fncolOpmerking(oRs)
|
||||
{
|
||||
return safe.html(oRs("bez_afspraak_opmerking").value||"")+(oRs("bez_bezoekers_opmerking").value ? "<br>"+safe.html(oRs("bez_bezoekers_opmerking").value):"") ;
|
||||
}
|
||||
var txt = oRs("bez_afspraak_opmerking").value||"";
|
||||
if (oRs("bez_bezoekers_opmerking").value)
|
||||
txt += "\n"+safe.html(oRs("bez_bezoekers_opmerking").value);
|
||||
return ResultsetTable.formatValue(txt, {});
|
||||
}
|
||||
|
||||
function fncolBadgenr(oRs)
|
||||
{
|
||||
@@ -724,6 +727,14 @@ function bez_list(pautfunction, params)
|
||||
return safe.html(oRs("badgenr").value);
|
||||
}
|
||||
|
||||
function fncolParkSort(oRs)
|
||||
{
|
||||
if (oRs("rsv_deel_key").value != 0)
|
||||
return 0; // Zodat met <20><>n keer klikken de P bovenaan
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
function fncolPark(oRs)
|
||||
{
|
||||
if (oRs("rsv_deel_key").value != 0)
|
||||
@@ -930,7 +941,7 @@ function bez_list(pautfunction, params)
|
||||
rst.addColumn(new Column({caption: L("lcl_host"), nowrap: true, content: "gastheer"}));
|
||||
if (S("vis_parking_key") != -1 && this_bez.canWritePrk)
|
||||
{
|
||||
rst.addColumn(new Column({caption: "P", content: fncolPark}));
|
||||
rst.addColumn(new Column({caption: "P", content: fncolPark, customSort: fncolParkSort }));
|
||||
}
|
||||
if (tiny) {
|
||||
rst.addColumn(new Column({caption: L("lcl_remark"), content: "bez_bezoekers_opmerking"}));
|
||||
|
||||
@@ -330,6 +330,8 @@ function noAutoResize()
|
||||
scene.add( cube );
|
||||
}
|
||||
|
||||
// Werkplekken zijn ooit uitgeschakeld om 3D op IE11 te kunnen testen
|
||||
// Niemand heeft het nog gemist.
|
||||
// Werkplekken
|
||||
// var loader = new THREE.ColladaLoader();
|
||||
|
||||
@@ -397,6 +399,7 @@ function noAutoResize()
|
||||
}
|
||||
}
|
||||
|
||||
if (0)
|
||||
for (var wp in wpjson.werkplekken)
|
||||
{
|
||||
var wpdata = wpjson.werkplekken[wp];
|
||||
|
||||
@@ -196,7 +196,11 @@ if (fac_usrrap_key > -1)
|
||||
"&disc_key=<%=disc_key%>" +
|
||||
"&discs=<%=discs%>" +
|
||||
"&thema=<%=thema_key%>" +
|
||||
"&themaI=<%=getQParamInt("themaI", -1)%>" +
|
||||
"&themaW=<%=getQParamInt("themaW", -1)%>" +
|
||||
"&label=<%=label_key%>" +
|
||||
"&labelI=<%=getQParamInt("labelI", -1)%>" +
|
||||
"&labelW=<%=getQParamInt("labelW", -1)%>" +
|
||||
"&antialias=<%=antialias%>" +
|
||||
"&highlight=" + window.alg_ruimte_key +
|
||||
"&ins_key=" + window.ins_key; // zojuist gereserveerd
|
||||
@@ -235,8 +239,7 @@ if (fac_usrrap_key > -1)
|
||||
{
|
||||
if (SlnkEvent.Key)
|
||||
{ // Zoek het object/ ruimte
|
||||
<% if (disc_key > 0) { %>
|
||||
if (SlnkEvent.Key.match(/^I:/)) // INS_DEEL
|
||||
if (String(SlnkEvent.Key).match(/^I:/)) // INS_DEEL
|
||||
{
|
||||
var intKey = parseInt(SlnkEvent.Key.substring(2),10);
|
||||
window.ins_key = intKey; // onthouden
|
||||
@@ -247,7 +250,6 @@ if (fac_usrrap_key > -1)
|
||||
FcltMgr.openModalDetail(url, "", { callback: callback_reserved, alwaysCallbackParams: {}, xnoClose: true });
|
||||
MMap.noAutoResize(false);
|
||||
}
|
||||
<% } else { %>
|
||||
if (SlnkEvent.Key > 0 && SlnkEvent.ContourLayer == "SLNK Contours") // RUIMTE
|
||||
{
|
||||
var alg_ruimte_key = SlnkEvent.Key;
|
||||
@@ -258,7 +260,6 @@ if (fac_usrrap_key > -1)
|
||||
FcltMgr.openModalDetail(url, "", { callback: callback_reserved, alwaysCallbackParams: {}, xnoClose: true });
|
||||
MMap.noAutoResize(false);
|
||||
}
|
||||
<% } %>
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -356,10 +357,10 @@ if (disc_key > 0)
|
||||
+ " AND id.ins_discipline_key = " + disc_key
|
||||
+ " AND THEMA.ins_deel_key = id.ins_deel_key "
|
||||
+ " AND thema.waarde >= ti.cad_legendawaarde_value"
|
||||
+ " AND NOT EXISTS"
|
||||
+ " AND NOT EXISTS" // geen grotere waarde waar hij onder zou vallen
|
||||
+ " (SELECT '1' FROM cad_legendawaarde ti2"
|
||||
+ " WHERE ti2.cad_legendawaarde_value > ti.cad_legendawaarde_value"
|
||||
+ " AND thema.waarde > ti2.cad_legendawaarde_value"
|
||||
+ " AND thema.waarde >= ti2.cad_legendawaarde_value"
|
||||
+ " AND ti2.cad_legenda_key = " + legenda_key + ")"
|
||||
+ " AND ti.cad_legenda_key = " + legenda_key
|
||||
+ " GROUP BY ar.alg_verdieping_key, ti.cad_legendawaarde_rgb, ti.cad_legendawaarde_rgb";
|
||||
@@ -375,7 +376,7 @@ else // Ruimte mode
|
||||
+ " AND NOT EXISTS"
|
||||
+ " (SELECT '1' FROM cad_legendawaarde ti2"
|
||||
+ " WHERE ti2.cad_legendawaarde_value > ti.cad_legendawaarde_value"
|
||||
+ " AND thema.waarde > ti2.cad_legendawaarde_value"
|
||||
+ " AND thema.waarde >= ti2.cad_legendawaarde_value"
|
||||
+ " AND ti2.cad_legenda_key = " + legenda_key + ")"
|
||||
+ " AND ti.cad_legenda_key = " + legenda_key
|
||||
+ " GROUP BY ar.alg_verdieping_key, ti.cad_legendawaarde_rgb, ti.cad_legendawaarde_rgb";
|
||||
|
||||
@@ -171,7 +171,12 @@ while (!oRFs.eof)
|
||||
ts.WriteLine('</facilitor>');
|
||||
ts.Close();
|
||||
|
||||
Response.Write(XML2STR2(tempXML, r_xslsheet, pXSLMode));
|
||||
// Beetje omslachtig om eerst in een bestand te schrijven en vervolgens
|
||||
// alleen maar terug te lezen maar zo was de code nou eenmaal
|
||||
var inFile = fs.OpenTextFile(Server.MapPath(tempXML));
|
||||
var xml_content = inFile.ReadAll();
|
||||
inFile.Close()
|
||||
STR2Stream(xml_content, r_xslsheet, Response, { mode: pXSLMode });
|
||||
|
||||
if ((Session("logging") & 1) == 0)
|
||||
{
|
||||
|
||||
@@ -46,10 +46,15 @@ sql = "SELECT ts.CAD_LEGENDA_KEY,"
|
||||
+ " tt.CAD_THEMA_VIEW"
|
||||
+ " FROM CAD_LEGENDA ts, CAD_THEMA tt"
|
||||
+ " WHERE tt.CAD_THEMA_KEY = " + pThema
|
||||
+ " AND tt.CAD_LEGENDA_KEY = ts.CAD_LEGENDA_KEY";
|
||||
+ " AND tt.CAD_LEGENDA_KEY = ts.CAD_LEGENDA_KEY"
|
||||
+ " AND CAD_LEGENDA_DISCREET <> 0";
|
||||
oRs = Oracle.Execute(sql)
|
||||
|
||||
if (oRs.EOF) Response.end; // Is wel heel vreemd, een lege legenda
|
||||
if (oRs.EOF) // Waarschijnlijk CAD_LEGENDA_DISCREET=0
|
||||
{
|
||||
Response.Write(JSON.stringify({}));
|
||||
Response.end;
|
||||
}
|
||||
|
||||
var legenda_key=oRs("CAD_LEGENDA_KEY").value;
|
||||
var viewName = oRs("CAD_THEMA_VIEW").value;
|
||||
|
||||
@@ -796,6 +796,7 @@ if (scenario_key != 0)
|
||||
if ($('#MMap2').length)
|
||||
{
|
||||
MMap2.Reset();
|
||||
MMap2.SetLabelPosition(<%=S("fg_labelPosition")%>);
|
||||
MMap2.SetIMGGenerator("../cad/mySlnk2IMG.asp");
|
||||
|
||||
MMap2.SetPaperColor(<%=S("fg_paperColorCpt")%>);
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
geb_key
|
||||
floor_key optional, default verdieping
|
||||
disc_key optional, de discipline voor objecten, leeg voor ruimtes selecteren.
|
||||
discs optional, de extra te tonen disciplines.
|
||||
thema_key optional, het te tonen kleur thema
|
||||
label_key optional, het te tonen label thema
|
||||
hidenav optional, geen verdieping selector tonen
|
||||
@@ -48,6 +49,10 @@ FCLTHeader.Requires({ js: ["jquery-ui.js"]
|
||||
|
||||
var geb_key = getQParamInt("geb_key", user.alg_gebouw_key());
|
||||
var disc_key = getQParamInt("disc_key", -1) // De *object* discipline
|
||||
var discs = getQParamIntArray("discs", []) // Te tonen disciplines (ondergrond bijvoorbeeld)
|
||||
if (disc_key > 0)
|
||||
discs.push(disc_key);
|
||||
|
||||
var thema_key = getQParamInt("thema_key", -1); // Thema daarop
|
||||
var label_key = getQParamInt("label_key", -1);
|
||||
|
||||
@@ -99,7 +104,7 @@ var authparams = user.checkAutorisation(autfunction); // voor kiezen *andere* ve
|
||||
function getCustomParameters()
|
||||
{
|
||||
return "&vKey=" + floor_key +
|
||||
"&discs=<%=disc_key%>" +
|
||||
"&discs=<%=discs%>" +
|
||||
"&thema=<%=thema_key%>" +
|
||||
"&label=<%=label_key%>" +
|
||||
"&highlight=" + window.alg_ruimte_key +
|
||||
@@ -266,10 +271,10 @@ if (disc_key > 0)
|
||||
+ " AND id.ins_discipline_key = " + disc_key
|
||||
+ " AND THEMA.ins_deel_key = id.ins_deel_key "
|
||||
+ " AND thema.waarde >= ti.cad_legendawaarde_value"
|
||||
+ " AND NOT EXISTS"
|
||||
+ " AND NOT EXISTS" // geen grotere waarde waar hij onder zou vallen
|
||||
+ " (SELECT '1' FROM cad_legendawaarde ti2"
|
||||
+ " WHERE ti2.cad_legendawaarde_value > ti.cad_legendawaarde_value"
|
||||
+ " AND thema.waarde > ti2.cad_legendawaarde_value"
|
||||
+ " AND thema.waarde >= ti2.cad_legendawaarde_value"
|
||||
+ " AND ti2.cad_legenda_key = " + legenda_key + ")"
|
||||
+ " AND ti.cad_legenda_key = " + legenda_key
|
||||
+ " GROUP BY ar.alg_verdieping_key, ti.cad_legendawaarde_rgb, ti.cad_legendawaarde_rgb";
|
||||
@@ -285,7 +290,7 @@ else // Ruimte mode
|
||||
+ " AND NOT EXISTS"
|
||||
+ " (SELECT '1' FROM cad_legendawaarde ti2"
|
||||
+ " WHERE ti2.cad_legendawaarde_value > ti.cad_legendawaarde_value"
|
||||
+ " AND thema.waarde > ti2.cad_legendawaarde_value"
|
||||
+ " AND thema.waarde >= ti2.cad_legendawaarde_value"
|
||||
+ " AND ti2.cad_legenda_key = " + legenda_key + ")"
|
||||
+ " AND ti.cad_legenda_key = " + legenda_key
|
||||
+ " GROUP BY ar.alg_verdieping_key, ti.cad_legendawaarde_rgb, ti.cad_legendawaarde_rgb";
|
||||
|
||||
@@ -57,7 +57,7 @@ if (cnt_key > 0) {
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
FcltMgr.setTitle("<%=tabtitle%>", {hot: false});
|
||||
FcltMgr.setTitle("<%=safe.jsstring(tabtitle)%>", {hot: false});
|
||||
<% if (cnt_key == -1) { %>FcltMgr.startEdit(window);<% } %>
|
||||
})
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ var sql = "SELECT 1 FROM cnt_contract"
|
||||
+ " AND cnt_contract_verwijder IS NULL "
|
||||
+ (!isNew
|
||||
? " AND cnt_contract_key <> " + cnt_key
|
||||
+ " AND cnt_contract_versie = " + cnt_info.versie
|
||||
+ " AND cnt_contract_versie = " + safe.quoted_sql(cnt_info.versie)
|
||||
: "");
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
|
||||
@@ -56,7 +56,7 @@ var comp_key = getQParamInt("comp_key", -1); // Uitvoerder
|
||||
var dep_key = getQParamInt("dep_key", -1); // Afdeling / Eigenaar
|
||||
var prs_eig_key = getQParamInt("prs_eig_key", -1); // Eigenaar
|
||||
var prs_beh_key = getQParamInt("prs_beh_key", -1); // Beheerder
|
||||
var cnt_key = getQParam("cnt_key", ""); // Contractnummer (zoekveld)
|
||||
var cnt_num = getQParam("cnt_key", ""); // Contractnummer (zoekveld, unsafe)
|
||||
var descript = getQParam("descript", ""); // Beschrijving
|
||||
var reg_key = getQParamInt("regio_key", -1); // Regio
|
||||
var dist_key = getQParamInt("district_key", -1);
|
||||
@@ -208,7 +208,7 @@ var authparams = user.checkAutorisation(autfunction, true) || {};
|
||||
<!-- Contractnummer -->
|
||||
<tr class="primsearch">
|
||||
<td class="label"><label for="cntnum"><%=L("lcl_cnt_intern_nr")%>:</label></td>
|
||||
<td><input type="text" class="fldcntnum" name="cntnum" value="<%=safe.htmlattr(cnt_key)%>"></td>
|
||||
<td><input type="text" class="fldcntnum" name="cntnum" value="<%=safe.htmlattr(cnt_num)%>"></td>
|
||||
</tr>
|
||||
|
||||
<% // <!-- Catalogus -->
|
||||
|
||||
@@ -20,27 +20,45 @@
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="../Shared/resultset_table_v2.inc" -->
|
||||
<!-- #include file="cnt.inc" -->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({ js: [] });
|
||||
|
||||
var cnt_key = getQParamInt("cnt_key");
|
||||
var this_cnt = cnt.func_enabled_contract(cnt_key); // Wat heb ik zoal aan rechten op dit contract?
|
||||
var showall = getQParamInt("showall", 0) == 1;
|
||||
var cnt_key = getQParamInt("cnt_key");
|
||||
var this_cnt = cnt.func_enabled_contract(cnt_key); // Wat heb ik zoal aan rechten op dit contract?
|
||||
var showall = getQParamInt("showall", 0) == 1;
|
||||
var outputmode = getQParamInt("outputmode", 0);
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate(); %>
|
||||
<% FCLTHeader.Generate({outputmode: outputmode}); %>
|
||||
<script type="text/javascript">
|
||||
function cnt_scopechange()
|
||||
{
|
||||
if (FcltMgr.startEdit(window))
|
||||
window.location.href = "cnt_edit_scope.asp?cnt_key=<%=cnt_key%>&embedded=1"
|
||||
window.location.href = "cnt_edit_scope.asp?cnt_key=<%=cnt_key%>&embedded=1";
|
||||
}
|
||||
|
||||
function gotoScope(row)
|
||||
{
|
||||
var rowKey = row.getAttribute("ROWKEY");
|
||||
var rowData = eval("(" + row.getAttribute("ROWDATA") + ")");
|
||||
var url;
|
||||
switch (rowData.scopeType)
|
||||
{
|
||||
case 'G' : url = "appl/alg/alg_gebouw.asp?key="+rowKey ; break;
|
||||
case 'V' : url = "appl/alg/alg_verdieping.asp?key="+rowKey ; break;
|
||||
case 'R' : url = "appl/alg/alg_ruimte.asp?key="+rowKey ; break;
|
||||
case 'L' : url = "appl/alg/alg_locatie.asp?key="+rowKey ; break;
|
||||
case 'D' : url= "appl/ins/ins_deel.asp?urole=bo&ins_key="+rowKey; break;
|
||||
case 'S' : url = "appl/ins/ins_srtdeel.asp?urole=bo&srtdeel_key="+rowKey ; break;
|
||||
}
|
||||
FcltMgr.openDetail(url, "");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body id="listbody">
|
||||
<%
|
||||
var cnt_typecontract = -1;
|
||||
var sql = "SELECT c.ins_discipline_key"
|
||||
@@ -72,19 +90,20 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
kosten = oRs(0).value;
|
||||
kosten = oRs("cnt_contract_kosten").value;
|
||||
}
|
||||
|
||||
sql = "";
|
||||
var scopetext = "";
|
||||
switch (cnt_typecontract)
|
||||
{
|
||||
// resultaatkolommen code, scope, gewicht, type
|
||||
// resultaatkolommen code, scope, gewicht, type, key
|
||||
case 1: // Onderhoud op objecten
|
||||
sql = "SELECT 0 code"
|
||||
+ " , " + lcl.xsql('S.ins_srtdeel_omschrijving','S.ins_srtdeel_key') + " scope"
|
||||
+ " , null gewicht"
|
||||
+ " , 'S' type "
|
||||
+ " , s.ins_srtdeel_key key "
|
||||
+ " FROM cnt_contract_object, ins_srtdeel S "
|
||||
+ " WHERE cnt_ins_deel_key IS NULL"
|
||||
+ " AND cnt_ins_srtdeel_key = S.ins_srtdeel_key"
|
||||
@@ -110,6 +129,7 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
+ " AND D.ins_alg_ruimte_type = 'A'), 'onb'))) scope"
|
||||
+ ", null gewicht"
|
||||
+ ", 'D' type"
|
||||
+ ", cnt_ins_deel_key key"
|
||||
+ " FROM cnt_contract_object"
|
||||
+ " WHERE cnt_ins_deel_key IS NOT NULL"
|
||||
+ " AND cnt_contract_object_verwijder IS NULL"
|
||||
@@ -127,8 +147,10 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
+ ", tariefsrt"
|
||||
+ ", locatie"
|
||||
+ ", (contract_opp * prijs) totaalprijs"
|
||||
+ ", alg_onrgoed_key key"
|
||||
+ " FROM"
|
||||
+ " (SELECT rm.alg_ruimte_aanduiding plaatsaanduiding"
|
||||
+ " (SELECT co.alg_onrgoed_key"
|
||||
+ ", rm.alg_ruimte_aanduiding plaatsaanduiding"
|
||||
+ ", (SELECT fac.safe_to_number(alg_onrgoedkenmerk_waarde)"
|
||||
+ " FROM alg_onrgoedkenmerk"
|
||||
+ " WHERE alg_onrgoed_key = co.alg_onrgoed_key"
|
||||
@@ -147,7 +169,8 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
+ " AND co.cnt_mld_melding_key IS NULL"
|
||||
+ " AND co.cnt_contract_key = " + cnt_key + ""
|
||||
+ " UNION"
|
||||
+ " SELECT lc.alg_locatie_code || ' - ' || alg_terreinsector_omschrijving plaatsaanduiding"
|
||||
+ " SELECT co.alg_onrgoed_key"
|
||||
+ ", lc.alg_locatie_code || ' - ' || alg_terreinsector_omschrijving plaatsaanduiding"
|
||||
+ ", (SELECT fac.safe_to_number(alg_onrgoedkenmerk_waarde) from alg_onrgoedkenmerk"
|
||||
+ " WHERE alg_onrgoed_key = co.alg_onrgoed_key"
|
||||
+ " AND alg_kenmerk_key = " + S("alg_terrein_comm_opp_key") + ") totaal_opp"
|
||||
@@ -167,7 +190,8 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
+ " AND co.cnt_mld_melding_key IS NULL"
|
||||
+ " AND co.cnt_contract_key = " + cnt_key + ""
|
||||
+ " UNION"
|
||||
+ " SELECT " + safe.quoted_sql(L("lcl_location")) + " plaatsaanduiding"
|
||||
+ " SELECT co.alg_onrgoed_key"
|
||||
+ ", " + safe.quoted_sql(L("lcl_location")) + " plaatsaanduiding"
|
||||
+ ", null totaal_opp"
|
||||
+ ", co.cnt_contract_onrgoed_opp contract_opp"
|
||||
+ ", sr.alg_srtruimte_code tariefsrt"
|
||||
@@ -192,6 +216,7 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
+ " , " + lcl.xsql('sd.ins_srtdeel_omschrijving','SD.ins_srtdeel_key') + " scope"
|
||||
+ " , null gewicht"
|
||||
+ " , 'S' type"
|
||||
+ " , co.cnt_ins_srtdeel_key key"
|
||||
+ " FROM cnt_contract_object co"
|
||||
+ " , ins_srtdeel sd"
|
||||
+ " WHERE co.cnt_ins_srtdeel_key = sd.ins_srtdeel_key"
|
||||
@@ -204,6 +229,7 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
+ " , l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')' scope"
|
||||
+ " , cnt_contract_plaats_gewicht gewicht"
|
||||
+ " , cnt_alg_plaats_code type"
|
||||
+ " , cnt_alg_plaats_key key"
|
||||
+ " FROM cnt_contract_plaats"
|
||||
+ " , alg_locatie l"
|
||||
+ " WHERE cnt_alg_plaats_key = l.alg_locatie_key"
|
||||
@@ -215,6 +241,7 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
+ " , l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || '): "
|
||||
+ L("lcl_building") + " ' || g.alg_gebouw_omschrijving scope"
|
||||
+ " , cnt_contract_plaats_gewicht gewicht, cnt_alg_plaats_code type"
|
||||
+ " , cnt_alg_plaats_key key"
|
||||
+ " FROM cnt_contract_plaats, alg_locatie l"
|
||||
+ " , alg_gebouw g "
|
||||
+ " WHERE cnt_alg_plaats_code = 'G'"
|
||||
@@ -228,6 +255,7 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
+ L("lcl_terra") + " ' || t.alg_terreinsector_omschrijving scope"
|
||||
+ " , cnt_contract_plaats_gewicht gewicht"
|
||||
+ " , cnt_alg_plaats_code type"
|
||||
+ " , cnt_alg_plaats_key key"
|
||||
+ " FROM cnt_contract_plaats"
|
||||
+ " , alg_locatie l"
|
||||
+ " , alg_terreinsector t"
|
||||
@@ -241,10 +269,17 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
break;
|
||||
case 4: // scopeloos
|
||||
case 6: // mantelcontract
|
||||
sql = "SELECT 'x' code, 'x' scope, 'x' gewicht, 'x' type FROM DUAL WHERE 1=0";
|
||||
sql = "SELECT 'x' code, 'x' scope, 'x' gewicht, 'x' type, -1 key FROM DUAL WHERE 1=0";
|
||||
break;
|
||||
}
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var scopeType = oRs("type").Value;
|
||||
var data = {scopeType: scopeType};
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
function fnScopetype(oRs)
|
||||
{
|
||||
var result = "";
|
||||
@@ -282,17 +317,18 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({ sql: sql,
|
||||
keyColumn: "key",
|
||||
ID: "cntscopetable",
|
||||
title: L("lcl_cnt_frame_scope"),
|
||||
showAll: showall,
|
||||
noPrint: true,
|
||||
outputmode: outputmode,
|
||||
rowData: fnrowData,
|
||||
buttons: buttons
|
||||
});
|
||||
|
||||
// debug: rst.addColumn(new Column({caption: cnt_typecontract, content: fnScopetype}));
|
||||
if (cnt_typecontract == 2)
|
||||
rst.addColumn(new Column({ caption: L("lcl_location"), content: "locatie" }));
|
||||
rst.addColumn(new Column({ caption: L("lcl_cnt_scope_title"), content: "scope" }));
|
||||
rst.addColumn(new Column({ caption: L("lcl_cnt_scope_title"), content: "scope", hasActions: true, tooltip: fnScopetype }));
|
||||
if (cnt_typecontract != 1 && cnt_typecontract != 2)
|
||||
rst.addColumn(new Column({ caption: L("lcl_cnt_verdeling"), content: fnGewicht, datatype: "currency" }));
|
||||
if (cnt_typecontract == 2)
|
||||
@@ -302,6 +338,9 @@ var showall = getQParamInt("showall", 0) == 1;
|
||||
rst.addColumn(new Column({ caption: L("lcl_cnt_ruimte_tarief"), content: "tariefsrt" }));
|
||||
rst.addColumn(new Column({ caption: L("lcl_total_cost"), content: "totaalprijs", datatype: "currency", total: true }));
|
||||
}
|
||||
rst.addAction({ action: "gotoScope", caption: L("lcl_details"), isDefault: true });
|
||||
|
||||
var cnt = rst.processResultset();
|
||||
%>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -513,30 +513,32 @@ fac = {myfunctionssqlstring:
|
||||
|
||||
getSqlFiatMld: function(fiatstatus, prsKeys, params)
|
||||
{ // opdrachten: te fiatteren op mijn budgetten
|
||||
var sql = " SELECT sd.ins_srtdiscipline_prefix || op.mld_melding_key || '/' || op.mld_opdr_bedrijfopdr_volgnr aanvraagnummer"
|
||||
+ " , mld_opdr_datumbegin"
|
||||
+ " , pf.prs_perslid_naam_full"
|
||||
+ " , mld_opdr_kosten"
|
||||
+ " , 'MLD' module"
|
||||
+ " , mld_typeopdr_omschrijving"
|
||||
+ " , '" + fiatstatus + "' fiatstatus"
|
||||
+ " , op.mld_opdr_key request_key"
|
||||
+ " , op.mld_statusopdr_key statuskey"
|
||||
+ " , mld_opdr_datumbegin sortdate"
|
||||
+ " , "+ lcl.xsql('td.ins_discipline_omschrijving','td.ins_discipline_key') +" categorie"
|
||||
+ (fiatstatus == "open"
|
||||
? " , p2.prs_perslid_naam_full"
|
||||
: " , ' '") + " fiatteur"
|
||||
+ " , NULL bes_bestelling_parentkey"
|
||||
+ " , sd.ins_srtdiscipline_prefix prefix"
|
||||
+ " , NULL uitvoerende"
|
||||
+ " , CASE "
|
||||
+ " WHEN l.alg_locatie_key IS NULL"
|
||||
+ " THEN NULL"
|
||||
+ " ELSE l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')'"
|
||||
+ " END locatie"
|
||||
+ " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw"
|
||||
+ " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein"
|
||||
var sql = (params.goedkeur
|
||||
? " SELECT op.mld_opdr_key" // Query wordt gebruikt als subquery voor getSqlGoedkeurMld (AND op.mld_opdr_key NOT IN (...))
|
||||
: " SELECT sd.ins_srtdiscipline_prefix || op.mld_melding_key || '/' || op.mld_opdr_bedrijfopdr_volgnr aanvraagnummer"
|
||||
+ " , mld_opdr_datumbegin"
|
||||
+ " , pf.prs_perslid_naam_full"
|
||||
+ " , mld_opdr_kosten"
|
||||
+ " , 'MLD' module"
|
||||
+ " , mld_typeopdr_omschrijving"
|
||||
+ " , '" + fiatstatus + "' fiatstatus"
|
||||
+ " , op.mld_opdr_key request_key"
|
||||
+ " , op.mld_statusopdr_key statuskey"
|
||||
+ " , mld_opdr_datumbegin sortdate"
|
||||
+ " , "+ lcl.xsql('td.ins_discipline_omschrijving','td.ins_discipline_key') +" categorie"
|
||||
+ (fiatstatus == "open"
|
||||
? " , p2.prs_perslid_naam_full"
|
||||
: " , ' '") + " fiatteur"
|
||||
+ " , NULL bes_bestelling_parentkey"
|
||||
+ " , sd.ins_srtdiscipline_prefix prefix"
|
||||
+ " , NULL uitvoerende"
|
||||
+ " , CASE "
|
||||
+ " WHEN l.alg_locatie_key IS NULL"
|
||||
+ " THEN NULL"
|
||||
+ " ELSE l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')'"
|
||||
+ " END locatie"
|
||||
+ " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw"
|
||||
+ " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein")
|
||||
+ " FROM mld_melding m"
|
||||
+ " , mld_stdmelding sm"
|
||||
+ " , mld_opdr op"
|
||||
@@ -606,6 +608,7 @@ fac = {myfunctionssqlstring:
|
||||
// opdrachten die eerst nog goedgekeurd moet worden (nog voordat ze gefiatteerd mogen worden)
|
||||
getSqlGoedkeurMld: function(fiatstatus, prsKeys, params)
|
||||
{ // opdrachten: goedkeuren
|
||||
params.goedkeur = true;
|
||||
var sql = " SELECT sd.ins_srtdiscipline_prefix || op.mld_melding_key || '/' || op.mld_opdr_bedrijfopdr_volgnr aanvraagnummer"
|
||||
+ " , mld_opdr_datumbegin"
|
||||
+ " , pf.prs_perslid_naam_full"
|
||||
@@ -735,6 +738,9 @@ fac = {myfunctionssqlstring:
|
||||
: ""))
|
||||
+ (params.opdrtype_key
|
||||
? " AND ot.mld_typeopdr_key = " + params.opdrtype_key
|
||||
: "")
|
||||
+ (fiatstatus == "close"
|
||||
? " AND op.mld_opdr_key NOT IN (" + fac.getSqlFiatMld(fiatstatus, prsKeys, params) + ")"
|
||||
: "");
|
||||
return sql;
|
||||
},
|
||||
|
||||
@@ -46,7 +46,7 @@ FCLTHeader.Requires({plugins:["suggest","jQuery"], js: ["jquery-ui.js"]})
|
||||
%>
|
||||
<script type="text/javascript" >
|
||||
<% if (adr_key > 0) { %>
|
||||
FcltMgr.setTitle("<%=L("lcl_adress") + ' ' + fac_title%>", {hot:false});
|
||||
FcltMgr.setTitle("<%=L("lcl_adress") + ' ' + safe.jsstring(fac_title)%>", {hot:false});
|
||||
<% } %>
|
||||
|
||||
function facClose(params)
|
||||
|
||||
@@ -27,7 +27,7 @@ var authParams = user.checkAutorisation(autfunction);
|
||||
|
||||
var level = getFParam("level");
|
||||
if (level == "BM")
|
||||
var key = getFParam("key");
|
||||
var bmname = getFParam("key");
|
||||
else
|
||||
var key = getFParamInt("key");
|
||||
|
||||
@@ -45,7 +45,7 @@ if ((table == "FAC_MENU") || (table == "FAC_API"))
|
||||
else if (table == "FAC_BOOKMARK")
|
||||
{
|
||||
sql = "DELETE " + table
|
||||
+ " WHERE " + table + "_id = " + safe.quoted_sql(key);
|
||||
+ " WHERE " + table + "_id = " + safe.quoted_sql(bmname);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -30,7 +30,7 @@ FCLTHeader.Requires({plugins:["jQuery", "suggest"], js: ["jquery-ui.js"]})
|
||||
%>
|
||||
<script type="text/javascript" >
|
||||
<% if (faq_key > 0) { %>
|
||||
FcltMgr.setTitle("<%=fac_title%>", {hot:false});
|
||||
FcltMgr.setTitle("<%=safe.jsstring(fac_title)%>", {hot:false});
|
||||
<% } %>
|
||||
|
||||
function facClose(params)
|
||||
|
||||
@@ -341,11 +341,23 @@ FCLTHeader.Requires({ plugins: ["jQuery"], js: ["jquery-ui.js"] });
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
//var this_mld = mld.func_enabled_melding(oRs("mld_melding_key").Value);
|
||||
var eApprove = oRs("fiatstatus").Value == "open"; // Fiatteren
|
||||
var eReject = oRs("fiatstatus").Value == "open"; // Afwijzen
|
||||
var data = { eApprove: eApprove,
|
||||
eReject: eReject
|
||||
};
|
||||
var data = { eReject: eReject };
|
||||
|
||||
var eApprove = oRs("fiatstatus").Value == "open"; // Fiatteren
|
||||
if (eApprove)
|
||||
{
|
||||
switch (oRs("module").Value)
|
||||
{
|
||||
case "BES":
|
||||
case "CNT":
|
||||
case "MLD": data.eApprove = true; break; // Fiatteren bestelling, contract, melding opdracht
|
||||
case "GOED": data.eGoedkeur = true; break; // Goedkeuren melding opdracht
|
||||
case "OFFERTE": data.eAccept = true; break; // Accepteren melding offerte
|
||||
default: INTERNAL_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -363,11 +375,11 @@ FCLTHeader.Requires({ plugins: ["jQuery"], js: ["jquery-ui.js"] });
|
||||
{
|
||||
switch (oRs("module").Value)
|
||||
{
|
||||
case "BES": return L("lcl_bes_bestelling");
|
||||
case "CNT": return L("lcl_cnt_contract");
|
||||
case "MLD": return L("lcl_shared_order") + "<br>" + safe.html(oRs("mld_typeopdr_omschrijving").Value);
|
||||
case "GOED": return L("lcl_shared_order") + "<br>" + safe.html(oRs("mld_typeopdr_omschrijving").Value);
|
||||
case "OFFERTE": return safe.html(oRs("mld_typeopdr_omschrijving").Value) + "<br>" + safe.html(oRs("uitvoerende").Value);
|
||||
case "BES": return L("lcl_bes_bestelling"); break;
|
||||
case "CNT": return L("lcl_cnt_contract"); break;
|
||||
case "MLD": return L("lcl_shared_order") + "<br>" + safe.html(oRs("mld_typeopdr_omschrijving").Value); break;
|
||||
case "GOED": return L("lcl_shared_order") + "<br>" + safe.html(oRs("mld_typeopdr_omschrijving").Value); break;
|
||||
case "OFFERTE": return safe.html(oRs("mld_typeopdr_omschrijving").Value) + "<br>" + safe.html(oRs("uitvoerende").Value); break;
|
||||
default: INTERNAL_ERROR;
|
||||
}
|
||||
}
|
||||
@@ -453,6 +465,8 @@ FCLTHeader.Requires({ plugins: ["jQuery"], js: ["jquery-ui.js"] });
|
||||
|
||||
rst.addAction({action: "fac_edit", caption: L("lcl_details"), isDefault: true});
|
||||
rst.addAction({action: "fac_approve", caption: L("lcl_approve"), enabler: "eApprove", multi: true, multiOnce: true});
|
||||
rst.addAction({action: "fac_approve", caption: L("lcl_goedkeur"), enabler: "eGoedkeur", multi: true, multiOnce: true});
|
||||
rst.addAction({action: "fac_approve", caption: L("lcl_accept"), enabler: "eAccept", multi: true, multiOnce: true});
|
||||
rst.addAction({action: "fac_reject", caption: L("lcl_reject"), enabler: "eReject", multi: true, multiOnce: true});
|
||||
|
||||
|
||||
|
||||
@@ -665,7 +665,7 @@ function sqlTracking(refkey, node)
|
||||
summaryShow: function(){},
|
||||
emptySetString: L("lcl_geenfaciliteiten")
|
||||
});
|
||||
rst.addColumn(new Column({caption: L("lcl_myfacilities_date"), content: "datum", datatype: "datum"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_myfacilities_date"), content: "datum", datatype: "date", prettydate: true }));
|
||||
rst.addColumn(new Column({caption: L("lcl_myfacilities_time"), content: fntime}));
|
||||
rst.addColumn(new Column({caption: L("lcl_faciliteit"), content: fncolType}));
|
||||
rst.addColumn(new Column({caption: L("lcl_descr"), content: "detail"}));
|
||||
|
||||
@@ -49,7 +49,7 @@ DOCTYPE_Disable = 1;
|
||||
? " " + lcl.xsql('id.ins_discipline_omschrijving', 'id.ins_discipline_key') + " detail, "
|
||||
: " " + lcl.xsql('sm.mld_stdmelding_omschrijving', 'sm.mld_stdmelding_key') + " detail, ")
|
||||
+ " m.mld_melding_status status_key, "
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'melding') bookmark"
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'melding' AND fac_bookmark_naam = 'melding') bookmark"
|
||||
+ " FROM mld_melding m"
|
||||
+ " , ins_srtdiscipline isd"
|
||||
+ " , ins_tab_discipline id"
|
||||
@@ -79,7 +79,7 @@ DOCTYPE_Disable = 1;
|
||||
+ " AND bi.bes_bestelling_key = b.bes_bestelling_key)) "
|
||||
+ " oms, "
|
||||
+ " b.bes_bestelling_status,"
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'bestelling') bookmark"
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'bestelling' AND fac_bookmark_naam = 'bestelling') bookmark"
|
||||
+ " FROM bes_bestelling b "
|
||||
+ " WHERE b.bes_bestelling_status IN (5, 4, 3, 2) AND b.fac_activiteit_key IS NULL "
|
||||
+ " AND (b.prs_perslid_key_voor = " + user_key
|
||||
@@ -94,7 +94,7 @@ DOCTYPE_Disable = 1;
|
||||
+ " FROM res_activiteit ra "
|
||||
+ " WHERE res_activiteit_key = rr.res_activiteit_key)), "
|
||||
+ " DECODE (res_rsv_ruimte_dirtlevel, 0, rr.res_status_fo_key, -1), "
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'reservering') bookmark"
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'reservering' AND fac_bookmark_naam = 'reservering') bookmark"
|
||||
+ " FROM res_v_aanwezigrsv_ruimte rr "
|
||||
+ " WHERE rr.res_status_bo_key IN (4, 3, 2, 7) "
|
||||
+ " AND rr.res_rsv_ruimte_van >= " + date_from.toSQL(true)
|
||||
@@ -111,7 +111,7 @@ DOCTYPE_Disable = 1;
|
||||
+ " FROM res_activiteit ra "
|
||||
+ " WHERE res_activiteit_key = rr.res_activiteit_key)), "
|
||||
+ " DECODE (res_rsv_ruimte_dirtlevel + res_rsv_deel_dirtlevel, 0, rr.res_status_fo_key, -1), "
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'reservering') bookmark"
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'reservering' AND fac_bookmark_naam = 'reservering') bookmark"
|
||||
+ " FROM res_v_aanwezigrsv_ruimte rr, res_v_aanwezigrsv_deel dd "
|
||||
+ " WHERE rr.res_status_bo_key IS NULL AND dd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key "
|
||||
+ " AND rr.res_rsv_ruimte_van >= " + date_from.toSQL(true)
|
||||
@@ -128,7 +128,7 @@ DOCTYPE_Disable = 1;
|
||||
+ " FROM res_activiteit ra "
|
||||
+ " WHERE res_activiteit_key = rr.res_activiteit_key)), "
|
||||
+ " DECODE (res_rsv_ruimte_dirtlevel + res_rsv_artikel_dirtlevel, 0, rr.res_status_fo_key, -1), "
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'reservering') bookmark"
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'reservering' AND fac_bookmark_naam = 'reservering') bookmark"
|
||||
+ " FROM res_v_aanwezigrsv_ruimte rr, res_v_aanwezigrsv_artikel dd "
|
||||
+ " WHERE rr.res_status_bo_key IS NULL AND dd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key "
|
||||
+ " AND rr.res_rsv_ruimte_van >= " + date_from.toSQL(true)
|
||||
@@ -144,7 +144,7 @@ DOCTYPE_Disable = 1;
|
||||
+ " b.bez_afspraak_naam "
|
||||
+ " || (CASE WHEN bez_afspraak_bedrijf IS NOT NULL THEN ' (' || bez_afspraak_bedrijf || ')' END), "
|
||||
+ " (CASE WHEN bez_bezoekers_done IS NOT NULL THEN 2 ELSE 1 END), "
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'afspraak') bookmark"
|
||||
+ "(SELECT fac_bookmark_path||'?'||fac_bookmark_query FROM fac_bookmark WHERE fac_bookmark_xmlnode = 'afspraak' AND fac_bookmark_naam = 'afspraak') bookmark"
|
||||
+ " FROM bez_bezoekers b, bez_afspraak a "
|
||||
+ " WHERE b.bez_afspraak_key = a.bez_afspraak_key AND bez_bezoekers_out IS NULL "
|
||||
+ " AND a.bez_afspraak_datum >= " + date_from.toSQL(true)
|
||||
|
||||
@@ -20,7 +20,7 @@ if (hasNews)
|
||||
|
||||
function injectNews ()
|
||||
{
|
||||
var hasNews = S("fac_nieuws_forum_url") &&
|
||||
var hasNews = S("fac_nieuws_forum_url") && S("fac_nieuws_forum_max") > 0 &&
|
||||
(user.checkAutorisation("WEB_PRSSYS", true) || user.checkAutorisation("WEB_FACMGT", true));
|
||||
if (!hasNews)
|
||||
return;
|
||||
|
||||
@@ -103,8 +103,14 @@ oRs.close();
|
||||
ROFIELDTR("fldtxt", L("lcl_fac_bookmarkid"), bkm_id);
|
||||
ROFIELDTR("fldtxt", L("lcl_fac_bookmark"), bkm_naam);
|
||||
ROFIELDTR("fldtxt", L("lcl_fac_bookmarkpath"), bkm_path);
|
||||
ROFIELDTR("fldfac_query", L("lcl_fac_bookmarkquery"), bkm_query);
|
||||
ROFIELDTR("fld", L("lcl_bkm_prskey_auth"), bkm_prskey_auth);
|
||||
ROTEXTAREATR("fldfac_query", L("lcl_fac_bookmarkquery"), String(bkm_query).replace(/\&/ig, "\n\t&"));
|
||||
FCLTpersoonselector("sgFallback",
|
||||
"sgFallback",
|
||||
{ perslidKey: bkm_prskey_auth,
|
||||
label: L("lcl_bkm_prskey_auth"),
|
||||
moreinfo: true,
|
||||
readonly: true
|
||||
});
|
||||
ROFIELDTR("fld", L("lcl_bkm_unauth"), bkm_unauth_url);
|
||||
ROFIELDTR("fld", L("lcl_bkm_refresh"), bkm_refresh);
|
||||
FCLTpersoonselector("sgPers",
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
title="<%=L("lcl_mark_as_read")%>"
|
||||
onClick="MarkAsRead(<%=oRs("web_user_message_key")%>, <%=isNew?1:0%>, 1)">
|
||||
</td>
|
||||
<td><%=toDateTimeString(new Date(oRs("web_user_mess_action_datum").value))%></td>
|
||||
<td><%=toDateTimeString(new Date(oRs("web_user_mess_action_datum").value), false, false, true)%></td>
|
||||
<td class="usermessage"><%
|
||||
if (action)
|
||||
{
|
||||
|
||||
@@ -11,13 +11,25 @@
|
||||
Parameters:
|
||||
Context: Manual call
|
||||
Note: PRSSYS authorization is required
|
||||
Lokaal op de webserver werkt mogelijk het volgende zonder inloggen
|
||||
http://localhost/appl/fac/fac_verify.asp?fac_id=XXXX
|
||||
Als je echt niet kunt inloggen in FACILITOR gebruik dan
|
||||
verify.inc.asp
|
||||
Verify.asp.inc (tijdelijk hernoemen naar verify.asp)
|
||||
|
||||
*/ %>
|
||||
*/
|
||||
if (Application("otap_environment") == "O")
|
||||
ANONYMOUS_Allowed = 1;
|
||||
|
||||
if (Request.ServerVariables("REMOTE_ADDR") == Request.ServerVariables("LOCAL_ADDR")) // Vanaf de webserver zelf
|
||||
ANONYMOUS_Allowed = 1;
|
||||
|
||||
%>
|
||||
<!--#include file="../Shared/common.inc"-->
|
||||
<%
|
||||
var autfunction = "WEB_PRSSYS";
|
||||
var authparams = user.checkAutorisation(autfunction);
|
||||
if (typeof "ANONYMOUS_Allowed" == "undefined")
|
||||
{
|
||||
var autfunction = "WEB_PRSSYS";
|
||||
var authparams = user.checkAutorisation(autfunction);
|
||||
}
|
||||
%>
|
||||
<!--#include file="./fac_verify.inc "-->
|
||||
|
||||
@@ -31,10 +31,31 @@
|
||||
custID=Session("CustomerID");
|
||||
if (!custID) custID = Request.QueryString();
|
||||
|
||||
// Max download testen
|
||||
// Heel vroeg zodat we veilig een Response.Clear kunnen doen
|
||||
var arr = ['X'];
|
||||
for (var i = 0; i < 16; i++)
|
||||
arr.push(arr.join(""));
|
||||
var str = arr.join(""); // 64KB
|
||||
var i = 0;
|
||||
try
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
i++; // Veronderstel dat deze nog grotendeels lukt
|
||||
Response.Write(str);
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
Response.Clear;
|
||||
var maxDownload = i * str.length;
|
||||
}
|
||||
|
||||
if (Request.Form("saveas").count > 0)
|
||||
{
|
||||
Response.clear;
|
||||
Response.contenttype = "application/octet-stream";
|
||||
Response.clear;
|
||||
Response.contenttype = "application/octet-stream";
|
||||
Response.AddHeader("content-disposition","attachment; filename=verify.html");
|
||||
}
|
||||
|
||||
@@ -401,6 +422,21 @@ checker("Session.LCID",
|
||||
}
|
||||
)
|
||||
|
||||
checker("Max download (Response Buffering Limit)",
|
||||
function ()
|
||||
{
|
||||
var res = resultcodes.ok;
|
||||
if (maxDownload < 4194304) // Minder dan 4MB?
|
||||
res = resultcodes.warning;
|
||||
if (maxDownload < 2097152) // Minder dan 2MB?
|
||||
res = resultcodes.error;
|
||||
return { result: res,
|
||||
message: "Maximum download is " + maxDownload + " bytes",
|
||||
info: String(maxDownload / 1024) + "KB"
|
||||
};
|
||||
}
|
||||
)
|
||||
|
||||
checker("Euro symbol € in sourcecode",
|
||||
function ()
|
||||
{
|
||||
@@ -720,6 +756,19 @@ checker("Database characterset",
|
||||
}
|
||||
)
|
||||
|
||||
checker("NLS_TERRITORY",
|
||||
function ()
|
||||
{
|
||||
var sql = "SELECT TO_NUMBER (TO_CHAR (TO_DATE('01-01-2007', 'DD-MM-YYYY'), 'D')) eikdag FROM DUAL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var eikdag = oRs("eikdag").Value;
|
||||
if (eikdag == 2)
|
||||
return { result: resultcodes.ok, message: "1 januari 2007 is een maandag<br><span style='font-size: 9px'>Als FACILITOR al opgestart is geweest kan dit door connection pooling al gecorrigeerd zijn.</span>", info: eikdag }
|
||||
else
|
||||
return { result: resultcodes.ok, message: "1 januari 2007 is geen maandag (vanaf DB25 niet meer problematisch)", info: eikdag }
|
||||
}
|
||||
)
|
||||
|
||||
checker("Invalid user_objects",
|
||||
function ()
|
||||
{
|
||||
@@ -865,25 +914,6 @@ checker("SLNKDWF Installed",
|
||||
}
|
||||
)
|
||||
|
||||
checker("MSXML2 4.0 Installed (deprecated 5.4.3 Gold A)",
|
||||
function ()
|
||||
{
|
||||
try
|
||||
{
|
||||
oDOM = new ActiveXObject("MSXML2.DOMDocument.4.0");
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
return { result: resultcodes.inform,
|
||||
message: e.description + "<br>MSXML2 4.0 not available."};
|
||||
}
|
||||
|
||||
var txt = "Ok";
|
||||
|
||||
return { result: resultcodes.ok, message: txt };
|
||||
}
|
||||
)
|
||||
|
||||
checker("MSXML2 6.0 Installed (required since 5.4.3 Gold A)",
|
||||
function ()
|
||||
{
|
||||
@@ -969,7 +999,7 @@ checker("E-mail sending",
|
||||
}
|
||||
)
|
||||
|
||||
checker("E-mail test (requires SMTP service)",
|
||||
checker("Immediate E-mail test (requires SMTP service)",
|
||||
function ()
|
||||
{
|
||||
try
|
||||
|
||||
@@ -297,7 +297,8 @@ checker("Controle: queries die geen records mogen opleveren",
|
||||
+ " WHERE res_ruimte_verwijder IS NOT NULL"
|
||||
+ " AND res_ruimte_key NOT IN (SELECT res_ruimte_key"
|
||||
+ " FROM res_alg_ruimte"
|
||||
+ " WHERE res_alg_ruimte_verwijder IS NULL)"
|
||||
+ " WHERE (res_alg_ruimte_verwijder IS NULL" // zal er nooit zijn want:
|
||||
+ " OR res_alg_ruimte_verwijder = res_ruimte_verwijder))" // dit doet de trigger
|
||||
},
|
||||
{ msg: "Reserveerbare ruimtes zonder gedefinieerde opstelling(en)",
|
||||
sql: "SELECT res_ruimte_key, res_ruimte_nr, res_ruimte_omschrijving"
|
||||
@@ -313,6 +314,19 @@ checker("Controle: queries die geen records mogen opleveren",
|
||||
+ " AND res_srtactiviteit_verwijder IS NOT NULL"
|
||||
+ " AND a.res_srtactiviteit_key = sa.res_srtactiviteit_key"
|
||||
},
|
||||
{ msg: "Reserveringen met zowel res_ruimte_opstel_key als alg_ruimte_key (FSN#31382)",
|
||||
sql: "SELECT *"
|
||||
+ " FROM res_rsv_ruimte"
|
||||
+ " WHERE res_ruimte_opstel_key IS NOT NULL"
|
||||
+ " AND alg_ruimte_key IS NOT NULL"
|
||||
},
|
||||
{ msg: "Reserveringen zonder res_ruimte_opstel_key of alg_ruimte_key, afgelopen jaar",
|
||||
sql: "SELECT *"
|
||||
+ " FROM res_rsv_ruimte"
|
||||
+ " WHERE res_ruimte_opstel_key IS NULL"
|
||||
+ " AND alg_ruimte_key IS NULL"
|
||||
+ " AND res_rsv_ruimte_tot > sysdate - 365"
|
||||
},
|
||||
{ msg: "Fysieke objecten die door meerdere reserveerbare objecten gebruikt worden. Dat mag, het zullen verschillende catalogi zijn maar misschien toch even naar kijken.",
|
||||
sql: " SELECT ins_deel_key, ins_deel_omschrijving, COUNT ( * ) " +
|
||||
" FROM (SELECT * " +
|
||||
|
||||
@@ -30,7 +30,7 @@ FCLTHeader.Requires({plugins:["jQuery"], js: ["jquery-ui.js"]})
|
||||
%>
|
||||
<script type="text/javascript" >
|
||||
<% if (widget_key > 0) { %>
|
||||
FcltMgr.setTitle("<%=fac_title%>", {hot:false});
|
||||
FcltMgr.setTitle("<%=safe.jsstring(fac_title)%>", {hot:false});
|
||||
<% } %>
|
||||
|
||||
function facClose(params)
|
||||
|
||||
@@ -95,10 +95,13 @@ if (device.test(device.isDesktop)) { // normale desktop interface
|
||||
<html>
|
||||
<head>
|
||||
<%=S("http_meta_head")%>
|
||||
<title>Facilitor® ESS</title>
|
||||
<title><%=L("lcl_facilitor_ie_title")%></title>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=windows-1252">
|
||||
<link rel="SHORTCUT ICON" href="favicon.ico">
|
||||
<noscript><h1>JavaScript moet ingeschakeld zijn. Facilitor zal niet werken.</h1></noscript>
|
||||
<link rel="SHORTCUT ICON" href="<%= rooturl + "/" + S("fac_favicon_folder") %>/favicon.ico">
|
||||
<link rel="apple-touch-icon" href="<%= rooturl + "/" + S("fac_favicon_folder") %>/Icon-60@2x.png" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="<%= rooturl + "/" + S("fac_favicon_folder") %>/Icon-60@3x.png" />
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="<%= rooturl + "/" + S("fac_favicon_folder") %>/Icon-76@2x.png" />
|
||||
<noscript><h1>JavaScript moet ingeschakeld zijn. FACILITOR zal niet werken.</h1></noscript>
|
||||
</head>
|
||||
<frameset frameborder="no" border="0">
|
||||
<frame name="fclttop" id="fclttop" src="appl/fac/Facilitor.asp?x=1<%=transitQS()%>" frameborder="0" marginwidth="0" noresize>
|
||||
|
||||
@@ -66,12 +66,7 @@ if (Session("user_lang"))
|
||||
urole = findparam(params, "urole");
|
||||
if (urole)
|
||||
url += "&urole=" + urole;
|
||||
|
||||
Response.Redirect(protectQS.create(url, { sleutel: S("helppage_secret"), no_user_key: true }));
|
||||
Response.End;
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate() %>
|
||||
</head>
|
||||
<frameset frameborder="no" border="0">
|
||||
<frame src="<%=protectQS.create(url, { sleutel: S("helppage_secret"), no_user_key: true }) %>" frameborder="0" marginwidth="0" noresize>
|
||||
</frameset>
|
||||
</html>
|
||||
|
||||
@@ -576,7 +576,7 @@ function suggest_box_resruimte (titel, histograms, kolom, params)
|
||||
if (filter.soort.val == "resruimte" && filter.date_from_ms.val>0)
|
||||
{
|
||||
resparams.request = "plan_bezet_info";
|
||||
/*global*/ plan_bezet_info = HTTP.getJSON(url, resparams).plan_bezet_info;
|
||||
/*global*/ plan_bezet_info = HTTP.getJSON(url, { data: resparams }).plan_bezet_info;
|
||||
}
|
||||
|
||||
rst.sql = null;
|
||||
|
||||
@@ -18,24 +18,24 @@
|
||||
<% FCLTHeader.Generate(); %>
|
||||
<style>
|
||||
div.background {
|
||||
background-image: url(../Pictures/welcomebg.jpg);
|
||||
background-image: url(../Pictures/welcomebg.jpg);
|
||||
background-repeat:no-repeat;
|
||||
background-position:center;
|
||||
background-size: cover;
|
||||
padding:10px 20px 10px 20px;
|
||||
}
|
||||
p, li {
|
||||
font-size: 1.3em;
|
||||
font-size: 1.3em;
|
||||
line-height: 2em;
|
||||
}
|
||||
li {
|
||||
text-align: left;
|
||||
}
|
||||
div.transbox {
|
||||
padding: 15px;
|
||||
text-align: center;
|
||||
border-radius:14px;
|
||||
margin:4px;
|
||||
padding: 15px;
|
||||
text-align: center;
|
||||
border-radius:14px;
|
||||
margin:4px;
|
||||
box-shadow: 2px 2px 2px #888888;
|
||||
margin: 30px 50px;
|
||||
background-color: #ffffff;
|
||||
@@ -43,7 +43,7 @@
|
||||
opacity: 0.9;
|
||||
filter: alpha(opacity=90); /* For IE8 and earlier */
|
||||
}
|
||||
|
||||
|
||||
div.transbox p {
|
||||
margin: 30px 40px;
|
||||
font-weight: bold;
|
||||
@@ -59,8 +59,8 @@
|
||||
<p>Goed dat je de weg gevonden hebt. Je kunt hier gemakkelijk allerlei zaken regelen, we leggen je even uit hoe:</p>
|
||||
<ul>
|
||||
<li>Links zie je een <strong>menu</strong> waaruit je je keuze kunt maken door te klikken. Wat je kiest verschijnt hier in het midden.</li>
|
||||
<li>Helemaal rechts bovenin dit scherm zie een vakje met <strong>Zoek & Bestel..</strong> Als je niet weet waar je iets kunt vinden, probeer het dan daar.</li>
|
||||
<li>Hier boven zie je altijd het tabblad <strong><%=L("lcl_body_portal")%></strong> waarin je de actuele status kunt zien van alles wat met jou te maken heeft.
|
||||
<li>Helemaal rechts bovenin dit scherm zie je een vakje met <strong>Zoek & Bestel..</strong> Als je niet weet waar je iets kunt vinden, probeer het dan daar.</li>
|
||||
<li>Hier boven zie je altijd het tabblad <strong><%=L("lcl_body_portal")%></strong> waarin je de actuele status kunt zien van alles wat met jou te maken heeft.
|
||||
<br>Het is allemaal eigenlijk behoorlijk vanzelfsprekend en je kunt bijna overal op klikken voor meer informatie.</li>
|
||||
<li>Een actief tabblad kun je vastpinnen voor later door op de grote <img src="../Pictures/pin.png"> rechtsboven te klikken, en als je hem toch weer kwijt wilt, klik dan op de kleine <img src="../Pictures/pin.png"> van het tabblad.</li>
|
||||
<li>Als je iets niet snapt, probeer dan de <strong>Help</strong> die ook altijd rechtsbovenin bereikbaar is.</li>
|
||||
|
||||
@@ -24,10 +24,10 @@ DOCTYPE_Disable = 1;
|
||||
<%
|
||||
|
||||
var fac_nr = getQParam("fac_nr");
|
||||
var deb_nr = getQParam("deb_nr", null);
|
||||
var lev_uit_key = getQParamInt("lev_uit_key", null);
|
||||
var fin_key = getQParamInt("fin_key", -1);
|
||||
|
||||
var result = fin.checkfactuurexist(fac_nr, deb_nr, fin_key);
|
||||
var result = fin.getfactuurexist(fac_nr, lev_uit_key, fin_key);
|
||||
|
||||
Response.Write(JSON.stringify(result));
|
||||
%>
|
||||
|
||||
110
APPL/FIN/fin.inc
@@ -975,45 +975,10 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
|
||||
|
||||
if (result.lev_uit_key)
|
||||
{
|
||||
var sql = "SELECT COUNT(f.fin_factuur_key) aantal_facturen"
|
||||
+ ", COALESCE(SUM(f.fin_factuur_totaal), 0) totaal_bedrag"
|
||||
+ ", COALESCE (SUM (f.fin_factuur_totaal_btw), 0) totaal_bedrag_btw"
|
||||
+ " FROM fin_factuur f"
|
||||
+ ", mld_opdr o"
|
||||
+ " WHERE f.mld_opdr_key = o.mld_opdr_key"
|
||||
+ " AND f.fin_factuur_verwijder IS NULL"
|
||||
+ " AND f.fin_factuur_nr = " + safe.quoted_sql(fin_factuur_nr)
|
||||
+ " AND o.mld_uitvoerende_keys = " + result.lev_uit_key
|
||||
+ " UNION ALL"
|
||||
+ " SELECT COUNT(f.fin_factuur_key) aantal_facturen"
|
||||
+ ", COALESCE(SUM(f.fin_factuur_totaal), 0) totaal_bedrag"
|
||||
+ ", COALESCE (SUM (f.fin_factuur_totaal_btw), 0) totaal_bedrag_btw"
|
||||
+ " FROM fin_factuur f"
|
||||
+ ", bes_bestelopdr bo"
|
||||
+ " WHERE f.bes_bestelopdr_key = bo.bes_bestelopdr_key"
|
||||
+ " AND f.fin_factuur_verwijder IS NULL"
|
||||
+ " AND f.fin_factuur_nr = " + safe.quoted_sql(fin_factuur_nr)
|
||||
+ " AND bo.prs_bedrijf_key = " + result.lev_uit_key
|
||||
+ " UNION ALL"
|
||||
+ " SELECT COUNT(f.fin_factuur_key) aantal_facturen"
|
||||
+ ", COALESCE(SUM(f.fin_factuur_totaal), 0) totaal_bedrag"
|
||||
+ ", COALESCE (SUM (f.fin_factuur_totaal_btw), 0) totaal_bedrag_btw"
|
||||
+ " FROM fin_factuur f"
|
||||
+ ", cnt_contract c"
|
||||
+ " WHERE f.cnt_contract_key = c.cnt_contract_key"
|
||||
+ " AND f.fin_factuur_verwijder IS NULL"
|
||||
+ " AND f.fin_factuur_nr = " + safe.quoted_sql(fin_factuur_nr)
|
||||
+ " AND c.cnt_prs_bedrijf_key = " + result.lev_uit_key;
|
||||
sql = "SELECT SUM(aantal_facturen) aantal_facturen"
|
||||
+ ", SUM(totaal_bedrag) totaal_bedrag"
|
||||
+ ", SUM(totaal_bedrag_btw) totaal_btw_bedrag"
|
||||
+ " FROM (" + sql + ")";
|
||||
|
||||
var oRs = Oracle.Execute(sql);
|
||||
result.aantalfacturen = oRs("aantal_facturen").Value;
|
||||
result.totaalbedrag = oRs("totaal_bedrag").Value;
|
||||
result.totaalbtwbedrag = oRs("totaal_btw_bedrag").Value;
|
||||
oRs.close();
|
||||
var result_getfe = fin.getfactuurexist(fin_factuur_nr, result.lev_uit_key, -1);
|
||||
result.aantalfacturen = result_getfe.aantal;
|
||||
result.totaalbedrag = result_getfe.totaalbedrag;
|
||||
result.totaalbtwbedrag = result_getfe.totaalbtwbedrag;
|
||||
}
|
||||
|
||||
return result;
|
||||
@@ -1045,24 +1010,57 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
|
||||
return btwtabel;
|
||||
},
|
||||
|
||||
checkfactuurexist:
|
||||
function _checkfactuurexist(fac_nr, deb_nr, fin_key)
|
||||
{ // controle op het Factuurnr (van de leverancier) of dat dan van dezelfde leverancier(!) al bestaat
|
||||
sql = "SELECT COUNT(f.fin_factuur_key) aantal"
|
||||
+ ", SUM(f.fin_factuur_totaal) totaal"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE f.fin_factuur_nr = " + safe.quoted_sql(fac_nr)
|
||||
+ (fin_key > 0
|
||||
? " AND f.fin_factuur_key != " + fin_key
|
||||
: "")
|
||||
+ (deb_nr
|
||||
? " AND f.fin_factuur_debiteur_nr = " + safe.quoted_sql(deb_nr)
|
||||
: " AND f.fin_factuur_debiteur_nr IS NULL")
|
||||
+ " AND f.fin_factuur_verwijder IS NULL";
|
||||
oRs = Oracle.Execute(sql);
|
||||
getfactuurexist:
|
||||
function _getfactuurexist(fac_nr, lev_uit_key, fin_key)
|
||||
{ // Controle op het Factuurnr (van de leverancier) en of dat dan van dezelfde leverancier(!) al bestaat.
|
||||
var sql = "SELECT COUNT(f.fin_factuur_key) aantal_facturen"
|
||||
+ ", COALESCE (SUM (f.fin_factuur_totaal), 0) totaal_bedrag"
|
||||
+ ", COALESCE (SUM (f.fin_factuur_totaal_btw), 0) totaal_bedrag_btw"
|
||||
+ " FROM fin_factuur f"
|
||||
+ ", mld_opdr o"
|
||||
+ " WHERE f.mld_opdr_key = o.mld_opdr_key"
|
||||
+ " AND f.fin_factuur_verwijder IS NULL"
|
||||
+ " AND f.fin_factuur_nr = " + safe.quoted_sql(fac_nr)
|
||||
+ " AND o.mld_uitvoerende_keys = " + lev_uit_key
|
||||
+ (fin_key > 0
|
||||
? " AND f.fin_factuur_key != " + fin_key
|
||||
: "")
|
||||
+ " UNION ALL"
|
||||
+ " SELECT COUNT(f.fin_factuur_key) aantal_facturen"
|
||||
+ ", COALESCE (SUM (f.fin_factuur_totaal), 0) totaal_bedrag"
|
||||
+ ", COALESCE (SUM (f.fin_factuur_totaal_btw), 0) totaal_bedrag_btw"
|
||||
+ " FROM fin_factuur f"
|
||||
+ ", bes_bestelopdr bo"
|
||||
+ " WHERE f.bes_bestelopdr_key = bo.bes_bestelopdr_key"
|
||||
+ " AND f.fin_factuur_verwijder IS NULL"
|
||||
+ " AND f.fin_factuur_nr = " + safe.quoted_sql(fac_nr)
|
||||
+ " AND bo.prs_bedrijf_key = " + lev_uit_key
|
||||
+ (fin_key > 0
|
||||
? " AND f.fin_factuur_key != " + fin_key
|
||||
: "")
|
||||
+ " UNION ALL"
|
||||
+ " SELECT COUNT(f.fin_factuur_key) aantal_facturen"
|
||||
+ ", COALESCE (SUM (f.fin_factuur_totaal), 0) totaal_bedrag"
|
||||
+ ", COALESCE (SUM (f.fin_factuur_totaal_btw), 0) totaal_bedrag_btw"
|
||||
+ " FROM fin_factuur f"
|
||||
+ ", cnt_contract c"
|
||||
+ " WHERE f.cnt_contract_key = c.cnt_contract_key"
|
||||
+ " AND f.fin_factuur_verwijder IS NULL"
|
||||
+ " AND f.fin_factuur_nr = " + safe.quoted_sql(fac_nr)
|
||||
+ " AND c.cnt_prs_bedrijf_key = " + lev_uit_key
|
||||
+ (fin_key > 0
|
||||
? " AND f.fin_factuur_key != " + fin_key
|
||||
: "");
|
||||
sql = "SELECT SUM(aantal_facturen) aantal_facturen"
|
||||
+ ", SUM(totaal_bedrag) totaal_bedrag"
|
||||
+ ", SUM(totaal_bedrag_btw) totaal_btw_bedrag"
|
||||
+ " FROM (" + sql + ")";
|
||||
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var result = { fac_nr: fac_nr,
|
||||
aantal: oRs("aantal").Value? oRs("aantal").Value : 0,
|
||||
totaal: oRs("totaal").Value? safe.curr(oRs("totaal").Value) : 0
|
||||
aantal: oRs("aantal_facturen").Value? oRs("aantal_facturen").Value : 0,
|
||||
totaalbedrag: oRs("totaal_bedrag").Value? oRs("totaal_bedrag").Value : 0,
|
||||
totaalbtwbedrag: oRs("totaal_btw_bedrag").Value
|
||||
};
|
||||
oRs.close();
|
||||
return result;
|
||||
|
||||
@@ -351,6 +351,7 @@ var fin_btwtabel_key = oRs("fin_btwtabel_key").value; // Standaard btw tabel key
|
||||
</td>
|
||||
</tr>
|
||||
<% RWFIELDTR("lev_uit", "fld", L("lcl_cnt_contractant"), (ref_info.lev_uit? ref_info.lev_uit : ""), { readonly: true }); // Leverancier/Uitvoerder
|
||||
%> <input type="hidden" name="lev_uit_key" id="lev_uit_key" value="<%=ref_info.lev_uit_key? ref_info.lev_uit_key : ""%>"><%
|
||||
|
||||
// Return waarde fin.getnomatchreasoncontract():
|
||||
// 00 (0): No match
|
||||
@@ -408,7 +409,6 @@ var fin_btwtabel_key = oRs("fin_btwtabel_key").value; // Standaard btw tabel key
|
||||
RWFIELDTR("fincnt", "fldfincnt", L("lcl_fin_aantal_facturen"), (ref_info.aantalfacturen? ref_info.aantalfacturen : "0"), { readonly: true }); // Aantal facturen met dezelfde factuurnummer
|
||||
// Totaal bedrag van het aantal facturen met dezelfde factuurnummer
|
||||
RWFIELDTR("finsom", "fldfinsom", L("lcl_fin_totaal_bedrag"), S("currency_pref") + safe.curr(ref_info.totaalbedrag? ref_info.totaalbedrag : "0") + S("currency_suff"), { readonly: true }); // Totaal bedrag van het aantal facturen met dezelfde factuurnummer
|
||||
// Twee velden met hetzelfde id?? TODO!
|
||||
RWFIELDTR("finsominc", "fldfinsom", L("lcl_fin_totaal_bedrag_btw"), S("currency_pref") + safe.curr(ref_info.totaalbedrag? (ref_info.totaalbedrag + ref_info.totaalbtwbedrag) : "0") + S("currency_suff"), {readonly:true}); // Totaal bedrag van het aantal facturen met dezelfde factuurnummer
|
||||
BLOCK_END();
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ var dateInputs = new Object();
|
||||
function checkFactuurExistCallback(json, textStatus)
|
||||
{
|
||||
if (json.aantal > 0)
|
||||
if (confirm(L("lcl_fin_invoice_number") + " " + json.fac_nr + L("lcl_fin_is_al") + json.aantal + L("lcl_fin_register_total") + json.totaal + ". " + L("lcl_fin_toch_doorgaan")))
|
||||
if (confirm(L("lcl_fin_invoice_number") + " " + json.fac_nr + L("lcl_fin_is_al") + json.aantal + L("lcl_fin_register_total") + currency_pref + num2currEditable(parseFloat(json.totaalbedrag)) + ". " + L("lcl_fin_toch_doorgaan")))
|
||||
document.forms.u2.submit();
|
||||
else
|
||||
return false;
|
||||
@@ -43,7 +43,7 @@ function checkInput()
|
||||
// Melding: "Factuurnr 1234 is al N keer geregistreerd met een totaalbedrag van 99999. Toch doorgaan?", bij Cancel keer je terug in het scherm
|
||||
$.getJSON("check_factuur_exist.asp",
|
||||
{ fac_nr: $("#finnr").val(),
|
||||
deb_nr: $("#findebtor").val(),
|
||||
lev_uit_key: $("#lev_uit_key").val(), // Via de referentie bepaald en opgeslagen. Afdeling, Persoon of Bedrijf.
|
||||
fin_key: $("#fin_key").val() },
|
||||
checkFactuurExistCallback);
|
||||
}
|
||||
@@ -125,6 +125,7 @@ function clearRefDetails()
|
||||
$("#tr_refopdrtype").hide();
|
||||
$("#fincnt").val("");
|
||||
$("#finsom").val("");
|
||||
$("#finsominc").val("");
|
||||
FcltMgr.resized(window);
|
||||
}
|
||||
|
||||
@@ -168,6 +169,7 @@ function FcltGetRefInfoCallback(json)
|
||||
|
||||
$("#fin_type").val(json.ref_type);
|
||||
$("#lev_uit").val(json.lev_uit);
|
||||
$("#lev_uit_key").val(json.lev_uit_key);
|
||||
if (canReqRelDetails)
|
||||
{
|
||||
$('#lev_uit').click(function()
|
||||
@@ -300,7 +302,8 @@ function FcltGetRefInfoCallback(json)
|
||||
}
|
||||
|
||||
$("#fincnt").val(json.aantalfacturen);
|
||||
$("#finsom").val(currency_pref + json.totaalbedrag + currency_suff);
|
||||
$("#finsom").val(currency_pref + num2currEditable(parseFloat(json.totaalbedrag)) + currency_suff);
|
||||
$("#finsominc").val(currency_pref + num2currEditable(parseFloat(json.totaalbedrag + json.totaalbtwbedrag)) + currency_suff);
|
||||
|
||||
window.btwtabel_key = json.btwtabel_key;
|
||||
window.btwtabel = json.btwtabel;
|
||||
@@ -328,7 +331,7 @@ function referenceChanged(refchanged)
|
||||
fin_factuur_nr: $("#finnr").val(),
|
||||
ascontactpers: asContactpersoon? 1 : 0
|
||||
});
|
||||
FcltGetRefInfoCallback(returndata)
|
||||
FcltGetRefInfoCallback(returndata);
|
||||
}
|
||||
else
|
||||
// T.b.v. de mogelijkheid om oude waarde weer terug te zetten bij ongeldige referentie
|
||||
|
||||
@@ -331,13 +331,15 @@ function fin_list (params)
|
||||
// 2) De plaats van de bijbehorende melding van de opdracht
|
||||
sql2 = " (f.mld_opdr_key IS NOT NULL "
|
||||
+ " AND EXISTS (SELECT m.mld_melding_key"
|
||||
+ " FROM alg_v_onroerendgoed onrg"
|
||||
+ " , alg_v_aanweziggebouw g"
|
||||
+ " FROM alg_v_allonroerendgoed onrg"
|
||||
+ " WHERE m.mld_alg_onroerendgoed_keys = onrg.alg_onroerendgoed_keys(+)"
|
||||
+ " AND onrg.alg_gebouw_key = g.alg_gebouw_key"
|
||||
+ " AND g.alg_locatie_key IN (" + loc_key_arr.join(",") + ")"
|
||||
+ (bld_key? " AND g.alg_gebouw_key = " + bld_key : "")
|
||||
+ " ))";
|
||||
+ " AND onrg.alg_locatie_key IN (" + loc_key_arr.join(",") + ")"
|
||||
+ (bld_key
|
||||
? " AND ( (onrg.alg_gebouw_key = " + bld_key + ")"
|
||||
+ " OR (onrg.alg_terreinsector_key = " + bld_key + ")"
|
||||
+ " )"
|
||||
: "")
|
||||
+ " ))";
|
||||
|
||||
// Locatie/gebouw scope van het contract
|
||||
sql3 = " (c.cnt_contract_key IN"
|
||||
|
||||
@@ -53,6 +53,12 @@ function imp_list_rap(params)
|
||||
}
|
||||
sql += " AND imp_log_status IN (" + rapfilter_arr.join(",") + ")";
|
||||
}
|
||||
if (params.searchtext)
|
||||
{
|
||||
sql += " AND ( UPPER(imp_log_omschrijving) LIKE " + safe.quoted_sql_wild("%" + params.searchtext + "%")
|
||||
+ " OR UPPER(imp_log_hint) LIKE " + safe.quoted_sql_wild("%" + params.searchtext + "%")
|
||||
+ " )";
|
||||
}
|
||||
|
||||
sql += " ORDER BY imp_log_status"
|
||||
+ ", imp_log_key"
|
||||
|
||||
@@ -23,6 +23,7 @@ var rapfilter_arr = getQParamArray("rapfilter_str", []); // Rapportage filters
|
||||
|
||||
imp_list_rap( { outputmode: outputmode,
|
||||
showall: showall,
|
||||
searchtext: getQParam("searchtext",""),
|
||||
import_key: (import_key != -1? import_key : null),
|
||||
rapfilter_arr: rapfilter_arr
|
||||
}
|
||||
|
||||
@@ -89,8 +89,10 @@ user.auth_required_or_abort(this_imp.canReadAny);
|
||||
trclass:"primsearch",
|
||||
multi: true,
|
||||
size: 4
|
||||
}); %>
|
||||
});
|
||||
|
||||
RWFIELDTR("searchtext", "fld", L("lcl_search_diff_fields"), "");
|
||||
%>
|
||||
</table>
|
||||
</td><!-- end column 1 -->
|
||||
|
||||
|
||||
@@ -146,6 +146,7 @@ var bits = getQParamInt("bits", 0); // Inspectie bits
|
||||
+ " UNION SELECT 512, " + safe.quoted_sql(L("lcl_ins_controle_tweede")) + ", 2 FROM DUAL"
|
||||
+ " UNION SELECT 768, " + safe.quoted_sql(L("lcl_ins_controle_derde")) + ", 3 FROM DUAL"
|
||||
+ " UNION SELECT 1024, " + safe.quoted_sql(L("lcl_ins_controle_vierde")) + ", 4 FROM DUAL"
|
||||
+ " UNION SELECT 1280, " + safe.quoted_sql(L("lcl_ins_controle_vijfde")) + ", 5 FROM DUAL"
|
||||
+ " UNION SELECT 1536, " + safe.quoted_sql(L("lcl_ins_controle_eennalaatste")) + ", 6 FROM DUAL"
|
||||
+ " UNION SELECT 1792, " + safe.quoted_sql(L("lcl_ins_controle_laatste")) + ", 7 FROM DUAL"
|
||||
+ " ORDER BY 1";
|
||||
|
||||
@@ -94,7 +94,7 @@ if (ins_key > 0)
|
||||
copy = <%=copy? 1 : 0%> == 1;
|
||||
<% if (ins_key > 0 && !copy)
|
||||
{ %>
|
||||
FcltMgr.setTitle("<%=ins_name%>", {hot: false});
|
||||
FcltMgr.setTitle("<%=safe.jsstring(ins_name)%>", {hot: false});
|
||||
<% }
|
||||
else
|
||||
{ %>
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
FCLTHeader.Requires({ plugins:["jQuery"] })
|
||||
|
||||
var urole = getQParamSafe("urole"); // Indien niet meegegeven, veronderstel dan frontend gebruik
|
||||
var insdescr = getQParam("insdeeldescr", "");
|
||||
var insdeelkey = getQParamInt("ins_key");
|
||||
var since = getQParamDate("date_from", null);
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
<%
|
||||
FCLTHeader.Requires({plugins:["jQuery"], js: ["jquery-ui.js"]});
|
||||
var urole = getQParamSafe("urole", "fe");
|
||||
var insdescr = getQParam("insdeeldescr", "");
|
||||
var insdeelkey = getQParamInt("ins_key");
|
||||
var autosearch = getQParamInt("autosearch", 1) == 1;
|
||||
|
||||
@@ -47,7 +46,6 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
<div id="search">
|
||||
<form name="u2" method="get" action="ins_history_list.asp" target="workFrame">
|
||||
<input type="hidden" name="urole" value="<%=urole%>">
|
||||
<input type="hidden" name="insdeeldescr" value="<%=insdescr%>">
|
||||
<input type="hidden" name="ins_key" value="<%=insdeelkey%>">
|
||||
<% BLOCK_START("searchtable", L("lcl_filterblok"));
|
||||
var since = new Date;
|
||||
|
||||
@@ -438,7 +438,7 @@ user.anything_todo_or_abort(tobeinspected > 0); // We klagen niet over enkele we
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key IN (" + ingesloten.join(",") + "))"
|
||||
+ " SELECT di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_omschrijving"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_info info"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
|
||||
+ (ingesloten.length == 1
|
||||
@@ -509,7 +509,7 @@ user.anything_todo_or_abort(tobeinspected > 0); // We klagen niet over enkele we
|
||||
readonly : (deelsrtcont_key > 0 && (hours > 0 || minutes > 0)? true : false)
|
||||
});
|
||||
sql = "SELECT ins_controlemode_key"
|
||||
+ " , ins_controlemode_oms"
|
||||
+ " , " + lcl.xsqla('ins_controlemode_oms', 'ins_controlemode_key')
|
||||
+ " FROM ins_controlemode";
|
||||
FCLTselector("sel_controlemode",
|
||||
sql,
|
||||
|
||||
@@ -154,7 +154,7 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
+ " END)"
|
||||
+ " END inspectie_next"
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_omschrijving"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_groep"
|
||||
+ " , di.ins_srtcontrole_opmerking"
|
||||
+ " , -1 ins_deelsrtcontrole_key"
|
||||
@@ -184,7 +184,7 @@ var authparams = user.checkAutorisation("WEB_INSUSE");
|
||||
+ " , NULL inspectie_steps"
|
||||
+ " , TO_DATE(NULL) inspectie_next"
|
||||
+ " , idsc.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_omschrijving"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_groep"
|
||||
+ " , di.ins_srtcontrole_opmerking"
|
||||
+ " , idsc.ins_deelsrtcontrole_key"
|
||||
|
||||
@@ -512,7 +512,7 @@ function ins_list (pautfunction, params)
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , di.ins_srtcontrole_omschrijving"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
@@ -538,7 +538,7 @@ function ins_list (pautfunction, params)
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , di.ins_srtcontrole_omschrijving"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ " FROM defined_inspect di"
|
||||
+ " , ins_srtcontroledl_xcp xcp"
|
||||
@@ -571,7 +571,7 @@ function ins_list (pautfunction, params)
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) inspectie_eenheid"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_eind, di.ins_srtcontrole_eind) inspectie_eind"
|
||||
+ " , xcp.ins_srtcontroledl_xcp_groep groepoms"
|
||||
+ " , di.ins_srtcontrole_omschrijving"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_key"
|
||||
+ " FROM ins_deelsrtcontrole idsc"
|
||||
+ " , defined_inspect di"
|
||||
@@ -724,11 +724,11 @@ function ins_list (pautfunction, params)
|
||||
+ " FROM alg_ruimte r, prs_werkplek w"
|
||||
+ " WHERE r.alg_ruimte_key = w.prs_alg_ruimte_key"
|
||||
+ " AND w.prs_werkplek_key = i.ins_alg_ruimte_key)"
|
||||
+ ")|| ')'"
|
||||
+ ") || ')'"
|
||||
)
|
||||
+ " plaats"
|
||||
+ ", s.ins_srtdeel_code"
|
||||
+ ", " + lcl.xsql('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key')+" soort"
|
||||
+ ", " + lcl.xsql('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key') + " soort"
|
||||
+ ", i.ins_deel_omschrijving"
|
||||
+ ", i.ins_deel_opmerking"
|
||||
+ ", i.ins_deel_key"
|
||||
|
||||
@@ -190,7 +190,7 @@ oRs.Close();
|
||||
}
|
||||
function showHistory()
|
||||
{
|
||||
FcltMgr.openDetail("appl/ins/ins_history_search.asp?ins_key=<%=ins_key%>&insdeeldescr=<%=desc%>&urole=<%=urole%>", "<%=L("lcl_history")%>");
|
||||
FcltMgr.openDetail("appl/ins/ins_history_search.asp?ins_key=<%=ins_key%>&urole=<%=urole%>", "<%=L("lcl_history")%>");
|
||||
}
|
||||
function ins_change()
|
||||
{
|
||||
|
||||
@@ -43,10 +43,10 @@ var transitParam = buildTransitParam(["disc_key", "srtgroep_key"]);
|
||||
</head>
|
||||
<body id="listbody">
|
||||
|
||||
<% var sql = " SELECT d.ins_discipline_omschrijving"
|
||||
+ " , sg.ins_srtgroep_omschrijving"
|
||||
<% var sql = " SELECT " + lcl.xsqla('d.ins_discipline_omschrijving', 'd.ins_discipline_key')
|
||||
+ " , " + lcl.xsqla('sg.ins_srtgroep_omschrijving', 'sg.ins_srtgroep_key')
|
||||
+ " , s.ins_srtdeel_key"
|
||||
+ " , s.ins_srtdeel_omschrijving"
|
||||
+ " , " + lcl.xsqla('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key')
|
||||
+ " , s.ins_srtdeel_code"
|
||||
+ " , s.ins_srtdeel_vervaldatum"
|
||||
+ " , sg.ins_srtgroep_key"
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
$Revision$
|
||||
$Id$
|
||||
*/ %>
|
||||
<%
|
||||
noCharSet = true;
|
||||
%>
|
||||
|
||||
<!-- #include file="../Shared/common.inc"-->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="../Shared/resultset_table_v2.inc" -->
|
||||
@@ -27,7 +25,6 @@ var addButton = [];
|
||||
var inskenmerkdeelkey = getQParamInt("inskenmerkdeelkey", -1);
|
||||
var inskenmerkkey = getQParamInt("inskenmerkkey", -1);
|
||||
var insdeelkey = getQParamInt("insdeelkey", -1);
|
||||
var insdeeldescr = getQParam("insdeeldescr", "");
|
||||
|
||||
var consumption_reg = getQParamInt("consumption_reg", 0) == 1;
|
||||
var save_new_value = getQParamInt("save_new_value", 0) == 1;
|
||||
|
||||
@@ -226,7 +226,7 @@ user.anything_todo_or_abort(this_ins.canChangeInt);
|
||||
dag_bits = Math.pow(2, todaydow - 1);
|
||||
}
|
||||
var week_bits = (bits & 256) / 256 * 1 + (bits & 512) / 512 * 2 + (bits & 1024) / 1024 * 4;
|
||||
if (week_bits < 1 || week_bits > 7 || week_bits == 5)
|
||||
if (week_bits < 1 || week_bits > 7)
|
||||
{ // Er is geen week gekozen, dan maar de eerste kiezen.
|
||||
var todaydate = new Date().getDate();
|
||||
week_bits = Math.floor(todaydate / 7) + 1;
|
||||
@@ -325,7 +325,7 @@ user.anything_todo_or_abort(this_ins.canChangeInt);
|
||||
+ " AND isc.ins_srtinstallatie_key = id.ins_discipline_key)"
|
||||
+ " AND id.ins_deel_key = " + ins_key + ")"
|
||||
+ " SELECT di.ins_srtcontrole_key"
|
||||
+ " , di.ins_srtcontrole_omschrijving"
|
||||
+ " , " + lcl.xsqla('di.ins_srtcontrole_omschrijving', 'di.ins_srtcontrole_key')
|
||||
+ " , di.ins_srtcontrole_mode modus"
|
||||
+ " , di.ins_srtcontrole_periode periode_std"
|
||||
+ " , COALESCE(xcp.ins_srtcontroledl_xcp_periode, -1) periode_xcp"
|
||||
@@ -454,6 +454,7 @@ user.anything_todo_or_abort(this_ins.canChangeInt);
|
||||
+ " UNION SELECT 512, " + safe.quoted_sql(L("lcl_ins_controle_tweede")) + ", 2 FROM DUAL"
|
||||
+ " UNION SELECT 768, " + safe.quoted_sql(L("lcl_ins_controle_derde")) + ", 3 FROM DUAL"
|
||||
+ " UNION SELECT 1024, " + safe.quoted_sql(L("lcl_ins_controle_vierde")) + ", 4 FROM DUAL"
|
||||
+ " UNION SELECT 1280, " + safe.quoted_sql(L("lcl_ins_controle_vijfde")) + ", 5 FROM DUAL"
|
||||
+ " UNION SELECT 1536, " + safe.quoted_sql(L("lcl_ins_controle_eennalaatste")) + ", 6 FROM DUAL"
|
||||
+ " UNION SELECT 1792, " + safe.quoted_sql(L("lcl_ins_controle_laatste")) + ", 7 FROM DUAL"
|
||||
+ " ORDER BY 1";
|
||||
|
||||
@@ -102,17 +102,12 @@ $.ajaxSetup(
|
||||
}
|
||||
else
|
||||
{
|
||||
if (confirm("JQuery Ajax Error: " + textStatus
|
||||
+ "\n" + XMLHttpRequest.status + ": " + XMLHttpRequest.statusText
|
||||
+ (errorThrown? "\n" + errorThrown:"")
|
||||
+ "\nShow technical details for support personnel?"))
|
||||
{
|
||||
var wnd = window.open("", "JQueryAjaxError");
|
||||
wnd.document.write(XMLHttpRequest.responseText);
|
||||
wnd.document.close();
|
||||
}
|
||||
alert("JQuery Ajax Error: " + textStatus
|
||||
+ "\n" + XMLHttpRequest.status + ": " + XMLHttpRequest.statusText
|
||||
+ (errorThrown && errorThrown != XMLHttpRequest.statusText? "\n" + errorThrown:"")
|
||||
+ "\n\n" + this.type + " " + this.url
|
||||
+ "\n\n" + new Date().toLocaleString());
|
||||
}
|
||||
//alert(XMLHttpRequest.responseText);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -173,6 +173,7 @@ iface =
|
||||
}
|
||||
// params: checkOnly : [] beperkt array met velden die gecontroleerd moeten worden
|
||||
// (default alles met class 'required')
|
||||
// checkNot : [] deze velden niet controleren (default leeg)
|
||||
// relaxed : alleen controle, geen class aanpassingen of alerts
|
||||
function validateForm(fName, params)
|
||||
{ // TODO: Alleen binnen fName kijken?
|
||||
@@ -226,15 +227,17 @@ function validateForm(fName, params)
|
||||
var anyMissing = anyBad = false;
|
||||
var validatorHint = "";
|
||||
|
||||
var selector = ".required";
|
||||
var jqcheckonly="*";
|
||||
if (params.checkOnly) // slechts enkele velden controleren
|
||||
jqcheckonly = "#" + params.checkOnly.join(",#");
|
||||
var jqchecknot="";
|
||||
if (params.checkNot) // Deze velden niet meer controleren
|
||||
jqchecknot = "#" + params.checkNot.join(",#");
|
||||
|
||||
if (params.relaxed)
|
||||
clsName = "";
|
||||
|
||||
$(selector).filter(jqcheckonly).each(function (i)
|
||||
$(".required").filter(jqcheckonly).not(jqchecknot).each(function (i)
|
||||
{
|
||||
switch (this.tagName)
|
||||
{
|
||||
@@ -281,9 +284,10 @@ function validateForm(fName, params)
|
||||
case "TEXTAREA":
|
||||
{
|
||||
// bij currency zijn we extra streng: 0.0 wordt niet geaccepteerd.
|
||||
// tenzij je oorspronkelijk requiredor0:true (ipv required) hebt meegegeven
|
||||
$(this).removeClass(clsName);
|
||||
if ($(this).val() == "" ||
|
||||
($(this).hasClass("currency") && parseFloat($(this).val().replace(',', '.')) == 0) ||
|
||||
($(this).hasClass("currency") && !$(this).hasClass("required0isoke") && parseFloat($(this).val().replace(',', '.')) == 0) ||
|
||||
$(this).hasClass("suggestBad") ||
|
||||
($(this).hasClass("suggest") && this.getAttribute("sgKey") < 0))
|
||||
{
|
||||
@@ -312,7 +316,7 @@ function validateForm(fName, params)
|
||||
}
|
||||
)
|
||||
|
||||
$(".number").filter(jqcheckonly).each(function (i)
|
||||
$(".number").filter(jqcheckonly).not(jqchecknot).each(function (i)
|
||||
{
|
||||
if ($(this).val() != "" && isNaN(parseInt($(this).val()), 10))
|
||||
{
|
||||
@@ -325,7 +329,7 @@ function validateForm(fName, params)
|
||||
}
|
||||
}
|
||||
)
|
||||
$(".float").filter(jqcheckonly).each(function (i)
|
||||
$(".float").filter(jqcheckonly).not(jqchecknot).each(function (i)
|
||||
{
|
||||
if ($(this).val() != "" && !isFinite(parseFloat($(this).val())))
|
||||
{
|
||||
@@ -338,7 +342,7 @@ function validateForm(fName, params)
|
||||
}
|
||||
}
|
||||
)
|
||||
$(".currency").filter(jqcheckonly).each(function (i)
|
||||
$(".currency").filter(jqcheckonly).not(jqchecknot).each(function (i)
|
||||
{
|
||||
if ($(this).val() != "" && !_isGoodCurrency($(this).val().replace(',', '.')))
|
||||
{
|
||||
@@ -351,7 +355,7 @@ function validateForm(fName, params)
|
||||
}
|
||||
}
|
||||
)
|
||||
$("input[regexp]").filter(jqcheckonly).each(function (i)
|
||||
$("input[regexp]").filter(jqcheckonly).not(jqchecknot).each(function (i)
|
||||
{
|
||||
if (($(this).hasClass("required") || $(this).val()) && (!_isGoodTextFormat(this)))
|
||||
{
|
||||
@@ -364,7 +368,7 @@ function validateForm(fName, params)
|
||||
}
|
||||
}
|
||||
)
|
||||
$("textarea[regexp]").filter(jqcheckonly).each(function (i)
|
||||
$("textarea[regexp]").filter(jqcheckonly).not(jqchecknot).each(function (i)
|
||||
{
|
||||
if (($(this).hasClass("required") || $(this).val()) && (!_isGoodTextFormat(this)))
|
||||
{
|
||||
|
||||
@@ -73,6 +73,26 @@ var sameurl = false;
|
||||
function doSubmitWithKenmerken()
|
||||
{
|
||||
$('div#dkenmmodal2').formhtml(kenmerk_html);
|
||||
|
||||
// Strip alle velden er uit die niets doen. Voorkomt extreem lange querystring
|
||||
var $dk2 = $('div#dkenmmodal2'); // shortcut
|
||||
for (var m = 0; m < kenmerk_waarden.length; m++)
|
||||
{
|
||||
if (kenmerk_waarden[m].op == 'IS NOT NULL' || kenmerk_waarden[m].op == 'IS NULL')
|
||||
continue; // blijven
|
||||
if (kenmerk_waarden[m].val && kenmerk_waarden[m].typ != "R" && kenmerk_waarden[m].typ != "S")
|
||||
continue;
|
||||
if (kenmerk_waarden[m].val != '-1' && kenmerk_waarden[m].val != '' && (kenmerk_waarden[m].typ == "R" || kenmerk_waarden[m].typ == "S"))
|
||||
continue;
|
||||
// Scrappen
|
||||
$dk2.find("#k" + (m+1) + "val").remove();
|
||||
$dk2.find("#k" + (m+1) + "key").remove();
|
||||
$dk2.find("#k" + (m+1) + "t").remove();
|
||||
$dk2.find("#ko" + (m+1)).remove();
|
||||
$dk2.find("#Suggestk" + (m+1) + "_show").remove();
|
||||
$dk2.find("#execDonek" + (m+1)).remove();
|
||||
$dk2.find("#has_k" + (m+1) + "val").remove();
|
||||
}
|
||||
document.forms.u2.submit();
|
||||
$('div#dkenmmodal2').formhtml("").hide();
|
||||
}
|
||||
@@ -166,7 +186,7 @@ function showKenmerkModal(purl, ptitle)
|
||||
resizable: false,
|
||||
bgiframe: true, /* IE6 */
|
||||
title: ptitle,
|
||||
width: 625
|
||||
width: 725
|
||||
};
|
||||
/*
|
||||
FcltMgr.openModalDetail("../shared/flex_search.asp?load_url=" + escape(purl), ptitle,
|
||||
|
||||
@@ -151,6 +151,7 @@ function showActions(event) // event op de mouseover van resultsettable
|
||||
$actiondiv.stop().hide();
|
||||
$actiondiv.delay(100).fadeIn('fast');
|
||||
event.stopPropagation();
|
||||
|
||||
var bits = String(this.getAttribute('ACTIONBITS'));
|
||||
// Zet alle actions aan die enabled zijn
|
||||
window.ww = 0;
|
||||
|
||||
@@ -206,6 +206,8 @@ sorttable = {
|
||||
// this is *not* a generic getInnerText function; it's special to sorttable.
|
||||
// for example, you can override the cell text with a customkey attribute.
|
||||
// it also gets .value for <input> fields.
|
||||
if (!node) // XML rapporten met colspan
|
||||
return '';
|
||||
|
||||
hasInputs = (typeof node.getElementsByTagName == 'function') &&
|
||||
node.getElementsByTagName('input').length;
|
||||
|
||||
|
Before Width: | Height: | Size: 219 B After Width: | Height: | Size: 219 B |
|
Before Width: | Height: | Size: 227 B After Width: | Height: | Size: 227 B |
|
Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 244 B |
|
Before Width: | Height: | Size: 243 B After Width: | Height: | Size: 243 B |
|
Before Width: | Height: | Size: 146 B After Width: | Height: | Size: 146 B |
|
Before Width: | Height: | Size: 167 B After Width: | Height: | Size: 167 B |
|
Before Width: | Height: | Size: 173 B After Width: | Height: | Size: 173 B |
|
Before Width: | Height: | Size: 159 B After Width: | Height: | Size: 159 B |
|
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 171 B |
|
Before Width: | Height: | Size: 149 B After Width: | Height: | Size: 149 B |
|
Before Width: | Height: | Size: 149 B After Width: | Height: | Size: 149 B |
|
Before Width: | Height: | Size: 156 B After Width: | Height: | Size: 156 B |
|
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 147 B |
|
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 152 B |
|
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 147 B |
|
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 163 B |
|
Before Width: | Height: | Size: 169 B After Width: | Height: | Size: 169 B |
|
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 163 B |
|
Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 165 B |
|
Before Width: | Height: | Size: 151 B After Width: | Height: | Size: 151 B |
|
Before Width: | Height: | Size: 307 B After Width: | Height: | Size: 307 B |
|
Before Width: | Height: | Size: 314 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 233 B After Width: | Height: | Size: 233 B |
|
Before Width: | Height: | Size: 240 B After Width: | Height: | Size: 240 B |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 135 B After Width: | Height: | Size: 135 B |
|
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 147 B |