Compare commits
578 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
32f50cfc0d | ||
|
|
19eda0446f | ||
|
|
760f7887ee | ||
| 987e0953ee | |||
|
|
5faaf9fb00 | ||
|
|
f93ebaef82 | ||
|
|
c8f87ef9bb | ||
|
|
bff4d5b96d | ||
|
|
04ea1bd347 | ||
|
|
ee983f7ee5 | ||
|
|
07e9b17cf0 | ||
|
|
1de67fe756 | ||
|
|
1b72de6313 | ||
|
|
1f4cff7357 | ||
|
|
a0ac244587 | ||
|
|
bfb4a02ac5 | ||
|
|
6e5928b911 | ||
|
|
d271d17ab4 | ||
|
|
6d962640c7 | ||
|
|
5a6896ba50 | ||
|
|
7f2e030dfc | ||
|
|
d20b37f65c | ||
|
|
12d802390d | ||
|
|
84301f1c7c | ||
|
|
539734a54d | ||
|
|
5ac1653e02 | ||
|
|
b688e37a2d | ||
|
|
26cef1b8a1 | ||
|
|
482a6c315d | ||
|
|
65a1dbfe90 | ||
|
|
38514ad6fe | ||
|
|
6c6c28469e | ||
|
|
9932163338 | ||
| ce9a9294a3 | |||
| 4d776cd183 | |||
| ada31b8f1e | |||
| 90ee66d5d6 | |||
|
|
33158d34ec | ||
|
|
183970a3c7 | ||
|
|
59a5b5bb7e | ||
| b05ec800b1 | |||
|
|
57e596bcf8 | ||
|
|
98c28b703a | ||
|
|
95be29a44a | ||
| 90df193274 | |||
| 15833959b4 | |||
| ea433e4da1 | |||
| c374867a29 | |||
| 1a72af6dae | |||
| cddd650326 | |||
| db1313d829 | |||
|
|
67b6f4b9ed | ||
| ca53a4c4bd | |||
|
|
fccd0ae756 | ||
| e1963659ad | |||
| ed64233555 | |||
| dc1f9b5b28 | |||
| ccfc53c85c | |||
|
|
08945a6325 | ||
|
|
e67a441e7f | ||
|
|
d1eb64733b | ||
|
|
b685609d26 | ||
|
|
588f00763f | ||
|
|
14ad7c7014 | ||
|
|
242cf179ec | ||
|
|
1831686548 | ||
|
|
92908d2f88 | ||
|
|
72d175b33e | ||
|
|
858e13ed0a | ||
|
|
fbfde7d07a | ||
|
|
87dc3a4bf8 | ||
|
|
6ca72609bd | ||
|
|
50e3a0c678 | ||
|
|
4abffc358b | ||
|
|
53de128500 | ||
|
|
6019257d09 | ||
|
|
3fd2e4346a | ||
|
|
6333abbc54 | ||
|
|
ed4f63a8f8 | ||
|
|
5e0ec7b55f | ||
| 4ec71f3b1b | |||
|
|
6a12c77ffd | ||
|
|
66b90cece8 | ||
|
|
c953b0b8d6 | ||
| 9fd75299c1 | |||
| a72c524b2c | |||
|
|
7ebb0132f9 | ||
| f92d096c20 | |||
| d549fc11c5 | |||
| f947e0908b | |||
|
|
a24585ab49 | ||
| 38292a31f5 | |||
|
|
af43fb5401 | ||
| 40136a69ce | |||
| 7da0c7b94c | |||
| 7ca711fa0a | |||
|
|
22b4b187e6 | ||
|
|
c977c49ce6 | ||
| cde580ac23 | |||
| 4264fef028 | |||
| 28eec7401f | |||
| b8dc9cb834 | |||
|
|
049f2494bb | ||
|
|
3c3d0ee0d7 | ||
| 7b9946629e | |||
| a8cf988445 | |||
|
|
a12e0142b6 | ||
|
|
40bfd8a7ba | ||
| e8b525e9c9 | |||
|
|
cea48bb736 | ||
| 94013785a5 | |||
| 388e0b9ddc | |||
| 935fb3b50d | |||
|
|
9a72ccf914 | ||
|
|
8a237b15fa | ||
|
|
6599fc7acf | ||
| 9c7d1c771f | |||
|
|
5347d3d19c | ||
| 08e67e3089 | |||
| 0810f21858 | |||
|
|
35ce49d8a4 | ||
| 727c25eea7 | |||
|
|
b8bc64967c | ||
| c1a652d8dc | |||
| 407e564d1e | |||
|
|
5e13385473 | ||
|
|
4144f738ce | ||
|
|
7c4ed27e24 | ||
| 2991c2292f | |||
| ac56e334ef | |||
| e24a6aa28b | |||
|
|
c425209751 | ||
|
|
875b9a2638 | ||
|
|
cae60bc10c | ||
| 20216e0f78 | |||
|
|
00b032e8f0 | ||
|
|
bced908f82 | ||
| 534a3afe42 | |||
| 8b3b5a0b4d | |||
|
|
c98905d126 | ||
| 8d89936a61 | |||
| d073376a05 | |||
|
|
ce9376ed65 | ||
| ed5b603042 | |||
| 25741591ed | |||
| 96153fe87e | |||
|
|
f17d3dbe55 | ||
|
|
af3904dbfb | ||
|
|
17484f7590 | ||
| 5cb6779dcf | |||
| 7276120fbd | |||
| 0465bb9659 | |||
|
|
9965e8287e | ||
| 6f306cc416 | |||
| db588c9dfe | |||
|
|
19776aedb6 | ||
|
|
2aea2604ad | ||
|
|
2352bb3bac | ||
|
|
43931e0fe5 | ||
| 7ae6cef79b | |||
|
|
9bfb75f656 | ||
|
|
35456a159d | ||
|
|
8b9579040b | ||
|
|
e92c4e379f | ||
|
|
3287ba7b46 | ||
|
|
de169dda48 | ||
|
|
42c316eb71 | ||
|
|
eb68f4035b | ||
|
|
8a2f346a92 | ||
|
|
a9d9715dc6 | ||
|
|
6956aed1cf | ||
|
|
31b497a922 | ||
|
|
739b548356 | ||
| 1d3071ce5e | |||
| 0235e5cc91 | |||
| f4d08e57c5 | |||
| ae80741bcc | |||
| 79c604c3bc | |||
| 49b7350446 | |||
| c558cbab41 | |||
| 3d3b807c19 | |||
| 5fd93af7f1 | |||
| bfe05b1d26 | |||
| f6b57f5aba | |||
| 0b5ede29da | |||
|
|
c2c0892122 | ||
|
|
ab2091828d | ||
|
|
a07af38bbc | ||
|
|
f58e82a19a | ||
|
|
39f68d274f | ||
| 067cc16a36 | |||
|
|
e44a86e295 | ||
| 24fbaf6f60 | |||
|
|
4e96330a14 | ||
| ea093900e5 | |||
|
|
34933fc7d2 | ||
|
|
5d203519f2 | ||
|
|
b90f693b35 | ||
| aa175e1ff2 | |||
| 637fb4c255 | |||
| 36f18d9701 | |||
| 430dbf35f2 | |||
|
|
3226c6c7c5 | ||
|
|
d041712a53 | ||
|
|
28909509cb | ||
| ab0b42b315 | |||
| 8ad7ed8cf7 | |||
| fcc8b26f6d | |||
| 94f6725c85 | |||
| fb34e32376 | |||
| caf11e611d | |||
| 4970af77d2 | |||
| 4c9b38fa87 | |||
|
|
0367c4c306 | ||
|
|
1acb0206d3 | ||
|
|
450c52d4e1 | ||
| d6b3b742d3 | |||
| 03f52e9cf8 | |||
| 45abb8c097 | |||
| c01f158561 | |||
|
|
b9e502f3b8 | ||
|
|
e0548f1aeb | ||
|
|
0c5fbf5b14 | ||
| a959563ecd | |||
|
|
e1ad760712 | ||
|
|
9083df01ae | ||
|
|
c465776bea | ||
|
|
48b284be22 | ||
|
|
9acb577b69 | ||
|
|
99d7d3b9f8 | ||
| e3edda78e5 | |||
| 6906808481 | |||
| 3d37d4a6db | |||
| fa1cb8134c | |||
| 5a588ff079 | |||
|
|
878d031873 | ||
|
|
19c900f3b6 | ||
| 71d4ee4aed | |||
|
|
bf69384db3 | ||
|
|
3928aa7453 | ||
|
|
917e9e72c3 | ||
|
|
8114619b45 | ||
|
|
7aef3c72bd | ||
|
|
6309ef8ed6 | ||
|
|
67d3ab7fcd | ||
| dfc9e64811 | |||
|
|
530e54ff0d | ||
| cff3913033 | |||
| b5e548a77d | |||
|
|
d09603750c | ||
| 208640b8b5 | |||
| 09fa322cc3 | |||
| 1574b089b2 | |||
|
|
abd2db00cf | ||
|
|
9f6c962db9 | ||
|
|
b73f2ec2d5 | ||
| 3e56d9141f | |||
| 072774e0a0 | |||
|
|
fb1f037024 | ||
|
|
4df55d1576 | ||
| 82ef157925 | |||
|
|
22f1228106 | ||
|
|
b14f083819 | ||
|
|
82875b00b0 | ||
|
|
11f9d45ac1 | ||
|
|
e2d2d6ed4b | ||
|
|
f7925aaa84 | ||
| 600c87d32a | |||
| 8c8f9498b8 | |||
| d37b30b31b | |||
|
|
f87e498ffc | ||
| ac9c958ae3 | |||
| c4574d3a21 | |||
| a283710778 | |||
|
|
d8a4d47d61 | ||
|
|
e20bb60562 | ||
|
|
8e219ebc78 | ||
| a7b360a355 | |||
|
|
b4999bcf6e | ||
|
|
15af627e0c | ||
|
|
fce9dac5cf | ||
| 4e623ae1cc | |||
|
|
f4f51cfb8a | ||
|
|
3149e46091 | ||
|
|
b2bd61b50d | ||
|
|
964c4f4343 | ||
|
|
e280492bf3 | ||
|
|
1633b293b1 | ||
|
|
ea31003a00 | ||
|
|
e09409ae28 | ||
|
|
51d45aca6d | ||
| 5dbcc847e9 | |||
|
|
6778d89a1d | ||
| a35cad6981 | |||
|
|
e4c2b76a2a | ||
| 160cd87b5d | |||
| 4fbad01bb8 | |||
| de60357b71 | |||
|
|
d6ff21f1b3 | ||
|
|
c31972041e | ||
|
|
f89b233031 | ||
| 50436b8fad | |||
| 178db32019 | |||
| c5cf1816a4 | |||
| fb7653c7d9 | |||
| e8cb5a0997 | |||
| a1a1995918 | |||
|
|
8c25ee31b9 | ||
|
|
31b90fba81 | ||
| 5c0558dd40 | |||
| 456b51e1ae | |||
|
|
089a278f15 | ||
| cf03e4cef8 | |||
| 53bc9bc950 | |||
|
|
78a81f7c78 | ||
|
|
a839fb2247 | ||
| e46290cd7a | |||
|
|
5276c717df | ||
| 25cdfd6de1 | |||
| 90f46958b2 | |||
| 288ebbf58e | |||
|
|
cabda7944a | ||
|
|
63f6eb3769 | ||
|
|
7843cd2ed0 | ||
| 887e0b0b3f | |||
|
|
cd96d00b09 | ||
|
|
6463c3b4c8 | ||
| 73af336ddd | |||
|
|
5a93da9b22 | ||
| 6c585a5a69 | |||
| 03f0d5a859 | |||
| c5e82293f8 | |||
| c9a4cebce7 | |||
|
|
5490d92e86 | ||
| c1d5effd70 | |||
| 994a6dabd7 | |||
| 247345a31b | |||
| d6728e53b3 | |||
|
|
e774a40b51 | ||
|
|
69b08918f2 | ||
|
|
0b34f6a5ec | ||
|
|
95c94aaa3d | ||
|
|
414fb4b006 | ||
|
|
002f030aee | ||
|
|
91ecf371e7 | ||
| d723ea3484 | |||
| e832b9d4be | |||
| ae6d1a22fe | |||
|
|
fec4e06458 | ||
| c245df1f7a | |||
|
|
ff931c6d6d | ||
|
|
4797d70288 | ||
|
|
ff5e1180df | ||
|
|
150399acf7 | ||
| 76679ceb97 | |||
|
|
b6668cc6a5 | ||
|
|
cfab3b0aa7 | ||
| 481d7ac89d | |||
|
|
263245dc6a | ||
| 4b4c398fdc | |||
|
|
32d4e90495 | ||
|
|
7fca0e7bfc | ||
|
|
1029573d38 | ||
| eadf0970a0 | |||
| 301f3722ba | |||
| 0b25d38a83 | |||
|
|
762cfd30ef | ||
| 11cab8ad55 | |||
|
|
d09f5adab4 | ||
|
|
b553d18c0c | ||
| e0118aa437 | |||
|
|
9ba93c62cf | ||
| 39c0bb3222 | |||
| 885f521538 | |||
| 01a84f5694 | |||
| 5649f1ed93 | |||
| f48f312829 | |||
| 337a6e3685 | |||
| df33edc0c4 | |||
|
|
cc64e6b9f3 | ||
|
|
490baba58b | ||
|
|
2180b9e33b | ||
|
|
fdd0c1c800 | ||
|
|
f6d886adfa | ||
|
|
4e4edd6c0b | ||
|
|
df77f3fcc8 | ||
|
|
b4cb7cddd9 | ||
|
|
04ff1b2a8c | ||
|
|
30f1a16295 | ||
| 55bb88772e | |||
|
|
76ac6cec01 | ||
| 5a9d8b3253 | |||
|
|
3b088e987d | ||
|
|
fab40cae01 | ||
|
|
41bd1bd199 | ||
|
|
ca8dabbf1c | ||
| 5cc7f19f9f | |||
|
|
3e02df99a0 | ||
|
|
6ff59905fc | ||
| 6b684898d0 | |||
| 5193f9a24f | |||
|
|
f7902c0a6e | ||
|
|
1048ddc5d0 | ||
|
|
0cf3c36364 | ||
|
|
e7fbde7236 | ||
|
|
7c65ffcefb | ||
|
|
ce805d6a76 | ||
|
|
bd395ead45 | ||
|
|
dd065c81f5 | ||
| e0620c5f89 | |||
|
|
76805480b5 | ||
|
|
f4b6649342 | ||
|
|
3b660f1bca | ||
|
|
06d7037fde | ||
| a24104411c | |||
|
|
8178fde2e1 | ||
|
|
edf5a0be4f | ||
| 04fc179ee8 | |||
|
|
b70c5888c2 | ||
| 75821fd938 | |||
| 44cd845438 | |||
|
|
0932cfa91e | ||
| 6c03509044 | |||
| 2ca91e7b17 | |||
|
|
de919e10ce | ||
| 87e2f32266 | |||
|
|
f3cbe07d5f | ||
| f80ca136a0 | |||
| cbd91ad5f8 | |||
|
|
d70f0b708e | ||
| 9f66eb7849 | |||
|
|
06a9fc5bc4 | ||
|
|
024c70a270 | ||
|
|
df990040f5 | ||
|
|
4ba259cc80 | ||
| c9ad4d7682 | |||
|
|
75e148d93b | ||
|
|
722dae36ab | ||
|
|
1100b91acd | ||
|
|
068844658a | ||
|
|
70dbb2e5f6 | ||
| cb40ce41eb | |||
|
|
7b4bee8816 | ||
|
|
bf03be1d0f | ||
|
|
fce027950d | ||
|
|
ac873f869f | ||
|
|
f4dc792aa1 | ||
| 1cb53f91d9 | |||
|
|
716dae9142 | ||
|
|
0f34773f95 | ||
|
|
c3c9436c74 | ||
| 81c4468612 | |||
|
|
fc129c2725 | ||
|
|
ebe40cf9de | ||
| a66102aa9a | |||
|
|
3a8173eb4c | ||
|
|
33b0a77ba9 | ||
|
|
8fe2290fdf | ||
|
|
cf053651a0 | ||
|
|
4164e8c1dd | ||
| 76c143eb28 | |||
|
|
ffd65fffda | ||
| f6601c6841 | |||
|
|
8e329c54dc | ||
|
|
d511d8a762 | ||
|
|
6c8bc62f80 | ||
|
|
97164cb5bb | ||
|
|
1dc243c5ba | ||
|
|
87b1b84b97 | ||
|
|
1d3687004c | ||
|
|
b351624e41 | ||
|
|
fcde025747 | ||
|
|
aac71a1639 | ||
| 8535dcb849 | |||
| afcd692808 | |||
|
|
39583ae95c | ||
|
|
101e10f28b | ||
|
|
0001cd98c3 | ||
|
|
812291e273 | ||
| 5a65ccf227 | |||
|
|
72b81598d6 | ||
|
|
bf57032c27 | ||
| 72e422382c | |||
| 7cd07f3c09 | |||
|
|
649b3820e3 | ||
| 61e2917491 | |||
| e6d1c2b50d | |||
| 6c1ffe53a3 | |||
| 9ec1448a4b | |||
| af22f064c0 | |||
| 4627783363 | |||
| af60d46970 | |||
| d25167430f | |||
| 12ab9c5f2e | |||
| bd0592e100 | |||
| 13013d7967 | |||
| fcdde6991f | |||
| bc9740bc45 | |||
| ea7c76361a | |||
| e2b75eb362 | |||
| bec9b67b92 | |||
| 9ac963e144 | |||
| 12fe1bf630 | |||
|
|
e0fc591281 | ||
|
|
e303b702d2 | ||
| 11313e13fc | |||
|
|
0c56eccb67 | ||
|
|
8a90b8c9e7 | ||
| 288f5a8f03 | |||
| e0d04d7d62 | |||
|
|
ba5f0c5839 | ||
|
|
f6f1df518a | ||
| 2ab3675b2c | |||
|
|
32ac787384 | ||
|
|
c3f89dd390 | ||
| fea760221c | |||
| 2b103be559 | |||
| d4813bea7a | |||
| 9da6811372 | |||
| 8f9b038c30 | |||
| c728c16c05 | |||
|
|
3e7d3ce30e | ||
|
|
bbdc39d036 | ||
| 17d2220061 | |||
|
|
5df46ed917 | ||
|
|
13a3a282ca | ||
|
|
736a9af82e | ||
|
|
7c58281b0d | ||
|
|
588cb4e931 | ||
| abca07c512 | |||
| 1c9b607a44 | |||
| a678570d91 | |||
|
|
d8a6724354 | ||
|
|
631ed5b362 | ||
| 372276dc39 | |||
| e620463d0a | |||
|
|
22bade88cb | ||
|
|
c574e200a6 | ||
| ecd7336349 | |||
| f171ae980d | |||
| 3202d10532 | |||
|
|
e196c98f73 | ||
|
|
5b17092229 | ||
| 909e2e9c8e | |||
|
|
09fdfc02c5 | ||
|
|
e5d42faffd | ||
|
|
0374568450 | ||
|
|
5f6460946a | ||
|
|
e79233b4d5 | ||
| 1ca03522a2 | |||
| 7c9d0a5df9 | |||
|
|
2d40206046 | ||
|
|
851bf29081 | ||
|
|
071c620004 | ||
|
|
b9af0d7a89 | ||
|
|
9940003866 | ||
|
|
473511b30f | ||
|
|
68483305fc | ||
|
|
53a6e51c89 | ||
|
|
aa0584452b | ||
|
|
1c2547733f | ||
|
|
bc525a305d | ||
|
|
5bb053277e | ||
|
|
7885349a17 | ||
|
|
56c3ba015a | ||
| 0b4500e7d0 | |||
| 619fb9a78e | |||
|
|
3d16487f86 | ||
|
|
29ea85186e | ||
| 94a87850d0 | |||
|
|
af987f5225 | ||
|
|
d4f942cc47 | ||
| 870ed4939d | |||
|
|
1b5523a1db | ||
| 4ab8afde7d | |||
| a5304ad4b4 | |||
|
|
b8ba2fc3c3 | ||
| 44d5b4cae1 |
124
APPL/ALG/alg.inc
124
APPL/ALG/alg.inc
@@ -443,6 +443,130 @@ alg = {
|
||||
oRs.Close();
|
||||
|
||||
return algm2;
|
||||
},
|
||||
|
||||
alg_onroerendgoed_flex_params: function(p_niveau)
|
||||
{
|
||||
var sql = "SELECT DISTINCT " + lcl.xsqla("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key")
|
||||
+ " , k.alg_kenmerk_kenmerktype"
|
||||
+ " FROM alg_kenmerk k"
|
||||
+ " WHERE (BITAND(alg_kenmerk_inlijst, 1) = 1)"
|
||||
+ " AND (BITAND(alg_kenmerk_systeem, 4) = 0 OR k.alg_kenmerk_systeem IS NULL)"
|
||||
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql_upper(p_niveau)
|
||||
+ " AND k.alg_kenmerk_verwijder IS NULL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var v_flexParams = { anyflex: !oRs.eof};
|
||||
|
||||
if (v_flexParams.anyflex)
|
||||
{
|
||||
var multiflex = false;
|
||||
v_flexParams.bijlageflex = (oRs("alg_kenmerk_kenmerktype").Value == "M");
|
||||
v_flexParams.flexlabel = oRs("alg_kenmerk_omschrijving").Value;
|
||||
oRs.MoveNext();
|
||||
if (!oRs.eof)
|
||||
{
|
||||
multiflex = true;
|
||||
v_flexParams.flexlabel = L("lcl_flexlist");
|
||||
while (!oRs.eof)
|
||||
{
|
||||
if (oRs("alg_kenmerk_kenmerktype").Value == "M")
|
||||
v_flexParams.bijlageflex = true;
|
||||
oRs.MoveNext();
|
||||
}
|
||||
}
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
var onrgoed_fld = "";
|
||||
switch (p_niveau)
|
||||
{
|
||||
case "D": onrgoed_fld = "d.alg_district_key"; break;
|
||||
case "L": onrgoed_fld = "l.alg_locatie_key"; break;
|
||||
case "T": onrgoed_fld = "g.alg_terreinsector_key"; break;
|
||||
case "G": onrgoed_fld = "g.alg_gebouw_key"; break;
|
||||
case "V": onrgoed_fld = "v.alg_verdieping_key"; break;
|
||||
case "R": onrgoed_fld = "r.alg_ruimte_key"; break;
|
||||
}
|
||||
v_flexParams.sql = ( v_flexParams.anyflex
|
||||
? " , (SELECT LISTAGG(" + ( multiflex
|
||||
? lcl.xsql("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key") + " || ':' || chr(160) || "
|
||||
: ""
|
||||
)
|
||||
+ " CASE WHEN k.alg_kenmerk_kenmerktype = 'R' OR k.alg_kenmerk_kenmerktype = 'r' OR k.alg_kenmerk_kenmerktype = 'S'"
|
||||
+ " THEN flx.getdomeinwaarde(k.fac_kenmerkdomein_key, km.alg_onrgoedkenmerk_waarde)"
|
||||
+ " WHEN ( ( k.alg_kenmerk_kenmerktype = 'N'"
|
||||
+ " AND k.alg_kenmerk_lengte = 1"
|
||||
+ " AND k.alg_kenmerk_nmin = 0"
|
||||
+ " AND k.alg_kenmerk_nmax = 1"
|
||||
+ " AND (k.alg_kenmerk_dec = 0 OR k.alg_kenmerk_dec IS NULL)"
|
||||
+ " )"
|
||||
+ " OR (k.alg_kenmerk_kenmerktype = 'V')"
|
||||
+ " )"
|
||||
+ " THEN DECODE( km.alg_onrgoedkenmerk_waarde"
|
||||
+ " , 0, " + safe.qL("lcl_check_0")
|
||||
+ " , 1, " + safe.qL("lcl_check_1")
|
||||
+ " , km.alg_onrgoedkenmerk_waarde"
|
||||
+ " )"
|
||||
+ " ELSE km.alg_onrgoedkenmerk_waarde"
|
||||
+ " END"
|
||||
+ " , CHR(13)"
|
||||
+ " )"
|
||||
+ " WITHIN GROUP (ORDER BY k.alg_kenmerk_volgnr)"
|
||||
+ " FROM alg_kenmerk k"
|
||||
+ " , alg_onrgoedkenmerk km"
|
||||
+ " WHERE km.alg_onrgoed_key = " + onrgoed_fld
|
||||
+ " AND km.alg_onrgoed_niveau = " + safe.quoted_sql_upper(p_niveau)
|
||||
+ " AND k.alg_kenmerk_key = km.alg_kenmerk_key"
|
||||
+ " AND (BITAND(k.alg_kenmerk_inlijst,1) = 1)"
|
||||
+ " AND (BITAND(k.alg_kenmerk_systeem,4) = 0 OR k.alg_kenmerk_systeem IS NULL)" // -- niet als vertrouwelijk
|
||||
+ " AND k.alg_kenmerk_verwijder IS NULL"
|
||||
+ " AND km.alg_onrgoedkenmerk_verwijder IS NULL"
|
||||
+ " ) flex"
|
||||
: ""
|
||||
)
|
||||
return v_flexParams;
|
||||
},
|
||||
|
||||
alg_onroerendgoed_flex_bijlagen: function(p_niveau, p_alg_key)
|
||||
{
|
||||
var bijlagen_aantal = 0;
|
||||
var bijlagen_oms = "";
|
||||
var bijlagen_lijst = [];
|
||||
var sql_k = "SELECT k.alg_kenmerk_key"
|
||||
+ " , " + lcl.xsqla("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key")
|
||||
+ " , CASE WHEN BITAND(k.alg_kenmerk_inlijst, 1) = 1"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END in_overzicht_tonen"
|
||||
+ " FROM alg_kenmerk k"
|
||||
+ " WHERE k.alg_kenmerk_verwijder IS NULL"
|
||||
+ " AND k.alg_kenmerk_kenmerktype= 'M'"
|
||||
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql_upper(p_niveau);
|
||||
var oRs_k = Oracle.Execute(sql_k);
|
||||
while (!oRs_k.eof)
|
||||
{
|
||||
if (oRs_k("in_overzicht_tonen").Value == 1)
|
||||
{
|
||||
var kenmerk_key = oRs_k("alg_kenmerk_key").Value;
|
||||
var bijlagen_oms = oRs_k("alg_kenmerk_omschrijving").Value;
|
||||
var bestanden = flexProps("ALG", p_alg_key, kenmerk_key, "A", {getFiles: true});
|
||||
var km_aantal = bestanden.files.length;
|
||||
for (var i=0; i<km_aantal; i++)
|
||||
{
|
||||
bijlagen_lijst.push(bestanden.files[i].name);
|
||||
}
|
||||
bijlagen_aantal += km_aantal;
|
||||
}
|
||||
oRs_k.MoveNext();
|
||||
}
|
||||
oRs_k.Close();
|
||||
|
||||
return ( bijlagen_aantal > 0
|
||||
? "<span title='" + safe.htmlattr(bijlagen_lijst.join("\n")) + "'>"
|
||||
+ safe.html(bijlagen_oms) + ": " + bijlagen_aantal
|
||||
+ "</span>"
|
||||
: ""
|
||||
);
|
||||
}
|
||||
}
|
||||
%>
|
||||
@@ -16,18 +16,6 @@
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins:["jQuery"] });
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var parent_key = oRs("alg_regio_key").value;
|
||||
var detail_key = oRs("alg_district_key").value;
|
||||
var key = oRs("alg_district_key").value;
|
||||
var oms = oRs("alg_district_omschrijving").value;
|
||||
|
||||
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
|
||||
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var autosearch = 1; // automatisch laden van resultaat op search pagina.
|
||||
@@ -81,23 +69,6 @@ function district_list(pautfunction, params)
|
||||
|
||||
var reg_key = params.reg_key;
|
||||
var dis_key = params.dis_key;
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
var eDelete = false;
|
||||
if (alg.canWriteDistrict(oRs("alg_district_key").value, authparams.mALGwritelevel))
|
||||
eDelete = true;
|
||||
return ({eDelete: eDelete})
|
||||
}
|
||||
|
||||
function fnrowFlexParams(oRs)
|
||||
{
|
||||
var dis_key = oRs("alg_district_key").Value;
|
||||
var this_alg = alg.func_enabled(dis_key, "D");
|
||||
|
||||
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
|
||||
return flexParams;
|
||||
}
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
@@ -105,15 +76,16 @@ function district_list(pautfunction, params)
|
||||
</head>
|
||||
<body id="listbody">
|
||||
<%
|
||||
|
||||
var sqln = "SELECT d.alg_district_key, "
|
||||
+ " d.alg_regio_key, "
|
||||
+ " d.alg_district_omschrijving, "
|
||||
+ " r.alg_regio_omschrijving "
|
||||
+ " FROM alg_district d, "
|
||||
+ " alg_regio r "
|
||||
+ " WHERE r.alg_regio_key = d.alg_regio_key "
|
||||
+ " AND d.alg_district_verwijder IS NULL ";
|
||||
var flexParams = alg.alg_onroerendgoed_flex_params("D");
|
||||
var sqln = "SELECT d.alg_district_key"
|
||||
+ " , d.alg_regio_key"
|
||||
+ " , d.alg_district_omschrijving"
|
||||
+ " , r.alg_regio_omschrijving"
|
||||
+ flexParams.sql
|
||||
+ " FROM alg_district d"
|
||||
+ " , alg_regio r"
|
||||
+ " WHERE r.alg_regio_key = d.alg_regio_key"
|
||||
+ " AND d.alg_district_verwijder IS NULL";
|
||||
|
||||
if ( authparams.ALGreadlevel > -1 )
|
||||
{ // Er is een scope-beperking van kracht
|
||||
@@ -149,6 +121,50 @@ function district_list(pautfunction, params)
|
||||
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
|
||||
}
|
||||
|
||||
/**********************************
|
||||
* Callback functies ResultsetTable
|
||||
*********************************/
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var parent_key = oRs("alg_regio_key").value;
|
||||
var detail_key = oRs("alg_district_key").value;
|
||||
var key = oRs("alg_district_key").value;
|
||||
var oms = oRs("alg_district_omschrijving").value;
|
||||
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
var eDelete = false;
|
||||
if (alg.canWriteDistrict(oRs("alg_district_key").value, authparams.mALGwritelevel))
|
||||
eDelete = true;
|
||||
return ({eDelete: eDelete})
|
||||
}
|
||||
|
||||
function fnrowFlexParams(oRs)
|
||||
{
|
||||
var dis_key = oRs("alg_district_key").Value;
|
||||
var this_alg = alg.func_enabled(dis_key, "D");
|
||||
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
|
||||
return flexParams;
|
||||
}
|
||||
|
||||
function fncolFlexBijlagen(oRs)
|
||||
{
|
||||
var flexval = oRs("flex").Value;
|
||||
var alg_key = oRs("alg_district_key").Value;
|
||||
var result = ( flexval
|
||||
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
|
||||
: ""
|
||||
);
|
||||
if (flexParams.bijlageflex)
|
||||
{
|
||||
result += alg.alg_onroerendgoed_flex_bijlagen("D", alg_key);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({sql:sqln,
|
||||
keyColumn: "alg_district_key",
|
||||
ID: "algtable",
|
||||
@@ -165,6 +181,8 @@ function district_list(pautfunction, params)
|
||||
|
||||
rst.addColumn(new Column({caption: L("lcl_estate_regio_descr"), content: "alg_regio_omschrijving"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_estate_district_man_descr"), content: "alg_district_omschrijving", hasActions: true}));
|
||||
if (flexParams.anyflex)
|
||||
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
|
||||
|
||||
rst.addAction({ action: "districtEdit", caption: L("lcl_edit"), isDefault: true});
|
||||
rst.addAction({ action: "doDelete", caption: L("lcl_delete"), enabler: "eDelete", multi: true, multiOnce: true});
|
||||
|
||||
@@ -198,14 +198,14 @@ else
|
||||
"sgVerantw",
|
||||
{ perslidKey: verantw_key,
|
||||
label: L("lcl_alg_verantw"),
|
||||
readonly: !this_alg.writeuse,
|
||||
readonly: !this_alg.writeman,
|
||||
autlevel: this_alg.authparams("WEB_ALGMAN") && this_alg.authparams("WEB_ALGMAN").PRSwritelevel
|
||||
});
|
||||
FCLTpersoonselector("verantw2",
|
||||
"sgVerantw2",
|
||||
{ perslidKey: verantw_key2,
|
||||
label: L("lcl_alg_verantw2"),
|
||||
readonly: !this_alg.writeuse,
|
||||
readonly: !this_alg.writeman,
|
||||
autlevel: this_alg.authparams("WEB_ALGMAN") && this_alg.authparams("WEB_ALGMAN").PRSwritelevel
|
||||
});
|
||||
manRWFIELD("bld_email", "fld", L("lcl_alg_gebouw_email"), bld_email, {maxlength: 200});
|
||||
@@ -222,7 +222,7 @@ else
|
||||
{ label: L("lcl_mld_dienst_niveau"),
|
||||
initKey: dienstniveau,
|
||||
emptyOption: "",
|
||||
readonly: !this_alg.writeuse
|
||||
readonly: !this_alg.writeman
|
||||
});
|
||||
FCLTadresselector("mld_adres", "sgAdres",
|
||||
{
|
||||
|
||||
@@ -160,7 +160,7 @@ if (!warning)
|
||||
shared.trackaction("ALGGUP", bld_key, algUpd.trackarray.join("\n"));
|
||||
}
|
||||
else
|
||||
shared.trackaction("ALGGUP", bld_key, L("lcl_noti_ALGGNE")); // strikt genomen ALGGNE
|
||||
shared.trackaction("ALGGNE", bld_key);
|
||||
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -129,7 +129,7 @@ else
|
||||
shared.trackaction("ALGLUP", loc_key, algUpd.trackarray.join("\n"));
|
||||
}
|
||||
else
|
||||
shared.trackaction("ALGLUP", loc_key, L("lcl_noti_ALGLNE")); // strikt genomen ALGLNE
|
||||
shared.trackaction("ALGLNE", loc_key);
|
||||
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -148,7 +148,7 @@ if (!warning)
|
||||
shared.trackaction("ALGTUP", ter_key, algUpd.trackarray.join("\n"));
|
||||
}
|
||||
else
|
||||
shared.trackaction("ALGTUP", ter_key, L("lcl_noti_ALGTNE")); // strikt genomen ALGTNE
|
||||
shared.trackaction("ALGTNE", ter_key);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ if (!warning)
|
||||
shared.trackaction("ALGVUP", flr_key, algUpd.trackarray.join("\n"));
|
||||
}
|
||||
else
|
||||
shared.trackaction("ALGVUP", flr_key, L("lcl_noti_ALGVNE")); // strikt genomen ALGVNE
|
||||
shared.trackaction("ALGVNE", flr_key);
|
||||
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -99,7 +99,8 @@ function generateFlexKenmerkBlock(params)
|
||||
mobile: params.mobile,
|
||||
parentKey: onrgoed_key,
|
||||
kenmerk_module: onrgoed_niveau,
|
||||
hasfilter: hasfilter
|
||||
hasfilter: hasfilter,
|
||||
relativeValuesAllowed: params.multi
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@@ -16,51 +16,7 @@
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins: ["jQuery"] });
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var parent_key = oRs("alg_locatie_key").value;
|
||||
var detail_key = oRs("alg_gebouw_key").value;
|
||||
var key = oRs("alg_gebouw_key").value;
|
||||
var oms = oRs("alg_gebouw_naam").value;
|
||||
|
||||
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
|
||||
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
var recent = new Date();
|
||||
function fnrowClass(oRs)
|
||||
{
|
||||
var lclass = "";
|
||||
// Tracking: hoe lang geleden voor het laatst gewijzigd?
|
||||
if (oRs.Fields("recentdatum").Value != null)
|
||||
{
|
||||
var ltrackdate1 = new Date();
|
||||
var ltrackdate10 = new Date();
|
||||
var ltrackdate100 = new Date();
|
||||
var alg_onrgoed_recent = S("alg_onrgoed_recent");
|
||||
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
|
||||
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
|
||||
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
|
||||
|
||||
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
|
||||
if (fac_recent > ltrackdate1)
|
||||
{
|
||||
lclass += " updated";
|
||||
}
|
||||
else if (fac_recent > ltrackdate10)
|
||||
{
|
||||
lclass += " updated10";
|
||||
}
|
||||
else if (fac_recent > ltrackdate100)
|
||||
{
|
||||
lclass += " updated100";
|
||||
}
|
||||
}
|
||||
return lclass;
|
||||
}
|
||||
|
||||
var cnt_full = getQParamInt("cnt_full", 1);
|
||||
var cnt_full = getQParamInt("cnt_full", 1);
|
||||
|
||||
// Fast check to see if any building responsibles have been set
|
||||
// If not, we can suppress the column
|
||||
@@ -181,30 +137,6 @@ function gebouw_list(pautfunction, params)
|
||||
var autparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);
|
||||
var readuse = autparamsINSUSE && autparamsINSUSE.PRSreadlevel < 9 && autparamsINSUSE.ALGreadlevel < 9; // Wijzigen Afgeronde gegevens.
|
||||
var readman = autparamsINSMAN && autparamsINSMAN.PRSreadlevel < 9 && autparamsINSMAN.ALGreadlevel < 9; // Wijzigen Afgeronde gegevens.
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
var eDelete = false;
|
||||
var eEditMulti = false;
|
||||
var eObjMan = false;
|
||||
if (alg.canWriteGebouw(oRs("alg_gebouw_key").value, authparams.mALGwritelevel))
|
||||
{
|
||||
eDelete = true;
|
||||
eEditMulti = true;
|
||||
}
|
||||
// Heb ik rechten om het objectenbeheer overzicht te zien?
|
||||
if (readuse || readman)
|
||||
eObjMan = true;
|
||||
return ({eDelete: eDelete, eEditMulti: eEditMulti, eObjMan: eObjMan});
|
||||
}
|
||||
|
||||
function fnrowFlexParams(oRs)
|
||||
{
|
||||
var bld_key = oRs("alg_gebouw_key").Value;
|
||||
var this_alg = alg.func_enabled(bld_key, "G");
|
||||
|
||||
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
|
||||
return flexParams;
|
||||
}
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -213,8 +145,8 @@ function gebouw_list(pautfunction, params)
|
||||
</head>
|
||||
<body id="listbody">
|
||||
<%
|
||||
var flexParams = alg.alg_onroerendgoed_flex_params("G");
|
||||
var sqln = "SELECT g.alg_gebouw_key"
|
||||
+ " , g.alg_locatie_key"
|
||||
+ " , g.alg_locatie_key"
|
||||
+ " , g.alg_srtgebouw_key"
|
||||
+ " , l.alg_locatie_omschrijving"
|
||||
@@ -244,6 +176,7 @@ function gebouw_list(pautfunction, params)
|
||||
+ " AND t.fac_tracking_refkey = g.alg_gebouw_key"
|
||||
+ " AND sn.fac_srtnotificatie_xmlnode = 'gebouw'"
|
||||
+ " ) recentdatum"
|
||||
+ flexParams.sql
|
||||
+ " FROM alg_gebouw g"
|
||||
+ " , alg_locatie l"
|
||||
+ " , alg_srtgebouw s"
|
||||
@@ -308,6 +241,93 @@ function gebouw_list(pautfunction, params)
|
||||
|
||||
// addurl += buildTransitParam(["loc_key", "bld_key", "flo_key", "room_key"], params) // TODO: welke allemaal?
|
||||
|
||||
/**********************************
|
||||
* Callback functies ResultsetTable
|
||||
*********************************/
|
||||
var recent = new Date();
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var parent_key = oRs("alg_locatie_key").value;
|
||||
var detail_key = oRs("alg_gebouw_key").value;
|
||||
var key = oRs("alg_gebouw_key").value;
|
||||
var oms = oRs("alg_gebouw_naam").value;
|
||||
|
||||
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
function fnrowClass(oRs)
|
||||
{
|
||||
var lclass = "";
|
||||
// Tracking: hoe lang geleden voor het laatst gewijzigd?
|
||||
if (oRs.Fields("recentdatum").Value != null)
|
||||
{
|
||||
var ltrackdate1 = new Date();
|
||||
var ltrackdate10 = new Date();
|
||||
var ltrackdate100 = new Date();
|
||||
var alg_onrgoed_recent = S("alg_onrgoed_recent");
|
||||
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
|
||||
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
|
||||
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
|
||||
|
||||
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
|
||||
if (fac_recent > ltrackdate1)
|
||||
{
|
||||
lclass += " updated";
|
||||
}
|
||||
else if (fac_recent > ltrackdate10)
|
||||
{
|
||||
lclass += " updated10";
|
||||
}
|
||||
else if (fac_recent > ltrackdate100)
|
||||
{
|
||||
lclass += " updated100";
|
||||
}
|
||||
}
|
||||
return lclass;
|
||||
}
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
var eDelete = false;
|
||||
var eEditMulti = false;
|
||||
var eObjMan = false;
|
||||
if (alg.canWriteGebouw(oRs("alg_gebouw_key").value, authparams.mALGwritelevel))
|
||||
{
|
||||
eDelete = true;
|
||||
eEditMulti = true;
|
||||
}
|
||||
// Heb ik rechten om het objectenbeheer overzicht te zien?
|
||||
if (readuse || readman)
|
||||
eObjMan = true;
|
||||
return ({eDelete: eDelete, eEditMulti: eEditMulti, eObjMan: eObjMan});
|
||||
}
|
||||
|
||||
function fnrowFlexParams(oRs)
|
||||
{
|
||||
var bld_key = oRs("alg_gebouw_key").Value;
|
||||
var this_alg = alg.func_enabled(bld_key, "G");
|
||||
|
||||
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
|
||||
return flexParams;
|
||||
}
|
||||
|
||||
function fncolFlexBijlagen(oRs)
|
||||
{
|
||||
var flexval = oRs("flex").Value;
|
||||
var alg_key = oRs("alg_gebouw_key").Value;
|
||||
var result = ( flexval
|
||||
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
|
||||
: ""
|
||||
);
|
||||
if (flexParams.bijlageflex)
|
||||
{
|
||||
result += alg.alg_onroerendgoed_flex_bijlagen("G", alg_key);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({ sql:sqln,
|
||||
keyColumn: "alg_gebouw_key",
|
||||
ID: "algtable",
|
||||
@@ -340,7 +360,6 @@ function gebouw_list(pautfunction, params)
|
||||
}
|
||||
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_bruto_vloeropp"), content: "alg_gebouw_bruto_vloeropp", datatype: "float", decimals: 2}));
|
||||
rst.addColumn(new Column({caption: L("lcl_alg_vervaldatum"), content: "alg_gebouw_vervaldatum", datatype: "date"}));
|
||||
|
||||
if (outputmode != 0)
|
||||
{
|
||||
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_opmerk"), content: "alg_gebouw_opmerking"}));
|
||||
@@ -353,6 +372,8 @@ function gebouw_list(pautfunction, params)
|
||||
}
|
||||
if (ins_score_enabled)
|
||||
rst.addColumn(new Column({caption: L("lcl_alg_gebouw_mjb_score1"), content: "alg_gebouw_mjb_score1", datatype: "number"}));
|
||||
if (flexParams.anyflex)
|
||||
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
|
||||
|
||||
rst.addAction({ action: "gebouwEdit", caption: L("lcl_edit"), isDefault: true});
|
||||
if (S("cnd_gebreken_srtdisc_key") > -1)
|
||||
|
||||
@@ -18,50 +18,6 @@ FCLTHeader.Requires({ plugins:["jQuery"],
|
||||
js: []
|
||||
})
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var parent_key = oRs("alg_district_key").value;
|
||||
var detail_key = oRs("alg_locatie_key").value;
|
||||
var key = oRs("alg_locatie_key").value;
|
||||
var oms = oRs("alg_locatie_omschrijving").value;
|
||||
|
||||
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
|
||||
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
var recent = new Date();
|
||||
function fnrowClass(oRs)
|
||||
{
|
||||
var lclass = "";
|
||||
// Tracking: hoe lang geleden voor het laatst gewijzigd?
|
||||
if (oRs.Fields("recentdatum").Value != null)
|
||||
{
|
||||
var ltrackdate1 = new Date();
|
||||
var ltrackdate10 = new Date();
|
||||
var ltrackdate100 = new Date();
|
||||
var alg_onrgoed_recent = S("alg_onrgoed_recent");
|
||||
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
|
||||
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
|
||||
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
|
||||
|
||||
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
|
||||
if (fac_recent > ltrackdate1)
|
||||
{
|
||||
lclass += " updated";
|
||||
}
|
||||
else if (fac_recent > ltrackdate10)
|
||||
{
|
||||
lclass += " updated10";
|
||||
}
|
||||
else if (fac_recent > ltrackdate100)
|
||||
{
|
||||
lclass += " updated100";
|
||||
}
|
||||
}
|
||||
return lclass;
|
||||
}
|
||||
|
||||
var cnt_full = getQParamInt("cnt_full", 1);
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
@@ -142,27 +98,6 @@ function locatie_list(pautfunction, params)
|
||||
var expalgincl = params.expalgincl;
|
||||
var fitness_score1_from = params.fitness_score1_from;
|
||||
var fitness_score1_through = params.fitness_score1_through;
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
var eDelete = false;
|
||||
var eEditMulti = false;
|
||||
if (alg.canWriteLocatie(oRs("alg_locatie_key").value, authparams.mALGwritelevel))
|
||||
{
|
||||
eDelete = true;
|
||||
eEditMulti = true;
|
||||
}
|
||||
return ({eDelete: eDelete, eEditMulti: eEditMulti})
|
||||
}
|
||||
|
||||
function fnrowFlexParams(oRs)
|
||||
{
|
||||
var loc_key = oRs("alg_locatie_key").Value;
|
||||
var this_alg = alg.func_enabled(loc_key, "L");
|
||||
|
||||
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
|
||||
return flexParams;
|
||||
}
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -170,7 +105,9 @@ function locatie_list(pautfunction, params)
|
||||
<% FCLTHeader.Generate({outputmode:outputmode}) %>
|
||||
</head>
|
||||
<body id="listbody">
|
||||
<% var sqln = "SELECT l.alg_locatie_key"
|
||||
<%
|
||||
var flexParams = alg.alg_onroerendgoed_flex_params("L");
|
||||
var sqln = "SELECT l.alg_locatie_key"
|
||||
+ " , l.alg_district_key"
|
||||
+ " , l.alg_locatie_code"
|
||||
+ " , l.alg_locatie_omschrijving"
|
||||
@@ -196,6 +133,7 @@ function locatie_list(pautfunction, params)
|
||||
+ " AND t.fac_tracking_refkey = l.alg_locatie_key"
|
||||
+ " AND sn.fac_srtnotificatie_xmlnode = 'locatie'"
|
||||
+ " ) recentdatum"
|
||||
+ flexParams.sql
|
||||
+ " FROM alg_v_aanweziglocatie l"
|
||||
+ " , alg_district d "
|
||||
+ " WHERE d.alg_district_key(+) = l.alg_district_key"
|
||||
@@ -251,6 +189,88 @@ function locatie_list(pautfunction, params)
|
||||
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
|
||||
}
|
||||
|
||||
/**********************************
|
||||
* Callback functies ResultsetTable
|
||||
*********************************/
|
||||
var recent = new Date();
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var parent_key = oRs("alg_district_key").value;
|
||||
var detail_key = oRs("alg_locatie_key").value;
|
||||
var key = oRs("alg_locatie_key").value;
|
||||
var oms = oRs("alg_locatie_omschrijving").value;
|
||||
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
function fnrowClass(oRs)
|
||||
{
|
||||
var lclass = "";
|
||||
// Tracking: hoe lang geleden voor het laatst gewijzigd?
|
||||
if (oRs.Fields("recentdatum").Value != null)
|
||||
{
|
||||
var ltrackdate1 = new Date();
|
||||
var ltrackdate10 = new Date();
|
||||
var ltrackdate100 = new Date();
|
||||
var alg_onrgoed_recent = S("alg_onrgoed_recent");
|
||||
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
|
||||
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
|
||||
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
|
||||
|
||||
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
|
||||
if (fac_recent > ltrackdate1)
|
||||
{
|
||||
lclass += " updated";
|
||||
}
|
||||
else if (fac_recent > ltrackdate10)
|
||||
{
|
||||
lclass += " updated10";
|
||||
}
|
||||
else if (fac_recent > ltrackdate100)
|
||||
{
|
||||
lclass += " updated100";
|
||||
}
|
||||
}
|
||||
return lclass;
|
||||
}
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
var eDelete = false;
|
||||
var eEditMulti = false;
|
||||
if (alg.canWriteLocatie(oRs("alg_locatie_key").value, authparams.mALGwritelevel))
|
||||
{
|
||||
eDelete = true;
|
||||
eEditMulti = true;
|
||||
}
|
||||
return ({eDelete: eDelete, eEditMulti: eEditMulti})
|
||||
}
|
||||
|
||||
function fnrowFlexParams(oRs)
|
||||
{
|
||||
var loc_key = oRs("alg_locatie_key").Value;
|
||||
var this_alg = alg.func_enabled(loc_key, "L");
|
||||
|
||||
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
|
||||
return flexParams;
|
||||
}
|
||||
|
||||
function fncolFlexBijlagen(oRs)
|
||||
{
|
||||
var flexval = oRs("flex").Value;
|
||||
var alg_key = oRs("alg_locatie_key").Value;
|
||||
var result = ( flexval
|
||||
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
|
||||
: ""
|
||||
);
|
||||
if (flexParams.bijlageflex)
|
||||
{
|
||||
result += alg.alg_onroerendgoed_flex_bijlagen("L", alg_key);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({ sql:sqln,
|
||||
keyColumn: "alg_locatie_key",
|
||||
ID: "algtable",
|
||||
@@ -288,6 +308,8 @@ function locatie_list(pautfunction, params)
|
||||
rst.addColumn(new Column({caption: L("lcl_geoxcoord"), content: "alg_locatie_x"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_geoycoord"), content: "alg_locatie_y"}));
|
||||
}
|
||||
if (flexParams.anyflex)
|
||||
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
|
||||
|
||||
|
||||
rst.addAction({ action: "locatieEdit", caption: L("lcl_edit"), isDefault: true});
|
||||
|
||||
@@ -49,6 +49,7 @@ if (room_key > 0)
|
||||
var flr_oms = oRs("alg_verdieping_omschrijving").value;
|
||||
var room_nr = oRs("alg_ruimte_nr").value;
|
||||
var room_name = " " + bld_code + "-" + flr_oms + "-" + room_nr;
|
||||
oRs.Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -110,7 +110,9 @@ function ruimte_list(pautfunction, params)
|
||||
</head>
|
||||
|
||||
<body id="listbody">
|
||||
<% var sqln = "SELECT r.alg_ruimte_key"
|
||||
<%
|
||||
var flexParams = alg.alg_onroerendgoed_flex_params("R");
|
||||
var sqln = "SELECT r.alg_ruimte_key"
|
||||
+ ", v.alg_verdieping_key"
|
||||
+ ", v.alg_gebouw_key"
|
||||
+ ", g.alg_locatie_key"
|
||||
@@ -130,6 +132,14 @@ function ruimte_list(pautfunction, params)
|
||||
+ ", r.alg_ruimte_opp_alt1"
|
||||
+ ", r.alg_ruimte_opp_alt2"
|
||||
+ ", r.alg_ruimte_verwijder"
|
||||
+ " , (SELECT MAX(t.fac_tracking_datum)"
|
||||
+ " FROM fac_tracking t"
|
||||
+ " , fac_srtnotificatie sn"
|
||||
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
|
||||
+ " AND t.fac_tracking_refkey = r.alg_ruimte_key"
|
||||
+ " AND sn.fac_srtnotificatie_xmlnode = 'ruimte'"
|
||||
+ " ) recentdatum"
|
||||
+ flexParams.sql
|
||||
+ " FROM alg_ruimte r"
|
||||
+ ", alg_verdieping v"
|
||||
+ ", alg_gebouw g"
|
||||
@@ -206,6 +216,19 @@ function ruimte_list(pautfunction, params)
|
||||
+ ", v.alg_verdieping_volgnr ASC"
|
||||
+ ", r.alg_ruimte_upper_nr ASC"
|
||||
|
||||
var addurl = "appl/alg/alg_ruimte.asp?a=1";
|
||||
addurl += buildTransitParam(["locatiekey", "gebouwkey", "verdiepingkey", "ruimtekey"], params) // TODO: welke allemaal?
|
||||
|
||||
if (canAdd)
|
||||
{
|
||||
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
|
||||
}
|
||||
|
||||
/**********************************
|
||||
* Callback functies ResultsetTable
|
||||
*********************************/
|
||||
var recent = new Date();
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var parent_key = oRs("alg_verdieping_key").Value;
|
||||
@@ -217,6 +240,37 @@ function ruimte_list(pautfunction, params)
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
function fnrowClass(oRs) // identiek aan de andere niveaus
|
||||
{
|
||||
var lclass = "";
|
||||
// Tracking: hoe lang geleden voor het laatst gewijzigd?
|
||||
if (oRs.Fields("recentdatum").Value != null)
|
||||
{
|
||||
var ltrackdate1 = new Date();
|
||||
var ltrackdate10 = new Date();
|
||||
var ltrackdate100 = new Date();
|
||||
var alg_onrgoed_recent = S("alg_onrgoed_recent");
|
||||
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
|
||||
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
|
||||
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
|
||||
|
||||
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
|
||||
if (fac_recent > ltrackdate1)
|
||||
{
|
||||
lclass += " updated";
|
||||
}
|
||||
else if (fac_recent > ltrackdate10)
|
||||
{
|
||||
lclass += " updated10";
|
||||
}
|
||||
else if (fac_recent > ltrackdate100)
|
||||
{
|
||||
lclass += " updated100";
|
||||
}
|
||||
}
|
||||
return lclass;
|
||||
}
|
||||
|
||||
var floorCache = [];
|
||||
// Voor performance bekijken we de rechten per verdieping. In de praktijk nauwkeurig genoeg
|
||||
function fnrowActionEnabler(oRs)
|
||||
@@ -243,12 +297,19 @@ function ruimte_list(pautfunction, params)
|
||||
return flexParams;
|
||||
}
|
||||
|
||||
var addurl = "appl/alg/alg_ruimte.asp?a=1";
|
||||
addurl += buildTransitParam(["locatiekey", "gebouwkey", "verdiepingkey", "ruimtekey"], params) // TODO: welke allemaal?
|
||||
|
||||
if (canAdd)
|
||||
function fncolFlexBijlagen(oRs)
|
||||
{
|
||||
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
|
||||
var flexval = oRs("flex").Value;
|
||||
var alg_key = oRs("alg_ruimte_key").Value;
|
||||
var result = ( flexval
|
||||
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
|
||||
: ""
|
||||
);
|
||||
if (flexParams.bijlageflex)
|
||||
{
|
||||
result += alg.alg_onroerendgoed_flex_bijlagen("R", alg_key);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({ sql: sqln,
|
||||
@@ -257,6 +318,7 @@ function ruimte_list(pautfunction, params)
|
||||
title: L("lcl_menu_alg_ruimte"),
|
||||
showAll: showall,
|
||||
rowData: fnrowData,
|
||||
rowClass: fnrowClass,
|
||||
rowActionEnabler: fnrowActionEnabler,
|
||||
outputmode: outputmode,
|
||||
flexModule: "ALG",
|
||||
@@ -296,6 +358,8 @@ function ruimte_list(pautfunction, params)
|
||||
}
|
||||
if (expalgincl)
|
||||
rst.addColumn(new Column({caption: L("lcl_alg_vervaldatum"), content: "alg_ruimte_verwijder", datatype: "date"}));
|
||||
if (flexParams.anyflex)
|
||||
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
|
||||
|
||||
rst.addAction({ action: "ruimteEdit", caption: L("lcl_edit"), isDefault: true });
|
||||
rst.addAction({ action: "ruimteEditMulti", caption: L("lcl_alg_multi_edit"), multi: true, multiOnce: true, single: false, enabler: "eEditMulti"});
|
||||
|
||||
@@ -20,7 +20,7 @@ function ruimtefunctie_list(pautfunction, params)
|
||||
{
|
||||
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
|
||||
var addButton = [];
|
||||
var authparams = alg.checkAutorisation();
|
||||
var authparams = user.has("WEB_ALGMSU") && alg.checkAutorisation(true);
|
||||
var canAdd = (authparams.mALGwritelevel < 9);
|
||||
|
||||
// Voor resulttable de globalen zetten; zou ng anders moeten.
|
||||
|
||||
@@ -10,7 +10,10 @@
|
||||
locatie_key key van de locatie
|
||||
gebouw_key key van het gebouw
|
||||
Context: Vanuit menu
|
||||
Note:
|
||||
Note:
|
||||
Het menuitem vereist ALGMSU, kennelijk om deze voor het gepeupel te onderdrukken
|
||||
De feitelijke autorisatie keek hier niet naar en vertrouwde op de ALGMAN/ALGUSE-autorisaties
|
||||
wat ook goed is. Je moet dus beide hebben.
|
||||
*/ %>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
@@ -25,8 +28,7 @@ FCLTHeader.Requires({ plugins: ["jQuery", "kenmerk"] });
|
||||
var alg_srtruimte_key = getQParamInt("alg_srtruimte_key", -1); // Ruimtefunctie
|
||||
var locatie_key = getQParamInt("locatie_key", -1); // Locatie
|
||||
var gebouw_key = getQParamInt("gebouw_key", -1); // Gebouw
|
||||
|
||||
var authparams = alg.checkAutorisation();
|
||||
var authparams = user.has("WEB_ALGMSU") && alg.checkAutorisation(true); // als je geen scope hebt kun je toch niks
|
||||
|
||||
%>
|
||||
<html>
|
||||
|
||||
@@ -115,28 +115,6 @@ function terrein_list(pautfunction, params)
|
||||
var verantw_key = params.verantw_key;
|
||||
var ter_func_key = params.ter_func_key;
|
||||
var expalgincl = params.expalgincl;
|
||||
|
||||
function fnrowActionEnabler(oRs) // klopt dit voor terreinsector?
|
||||
{
|
||||
var eDelete = false;
|
||||
var eEditMulti = false;
|
||||
|
||||
if (alg.canWriteLocatie(oRs("alg_locatie_key").Value, authparams.tmALGwritelevel))
|
||||
{
|
||||
eDelete = true;
|
||||
eEditMulti = true;
|
||||
}
|
||||
return ({eDelete: eDelete, eEditMulti: eEditMulti})
|
||||
}
|
||||
|
||||
function fnrowFlexParams(oRs)
|
||||
{
|
||||
var ter_key = oRs("alg_terreinsector_key").Value;
|
||||
var this_alg = alg.func_enabled(ter_key, "T");
|
||||
|
||||
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
|
||||
return flexParams;
|
||||
}
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -145,6 +123,7 @@ function terrein_list(pautfunction, params)
|
||||
</head>
|
||||
<body id="listbody">
|
||||
<%
|
||||
var flexParams = alg.alg_onroerendgoed_flex_params("T");
|
||||
var sqln = "SELECT g.alg_terreinsector_key"
|
||||
+ " , g.alg_locatie_key"
|
||||
+ " , l.alg_locatie_omschrijving"
|
||||
@@ -158,6 +137,14 @@ function terrein_list(pautfunction, params)
|
||||
+ " , (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = prs_perslid_key_verantw2) perslid_resp2"
|
||||
+ " , g.alg_srtterreinsector_key"
|
||||
+ " , " + lcl.xsqla('s.alg_srtterreinsec_omschrijving', 's.alg_srtterreinsector_key')
|
||||
+ " , (SELECT MAX(t.fac_tracking_datum)"
|
||||
+ " FROM fac_tracking t"
|
||||
+ " , fac_srtnotificatie sn"
|
||||
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
|
||||
+ " AND t.fac_tracking_refkey = g.alg_terreinsector_key"
|
||||
+ " AND sn.fac_srtnotificatie_xmlnode = 'terreinsector'"
|
||||
+ " ) recentdatum"
|
||||
+ flexParams.sql
|
||||
+ " FROM alg_v_aanwezigterreinsector g"
|
||||
+ " , alg_locatie l"
|
||||
+ " , alg_srtterreinsector s"
|
||||
@@ -212,6 +199,79 @@ function terrein_list(pautfunction, params)
|
||||
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
|
||||
}
|
||||
|
||||
/**********************************
|
||||
* Callback functies ResultsetTable
|
||||
*********************************/
|
||||
var recent = new Date();
|
||||
|
||||
function fnrowActionEnabler(oRs) // klopt dit voor terreinsector?
|
||||
{
|
||||
var eDelete = false;
|
||||
var eEditMulti = false;
|
||||
|
||||
if (alg.canWriteLocatie(oRs("alg_locatie_key").Value, authparams.tmALGwritelevel))
|
||||
{
|
||||
eDelete = true;
|
||||
eEditMulti = true;
|
||||
}
|
||||
return ({eDelete: eDelete, eEditMulti: eEditMulti})
|
||||
}
|
||||
|
||||
function fnrowClass(oRs) // identiek aan de andere niveaus
|
||||
{
|
||||
var lclass = "";
|
||||
// Tracking: hoe lang geleden voor het laatst gewijzigd?
|
||||
if (oRs.Fields("recentdatum").Value != null)
|
||||
{
|
||||
var ltrackdate1 = new Date();
|
||||
var ltrackdate10 = new Date();
|
||||
var ltrackdate100 = new Date();
|
||||
var alg_onrgoed_recent = S("alg_onrgoed_recent");
|
||||
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
|
||||
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
|
||||
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
|
||||
|
||||
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
|
||||
if (fac_recent > ltrackdate1)
|
||||
{
|
||||
lclass += " updated";
|
||||
}
|
||||
else if (fac_recent > ltrackdate10)
|
||||
{
|
||||
lclass += " updated10";
|
||||
}
|
||||
else if (fac_recent > ltrackdate100)
|
||||
{
|
||||
lclass += " updated100";
|
||||
}
|
||||
}
|
||||
return lclass;
|
||||
}
|
||||
|
||||
function fnrowFlexParams(oRs)
|
||||
{
|
||||
var ter_key = oRs("alg_terreinsector_key").Value;
|
||||
var this_alg = alg.func_enabled(ter_key, "T");
|
||||
|
||||
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
|
||||
return flexParams;
|
||||
}
|
||||
|
||||
function fncolFlexBijlagen(oRs)
|
||||
{
|
||||
var flexval = oRs("flex").Value;
|
||||
var alg_key = oRs("alg_terreinsector_key").Value;
|
||||
var result = ( flexval
|
||||
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
|
||||
: ""
|
||||
);
|
||||
if (flexParams.bijlageflex)
|
||||
{
|
||||
result += alg.alg_onroerendgoed_flex_bijlagen("T", alg_key);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({sql:sqln,
|
||||
keyColumn: "alg_terreinsector_key",
|
||||
ID: "algtable",
|
||||
@@ -219,6 +279,7 @@ function terrein_list(pautfunction, params)
|
||||
showAll: showall,
|
||||
rowActionEnabler: fnrowActionEnabler,
|
||||
rowData: fnrowData,
|
||||
rowClass: fnrowClass,
|
||||
outputmode: outputmode,
|
||||
flexModule: "ALG",
|
||||
flexId: "alg_terreinsector_key",
|
||||
@@ -241,6 +302,8 @@ function terrein_list(pautfunction, params)
|
||||
rst.addColumn(new Column({caption: L("lcl_estate_terreinsector_man_oppervlak"), content: "alg_terreinsector_oppervlak"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_estate_terreinsector_man_omtrek"), content: "alg_terreinsector_omtrek"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_alg_vervaldatum"), content: "alg_terreinsector_vervaldatum", datatype: "date"}));
|
||||
if (flexParams.anyflex)
|
||||
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
|
||||
|
||||
rst.addAction({ action: "terreinEdit", caption: L("lcl_edit"), isDefault: true});
|
||||
rst.addAction({ action: "terreinEditMulti", caption: L("lcl_alg_multi_edit"), enabler: "eEditMulti", single:false, multi: true, multiOnce: true});
|
||||
|
||||
@@ -16,20 +16,8 @@
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins:["jQuery"] });
|
||||
|
||||
|
||||
var cnt_full = getQParamInt("cnt_full", 1);
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var parent_key = oRs("alg_gebouw_key").value;
|
||||
var detail_key = oRs("alg_verdieping_key").value;
|
||||
var key = oRs("alg_verdieping_key").value;
|
||||
var oms = oRs("alg_verdieping_omschrijving").value
|
||||
|
||||
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
|
||||
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
%>
|
||||
|
||||
<script type="text/javascript">
|
||||
@@ -96,27 +84,6 @@ function verdiepingen_list(pautfunction, params)
|
||||
var bld_key_arr = params.bld_key_arr;
|
||||
var lvl_key_arr = params.lvl_key_arr;
|
||||
var chkgeb = params.chkgeb;
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
var eDelete = false;
|
||||
var eEditMulti = false;
|
||||
if (alg.canWriteVerdieping(oRs("alg_verdieping_key").value, authparams.mALGwritelevel))
|
||||
{
|
||||
eDelete = true;
|
||||
eEditMulti = true;
|
||||
}
|
||||
return ({eDelete: eDelete, eEditMulti: eEditMulti})
|
||||
}
|
||||
|
||||
function fnrowFlexParams(oRs)
|
||||
{
|
||||
var ver_key = oRs("alg_verdieping_key").Value;
|
||||
var this_alg = alg.func_enabled(ver_key, "V");
|
||||
|
||||
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
|
||||
return flexParams;
|
||||
}
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -125,6 +92,7 @@ function verdiepingen_list(pautfunction, params)
|
||||
</head>
|
||||
<body id="listbody">
|
||||
<%
|
||||
var flexParams = alg.alg_onroerendgoed_flex_params("V");
|
||||
var sqln = "SELECT v.alg_verdieping_key, "
|
||||
+ " v.alg_gebouw_key, "
|
||||
+ " g.alg_locatie_key, "
|
||||
@@ -133,6 +101,14 @@ function verdiepingen_list(pautfunction, params)
|
||||
+ " g.alg_gebouw_naam, "
|
||||
+ " v.alg_verdieping_omschrijving, "
|
||||
+ " v.alg_verdieping_code "
|
||||
+ " , (SELECT MAX(t.fac_tracking_datum)"
|
||||
+ " FROM fac_tracking t"
|
||||
+ " , fac_srtnotificatie sn"
|
||||
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
|
||||
+ " AND t.fac_tracking_refkey = v.alg_verdieping_key"
|
||||
+ " AND sn.fac_srtnotificatie_xmlnode = 'verdieping'"
|
||||
+ " ) recentdatum"
|
||||
+ flexParams.sql
|
||||
+ " FROM alg_v_aanwezigverdieping v, "
|
||||
+ " alg_gebouw g, "
|
||||
+ " alg_locatie l "
|
||||
@@ -184,6 +160,90 @@ function verdiepingen_list(pautfunction, params)
|
||||
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
|
||||
}
|
||||
|
||||
/**********************************
|
||||
* Callback functies ResultsetTable
|
||||
*********************************/
|
||||
var recent = new Date();
|
||||
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var parent_key = oRs("alg_gebouw_key").value;
|
||||
var detail_key = oRs("alg_verdieping_key").value;
|
||||
var key = oRs("alg_verdieping_key").value;
|
||||
var oms = oRs("alg_verdieping_omschrijving").value
|
||||
|
||||
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
|
||||
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
function fnrowClass(oRs) // identiek aan de andere niveaus
|
||||
{
|
||||
var lclass = "";
|
||||
// Tracking: hoe lang geleden voor het laatst gewijzigd?
|
||||
if (oRs.Fields("recentdatum").Value != null)
|
||||
{
|
||||
var ltrackdate1 = new Date();
|
||||
var ltrackdate10 = new Date();
|
||||
var ltrackdate100 = new Date();
|
||||
var alg_onrgoed_recent = S("alg_onrgoed_recent");
|
||||
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
|
||||
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
|
||||
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
|
||||
|
||||
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
|
||||
if (fac_recent > ltrackdate1)
|
||||
{
|
||||
lclass += " updated";
|
||||
}
|
||||
else if (fac_recent > ltrackdate10)
|
||||
{
|
||||
lclass += " updated10";
|
||||
}
|
||||
else if (fac_recent > ltrackdate100)
|
||||
{
|
||||
lclass += " updated100";
|
||||
}
|
||||
}
|
||||
return lclass;
|
||||
}
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
var eDelete = false;
|
||||
var eEditMulti = false;
|
||||
if (alg.canWriteVerdieping(oRs("alg_verdieping_key").value, authparams.mALGwritelevel))
|
||||
{
|
||||
eDelete = true;
|
||||
eEditMulti = true;
|
||||
}
|
||||
return ({eDelete: eDelete, eEditMulti: eEditMulti})
|
||||
}
|
||||
|
||||
function fnrowFlexParams(oRs)
|
||||
{
|
||||
var ver_key = oRs("alg_verdieping_key").Value;
|
||||
var this_alg = alg.func_enabled(ver_key, "V");
|
||||
|
||||
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
|
||||
return flexParams;
|
||||
}
|
||||
|
||||
function fncolFlexBijlagen(oRs)
|
||||
{
|
||||
var flexval = oRs("flex").Value;
|
||||
var alg_key = oRs("alg_verdieping_key").Value;
|
||||
var result = ( flexval
|
||||
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
|
||||
: ""
|
||||
);
|
||||
if (flexParams.bijlageflex)
|
||||
{
|
||||
result += alg.alg_onroerendgoed_flex_bijlagen("V", alg_key);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({sql:sqln,
|
||||
keyColumn: "alg_verdieping_key",
|
||||
ID: "algtable",
|
||||
@@ -195,6 +255,7 @@ function verdiepingen_list(pautfunction, params)
|
||||
flexParams: fnrowFlexParams,
|
||||
filterParams: params,
|
||||
rowData: fnrowData,
|
||||
rowClass: fnrowClass,
|
||||
rowActionEnabler: fnrowActionEnabler,
|
||||
buttons: addButton
|
||||
});
|
||||
@@ -204,6 +265,8 @@ function verdiepingen_list(pautfunction, params)
|
||||
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_name"), content: "alg_gebouw_naam"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_estate_verdieping_man_code"), content: "alg_verdieping_code"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_estate_verdieping_man_descr"), content: "alg_verdieping_omschrijving" }));
|
||||
if (flexParams.anyflex)
|
||||
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
|
||||
|
||||
rst.addAction({ action: "verdiepingEdit", caption: L("lcl_edit"), isDefault: true});
|
||||
rst.addAction({ action: "verdiepingEditMulti", caption: L("lcl_alg_multi_edit"), enabler: "eEditMulti", single:false, multi: true, multiOnce: true});
|
||||
|
||||
@@ -58,10 +58,10 @@ function API_func(APIname)
|
||||
file: oRs("fac_api_filepath").Value,
|
||||
prs_perslid_key: user_key,
|
||||
loglevel: oRs("fac_api_loglevel").Value,
|
||||
errorhandling: oRs("fac_api_errorhandling").Value,
|
||||
usrrap_key: oRs("fac_usrrap_key").Value,
|
||||
stylesheet: oRs("fac_api_stylesheet").Value,
|
||||
stylesheet_out: oRs("fac_api_stylesheet_out").Value,
|
||||
import_app_key: oRs("fac_import_app_key").Value
|
||||
stylesheet_out: oRs("fac_api_stylesheet_out").Value
|
||||
};
|
||||
|
||||
if (this.apidata.loglevel > 1) // Zet maar op 3 als je HTML logging wilt
|
||||
@@ -106,7 +106,7 @@ API_func.prototype.error = function (msg)
|
||||
Response.Write(safe.html(msg));
|
||||
// Op productie zie je bovenstaande Response.Write ook niet terug in Fiddler omdat
|
||||
// 'detailed error messages' uit staat. Daarom ook maar loggen voor het gemak.
|
||||
__DoLog(safe.html(msg), "ff0000");
|
||||
__DoLog(safe.html(msg), "#ff0000");
|
||||
}
|
||||
Response.End;
|
||||
}
|
||||
@@ -116,11 +116,13 @@ API_func.prototype.error = function (msg)
|
||||
function RequestJSON(loglevel)
|
||||
{
|
||||
var jvraag;
|
||||
if(Request.TotalBytes > 0)
|
||||
if(Request.TotalBytes == 0)
|
||||
{
|
||||
var lngBytesCount = Request.TotalBytes;
|
||||
jvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
|
||||
return { error: "Empty body posted" }
|
||||
}
|
||||
|
||||
var lngBytesCount = Request.TotalBytes;
|
||||
jvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
|
||||
__Log("Vraag: " + jvraag);
|
||||
try
|
||||
{
|
||||
@@ -139,13 +141,16 @@ function RequestJSON(loglevel)
|
||||
function RequestXML(API)
|
||||
{
|
||||
var xvraag;
|
||||
if(Request.TotalBytes > 0)
|
||||
if(Request.TotalBytes == 0)
|
||||
{
|
||||
var lngBytesCount = Request.TotalBytes;
|
||||
xvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
|
||||
if (API.apidata.loglevel)
|
||||
__Log2File(xvraag, API.APIname + "_IN");
|
||||
return { error: "Empty body posted" }
|
||||
}
|
||||
|
||||
var lngBytesCount = Request.TotalBytes;
|
||||
xvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
|
||||
if (API.apidata.loglevel)
|
||||
__Log2File(xvraag, API.APIname + "_IN");
|
||||
|
||||
__Log("Request body: " + xvraag);
|
||||
try
|
||||
{
|
||||
@@ -170,7 +175,11 @@ function styledRequestXML(API)
|
||||
var parsed = RequestXML(API);
|
||||
if (parsed.error)
|
||||
{
|
||||
__DoLog( "Error loading XML: " + parsed.error, "#ff0000");
|
||||
var method = String(Request.ServerVariables("REQUEST_METHOD"));
|
||||
if (method != "POST") // gebeurt nog wel eens
|
||||
{
|
||||
__DoLog( "Weird: expected method POST, got " + method);
|
||||
}
|
||||
API.error("Error loading XML: " + parsed.error);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,20 +28,6 @@
|
||||
|
||||
var API = new API_func();
|
||||
|
||||
// Mareon specifieke code
|
||||
// In APPL\MARX\export\BCTAdapter.asp zijn mar_queue_key en mar_queue_requestid
|
||||
// aan de callbackurl voor API=FIN_FACTUUR_PDF toegevoegd.
|
||||
// Die gebruiken we hier om te registreren dat de factuur blijkbaar goed ingescand is
|
||||
var mar_queue_requestid = getQParam("mar_queue_requestid", "");
|
||||
if (mar_queue_requestid)
|
||||
{
|
||||
var sql = "UPDATE mar_factuur_queue"
|
||||
+ " SET mar_factuur_queue_replied = SYSDATE"
|
||||
+ " WHERE mar_factuur_queue_key = " + getQParamInt("mar_queue_key")
|
||||
+ " AND mar_factuur_queue_requestid = " + safe.quoted_sql(mar_queue_requestid);
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
|
||||
var bytes = Request.TotalBytes;
|
||||
if (bytes <= 0) // Chunked encoding geeft -1
|
||||
{
|
||||
@@ -55,7 +41,16 @@
|
||||
}
|
||||
|
||||
"Error 'Operation not Allowed' op de volgende regel betekent meestal dat de upload te groot is";
|
||||
var xmlResp = api_gen_import(API, Request.BinaryRead(bytes));
|
||||
var result = api_gen_import(API, Request.BinaryRead(bytes));
|
||||
xmlResp = result.xmldom;
|
||||
|
||||
if (API.apidata.errorhandling == 1)
|
||||
{
|
||||
if (result.anyError) // een 'E' in imp_log
|
||||
{
|
||||
Response.Status = '400 Bad Request';
|
||||
}
|
||||
}
|
||||
|
||||
Response.ContentType = "text/xml";
|
||||
if (API.apidata.stylesheet_out)
|
||||
@@ -66,5 +61,6 @@
|
||||
else
|
||||
Response.Write(xmlResp.xml);
|
||||
|
||||
|
||||
ASPPAGE_END();
|
||||
%>
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
Context: Ook vanuit APPL\MARX\API_mareon_opdracht.asp
|
||||
*/
|
||||
|
||||
// result: { xmldom: object, anyError: boolean }
|
||||
function api_gen_import(API, data, charset) //
|
||||
{
|
||||
var fileStream = Server.CreateObject("ADODB.Stream");
|
||||
@@ -72,10 +73,12 @@ function api_gen_import(API, data, charset) //
|
||||
|
||||
if (import_key > 0)
|
||||
{
|
||||
var errorCount = 0; // hoeveel errors?
|
||||
var elementDetails = xmlResp.createElement("details");
|
||||
var sql = "SELECT imp_log_status,"
|
||||
+ " imp_log_omschrijving,"
|
||||
+ " imp_log_hint"
|
||||
+ " imp_log_hint,"
|
||||
+ " imp_log_status"
|
||||
+ " FROM imp_log"
|
||||
+ " WHERE fac_import_key = " + import_key
|
||||
+ " AND imp_log_status <> 'I'";
|
||||
@@ -101,6 +104,15 @@ function api_gen_import(API, data, charset) //
|
||||
elementHint.appendChild(elementHintText);
|
||||
elementDetail.appendChild(elementHint);
|
||||
}
|
||||
if (oRs("imp_log_status").Value != null )
|
||||
{
|
||||
if (oRs("imp_log_status").Value == 'E' || oRs("imp_log_status").Value == 'F')
|
||||
errorCount ++
|
||||
var elementStatus = xmlResp.createElement("status");
|
||||
var elementStatusText = xmlResp.createTextNode(oRs("imp_log_status").Value);
|
||||
elementStatus.appendChild(elementStatusText);
|
||||
elementDetail.appendChild(elementStatus);
|
||||
}
|
||||
elementDetails.appendChild(elementDetail);
|
||||
oRs.moveNext();
|
||||
}
|
||||
@@ -132,6 +144,6 @@ function api_gen_import(API, data, charset) //
|
||||
}
|
||||
|
||||
xmlResp.appendChild(FCLTElement);
|
||||
return xmlResp;
|
||||
return { xmldom: xmlResp, anyError: errorCount > 0 };
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -39,25 +39,35 @@ function abortRejectMail(tekst, maillog, optionalColor)
|
||||
function stripHtml(html)
|
||||
{
|
||||
html = (html||"");
|
||||
html = html.replace(/([=][\n])/g, ""); // Een = en crlf aan het einde is een afgebroken regel. Deze weer aan elkaar zetten.
|
||||
html = stripStyle(html);
|
||||
// verwijder html-tags
|
||||
html = html.replace(/(<br\s*\/?>)/ig,"\n\r");
|
||||
html = html.replace(/(<([^>]+)>)/ig,"");
|
||||
// naar spatie
|
||||
html = html.replace(/\ \;/ig, " ");
|
||||
//verwijder leading spaces and tabs
|
||||
html = html.replace(/^[ \t]+/gm,"");
|
||||
// verwijder lege regels
|
||||
html = html.replace(/(\n\r)+/g,"\n\r");
|
||||
// zet een regel die begint met : maar achter de vorige
|
||||
html = html.replace(/(\n\r:)/g,":");
|
||||
html = stripCharcodes(html);
|
||||
return html;
|
||||
}
|
||||
|
||||
function stripStyle(html)
|
||||
{
|
||||
html = (html||"");
|
||||
html = html.replace(/<style>[^<]*<\/style>/igm, "");
|
||||
html = html.replace(/(<style[^<]*<\/style>)/igm, "");
|
||||
return html;
|
||||
}
|
||||
|
||||
function stripCharcodes(html)
|
||||
{
|
||||
html = (html||"");
|
||||
// Vervang lettercodes door het teken zelf.
|
||||
html = html.replace(/(&#x(\d|[a-f])+;)/ig
|
||||
, function(a){
|
||||
return String.fromCharCode(parseInt(a.substr(3,a.length-4), 16));
|
||||
}
|
||||
);
|
||||
html = html.replace(/( )/ig, " "); // naar spatie
|
||||
html = html.replace(/^[ \t]+/gm,""); // verwijder leading spaces and tabs
|
||||
html = html.replace(/([\n\r])+/g,"\n"); // verwijder lege regels
|
||||
html = html.replace(/([\n\r]:)/g,":"); // zet een regel die begint met : maar achter de vorige
|
||||
return html;
|
||||
}
|
||||
|
||||
@@ -213,6 +223,7 @@ function getEmailSetting(xmlReq, xmlParameters)
|
||||
+ " fac_email_setting_attachpath,"
|
||||
+ " fac_email_setting_attachext,"
|
||||
+ " fac_email_setting_reqattachext,"
|
||||
+ " fac_email_setting_attachmaxkb,"
|
||||
+ " fac_email_setting_loglevel,"
|
||||
+ " prs_perslid_key_auth"
|
||||
+ " FROM fac_email_setting"
|
||||
@@ -230,6 +241,7 @@ function getEmailSetting(xmlReq, xmlParameters)
|
||||
else
|
||||
{ // Er bestaat minimaal 1 fac_email_setting record.
|
||||
var allowedSetting = {};
|
||||
var rejectedAttach = [];
|
||||
var hasRequiredAttachment = false;
|
||||
while (!oRs.eof && !hasRequiredAttachment)
|
||||
{
|
||||
@@ -242,6 +254,7 @@ function getEmailSetting(xmlReq, xmlParameters)
|
||||
required_attachext: oRs("fac_email_setting_reqattachext").Value,
|
||||
prs_perslid_key_auth: oRs("prs_perslid_key_auth").Value,
|
||||
attachpath: oRs("fac_email_setting_attachpath").Value,
|
||||
attach_maxkb: oRs("fac_email_setting_attachmaxkb").Value,
|
||||
fromMode: oRs("fac_email_setting_frommode").Value,
|
||||
from: oRs("fac_email_setting_from").Value,
|
||||
loglevel: oRs("fac_email_setting_loglevel").Value
|
||||
@@ -260,7 +273,14 @@ function getEmailSetting(xmlReq, xmlParameters)
|
||||
emlSetting.requiredFound = attachResult.requiredFound;
|
||||
hasRequiredAttachment = attachResult.requiredFound;
|
||||
allowedSetting = emlSetting;
|
||||
delete result.rejectMail;
|
||||
if (attachResult.rejectedFiles.tekst != "")
|
||||
{
|
||||
result.rejectMail = attachResult.rejectedFiles;
|
||||
}
|
||||
else
|
||||
{
|
||||
delete result.rejectMail;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -297,11 +317,13 @@ function emailAction(emlSetting, xmlParam, resultParam)
|
||||
"BEGIN " + emlSetting.action + " (" + safe.quoted_sql(emlSetting.theFrom) + ","
|
||||
+ safe.quoted_sql(xmlParam.toAddr) + ","
|
||||
+ safe.quoted_sql(xmlParam.Subject || L("lcl_fac_hmail_no_subject")) + "," // de actions kunnen slecht tegen lege subject
|
||||
+ safe.quoted_sql(v_body, 3990) + "," // HSLE#33588 10 karakters speling
|
||||
+ "?, "
|
||||
+ safe.quoted_sql(xmlParam.sessionId) + ","
|
||||
+ emlSetting.key + ");"
|
||||
+ "END;";
|
||||
Oracle.Execute(actionsql);
|
||||
|
||||
var oparams = [ { typ: adLongVarChar, dir: adParamInput, val: v_body.substr(0, S("mld_melding_oms_maxlen")==4000?3990:S("mld_melding_oms_maxlen")) } ];
|
||||
Oracle.ExecuteParam(actionsql, oparams);
|
||||
|
||||
// Nog iets specifieks terug te melden voor de logging?
|
||||
var sql = "SELECT fac_result_waarde"
|
||||
@@ -399,6 +421,7 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
|
||||
{
|
||||
var requiredFound = false;
|
||||
var allowedFiles = [];
|
||||
var rejectedFiles = { tekst: [], maillog: []};
|
||||
|
||||
var Attachments = xmlReq.getElementsByTagName("attachment");
|
||||
for (var i=0; i < Attachments.length; i++)
|
||||
@@ -406,6 +429,10 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
|
||||
var safefilename = safe.filename(XMLval(Attachments[i], "filename", i));
|
||||
var extension = safefilename.substr(safefilename.lastIndexOf("."));
|
||||
var attsize = parseInt(XMLval(Attachments[i], "size", i), 10);
|
||||
if (emlSetting.attach_maxkb && emlSetting.attach_maxkb > 0) {
|
||||
var filesize_MB = (attsize / 1024 / 1024).toFixed(3); // attsize is in bytes. Maak er MB van.
|
||||
var maxsize_MB = (emlSetting.attach_maxkb / 1024).toFixed(3); // attach_maxkb in in kB. Maak er MB van.
|
||||
}
|
||||
if (safefilename == S("fac_logo_file"))
|
||||
{ // Waarschijnlijk een FACILITOR bon gereply'd
|
||||
__Log("Bijlage {0} genegeerd.".format(safefilename));
|
||||
@@ -414,6 +441,13 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
|
||||
{
|
||||
__Log("Bijlage {0} genegeerd, te klein met {1} bytes.".format(safefilename, attsize));
|
||||
}
|
||||
else if ( emlSetting.attach_maxkb && emlSetting.attach_maxkb > 0 // Er is een maximum bestandsgrootte ingesteld
|
||||
&& parseFloat(filesize_MB) > parseFloat(maxsize_MB)) // En die is overschreden
|
||||
{
|
||||
__Log(L("fac_email_setting_err1").format(safefilename, filesize_MB, maxsize_MB));
|
||||
rejectedFiles.tekst.push(L("fac_email_setting_err1").format(safefilename, filesize_MB, maxsize_MB));
|
||||
rejectedFiles.maillog.push(("Bijlage {0} te groot: {1} bytes").format(safefilename, attsize));
|
||||
}
|
||||
else if (!new RegExp(S("flexallowedext"), "ig").test(safefilename))
|
||||
{ // Niet ondersteunde bestandstype
|
||||
__DoLog("Onbekende extensie e-mail bijlage: {0} ({1} bytes) van {2}. Bestand is niet opgeslagen.".format(safefilename, attsize, emlSetting.theFrom));
|
||||
@@ -435,7 +469,11 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
|
||||
}
|
||||
|
||||
var attachResult = { requiredFound: requiredFound,
|
||||
allowedFiles: allowedFiles
|
||||
allowedFiles: allowedFiles,
|
||||
rejectedFiles: { tekst: rejectedFiles.tekst.join("\n"),
|
||||
maillog: rejectedFiles.maillog.join("\n"),
|
||||
optionalColor: "#ff4"
|
||||
}
|
||||
};
|
||||
return attachResult;
|
||||
}
|
||||
@@ -564,7 +602,6 @@ function saveAttachments(xmlReq, emlSetting, xmlParam, resultParam)
|
||||
}
|
||||
result.attachments = safeFiles;
|
||||
}
|
||||
__Log(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -611,7 +648,7 @@ var xmlReq = parsed.xml;
|
||||
var xmlParameters = getXml(xmlReq);
|
||||
var emlResult = getEmailSetting(xmlReq, xmlParameters);
|
||||
|
||||
if (emlResult.emlSetting)
|
||||
if (emlResult.emlSetting && !emlResult.rejectMail)
|
||||
{
|
||||
var emlSetting = emlResult.emlSetting;
|
||||
if (emlSetting.loglevel > 0)
|
||||
|
||||
@@ -200,7 +200,6 @@ for (i = 0; i < meldingen.length; i++)
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (einddatum != null)
|
||||
{
|
||||
var mld_datum;
|
||||
@@ -273,13 +272,7 @@ for (i = 0; i < meldingen.length; i++)
|
||||
} // einde update
|
||||
else if (meldaction == "insert")
|
||||
{
|
||||
|
||||
tsql = "SELECT 1"
|
||||
+ " FROM mld_stdmelding sm"
|
||||
+ " WHERE sm.mld_stdmelding_key = " + (stdmld_key || -1)
|
||||
+ " AND sm.mld_stdmelding_verwijder IS NULL";
|
||||
var oRs = Oracle.Execute(tsql);
|
||||
if (oRs.eof)
|
||||
if (!validStdmld(stdmld_key))
|
||||
{
|
||||
resultcode = 3;
|
||||
resulttekst = "Undefined stdmelding";
|
||||
@@ -340,52 +333,57 @@ for (i = 0; i < meldingen.length; i++)
|
||||
}
|
||||
|
||||
tsql = "SELECT alg_locatie_key "
|
||||
+ " FROM alg_v_aanweziglocatie"
|
||||
+ " WHERE alg_locatie_code="+ safe.quoted_sql(meldloc);
|
||||
var oRs = Oracle.Execute(tsql);
|
||||
if (!oRs.eof)
|
||||
+ " FROM alg_v_aanweziglocatie"
|
||||
+ " WHERE alg_locatie_code="+ safe.quoted_sql(meldloc);
|
||||
var oRs_L = Oracle.Execute(tsql);
|
||||
if (!oRs_L.eof)
|
||||
{
|
||||
alglevel_ok = alglevel_ok || stdmld_niveau == "L";
|
||||
locatie_key = oRs("alg_locatie_key").Value;
|
||||
locatie_key = oRs_L("alg_locatie_key").Value;
|
||||
fields.push({ dbs: "mld_alg_locatie_key", typ: "key", val: locatie_key });
|
||||
|
||||
tsql = "SELECT alg_gebouw_key "
|
||||
+ " FROM alg_v_aanweziggebouw"
|
||||
+ " WHERE alg_locatie_key ="+ locatie_key
|
||||
+ " AND alg_gebouw_code="+ safe.quoted_sql(meldgeb);
|
||||
var oRs = Oracle.Execute(tsql);
|
||||
if (!oRs.eof)
|
||||
+ " FROM alg_v_aanweziggebouw"
|
||||
+ " WHERE alg_locatie_key ="+ locatie_key
|
||||
+ " AND alg_gebouw_code="+ safe.quoted_sql(meldgeb);
|
||||
var oRs_G = Oracle.Execute(tsql);
|
||||
if (!oRs_G.eof)
|
||||
{
|
||||
alglevel_ok = alglevel_ok || stdmld_niveau == "G";
|
||||
plaats_key = oRs("alg_gebouw_key").Value;
|
||||
plaats_key = oRs_G("alg_gebouw_key").Value;
|
||||
|
||||
tsql = "SELECT alg_verdieping_key "
|
||||
+ " FROM alg_v_aanwezigverdieping"
|
||||
+ " WHERE alg_gebouw_key ="+ plaats_key
|
||||
+ " AND alg_verdieping_code="+ safe.quoted_sql(meldver);
|
||||
var oRs = Oracle.Execute(tsql);
|
||||
if (!oRs.eof)
|
||||
+ " FROM alg_v_aanwezigverdieping"
|
||||
+ " WHERE alg_gebouw_key ="+ plaats_key
|
||||
+ " AND alg_verdieping_code="+ safe.quoted_sql(meldver);
|
||||
var oRs_V = Oracle.Execute(tsql);
|
||||
if (!oRs_V.eof)
|
||||
{
|
||||
alglevel_ok = alglevel_ok || stdmld_niveau == "V";
|
||||
plaats_key = oRs("alg_verdieping_key").Value;
|
||||
plaats_key = oRs_V("alg_verdieping_key").Value;
|
||||
|
||||
tsql = "SELECT alg_ruimte_key "
|
||||
+ " FROM alg_v_aanwezigruimte"
|
||||
+ " WHERE alg_verdieping_key ="+ plaats_key
|
||||
+ " AND alg_ruimte_nr="+ safe.quoted_sql(meldrnr);
|
||||
var oRs = Oracle.Execute(tsql);
|
||||
if (!oRs.eof) {
|
||||
+ " FROM alg_v_aanwezigruimte"
|
||||
+ " WHERE alg_verdieping_key ="+ plaats_key
|
||||
+ " AND alg_ruimte_nr="+ safe.quoted_sql(meldrnr);
|
||||
var oRs_R = Oracle.Execute(tsql);
|
||||
if (!oRs_R.eof) {
|
||||
alglevel_ok = alglevel_ok || stdmld_niveau == "R";
|
||||
plaats_key = oRs("alg_ruimte_key").Value;
|
||||
plaats_key = oRs_R("alg_ruimte_key").Value;
|
||||
}
|
||||
oRs_R.Close();
|
||||
}
|
||||
oRs_V.Close();
|
||||
}
|
||||
oRs_G.Close();
|
||||
|
||||
if (plaats_key != -1)
|
||||
{
|
||||
fields.push({ dbs: "mld_alg_onroerendgoed_keys", typ: "key", val: plaats_key });
|
||||
}
|
||||
}
|
||||
oRs_L.Close();
|
||||
|
||||
if (!alglevel_ok)
|
||||
{
|
||||
resultcode = 5;
|
||||
@@ -413,11 +411,10 @@ for (i = 0; i < meldingen.length; i++)
|
||||
var ins_srtdiscipline_kk = (ins_srtdisc_kk & 1) == 1;
|
||||
|
||||
var kpn_key = user.prs_kostenplaats_key() || -1;
|
||||
if (meld_kpn && meld_kpn != "")
|
||||
if ((kpn_key == -1) || (meld_kpn && meld_kpn != ""))
|
||||
{
|
||||
var tempKpn = getKpn(meld_kpn);
|
||||
if (tempKpn != -1)
|
||||
kpn_key = tempKpn;
|
||||
kpn_key = (tempKpn != -1 ? tempKpn : stdm_info.kp_key);
|
||||
}
|
||||
|
||||
if (kpnverplicht && kpn_key < 0)
|
||||
@@ -470,7 +467,10 @@ for (i = 0; i < meldingen.length; i++)
|
||||
upsertKenmerk(mldkenmerken, stdmld_key, mld_key);
|
||||
|
||||
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze melding.
|
||||
// En nog maar even de aanname dat een extern systeem niet aan workflows/ktos doet?
|
||||
|
||||
// Handle workflow actions for new call:
|
||||
// Let wel: alleen initiele stap ondersteund, niet latere vervolgstappen bij statuswijzigingen!
|
||||
mld.nextworkflowstep(mld_key, -1); // -1 = initial (the originating call)
|
||||
|
||||
// Klantspecifieke check functie (hookfunction) voor de invoer
|
||||
var pResult = new HookResult();
|
||||
@@ -513,35 +513,52 @@ for (i = 0; i < meldingen.length; i++)
|
||||
} // end for
|
||||
// Alle melding-nodes zijn behandeld.
|
||||
|
||||
|
||||
function validStdmld(stdmld_key)
|
||||
{
|
||||
var tsql = "SELECT COUNT(*) aantal"
|
||||
+ " FROM mld_stdmelding sm"
|
||||
+ " WHERE sm.mld_stdmelding_key = " + (stdmld_key || -1)
|
||||
+ " AND sm.mld_stdmelding_verwijder IS NULL";
|
||||
var oRs = Oracle.Execute(tsql);
|
||||
var geldig = (oRs("aantal").Value == 1);
|
||||
oRs.Close();
|
||||
return geldig;
|
||||
}
|
||||
|
||||
function getKpn(meld_kpn)
|
||||
{
|
||||
var kpn_key = -1;
|
||||
if (!meld_kpn)
|
||||
return -1;
|
||||
{
|
||||
var temp_sql = "SELECT ''"
|
||||
+ " FROM prs_perslidkostenplaats pkp"
|
||||
+ " WHERE pkp.prs_perslidkostenplaats_boeken = 1"
|
||||
+ " AND (pkp.prs_kostenplaats_key = kp.prs_kostenplaats_key"
|
||||
+ " OR pkp.prs_kostenplaats_key IS NULL)" // Mandated for all
|
||||
+ " AND pkp.prs_perslid_key = " + perslid_key;
|
||||
|
||||
var temp_sql = "SELECT ''"
|
||||
+ " FROM prs_perslidkostenplaats pkp"
|
||||
+ " WHERE pkp.prs_perslidkostenplaats_boeken = 1"
|
||||
+ " AND (pkp.prs_kostenplaats_key = kp.prs_kostenplaats_key"
|
||||
+ " OR pkp.prs_kostenplaats_key IS NULL)" // Mandated for all
|
||||
+ " AND pkp.prs_perslid_key = " + perslid_key;
|
||||
temp_sql = "SELECT kp.prs_kostenplaats_key"
|
||||
+ " FROM prs_kostenplaats kp"
|
||||
+ " WHERE kp.prs_kostenplaats_verwijder IS NULL"
|
||||
+ " AND (kp.prs_kostenplaats_begin IS NULL"
|
||||
+ " OR kp.prs_kostenplaats_begin < SYSDATE)"
|
||||
+ " AND (kp.prs_kostenplaats_eind IS NULL"
|
||||
+ " OR kp.prs_kostenplaats_eind > SYSDATE)"
|
||||
+ " AND EXISTS ("
|
||||
+ temp_sql
|
||||
+ " )"
|
||||
+ " AND kp.prs_kostenplaats_upper = " + safe.quoted_sql_upper(meld_kpn); // Unique
|
||||
|
||||
temp_sql = "SELECT kp.prs_kostenplaats_key"
|
||||
+ " FROM prs_kostenplaats kp"
|
||||
+ " WHERE kp.prs_kostenplaats_verwijder IS NULL"
|
||||
+ " AND (kp.prs_kostenplaats_begin IS NULL"
|
||||
+ " OR kp.prs_kostenplaats_begin < SYSDATE)"
|
||||
+ " AND (kp.prs_kostenplaats_eind IS NULL"
|
||||
+ " OR kp.prs_kostenplaats_eind > SYSDATE)"
|
||||
+ " AND EXISTS ("
|
||||
+ temp_sql
|
||||
+ " )"
|
||||
+ " AND kp.prs_kostenplaats_upper = " + safe.quoted_sql_upper(meld_kpn); // Unique
|
||||
var oRs = Oracle.Execute(temp_sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
kpn_key = oRs("prs_kostenplaats_key").Value;
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
var oRs = Oracle.Execute(temp_sql);
|
||||
if (!oRs.EoF)
|
||||
return oRs("prs_kostenplaats_key").Value;
|
||||
oRs.Close();
|
||||
return -1;
|
||||
return kpn_key;
|
||||
}
|
||||
|
||||
function getAfd(meld_afd)
|
||||
@@ -716,6 +733,14 @@ function upsertKenmerk(kenmerken, stdmld_key, mld_key)
|
||||
|
||||
xmlResp.appendChild(FCLTElement);
|
||||
|
||||
if (API.apidata.errorhandling == 1)
|
||||
{
|
||||
if (resultcode > 0) // -1 en 0 zijn 'goed'
|
||||
{
|
||||
Response.Status = '400 Bad Request';
|
||||
}
|
||||
}
|
||||
|
||||
Response.ContentType = "text/xml";
|
||||
if (API.apidata.stylesheet)
|
||||
{
|
||||
|
||||
@@ -494,7 +494,13 @@ for (var i = 0; i < opdrachten.length; i++)
|
||||
|
||||
// Dit zijn de wijzigingen, die voeren we alleen uit bij een geldige statuswijziging
|
||||
// of geen statuswijziging
|
||||
if (opdropmerking != null)
|
||||
var canOpmChange = opdraction == "insert" ||
|
||||
this_opdr.canOpmChange &&
|
||||
( S("mld_afhandeling_restrict_edit") == 0 // Hier mag het afhandeling veld altijd aangepast worden
|
||||
|| opdrstatus != null && (oldstatus == 5 || oldstatus == 8) && // En anders alleen bij het afmelden, afwijzen of annuleren
|
||||
( opdrstatus == 'ORDAFM' && this_opdr.canClose // Verifieer dat we gaan (en mogen) afmelden
|
||||
|| opdrstatus == 'ORDCAN' && this_opdr.canCancel)); // Verifieer dat we gaan (en mogen) annuleren
|
||||
if (opdropmerking != null && canOpmChange)
|
||||
{ // opmerking bij de opdracht
|
||||
var new_opm = opdropmerking;
|
||||
if (ORDremark == 5) // Append
|
||||
@@ -539,11 +545,11 @@ for (var i = 0; i < opdrachten.length; i++)
|
||||
}
|
||||
}
|
||||
|
||||
if (opdrkosten != null)
|
||||
if (opdrkosten != null && (opdraction == "insert" || this_opdr.canUrenMatChange))
|
||||
opdr_fields.push({ dbs: "mld_opdr_kosten", typ: "float", val: opdrkosten, track: L("lcl_total_cost") });
|
||||
if (opdruren != null)
|
||||
if (opdruren != null && (opdraction == "insert" || this_opdr.canUrenMatChange))
|
||||
opdr_fields.push({ dbs: "mld_opdr_uren", typ: "float", val: opdruren, track: L("lcl_hours") });
|
||||
if (opdrmateriaal != null)
|
||||
if (opdrmateriaal != null && (opdraction == "insert" || (this_opdr.typeopdr_materiaal < 2 && this_opdr.canUrenMatChange)))
|
||||
opdr_fields.push({ dbs: "mld_opdr_materiaal", typ: "float", val: opdrmateriaal, track: L("lcl_mld_material") });
|
||||
if (opdruurloon != null)
|
||||
opdr_fields.push({ dbs: "mld_opdr_uurloon", typ: "float", val: opdruurloon, track: L("lcl_prs_person_uurloon") });
|
||||
@@ -552,7 +558,7 @@ for (var i = 0; i < opdrachten.length; i++)
|
||||
var formattedID = ins_srtdiscipline_prefix + opdrid;
|
||||
|
||||
var orddat_tracking = "";
|
||||
if (opdrgereed != null)
|
||||
if (opdrgereed != null && (opdraction == "insert" || this_opdr.canDatesChange))
|
||||
{
|
||||
var old_einddatum = mld_opdr.mld_opdr_einddatum;
|
||||
var new_einddatum = XMLtoJsDate(opdrgereed);
|
||||
@@ -567,7 +573,7 @@ for (var i = 0; i < opdrachten.length; i++)
|
||||
|
||||
// Plandatum wordt apart getracked want deze heeft zijn eigen tracking code (ORDPLD)
|
||||
var ordpld_tracking = "";
|
||||
if (plandatum != null)
|
||||
if (plandatum != null && (opdraction == "insert" || this_opdr.canPlanDatesChange))
|
||||
{
|
||||
var new_plandatum;
|
||||
if (plandatum == "")
|
||||
@@ -589,7 +595,7 @@ for (var i = 0; i < opdrachten.length; i++)
|
||||
|
||||
// Plandatum2 wordt apart getracked want deze heeft zijn eigen tracking code (ORDPL2)
|
||||
var ordpl2_tracking = "";
|
||||
if (S("mld_use_plandate2") & 2 && plandatum2 != null)
|
||||
if ((S("mld_use_plandate2") & 2 && plandatum2 != null) && (opdraction == "insert" || this_opdr.canPlanDatesChange))
|
||||
{
|
||||
var new_plandatum2;
|
||||
if (plandatum2 == "")
|
||||
@@ -822,6 +828,7 @@ for (var i = 0; i < opdrachten.length; i++)
|
||||
|
||||
if (newstatus != -1)
|
||||
{
|
||||
add_note(); // zodat we note_key hebben
|
||||
mld.setopdrachtstatus(opdr_key, newstatus, null, note_key);
|
||||
// Hier terugchecken van de status
|
||||
tsql = "SELECT mld_statusopdr_key FROM mld_opdr"
|
||||
@@ -897,8 +904,6 @@ for (var i = 0; i < opdrachten.length; i++)
|
||||
// Zodat die bij de FO weer onder Inbehandeling valt.
|
||||
mld.setmeldingstatus (mld_key, 4); // Geaccepteerd
|
||||
}
|
||||
// else status van de melding niet aanpassen.
|
||||
resultcode = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -911,36 +916,9 @@ for (var i = 0; i < opdrachten.length; i++)
|
||||
|
||||
if (resultcode == -1) // Nog steeds geen fouten.
|
||||
{
|
||||
if (opdraction == "update" && opdrnote != null)
|
||||
{
|
||||
var fields = [ { dbs: "mld_opdr_note_key", typ: "key", seq: "mld_s_mld_opdr_note_key" },
|
||||
{ dbs: "mld_opdr_key", typ: "key", val: opdr_key },
|
||||
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
|
||||
{ dbs: "mld_opdr_note_flag", typ: "number", val: opdrnoteflag || 4 }, // default alleen uitvoerende, +1 voor FE-zichtbaar
|
||||
{ dbs: "mld_opdr_note_omschrijving", typ: "varchar", val: opdrnote, len: 4000 }
|
||||
];
|
||||
var noteIns = buildInsert("mld_opdr_note", fields, { noValidateToken: true });
|
||||
note_key = noteIns.sequences["mld_opdr_note_key"];
|
||||
Oracle.Execute(noteIns.sql);
|
||||
// later registreren we eventueel nog een tracking_key
|
||||
}
|
||||
|
||||
// Registeren bij de laatste notitie
|
||||
if (note_key > 0)
|
||||
{
|
||||
var tracking_key = coalesce(coalesce(status_tracking_key, datum_tracking_key), update_tracking_key); // volgorde van belangrijkheid
|
||||
if (!(tracking_key > 0))
|
||||
{ // Er is alleen een losse notitie. De opdracht is niet aangepast.
|
||||
if ((opdrnoteflag & 1) == 1) // voor FE-zichtbaar
|
||||
tracking_key = mld.trackmeldingaddnote(mld_key); // MLDNOT tracking.
|
||||
else
|
||||
tracking_key = mld.trackopdrachtaddnote(opdr_key); // ORDNOB tracking.
|
||||
}
|
||||
var sql = "UPDATE mld_opdr_note"
|
||||
+ " SET fac_tracking_key = " + tracking_key
|
||||
+ " WHERE mld_opdr_note_key = " + note_key;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
var tracking_key = coalesce(coalesce(status_tracking_key, datum_tracking_key), update_tracking_key); // volgorde van belangrijkheid
|
||||
add_note(tracking_key); // voor als nog niet eerder gebeurd
|
||||
|
||||
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze opdracht.
|
||||
}
|
||||
@@ -975,6 +953,37 @@ for (var i = 0; i < opdrachten.length; i++)
|
||||
} // end for
|
||||
// Alle opdracht-nodes zijn behandeld.
|
||||
|
||||
// Voeg een notitie toe en koppel hem eventueel direct aan tracking_key
|
||||
function add_note(tracking_key)
|
||||
{
|
||||
if (/*global*/ note_key > 0)
|
||||
return; // hadden we het al gedaan
|
||||
|
||||
if (opdraction == "update" && opdrnote != null)
|
||||
{
|
||||
var fields = [ { dbs: "mld_opdr_note_key", typ: "key", seq: "mld_s_mld_opdr_note_key" },
|
||||
{ dbs: "mld_opdr_key", typ: "key", val: opdr_key },
|
||||
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
|
||||
{ dbs: "mld_opdr_note_flag", typ: "number", val: opdrnoteflag || 4 }, // default alleen uitvoerende, +1 voor FE-zichtbaar
|
||||
{ dbs: "mld_opdr_note_omschrijving", typ: "varchar", val: opdrnote, len: 4000 }
|
||||
];
|
||||
var noteIns = buildInsert("mld_opdr_note", fields, { noValidateToken: true });
|
||||
note_key = noteIns.sequences["mld_opdr_note_key"];
|
||||
Oracle.Execute(noteIns.sql);
|
||||
|
||||
if (!(tracking_key > 0))
|
||||
{ // Er is alleen een losse notitie. De opdracht is niet aangepast.
|
||||
if ((opdrnoteflag & 1) == 1) // voor FE-zichtbaar
|
||||
tracking_key = mld.trackmeldingaddnote(mld_key); // MLDNOT tracking.
|
||||
else
|
||||
tracking_key = mld.trackopdrachtaddnote(opdr_key); // ORDNOB tracking.
|
||||
}
|
||||
var sql = "UPDATE mld_opdr_note"
|
||||
+ " SET fac_tracking_key = " + tracking_key
|
||||
+ " WHERE mld_opdr_note_key = " + note_key;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
}
|
||||
|
||||
// Als key1 geldig is heeft die de voorkeur, anders keys
|
||||
function coalesce(key1, key2)
|
||||
@@ -1040,6 +1049,7 @@ function upsertKenmerk(kenmerken, topdr_key, opdr_key)
|
||||
switch (kenmerk_type)
|
||||
{
|
||||
case 'R':
|
||||
case 'r':
|
||||
case 'S':
|
||||
{
|
||||
// read reference fields
|
||||
@@ -1058,7 +1068,7 @@ function upsertKenmerk(kenmerken, topdr_key, opdr_key)
|
||||
{ // We ondersteunen alleen nog maar karakter- en bestandsnaam-velden.
|
||||
// AEG: Maar wat maakt een nummer nu anders dan een karakter ?
|
||||
var vnew = kenmerk_waarde;
|
||||
if (kenmerk_type == 'R' || kenmerk_type == 'S')
|
||||
if (kenmerk_type == 'R' || kenmerk_type == 'r' || kenmerk_type == 'S')
|
||||
{
|
||||
if (vnew)
|
||||
{
|
||||
@@ -1071,7 +1081,7 @@ function upsertKenmerk(kenmerken, topdr_key, opdr_key)
|
||||
{
|
||||
var kenmerkopdr_key = oRs("mld_kenmerkopdr_key").Value;
|
||||
var vold = oRs("mld_kenmerkopdr_waarde").Value; // Voor tracking
|
||||
if (kenmerk_type == 'R' || kenmerk_type == 'S')
|
||||
if (kenmerk_type == 'R' || kenmerk_type == 'r' || kenmerk_type == 'S')
|
||||
{
|
||||
if (vold)
|
||||
{
|
||||
@@ -1389,6 +1399,14 @@ function upsertOpdrRegels(regels, mld_opdr)
|
||||
|
||||
xmlResp.appendChild(FCLTElement);
|
||||
|
||||
if (API.apidata.errorhandling == 1)
|
||||
{
|
||||
if (resultcode > 0) // -1 en 0 zijn 'goed'
|
||||
{
|
||||
Response.Status = '400 Bad Request';
|
||||
}
|
||||
}
|
||||
|
||||
Response.ContentType = "text/xml";
|
||||
if (API.apidata.stylesheet)
|
||||
{ // Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...
|
||||
|
||||
@@ -169,7 +169,8 @@ __Log("== Entering shorturl.asp ==");
|
||||
}
|
||||
else
|
||||
{
|
||||
var sql = "SELECT fac_bookmark_path,"
|
||||
var sql = "SELECT fac_bookmark_key,"
|
||||
+ " fac_bookmark_path,"
|
||||
+ " fac_bookmark_query," // Ooit was bedacht dat je de parameters apart in fac_bookmark_query stopt.
|
||||
+ " prs_perslid_key_auth," // In de praktijk stoppen mensen het ook vaak in fac_bookmark_path
|
||||
+ " fac_bookmark_unauth_url," // Dat kunnen we tegenwoordig (2018.1 Gold C) ook wel aan.
|
||||
@@ -201,6 +202,7 @@ __Log("== Entering shorturl.asp ==");
|
||||
}
|
||||
var refresher = oRs("fac_bookmark_refreshtime").Value;
|
||||
var bookmark_naam = oRs("fac_bookmark_naam").Value;
|
||||
var bookmark_key = oRs("fac_bookmark_key").Value;
|
||||
|
||||
if (user_key < 0)
|
||||
{
|
||||
@@ -215,7 +217,9 @@ __Log("== Entering shorturl.asp ==");
|
||||
Session("fallback_user_key") = falluser_key; // wordt opgepikt door loginTry.asp
|
||||
}
|
||||
else
|
||||
{
|
||||
Session("unauth_url") = oRs("fac_bookmark_unauth_url").Value; // wordt opgepikt door common.asp
|
||||
}
|
||||
}
|
||||
|
||||
var params = oRs("fac_bookmark_query").Value;
|
||||
@@ -241,6 +245,9 @@ __Log("== Entering shorturl.asp ==");
|
||||
if (oRs("fac_bookmark_flags").Value == 0)
|
||||
var url = protectQS.create(url); // prs/pchange_reset.asp, PRS\prs_perslid_qr_confirm.asp en PRS\self_register_confirm.asp verwachten dit
|
||||
|
||||
if (user_key > -1)
|
||||
shared.registeraction("bookmark", {refkey: bookmark_key, info: bookmark_naam, daily: S("fac_gui_counter_menu_daily")});
|
||||
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
|
||||
@@ -112,6 +112,7 @@ api2 = {
|
||||
case "color":
|
||||
case "symbol":
|
||||
case "varchar":
|
||||
case "clob":
|
||||
val = getFParam(formfields[i].frm, null);
|
||||
break;
|
||||
case "processingtime":
|
||||
@@ -187,6 +188,7 @@ api2 = {
|
||||
filter = "exact";
|
||||
break;
|
||||
case "varchar":
|
||||
case "clob":
|
||||
case "memo":
|
||||
case "html":
|
||||
filter = "like";
|
||||
@@ -403,6 +405,7 @@ api2 = {
|
||||
break;
|
||||
case "varchar": // Als fld.match(/^fclt_d_/) dan is het een old-style rapport filterveld
|
||||
case "memo":
|
||||
case "clob":
|
||||
case "html":
|
||||
if (filterval instanceof Array)
|
||||
{ // O.a. multi filter bij rapportages.
|
||||
@@ -524,7 +527,7 @@ api2 = {
|
||||
else if (typeof operand == "string" && operand != " NOT IN " && operand != " IN ")
|
||||
operand = isNot ? " NOT LIKE " : " LIKE ";
|
||||
|
||||
if (field.typ == "varchar" || field.typ == "memo" || field.typ == "html")
|
||||
if (field.typ == "varchar" || field.typ == "memo" || field.typ == "clob" || field.typ == "html")
|
||||
{
|
||||
if (field.islcl)
|
||||
dbs = "lcl.l({0}, 1)".format(dbs);
|
||||
@@ -533,7 +536,7 @@ api2 = {
|
||||
}
|
||||
if (field.caseinsensitive)
|
||||
{
|
||||
dbs = "UPPER(" + dbs + ")";
|
||||
dbs = field.hasupper || "UPPER(" + dbs + ")";
|
||||
if (safe_val instanceof Array)
|
||||
for (var i = 0; i < safe_val.length; i++)
|
||||
safe_val[i] = safe_val[i].toUpperCase();
|
||||
@@ -691,6 +694,10 @@ api2 = {
|
||||
+ " WHERE xx." + model.primary + " = " + model.table + "." + model.primary + ")";
|
||||
selects.push(sqleenh + " AS " + fld + "_eenheid");
|
||||
}
|
||||
else if (field.typ == "clob" && !params.filter.id)
|
||||
{ // er *kan* een discx3d overheen gaan wat tot een UNION kan leiden wat niet mag met een CLOB
|
||||
selects.push("TO_CHAR(SUBSTR({0}, 1, 4000)) AS {0}".format(field.dbs));
|
||||
}
|
||||
else if (dbs)
|
||||
{
|
||||
// veldnamen moeten gelijk zijn bij het ophalen. Zie ook: sql2jsonval
|
||||
@@ -1701,6 +1708,8 @@ function _validateJsondata(jsondata, model)
|
||||
case "float":
|
||||
if (typeof data === "string" && data.match(/^\d+$/)) // "resroom": "823" staan we nog wel toe
|
||||
data = parseInt(data, 10);
|
||||
if (typeof data === "string" && (type == "float" || type == "currency") && data.match(/^[\.\d]+$/)) // "uren": "123.4" staan we nog wel toe
|
||||
data = parseFloat(data);
|
||||
if (typeof data === "number" && isFinite(data))
|
||||
valid = true;
|
||||
break;
|
||||
@@ -1738,6 +1747,7 @@ function _validateJsondata(jsondata, model)
|
||||
case "color":
|
||||
case "symbol":
|
||||
case "varchar":
|
||||
case "clob":
|
||||
if (typeof data == "string")
|
||||
valid = true;
|
||||
break;
|
||||
@@ -1983,6 +1993,10 @@ function generic_REST_POST(model, gparams)
|
||||
var xxxIns = buildInsert(model.table, dbfields, { noValidateToken: true });
|
||||
var the_key = xxxIns.sequences[model.fields.id.dbs];
|
||||
// TODO: Generieke tracking?
|
||||
if (params.sqlOnly)
|
||||
{ // Alleen de sql terugsturen
|
||||
return { genIns: xxxIns, newKey: the_key };
|
||||
}
|
||||
|
||||
var err = Oracle.Execute(xxxIns.sql, true);
|
||||
if (err.friendlyMsg)
|
||||
@@ -2056,6 +2070,10 @@ function generic_REST_PUT(model, gparams)
|
||||
var xxxUpd = buildTrackingUpdate(model.table, wheres.join(" AND " ), dbfields, tracking_params);
|
||||
var xxxTrack = xxxUpd.trackarray;
|
||||
// TODO: Generieke tracking?
|
||||
if (params.sqlOnly)
|
||||
{ // Alleen de sql terugsturen
|
||||
return { genUpd: xxxUpd };
|
||||
}
|
||||
|
||||
if (xxxUpd) // Misschien geen velden opgegeven.
|
||||
{
|
||||
|
||||
@@ -25,13 +25,10 @@ var api2_mapper = {
|
||||
"rooms" : { "filename": "appl/api2/api_rooms.asp", "module": "ALG" },
|
||||
"districts" : { "filename": "appl/api2/api_districts.asp", "module": "ALG" },
|
||||
"orderdisciplines" : { "filename": "appl/mgt/bes_discipline.asp" },
|
||||
"ordercatalogues" : { "filename": "appl/mgt/bes_disciplineprod.asp" },
|
||||
"orderunits" : { "filename": "appl/mgt/bes_grootheid.asp" },
|
||||
"orderlineproperties" : { "filename": "appl/mgt/bes_kenmerk.asp" },
|
||||
"orderproperties" : { "filename": "appl/mgt/bes_kenmerkbestel.asp" },
|
||||
"orderarticlegroups" : { "filename": "appl/mgt/bes_srtgroep.asp" },
|
||||
"orderpropertytypes" : { "filename": "appl/mgt/bes_srtkenmerk.asp" },
|
||||
"orderproductgroups" : { "filename": "appl/mgt/bes_srtprodgroep.asp", "lcl_name": "bes_srtgroep_m" },
|
||||
"orderpacelisttables" : { "filename": "appl/mgt/bes_staffeltabel.asp" },
|
||||
"visitoractions" : { "filename": "appl/mgt/bez_actie.asp" },
|
||||
"visitorproperties" : { "filename": "appl/mgt/bez_kenmerk.asp" },
|
||||
@@ -161,6 +158,7 @@ var api2_mapper = {
|
||||
|
||||
"generictables" : { "filename": "appl/mgt/mgt_generic.asp", "hidden": true },
|
||||
"genericselect" : { "filename": "appl/mgt/mgt_generic_select.asp", "hidden": true },
|
||||
"bestpractices" : { "filename": "appl/mgt/fac_bestpractices.asp", "hidden": true },
|
||||
"systemtables" : { "filename": "appl/mgt/user_tables.asp", "hidden": true },
|
||||
"workflowexpressions" : { "filename": "appl/mgt/mld_workflow_expression.asp", "hidden": true } // dit is geen model
|
||||
}
|
||||
|
||||
@@ -702,44 +702,53 @@ api2_rest = {
|
||||
Response.write(str_antwoord);
|
||||
},
|
||||
|
||||
// Merk op dat (onbedoeld) de tabel-kolommen bepaald worden door de velden in het *eerste* record
|
||||
// en niet zozeer door het gedefinieerde fields-object
|
||||
// Ook: verwacht wordt dat de volgorde van velden altijd gelijk is wat JavaScript 'for' niet
|
||||
// garandeert (maar in de praktijk wel goed gaat)
|
||||
json2htmltable: function _json2htmltable(data, model, single)
|
||||
{
|
||||
var trs = [];
|
||||
if (data.length) // Header maken
|
||||
var ths = [];
|
||||
if (!data.length)
|
||||
return "\n<table>\n</table>"
|
||||
|
||||
// Header maken
|
||||
var ths = [];
|
||||
for (var fld in data[0])
|
||||
{
|
||||
var ths = [];
|
||||
for (var fld in data[0])
|
||||
var lbl = fld;
|
||||
if (fld in model.fields)
|
||||
lbl = model.fields[fld].label;
|
||||
else
|
||||
{
|
||||
var lbl = fld;
|
||||
if (fld in model.fields)
|
||||
lbl = model.fields[fld].label;
|
||||
else
|
||||
var val = data[0][fld];
|
||||
if (val && typeof val == "object")
|
||||
{
|
||||
var val = data[0][fld];
|
||||
if (val && typeof val == "object")
|
||||
{
|
||||
if (model.includes && fld in model.includes)
|
||||
var lbl = model.includes[fld].model.records_title;
|
||||
else
|
||||
lbl = fld; // Attachments/flexfiles
|
||||
}
|
||||
if (model.includes && fld in model.includes)
|
||||
var lbl = model.includes[fld].model.records_title;
|
||||
else
|
||||
lbl = fld; // Attachments/flexfiles
|
||||
}
|
||||
ths.push("<th title='{0}'>{1}</th>".format(safe.htmlattr(lbl), fld));
|
||||
}
|
||||
trs.push(ths.join(""));
|
||||
ths.push("<th title='{0}'>{1}</th>".format(safe.htmlattr(lbl), fld));
|
||||
}
|
||||
|
||||
var trs = [];
|
||||
for (var i = 0; i < data.length; i++)
|
||||
{
|
||||
var rec = data[i];
|
||||
var tds = [];
|
||||
for (var fld in rec)
|
||||
for (var fld in data[0]) // Hier dezelfde kolomvolgorde (van eerste record) gebruiken
|
||||
{
|
||||
var cls = "";
|
||||
if (model.fields[fld] && model.fields[fld].typ.match(/number|float|currency|key/) && !model.fields[fld].foreign)
|
||||
{
|
||||
cls = " style='text-align:right'";
|
||||
}
|
||||
var val = rec[fld];
|
||||
if (fld in rec)
|
||||
var val = rec[fld];
|
||||
else
|
||||
var val = "";
|
||||
var safeval = Server.HTMLEncode(String(val));
|
||||
if (val === null)
|
||||
safeval = ' ';
|
||||
@@ -750,7 +759,7 @@ api2_rest = {
|
||||
var naam = val.name||"???";
|
||||
if (typeof naam == 'object' && naam instanceof Date) // Bij appointment
|
||||
naam = toISODateTimeString(naam);
|
||||
safeval = val.id + " (" + Server.HTMLEncode(naam) + ")";
|
||||
safeval = val.id + " <em>(" + safe.html(naam) + ")</em>";
|
||||
}
|
||||
else if (val && typeof val == "object" && model.includes && fld in model.includes)
|
||||
safeval = api2_rest.json2htmltable(val, model.includes[fld].model, true); // dereference
|
||||
@@ -772,7 +781,9 @@ api2_rest = {
|
||||
return "\n<table>\n" + html + "\n</table>";
|
||||
}
|
||||
else
|
||||
return "\n<table>\n<tr>" + trs.join("</tr>\n<tr>") + "</tr></table>";
|
||||
return "\n<table style='border-collapse: separate;'>"
|
||||
+ "\n<thead><tr style='position:sticky;top:0'>" + ths.join("") + "</tr>\n</thead>"
|
||||
+ "\n<tbody>\n<tr>" + trs.join("</tr>\n<tr>") + "</tr>\n</tbody>\n</table>";
|
||||
},
|
||||
|
||||
json2csv: function _json2csv(data, model, single)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
*/
|
||||
%>
|
||||
<%
|
||||
function buildKenmerktypeLOV(kenmerktype, emptyOption)
|
||||
function buildKenmerktypeLOV(kenmerktype, params)
|
||||
{
|
||||
var kenmerktypeLOV = "";
|
||||
switch (kenmerktype)
|
||||
@@ -32,11 +32,18 @@
|
||||
break;
|
||||
case "R":
|
||||
kenmerktypeLOV = "R;" + L("mgt_srtkenmerk_referentie_l") + ";"
|
||||
+ "r;" + L("mgt_srtkenmerk_referentie_r") + ";"
|
||||
+ "S;" + L("mgt_srtkenmerk_referentie_s")
|
||||
break;
|
||||
case "S":
|
||||
kenmerktypeLOV = "S;" + L("mgt_srtkenmerk_referentie_s") + ";"
|
||||
+ "R;" + L("mgt_srtkenmerk_referentie_l")
|
||||
+ "R;" + L("mgt_srtkenmerk_referentie_l") + ";"
|
||||
+ "r;" + L("mgt_srtkenmerk_referentie_r")
|
||||
break;
|
||||
case "r":
|
||||
kenmerktypeLOV = "r;" + L("mgt_srtkenmerk_referentie_r") + ";"
|
||||
+ "R;" + L("mgt_srtkenmerk_referentie_l") + ";"
|
||||
+ "S;" + L("mgt_srtkenmerk_referentie_s")
|
||||
break;
|
||||
case "X":
|
||||
kenmerktypeLOV = "X;" + L("mgt_srtkenmerk_bestandsnaam");
|
||||
@@ -52,11 +59,18 @@
|
||||
break;
|
||||
case "L":
|
||||
kenmerktypeLOV = "L;" + L("mgt_srtkenmerk_label") + ";"
|
||||
+ "l;" + L("mgt_srtkenmerk_label_i")
|
||||
+ "l;" + L("mgt_srtkenmerk_label_i") + ";"
|
||||
+ (params && params.module == "MLD"? "b;" + L("mgt_srtkenmerk_label_ii") : "")
|
||||
break;
|
||||
case "l":
|
||||
kenmerktypeLOV = "l;" + L("mgt_srtkenmerk_label_i") + ";"
|
||||
+ "L;" + L("mgt_srtkenmerk_label")
|
||||
+ "L;" + L("mgt_srtkenmerk_label") + ";"
|
||||
+ (params && params.module == "MLD"? "b;" + L("mgt_srtkenmerk_label_ii") : "")
|
||||
break;
|
||||
case "b":
|
||||
kenmerktypeLOV = "b;" + L("mgt_srtkenmerk_label_ii") + ";"
|
||||
+ "L;" + L("mgt_srtkenmerk_label") + ";"
|
||||
+ "l;" + L("mgt_srtkenmerk_label_i")
|
||||
break;
|
||||
case "Q":
|
||||
kenmerktypeLOV = "Q;" + L("mgt_srtkenmerk_blanco");
|
||||
@@ -68,12 +82,13 @@
|
||||
kenmerktypeLOV = "V;" + L("mgt_srtkenmerk_checkbox");
|
||||
break;
|
||||
default:
|
||||
kenmerktypeLOV = (emptyOption ? emptyOption + ";" : "")
|
||||
kenmerktypeLOV = (params && params.emptyOption ? params.emptyOption + ";" : "")
|
||||
+ "C;" + L("mgt_srtkenmerk_karakter")
|
||||
+ ";N;" + L("mgt_srtkenmerk_numeriek")
|
||||
+ ";D;" + L("mgt_srtkenmerk_datum")
|
||||
+ ";T;" + L("mgt_srtkenmerk_tijd")
|
||||
+ ";R;" + L("mgt_srtkenmerk_referentie_l")
|
||||
+ ";r;" + L("mgt_srtkenmerk_referentie_r")
|
||||
+ ";S;" + L("mgt_srtkenmerk_referentie_s")
|
||||
+ ";X;" + L("mgt_srtkenmerk_bestandsnaam")
|
||||
+ ";F;" + L("mgt_srtkenmerk_bestand")
|
||||
@@ -81,8 +96,8 @@
|
||||
+ ";M;" + L("mgt_srtkenmerk_bestand_f")
|
||||
+ ";L;" + L("mgt_srtkenmerk_label")
|
||||
+ ";l;" + L("mgt_srtkenmerk_label_i")
|
||||
+ (params && params.module != "MLD"? "" : ";b;" + L("mgt_srtkenmerk_label_ii"))
|
||||
+ ";Q;" + L("mgt_srtkenmerk_blanco")
|
||||
// + ";B;" + L("mgt_srtkenmerk_berekening")
|
||||
+ ";V;" + L("mgt_srtkenmerk_checkbox");
|
||||
}
|
||||
return kenmerktypeLOV;
|
||||
|
||||
@@ -214,6 +214,36 @@ function model_appointments()
|
||||
dbfields["action"] = { dbs: "bez_actie_key", typ: "key", val: default_actie };
|
||||
}
|
||||
}
|
||||
|
||||
// Zet ook de locatie als S("vis_afspraak_onrgoed_uses_keys")=1 en er onrgoed_keys zijn meegegeven.
|
||||
if (S("vis_afspraak_onrgoed_uses_keys") == 1)
|
||||
{
|
||||
if (!jsondata.location)
|
||||
{
|
||||
var alg_key = -1;
|
||||
if (jsondata.room)
|
||||
alg_key = jsondata.room;
|
||||
else if (jsondata.floor)
|
||||
alg_key = jsondata.floor;
|
||||
else if (jsondata.building)
|
||||
alg_key = jsondata.building;
|
||||
|
||||
if (alg_key > 0) // anders niet meegegeven bij update en/of het is een appointment onder een reservering en er komt nog wel een follow_afspraak
|
||||
{
|
||||
var sql = "SELECT MAX(alg_locatie_key) loc_key"
|
||||
+ " FROM alg_v_allonroerendgoed"
|
||||
+ " WHERE alg_onroerendgoed_keys = " + alg_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
var loc_key = oRs("loc_key").Value;
|
||||
dbfields["location"] = { dbs: "alg_locatie_key", typ: "key", foreign: "alg_locatie", val: loc_key};
|
||||
jsondata.location = loc_key;
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.REST_PUT = function (params, jsondata, the_key) /* update appointment */
|
||||
@@ -275,13 +305,13 @@ function model_appointments()
|
||||
|
||||
this.REST_DELETE = function (params, the_key) /* delete appointment */
|
||||
{
|
||||
var wheres = [" bez_afspraak_key = " + the_key];
|
||||
wheres.push("(bez_afspraak_contact_key = " + user_key // Altijd fe vooralnog
|
||||
+ " OR bez_afspraak_host_key = " + user_key + ")");
|
||||
var sql = "DELETE FROM bez_afspraak"
|
||||
+ " WHERE " + wheres.join(" AND " );
|
||||
var this_bez = bez.func_enabled_afspraak(the_key);
|
||||
user.auth_required_or_abort(this_bez.canDelete);
|
||||
|
||||
var sql = "DELETE FROM bez_afspraak"
|
||||
+ " WHERE bez_afspraak_key = " + the_key;
|
||||
Oracle.Execute(sql);
|
||||
|
||||
// Geen tracking (mogelijk) omdat het record echt is verwijderd
|
||||
};
|
||||
}
|
||||
|
||||
@@ -23,6 +23,23 @@ function model_aut_idp(params)
|
||||
|
||||
this.askfirst = "type";
|
||||
|
||||
var sqlteller = "(SELECT (SELECT TO_CHAR(COALESCE(SUM (fac_gui_counter_count), 0)) "
|
||||
+ " FROM fac_gui_counter "
|
||||
+" WHERE fac_gui_counter_group = 'IDP_Login' AND fac_gui_counter_refkey = aut_idp.aut_idp_key "
|
||||
+ " AND fac_gui_counter_date >= TRUNC (SYSDATE)) "
|
||||
+ " || '/' || "
|
||||
+ " (SELECT TO_CHAR(COALESCE(SUM (fac_gui_counter_count), 0)) "
|
||||
+ " FROM fac_gui_counter "
|
||||
+ " WHERE fac_gui_counter_group = 'IDP_Login' AND fac_gui_counter_refkey = aut_idp.aut_idp_key "
|
||||
+ " AND fac_gui_counter_date > SYSDATE - 7) "
|
||||
+ " || '/' || "
|
||||
+ " (SELECT TO_CHAR(COALESCE(SUM (fac_gui_counter_count), 0)) "
|
||||
+ " FROM fac_gui_counter "
|
||||
+ " WHERE fac_gui_counter_group = 'IDP_Login' AND fac_gui_counter_refkey = aut_idp.aut_idp_key "
|
||||
+ " AND fac_gui_counter_date > SYSDATE - 30) "
|
||||
+ " FROM DUAL) "
|
||||
|
||||
|
||||
this.fields = {
|
||||
"id": {
|
||||
"dbs": "aut_idp_key",
|
||||
@@ -167,6 +184,12 @@ function model_aut_idp(params)
|
||||
"label": L("aut_idp_aanmaak"),
|
||||
"typ": "date",
|
||||
"readonly": true
|
||||
},
|
||||
"usage" : {
|
||||
"dbs": "dummy",
|
||||
"label": L("aut_idp_usage"),
|
||||
typ: "varchar",
|
||||
sql: sqlteller
|
||||
}
|
||||
}
|
||||
this.includes = {
|
||||
@@ -188,7 +211,7 @@ function model_aut_idp(params)
|
||||
fld_hide = ["samlmetaurl"];
|
||||
break;
|
||||
case 5: // saml
|
||||
fld_hide = "algorithm audience secret timeout duration remoteloginurl remotelogouturl samlmetaurl clockskew".split(" ");
|
||||
fld_hide = "algorithm audience secret timeout duration remoteloginurl samlmetaurl clockskew".split(" ");
|
||||
break;
|
||||
}
|
||||
for (var d=0; d<fld_hide.length; d++)
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: model_bes_disciplineprod.inc
|
||||
|
||||
Description: Vanuit CodeCharge gegenereerd model voor bes_disciplineprod
|
||||
|
||||
Context:
|
||||
|
||||
Notes:
|
||||
*/
|
||||
%>
|
||||
<%
|
||||
|
||||
function model_bes_disciplineprod()
|
||||
{
|
||||
this.records_name = "ordercatalogues";
|
||||
this.record_name = "ordercatalogue";
|
||||
this.table = "ins_tab_discipline";
|
||||
this.primary = "ins_discipline_key";
|
||||
this.autfunction = "WEB_PRDMSU";
|
||||
this.record_title = L("ins_tab_discipline");
|
||||
this.records_title = L("ins_tab_discipline_m");
|
||||
|
||||
|
||||
this.fields = {
|
||||
"id": {
|
||||
"dbs": "ins_discipline_key",
|
||||
"label": L("lcl_key"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"seq": "ins_s_ins_discipline_key",
|
||||
"defaultvalue": null
|
||||
},
|
||||
"name": {
|
||||
"dbs": "ins_discipline_omschrijving",
|
||||
"label": L("ins_discipline_omschrijving"),
|
||||
"typ": "varchar",
|
||||
"required": true,
|
||||
"filter": "like"
|
||||
},
|
||||
"module": {
|
||||
"dbs": "ins_discipline_module",
|
||||
"label": L("ins_discipline_module"),
|
||||
"typ": "varchar",
|
||||
"hidden_fld": true,
|
||||
"defaultvalue": "PRD"
|
||||
},
|
||||
"remark": {
|
||||
"dbs": "ins_discipline_opmerking",
|
||||
"label": L("ins_discipline_opmerking"),
|
||||
"typ": "memo"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
this.REST_GET = generic_REST_GET(this,
|
||||
{ "GET": {
|
||||
wheres: [ "ins_discipline_verwijder IS NULL",
|
||||
"ins_discipline_module = 'PRD'"
|
||||
]
|
||||
}
|
||||
}
|
||||
);
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this, {});
|
||||
}
|
||||
%>
|
||||
@@ -1,50 +0,0 @@
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: model_bes_grootheid.inc
|
||||
|
||||
Description: Vanuit CodeCharge gegenereerd model voor bes_grootheid
|
||||
|
||||
Context:
|
||||
|
||||
Notes:
|
||||
*/
|
||||
%>
|
||||
<%
|
||||
|
||||
function model_bes_grootheid()
|
||||
{
|
||||
this.records_name = "orderunits";
|
||||
this.record_name = "orderunit";
|
||||
this.table = "bes_grootheid";
|
||||
this.primary = "bes_grootheid_key";
|
||||
this.soft_delete = "bes_grootheid_verwijder";
|
||||
this.autfunction = "WEB_PRDMSU";
|
||||
this.record_title = L("bes_grootheid");
|
||||
this.records_title = L("bes_grootheid_m");
|
||||
|
||||
|
||||
this.fields = {
|
||||
"id": {
|
||||
"dbs": "bes_grootheid_key",
|
||||
"label": L("lcl_key"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"seq": "bes_s_bes_grootheid_key"
|
||||
},
|
||||
"name": {
|
||||
"dbs": "bes_grootheid_naam",
|
||||
"label": L("bes_grootheid_naam"),
|
||||
"typ": "varchar",
|
||||
"required": true
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this, {});
|
||||
}
|
||||
%>
|
||||
@@ -227,7 +227,7 @@ function model_bes_srtdeel(disc_key)
|
||||
"dbs": "ins_tab_discipline.ins_discipline_key",
|
||||
"typ": "key",
|
||||
"foreign": {
|
||||
"tbl": "bes_discipline",
|
||||
"tbl": "bes_v_aanwezigdiscipline",
|
||||
"key": "ins_discipline_key",
|
||||
"desc": "(" + lcl.xsql("ins_discipline_omschrijving", "ins_discipline_key") + ")",
|
||||
"where": (disc_key > -1 ? "ins_discipline_key = " + disc_key : "")
|
||||
|
||||
@@ -74,26 +74,24 @@ function model_bes_srtkenmerk(params)
|
||||
"mask": 1,
|
||||
"defaultvalue": 0
|
||||
},
|
||||
{
|
||||
"name": "overview_req",
|
||||
"label": L("mgt_kenmerk_systeem_overview_req"),
|
||||
"mask": 2,
|
||||
"defaultvalue": 0
|
||||
},
|
||||
/*
|
||||
{
|
||||
"name": "conf",
|
||||
"label": L("mgt_kenmerk_systeem_conf"),
|
||||
"mask": 4,
|
||||
"defaultvalue": 0
|
||||
},
|
||||
// {
|
||||
// "name": "conf",
|
||||
// "label": L("mgt_kenmerk_systeem_conf"),
|
||||
// "mask": 4,
|
||||
// "defaultvalue": 0
|
||||
// },
|
||||
{
|
||||
"name": "ano",
|
||||
"label": L("mgt_kenmerk_systeem_ano"),
|
||||
"mask": 8,
|
||||
"defaultvalue": 0
|
||||
},
|
||||
*/
|
||||
{
|
||||
"name": "overview_req",
|
||||
"label": L("mgt_kenmerk_systeem_overview_req"),
|
||||
"mask": 2,
|
||||
"defaultvalue": 0
|
||||
},
|
||||
{
|
||||
"name": "overview_pur",
|
||||
"label": L("mgt_kenmerk_systeem_overview_pur"),
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: model_bes_srtprodgroep.inc
|
||||
|
||||
Description: Vanuit CodeCharge gegenereerd model voor bes_srtprodgroep
|
||||
|
||||
Context:
|
||||
|
||||
Notes:
|
||||
*/
|
||||
%>
|
||||
<%
|
||||
|
||||
function model_bes_srtprodgroep()
|
||||
{
|
||||
this.records_name = "orderproductgroeps";
|
||||
this.record_name = "orderproductgroep";
|
||||
this.table = "bes_srtgroep";
|
||||
this.primary = "bes_srtgroep_key";
|
||||
this.autfunction = "WEB_PRDMSU";
|
||||
this.record_title = L("bes_srtgroep");
|
||||
this.records_title = L("bes_srtgroep_m");
|
||||
|
||||
|
||||
this.fields = {
|
||||
"id": {
|
||||
"dbs": "bes_srtgroep_key",
|
||||
"label": L("lcl_key"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"seq": "bes_s_bes_srtgroep_key",
|
||||
"defaultvalue": null
|
||||
},
|
||||
"orderdisciplines": {
|
||||
"dbs": "ins_discipline_key",
|
||||
"label": L("bes_ins_discipline_key"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"foreign": {
|
||||
"tbl": "ins_tab_discipline",
|
||||
"key": "ins_discipline_key",
|
||||
"desc": "ins_discipline_omschrijving",
|
||||
"where": "ins_discipline_verwijder IS NULL AND ins_discipline_module = 'PRD'"
|
||||
},
|
||||
"emptyoption": L("mgt_all")
|
||||
},
|
||||
"name": {
|
||||
"dbs": "bes_srtgroep_omschrijving",
|
||||
"label": L("bes_srtgroep_omschrijving"),
|
||||
"typ": "varchar"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
this.REST_GET = generic_REST_GET(this,
|
||||
{ "GET": {
|
||||
wheres: [ "ins_discipline_key IN"
|
||||
+ "( SELECT ins_discipline_key"
|
||||
+ " FROM ins_tab_discipline"
|
||||
+ " WHERE ins_discipline_module = 'PRD')"
|
||||
]
|
||||
}
|
||||
}
|
||||
);
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this, {});
|
||||
}
|
||||
%>
|
||||
110
APPL/API2/model_bestpractices.inc
Normal file
110
APPL/API2/model_bestpractices.inc
Normal file
@@ -0,0 +1,110 @@
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: model_bestpractices.inc
|
||||
|
||||
Description: bestpractices model.
|
||||
Parameters: &failonly=1 laat alleen 'problemen' over
|
||||
Context: Levert data op of de inrichting wel volgens best-practices is
|
||||
|
||||
Notes: Implementatie als api2-model om eenvoudiger XD queries te kunnen doen
|
||||
*/
|
||||
|
||||
// 'best' alleen toevoegen als het afwijkt van de default waarde
|
||||
// Voeg dan eventueel een remark toe als toelichting
|
||||
var check_set = [{ name: "auto_https" },
|
||||
{ name: "fac_html_strictness",
|
||||
best: "1",
|
||||
remark: "1=disallow html in messages, res-room description, flex-labels"
|
||||
},
|
||||
{ name: "allow_framed_facilitor" },
|
||||
{ name: "fac_api_allow_impersonate" },
|
||||
{ name: "fac_allow_jsonp" },
|
||||
{ name: "prs_password_otp_mode",
|
||||
best: 6,
|
||||
remark: "6=Force everyone to use OTP"
|
||||
},
|
||||
{ name: "login_remember_days",
|
||||
best: 0,
|
||||
remark: "0=Disable 'remember me'"
|
||||
},
|
||||
{ name: "csp_header" },
|
||||
{ name: "csp_header_extradata" },
|
||||
{ name: "fac_api_allow_impersonate" },
|
||||
{ name: "fac_api_key_in_url" },
|
||||
{ name: "flexAllowedExt" },
|
||||
{ name: "imgAllowedExt" },
|
||||
{ name: "impAllowedExt" }, // (unused?)
|
||||
{ name: "referrer_policy_header" },
|
||||
{ name: "allowedLinkRegex" },
|
||||
{ name: "fac_emailtoken_auth_expire" },
|
||||
{ name: "fac_tamper_check" },
|
||||
{ name: "hsts_maxage" },
|
||||
{ name: "cookie_samesite" },
|
||||
{ name: "self_register" } // (wil je niet 'per ongeluk' aan laten staan)
|
||||
];
|
||||
|
||||
resultcodes = { ok: "No problem",
|
||||
fatal: "No further checks possible, fix and recheck",
|
||||
error: "Error, fix and recheck",
|
||||
warning: "Warning: Could be more secure",
|
||||
inform: "Information only"
|
||||
}
|
||||
|
||||
function model_bestpractices()
|
||||
{
|
||||
this.autfunction = "WEB_FACTAB";
|
||||
this.table = "bestpractices";
|
||||
this.primary = "id";
|
||||
this.records_name = "bestpractices";
|
||||
this.record_name = "bestpractice";
|
||||
this.fields = { "settingname" : { typ: "varchar" },
|
||||
"defaultvalue" : { typ: "varchar" },
|
||||
"best" : { typ: "varchar" },
|
||||
"remark" : { typ: "varchar" },
|
||||
"value" : { typ: "varchar" },
|
||||
"result" : { typ: "varchar" }
|
||||
};
|
||||
|
||||
this.REST_GET = function _GET(params)
|
||||
{
|
||||
var best_data = [];
|
||||
for (var s in check_set)
|
||||
{
|
||||
var set = check_set[s];
|
||||
var one_data = { "settingname" : set.name,
|
||||
"defaultvalue": null,
|
||||
"value" : settings.get_setting(set.name, null, true), // overrules verwarren alleen maar, geen S(set.name)
|
||||
"best" : null,
|
||||
"remark" : null,
|
||||
"result" : null
|
||||
}
|
||||
var t = Application("SET_T_" + set.name);
|
||||
var v = String(Application("SET_DEFAULT_" + set.name));
|
||||
if (t == 'boolean')
|
||||
v = (v == "true") || (v == "1") || (v.toLowerCase() == "yes");
|
||||
one_data.defaultvalue = v;
|
||||
if ("best" in set)
|
||||
one_data.best = set.best;
|
||||
else
|
||||
one_data.best = one_data.defaultvalue;
|
||||
|
||||
if (one_data.value == one_data.best)
|
||||
{
|
||||
if (params.filter.failonly == '1')
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
one_data.result = resultcodes.warning;
|
||||
if ("remark" in set)
|
||||
one_data.remark = set.remark;
|
||||
}
|
||||
best_data.push(one_data);
|
||||
};
|
||||
|
||||
return best_data;
|
||||
}
|
||||
}
|
||||
%>
|
||||
@@ -79,14 +79,14 @@ function model_cad_thema()
|
||||
"position": {
|
||||
"dbs": "plaats.waar",
|
||||
"label": L("cad_label_type_waar"),
|
||||
"typ": "varchar",
|
||||
"typ": "key",
|
||||
"hidden_fld": true,
|
||||
"LOV": buildCadPositionLOV()
|
||||
},
|
||||
"situation": {
|
||||
"dbs": "plaats.situatie",
|
||||
"label": L("cad_label_type_situatie"),
|
||||
"typ": "varchar",
|
||||
"typ": "key",
|
||||
"hidden_fld": true,
|
||||
"LOV": buildCadSituationLOV()
|
||||
},
|
||||
|
||||
@@ -138,8 +138,37 @@ model_cnt_disc_params =
|
||||
"label": L("cnt_discipline_huurder"),
|
||||
"typ": "check0",
|
||||
"defaultvalue": 1
|
||||
},
|
||||
"options": {
|
||||
"dbs": "cnt_disc_params_opties",
|
||||
"label": L("cnt_discipline_verlengbaar"),
|
||||
"typ": "check0",
|
||||
"defaultvalue": 0
|
||||
}
|
||||
|
||||
/* // Voor als in cnt_disc_params_opties meerdere bits worden gebruikt om verschillende opties aan te geven:
|
||||
"options": {
|
||||
"dbs": "cnt_disc_params_opties",
|
||||
"label": L("cnt_discipline_optie"),
|
||||
"typ": "number",
|
||||
"bits": [
|
||||
{
|
||||
"name": "",
|
||||
"label": "",
|
||||
"typ": "check",
|
||||
"mask": 1,
|
||||
"radios": [
|
||||
{
|
||||
"name": "renewable",
|
||||
"label": L("cnt_discipline_verlengbaar"),
|
||||
"mask": 1,
|
||||
"defaultvalue": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"defaultvalue": 0
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -77,7 +77,6 @@ function model_cnt_kenmerk(params)
|
||||
"dbs": "cnt_srtcontract_key",
|
||||
"label": L("cnt_srtcontract_key"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"foreign": {
|
||||
"tbl": "(select ins_discipline_key"
|
||||
+ " , ins_discipline_omschrijving"
|
||||
@@ -124,12 +123,12 @@ function model_cnt_kenmerk(params)
|
||||
"label": L("mgt_kenmerk_toonbaar"),
|
||||
"typ": "check"
|
||||
},
|
||||
"inlist": {
|
||||
"dbs": "cnt_kenmerk_inlijst",
|
||||
"label": L("mgt_kenmerk_systeem_overview"),
|
||||
"typ": "check0",
|
||||
"multiedit": true
|
||||
},
|
||||
// "inlist": { // Dit werkt nog niet voor [CNT]
|
||||
// "dbs": "cnt_kenmerk_inlijst",
|
||||
// "label": L("mgt_kenmerk_systeem_overview"),
|
||||
// "typ": "check0",
|
||||
// "multiedit": true
|
||||
// },
|
||||
"propertydefault": {
|
||||
"dbs": "cnt_kenmerk_default",
|
||||
"label": L("mgt_kenmerk_default"),
|
||||
|
||||
@@ -47,19 +47,22 @@ function model_fac_email_setting()
|
||||
"from": {
|
||||
"dbs": "fac_email_setting_from",
|
||||
"label": L("fac_email_setting_from"),
|
||||
"typ": "varchar"
|
||||
"typ": "varchar",
|
||||
"multiedit": true
|
||||
},
|
||||
"frommode": {
|
||||
"dbs": "fac_email_setting_frommode",
|
||||
"label": L("fac_email_setting_frommode"),
|
||||
"typ": "number",
|
||||
"required": true,
|
||||
"LOV": L("fac_email_setting_frommodeLOV")
|
||||
"LOV": L("fac_email_setting_frommodeLOV"),
|
||||
"multiedit": true
|
||||
},
|
||||
"action": {
|
||||
"dbs": "fac_email_setting_action",
|
||||
"label": L("fac_email_setting_action"),
|
||||
"typ": "varchar"
|
||||
"typ": "varchar",
|
||||
"multiedit": true
|
||||
},
|
||||
"expire": {
|
||||
"dbs": "fac_email_setting_expire",
|
||||
@@ -70,30 +73,41 @@ function model_fac_email_setting()
|
||||
"attachmentspath": {
|
||||
"dbs": "fac_email_setting_attachpath",
|
||||
"label": L("fac_email_setting_attachpath"),
|
||||
"typ": "varchar"
|
||||
"typ": "varchar",
|
||||
"multiedit": true
|
||||
},
|
||||
"attachext": {
|
||||
"dbs": "fac_email_setting_attachext",
|
||||
"label": L("fac_email_setting_attachext"),
|
||||
"typ": "varchar"
|
||||
"typ": "varchar",
|
||||
"multiedit": true
|
||||
},
|
||||
"reqattachext": {
|
||||
"dbs": "fac_email_setting_reqattachext",
|
||||
"label": L("fac_email_setting_reqattachext"),
|
||||
"typ": "varchar"
|
||||
"typ": "varchar",
|
||||
"multiedit": true
|
||||
},
|
||||
"attachmaxkb": {
|
||||
"dbs": "fac_email_setting_attachmaxkb",
|
||||
"label": L("fac_email_setting_attachmaxkb"),
|
||||
"typ": "number",
|
||||
"multiedit": true
|
||||
},
|
||||
"loglevel": {
|
||||
"dbs": "fac_email_setting_loglevel",
|
||||
"label": L("fac_email_setting_loglevel"),
|
||||
"typ": "number",
|
||||
"required": true,
|
||||
"defaultvalue": 0
|
||||
"defaultvalue": 0,
|
||||
"multiedit": true
|
||||
},
|
||||
"person": {
|
||||
"dbs": "prs_perslid_key_auth",
|
||||
"label": L("fac_email_setting_perslid_key"),
|
||||
"typ": "key",
|
||||
"foreign": "prs_perslid"
|
||||
"foreign": "prs_perslid",
|
||||
"multiedit": true
|
||||
},
|
||||
"remark": {
|
||||
"dbs": "fac_email_setting_opmerking",
|
||||
|
||||
@@ -132,17 +132,15 @@ function model_fac_import_app()
|
||||
"label": L("fac_import_app_prefix"),
|
||||
"typ": "varchar"
|
||||
},
|
||||
"action": {
|
||||
"dbs": "fac_import_app_action",
|
||||
"label": L("fac_import_app_action"),
|
||||
"typ": "varchar",
|
||||
"required": true,
|
||||
"defaultvalue": "ORACLE"
|
||||
},
|
||||
"delimiter": {
|
||||
"dbs": "fac_import_app_delimiter",
|
||||
"label": L("fac_import_app_delimiter"),
|
||||
"typ": "varchar"
|
||||
},
|
||||
"csv": {
|
||||
"dbs": "fac_import_app_csv",
|
||||
"label": L("fac_import_app_csv"),
|
||||
"typ": "check0"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
%>
|
||||
<%
|
||||
|
||||
function model_fac_notificatie_job(niveau) // J voor Jobs, S voor Scheduled mail
|
||||
function model_fac_notificatie_job(params) // J voor Jobs, S voor Scheduled mail
|
||||
{
|
||||
this.records_name = "notificationjobs";
|
||||
this.record_name = "notificationjob";
|
||||
@@ -129,10 +129,15 @@ function model_fac_notificatie_job(niveau) // J voor Jobs, S voor Scheduled mail
|
||||
"label": L("fac_notificatie_job_queue"),
|
||||
"typ": "varchar",
|
||||
"defaultvalue": "DEFAULT"
|
||||
},
|
||||
"fac_usrrap_key": {
|
||||
dbs: "fac_usrrap_key",
|
||||
typ: "key",
|
||||
hidden_fld: true
|
||||
}
|
||||
};
|
||||
|
||||
if (niveau == 'S')
|
||||
if (params.niveau == 'S')
|
||||
{
|
||||
delete this.fields["flags"];
|
||||
delete this.fields["jobmode"];
|
||||
@@ -151,6 +156,16 @@ function model_fac_notificatie_job(niveau) // J voor Jobs, S voor Scheduled mail
|
||||
gparams.GET.wheres.push("prs_perslid_key_receiver = " + user_key); // alleen van jezelf
|
||||
this.autfunction = false;
|
||||
}
|
||||
|
||||
this.list = {
|
||||
columns: [
|
||||
"person",
|
||||
"receiver",
|
||||
"interval",
|
||||
"lastrun",
|
||||
"nextrun"
|
||||
]
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -161,14 +176,15 @@ function model_fac_notificatie_job(niveau) // J voor Jobs, S voor Scheduled mail
|
||||
wheres: ["fac_notificatie_job_view IS NOT NULL"]
|
||||
}
|
||||
};
|
||||
|
||||
if (user.has("WEB_PRSSYS"))
|
||||
{
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
}
|
||||
}
|
||||
|
||||
this.REST_GET = generic_REST_GET(this, gparams);
|
||||
if (user.has("WEB_PRSSYS"))
|
||||
{
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
}
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
}
|
||||
%>
|
||||
@@ -117,7 +117,7 @@ function model_fac_usrdata(tab_key, params)
|
||||
{ // Is de waarde een verwijzing naar een andere waarde in een eigen tabel?
|
||||
if (fld.refdata)
|
||||
fld.refdata.foreign.tbl = "( SELECT fac_usrdata_key"
|
||||
+ " , " + lcl.xsql("fac_usrdata_omschr", "fac_usrdata_key")
|
||||
+ " , " + lcl.xsqla("fac_usrdata_omschr", "fac_usrdata_key")
|
||||
+ " , fac_usrtab_key"
|
||||
+ " , fac_usrdata_verwijder"
|
||||
+ " FROM fac_usrdata"
|
||||
@@ -126,7 +126,7 @@ function model_fac_usrdata(tab_key, params)
|
||||
+ (obj.refdata && obj.refdata.id
|
||||
? " UNION"
|
||||
+ " SELECT fac_usrdata_key"
|
||||
+ " , " + lcl.xsql("fac_usrdata_omschr", "fac_usrdata_key") //+ " ||"
|
||||
+ " , " + lcl.xsqla("fac_usrdata_omschr", "fac_usrdata_key") //+ " ||"
|
||||
+ " , fac_usrtab_key"
|
||||
+ " , fac_usrdata_verwijder"
|
||||
+ " FROM fac_usrdata"
|
||||
|
||||
@@ -96,8 +96,38 @@ function model_fin_kenmerk(params)
|
||||
},
|
||||
"system": {
|
||||
"dbs": "fin_kenmerk_systeem",
|
||||
"label": L("mgt_srtkenmerk_systeem"),
|
||||
"typ": "check0"
|
||||
"label": L("mgt_srtkenmerk_systeem_adv"),
|
||||
"typ": "number",
|
||||
"bits": [
|
||||
{
|
||||
"name": "",
|
||||
"label": "",
|
||||
"typ": "check",
|
||||
"mask": 15,
|
||||
"radios": [
|
||||
{
|
||||
"name": "ksystem",
|
||||
"label": L("mgt_kenmerk_systeem"),
|
||||
"mask": 1,
|
||||
"defaultvalue": 0
|
||||
},
|
||||
// {
|
||||
// "name": "conf",
|
||||
// "label": L("mgt_kenmerk_systeem_conf"),
|
||||
// "mask": 4,
|
||||
// "defaultvalue": 0
|
||||
// },
|
||||
{
|
||||
"name": "ano",
|
||||
"label": L("mgt_kenmerk_systeem_ano"),
|
||||
"mask": 8,
|
||||
"defaultvalue": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"defaultvalue": 0,
|
||||
"required": true
|
||||
},
|
||||
"inlist": {
|
||||
"dbs": "fin_kenmerk_inlijst",
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
%>
|
||||
<!-- #include file="../Shared/discxalg3d.inc"-->
|
||||
<!-- #include file="./model_cad_tekening.inc"-->
|
||||
<!-- #include file="./model_alg_kenmerk.inc"-->
|
||||
<!-- #include file="./model_custom_fields.inc"-->
|
||||
<%
|
||||
function model_floors() {
|
||||
this.table = "alg_verdieping";
|
||||
@@ -37,6 +39,11 @@ function model_floors() {
|
||||
"model": new model_cad_tekening("V", { internal: true }),
|
||||
"joinfield": "floor",
|
||||
"enable_update": true
|
||||
},
|
||||
"custom_fields" : {
|
||||
"model": new model_custom_fields(this, new model_alg_kenmerk("V", { internal: true }), { readman: true, readuse: true }),
|
||||
"joinfield": "flexparentkey",
|
||||
"enable_update": true
|
||||
}
|
||||
};
|
||||
this.REST_GET = function _GET(params) {
|
||||
|
||||
@@ -139,9 +139,23 @@ function model_ins_kenmerk(niveau, params)
|
||||
"label": L("ins_kenmerk_verplicht"),
|
||||
"typ": "key",
|
||||
"LOV": fill_verplicht_LOV(),
|
||||
"listfunction": function(oRs) {
|
||||
var val = oRs.Fields("required.name").Value;
|
||||
if (val === null) {
|
||||
return L("lcl_mld_niet_verplicht");
|
||||
}
|
||||
return val;
|
||||
},
|
||||
"emptyoption": L("lcl_mld_niet_verplicht"),
|
||||
"multiedit": true
|
||||
},
|
||||
"requiredstatus": {
|
||||
"dbs": "ins_kenmerk_verplicht_status",
|
||||
"label": L("ins_kenmerk_verplicht_status"),
|
||||
"typ": "key",
|
||||
"LOV": L("ins_kenmerk_requiredstatusLOV"),
|
||||
"emptyoption": null
|
||||
},
|
||||
"group": {
|
||||
"dbs": "ins_kenmerk_groep",
|
||||
"label": L("ins_kenmerk_groep"),
|
||||
@@ -290,6 +304,7 @@ function model_ins_kenmerk(niveau, params)
|
||||
}
|
||||
else
|
||||
{ //kenmerk_niveau: D | G | S
|
||||
delete this.fields.requiredstatus;
|
||||
this.record_title = L("ins_kenmerk");
|
||||
this.records_title = L("ins_kenmerk_m");
|
||||
gparams.GET = {tables: ["ins_v_allsrtinstallatie"],
|
||||
|
||||
@@ -53,9 +53,9 @@ function model_issues(mld_key, params)
|
||||
"actiondate" : { dbs: "mld_melding_actiedatum", typ: "datetime", label: L("lcl_mld_actiondate"), track: true},
|
||||
"treatmentteam":{dbs: "mld_ins_discipline_key", typ: "key", foreign: "mld_discipline", label: L("mld_processing_group"), track: true },
|
||||
"issuetype" : { dbs: "mld_stdmelding_key", typ: "key", foreign: "mld_stdmelding", label: L("lcl_complain"), track: true },
|
||||
"description": { dbs: "mld_melding_omschrijving", typ: "varchar", label: L("lcl_descr"), track: true, filter: "like" },
|
||||
"description": { dbs: "mld_melding_omschrijving", typ: "clob", len: S("mld_melding_oms_maxlen"), label: L("lcl_descr"), track: true, filter: "like" },
|
||||
"remark" : { dbs: "mld_melding_opmerking", typ: "varchar", label: L("lcl_remark"), track: true},
|
||||
"subject" : { dbs: "mld_melding_onderwerp", typ: "varchar", label: L("lcl_mld_subject"), track: true},
|
||||
"subject" : { dbs: "mld_melding_onderwerp", typ: "varchar", label: L("lcl_mld_subject"), track: true, len: 80},
|
||||
"status" : { dbs: "mld_melding_status", typ: "key", foreign: mld.getmldstatustext, label: L("lcl_status"), track: true, filter: mld.getStatusSql },
|
||||
"flag" : { dbs: "mld_melding_flag", typ: "key", /* geen echte key, wel key-gedrag */ label: L("lcl_mld_flags"), track: true },
|
||||
"origin" : { dbs: "mld_meldbron_key", typ: "key", foreign: { tbl: "mld_meldbron",
|
||||
@@ -481,7 +481,6 @@ function model_issues(mld_key, params)
|
||||
delete_fld(jsondata, "handler", !this_mld.canAfhandChange);
|
||||
delete_fld(jsondata, "public", !mld_info.canbepublished);
|
||||
delete_fld(jsondata, "origin", true);
|
||||
delete_fld(jsondata, "extern_id", !inArray(mld_info.meldbron_key, S("mld_meldbron_extern")) );
|
||||
delete_fld(jsondata, "indult" , !(stdm_info.slabewaken && this_mld.canSLAChange) );
|
||||
delete_fld(jsondata, "completed", !this_mld.canAfrond);
|
||||
delete_fld(jsondata, "kto", !((mld_info.kto_opt & 2) == 2 && mld_info.kto_verstuurd == null && this_mld.canClose) );
|
||||
@@ -699,7 +698,7 @@ function model_issues(mld_key, params)
|
||||
var wheres = [" mld_melding_key = " + mld_key];
|
||||
var mldUpd = buildTrackingUpdate("mld_melding", wheres.join(" AND " ), dbfields, { noValidateToken: true });
|
||||
|
||||
var err = Oracle.Execute(mldUpd.sql, true);
|
||||
var err = Oracle.Execute(mldUpd, true);
|
||||
if (err.friendlyMsg)
|
||||
abort_with_warning(err.friendlyMsg);
|
||||
}
|
||||
@@ -801,8 +800,7 @@ function model_issues(mld_key, params)
|
||||
|
||||
var mldIns = buildInsert("mld_melding", dbfields, { noValidateToken: true });
|
||||
var new_key = mldIns.sequences["mld_melding_key"];
|
||||
var sql = mldIns.sql;
|
||||
Oracle.Execute(mldIns.sql);
|
||||
Oracle.Execute(mldIns);
|
||||
|
||||
params.filter = { id: new_key }; // De nieuwe mld_melding_key.
|
||||
var mldtrack = api2.process_includes(params, this, jsondata, new_key);
|
||||
|
||||
@@ -170,6 +170,24 @@ function model_mld_kenmerk(niveau, params)
|
||||
"label": L("mgt_kenmerk_autorisatie"),
|
||||
"typ": "key",
|
||||
"foreign": "fac_functie"
|
||||
},
|
||||
"treatmentteam": {
|
||||
"dbs": "ins_discipline_key",
|
||||
"label": L("mld_processing_group_kenm"),
|
||||
"typ": "key",
|
||||
//"foreign": "mld_discipline"
|
||||
"foreign": {
|
||||
"tbl": "(SELECT d.ins_discipline_key"
|
||||
+ " , d.ins_discipline_omschrijving"
|
||||
+ " FROM mld_v_aanwezigdiscipline d"
|
||||
+ " , ins_srtdiscipline sd"
|
||||
+ " , mld_disc_params dp"
|
||||
+ " WHERE d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
|
||||
+ " AND dp.mld_ins_discipline_key = d.ins_discipline_key"
|
||||
+ " AND BITAND(dp.mld_disc_params_srtgroep, 2) = 2)",
|
||||
"key": "ins_discipline_key",
|
||||
"desc": "ins_discipline_omschrijving"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -251,7 +269,7 @@ function model_mld_kenmerk(niveau, params)
|
||||
"emptyoption": L("mld_srtdiscipline_m_all")
|
||||
},
|
||||
"discipline": {
|
||||
"dbs": "view_mld_kenmerk.ins_discipline_key", //"mld_discipline.ins_discipline_key",
|
||||
"dbs": "view_mld_kenmerk.discipline", //"mld_discipline.ins_discipline_key",
|
||||
"label": L("lcl_mld_vakgroep"),
|
||||
"typ": "key",
|
||||
"foreign": "mld_discipline",
|
||||
@@ -359,8 +377,8 @@ function model_mld_kenmerk(niveau, params)
|
||||
+ " WHERE mld_srtkenmerk_key = " + issuepropertytype;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
result.lbl_default = (oRs("mld_srtkenmerk_kenmerktype").Value == "l" ? L("mgt_kenmerk_icon"): L("mgt_kenmerk_default"));
|
||||
result.lbl_readonly = (oRs("mld_srtkenmerk_kenmerktype").Value == "l" ? L("mgt_kenmerk_collapsed"): mld_opdr_readonly);
|
||||
result.lbl_default = (oRs("mld_srtkenmerk_kenmerktype").Value == "l" || oRs("mld_srtkenmerk_kenmerktype").Value == "b"? L("mgt_kenmerk_icon") : L("mgt_kenmerk_default"));
|
||||
result.lbl_readonly = (oRs("mld_srtkenmerk_kenmerktype").Value == "l" || oRs("mld_srtkenmerk_kenmerktype").Value == "b"? L("mgt_kenmerk_collapsed") : mld_opdr_readonly);
|
||||
oRs.Close();
|
||||
}
|
||||
return result;
|
||||
@@ -371,11 +389,16 @@ function model_mld_kenmerk(niveau, params)
|
||||
{
|
||||
delete this.fields.filled;
|
||||
delete this.fields.issuepropertytypename;
|
||||
delete this.fields.attributetype;
|
||||
|
||||
if (obj.id != -1 && obj.level.id == "D")
|
||||
if (obj.id != -1 && obj.level.id == "D")
|
||||
delete this.fields.mld_issuetype;
|
||||
|
||||
// Het behandelteam alleen tonen bij behandelbare bloktitels in de edit-mode.
|
||||
if (obj.id != -1 && obj.attributetype && obj.attributetype.id != "b")
|
||||
delete this.fields.treatmentteam;
|
||||
|
||||
delete this.fields.attributetype;
|
||||
|
||||
if (!obj.level.name)
|
||||
{
|
||||
if (obj.level.id == "M")
|
||||
@@ -400,6 +423,8 @@ function model_mld_kenmerk(niveau, params)
|
||||
var ordertype_key = "<%=v_ordertype_key%>";
|
||||
var kenmerk_key = <%=kenmerk_key%>;
|
||||
var is_clone = <%=v_isclone%>;
|
||||
var attributetype = "<%=( (obj.attributetype && obj.attributetype.id) ? obj.attributetype.id : "")%>";
|
||||
var issuepropertytype = "<%=( (obj.issuepropertytype && obj.issuepropertytype.id) ? obj.issuepropertytype.id : -1)%>";
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
@@ -429,6 +454,20 @@ function model_mld_kenmerk(niveau, params)
|
||||
fld["readonly"].label = srttype.lbl_readonly;
|
||||
}
|
||||
|
||||
this.hook_pre_post = function (params, obj)
|
||||
{ // Verwijder eventuele waarde voor treatmentteam (ins_discipline_key) als het geen bloktitel met behandelaar is.
|
||||
var sql = "SELECT mld_srtkenmerk_kenmerktype"
|
||||
+ " FROM mld_srtkenmerk"
|
||||
+ " WHERE mld_srtkenmerk_key = " + obj.issuepropertytype;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var kenmerktype = oRs("mld_srtkenmerk_kenmerktype").Value;
|
||||
oRs.Close();
|
||||
if (kenmerktype != "b")
|
||||
{
|
||||
obj.treatmentteam = null;
|
||||
}
|
||||
}
|
||||
|
||||
var gparams = {"GET": {}};
|
||||
if (isOpdrachtKenmerk)
|
||||
{
|
||||
@@ -445,7 +484,7 @@ function model_mld_kenmerk(niveau, params)
|
||||
+ " , s.ref_mld_stdmelding_key"
|
||||
+ " , s.mld_stdmelding_key mld_mld_stdmelding_key"
|
||||
+ " , s.mld_stdmelding_omschrijving"
|
||||
+ " , s.ins_discipline_key"
|
||||
+ " , s.ins_discipline_key discipline"
|
||||
+ " , s.ins_srtdiscipline_key"
|
||||
+ " , aantal"
|
||||
+ " , aantal365"
|
||||
|
||||
@@ -20,7 +20,7 @@ function model_mld_meldbron()
|
||||
this.table = "mld_meldbron";
|
||||
this.primary = "mld_meldbron_key";
|
||||
this.soft_delete = "mld_meldbron_verwijder";
|
||||
this.autfunction = "WEB_PRSSYS";
|
||||
this.autfunction = "WEB_MLDMGT";
|
||||
this.record_title = L("mld_meldbron");
|
||||
this.records_title = L("mld_meldbron_m");
|
||||
|
||||
@@ -39,10 +39,45 @@ function model_mld_meldbron()
|
||||
"typ": "varchar",
|
||||
"required": true
|
||||
},
|
||||
"default": {
|
||||
"dbs": "mld_meldbron_default",
|
||||
"label": L("mld_meldbron_default"),
|
||||
"typ": "check"
|
||||
"selectable": {
|
||||
"dbs": "mld_meldbron_kiesbaar",
|
||||
"label": L("mld_meldbron_kiesbaar"),
|
||||
"typ": "number",
|
||||
"bits": [
|
||||
{
|
||||
"name": "",
|
||||
"label": "",
|
||||
"typ": "check",
|
||||
"mask": 3,
|
||||
"radios": [
|
||||
{
|
||||
"name": "select_fo",
|
||||
"label": L("mld_meldbron_kiesbaar1"),
|
||||
"mask": 1,
|
||||
"defaultvalue": 0
|
||||
},
|
||||
{
|
||||
"name": "edit_ext",
|
||||
"label": L("mld_meldbron_kiesbaar2"),
|
||||
"mask": 2,
|
||||
"defaultvalue": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"defaultvalue": "0"
|
||||
},
|
||||
"selectable_select_fo": {
|
||||
"dbs": "selectable_select_fo",
|
||||
"sql": "CASE WHEN (BITAND(mld_meldbron.mld_meldbron_kiesbaar,1)=1) THEN 1 ELSE 0 END",
|
||||
"label": L("mld_meldbron_kiesbaar1"),
|
||||
"typ": "check0"
|
||||
},
|
||||
"selectable_edit_ext": {
|
||||
"dbs": "selectable_exit_ext",
|
||||
"sql": "CASE WHEN (BITAND(mld_meldbron.mld_meldbron_kiesbaar,2)=2) THEN 1 ELSE 0 END",
|
||||
"label": L("mld_meldbron_kiesbaar2"),
|
||||
"typ": "check0"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ function model_mld_opdr()
|
||||
this.records_name = "orders";
|
||||
this.record_name = "order";
|
||||
this.table = "mld_opdr";
|
||||
this.trackcode = "ORDUPD";
|
||||
this.primary = "mld_opdr_key";
|
||||
this.record_title = L("lcl_fin_mld_opdr");
|
||||
this.records_title = L("lcl_fin_opdrachten");
|
||||
@@ -168,13 +169,15 @@ function model_mld_opdr()
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"foreign": bgt_company_foreign(),
|
||||
"showtransit": true
|
||||
"showtransit": true,
|
||||
"track": true
|
||||
},
|
||||
"reference": {
|
||||
"dbs": "mld_opdr_id",
|
||||
"label": L("lcl_opdr_id"),
|
||||
"typ": "varchar",
|
||||
"showtransit": true
|
||||
"showtransit": true,
|
||||
"track": true
|
||||
},
|
||||
"ordernr_sort": {
|
||||
"dbs": "mld_opdr_ordernr_int",
|
||||
@@ -187,7 +190,8 @@ function model_mld_opdr()
|
||||
"dbs": "mld_opdr_ordernr",
|
||||
"label": S("bgt_enabled")? L("bgt_opdr_ordernr") : L("lcl_mld_inf_Ordernr"),
|
||||
"typ": (S("bgt_enabled")? "number" : "varchar"),
|
||||
"hidden_fld": true
|
||||
"hidden_fld": true,
|
||||
"track": true
|
||||
},
|
||||
"sequence": {
|
||||
"dbs": "mld_opdr_bedrijfopdr_volgnr",
|
||||
@@ -201,19 +205,22 @@ function model_mld_opdr()
|
||||
"label": S("bgt_enabled")? L("bgt_budget_account") : L("lcl_mld_kosten"),
|
||||
"typ": "key",
|
||||
"foreign": bgt_account_foreign(),
|
||||
"showtransit": true
|
||||
"showtransit": true,
|
||||
"track": true
|
||||
},
|
||||
"description": {
|
||||
"dbs": "mld_opdr_omschrijving",
|
||||
"label": L("lcl_descr"),
|
||||
"typ": "varchar"
|
||||
"typ": "varchar",
|
||||
"track": true
|
||||
},
|
||||
"startdate": {
|
||||
"dbs": "mld_opdr_datumbegin",
|
||||
"label": S("bgt_enabled")? L("bgt_contractdatum") : L("lcl_orderdate"),
|
||||
"typ": S("bgt_enabled")? "date" : "datetime",
|
||||
"filter": (S("bgt_enabled")? "exact" : "range"),
|
||||
"showtransit": (S("bgt_enabled")? true : false)
|
||||
"showtransit": (S("bgt_enabled")? true : false),
|
||||
"track": true
|
||||
}
|
||||
};
|
||||
|
||||
@@ -222,25 +229,29 @@ function model_mld_opdr()
|
||||
"dbs": "mld_opdr_einddatum",
|
||||
"label": L("lcl_opdr_enddate"),
|
||||
"typ": "datetime",
|
||||
"filter": "range"
|
||||
"filter": "range",
|
||||
"track": true
|
||||
},
|
||||
"plandate": {
|
||||
"dbs": "mld_opdr_plandatum",
|
||||
"label": L("lcl_opdr_plandate"),
|
||||
"typ": "datetime",
|
||||
"filter": "range"
|
||||
"filter": "range",
|
||||
"track": true
|
||||
},
|
||||
"plandate2": {
|
||||
"dbs": "mld_opdr_plandatum2",
|
||||
"label": L("lcl_opdr_plandate2"),
|
||||
"typ": "datetime",
|
||||
"filter": "range"
|
||||
"filter": "range",
|
||||
"track": true
|
||||
},
|
||||
"contact": {
|
||||
"dbs": "prs_contactpersoon_key",
|
||||
"label": L("lcl_contact_pers"),
|
||||
"typ": "key",
|
||||
"foreign": mld_contact_foreign()
|
||||
"foreign": mld_contact_foreign(),
|
||||
"track": true
|
||||
},
|
||||
"costtype": {
|
||||
"dbs": "prs_kostensoort_key",
|
||||
@@ -248,24 +259,28 @@ function model_mld_opdr()
|
||||
"typ": "key",
|
||||
"foreign": "prs_kostensoort",
|
||||
"readonly": S("mld_opdr_alt_kostensoort") == 1? false : true,
|
||||
"LOVinit": ""
|
||||
"LOVinit": "",
|
||||
"track": true
|
||||
},
|
||||
"hours": {
|
||||
"dbs": "mld_opdr_uren",
|
||||
"label": L("lcl_mld_nrhours"),
|
||||
"typ": "float"
|
||||
"typ": "float",
|
||||
"track": true
|
||||
},
|
||||
"hourrate": {
|
||||
"dbs": "mld_opdr_uurloon",
|
||||
"label": L("lcl_hour_rate"),
|
||||
"typ": "float",
|
||||
"iscurrency": true
|
||||
"iscurrency": true,
|
||||
"track": true
|
||||
},
|
||||
"materialcost": {
|
||||
"dbs": "mld_opdr_materiaal",
|
||||
"label": L("lcl_mater_cost"),
|
||||
"typ": "float",
|
||||
"iscurrency": true
|
||||
"iscurrency": true,
|
||||
"track": true
|
||||
}
|
||||
};
|
||||
|
||||
@@ -275,14 +290,16 @@ function model_mld_opdr()
|
||||
"label": S("bgt_enabled")? L("bgt_gecontracteerd") : L("lcl_total_cost") + " " + L("lcl_valutasign"),
|
||||
"typ": "float",
|
||||
"iscurrency": true,
|
||||
"total": true
|
||||
"total": true,
|
||||
"track": true
|
||||
},
|
||||
"vat": {
|
||||
"dbs": "mld_opdr_kosten_btw",
|
||||
"label": L("lcl_mld_opdr_btw"),
|
||||
"typ": "float",
|
||||
"iscurrency": true,
|
||||
"total": true
|
||||
"total": true,
|
||||
"track": true
|
||||
},
|
||||
"amountincl": {
|
||||
"dbs": "mld_opdr_kosten_incl",
|
||||
@@ -297,21 +314,24 @@ function model_mld_opdr()
|
||||
"iscurrency": true,
|
||||
"total": true,
|
||||
"defaultvalue": "0",
|
||||
"clone": false
|
||||
"clone": false,
|
||||
"track": true
|
||||
},
|
||||
"status": {
|
||||
"dbs": "mld_statusopdr_key",
|
||||
"label": L("lcl_mld_opdr_status"),
|
||||
"typ": "key",
|
||||
"foreign": bgt_orderstatus_foreign(),
|
||||
"defaultvalue": 5
|
||||
"defaultvalue": 5,
|
||||
"track": true
|
||||
},
|
||||
"owner": {
|
||||
"dbs": "prs_perslid_key",
|
||||
"label": L("lcl_mld_starter"),
|
||||
"typ": "key",
|
||||
"hidden_fld": true,
|
||||
"foreign": "PRS_PERSLID"
|
||||
"foreign": "prs_perslid",
|
||||
"track": true
|
||||
},
|
||||
"issueordertype": {
|
||||
"dbs": "mld_typeopdr_key",
|
||||
@@ -321,7 +341,8 @@ function model_mld_opdr()
|
||||
"foreign": {"tbl": "mld_typeopdr",
|
||||
"key": "mld_typeopdr_key",
|
||||
"desc": "mld_typeopdr_omschrijving"},
|
||||
"hidden_fld": true
|
||||
"hidden_fld": true,
|
||||
"track": true
|
||||
},
|
||||
"module": {
|
||||
"dbs": "mld_opdr_module",
|
||||
@@ -339,13 +360,15 @@ function model_mld_opdr()
|
||||
"remark": {
|
||||
"dbs": "mld_opdr_opmerking",
|
||||
"label": L("lcl_remark"),
|
||||
"typ": "memo"
|
||||
"typ": "memo",
|
||||
"track": true
|
||||
},
|
||||
"contract": {
|
||||
"dbs": "cnt_contract_key",
|
||||
"label": L("lcl_contract"),
|
||||
"typ": "key",
|
||||
"foreign": "cnt_contract"
|
||||
"foreign": "cnt_contract",
|
||||
"track": true
|
||||
},
|
||||
"_is_clone": { // Wordt alleen gebruikt als hidden kopie veld.
|
||||
"dbs": "",
|
||||
@@ -356,7 +379,8 @@ function model_mld_opdr()
|
||||
"offer": {
|
||||
"dbs": "mld_opdr_parent_key",
|
||||
"label": L("lcl_mld_opdr_parent"),
|
||||
"typ": "key"
|
||||
"typ": "key",
|
||||
"track": true
|
||||
},
|
||||
"externalnr": {
|
||||
"dbs": "mld_opdr_externnr",
|
||||
@@ -1535,6 +1559,44 @@ obj._is_clone=2 --> nieuwe sub-opdracht
|
||||
}
|
||||
}
|
||||
|
||||
function _keep_editable_fields(jsondata, opdr_info)
|
||||
{ // Verwijder voor PUT wat niet gewijzigd mag worden.
|
||||
function delete_fld(jsondata, field, condition)
|
||||
{
|
||||
if (condition)
|
||||
delete jsondata[field];
|
||||
}
|
||||
|
||||
var this_opdr = mld.func_enabled_opdracht(opdr_info.opdr_key);
|
||||
|
||||
// Nu per veld eventueel verwijderen.
|
||||
delete_fld(jsondata, "remark", !this_opdr.canOpmChange || S("mld_afhandeling_restrict_edit") != 0);
|
||||
delete_fld(jsondata, "company", !this_opdr.canUitvChange);
|
||||
delete_fld(jsondata, "contact", !this_opdr.canVeldChange);
|
||||
delete_fld(jsondata, "contract", !this_opdr.canContractChange);
|
||||
delete_fld(jsondata, "owner", !this_opdr.canVeldChange);
|
||||
delete_fld(jsondata, "description", !this_opdr.canVeldChange);
|
||||
delete_fld(jsondata, "startdate", !this_opdr.canDatesChange);
|
||||
delete_fld(jsondata, "enddate", !this_opdr.canDatesChange);
|
||||
delete_fld(jsondata, "plandate", (!this_opdr.canPlanDatesChange || !(S("mld_ord_edit_plandates") & 1)));
|
||||
delete_fld(jsondata, "plandate2", (!this_opdr.canPlanDatesChange || !(S("mld_ord_edit_plandates") & 1)));
|
||||
delete_fld(jsondata, "account", ((!this_opdr.canKostChange || !opdr_info.tonen_totaal) || S("mld_ord_show_kostenplaats") != 1)); // Setting mld_ord_show_kostenplaats: show kostenplaats field for orders {0=do not show | 1=editable | 2=show}
|
||||
delete_fld(jsondata, "costtype", S("mld_opdr_alt_kostensoort") == 0); // Setting mld_opdr_alt_kostensoort: Enable use of alternative cost category {0|1} default 0
|
||||
delete_fld(jsondata, "ordernr", !this_opdr.canVeldChange);
|
||||
delete_fld(jsondata, "hours" , !this_opdr.canUrenMatChange);
|
||||
delete_fld(jsondata, "hourrate", !this_opdr.canUrenMatChange);
|
||||
delete_fld(jsondata, "materialcost", (this_opdr.typeopdr_materiaal >= 2 || !this_opdr.canUrenMatChange));
|
||||
delete_fld(jsondata, "amount", (!this_opdr.mld_opdr.tonen_correctie || !this_opdr.canUrenMatChange || this_opdr.mld_opdr.correctie_readonly));
|
||||
delete_fld(jsondata, "sequence", true);
|
||||
if ((S("fac_api2_compatibility") & 1) != 1)
|
||||
delete_fld(jsondata, "issueordertype", true);
|
||||
delete_fld(jsondata, "module", true);
|
||||
delete_fld(jsondata, "additional", true);
|
||||
delete_fld(jsondata, "offer", true);
|
||||
delete_fld(jsondata, "externalnr", true);
|
||||
delete_fld(jsondata, "externalsyncdate", true);
|
||||
}
|
||||
|
||||
this.REST_PUT = function (params, jsondata, the_key)
|
||||
{
|
||||
var x_params = object_merge({}, params, gparams);
|
||||
@@ -1543,23 +1605,23 @@ obj._is_clone=2 --> nieuwe sub-opdracht
|
||||
abort_with_warning(L("lcl_shared_no_auth"));
|
||||
|
||||
var old_opdrstatus = -1;
|
||||
var opdr_info = mld.mld_opdr_info(the_key); // Bevat alle info van de opdracht.
|
||||
var mld_key = opdr_info.mld_key; // De melding key (jsondata.issue.id) is wellicht niet altijd aanwezig.
|
||||
if (S("bgt_enabled") != 1) // BGT doet niets met mld_melding; mld_opdr heeft zelfs geen mld_melding_key!
|
||||
{ // Maar voordat wijzigingen worden opgeslagen moet voor niet-BGT worden gecontroleerd of de gebruiker voldoende rechten heeft.
|
||||
// De opdracht key staat in the_key.
|
||||
var mld_opdr = mld.mld_opdr_info(the_key); // Bevat alle info van de opdracht.
|
||||
var mld_key = mld_opdr.mld_key; // De melding key (jsondata.issue.id) is wellicht niet altijd aanwezig.
|
||||
var opdr_type_key = mld_opdr.opdr_type;
|
||||
var this_opdr = mld.func_enabled_opdracht(the_key);
|
||||
old_opdrstatus = mld_opdr.opdr_status;
|
||||
// De opdracht key staat in the_key.
|
||||
var opdr_type_key = opdr_info.opdr_type;
|
||||
var this_opdr = mld.func_enabled_opdracht(the_key);
|
||||
old_opdrstatus = opdr_info.opdr_status;
|
||||
}
|
||||
else
|
||||
{
|
||||
var sqls = "SELECT mld_statusopdr_key"
|
||||
+ " FROM mld_opdr"
|
||||
+ " WHERE mld_opdr_key = " + the_key;
|
||||
var oRss = Oracle.Execute(sqls);
|
||||
old_opdrstatus = oRss("mld_statusopdr_key").Value;
|
||||
oRss.Close();
|
||||
var sqls = "SELECT mld_statusopdr_key"
|
||||
+ " FROM mld_opdr"
|
||||
+ " WHERE mld_opdr_key = " + the_key;
|
||||
var oRss = Oracle.Execute(sqls);
|
||||
old_opdrstatus = oRss("mld_statusopdr_key").Value;
|
||||
oRss.Close();
|
||||
}
|
||||
|
||||
// De status pas na het inserten zetten zodat er ook getrackt kan worden met de functie setopdrachtstatus.
|
||||
@@ -1573,6 +1635,8 @@ obj._is_clone=2 --> nieuwe sub-opdracht
|
||||
setStatus = setopdrstatus != old_opdrstatus;
|
||||
}
|
||||
|
||||
if (S("bgt_enabled") != 1)
|
||||
_keep_editable_fields(jsondata, opdr_info);
|
||||
var result = generic_REST_PUT(this)(params, jsondata, the_key);
|
||||
var opdr_key = result.key;
|
||||
|
||||
|
||||
@@ -70,7 +70,10 @@ function model_mld_srtdiscipline()
|
||||
"orderdata": {
|
||||
"dbs": "ins_srtdiscipline_bes",
|
||||
"label": L("ins_srtdiscipline_bes"),
|
||||
"typ": "check"
|
||||
"typ": "number",
|
||||
"defaultvalue": "0",
|
||||
"LOV": L("ins_srtdiscipline_besLOV"),
|
||||
"emptyoption": null
|
||||
},
|
||||
"reservationdata": {
|
||||
"dbs": "ins_srtdiscipline_res",
|
||||
|
||||
@@ -47,7 +47,7 @@ function model_mld_srtkenmerk(params)
|
||||
"label": L("mgt_srtkenmerk_kenmerktype"),
|
||||
"typ": "varchar",
|
||||
"required": true,
|
||||
"LOV": buildKenmerktypeLOV(),
|
||||
"LOV": buildKenmerktypeLOV(null, { module: "MLD" }),
|
||||
"showtransit": true,
|
||||
"multiedit": true
|
||||
},
|
||||
@@ -131,7 +131,7 @@ function model_mld_srtkenmerk(params)
|
||||
this.hook_pre_edit = function (obj, fld)
|
||||
{
|
||||
var kenmerktype = (obj.attributetype ? obj.attributetype.id : "");
|
||||
fld.attributetype.LOV = buildKenmerktypeLOV(kenmerktype);
|
||||
fld.attributetype.LOV = buildKenmerktypeLOV(kenmerktype, { module: "MLD" });
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var module = "MLD";
|
||||
|
||||
@@ -213,7 +213,9 @@ function model_mld_stdmelding()
|
||||
"label": L("lcl_mld_subject"),
|
||||
"LOV": "0;" + L("lcl_mld_onzichtbaar") + ";"
|
||||
+ "1;" + L("lcl_mld_optioneel") + ";"
|
||||
+ "2;" + L("lcl_mld_verplicht"),
|
||||
+ "2;" + L("lcl_mld_verplicht")
|
||||
+ (S("ai_enabled") & 1 ? ";3;" : ";##DISABLED##;")
|
||||
+ L("lcl_mld_ai_generated"),
|
||||
"emptyoption": null,
|
||||
"multiedit": true
|
||||
},
|
||||
|
||||
@@ -66,6 +66,8 @@ SELECT 'PRJ'
|
||||
|
||||
%>
|
||||
<!-- #include file="../mld/mld.inc" -->
|
||||
<!-- #include file="../mld/mld_edit_note.inc" -->
|
||||
<!-- #include file="../mld/opdr_edit_note.inc" -->
|
||||
<%
|
||||
|
||||
function model_notes(module)
|
||||
@@ -118,24 +120,36 @@ function model_notes(module)
|
||||
}
|
||||
this.table = tabel.naam;
|
||||
this.primary = tabel.parent + "_note_key";
|
||||
var sqlbijlagen = "(SELECT COUNT(*) aantal"
|
||||
+ " FROM fac_bijlagen"
|
||||
+ " WHERE fac_bijlagen_module = " + safe.quoted_sql((module === "OPDR" ? "ORD" : module) + "N")
|
||||
+ " AND fac_bijlagen_refkey = " + tabel.naam + "." + tabel.id + ")";
|
||||
|
||||
this.fields =
|
||||
{ "id" : { dbs: tabel.id, typ: "key", seq: tabel.seq },
|
||||
"author" : { dbs: "prs_perslid_key", typ: "key", foreign: "prs_perslid" },
|
||||
"description" : { dbs: tabel.naam + "_omschrijving", typ: "varchar", filter: "like" },
|
||||
"created" : { dbs: tabel.naam + "_aanmaak", typ: "datetime", "readonly": true},
|
||||
"parent" : { dbs: tabel.parent + "_key", typ: "key" }
|
||||
{ "id" : { dbs: tabel.id, typ: "key", seq: tabel.seq },
|
||||
"author" : { dbs: "prs_perslid_key", typ: "key", foreign: "prs_perslid" },
|
||||
"description" : { dbs: tabel.naam + "_omschrijving", typ: "varchar", filter: "like" },
|
||||
"created" : { dbs: tabel.naam + "_aanmaak", typ: "datetime", "readonly": true},
|
||||
"parent" : { dbs: tabel.parent + "_key", typ: "key" },
|
||||
"nnattachments" : { dbs: "dummy", typ: "number", sql: sqlbijlagen }
|
||||
};
|
||||
|
||||
var notes_id = getQParamInt("notes_id", -1); // Om een specifieke notitie op te vragen
|
||||
if (notes_id > 0)
|
||||
{
|
||||
this.tablesql = "(SELECT * FROM {0} WHERE {1} = {2}) {0}".format(tabel.naam, tabel.id, parseInt(notes_id))
|
||||
}
|
||||
switch (module)
|
||||
{
|
||||
case "MLD":
|
||||
{
|
||||
this.fields["flag"] = { dbs: "mld_melding_note_flag", typ: "number" }; // database default is 0, onzichtbaarFE
|
||||
this.fields["flag"] = { dbs: tabel.parent + "_note_flag", typ: "number" }; // database default is 0, onzichtbaarFE
|
||||
this.fields["group"] = { dbs: "fac_note_group_key", typ: "key", foreign: "fac_note_group"};
|
||||
break;
|
||||
}
|
||||
case "ORD":
|
||||
{
|
||||
this.fields["flag"] = { dbs: "mld_opdr_note_flag", typ: "number" }; // database default is 4, zichtbaarUITV
|
||||
this.fields["flag"] = { dbs: tabel.parent + "_note_flag", typ: "number" }; // database default is 4, zichtbaarUITV
|
||||
this.fields["group"] = { dbs: "fac_note_group_key", typ: "key", foreign: "fac_note_group"};
|
||||
break;
|
||||
}
|
||||
@@ -149,6 +163,43 @@ function model_notes(module)
|
||||
]
|
||||
};
|
||||
|
||||
// Deze functie wordt na de GET aangeroepen. De bijlagen zijn zo afwijkend
|
||||
// dat ik dat niet fatsoenlijk in 'fields' verwerkt kreeg
|
||||
this.post_get = function (params, record)
|
||||
{
|
||||
record.attachments = [];
|
||||
if (!record.nnattachments) // voorkom sql-statement per notitie
|
||||
{
|
||||
delete record["nnattachments"];
|
||||
return;
|
||||
}
|
||||
delete record["nnattachments"];
|
||||
|
||||
var fileparams = { getFiles: true, getFileEncoded: params.filter.fileencoding, /* api2name: "notes", */ cacheablehmac: true };
|
||||
var props = flexProps((module === "OPDR" ? "ORD" : module) + "N", record.id, undefined, undefined, fileparams);
|
||||
for (var f in props.files)
|
||||
{
|
||||
var file = props.files[f];
|
||||
var attachment = { name: file.name,
|
||||
date: file.date,
|
||||
size: file.size };
|
||||
if (file.deepurl) attachment.content_url = file.deepurl;
|
||||
if (file.token) attachment.token = file.token;
|
||||
if (file.key) attachment.id = file.key;
|
||||
if (file.digest) attachment.digest = file.digest;
|
||||
switch (params.filter.fileencoding) // De enige twee encodings die we ondersteunen
|
||||
{
|
||||
case "base64":
|
||||
attachment.content_base64 = file.data;
|
||||
break;
|
||||
case "hex":
|
||||
attachment.content_hex = file.data;
|
||||
break;
|
||||
}
|
||||
record.attachments.push(attachment);
|
||||
};
|
||||
}
|
||||
|
||||
function _check_authorization (params, method)
|
||||
{
|
||||
params.message = "";
|
||||
@@ -203,14 +254,10 @@ function model_notes(module)
|
||||
switch (method)
|
||||
{
|
||||
case "PUT":
|
||||
var opdr_key = params.filter.parent_key;
|
||||
var this_opdr = mld.func_enabled_opdracht(opdr_key);
|
||||
user.auth_required_or_abort(this_opdr.canEditOpdrNote);
|
||||
params.isNew = false;
|
||||
break;
|
||||
case "POST":
|
||||
var opdr_key = params.filter.parent_key;
|
||||
var this_opdr = mld.func_enabled_opdracht(opdr_key);
|
||||
user.auth_required_or_abort(this_opdr.canEditOpdrNote);
|
||||
params.isNew = true;
|
||||
break;
|
||||
@@ -226,6 +273,43 @@ function model_notes(module)
|
||||
}
|
||||
}
|
||||
|
||||
this._validate_fields = function (params, jsondata) { /* valideer fields, alle constraints die niet door de database worden afgevangen */
|
||||
switch (params.filter.module) {
|
||||
case "MLD": {
|
||||
if (!params.filter.scope) {
|
||||
params.filter.scope = "fe"; // default scope
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "ORD": {
|
||||
if (S("mld_opdr_actiecode") == 0 || // Dan doen deze niet mee
|
||||
jsondata.action_to_backoffice && jsondata.action_to_executor) { /* Deze zijn exclusief, als je ze allebei zet, dan weet je vast niet wat je doet, dus doe dan niets */
|
||||
delete jsondata.action_to_backoffice;
|
||||
delete jsondata.action_to_executor;
|
||||
}
|
||||
if (params.func_enabled.myRole === 4) { // Ik ben uitvoerder
|
||||
jsondata.flag = (jsondata.flag || 0) | 4; // *Altijd* ZichtbaarUITV
|
||||
delete jsondata.notify_executor;
|
||||
delete jsondata.action_to_executor;
|
||||
if (jsondata.flag && jsondata.flag & 32 || jsondata.action_to_requestor) {
|
||||
jsondata.flag = jsondata.flag | 37;
|
||||
jsondata.notify_requestor = true;
|
||||
jsondata.action_to_requestor = true;
|
||||
} else {
|
||||
delete jsondata.action_to_requestor;
|
||||
}
|
||||
} else if (params.func_enabled.myRole === 2) { // Ik ben BO
|
||||
jsondata.flag = ("flag" in jsondata) ? jsondata.flag : 4; // *Default* ZichtbaarUITV
|
||||
delete jsondata.notify_backoffice;
|
||||
if (jsondata.action_to_executor) {
|
||||
jsondata.flag = (jsondata.flag || 0) | 4; // *Altijd* ZichtbaarUITV
|
||||
jsondata.notify_executor = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Geen standaard REST_GET, dat doe je maar via het hoofdmodel/include
|
||||
this.templateREST_GET = function _GET(params)
|
||||
{
|
||||
@@ -267,27 +351,29 @@ function model_notes(module)
|
||||
this.REST_GET = this.templateREST_GET; // om het resultaat te kunnen opleveren
|
||||
params.filter.parent_key = parseInt(jsondata.parent, 10);
|
||||
if (!(params.filter.parent_key > 0))
|
||||
abort_with_warning(L("lcl_invalid_key"))
|
||||
if (!jsondata.author)
|
||||
jsondata.author = user_key;
|
||||
if (!params.filter.scope)
|
||||
params.filter.scope = "fe"; // default scope
|
||||
|
||||
// Is deze note een vraag aan de melder? Maak hem dan ook zichtbaar voor de melder (en uitvoerder zelf)
|
||||
if (jsondata.flag && jsondata.flag & 32)
|
||||
jsondata.flag = jsondata.flag | 5;
|
||||
abort_with_warning(L("lcl_invalid_key"));
|
||||
|
||||
_check_authorization(params, "POST");
|
||||
//
|
||||
|
||||
if (!jsondata.author) // Dit werkt niet echt hoor, overal wordt user(_key) gebruikt, bij shared.trackaction, de bepaling van myRole, etc ..
|
||||
jsondata.author = user_key;
|
||||
|
||||
this._validate_fields(params, jsondata);
|
||||
|
||||
var dbfields = api2.update_fields(params, this, jsondata); // Build updater
|
||||
dbfields["id"] = { dbs: tabel.id, typ: "key", seq: tabel.seq };
|
||||
|
||||
var xxxIns = buildInsert(this.table, dbfields, { noValidateToken: true });
|
||||
var new_key = xxxIns.sequences[tabel.id];
|
||||
params.note_key = xxxIns.sequences[tabel.id];
|
||||
|
||||
Oracle.Execute(xxxIns.sql);
|
||||
|
||||
return { key: new_key };
|
||||
if (module == "ORD") { // Momenteel alleen hier nog ondersteund
|
||||
_set_actiecode(params, jsondata);
|
||||
_track_and_notify(params, jsondata);
|
||||
}
|
||||
|
||||
return { key: params.note_key };
|
||||
}
|
||||
|
||||
// REST_DELETE = function (params, the_key) /* delete note doen we niet */
|
||||
|
||||
@@ -56,8 +56,8 @@ function model_objects(ins_key, params)
|
||||
"dwgx": { dbs: "ins_deel_dwgx", typ: "float", label: L("lcl_ins_deel_dwgx"), track: true},
|
||||
"dwgy": { dbs: "ins_deel_dwgy", typ: "float", label: L("lcl_ins_deel_dwgy"), track: true},
|
||||
"dwgz": { dbs: "ins_deel_dwgz", typ: "float", label: L("lcl_ins_deel_dwgz"), track: true},
|
||||
"dwgrotation": { dbs: "ins_deel_dwgrotatie", typ: "float", label: "Object rotatie", track: true}, // Vanaf 2024.2 -> L("lcl_ins_deel_dwg_rotatie")
|
||||
"dwgscale": { dbs: "ins_deel_dwgschaal", typ: "float", label: "Object schaal", track: true}, // Vanaf 2024.2 -> L("lcl_ins_deel_dwg_schaal")
|
||||
"dwgrotation": { dbs: "ins_deel_dwgrotatie", typ: "float", label: L("lcl_ins_deel_dwg_rotatie"), track: true},
|
||||
"dwgscale": { dbs: "ins_deel_dwgschaal", typ: "float", label: L("lcl_ins_deel_dwg_schaal"), track: true},
|
||||
"externnr": { dbs: "ins_deel_externnr", typ: "varchar", label: L("extern_nr"), readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR"))},
|
||||
"externsyncdate": { dbs: "ins_deel_externsyncdate", typ: "datetime", label: L("extern_syncdate"), readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR"))},
|
||||
"flag": { dbs: "ins_deel_flag", typ: "number", track: true, LOV:"", label: L("lcl_ins_flags")}
|
||||
@@ -257,7 +257,7 @@ function model_objects(ins_key, params)
|
||||
else
|
||||
placeholder.bind_msg.push(L("lcl_obj_bind_r"));
|
||||
}
|
||||
if ((bindingBits & BIND_WERKPL) && f.werkplekkey)
|
||||
if (bindingBits & BIND_WERKPL)
|
||||
{
|
||||
if (jsondata.workplace && jsondata.workplace > 0)
|
||||
{
|
||||
|
||||
@@ -828,6 +828,7 @@ function model_orders(opdr_key, params)
|
||||
var pkey = -1;
|
||||
if (tot_kosten > opdr_info.t_cost && tot_kosten > 0)
|
||||
{ // De totale kosten zijn verhoogd.
|
||||
var wasSelfapproved = false;
|
||||
// Bepaling oorspronkelijke (laatste) fiatteur, als die er was.
|
||||
sql = "SELECT pf.prs_perslid_key"
|
||||
+ " FROM fac_tracking tr"
|
||||
@@ -849,12 +850,20 @@ function model_orders(opdr_key, params)
|
||||
{ // Dan waren de opdracht kosten onder het mandaat van mijzelf of de BO-medewerker.
|
||||
// Als de kostenplaats bij de opdracht overruled is dan wordt altijd tegen het profiel van de BO-medewerker getest.
|
||||
if (mld_info.mld_kk == 1 && mld_info.kostenpl_key == kostenplaats_key && S("mld_opdr_ignore_caller_profile") == 0)
|
||||
pkey = mld_info.melder_key; // Melder/aanvrager van melding
|
||||
pkey = mld_info.melder_key; // Melder/aanvrager van melding
|
||||
else
|
||||
pkey = user_key; //getFParamInt("behandelaar"); // BO medewerker? dat is gewoon de user
|
||||
pkey = user_key; //getFParamInt("behandelaar"); // BO medewerker? dat is gewoon de user
|
||||
wasSelfapproved = true;
|
||||
}
|
||||
|
||||
if (S("mld_use_order_approval") && (tot_kosten > S("can_selfapprove") || budget.exceeds_profiel(tot_kosten, pkey, this_opdr.mld_opdr.opdr_disc_key)))
|
||||
if (S("mld_use_order_approval") &&
|
||||
((tot_kosten > opdr_info.fiatbedrag && // Als de totale kosten nog steeds onder het reeds gefiatteerde bedrag blijven, hoeven we niet te herfiatteren.
|
||||
((wasSelfapproved && tot_kosten > S("can_selfapprove")) ||
|
||||
(S("mld_opdr_reapproval_rate") == -1 && budget.exceeds_profiel(tot_kosten, pkey, this_opdr.mld_opdr.opdr_disc_key))
|
||||
)) ||
|
||||
(S("mld_opdr_reapproval_rate") >= 0 && tot_kosten > (opdr_info.t_cost * (1 + S("mld_opdr_reapproval_rate") / 100))) // Als de totale kosten een bepaald percentage toeneemt, moet geherfiatteerd worden.
|
||||
)
|
||||
)
|
||||
{ // Er moet (opnieuw) gefiatteerd worden. Is er wel iemand met voldoende mandaat? Indien er niemand gevonden kan worden mag de wijziging niet doorgaan.
|
||||
// Het mandaat is al te hoog voor de melder/aanvrager van de melding.
|
||||
// De melder/aanmaker van de melding mag niet zelf goedkeuren boven het bedrag can_selfapprove.
|
||||
|
||||
@@ -24,6 +24,7 @@ function model_prs_kostensoortgrp()
|
||||
this.autfunction = (S("bgt_enabled")==1 ? ["WEB_FINMSU", "WEB_BGTMGT"] : ["WEB_FINMSU"]);
|
||||
this.record_title = L("prs_kostensoortgrp");
|
||||
this.records_title = L("prs_kostensoortgrp_m");
|
||||
this.soft_delete = "prs_kostensoortgrp_verwijder";
|
||||
|
||||
var fields_main = {};
|
||||
var fields_ext = {};
|
||||
|
||||
@@ -132,7 +132,14 @@ function model_prs_perslid(params)
|
||||
"typ": "varchar",
|
||||
"len": 30,
|
||||
"filter": "exact",
|
||||
"caseinsensitive": true
|
||||
"caseinsensitive": true,
|
||||
"hasupper": "prs_perslid_oslogin"
|
||||
},
|
||||
"lastlogin": {
|
||||
"dbs": "prs_perslid_login",
|
||||
"label": L("lcl_prs_person_lastlogin"),
|
||||
"typ": "date",
|
||||
"readonly": true
|
||||
},
|
||||
"externallogin": { // SCIM only. Identiek aan prs_perslid_oslogin maar dan niet uppercased of afgekapt
|
||||
"dbs": "prs_perslid_externoslogin",
|
||||
|
||||
@@ -577,6 +577,30 @@ function report_GET(params)
|
||||
if (hasAggregate) break;
|
||||
}
|
||||
|
||||
// CLOB (mld_melding_omschrijving) mag niet in de ORDER BY genoemd worden
|
||||
// TODO: in de toekomst misschien explicieter rapport kolom type 'memo' onderkennen?
|
||||
var sqlc = "SELECT column_name, data_type"
|
||||
+ " FROM user_tab_columns"
|
||||
+ " WHERE table_name = " + safe.quoted_sql_upper(model.table);
|
||||
var oRs = Oracle.Execute(sqlc);
|
||||
var isclob = {};
|
||||
while (!oRs.EOF)
|
||||
{
|
||||
isclob[oRs("column_name").Value] = (oRs("data_type") == 'CLOB');
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close()
|
||||
|
||||
// CLOB is problematisch in GROUP BY
|
||||
for (var fld in model.fields)
|
||||
{
|
||||
var field = model.fields[fld];
|
||||
if (isclob[field.dbs.toUpperCase()])
|
||||
{
|
||||
field.sql = "TO_CHAR(SUBSTR({0}, 1, 4000))".format(field.dbs);
|
||||
}
|
||||
}
|
||||
|
||||
// Controleren of de urllink parameter een &##TRANSIT## heeft. Dan geven wel alle filtervelden door
|
||||
if (params.urllink && params.urllink.link && params.urllink.link.match(/&##TRANSIT##/i))
|
||||
{
|
||||
@@ -813,10 +837,15 @@ function report_GET(params)
|
||||
if (inselect && field.sorting) // is er niet voor scf_count/scf_ratio
|
||||
autosorting = autosorting && (field.sorting.id == 3)
|
||||
}
|
||||
|
||||
if (autosorting)
|
||||
{
|
||||
for (var i=0; i < query.selects.length; i++)
|
||||
order.push(i+1);
|
||||
{
|
||||
var colname = query.selects[i].split(".").pop().toUpperCase(); // achterste stuk
|
||||
if (!isclob[colname])
|
||||
order.push(i+1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -832,7 +861,7 @@ function report_GET(params)
|
||||
if (found && (!params.filter.distinct || (params.filter.distinct && (fld == params.filter.distinct))))
|
||||
{
|
||||
var field = this.fields[fld];
|
||||
if (field.sorting)
|
||||
if (field.sorting && !isclob[field.dbs.toUpperCase()])
|
||||
{
|
||||
// Sortering op x-as of y-as gebeurt nu verder op.
|
||||
// TODO: case 1 en 2 kunnen nu samen genomen worden.
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="./model_reportcolumns.inc" -->
|
||||
<!-- #include file="./model_fac_notificatie_job.inc" -->
|
||||
<%
|
||||
|
||||
function model_reportsx(usrrap_key, rapparams)
|
||||
@@ -267,6 +268,12 @@ function model_reportsx(usrrap_key, rapparams)
|
||||
"model": new model_reportcolumns(usrrap_key, { internal: rapparams.internal }),
|
||||
"joinfield": "fac_usrrap_key",
|
||||
"enable_update": true
|
||||
},
|
||||
"notificationjobs": {
|
||||
"model": new model_fac_notificatie_job({ niveau: "S"}),
|
||||
"joinfield": "fac_usrrap_key",
|
||||
"enable_update": true,
|
||||
"label": L("lcl_schedule_frm_report")
|
||||
}
|
||||
};
|
||||
|
||||
@@ -364,7 +371,7 @@ function model_reportsx(usrrap_key, rapparams)
|
||||
+ (query.wheres.length ? " WHERE " + query.wheres.join(" AND " ) : "")
|
||||
+ " ORDER BY fac_usrrap_volgnr NULLS LAST, fac_usrrap_omschrijving";
|
||||
|
||||
if (params.include && params.include.length)
|
||||
if (params.include && params.include.length && inArray("columns", params.include))
|
||||
sql += ", fac_usrrap_cols_volgnr";
|
||||
|
||||
var json = api2.sql2json (params, sql, this);
|
||||
|
||||
@@ -93,8 +93,13 @@ function model_res_srtactiviteit()
|
||||
"columns": [
|
||||
"id",
|
||||
"prefix",
|
||||
"name",
|
||||
"manner",
|
||||
"name"
|
||||
"costcentrerequired",
|
||||
"anonymous",
|
||||
"withdescription",
|
||||
"withremark",
|
||||
"withamount"
|
||||
]
|
||||
};
|
||||
this.search = {
|
||||
|
||||
@@ -30,11 +30,11 @@ function model_reservationconsumables()
|
||||
this.record_name = "reservationconsumable";
|
||||
|
||||
this.fields = {
|
||||
"id" : { dbs: "res_rsv_artikel_key", typ: "key" , seq:"res_s_res_rsv_artikel_key"},
|
||||
"id" : { dbs: "res_rsv_artikel_key", typ: "key", seq:"res_s_res_rsv_artikel_key"},
|
||||
"reservation": { dbs: "res_rsv_ruimte_key", typ: "key", foreign: "res_rsv_ruimte" },
|
||||
"consumable" : { dbs: "res_artikel_key", typ: "key", foreign: "res_artikel" },
|
||||
"freename" : { dbs: "res_rsv_artikel_omschrijving", typ: "varchar" },
|
||||
"amount" : { dbs: "res_rsv_artikel_aantal", typ: "number"},
|
||||
"amount" : { dbs: "res_rsv_artikel_aantal", typ: "number" },
|
||||
"status" : { dbs: "res_status_bo_key", typ: "key", foreign: status_bo },
|
||||
"from" : { dbs: "res_rsv_artikel_levering", typ: "datetime" },
|
||||
//"to" : { dbs: "res_rsv_artikel_tot", typ: "date" },
|
||||
@@ -45,7 +45,7 @@ function model_reservationconsumables()
|
||||
"dirtlevel" : { dbs: "res_rsv_artikel_dirtlevel", typ: "number" },
|
||||
"delivered" : { dbs: "res_rsv_artikel_geleverd", typ: "datetime" },
|
||||
"pickup" : { dbs: "res_rsv_artikel_afhalen", typ: "datetime" },
|
||||
"externnr" : { dbs: "res_rsv_artikel_externnr", typ: "varchar", readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) },
|
||||
"externnr" : { dbs: "res_rsv_artikel_externnr", typ: "varchar", readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) },
|
||||
"externsyncdate": { dbs: "res_rsv_artikel_externsyncdate", typ: "datetime", readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) }
|
||||
};
|
||||
|
||||
@@ -67,6 +67,29 @@ function model_reservationconsumables()
|
||||
params.authparams = user.checkAutorisation(this.autfunction, null, null, true); // pessimistisch
|
||||
}
|
||||
|
||||
this._check_dirty = function (rsv_ruimte_key, scope, this_res)
|
||||
{
|
||||
var check_fail_sql = "";
|
||||
var set_dirty_sql = "";
|
||||
if (!(S("res_fo_catering_scopeless") && (scope == "fo" || scope == "bo")))
|
||||
{ // Controle of artikelen dirty zijn.
|
||||
set_dirty_sql = " res.set_artikelen_dirty (" + rsv_ruimte_key + ");";
|
||||
if (S("res_fe_allow_dirty") != 1 && this_res.canChangeFEOnly)
|
||||
{
|
||||
check_fail_sql = " if res.dirty_level_all(" + rsv_ruimte_key + ") <> 0 then"
|
||||
+ " raise_application_error (-20001, " + safe.quoted_sql(L("lcl_res_fe_no_dirty")) + ");"
|
||||
+ " end if;"
|
||||
}
|
||||
}
|
||||
var sql = "BEGIN "
|
||||
+ set_dirty_sql
|
||||
+ check_fail_sql
|
||||
+ "END;";
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (err.friendlyMsg)
|
||||
abort_with_warning(err.friendlyMsg);
|
||||
}
|
||||
|
||||
this.REST_GET = function _GET(params)
|
||||
{
|
||||
this._validate_fields({}, params, {});
|
||||
@@ -113,15 +136,21 @@ function model_reservationconsumables()
|
||||
return json;
|
||||
};
|
||||
|
||||
this.REST_POST = function (params, jsondata) /* new reservable consumable */
|
||||
this.REST_POST = function (params, jsondata, parent_key) /* new reservable consumable */
|
||||
{
|
||||
var rsv_ruimte_key = parent_key;
|
||||
var res_artikel_key = jsondata.consumable.id;
|
||||
var this_res = res.func_enabled(rsv_ruimte_key); // Wat heb ik zoal aan rechten op deze specifieke reservering
|
||||
this._validate_fields({}, params, jsondata);
|
||||
|
||||
var sql = "SELECT ra.res_artikel_vrije_omschrijving"
|
||||
+ " , res_disc_params_bonotify"
|
||||
+ " FROM res_artikel ra"
|
||||
+ " WHERE ra.res_artikel_key = " + jsondata.consumable.id;
|
||||
+ " , res_disc_params rdp"
|
||||
+ " WHERE ra.res_discipline_key = rdp.res_ins_discipline_key"
|
||||
+ " AND ra.res_artikel_key = " + res_artikel_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var hasFreename = (oRs("res_artikel_vrije_omschrijving").Value == 1);
|
||||
var bonotify = oRs("res_disc_params_bonotify").Value == 1;
|
||||
oRs.Close();
|
||||
|
||||
if (hasFreename)
|
||||
@@ -138,19 +167,68 @@ function model_reservationconsumables()
|
||||
if (jsondata.amount == 0)
|
||||
abort_with_warning(L("lcl_res_rsv_art_count"));
|
||||
|
||||
return generic_REST_POST(this)(params, jsondata);
|
||||
params.sqlOnly = true;
|
||||
var gen_result = generic_REST_POST(this)(params, jsondata);
|
||||
var rsv_artikel_key = gen_result.newKey;
|
||||
delete params.sqlOnly;
|
||||
|
||||
// Controle of artikelen dirty zijn.
|
||||
var check_fail_sql = "";
|
||||
var set_dirty_sql = "";
|
||||
var set_noti_sql = "";
|
||||
if (!(S("res_fo_catering_scopeless") && (scope == "fo" || scope == "bo")))
|
||||
{
|
||||
set_dirty_sql = " res.set_artikelen_dirty (" + rsv_ruimte_key + ");";
|
||||
if (S("res_fe_allow_dirty") != 1 && this_res.canChangeFEOnly)
|
||||
{
|
||||
check_fail_sql = " if res.dirty_level_all(" + rsv_ruimte_key + ") <> 0 then"
|
||||
+ " raise_application_error (-20001, " + safe.quoted_sql(L("lcl_res_fe_no_dirty")) + ");"
|
||||
+ " end if;"
|
||||
}
|
||||
}
|
||||
if (bonotify)
|
||||
set_noti_sql = " res.notifybackoffice(" + rsv_ruimte_key + ", 'RESNEW', 'C', " + res_artikel_key + ");";
|
||||
var sql = "BEGIN "
|
||||
+ gen_result.genIns.sql + ";"
|
||||
+ set_dirty_sql
|
||||
+ check_fail_sql
|
||||
+ set_noti_sql
|
||||
+ "END;";
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (err.friendlyMsg)
|
||||
abort_with_warning(err.friendlyMsg);
|
||||
|
||||
// NB: parameter "track" in this.fields niet aanwezig, dus ook geen tracking!
|
||||
var trackarray = [res.trackartikel(res_artikel_key, "insert")];
|
||||
if (trackarray.length > 0 && !params.delayTracking)
|
||||
shared.trackaction("RESNEW", rsv_artikel_key, trackarray.join("\n"));
|
||||
|
||||
params.isNew = false; // Voorkom dat een volgende reservationconsumable ook een insert wordt.
|
||||
return { key: rsv_artikel_key };
|
||||
}
|
||||
|
||||
this.REST_PUT = function (params, jsondata, the_key) /* update reservable consumables */
|
||||
{
|
||||
var rsv_artikel_key = the_key;
|
||||
var scope = params.filter.scope || "fe";
|
||||
this._validate_fields({}, params, jsondata);
|
||||
|
||||
var sql = "SELECT r.res_rsv_ruimte_key"
|
||||
+ " FROM res_rsv_ruimte r"
|
||||
+ " , res_rsv_artikel a"
|
||||
+ " WHERE r.res_rsv_ruimte_key = a.res_rsv_ruimte_key"
|
||||
+ " AND a.res_rsv_artikel_key = " + rsv_artikel_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var rsv_ruimte_key = oRs("res_rsv_ruimte_key").value;
|
||||
oRs.Close();
|
||||
var this_res = res.func_enabled(rsv_ruimte_key); // Wat heb ik zoal aan rechten op deze specifieke reservering
|
||||
|
||||
var sql = "SELECT ra.res_artikel_vrije_omschrijving"
|
||||
+ " , rra.res_rsv_artikel_omschrijving"
|
||||
+ " FROM res_artikel ra"
|
||||
+ " , res_rsv_artikel rra"
|
||||
+ " WHERE ra.res_artikel_key = rra.res_artikel_key"
|
||||
+ " AND rra.res_rsv_artikel_key = " + the_key;
|
||||
+ " AND rra.res_rsv_artikel_key = " + rsv_artikel_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var hasFreename = (oRs("res_artikel_vrije_omschrijving").Value == 1);
|
||||
var curFreename = oRs("res_rsv_artikel_omschrijving").Value;
|
||||
@@ -176,7 +254,37 @@ function model_reservationconsumables()
|
||||
if (jsondata.amount == 0)
|
||||
abort_with_warning(L("lcl_res_rsv_art_count"));
|
||||
|
||||
return generic_REST_PUT(this)(params, jsondata, the_key);
|
||||
params.sqlOnly = true;
|
||||
var gen_result = generic_REST_PUT(this)(params, jsondata, the_key);
|
||||
delete params.sqlOnly;
|
||||
// Controle of artikelen dirty zijn.
|
||||
var check_fail_sql = "";
|
||||
var set_dirty_sql = "";
|
||||
if (!(S("res_fo_catering_scopeless") && (scope == "fo" || scope == "bo")))
|
||||
{
|
||||
set_dirty_sql = " res.set_artikelen_dirty (" + rsv_ruimte_key + ");";
|
||||
if (S("res_fe_allow_dirty") != 1 && this_res.canChangeFEOnly)
|
||||
{
|
||||
check_fail_sql = " if res.dirty_level_all(" + rsv_ruimte_key + ") <> 0 then"
|
||||
+ " raise_application_error (-20001, " + safe.quoted_sql(L("lcl_res_fe_no_dirty")) + ");"
|
||||
+ " end if;"
|
||||
}
|
||||
}
|
||||
var sql = "BEGIN "
|
||||
+ gen_result.genUpd.sql + ";"
|
||||
+ set_dirty_sql
|
||||
+ check_fail_sql
|
||||
+ "END;";
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (err.friendlyMsg)
|
||||
abort_with_warning(err.friendlyMsg);
|
||||
|
||||
// NB: parameter "track" in this.fields niet aanwezig, dus ook geen tracking!
|
||||
var trackarray = gen_result.genUpd.trackarray;
|
||||
if (trackarray.length > 0 && !params.delayTracking)
|
||||
shared.trackaction("RESUPD", the_key, L("lcl_updated") + "\n" + trackarray.join("\n"));
|
||||
|
||||
return { key: rsv_artikel_key };
|
||||
}
|
||||
|
||||
this.REST_DELETE = function (params, the_key) /* delete reservable consumable */
|
||||
|
||||
@@ -84,6 +84,10 @@ function error_handler(code, msg, orgHandler)
|
||||
code = code + " " + codestr;
|
||||
}
|
||||
FCLT.DEZE.Response.Status = code;
|
||||
|
||||
FCLT.DEZE.__Log("Aborting with status: " + code);
|
||||
FCLT.DEZE.__Log(data);
|
||||
|
||||
FCLT.DEZE.Response.End;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,9 +55,6 @@
|
||||
/* Globals */
|
||||
var FCLT;
|
||||
|
||||
// De omschrijving van de objecten in FACILITOR moet FW1, FW2 etc. zijn
|
||||
var scimgroups_srtdeel_key = 258418;
|
||||
|
||||
function initialize(params)
|
||||
{
|
||||
FCLT = params;
|
||||
@@ -86,6 +83,10 @@ function error_handler(code, msg, orgHandler)
|
||||
code = code + " " + codestr;
|
||||
}
|
||||
FCLT.DEZE.Response.Status = code;
|
||||
|
||||
FCLT.DEZE.__Log("Aborting with status: " + code);
|
||||
FCLT.DEZE.__Log(data);
|
||||
|
||||
FCLT.DEZE.Response.End;
|
||||
}
|
||||
|
||||
@@ -121,10 +122,21 @@ function transform_incoming(params, data)
|
||||
{
|
||||
externalid : data["externalId"],
|
||||
description: data["code"],
|
||||
name : data["externalId"],
|
||||
company : { name: "Schiphol Group" } // mag omdat company "desc_is_unique" heeft
|
||||
name : data["externalId"]
|
||||
};
|
||||
|
||||
if (params.method == "POST") // niet zetten bij een PUT (die misschien alleen kostenplaatsen bijwerkt): dan kan onbedoeld een afdeling naar het default bedrijf gezet raken
|
||||
{
|
||||
if (FCLT.DEZE.S("scim_default_bedrijf") > 0)
|
||||
{
|
||||
department.company = FCLT.DEZE.S("scim_default_bedrijf");
|
||||
}
|
||||
else
|
||||
{
|
||||
FCLT.DEZE._AiAi("Setting scim_default_bedrijf must have a value");
|
||||
}
|
||||
}
|
||||
|
||||
if ("costCenter" in data && data["costCenter"] != "")
|
||||
{
|
||||
department.costcentre = { name: data["costCenter"] }; // id mag achterwege blijven omdat desc_is_unique
|
||||
|
||||
@@ -346,8 +346,12 @@ FCLT.DEZE.__Log(data);
|
||||
var bedrijf_key = oRs("prs_bedrijf_key").Value;
|
||||
oRs.Close()
|
||||
}
|
||||
else
|
||||
{ // TODO: Kunnen we een default verzinnen?
|
||||
else if (FCLT.DEZE.S("scim_default_bedrijf") > 0)
|
||||
{
|
||||
var bedrijf_key = FCLT.DEZE.S("scim_default_bedrijf");
|
||||
}
|
||||
else
|
||||
{
|
||||
FCLT.DEZE.api2.error(400, "Missing organization for department");
|
||||
}
|
||||
|
||||
|
||||
@@ -2,14 +2,34 @@ table {
|
||||
color: #333;
|
||||
font-family: Verdana;
|
||||
font-size: smaller;
|
||||
border-collapse:
|
||||
collapse; border-spacing: 0;
|
||||
border-collapse: separate;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
td, th { border: 1px solid #CCC;
|
||||
table th {
|
||||
/* Apply both top and bottom borders to the <th> */
|
||||
border-top: 1px solid #CCC;
|
||||
border-bottom: 1px solid #CCC;
|
||||
border-right: 1px solid #CCC;
|
||||
}
|
||||
|
||||
table td {
|
||||
/* For cells, apply the border to one of each side only (right but not left, bottom but not top) */
|
||||
border-bottom: 1px solid #CCC;
|
||||
border-right: 1px solid #CCC;
|
||||
}
|
||||
|
||||
td, th {
|
||||
padding-left: .2em;
|
||||
padding-right: .2em;
|
||||
height: 1.3em; }
|
||||
height: 1.3em;
|
||||
}
|
||||
|
||||
table th:first-child,
|
||||
table td:first-child {
|
||||
/* Apply a left border on the first <td> or <th> in a row */
|
||||
border-left: 1px solid #CCC;
|
||||
}
|
||||
|
||||
th {
|
||||
background: #F3F3F3;
|
||||
|
||||
@@ -169,12 +169,14 @@ function doLogin(prs_key, params)
|
||||
+ " ( fac_menu_altlabel"
|
||||
+ " , fac_menu_alturl"
|
||||
+ " , fac_menu_altgroep"
|
||||
+ " , fac_menu_level"
|
||||
+ " , prs_perslid_key"
|
||||
+ " , fac_menu_volgnr"
|
||||
+ " ) VALUES"
|
||||
+ " (" + safe.quoted_sql(L("lcl_firstlogin_url"), 30)
|
||||
+ " ," + safe.quoted_sql(S("fac_firstlogin_url"))
|
||||
+ " ,5"
|
||||
+ " ,2"
|
||||
+ " ," + user_key
|
||||
+ " ,(SELECT 10 + COALESCE(MAX(fac_menu_volgnr), 0)"
|
||||
+ " FROM fac_menu"
|
||||
@@ -1170,15 +1172,15 @@ function jwt_decode(token)
|
||||
return result;
|
||||
};
|
||||
|
||||
function jwt_verify(decoded_jwt, secret, skew, duration)
|
||||
function jwt_verify(claim, secret, skew, duration)
|
||||
{
|
||||
skew = skew || 0;
|
||||
duration = duration || 0;
|
||||
if (decoded_jwt.header.alg != "HS256")
|
||||
if (claim.header.alg != "HS256")
|
||||
return { err: "Only HS256 is supported" };
|
||||
|
||||
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
|
||||
var sig = oCrypto.hex_hmac_sha256(secret, decoded_jwt.orgheaderSeg + "." + decoded_jwt.orgpayloadSeg);
|
||||
var sig = oCrypto.hex_hmac_sha256(secret, claim.orgheaderSeg + "." + claim.orgpayloadSeg);
|
||||
var sig64 = oCrypto.hex2base64(sig, false, true); // no padding, urlsafe
|
||||
|
||||
var now = new Date().getTime() / 1000;
|
||||
@@ -1190,30 +1192,65 @@ function jwt_verify(decoded_jwt, secret, skew, duration)
|
||||
return { err: 'Token not yet active' };
|
||||
}
|
||||
|
||||
if (claim.payload.exp && now > claim.payload.exp + skew) {
|
||||
return { err: 'Token expired at {0}'.format(toISODateTimeString(new Date(claim.payload.exp * 1000), true)) };
|
||||
if (claim.payload.exp)
|
||||
{
|
||||
if (now > claim.payload.exp + skew) {
|
||||
var txt = 'JWT token for {0} has expired at {1}'.format(claim.payload.username || claim.payload.perslid_key || claim.payload.email, toISODateTimeString(new Date(claim.payload.exp * 1000)))
|
||||
jwt_warn(claim, txt)
|
||||
return { err: txt };
|
||||
}
|
||||
else if (claim.payload.iat)
|
||||
{
|
||||
var dur = Math.floor((claim.payload.exp - claim.payload.iat) / 3600 / 24); // dagen
|
||||
var now = new Date().getTime() / 1000;
|
||||
var togo = Math.floor((claim.payload.exp - now) / 3600 / 24); // dagen
|
||||
if (dur > 14 && togo < 14)
|
||||
{
|
||||
var txt = "JWT token for {0} will expire soon at {1}".format(claim.payload.username || claim.payload.perslid_key || claim.payload.email, toISODateTimeString(new Date(claim.payload.exp * 1000)));
|
||||
jwt_warn(claim, txt)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Onze eigen duration/expiration controleren we ook nog
|
||||
if (claim.payload.iat + duration < now - skew) {
|
||||
__DoLog("Token expired. Now is {0}, got {1}, skew {2}".format(toISODateTimeString(new Date(now * 1000), true),
|
||||
toISODateTimeString(new Date(claim.payload.iat * 1000), true),
|
||||
__DoLog("Token expired. Now is {0}, got {1}, skew {2}".format(toISODateTimeString(new Date(now * 1000)),
|
||||
toISODateTimeString(new Date(claim.payload.iat * 1000)),
|
||||
skew));
|
||||
return { err: 'Token expired at {0}'.format(toISODateTimeString(new Date((claim.payload.iat + duration) * 1000), true)) };
|
||||
return { err: 'Token expired at {0}'.format(toISODateTimeString(new Date((claim.payload.iat + duration) * 1000))) };
|
||||
}
|
||||
if (claim.payload.iat > now + skew) {
|
||||
__DoLog("Token not yet active. Now is {0}, got {1}, skew {2}".format(toISODateTimeString(new Date(now * 1000), true),
|
||||
toISODateTimeString(new Date(claim.payload.iat * 1000), true),
|
||||
__DoLog("Token not yet active. Now is {0}, got {1}, skew {2}".format(toISODateTimeString(new Date(now * 1000)),
|
||||
toISODateTimeString(new Date(claim.payload.iat * 1000)),
|
||||
skew));
|
||||
return { err: 'Token not yet active' };
|
||||
}
|
||||
}
|
||||
if (decoded_jwt.signature64 == sig64)
|
||||
if (claim.signature64 == sig64)
|
||||
return { success: true }
|
||||
|
||||
return { err: "Token signature did not verify" };
|
||||
}
|
||||
|
||||
// Only warn once per day (or after application pool recycle)
|
||||
function jwt_warn(claim, subject)
|
||||
{
|
||||
var jwt_warn_name = customerId + "_JWT_WARN_" + claim.payload.jti; // uniek als het goed is
|
||||
if (!Application(jwt_warn_name))
|
||||
{
|
||||
Application.Lock();
|
||||
Application(jwt_warn_name) = toISODateTimeString(new Date(claim.payload.exp * 1000));
|
||||
Application.Unlock();
|
||||
|
||||
var body = JSON.stringify(claim.payload, null, 4);
|
||||
__DoLog(subject, "#FF0080")
|
||||
__DoLog(body);
|
||||
// Naar iedereen met PRSSYS
|
||||
var sql = "BEGIN fac.putsystemnotification({0}, 3); END;".format(safe.quoted_sql(subject + "<br><pre>" + body + "</pre>")); // 3=portal+email
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
}
|
||||
|
||||
// Kopie van UTILS\wsf_shared.js
|
||||
function getBearerToken(prs_key, idp_code, duration)
|
||||
{
|
||||
@@ -1517,7 +1554,8 @@ function process_claim_update(claim, idp_data, params)
|
||||
case 9: persdata["email"] = val; break;
|
||||
case 10: persdata["phone"] = val; break;
|
||||
case 11: persdata["mobile"] = val; break;
|
||||
case 12: persdata["externalid"] = val; break;
|
||||
case 12: // externalid, geen break
|
||||
case 13: persdata["externalid"] = val; break;
|
||||
// de foreigns
|
||||
case 20: if (val)
|
||||
persdata["function"] = { name: val }; break; // Kan omdat fields.function.desc_is_unique is gezet
|
||||
|
||||
@@ -61,6 +61,7 @@ if (DEBUGMODE)
|
||||
__Logging = idp_data.loglevel;
|
||||
__Log("Logging for this IdP ({0}) is forced on".format(idp_data.name), '#f00');
|
||||
}
|
||||
shared.registeraction("IDP_Login", { daily: 2, refkey: idp_data.id }); // Per dag tellen voor de statistieken
|
||||
|
||||
var svars = ["<pre>"]; // Voor logging
|
||||
|
||||
|
||||
@@ -263,6 +263,10 @@ if ((user_key < 0 || getQParamInt("jwtforce", 0) == 1) && jwt)
|
||||
+ safe.quoted_sql(agent, 256) + ", "
|
||||
+ safe.quoted_sql(ip, 64) + ")";
|
||||
Oracle.Execute(sql);
|
||||
|
||||
// Lang geldige tokens registeren we niet: die worden soms (SCIM) duizenden keren vlak achter elkaar gebruikt
|
||||
// Dan wil ik niet heel veel UPDATE's krijgen
|
||||
shared.registeraction("IDP_Login", { daily: 2, refkey: idp_data.id }); // Per dag tellen voor de statistieken
|
||||
}
|
||||
|
||||
// Onthouden hoe je bent binnengekomen zodat logout naar logout_url kan leiden
|
||||
|
||||
@@ -78,7 +78,9 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
|
||||
if (!punchwindow)
|
||||
{
|
||||
FcltMgr.setTitle(L("lcl_mld_new_bestelling"), {hot: true});
|
||||
<% if (act_key === -1) { %>
|
||||
FcltMgr.startEdit(window, {nomessage: true});
|
||||
<% } %>
|
||||
}
|
||||
<% } %>
|
||||
});
|
||||
@@ -98,7 +100,7 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
|
||||
if (params.bes_key > 0)
|
||||
{
|
||||
FcltMgr.stopEdit(window);
|
||||
$("#besFrame")[0].src = "bes_show_bestelling.asp?urole=<%=urole%>&bes_key=" + params.bes_key;
|
||||
$("#besframe")[0].src = "bes_show_bestelling.asp?urole=<%=urole%>&bes_key=" + params.bes_key;
|
||||
}
|
||||
else
|
||||
window.location.href = "bes_bestelling.asp?verynew=1&urole=<%=urole%>&bes_key=" + params.bes_key;
|
||||
@@ -111,7 +113,7 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
|
||||
else if (!params.keepForm)
|
||||
{
|
||||
FcltMgr.setTitle(L("lcl_bes_bestelling") + " " + "<%=S("bes_bestelling_prefix")%>" + params.bes_key);
|
||||
$("#besFrame")[0].src = "bes_show_bestelling.asp?urole=<%=urole%>&bes_key=" + params.bes_key + "&embedded=1";
|
||||
$("#besframe")[0].src = "bes_show_bestelling.asp?urole=<%=urole%>&bes_key=" + params.bes_key + "&embedded=1";
|
||||
}
|
||||
<% } %>
|
||||
}
|
||||
@@ -144,16 +146,22 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
|
||||
{
|
||||
%>
|
||||
<script type="text/javascript" >
|
||||
var disc_url = "bes_select_discipline.asp" + ("<%=correctie%>" == "1" ? "?intern=1" : "");
|
||||
var disc_url = "../bes/bes_select_discipline.asp" + ("<%=correctie%>" == "1" ? "?intern=1" : "");
|
||||
FcltMgr.openModalDetail(disc_url, "<%=L("lcl_bes_fac_select_cat")%>",
|
||||
{ nomessage: true,
|
||||
callback: function (data)
|
||||
{
|
||||
if (!data)
|
||||
FcltMgr.closeDetail(window, { cancel: true } );
|
||||
var page="bes_bestelling.asp?urole=<%=urole%><%=transitParam%>&dis_key=" + data.disc_key; // Maak een nieuw
|
||||
<% if (act_key > 0) { %>
|
||||
var page = "bes_edit_bestelling.asp";
|
||||
<% } else { %>
|
||||
var page = "bes_bestelling.asp";
|
||||
<% } %>
|
||||
page += "?urole=<%=urole%><%=transitParam%>&dis_key=" + data.disc_key; // Maak een nieuw
|
||||
window.location.href = page;
|
||||
}
|
||||
},
|
||||
noClose: <%=(act_key > 0 ? "true" : "false")%>
|
||||
});
|
||||
</script>
|
||||
<%
|
||||
@@ -231,7 +239,7 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
|
||||
}
|
||||
if (page != "")
|
||||
{
|
||||
IFRAMER("besFrame", page, { FcltClose: "besClose", title: L("lcl_bes_frame_algemeen")} );
|
||||
IFRAMER("besframe", page, { FcltClose: "besClose", title: L("lcl_bes_frame_algemeen")} );
|
||||
}
|
||||
if (bes_key > -1)
|
||||
{
|
||||
|
||||
@@ -202,8 +202,8 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
else // fronto
|
||||
{
|
||||
bes_bestelling.kostenplaats_key = -1;
|
||||
bes_bestelling.perslid_key = S("bes_fo_default_user") ? user_key : -1;
|
||||
bes_bestelling.perslid_key_voor = S("bes_fo_default_user") ? user_key : -1;
|
||||
bes_bestelling.perslid_key = (S("bes_fo_default_user") & 1) ? user_key : -1;
|
||||
bes_bestelling.perslid_key_voor = (S("bes_fo_default_user") & 1) ? user_key : -1;
|
||||
if (psrt_keys.length)
|
||||
{
|
||||
var sql = "SELECT sd.prs_bedrijf_key"
|
||||
@@ -247,6 +247,7 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
+ ", m.prs_kostenplaats_key"
|
||||
+ ", sd.ins_srtdiscipline_prefix mld_prefix"
|
||||
+ ", m.mld_adres_key"
|
||||
+ ", m.mld_alg_locatie_key"
|
||||
+ " FROM mld_melding m"
|
||||
+ ", prs_perslid p"
|
||||
+ ", mld_stdmelding sm"
|
||||
@@ -262,8 +263,11 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
|
||||
bes_bestelling.mld_prefix = oRs("mld_prefix").value;
|
||||
bes_bestelling.mld_adres_key = oRs("mld_adres_key").value;
|
||||
bes_bestelling.perslid_key = oRs("prs_perslid_key").value;
|
||||
bes_bestelling.perslid_key_voor = oRs("prs_perslid_key").value;
|
||||
bes_bestelling.alg_locatie_key = oRs("mld_alg_locatie_key").Value || -1;
|
||||
if (S("bes_fo_default_user") & 2) {
|
||||
bes_bestelling.perslid_key = S("bes_fo_default_user") ? oRs("prs_perslid_key").value : -1;
|
||||
bes_bestelling.perslid_key_voor = S("bes_fo_default_user") ? oRs("prs_perslid_key").value : -1;
|
||||
}
|
||||
bes_bestelling.kostenplaats_key = oRs("prs_kostenplaats_key").value || -1;
|
||||
oRs.close();
|
||||
}
|
||||
@@ -457,8 +461,7 @@ oRs.Close();
|
||||
else
|
||||
buttons.push({title: L("lcl_submit"), icon: "fa-fclt-save", action: "MakeOrder(1)", singlepress: true, id: "btn_bes_submit"});
|
||||
|
||||
if (bes_bestelling.fac_activiteit_key == -1)
|
||||
{
|
||||
if (bes_key > 0 || bes_bestelling.fac_activiteit_key == -1) {
|
||||
buttons.push({title: L("lcl_cancel"), icon: "fa-fclt-cancel", action: "bes_cancel()" });
|
||||
}
|
||||
|
||||
@@ -828,6 +831,7 @@ oRs.Close();
|
||||
{ trid: "deliveryaddress",
|
||||
label: L("lcl_delivery_address"),
|
||||
adresKey: bes_bestelling.mld_adres_key,
|
||||
locKey: bes_bestelling.alg_locatie_key,
|
||||
emptyOption: "",
|
||||
filtercode: "A",
|
||||
autlevel: ALGreadlevel,
|
||||
@@ -840,6 +844,7 @@ oRs.Close();
|
||||
+ " , m.mld_adres_naam"
|
||||
+ " FROM mld_adres m"
|
||||
+ " WHERE mld_adres_verwijder IS NULL"
|
||||
+ (bes_bestelling.alg_locatie_key > -1 ? " AND m.alg_locatie_key = " + bes_bestelling.alg_locatie_key : "")
|
||||
+ filtClause
|
||||
+ " ORDER BY m.mld_adres_key";
|
||||
var oRs = Oracle.Execute(sql_ad);
|
||||
|
||||
@@ -1780,11 +1780,11 @@ function bes_list (pautfunction, params)
|
||||
+ " || CHR(160)"
|
||||
+ " || CASE"
|
||||
+ " WHEN sk.bes_srtkenmerk_kenmerktype = 'R'"
|
||||
+ " OR sk.bes_srtkenmerk_kenmerktype = 'r'"
|
||||
+ " OR sk.bes_srtkenmerk_kenmerktype = 'S'"
|
||||
+ " THEN"
|
||||
+ " flx.getdomeinwaarde(sk.fac_kenmerkdomein_key, kbl.bes_kenmerkbestell_waarde)"
|
||||
+ " WHEN (sk.bes_srtkenmerk_kenmerktype = 'N'"
|
||||
+ " OR sk.bes_srtkenmerk_kenmerktype = 'B')"
|
||||
+ " WHEN sk.bes_srtkenmerk_kenmerktype = 'N'"
|
||||
+ " AND sk.bes_srtkenmerk_lengte = 1"
|
||||
+ " AND sk.bes_srtkenmerk_nmin = 0"
|
||||
+ " AND sk.bes_srtkenmerk_nmax = 1"
|
||||
|
||||
@@ -31,9 +31,10 @@ FCLTHeader.Requires({plugins:["suggest", "jQuery"],
|
||||
"./sel_items_tab.js" ] })
|
||||
|
||||
// AUTORISATIEPARAMETERS
|
||||
var urole = getQParamSafe("urole");
|
||||
var bes_key = getQParamInt("bes_key");
|
||||
var urole = getQParamSafe("urole");
|
||||
var bes_key = getQParamInt("bes_key");
|
||||
|
||||
/* ??? */
|
||||
fronto=true;
|
||||
backo=false;
|
||||
frontend=false;
|
||||
@@ -43,6 +44,11 @@ FCLTHeader.Requires({plugins:["suggest", "jQuery"],
|
||||
var this_bes = bes.func_enabled_bestelling(bes_bestelling);
|
||||
|
||||
user.auth_required_or_abort(this_bes.canReadAny);
|
||||
if (urole == "xx") { // Vanuit geplande taak
|
||||
var authparamsBESFOF = user.checkAutorisation("WEB_BESFOF", true, bes_bestelling.dis_key);
|
||||
urole = authparamsBESFOF ? "fo" : "fe";
|
||||
}
|
||||
|
||||
var subjectMail = L("lcl_bes_RFO") + S("bes_bestelling_prefix") + bes_key;
|
||||
var hasFOBOread = this_bes.canReadFOF || this_bes.canReadBOF;
|
||||
var urlMail = "../shared/queuemail.asp?pcode=BESMAI&defemail_key=" + bes_bestelling.perslid_key
|
||||
|
||||
@@ -301,7 +301,7 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera
|
||||
if (bes_bestelopdr.levkosten > 0)
|
||||
{ %>
|
||||
<tr>
|
||||
<td align="left" colspan="4"><label><%=L("lcl_bes_tpcosts")%></label></td>
|
||||
<td align="left" colspan="5"><label><%=L("lcl_bes_tpcosts")%></label></td>
|
||||
<td align="right">
|
||||
<span><%=safe.curr(bes_bestelopdr.levkosten)%></span>
|
||||
</td>
|
||||
|
||||
@@ -46,6 +46,8 @@ function opdr_list (pautfunction, params)
|
||||
// params.urole : the usuals two-letter lowercase string
|
||||
// params.outputmode : print to 0 = screen, 1 = printer, 2 = excel, etc.
|
||||
// params.showall : boolean (true | false)
|
||||
// params.datefrom : date
|
||||
// params.dateto : date
|
||||
// params.catalogus_key : key
|
||||
// params.besgroep_key : key
|
||||
// params.item_key : key
|
||||
@@ -78,6 +80,8 @@ function opdr_list (pautfunction, params)
|
||||
var excel = (outputmode == 2 || outputmode == 6);
|
||||
var showall = params.showall;
|
||||
|
||||
var datefrom = params.datefrom;
|
||||
var dateto = params.dateto;
|
||||
var opdr_id = params.opdr_id;
|
||||
var catalogus_key = params.catalogus_key;
|
||||
var besgroep_key = params.besgroep_key;
|
||||
@@ -156,8 +160,8 @@ function opdr_list (pautfunction, params)
|
||||
<%
|
||||
// Distinct omdat een bes_bestelopdr over meerdere bes_bestelling_items kan gaan
|
||||
sql = "SELECT DISTINCT b.bes_bestelopdr_key"
|
||||
+ " , bes_bestelopdr_datum datum"
|
||||
+ " , bes_bestelling_retourvan_key"
|
||||
+ " , b.bes_bestelopdr_datum datum"
|
||||
+ " , bst.bes_bestelling_retourvan_key"
|
||||
+ " , be.prs_bedrijf_naam prs_bedrijf_naam"
|
||||
// straks + ", bes.bestelopdr_tooltip(b.bes_bestelopdr_key) tooltip" // TODO JGL: Dit is een dure tooltip!
|
||||
+ " , b.bes_bestelopdr_status"
|
||||
@@ -189,11 +193,11 @@ function opdr_list (pautfunction, params)
|
||||
+ " || CHR(160)"
|
||||
+ " || CASE"
|
||||
+ " WHEN sk.bes_srtkenmerk_kenmerktype = 'R'"
|
||||
+ " OR sk.bes_srtkenmerk_kenmerktype = 'r'"
|
||||
+ " OR sk.bes_srtkenmerk_kenmerktype = 'S'"
|
||||
+ " THEN"
|
||||
+ " flx.getdomeinwaarde(sk.fac_kenmerkdomein_key, kbl.bes_kenmerkbestell_waarde)"
|
||||
+ " WHEN (sk.bes_srtkenmerk_kenmerktype = 'N'"
|
||||
+ " OR sk.bes_srtkenmerk_kenmerktype = 'B')"
|
||||
+ " WHEN sk.bes_srtkenmerk_kenmerktype = 'N'"
|
||||
+ " AND sk.bes_srtkenmerk_lengte = 1"
|
||||
+ " AND sk.bes_srtkenmerk_nmin = 0"
|
||||
+ " AND sk.bes_srtkenmerk_nmax = 1"
|
||||
@@ -255,6 +259,23 @@ function opdr_list (pautfunction, params)
|
||||
}
|
||||
else // Niet op opdrachtnummer gezocht, maar op andere criteria
|
||||
{
|
||||
if (datefrom && dateto)
|
||||
{
|
||||
var ora_date1 = datefrom.toSQL(true);
|
||||
var ora_date2 = dateto.toSQL(true);
|
||||
sql += " AND b.bes_bestelopdr_datum BETWEEN " + ora_date1 + " AND " + ora_date2;
|
||||
}
|
||||
else if (datefrom)
|
||||
{
|
||||
var ora_date1 = datefrom.beginToSQL();
|
||||
sql += " AND b.bes_bestelopdr_datum >= " + ora_date1;
|
||||
}
|
||||
else if (dateto)
|
||||
{
|
||||
var ora_date2 = dateto.endToSQL();
|
||||
sql += " AND b.bes_bestelopdr_datum < " + ora_date2;
|
||||
}
|
||||
|
||||
if (requestor_key) // opdracht behorende bij aanvrager van bestelling
|
||||
sql += " AND p.prs_perslid_key = " + requestor_key;
|
||||
|
||||
@@ -344,7 +365,7 @@ function opdr_list (pautfunction, params)
|
||||
// bes.bestelopdr_tooltip pas helemaal aan de buitenkant voor performance
|
||||
sql = "SELECT xx.*, bes.bestelopdr_tooltip (xx.bes_bestelopdr_key) tooltip"
|
||||
+ " FROM (" + sql + ") xx"
|
||||
+ " ORDER BY bes_bestelopdr_status, prs_bedrijf_naam, bes_bestelopdr_key DESC";
|
||||
+ " ORDER BY xx.bes_bestelopdr_status, xx.prs_bedrijf_naam, xx.bes_bestelopdr_key DESC";
|
||||
|
||||
/**********************************
|
||||
* Callback functies ResultsetTable
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<!-- #include file="../Shared/disciplineselector.inc" -->
|
||||
<!-- #include file="../Shared/srtgroepselector.inc" -->
|
||||
<!-- #include file="../Shared/srtdeelselector.inc" -->
|
||||
<!-- #include file="../Shared/calendar.inc" -->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins:["jQuery", "kenmerk"],
|
||||
@@ -29,6 +30,8 @@ var backo = (urole == "bo" || urole == "br");
|
||||
var minfo = (urole == "mi");
|
||||
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
|
||||
|
||||
var date_from = getQParamDate("date_from", null);
|
||||
var date_to = getQParamDate("date_to", null);
|
||||
var prs_key = getQParamInt("prs_key", -1); // Requestor_key
|
||||
var disc = getQParamInt("disc", -1); // catalogus
|
||||
var srtgroup = getQParamInt("srtgroup", -1); // groep
|
||||
@@ -159,9 +162,25 @@ oRs.Close();
|
||||
RWCHECKBOXTR("flag" + flagkey, "fldcheck", (flagkey == 0 ? L("lcl_bestelopdr_flags") : ""), 1, { twocols: true, posthtml: label });
|
||||
}
|
||||
}
|
||||
SEARCH_BLOCK_END();
|
||||
SEARCH_BLOCK_START();
|
||||
SEARCH_BLOCK_END();
|
||||
SEARCH_BLOCK_START();
|
||||
|
||||
// Datum van
|
||||
FCLTcalendar("date_from",
|
||||
{ label : L("lcl_period_from"),
|
||||
datum: date_from,
|
||||
initEmpty: date_from? false : true,
|
||||
trclass: "primsearch",
|
||||
volgnr: 1
|
||||
});
|
||||
// Datum tot
|
||||
FCLTcalendar("date_to",
|
||||
{ label: L("lcl_period_to"),
|
||||
datum: date_to,
|
||||
initEmpty: date_to? false : true,
|
||||
trclass: "primsearch",
|
||||
volgnr: 2
|
||||
});
|
||||
// Catalogus
|
||||
FCLTdisciplineselector("disc",
|
||||
"sgDisc",
|
||||
@@ -217,7 +236,7 @@ oRs.Close();
|
||||
<td class="label"><label for="opm"><%=L("lcl_bes_item_comment")%></label></td>
|
||||
<td><input type="text" class="fld wildcard" name="opm" value="<%=safe.htmlattr(opm)%>"></td>
|
||||
</tr>
|
||||
<% SEARCH_BLOCK_END();
|
||||
<% SEARCH_BLOCK_END();
|
||||
SEARCH_BLOCK_START({wide: true}); %>
|
||||
<!-- Statuses -->
|
||||
<tr class="primsearch">
|
||||
@@ -236,7 +255,7 @@ SEARCH_BLOCK_START({wide: true}); %>
|
||||
</nobr>
|
||||
</td>
|
||||
</tr>
|
||||
<% SEARCH_BLOCK_END();
|
||||
<% SEARCH_BLOCK_END();
|
||||
SIMPLE_BLOCK_START();
|
||||
var buttons = [{ title: L("lcl_overview_list"), action: "document.forms.u2.submit();", importance: 1, icon: "fa-clipboard-list"}];
|
||||
if (!frontend)
|
||||
@@ -257,4 +276,4 @@ SEARCH_BLOCK_START({wide: true}); %>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<% ASPPAGE_END(); %>
|
||||
<% ASPPAGE_END(); %>
|
||||
|
||||
@@ -38,6 +38,8 @@ if (opdr_id > 0)
|
||||
}
|
||||
else
|
||||
{ // Alleen als opdr_id (bestelopdracht key) niet opgegeven is, zijn de resterende parameters van belang!
|
||||
var datefrom = getQParamDate("date_from", null); // Periode van.
|
||||
var dateto = getQParamDate("date_to", null); // Perdiode tot.
|
||||
var catalogus_key = getQParamInt("disc", -1); // catalogus
|
||||
var besgroep_key = getQParamInt("srtgroep", -1); // groep
|
||||
var item_key = getQParamInt("srtdeel", -1); // item
|
||||
@@ -53,6 +55,8 @@ else
|
||||
var adr_key = getQParamInt("adr_key", -1);
|
||||
var loc_key = getQParamInt("loc_key", -1);
|
||||
|
||||
params.datefrom = datefrom;
|
||||
params.dateto = dateto;
|
||||
params.catalogus_key = (catalogus_key != -1? catalogus_key : null);
|
||||
params.besgroep_key = (besgroep_key != -1? besgroep_key : null);
|
||||
params.item_key = (item_key != -1? item_key : null);
|
||||
@@ -117,4 +121,4 @@ switch(urole)
|
||||
}
|
||||
|
||||
opdr_list(autfunction, params);
|
||||
%><% ASPPAGE_END(); %>
|
||||
%><% ASPPAGE_END(); %>
|
||||
|
||||
@@ -644,9 +644,8 @@ function checkInput()
|
||||
function makeorder_callback(json)
|
||||
{
|
||||
iface.button.enable("btn_bes_submit");
|
||||
if (json.success)
|
||||
{
|
||||
FcltMgr.closeDetail(window, { bes_key: json.bes_key, cancel: false });
|
||||
if (json.success) {
|
||||
FcltMgr.closeDetail(window, json);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,10 +4,13 @@
|
||||
$Id$
|
||||
|
||||
File: voorraadInfo.asp
|
||||
Note: Het bestand is unauthenticed aan te roepen (vanuit DynArtikelInfo.asp).
|
||||
Dat vind ik acceptabel voor de minimale informatie die het oplevert
|
||||
*/ %>
|
||||
|
||||
<%
|
||||
DOCTYPE_Disable = 1;
|
||||
var ANONYMOUS_Allowed = 1;
|
||||
%>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
|
||||
102
APPL/BEZ/bez.inc
102
APPL/BEZ/bez.inc
@@ -928,8 +928,108 @@ bez =
|
||||
if (aantal_gebter != 1)
|
||||
this.only_prkgebter = -1; // Gebruiker heeft gekozen via Suggest en getFParamInt("gebouwkey" + bznum, "") wordt gebruikt.
|
||||
return this.only_prkgebter;
|
||||
}
|
||||
},
|
||||
|
||||
faq_info: function _faq_info(loc_key, alg_key_arr, changed, is_popup, showall)
|
||||
{
|
||||
var has = { loc: loc_key && loc_key != -1
|
||||
, alg: alg_key_arr && alg_key_arr.length && alg_key_arr.length > 0
|
||||
};
|
||||
var result = { fixed_faq: []
|
||||
, popup_faq: false
|
||||
};
|
||||
var canFAQUSEread = user.checkAutorisation("WEB_FAQUSE", true);
|
||||
var canFAQFOFread = user.checkAutorisation("WEB_FAQFOF", true);
|
||||
|
||||
if (has.loc || has.alg)
|
||||
{
|
||||
var sql_select = " , 1 rank"
|
||||
+ " , DECODE (og.alg_onroerendgoed_keys,"
|
||||
+ " NULL, DECODE (af.alg_locatie_key,"
|
||||
+ " NULL, 'X', 'L'),"
|
||||
+ " og.alg_type) alg_type "
|
||||
+ " , fac_faq_displaymode displaymode";
|
||||
var sql_from = " , alg_algfaq af"
|
||||
+ " , alg_v_onroerendgoed og";
|
||||
var plaats_filter_arr = ["af.alg_algfaq_key IS NULL"]; // Voor plaats-scope-loze items: altijd.
|
||||
if (has.loc)
|
||||
plaats_filter_arr.push(" (af.alg_locatie_key = " + loc_key + " AND af.alg_onroerendgoed_keys IS NULL)");
|
||||
if (has.alg)
|
||||
plaats_filter_arr.push(" (af.alg_onroerendgoed_keys IN (" + alg_key_arr + "))");
|
||||
var sql_where = ( is_popup
|
||||
? " AND BITAND(ff.fac_faq_displaymode, 32) <> 0" // Minstens 32 (pop-up BEZ)
|
||||
: " AND ff.fac_faq_displaymode <> 0" // Minstens iets;
|
||||
)
|
||||
+ " AND ff.fac_faq_key = af.fac_faq_key(+)"
|
||||
+ " AND af.alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)"
|
||||
+ " AND ( (" + plaats_filter_arr.join(" OR ") + ")"
|
||||
+ " )";
|
||||
}
|
||||
else
|
||||
{
|
||||
var sql_select = " , 1 rank"
|
||||
+ " , 'X' alg_type"
|
||||
+ " , fac_faq_displaymode displaymode";
|
||||
var sql_from = "";
|
||||
var sql_where = ( is_popup
|
||||
? " AND BITAND(ff.fac_faq_displaymode, 32) <> 0" // Minstens 32 (pop-up BEZ)
|
||||
: " AND ff.fac_faq_displaymode <> 0" // Minstens iets;
|
||||
);
|
||||
}
|
||||
|
||||
if ((has.loc || has.alg) && (!is_popup || showall || changed >= 2))
|
||||
{
|
||||
var sql_bez = faq.getkennisbank_sql(sql_select, sql_from, sql_where);
|
||||
var sql = sql_bez
|
||||
+ " ORDER BY fac_faq_rank DESC NULLS LAST"
|
||||
+ " , fac_faq_datum DESC"
|
||||
+ " , fac_faq_question";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.eof)
|
||||
{
|
||||
var displaymode = oRs("displaymode").Value;
|
||||
|
||||
// Displaymode +16=Altijd tonen afspraak, +32=Pop-up afspraak.
|
||||
if ((displaymode & 32) == 32) // Pop-up
|
||||
{
|
||||
if ( ((S("faq_kennisbank_popup") & 1) && canFAQUSEread) // Voor FE
|
||||
|| ((S("faq_kennisbank_popup") & 2) && canFAQFOFread) // Voor FO
|
||||
)
|
||||
{
|
||||
result.popup_faq = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ((displaymode & (is_popup? 32 : 16)) == (is_popup? 32 : 16))
|
||||
{
|
||||
var data = { faq_key: oRs("fac_faq_key").Value
|
||||
, has_kenm: oRs("aantal_kenm").Value > 0
|
||||
, question: oRs("fac_faq_question").Value
|
||||
, answer: oRs("fac_faq_answer").Value
|
||||
, answer2: oRs("fac_faq_answer2").Value
|
||||
, displaymode: oRs("displaymode").Value
|
||||
, faq_type: "faq_X" + oRs("alg_type").Value
|
||||
};
|
||||
var fac_url = oRs("fac_faq_url").value;
|
||||
if (fac_url)
|
||||
{
|
||||
var arr = fac_url.split("|");
|
||||
var hurl = arr[0];
|
||||
data.hlnk = arr.length>1?arr[1]:hurl;
|
||||
|
||||
if (hurl.slice(0,4) == "http") // extern
|
||||
data.hurl = hurl;
|
||||
else // in cust subdir
|
||||
data.hurl = custpath + "/" + hurl;
|
||||
}
|
||||
result.fixed_faq.push(data);
|
||||
}
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
%>
|
||||
@@ -229,8 +229,12 @@ function process_freeprk_info(data, textStatus)
|
||||
else
|
||||
FcltMgr.alert("process_freeprk_info: " + textStatus);
|
||||
|
||||
if (data.init && typeof onChangeGebouw === "function")
|
||||
onChangeGebouw();
|
||||
if (data.init) {
|
||||
if (typeof onChangeGebouw === "function")
|
||||
onChangeGebouw();
|
||||
else if (typeof onChangeLocation === "function")
|
||||
onChangeLocation();
|
||||
}
|
||||
}
|
||||
|
||||
// Dit object wordt gevuld zodat we naar deze instellingen kunnen kijken zodra deze parkeerplaats gekozen wordt
|
||||
@@ -298,11 +302,19 @@ function get_freeprk_info(init)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (init && typeof onChangeGebouw === "function")
|
||||
onChangeGebouw();
|
||||
if (init) {
|
||||
if (typeof onChangeGebouw === "function")
|
||||
onChangeGebouw();
|
||||
else if (typeof onChangeLocation === "function")
|
||||
onChangeLocation();
|
||||
}
|
||||
$("#bezPrkFree").text("");
|
||||
}
|
||||
} // Als process_freeprk_info niet word uitgevoerd, moet alsnog onChangeGebouw worden uitgevoerd tijdens initialisatie (init)
|
||||
else if (init && typeof onChangeGebouw === "function")
|
||||
onChangeGebouw();
|
||||
else if (init) {
|
||||
if (typeof onChangeGebouw === "function")
|
||||
onChangeGebouw();
|
||||
else if (typeof onChangeLocation === "function")
|
||||
onChangeLocation();
|
||||
}
|
||||
}
|
||||
@@ -15,15 +15,8 @@ FCLTHeader.Requires({ plugins:[],
|
||||
var mld_opdr_key = getQParamInt("mld_opdr_key");
|
||||
var urole = getQParamSafe("urole");
|
||||
|
||||
var sql = "SELECT mld_melding_key"
|
||||
+ " FROM mld_opdr"
|
||||
+ " WHERE mld_opdr_key = " + mld_opdr_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var mld_key = oRs("mld_melding_key").value;
|
||||
oRs.Close();
|
||||
|
||||
var this_mld = mld.func_enabled_melding(mld_key); // Wat heb ik zoal aan rechten op deze specifieke melding
|
||||
user.auth_required_or_abort(this_mld.canReadAny);
|
||||
var this_opdr = mld.func_enabled_opdracht(mld_opdr_key); // faalt eventueel
|
||||
user.auth_required_or_abort(this_opdr.canReadAny);
|
||||
|
||||
var autfunction = ["WEB_BEZUSE"]; // Lopende zaken worden alleen getoond.
|
||||
var authparams = user.checkAutorisation(autfunction);
|
||||
|
||||
@@ -78,7 +78,7 @@ for (i = 0 ; i < bez_key_arr.length; i++)
|
||||
var loc_key = oRs_A("alg_locatie_key").Value;
|
||||
var onr_key = oRs_A("alg_onrgoed_keys").Value||-1;
|
||||
var seq_name = "ALG_LOCATIE_KEY_" + loc_key + "_BADGE"; // Badge nummering per locatie is de default.
|
||||
if ((S("vis_badgeprint_enable")&8) == 1) //badgenummering per gebouw
|
||||
if ((S("vis_badgeprint_enable")&8) == 8) //badgenummering per gebouw
|
||||
{
|
||||
if (onr_key > 0)
|
||||
{
|
||||
|
||||
@@ -24,12 +24,13 @@
|
||||
<!-- #include file="../Shared/plaatsselector.inc" -->
|
||||
<!-- #include file="../Shared/persoonselector.inc" -->
|
||||
<!-- #include file="./bez.inc" -->
|
||||
<!-- #include file="../fac/faq.inc" -->
|
||||
<!-- #include file="../mld/mld.inc" -->
|
||||
<!-- #include file="../prs/prs.inc" -->
|
||||
<!-- #include file="./bez_edit_bezoekers.inc" -->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({ js: ["./bez_edit_afspraak.js", "jquery.timepicker-table.js", "../bez/bez.js"],
|
||||
FCLTHeader.Requires({ js: ["./bez_edit_afspraak.js", "jquery.timepicker-table.js", "../bez/bez.js", "../fac/faq.js"],
|
||||
css: ["timePicker-table.css"] });
|
||||
|
||||
var afspr_key = getQParamInt("afspr_key", -1);
|
||||
@@ -177,6 +178,13 @@ else
|
||||
var isMldOpdracht = (bez_afspraak.mld_opdr_key > 0);
|
||||
if (isMldOpdracht)
|
||||
var mld_opdr = mld.mld_opdr_info(bez_afspraak.mld_opdr_key);
|
||||
|
||||
var faq_info = bez.faq_info(bez_afspraak.locatie_key,bez_afspraak.alg_onrg_key,-1,-1);
|
||||
for (i in faq_info.fixed_faq)
|
||||
{
|
||||
faq_info.fixed_faq[i].safe_answer = safe.fclthtml(faq_info.fixed_faq[i].answer);
|
||||
faq_info.fixed_faq[i].safe_answer2 = safe.fclthtml(faq_info.fixed_faq[i].answer2);
|
||||
}
|
||||
}
|
||||
var titel = "";
|
||||
if (S("bez_sel_contactpersoon") > 0 && S("bez_sel_internpersoon") == 1)
|
||||
@@ -193,9 +201,15 @@ else
|
||||
<script type="text/javascript">
|
||||
|
||||
var titel = "<%=safe.jsstring(titel)%>";
|
||||
|
||||
var faq_max_results_bez = "<%=S("faq_max_results_bez")%>";
|
||||
|
||||
$(function()
|
||||
{
|
||||
if (afspr_key > 0)
|
||||
{
|
||||
var JSONdataFaq = "<%=safe.jsstring(JSON.stringify(faq_info?faq_info.fixed_faq:null))%>";
|
||||
show_fixed_faq("bezFaq", -1, JSON.parse(JSONdataFaq), faq_max_results_bez);
|
||||
}
|
||||
$('textarea').resize(function () { FcltMgr.resized(window) } );
|
||||
$('textarea').autogrow();
|
||||
$("#prktype").on("changed", showRequireAll); // trigger showRequireAll when parking info has changed
|
||||
@@ -397,8 +411,10 @@ else
|
||||
gebouwkey: (eindlevel_nr > 2 ? bez_afspraak.gebouw_key : null),
|
||||
verdiepingkey: (eindlevel_nr > 3 ? bez_afspraak.verdieping_key : null),
|
||||
ruimtekey: (eindlevel_nr > 4 ? bez_afspraak.ruimte_key : null),
|
||||
onLocChange: "onChangeLocatie()",
|
||||
onGebChange: "onChangeGebouw()",
|
||||
onLocChange: "onChangeLocatie();",
|
||||
onGebChange: "onChangeGebouw();",
|
||||
onVerChange: "onChangeVerdieping();",
|
||||
onRuiChange: "onChangeRuimte();",
|
||||
escalateOnChUp: true, // Als hoger plaatsveld verandert (wordt ingevuld) als gevolg van lager plaatsveld dan ook onChange acties uitvoeren
|
||||
startlevel: 2, /*locatie*/
|
||||
eindlevel: eindlevel_nr,
|
||||
@@ -443,6 +459,10 @@ else
|
||||
)
|
||||
BLOCK_END();
|
||||
|
||||
BLOCK_START("bezFaq", L("lcl_faq_kennisbank"), { hidden: true, icon:"fa-book" });
|
||||
// Hier komen vaste aanwijzingen
|
||||
BLOCK_END();
|
||||
|
||||
BLOCK_START("bezBezoekers", L("lcl_vis_visitors"), { wide: true, nopadding: true, icon: "fa-users" });
|
||||
%> <tr>
|
||||
<td>
|
||||
|
||||
@@ -64,6 +64,7 @@ function changeLocatieCallback(data) {
|
||||
var init_act_key = $("#actie option:selected").val();
|
||||
fill_actie((data[0]?.key || -1), init_act_key);
|
||||
}
|
||||
onChangeAlg(2);
|
||||
onChangeGebouw();
|
||||
get_freeprk_info();
|
||||
}
|
||||
@@ -168,6 +169,7 @@ function process_gebouw_info(data, textStatus)
|
||||
{
|
||||
loadDateto();
|
||||
}
|
||||
onChangeAlg(3);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,6 +192,16 @@ function onChangeGebouw()
|
||||
}
|
||||
}
|
||||
|
||||
function onChangeVerdieping()
|
||||
{
|
||||
onChangeAlg(4);
|
||||
}
|
||||
|
||||
function onChangeRuimte()
|
||||
{
|
||||
onChangeAlg(5);
|
||||
}
|
||||
|
||||
function changeName(p_key, txt)
|
||||
{ // Change contact/aanvrager name
|
||||
if ((vis_afspraak_host_uses_keys & 1) == 1)
|
||||
@@ -632,3 +644,110 @@ function makeContact(rowNr)
|
||||
{ callback: makeContactSelected,
|
||||
rowNr: rowNr });
|
||||
}
|
||||
|
||||
function showFaq(faq_key)
|
||||
{
|
||||
if (faq_key > 0)
|
||||
FcltMgr.openDetail("appl/fac/fac_faq.asp?urole=fe&faq_key=" + faq_key, L("lcl_faq_item"), {reuse: true});
|
||||
}
|
||||
|
||||
function onChangeAlg(level)
|
||||
{
|
||||
var alg = [];
|
||||
var loc = -1;
|
||||
var temp = "";
|
||||
switch (level) {
|
||||
case 5: temp = $("#ruimtekey").val(); if (temp && temp != -1) alg.push(temp);
|
||||
case 4: temp = $("#verdiepingkey").val(); if (temp && temp != -1) alg.push(temp);
|
||||
case 3: temp = $("#gebouwkey").val(); if (temp && temp != -1) alg.push(temp);
|
||||
case 2: temp = $("#locatiekey").val(); if (temp && temp != -1) loc = temp;
|
||||
break;
|
||||
default: return; // Error
|
||||
}
|
||||
if ( (level == 2 && loc && loc > 0)
|
||||
|| (level > 2 && alg.length && alg.length <= (level - 2))
|
||||
)
|
||||
{
|
||||
$.getJSON( "./get_bez_info_ajax.asp"
|
||||
, { req_info: "faq_info"
|
||||
, loc_key: loc
|
||||
, alg_key_arr: alg.join(",")
|
||||
, changed: level
|
||||
}
|
||||
, callback_faq_info
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
show_fixed_faq("bezFaq", level, {}, faq_max_results_bez);
|
||||
}
|
||||
}
|
||||
function findFilledLevel()
|
||||
{
|
||||
var _level = 0;
|
||||
if (!!$("#locatie").val()) { _level = 2; } // location has a value
|
||||
if (!!$("#gebouw").val()) { _level = 3; } // building has a value
|
||||
if (!!$("#verdieping").val()) { _level = 4; } // floor has a value
|
||||
if (!!$("#ruimte").val()) { _level = 5; } // room has a value
|
||||
return _level;
|
||||
}
|
||||
function levelHasValue(level)
|
||||
{
|
||||
switch (level) {
|
||||
case 5: return $("#ruimtekey").val();
|
||||
case 4: return $("#verdiepingkey").val();
|
||||
case 3: return $("#gebouwkey").val();
|
||||
case 2: return $("#locatiekey").val();
|
||||
default: return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
var faq_info_timer;
|
||||
var cleared = null;
|
||||
function callback_faq_info(data)
|
||||
{
|
||||
if (data.popup_faq) // && !fromkb)
|
||||
{ // Een vertraging om bij meerdere callbacks achter elkaar alleen de laatste uit te voeren.
|
||||
if (window.faq_info_timer) {
|
||||
clearTimeout(window.faq_info_timer);
|
||||
}
|
||||
if (data.changed > 1) {
|
||||
if (!window.cleared || window.cleared == 1) {
|
||||
cleared += 2; // Plaats
|
||||
}
|
||||
}
|
||||
window.faq_info_timer = setTimeout(callback_faq_info_once.bind(null, data), 1500);
|
||||
}
|
||||
else
|
||||
{
|
||||
show_fixed_faq("bezFaq", data.changed, data.fixed_faq, faq_max_results_bez);
|
||||
}
|
||||
}
|
||||
|
||||
function callback_faq_info_once(data)
|
||||
{
|
||||
var filledlevel = findFilledLevel();
|
||||
|
||||
if (data.changed < 5 || requiredlevel <= filledlevel)
|
||||
{
|
||||
var url = "../bez/bez_faq.asp"
|
||||
+ "?loc_key=" + data.loc_key
|
||||
+ "&alg_key_arr=" + data.alg_key_arr.join(",")
|
||||
+ "&changed=" + data.changed;
|
||||
// Als dit de eerste en enige call naar bez_faq is, dan willen we alle kennisbankitems zien,
|
||||
// zo niet, dan alleen de items laten zien die gekoppeld zijn aan gewijzigde plaats.
|
||||
if (!window.cleared || window.cleared == 3) {
|
||||
url += "&showall=1";
|
||||
}
|
||||
FcltMgr.openModalDetail(url, L("lcl_bez_faq_stdmanswers"), { height: 200, width: 700, callback: bez_faq_list_callback } );
|
||||
}
|
||||
|
||||
show_fixed_faq("bezFaq", data.changed, data.fixed_faq, faq_max_results_bez);
|
||||
window.cleared = null;
|
||||
}
|
||||
|
||||
function bez_faq_list_callback(data)
|
||||
{
|
||||
// data.accept zal in praktijk altijd true zijn. Zelf nu dicht.
|
||||
FcltMgr.closeDetail(window, { cancel: true } );
|
||||
}
|
||||
|
||||
147
APPL/BEZ/bez_faq.asp
Normal file
147
APPL/BEZ/bez_faq.asp
Normal file
@@ -0,0 +1,147 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: bez_faq.asp
|
||||
Description: (Modal)dialoog om kennisbankitems aan melding te kunnen koppelen
|
||||
Parameters: stdm_key
|
||||
Context: Als net een melding is gekozen komt een popup met faq's
|
||||
Note: Als je zowel FO als FE rechten hebt zie je alle faq's
|
||||
voor deze melding
|
||||
*/
|
||||
%>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/selector.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../bez/bez.inc" -->
|
||||
<!-- #include file="../fac/faq.inc" -->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins: ["jQuery"],
|
||||
js: ["../fac/faq.js"] })
|
||||
|
||||
var ins_disc_key = getQParamInt("ins_disc_key", -1);
|
||||
var stdm_key = getQParamInt("stdm_key", -1);
|
||||
var typeopdr_key = getQParamInt("typeopdr_key", -1);
|
||||
var loc_key = getQParamInt("loc_key", -1);
|
||||
var alg_key_arr = getQParamIntArray("alg_key_arr", []);
|
||||
var changed = getQParamInt("changed", 1);
|
||||
var showall = getQParamInt("showall", 0);
|
||||
|
||||
var authparamsFOF = user.checkAutorisation("WEB_FAQFOF", true); // ziet (ook) FO-items
|
||||
var authparamsUSE = user.checkAutorisation("WEB_FAQUSE", true); // ziet (ook) FE-items
|
||||
user.auth_required_or_abort(authparamsUSE || authparamsFOF);
|
||||
%>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate() %>
|
||||
<script type='text/javascript'>
|
||||
|
||||
$(function ()
|
||||
{
|
||||
if (faqcount == 0)
|
||||
FcltMgr.closeDetail(window, { cancel: true });
|
||||
|
||||
$(".faqvraag").click(function() {
|
||||
$(this).siblings().last().toggle();
|
||||
FcltMgr.resized();
|
||||
});
|
||||
});
|
||||
|
||||
function showAnswer2(faq_key)
|
||||
{
|
||||
var x = $("#"+faq_key)[0];
|
||||
$(x.children[1]).css("display", "block");
|
||||
$(x.children[0]).remove();
|
||||
FcltMgr.resized();
|
||||
}
|
||||
|
||||
function faqSolvedCallback(data, textStatus)
|
||||
{
|
||||
FcltMgr.closeDetail(window, { accept: true });
|
||||
}
|
||||
|
||||
function faqSolved(faq_key)
|
||||
{ // Increment the rank of a FAQ (kennisbankitem)
|
||||
var data = {faq_key: faq_key};
|
||||
<% protectRequest.dataToken("data"); %>
|
||||
$.ajax({ type: "POST",
|
||||
url: "../fac/faq_increment_rank.asp",
|
||||
data: data,
|
||||
success: faqSolvedCallback,
|
||||
datatype: "json",
|
||||
async: false
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body class="modal" id="mod_faq">
|
||||
<% MODAL_START();
|
||||
MODAL_BLOCK_START("bezFaq", L("lcl_faq_kennisbank"), {icon: "fa-book-open"});%>
|
||||
<h3 id="faqhead"><%=I("fa-exclamation-circle fa-2x")+" "+L("lcl_faq_mld_1")%></h3>
|
||||
<div id="faqsubhead"><%=L("lcl_faq_mld_2")%></div>
|
||||
|
||||
<ul id="faqanswerlist">
|
||||
<%
|
||||
var data = bez.faq_info(loc_key, alg_key_arr, changed, true, showall);
|
||||
var oRs = data.fixed_faq;
|
||||
%>
|
||||
<script>
|
||||
var faqcount = <%=(oRs.length == 0 ? 0 : 1)%>;
|
||||
</script>
|
||||
<%
|
||||
for (i=0; i<oRs.length; i++)
|
||||
{
|
||||
%>
|
||||
<li>
|
||||
<div class="faqvraag"><a name="<%=oRs[i].faq_key%>"><%=safe.html(oRs[i].question)%></a></div>
|
||||
<div class="faqantwoord fclthtml">
|
||||
<%=safe.fclthtml(oRs[i].answer)%><br/>
|
||||
<%
|
||||
if (oRs[i].answer2)
|
||||
{
|
||||
%>
|
||||
<div class="faqanswer2" id="<%=oRs[i].faq_key%>"><a name="<%=oRs[i].faq_key%>" href="javascript:showAnswer2(<%=oRs[i].faq_key%>);"><%=L("lcl_faq_answer2")%></a>
|
||||
<div class="faqantwoord fclthtml">
|
||||
<%=safe.fclthtml(oRs[i].answer2)%><br/>
|
||||
</div>
|
||||
</div>
|
||||
<%
|
||||
}
|
||||
|
||||
if (oRs[i].hurl)
|
||||
{
|
||||
%> <a href="<%=safe.htmlattr(oRs[i].hurl)%>" target="_new"><%=safe.html(oRs[i].hlnk)%></a><br/>
|
||||
<% }
|
||||
else if (oRs[i].has_kenm)
|
||||
{
|
||||
%> <div class="faqlink"><a href="javascript:showFaq(<%=oRs[i].faq_key%>)"><%=L("lcl_more")%></a></div><br/>
|
||||
<% }
|
||||
%> <div id="faqsolved" onClick="faqSolved(<%=oRs[i].faq_key%>);" class="ref">
|
||||
<span class="button">
|
||||
<span title="<%=L("lcl_faq_mld_3")%>"><%=I("fa-check")%></span>
|
||||
<%=L("lcl_faq_mld_3")%>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
</ul>
|
||||
<div id="faqfoot"><%=L("lcl_faq_mld_4")%></div>
|
||||
<%
|
||||
MODAL_BLOCK_END();
|
||||
var buttons = [{title: L("lcl_faq_mld_5"), icon: "fa-arrow-circle-right", action: "FcltMgr.closeDetail(window, { cancel: true })"}];
|
||||
SIMPLE_BLOCK_START();
|
||||
CreateButtons(buttons, {showIcons: true});
|
||||
SIMPLE_BLOCK_END();
|
||||
MODAL_END();
|
||||
%>
|
||||
</body>
|
||||
</html>
|
||||
<% ASPPAGE_END(); %>
|
||||
@@ -236,9 +236,7 @@ function bez_list(pautfunction, params)
|
||||
+ " , a.bez_afspraak_eind bez_afspraak_eind")
|
||||
+ " , " + S("prs_pers_string") + " pers_naam"
|
||||
+ " , a.bez_afspraak_gastheer gastheer"
|
||||
+ " , " + (S("vis_afspraak_host_uses_keys") & 1 == 1
|
||||
? " COALESCE (p2.prs_perslid_telefoonnr, p2.prs_perslid_mobiel)"
|
||||
: " a.bez_afspraak_telefoonnr") + " gastheer_telf_nr"
|
||||
+ " , COALESCE(a.bez_afspraak_telefoonnr, p2.prs_perslid_telefoonnr, p2.prs_perslid_mobiel) gastheer_telf_nr"
|
||||
+ " , COALESCE(p.prs_perslid_telefoonnr, p.prs_perslid_mobiel) telf_nr"
|
||||
+ " , COALESCE(rr.res_ruimte_groep, a.bez_afspraak_ruimte, l.alg_locatie_omschrijving) ruimte"
|
||||
+ " , a.bez_afspraak_opmerking"
|
||||
@@ -376,13 +374,13 @@ function bez_list(pautfunction, params)
|
||||
+ (anyflex
|
||||
? " , (SELECT LISTAGG(" + (multiflex?"bez_kenmerk_omschrijving || ':'|| CHR(160) || ":"")
|
||||
+ " CASE"
|
||||
+ " WHEN k.bez_kenmerk_kenmerktype = 'R' OR k.bez_kenmerk_kenmerktype = 'S'"
|
||||
+ " WHEN k.bez_kenmerk_kenmerktype = 'R' OR k.bez_kenmerk_kenmerktype = 'r' OR k.bez_kenmerk_kenmerktype = 'S'"
|
||||
+ " THEN flx.getdomeinwaarde(k.fac_kenmerkdomein_key, kw.bez_kenmerkwaarde_waarde)"
|
||||
+ " WHEN (k.bez_kenmerk_kenmerktype = 'N' OR k.bez_kenmerk_kenmerktype = 'B') "
|
||||
+ " AND k.bez_kenmerk_lengte = 1 "
|
||||
+ " AND k.bez_kenmerk_nmin = 0 "
|
||||
+ " AND k.bez_kenmerk_nmax = 1 "
|
||||
+ " AND (k.bez_kenmerk_dec = 0 OR k.bez_kenmerk_dec IS NULL) "
|
||||
+ " WHEN k.bez_kenmerk_kenmerktype = 'N'"
|
||||
+ " AND k.bez_kenmerk_lengte = 1 "
|
||||
+ " AND k.bez_kenmerk_nmin = 0 "
|
||||
+ " AND k.bez_kenmerk_nmax = 1 "
|
||||
+ " AND (k.bez_kenmerk_dec = 0 OR k.bez_kenmerk_dec IS NULL) "
|
||||
+ " THEN DECODE (kw.bez_kenmerkwaarde_waarde, "
|
||||
+ " 0, "+safe.qL("lcl_check_0")+", "
|
||||
+ " 1, "+safe.qL("lcl_check_1")+", "
|
||||
|
||||
@@ -20,6 +20,7 @@ var JSON_Result = true;
|
||||
|
||||
<!-- #include file="../Shared/common.inc"-->
|
||||
<!-- #include file="./bez.inc" -->
|
||||
<!-- #include file="../fac/faq.inc" -->
|
||||
|
||||
<%
|
||||
var req_info = getQParam("req_info");
|
||||
@@ -71,6 +72,31 @@ switch (req_info)
|
||||
result = bez.bez_getacties(loc_arr, bld_arr, true).data;
|
||||
break;
|
||||
}
|
||||
case "faq_info":
|
||||
{
|
||||
var loc_key = getQParamInt("loc_key", -1);
|
||||
var alg_key_arr = getQParamIntArray("alg_key_arr", []);
|
||||
var changed = getQParamInt("changed", 2);
|
||||
var result = bez.faq_info(loc_key, alg_key_arr, changed);
|
||||
|
||||
for (i in result.fixed_faq)
|
||||
{
|
||||
result.fixed_faq[i].safe_answer = safe.fclthtml(result.fixed_faq[i].answer, {"faqlink": true});
|
||||
result.fixed_faq[i].safe_answer2 = safe.fclthtml(result.fixed_faq[i].answer2, {"faqlink": true});
|
||||
}
|
||||
result.loc_key = loc_key;
|
||||
result.alg_key_arr = alg_key_arr;
|
||||
result.changed = changed;
|
||||
break;
|
||||
}
|
||||
case "alg_algfaq_info":
|
||||
{
|
||||
var alg_key = getQParamInt("alg_key", -1);
|
||||
var loc_key = getQParamInt("loc_key", -1);
|
||||
var result = faq.alg_algfaq_info(loc_key, alg_key);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Response.Write(JSON.stringify(result));
|
||||
|
||||
@@ -309,18 +309,23 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , MAX(BGT.getBudgetOpDatum(pb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", " + v_sysdate.endToSQL() + ")) budget_actueel"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(pb.bgt_kostenrubriek_key, pb.prs_kostensoortgrp_key, pb.prs_kostensoort_key, "+ (bgt_inclbtw ? 2 : 0) + ", 'ARW', NULL)) budget_reserve"
|
||||
+ " , MAX(BGT.getBudgetSoortMutatie(pb.bgt_kostenrubriek_key, pb.prs_kostensoortgrp_key, pb.prs_kostensoort_key, "+ (bgt_inclbtw ? 2 : 0) + ", 'EM', NULL)) budget_mutatie"
|
||||
+ " FROM (SELECT p.*"
|
||||
+ " FROM (SELECT pr.*"
|
||||
+ " , (SELECT b.bgt_budget_key"
|
||||
+ " FROM bgt_budget b"
|
||||
+ " WHERE ((p.rcode <> 'R') AND (b.prs_kostensoort_key = p.prs_kostensoort_key))"
|
||||
+ " OR ((p.rcode = 'R') AND (b.bgt_kostenrubriek_key = p.bgt_kostenrubriek_key))"
|
||||
+ " WHERE ((pr.rcode <> 'R') AND (b.prs_kostensoort_key = pr.prs_kostensoort_key))"
|
||||
+ " OR ((pr.rcode = 'R') AND (b.bgt_kostenrubriek_key = pr.bgt_kostenrubriek_key))"
|
||||
+ " ) bgt_budget_key"
|
||||
+ " FROM bgt_v_project_full p"
|
||||
+ " WHERE p.bgt_project_verwijder IS NULL"
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND p.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ (bgtrubr_key > 0 ? "AND p.bgt_kostenrubriek_key = " + bgtrubr_key : "")
|
||||
+ (bgtgrp_key > 0 ? " AND p.prs_kostensoortgrp_key = " + bgtgrp_key : "")
|
||||
+ " AND p.ins_discipline_key = " + bgtdisc_key
|
||||
+ " FROM bgt_v_project_full pr"
|
||||
+ " , prs_kostensoortgrp kg"
|
||||
+ " , prs_kostensoort ks"
|
||||
+ " WHERE pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
|
||||
+ " AND pr.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
|
||||
+ " AND ks.prs_kostensoort_verwijder IS NULL"
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ (bgtrubr_key > 0 ? "AND pr.bgt_kostenrubriek_key = " + bgtrubr_key : "")
|
||||
+ (bgtgrp_key > 0 ? " AND pr.prs_kostensoortgrp_key = " + bgtgrp_key : "")
|
||||
+ " AND pr.ins_discipline_key = " + bgtdisc_key
|
||||
+ " ) pb"
|
||||
sql1 += " GROUP BY pb.kostengroep"
|
||||
+ ", pb.prs_kostensoort_key"
|
||||
@@ -352,6 +357,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , bd.budget_reserve"
|
||||
+ " , bd.budget_mutatie"
|
||||
+ " FROM bgt_v_project_full pr"
|
||||
+ " , prs_kostensoortgrp kg"
|
||||
+ " , prs_kostensoort ks"
|
||||
+ " , (SELECT sb.prs_kostensoortgrp_key"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", NULL)) budget_origineel"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", " + v_sysdate.endToSQL() + ")) budget_actueel"
|
||||
@@ -365,6 +372,9 @@ var transitParam = buildTransitParam([]);
|
||||
+ " GROUP BY sb.prs_kostensoortgrp_key"
|
||||
+ " ) bd"
|
||||
+ " WHERE pr.prs_kostensoortgrp_key = bd.prs_kostensoortgrp_key"
|
||||
+ " AND pr.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
|
||||
+ " AND pr.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
|
||||
+ " AND ks.prs_kostensoort_verwijder IS NULL"
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " UNION "
|
||||
+ "SELECT pr.project"
|
||||
@@ -382,6 +392,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , bd.budget_reserve"
|
||||
+ " , bd.budget_mutatie"
|
||||
+ " FROM bgt_v_project_full pr"
|
||||
+ " , prs_kostensoortgrp kg"
|
||||
+ " , prs_kostensoort ks"
|
||||
+ " , (SELECT sb.bgt_kostenrubriek_key"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", NULL)) budget_origineel"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", " + v_sysdate.endToSQL() + ")) budget_actueel"
|
||||
@@ -396,6 +408,9 @@ var transitParam = buildTransitParam([]);
|
||||
+ " GROUP BY sb.bgt_kostenrubriek_key"
|
||||
+ " ) bd"
|
||||
+ " WHERE pr.bgt_kostenrubriek_key = bd.bgt_kostenrubriek_key"
|
||||
+ " AND pr.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
|
||||
+ " AND pr.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
|
||||
+ " AND ks.prs_kostensoort_verwijder IS NULL"
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.prs_kostensoortgrp_key IS NULL"
|
||||
+ " AND (bd.budget_actueel <> 0 OR bd.budget_reserve <> 0 OR bd.budget_mutatie <> 0)";
|
||||
@@ -417,6 +432,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , bd.budget_reserve"
|
||||
+ " , bd.budget_mutatie"
|
||||
+ " FROM bgt_v_project_full pr"
|
||||
+ " , prs_kostensoortgrp kg"
|
||||
+ " , prs_kostensoort ks"
|
||||
+ " , (SELECT sb.bgt_project_key"
|
||||
+ " , sb.bgt_kostenrubriek_key"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, 0, NULL)) budget_origineel"
|
||||
@@ -431,6 +448,9 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , sb.bgt_kostenrubriek_key"
|
||||
+ " ) bd"
|
||||
+ " WHERE pr.bgt_project_key = bd.bgt_project_key"
|
||||
+ " AND pr.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
|
||||
+ " AND pr.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
|
||||
+ " AND ks.prs_kostensoort_verwijder IS NULL"
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.bgt_kostenrubriek_key = bd.bgt_kostenrubriek_key";
|
||||
|
||||
@@ -452,6 +472,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , MAX(bd.budget_reserve) budget_reserve"
|
||||
+ " , SUM(bd.budget_mutatie) budget_mutatie"
|
||||
+ " FROM bgt_v_project_full pr"
|
||||
+ " , prs_kostensoortgrp kg"
|
||||
+ " , prs_kostensoort ks"
|
||||
+ " , (SELECT sb.bgt_project_key"
|
||||
+ " , sb.bgt_kostenrubriek_key"
|
||||
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, 1, NULL)) budget_origineel"
|
||||
@@ -466,6 +488,9 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , sb.bgt_kostenrubriek_key"
|
||||
+ " ) bd"
|
||||
+ " WHERE pr.bgt_kostenrubriek_key = bd.bgt_kostenrubriek_key"
|
||||
+ " AND pr.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
|
||||
+ " AND pr.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
|
||||
+ " AND ks.prs_kostensoort_verwijder IS NULL"
|
||||
+ " AND pr.bgt_project_verwijder IS NULL"
|
||||
+ " AND pr.gcode IS NULL"
|
||||
+ " AND pr.scode IS NULL"
|
||||
@@ -503,7 +528,12 @@ var transitParam = buildTransitParam([]);
|
||||
+ " , project"
|
||||
+ " , subproject"
|
||||
+ " FROM bgt_v_project_full tp"
|
||||
+ " , prs_kostensoortgrp kg"
|
||||
+ " , prs_kostensoort ks"
|
||||
+ " WHERE tp.ins_discipline_key = " + bgtdisc_key
|
||||
+ " AND tp.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
|
||||
+ " AND tp.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
|
||||
+ " AND ks.prs_kostensoort_verwijder IS NULL"
|
||||
+ " AND tp.bgt_project_verwijder IS NULL"
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND tp.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " ) db"
|
||||
|
||||
@@ -442,6 +442,7 @@ function labelThema(cHandle, labelProps)
|
||||
// kleurProps.kleurThema: key in CAD_THEMA
|
||||
// kleurProps.fnSQL(viewname) levert key en waarde op
|
||||
// kleurProps.colorSymbol: optional: als true dan wordt het symbool zelf gekleurd ipv de contour
|
||||
// kleurProps.highlight_arr alleen highlighten als ze hier in voorkomen
|
||||
function kleurThema(cHandle, kleurProps)
|
||||
{ // Haal de schema definitie op
|
||||
var sql = "SELECT cad_thema_view, "
|
||||
@@ -491,19 +492,24 @@ function kleurThema(cHandle, kleurProps)
|
||||
rs_r = Oracle.Execute(sql);
|
||||
while (!rs_r.EOF)
|
||||
{
|
||||
var key = rs_r("KEY").Value;
|
||||
var kleur = parseInt(toHexValue(rs_r("cad_legendawaarde_rgb").value), 16)||0;
|
||||
if (kleurProps.highlight_arr && kleurProps.highlight_arr.length && key && !inArray(String(key.substr(2)), kleurProps.highlight_arr))
|
||||
{
|
||||
kleur = 0xC0C0C0;
|
||||
}
|
||||
if (!(rs_r("cad_legendawaarde_value").Value in legenda))
|
||||
legenda[rs_r("cad_legendawaarde_value").Value] = { kleur: kleur, count: 0, tekst: rs_r("cad_legendawaarde_omschr").Value };
|
||||
|
||||
var cnt = null;
|
||||
if (kleurProps.symbols)
|
||||
{
|
||||
var cntS = kleurProps.symbols[rs_r("KEY").Value];
|
||||
var cntS = kleurProps.symbols[key];
|
||||
if (cntS) cnt = cntS.s.Contour;
|
||||
}
|
||||
else
|
||||
{
|
||||
var cnt = cHandle.Contour(rs_r("KEY").Value);
|
||||
var cnt = cHandle.Contour(key);
|
||||
}
|
||||
if (cnt)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<%@ language="javascript"%>
|
||||
<%@ language="javascript"%>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
@@ -89,10 +89,10 @@ var geb_key = getQParamInt("geb_key", -1);
|
||||
var disc_key = getQParamInt("disc_key", -1) // De *object* discipline (typisch Bouwkunde)
|
||||
var restrict2res = getQParamIntArray("restrict2res_disc", []);
|
||||
var discs = getQParamIntArray("discs", []) // Te tonen disciplines (ondergrond bijvoorbeeld)
|
||||
var thema_key = getQParamInt("thema_key", 12); // In de core is een default thema met key 12 gedefinieerd (cad_v_thema_srtruimtesensor)
|
||||
if (thema_key == -1) thema_key=12; // alsnog, de code is nog niet bestand tegen themaloos aanroepen
|
||||
var thema_key = getQParamInt("thema_key", S("fg_infobordthema_key")); // In de core is een default thema met key <12> gedefinieerd (cad_v_thema_srtruimtesensor)
|
||||
if (thema_key == -1) thema_key = S("fg_infobordthema_key"); // alsnog, de code is nog niet bestand tegen themaloos aanroepen
|
||||
var themai_key = getQParamInt("themai", -1);
|
||||
var label_key = getQParamInt("label_key", 12);// In de core is een default labelthema met key 12 gedefinieerd (cad_v_label_bezetbareruimtes)
|
||||
var label_key = getQParamInt("label_key", S("fg_infobordlabel_key")); // In de core is een default labelthema met key <12> gedefinieerd (cad_v_label_bezetbareruimtes)
|
||||
var bordlabel_key = getQParamInt("bordlabel_key", -1);//
|
||||
var contmode = getQParamInt("contmode", 0); //
|
||||
|
||||
@@ -111,7 +111,7 @@ if (geb_key == -1 && floor_key != -1) {
|
||||
}
|
||||
var hidenav = getQParamInt("hidenav", 0); // optie: toon geen floornavigator
|
||||
|
||||
var fac_usrrap_key = getQParamInt("fac_usrrap_key", 12); // In de core is een default usrrap (res_v_rap_infobordframe) met key 12 gedefinieerd
|
||||
var fac_usrrap_key = getQParamInt("fac_usrrap_key", S("fg_infobordreport_key")); // In de core is een default usrrap (res_v_rap_infobordframe) met key <12> gedefinieerd
|
||||
|
||||
var zoomScale = getQParamFloat("zoomScale", -1);
|
||||
var zoomDWGX = getQParamFloat("zoomDWGX", null);
|
||||
@@ -464,7 +464,7 @@ if (thema_key > 0)
|
||||
+ " GROUP BY ar.alg_verdieping_key, ti.cad_legendawaarde_rgb, ti.cad_legendawaarde_rgb";
|
||||
}
|
||||
} else {
|
||||
var sqlMaxKleur = "/*TODO indien te ondersteunen*/";
|
||||
var sqlMaxKleur = "/*TODO indien te ondersteunen*/ SELECT NULL alg_verdieping_key, NULL waarde, NULL cad_legendawaarde_rgb, NULL aantal FROM DUAL";
|
||||
}
|
||||
|
||||
// TODO: Query optimalizeren zodat alleen <20><>n record met de hoogste 'waarde' er uit komen?
|
||||
|
||||
@@ -151,6 +151,11 @@ function myGeoProcessor(cHandle)
|
||||
\************************************************************/
|
||||
function myContourProcessor(cHandle)
|
||||
{
|
||||
if (S("fg_planforcecolor") >= 0) // vooralsnog geldt dit dus overal
|
||||
{
|
||||
cHandle.forcePlanColor = S("fg_planforcecolor");
|
||||
}
|
||||
|
||||
__Log("Scanning found {0} contours".format(cHandle.ContourCount));
|
||||
if (cHandle.DwgLimits)
|
||||
{
|
||||
@@ -332,6 +337,7 @@ function myContourProcessor(cHandle)
|
||||
if (themaType>0&&(themaType & 0x18) == 0x00) // Bit 4/5 moet 00 zijn voor contouren
|
||||
{
|
||||
kleurThema(cHandle, { kleurThema_key: pThema_key,
|
||||
highlight_arr: highlight_arr, // dan alleen degene hierin
|
||||
fnSql:function (viewName)
|
||||
{ return "SELECT 'R:' || ar." + colKey + " key, waarde"
|
||||
+ " FROM " + dbTable + " ar, " + viewName + " thema"
|
||||
|
||||
@@ -23,37 +23,65 @@ var showall = getQParam("showall", 0) == 1;
|
||||
var sql = "";
|
||||
if (floorKey != -1)
|
||||
{
|
||||
sql = " SELECT r.alg_ruimte_key, r.alg_ruimte_aanduiding, r.alg_srtruimte_omschrijving,"
|
||||
+ " r.alg_ruimte_bruto_vloeropp, r.alg_ruimte_omschrijving,"
|
||||
+ " r.alg_ruimte_opp_alt1, r.alg_ruimte_opp_alt2,"
|
||||
+ " (SELECT ROUND(100 * ra.prs_ruimteafdeling_bezetting / DECODE(SUM(ra2.prs_ruimteafdeling_bezetting),0,1,SUM(ra2.prs_ruimteafdeling_bezetting)))"
|
||||
+ " FROM prs_ruimteafdeling ra2"
|
||||
+ " WHERE ra.alg_ruimte_key = ra2.alg_ruimte_key"
|
||||
+ " GROUP BY ra.alg_ruimte_key) bezetting,"
|
||||
+ " (SELECT " + S("prs_dep_string")
|
||||
+ " FROM prs_v_afdeling d"
|
||||
+ " WHERE d.prs_afdeling_key = ra.prs_afdeling_key) afdeling"
|
||||
+ " FROM (SELECT alg_r.alg_ruimte_key alg_ruimte_key,"
|
||||
+ " alg_r.alg_ruimte_omschrijving alg_ruimte_omschrijving,"
|
||||
+ lcl.xsqla("alg_s.alg_srtruimte_omschrijving", "alg_s.alg_srtruimte_key")+","
|
||||
+ " alg_r.alg_ruimte_bruto_vloeropp, alg_r.alg_ruimte_opp_alt1, alg_r.alg_ruimte_opp_alt2,"
|
||||
+ " alg_g.alg_gebouw_code"
|
||||
+ " || '-'"
|
||||
+ " || TO_CHAR (alg_v.alg_verdieping_code)"
|
||||
+ " || '-'"
|
||||
+ " || alg_r.alg_ruimte_nr alg_ruimte_aanduiding"
|
||||
+ " FROM alg_gebouw alg_g,"
|
||||
+ " alg_verdieping alg_v,"
|
||||
+ " alg_v_aanwezigruimte alg_r,"
|
||||
+ " alg_srtruimte alg_s"
|
||||
+ " WHERE alg_v.alg_verdieping_key = " + floorKey
|
||||
+ " AND alg_v.alg_verdieping_key = alg_r.alg_verdieping_key"
|
||||
+ " AND alg_g.alg_gebouw_key = alg_v.alg_gebouw_key"
|
||||
+ " AND alg_r.alg_ruimte_nr NOT LIKE '\\_%' ESCAPE '\\' " // suppress virtual rooms
|
||||
+ " AND alg_r.alg_srtruimte_key = alg_s.alg_srtruimte_key(+)) r,"
|
||||
+ " prs_ruimteafdeling ra"
|
||||
+ " WHERE ra.alg_ruimte_key(+) = r.alg_ruimte_key"
|
||||
+ " AND ra.prs_ruimteafdeling_verwijder IS NULL"
|
||||
sql = "WITH current_ruimteafdeling AS"
|
||||
+ " (SELECT prs_ruimteafdeling_key"
|
||||
+ " , alg_ruimte_key"
|
||||
+ " , prs_afdeling_key"
|
||||
+ " , prs_ruimteafdeling_bezetting"
|
||||
+ " , prs_ruimteafdeling_ingangsdatum"
|
||||
+ " , prs_ruimteafdeling_einddatum"
|
||||
+ " FROM prs_ruimteafdeling ra"
|
||||
+ " WHERE ra.prs_ruimteafdeling_verwijder IS NULL"
|
||||
+ " AND ra.prs_ruimteafdeling_ingangsdatum < SYSDATE"
|
||||
+ " AND (ra.prs_ruimteafdeling_einddatum > SYSDATE OR ra.prs_ruimteafdeling_einddatum IS NULL)"
|
||||
+ " )"
|
||||
+ " , ruimte_perc_som AS"
|
||||
+ " (SELECT alg_ruimte_key"
|
||||
+ " , COALESCE(SUM(prs_ruimteafdeling_bezetting), 1) som_bezetting"
|
||||
+ " FROM current_ruimteafdeling"
|
||||
+ " GROUP BY alg_ruimte_key"
|
||||
+ ")"
|
||||
+ " , ruimte AS"
|
||||
+ " (SELECT alg_r.alg_ruimte_key alg_ruimte_key"
|
||||
+ " , alg_r.alg_ruimte_omschrijving alg_ruimte_omschrijving"
|
||||
+ " , " + lcl.xsqla("alg_s.alg_srtruimte_omschrijving", "alg_s.alg_srtruimte_key")
|
||||
+ " , alg_r.alg_ruimte_bruto_vloeropp"
|
||||
+ " , alg_r.alg_ruimte_opp_alt1"
|
||||
+ " , alg_r.alg_ruimte_opp_alt2"
|
||||
+ " , alg_g.alg_gebouw_code"
|
||||
+ " || '-'"
|
||||
+ " || TO_CHAR (alg_v.alg_verdieping_code)"
|
||||
+ " || '-'"
|
||||
+ " || alg_r.alg_ruimte_nr alg_ruimte_aanduiding"
|
||||
+ " FROM alg_gebouw alg_g"
|
||||
+ " , alg_verdieping alg_v"
|
||||
+ " , alg_v_aanwezigruimte alg_r"
|
||||
+ " , alg_srtruimte alg_s"
|
||||
+ " WHERE alg_v.alg_verdieping_key = " + floorKey
|
||||
+ " AND alg_v.alg_verdieping_key = alg_r.alg_verdieping_key"
|
||||
+ " AND alg_g.alg_gebouw_key = alg_v.alg_gebouw_key"
|
||||
+ " AND alg_r.alg_ruimte_nr NOT LIKE '\\_%' ESCAPE '\\' " // suppress virtual rooms
|
||||
+ " AND alg_r.alg_srtruimte_key = alg_s.alg_srtruimte_key(+)"
|
||||
+ " )"
|
||||
+ "SELECT cr.prs_ruimteafdeling_key"
|
||||
+ " , r.alg_ruimte_key"
|
||||
+ " , r.alg_ruimte_aanduiding"
|
||||
+ " , r.alg_srtruimte_omschrijving"
|
||||
+ " , r.alg_ruimte_bruto_vloeropp"
|
||||
+ " , r.alg_ruimte_omschrijving"
|
||||
+ " , r.alg_ruimte_opp_alt1"
|
||||
+ " , r.alg_ruimte_opp_alt2"
|
||||
+ " , (100 * cr.prs_ruimteafdeling_bezetting / rp.som_bezetting) bezet_perc"
|
||||
+ " , r.alg_ruimte_bruto_vloeropp * (cr.prs_ruimteafdeling_bezetting / rp.som_bezetting) bezet_vloeropp"
|
||||
+ " , (SELECT " + S("prs_dep_string")
|
||||
+ " FROM prs_v_afdeling d"
|
||||
+ " WHERE d.prs_afdeling_key = cr.prs_afdeling_key"
|
||||
+ " ) afdeling"
|
||||
+ " FROM current_ruimteafdeling cr"
|
||||
+ " , ruimte r"
|
||||
+ " , ruimte_perc_som rp"
|
||||
+ " WHERE cr.alg_ruimte_key = rp.alg_ruimte_key(+)"
|
||||
+ " AND cr.alg_ruimte_key(+) = r.alg_ruimte_key"
|
||||
+ (highlight_arr.length > 0 && highlight_arr.join(",").indexOf("-1") == -1
|
||||
? " AND r.alg_ruimte_key IN (" + highlight_arr.join(",") + ")"
|
||||
: "")
|
||||
@@ -84,11 +112,11 @@ else
|
||||
with (summaryParams)
|
||||
{
|
||||
// oRs("bezetting").value is null of heeft een waarde van 0 t/m 100
|
||||
if (oRs("bezetting").value || oRs("bezetting").value == 0)
|
||||
if (oRs("bezet_perc").value || oRs("bezet_perc").value == 0)
|
||||
{ // Voor de ruimte is er ten minste 1 bezetting gedefinineerd (prs_ruimteafdeling)
|
||||
// Totale bezetting per ruimte opgeteld is 100%
|
||||
// Bezetting is in procenten.
|
||||
var bezetting = oRs("bezetting").value / 100;
|
||||
var bezetting = oRs("bezet_perc").value / 100;
|
||||
}
|
||||
else
|
||||
{ // Voor de ruimte is er geen bezetting gedefinineerd (prs_ruimteafdeling)
|
||||
@@ -155,7 +183,7 @@ else
|
||||
rst.addColumn(new Column({caption: L("lcl_fg_func_names"), content: "alg_srtruimte_omschrijving"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_descr"), content: "alg_ruimte_omschrijving"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_department"), content: "afdeling"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_procent"), content: "bezetting", datatype: "float"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_procent"), content: "bezet_perc", datatype: "float"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_bruto_vloeropp"), content: fnOpp, datatype: "float"}));
|
||||
if (S("fg_contourlayers_alt1") != "" && S("fg_labellayers_alt1") != "")
|
||||
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_opp_alt1"), content: fnOppAlt1, datatype: "float"}));
|
||||
|
||||
35
APPL/CHAT/ChatClose.asp
Normal file
35
APPL/CHAT/ChatClose.asp
Normal file
@@ -0,0 +1,35 @@
|
||||
<%@language = "javascript" %>
|
||||
<%
|
||||
/*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
ChatterClose.asp
|
||||
|
||||
Bij sluiten van het scherm ChatterAccept moet de channelId van de accepting gebruiker verwijderd worden.
|
||||
|
||||
*/
|
||||
|
||||
var JSON_Result = true;
|
||||
%>
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="./chat.inc" -->
|
||||
<%
|
||||
|
||||
var acceptchannelId = getFParam("channelId");
|
||||
|
||||
var chat_queue = JSON.parse(Application(chat_queue_name) || "{}");
|
||||
if (acceptchannelId in chat_queue.accepting)
|
||||
{
|
||||
delete chat_queue.accepting[acceptchannelId];
|
||||
}
|
||||
Application.Lock();
|
||||
Application(chat_queue_name) = JSON.stringify(chat_queue);
|
||||
Application.UnLock();
|
||||
|
||||
result = {};
|
||||
|
||||
Response.Write(JSON.stringify(result));
|
||||
|
||||
ASPPAGE_END();
|
||||
%>
|
||||
@@ -16,16 +16,20 @@ var JSON_Result = true;
|
||||
<%
|
||||
|
||||
var wantchannelId = getQParam("channelId");
|
||||
|
||||
var chat_queue = JSON.parse(Application(chat_queue_name) || "{}");
|
||||
|
||||
if (wantchannelId in chat_queue.wanting)
|
||||
{
|
||||
chat_queue.wanting[wantchannelId].alive = new Date().getTime();
|
||||
Application.Lock();
|
||||
Application(chat_queue_name) = JSON.stringify(chat_queue);
|
||||
Application.UnLock();
|
||||
|
||||
result = { };
|
||||
Application.Lock();
|
||||
Application(chat_queue_name) = JSON.stringify(chat_queue);
|
||||
Application.UnLock();
|
||||
}
|
||||
var result = {hasChatOnline: 0};
|
||||
for (var ch in chat_queue.accepting)
|
||||
{
|
||||
result.hasChatOnline++;
|
||||
}
|
||||
|
||||
Response.Write(JSON.stringify(result));
|
||||
|
||||
|
||||
@@ -25,6 +25,11 @@ var chat_queue = JSON.parse(Application(chat_queue_name) || "{}");
|
||||
if (!chat_queue.accepting)
|
||||
chat_queue.accepting = {};
|
||||
|
||||
for (var ch in chat_queue.accepting)
|
||||
{ // Verwijder achtergebleven channels van deze gebruiker.
|
||||
if (chat_queue.accepting[ch].prs_key == user_key)
|
||||
delete chat_queue.accepting[ch];
|
||||
}
|
||||
chat_queue.accepting[acceptchannelId] = { prs_key: user_key, since: new Date() };
|
||||
|
||||
Application(chat_queue_name) = JSON.stringify(chat_queue);
|
||||
@@ -39,6 +44,7 @@ Application.UnLock();
|
||||
FcltMgr.startEdit(window); // maakt hem hot
|
||||
var acceptchannelId = "<%=acceptchannelId%>";
|
||||
var dis_key = <%=dis_key%>;
|
||||
|
||||
function accept_chat(x, y)
|
||||
{
|
||||
var wantId = $(this).data("wantid");
|
||||
@@ -48,6 +54,7 @@ Application.UnLock();
|
||||
FcltMgr.openDetail( "appl/chat/Chatter.asp?chatsendid=" + wantId + "&prs_key=" + prs_key + "&message=" + escape(message) + "&accept=1&naam=" + naam, L("lcl_chatter_incoming").format(naam));
|
||||
view_queue(); // op de achtergrond blijven refreshen
|
||||
}
|
||||
|
||||
async function show_queue(data)
|
||||
{
|
||||
//$("#chatqueue").html("<xmp>" + JSON.stringify(data, null, 4) + "</xmp>");
|
||||
@@ -106,6 +113,19 @@ Application.UnLock();
|
||||
FcltMgr.resized();
|
||||
notify.wait(window.acceptchannelId, null, view_queue, { alwaysafter: 10 });
|
||||
}
|
||||
|
||||
function onCloseHot()
|
||||
{
|
||||
var data = { channelId: "<%=acceptchannelId%>" };
|
||||
<% protectRequest.dataToken("data"); %>
|
||||
jQuery.ajaxSetup({async: false}); // Anders faalt o.a. bij IE9 de $.post bij afsluiten
|
||||
$.post( "ChatClose.asp"
|
||||
, data
|
||||
, FcltCallback
|
||||
, "json"
|
||||
);
|
||||
}
|
||||
|
||||
function view_queue()
|
||||
{
|
||||
$.getJSON( "./ChatQueueGet.asp" + (dis_key > 0 ? "?dis_key=" + dis_key : ""), show_queue);
|
||||
|
||||
@@ -23,7 +23,6 @@ var ins_discipline_omschrijving = get_disc_name(dis_key);
|
||||
// TODO: als er geen chat_queue.accepting zijn dat direct melden?
|
||||
Application.Lock();
|
||||
var chat_queue = JSON.parse(Application(chat_queue_name) || "{}");
|
||||
|
||||
Application.UnLock();
|
||||
%>
|
||||
<html>
|
||||
@@ -38,6 +37,7 @@ Application.UnLock();
|
||||
FcltMgr.startEdit(window); // maakt hem hot
|
||||
}
|
||||
|
||||
var hasChatOnline = 0;
|
||||
var wantchannelId = "<%=wantchannelId%>";
|
||||
var startMessage;
|
||||
var timerId;
|
||||
@@ -115,9 +115,15 @@ Application.UnLock();
|
||||
Response.Write("\nnotify.signal('{0}');".format(acceptchannelId));
|
||||
}
|
||||
%>
|
||||
function sendQueueAlive()
|
||||
function sendQueueAlive(init)
|
||||
{
|
||||
$.post("ChatQueueAlive.asp?channelId=" + wantchannelId);
|
||||
$.getJSON( "ChatQueueAlive.asp?channelId=" + wantchannelId
|
||||
, function(data)
|
||||
{ // Kijk opnieuw of er nog medewerkers aanwezig zijn om de chat te beantwoorden.
|
||||
hasChatOnline = data.hasChatOnline;
|
||||
handleChatOnline(init);
|
||||
}
|
||||
);
|
||||
}
|
||||
function handleEnter(event)
|
||||
{
|
||||
@@ -137,11 +143,32 @@ Application.UnLock();
|
||||
$(this).hide();
|
||||
$("span.spinnerbutton").show();
|
||||
}
|
||||
function handleChatOnline(init)
|
||||
{
|
||||
if (hasChatOnline > 0)
|
||||
{
|
||||
if (init)
|
||||
{
|
||||
$("#chatmsg").text("<%=L("lcl_chat_initialmsg")%>");
|
||||
$("span.spinnerbutton, span.cancelbutton").hide();
|
||||
$("#initialmsg").autogrow().focus().on("keydown", handleEnter);
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#chatmsg").text("<%=L("lcl_chat_waiting")%>");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#chatmsg").text("<%=L("lcl_chat_no_listeners")%>");
|
||||
$("div.text-wrapper").hide();
|
||||
}
|
||||
FcltMgr.resize();
|
||||
}
|
||||
|
||||
$(function () {
|
||||
$("span.spinnerbutton, span.cancelbutton").hide();
|
||||
$("#initialmsg").autogrow().focus().on("keydown", handleEnter);
|
||||
});
|
||||
sendQueueAlive(true);
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
@@ -151,7 +178,7 @@ Application.UnLock();
|
||||
<%BLOCK_START("chat", L("lcl_chatter_outgoing").format(ins_discipline_omschrijving), { icon: "fa-user-headset", center: true });%>
|
||||
|
||||
<div class="chatdisclaimer"><%=L("lcl_chat_disclaimer").format(ins_discipline_omschrijving)%></div>
|
||||
<div class="chatinitialmsg"><%=L("lcl_chat_initialmsg")%></div>
|
||||
<div class="chatinitialmsg" id="chatmsg"></div>
|
||||
<div class="text-wrapper">
|
||||
<textarea id="initialmsg" class="fldtxt" placeholder='<%=L("lcl_chat_initialmessage")%>'></textarea>
|
||||
<span class="sendbutton" onclick="chat_ask()" title="<%=L("lcl_chat_waiting").format(wantchannelId)%>">
|
||||
|
||||
@@ -893,6 +893,10 @@ cnt = { setcontractstatus:
|
||||
+ " FROM cnt_termijn"
|
||||
+ " WHERE cnt_termijn_key = cc.cnt_contract_rappeltermijn) rappeltermijn_oms"
|
||||
+ " , cnt.cnt_getRappeldatum(cc.cnt_contract_key) rappeldatum"
|
||||
+ " , cc.cnt_contract_verleng_termijn"
|
||||
+ " , (SELECT " + lcl.xsqla('cnt_termijn_omschrijving', 'cnt_termijn_key')
|
||||
+ " FROM cnt_termijn "
|
||||
+ " WHERE cnt_termijn_key = cc.cnt_contract_verleng_termijn) verlengtermijn_oms"
|
||||
+ " , cc.cnt_prs_bedrijf_key"
|
||||
+ " , (SELECT prs_bedrijf_naam"
|
||||
+ " FROM prs_bedrijf"
|
||||
@@ -941,6 +945,7 @@ cnt = { setcontractstatus:
|
||||
+ " , dp.cnt_disc_params_leverancier"
|
||||
+ " , dp.cnt_disc_params_uitvoerende"
|
||||
+ " , dp.cnt_disc_params_huurder"
|
||||
+ " , dp.cnt_disc_params_opties"
|
||||
+ " , cc.cnt_contract_mantel_key"
|
||||
+ " , mc.cnt_contract_nummer_intern mantelcontractnummer"
|
||||
+ " , mc.cnt_contract_omschrijving mantelomschrijving"
|
||||
@@ -998,6 +1003,8 @@ cnt = { setcontractstatus:
|
||||
rappeltermijn: oRs("cnt_contract_rappeltermijn").Value,
|
||||
rappeltermijn_oms: oRs("rappeltermijn_oms").Value,
|
||||
rappeldatum: new Date(oRs("rappeldatum").Value),
|
||||
verlengtermijn: oRs("cnt_contract_verleng_termijn").Value,
|
||||
verlengtermijn_oms: oRs("verlengtermijn_oms").Value,
|
||||
bedrijf_key: oRs("cnt_prs_bedrijf_key").Value,
|
||||
bedrijf_naam: oRs("bedrijf_naam").Value,
|
||||
perslid_key: oRs("cnt_prs_perslid_key").Value,
|
||||
@@ -1031,6 +1038,7 @@ cnt = { setcontractstatus:
|
||||
mantelomschrijving: oRs("mantelomschrijving").Value,
|
||||
nnScope: oRs("nnScope").Value,
|
||||
isAbonnement: oRs("bes_disc_params_contract").Value == 1,
|
||||
magAutomatischVerlengen: oRs("cnt_disc_params_opties").Value == 1,
|
||||
openfinref: oRs("openfinref").Value > 0
|
||||
};
|
||||
oRs.Close()
|
||||
|
||||
@@ -53,11 +53,11 @@ user.anything_todo_or_abort(this_cnt.canChangeSrt);
|
||||
+ " , cnt_kenmerk k_old"
|
||||
+ " , cnt_kenmerk k_new"
|
||||
+ " WHERE t.cnt_srtkenmerk_kenmerktype IN ('F', 'E', 'M')"
|
||||
+ " AND k_old.cnt_srtcontract_key = " + cnt_srt_current_key
|
||||
+ " AND ((k_old.cnt_srtcontract_key = " + cnt_srt_current_key + " AND k_new.cnt_srtcontract_key = " + cnt_srt_new_key + ")"
|
||||
+ " OR (k_old.cnt_srtcontract_key IS NULL AND k_new.cnt_srtcontract_key IS NULL))"
|
||||
+ " AND k_old.cnt_kenmerk_niveau = 'S'"
|
||||
+ " AND k_old.cnt_kenmerk_verwijder IS NULL"
|
||||
+ " AND k_old.cnt_srtkenmerk_key = t.cnt_srtkenmerk_key"
|
||||
+ " AND k_new.cnt_srtcontract_key = " + cnt_srt_new_key
|
||||
+ " AND k_new.cnt_kenmerk_niveau = 'S'"
|
||||
+ " AND k_new.cnt_kenmerk_verwijder IS NULL"
|
||||
+ " AND k_new.cnt_srtkenmerk_key = t.cnt_srtkenmerk_key"
|
||||
@@ -72,7 +72,7 @@ user.anything_todo_or_abort(this_cnt.canChangeSrt);
|
||||
+ " WHERE vkc.cnt_kenmerk_key = vk.cnt_kenmerk_key"
|
||||
+ " AND vk.cnt_srtkenmerk_key = vsk.cnt_srtkenmerk_key"
|
||||
+ " AND vkc.cnt_contract_key = " + cnt_key
|
||||
+ " AND vk.cnt_srtcontract_key = " + cnt_srt_current_key
|
||||
+ " AND (vk.cnt_srtcontract_key = " + cnt_srt_current_key + " OR vk.cnt_srtcontract_key IS NULL)"
|
||||
+ " AND COALESCE (vk.cnt_kenmerk_omschrijving, vsk.cnt_srtkenmerk_omschrijving)"
|
||||
+ " = COALESCE (k.cnt_kenmerk_omschrijving, sk.cnt_srtkenmerk_omschrijving)"
|
||||
+ " AND vk.cnt_srtkenmerk_key = k.cnt_srtkenmerk_key"
|
||||
@@ -83,7 +83,7 @@ user.anything_todo_or_abort(this_cnt.canChangeSrt);
|
||||
+ " , " + sql_waarde + " kenmerk_waarde"
|
||||
+ " FROM cnt_srtkenmerk sk"
|
||||
+ " , cnt_kenmerk k"
|
||||
+ " WHERE k.cnt_srtcontract_key = " + cnt_srt_new_key
|
||||
+ " WHERE (k.cnt_srtcontract_key = " + cnt_srt_new_key + "OR k.cnt_srtcontract_key IS NULL)"
|
||||
+ " AND k.cnt_kenmerk_niveau = 'S'"
|
||||
+ " AND k.cnt_kenmerk_verwijder IS NULL"
|
||||
+ " AND sk.cnt_srtkenmerk_verwijder IS NULL"
|
||||
|
||||
@@ -102,6 +102,7 @@ else // nieuw contract of copy
|
||||
+ " dp.cnt_disc_params_leverancier,"
|
||||
+ " dp.cnt_disc_params_uitvoerende,"
|
||||
+ " dp.cnt_disc_params_huurder,"
|
||||
+ " dp.cnt_disc_params_opties,"
|
||||
+ lcl.xsqla('cs.ins_discipline_omschrijving','cs.ins_discipline_key')
|
||||
+ ", (SELECT prs_kostensoort_oms || '-' || " + lcl.xsqla('prs_kostensoort_opmerking', 'prs_kostensoort_key')
|
||||
+ " FROM prs_kostensoort"
|
||||
@@ -122,6 +123,7 @@ else // nieuw contract of copy
|
||||
cnt_info.discipline_leverancier = oRs("cnt_disc_params_leverancier").Value;
|
||||
cnt_info.discipline_uitvoerende = oRs("cnt_disc_params_uitvoerende").Value;
|
||||
cnt_info.discipline_huurder = oRs("cnt_disc_params_huurder").Value;
|
||||
cnt_info.magAutomatischVerlengen = (oRs("cnt_disc_params_opties").Value & 1) == 1;
|
||||
|
||||
oRs.close();
|
||||
}
|
||||
@@ -136,6 +138,7 @@ else // nieuw contract of copy
|
||||
{
|
||||
$('textarea').autogrow();
|
||||
FcltMgr.resized(window)
|
||||
onChangeVerlengen();
|
||||
});
|
||||
|
||||
async function cnt_submit()
|
||||
@@ -334,17 +337,38 @@ else // nieuw contract of copy
|
||||
readonly: cnt_info.isAbonnement || !this_cnt.canChangeAlg
|
||||
});
|
||||
// Heb ik rechten om verlengen aan te passen. Alleen bij bestaande contracten
|
||||
if (cnt_key > -1 && cnt_info.isAbonnement)
|
||||
{ // Het is een abonnement contract
|
||||
sql_verlengen = "SELECT -1,' " + L("lcl_unknown") + "', 1 FROM DUAL"
|
||||
+ " UNION SELECT " + (cnt_info.verlenging > 1? "3" : "1") + ", " + safe.qL("lcl_Yes") + ", 2 FROM DUAL"
|
||||
+ " UNION SELECT " + (cnt_info.verlenging > 1? "2" : "0") + ", " + safe.qL("lcl_No") + ", 3 FROM DUAL"
|
||||
if ((cnt_key > -1 && cnt_info.isAbonnement) || cnt_info.magAutomatischVerlengen)
|
||||
{ // verlenging: &1 = verlenging nee/ja
|
||||
// &2 = keuze definitief (zie #23924)
|
||||
// &4 = automatsch verlengen
|
||||
sql_verlengen = "SELECT " + (((cnt_info.verlenging & 2) == 2) ? "2" : "0") + ", " + safe.qL("lcl_No") + ", 3 FROM DUAL"
|
||||
+ ( cnt_info.isAbonnement
|
||||
? " UNION SELECT -1, " + safe.qL("lcl_unknown") + ", 1 FROM DUAL"
|
||||
+ " UNION SELECT " + (((cnt_info.verlenging & 2) == 2) ? "3" : "1") + ", " + safe.qL("lcl_Yes") + ", 2 FROM DUAL"
|
||||
: ""
|
||||
)
|
||||
+ ( cnt_info.magAutomatischVerlengen
|
||||
? " UNION SELECT 5, " + safe.qL("lcl_cnt_prolongation_auto") + ", 4 FROM DUAL"
|
||||
: ""
|
||||
)
|
||||
+ " ORDER BY 3";
|
||||
FCLTselector("cntverlengen", sql_verlengen,
|
||||
{ label: L("lcl_cnt_verlengen"),
|
||||
initKey: cnt_info.verlenging,
|
||||
readonly: !this_cnt.canVerlengen // Als (cnt_verlenging > 1) dan is canVerlengen false.
|
||||
});
|
||||
readonly: !(cnt_info.magAutomatischVerlengen || this_cnt.canVerlengen), // Als (cnt_verlenging & 2 == 2) dan is canVerlengen false.
|
||||
onChange: "onChangeVerlengen()"
|
||||
});
|
||||
|
||||
if (cnt_info.magAutomatischVerlengen)
|
||||
{
|
||||
FCLTselector("cnt_prolongation_period", sql_termijnen,
|
||||
{ label: L("lcl_cnt_prolongation_period"),
|
||||
initKey: cnt_info.verlengtermijn,
|
||||
required: true,
|
||||
emptyOption: "",
|
||||
readonly: cnt_info.isAbonnement || !this_cnt.canChangeAlg
|
||||
});
|
||||
}
|
||||
}
|
||||
BLOCK_END();
|
||||
|
||||
|
||||
@@ -33,3 +33,12 @@ function onChangeDepartment(a_key)
|
||||
if (typeof sgCompany != "undefined") sgCompany.setValue(-1, ""); // Maak Bedrijf suggestbox leeg.
|
||||
}
|
||||
}
|
||||
|
||||
function onChangeVerlengen()
|
||||
{ // regel met verlengtermijn alleen tonen als automatisch verlengen geselecteerd is.
|
||||
var k = $("#cntverlengen").val();
|
||||
( (k == 5)
|
||||
? $("#cnt_prolongation_period").closest("tr").show()
|
||||
: $("#cnt_prolongation_period").closest("tr").hide()
|
||||
);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user