Compare commits
828 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29f16f67c0 | ||
|
|
4365918fe9 | ||
|
|
45ff2794e7 | ||
|
|
950da93ccc | ||
|
|
51accbeffc | ||
|
|
80b3a01969 | ||
|
|
117296f03d | ||
|
|
261c6a22a4 | ||
|
|
e809e5b8e1 | ||
|
|
844b32f3a0 | ||
|
|
ed6472396a | ||
|
|
88c2944e79 | ||
|
|
8bcaa2b94b | ||
|
|
2cc730f962 | ||
|
|
fdedbff9fe | ||
|
|
0b914fa65c | ||
|
|
0b69174301 | ||
|
|
b186f63118 | ||
|
|
62e28c1ab4 | ||
|
|
34285b48a8 | ||
|
|
baacbd46c8 | ||
|
|
fdececd773 | ||
|
|
7a4798eced | ||
|
|
c69b893912 | ||
|
|
d935a11d76 | ||
|
|
9e09f7a41e | ||
|
|
997102ff71 | ||
|
|
aa28658bfe | ||
|
|
ee8c99de5f | ||
|
|
637e13836c | ||
|
|
a6e00fe67e | ||
|
|
b5f8c484da | ||
|
|
cb9cf019e7 | ||
|
|
53fc9d3776 | ||
|
|
88c362d2c9 | ||
|
|
f67f6c3c28 | ||
|
|
07a66e6d74 | ||
|
|
d24130dd77 | ||
|
|
c10b99365e | ||
|
|
bacaa9588a | ||
|
|
1a51d2997b | ||
|
|
9c22ad7654 | ||
|
|
c5a2d1c4eb | ||
|
|
e5fcfa83c3 | ||
|
|
0571ae3d9f | ||
|
|
6a652b7cbe | ||
|
|
af49f35264 | ||
|
|
60f3d8f7ab | ||
|
|
16a0d4e55f | ||
|
|
346ab1b62b | ||
|
|
a2ff28a051 | ||
|
|
0098d47f84 | ||
|
|
b20ae8c4f9 | ||
|
|
91585146f5 | ||
|
|
a9c25b1ae4 | ||
|
|
905860f039 | ||
|
|
757fb0bdd5 | ||
|
|
308976cfcd | ||
|
|
63c2fd824d | ||
|
|
feab22b024 | ||
|
|
292ed7be59 | ||
|
|
db0dd82ea9 | ||
|
|
49de2250fb | ||
|
|
a458391ef6 | ||
|
|
6624bb5c86 | ||
|
|
88730b1d1a | ||
| d5e4d82713 | |||
|
|
7de4d8fb66 | ||
|
|
8b69c98ea8 | ||
|
|
25f6d9f717 | ||
|
|
626ccbd6a3 | ||
|
|
8d59f8099d | ||
|
|
96eb985390 | ||
|
|
73cd0f6e4a | ||
|
|
457b91d53f | ||
|
|
7be2556b5f | ||
|
|
a1fbee0106 | ||
|
|
b438f67be2 | ||
|
|
6a66847962 | ||
|
|
92df006862 | ||
|
|
7662e2013e | ||
|
|
44100d9402 | ||
|
|
12cc5a1764 | ||
|
|
b937f24d3c | ||
|
|
0e75f9f571 | ||
|
|
9fb8808065 | ||
|
|
2f03d013b3 | ||
|
|
b3d4d6a36c | ||
|
|
918d60eb27 | ||
|
|
6202277e02 | ||
|
|
5279d37e2b | ||
|
|
77f6bfb95e | ||
|
|
8fda3e4ec8 | ||
|
|
5a73dfaca2 | ||
|
|
00a91928e0 | ||
|
|
8cc83d009c | ||
|
|
0c1716716e | ||
|
|
a76a9c1f4d | ||
|
|
021d90f3cb | ||
|
|
5e16cf2c65 | ||
|
|
6115c9a74d | ||
|
|
294ec416b5 | ||
|
|
d72fceeabf | ||
|
|
3f97a1ff52 | ||
|
|
14303c71b6 | ||
|
|
270b7108c4 | ||
|
|
a412fcb04a | ||
|
|
9ffbecf333 | ||
|
|
f5ea61e62d | ||
|
|
691ee8db55 | ||
|
|
a233afc3a6 | ||
|
|
1c5c8ceb2e | ||
|
|
8438fe9824 | ||
|
|
32a3f76062 | ||
|
|
afa9d800ba | ||
|
|
a6b95bb85b | ||
|
|
b438a9d825 | ||
|
|
9749fc294f | ||
|
|
1655e0cb5d | ||
|
|
ff3a65142d | ||
|
|
b16b35e195 | ||
|
|
361778db73 | ||
|
|
fbe9884882 | ||
|
|
e11484b2a3 | ||
|
|
4c7329a8a4 | ||
|
|
6087d8dd8e | ||
|
|
1cffce04a2 | ||
|
|
e5e28ca83a | ||
|
|
32cf330d2b | ||
|
|
b1f5821361 | ||
|
|
e4e2d6e545 | ||
|
|
6cb7c6bcc8 | ||
|
|
0230d20b78 | ||
|
|
48a164393e | ||
|
|
f1129f39f8 | ||
|
|
58400ea9e4 | ||
|
|
4ec5b705d9 | ||
|
|
0b729e020e | ||
|
|
ed6100b513 | ||
|
|
a5b3324622 | ||
|
|
28490b06aa | ||
|
|
30300ef247 | ||
|
|
1e46466586 | ||
|
|
8a0d3ab486 | ||
|
|
f6891145dd | ||
|
|
4686f89be5 | ||
|
|
18bf4cd397 | ||
|
|
2114205b0c | ||
|
|
865b20cd72 | ||
|
|
86e41d0a31 | ||
|
|
cb03a44331 | ||
|
|
d01532fedd | ||
|
|
999f251ea0 | ||
|
|
cd1665a92d | ||
|
|
7b7f0ec1c2 | ||
|
|
2976c7b2ce | ||
|
|
6e9a17c313 | ||
|
|
b3e0ed6e5d | ||
|
|
b700f1295e | ||
|
|
3f2e5402f7 | ||
|
|
3812030e4c | ||
|
|
e8b7ae0145 | ||
|
|
f0f64e5212 | ||
|
|
bc726b789f | ||
|
|
05c9718e81 | ||
|
|
a6e0718b05 | ||
|
|
c47e0b15e9 | ||
|
|
685c6b5c01 | ||
|
|
469abf3a88 | ||
|
|
fa641ed47e | ||
|
|
81d712c85d | ||
| 19f1220f9d | |||
| bfb3dafe32 | |||
| 604bf1f4d3 | |||
|
|
3174c406ef | ||
|
|
2c1b586153 | ||
|
|
a3d53e9613 | ||
|
|
e7045274e9 | ||
|
|
3c97c39942 | ||
| 05efc1a42e | |||
|
|
8bfa41633f | ||
| 84959e2c6b | |||
|
|
cbcba32bf2 | ||
| aed2c3a842 | |||
|
|
ac39303c7f | ||
|
|
4980529d10 | ||
|
|
29ddfaf711 | ||
|
|
f5b7fa0f60 | ||
|
|
684d15fbc8 | ||
|
|
c652b2c44e | ||
|
|
94128e88d0 | ||
|
|
1f0ce4317a | ||
|
|
81c23d733f | ||
|
|
7ff221be36 | ||
|
|
5d123ee119 | ||
|
|
d61778eff2 | ||
|
|
ad983d0757 | ||
|
|
4f7c9ab34c | ||
|
|
a1d3328a7e | ||
|
|
b65d41c38a | ||
|
|
a8ed4c9e04 | ||
|
|
bf1ef4e3b8 | ||
|
|
75441f24ea | ||
|
|
9d1fb2b7c3 | ||
|
|
cdbd37c285 | ||
|
|
50480cdc36 | ||
|
|
ce01df8236 | ||
|
|
c31501fd7e | ||
|
|
ee0105fe92 | ||
| 7b30068aa2 | |||
|
|
95b3935fb6 | ||
|
|
9b28455b46 | ||
|
|
808e5f9bcb | ||
|
|
75d40d43c6 | ||
|
|
d382210d68 | ||
|
|
b240402621 | ||
|
|
6bd5205e37 | ||
|
|
6116b373aa | ||
|
|
a25f5d0859 | ||
|
|
5ef657689f | ||
|
|
8af4b19f10 | ||
|
|
93f24fdb93 | ||
|
|
a33b27f643 | ||
|
|
bddff652f1 | ||
|
|
0efb999d5e | ||
|
|
3f9e464851 | ||
|
|
594350b111 | ||
|
|
3e1218855c | ||
|
|
b53cffc018 | ||
|
|
67fa6a32f8 | ||
|
|
a743d47680 | ||
|
|
a2f40fa856 | ||
|
|
820e6f1fbc | ||
|
|
e1af6e1863 | ||
|
|
ff073c843f | ||
|
|
fc8256d1f0 | ||
|
|
63aaa6db76 | ||
|
|
75052d0244 | ||
|
|
7c38f34a4d | ||
|
|
2155e02579 | ||
|
|
c8d2658380 | ||
|
|
fc11f4204b | ||
|
|
c4be3f3968 | ||
|
|
60556a1249 | ||
|
|
8951e6337a | ||
|
|
56bf3fe46a | ||
|
|
0dc78540ec | ||
|
|
cde8ac0f22 | ||
|
|
3c76072171 | ||
|
|
628dc65c6a | ||
|
|
f72baf9a3d | ||
|
|
496361e21e | ||
|
|
c946ad47ed | ||
|
|
a746e326e9 | ||
|
|
61dc8b6751 | ||
|
|
f44ff960cc | ||
|
|
39a7cb2477 | ||
|
|
11b0a1ed8d | ||
|
|
a44abe5ed8 | ||
|
|
e3be249234 | ||
|
|
27e14fc077 | ||
|
|
0819b942ee | ||
|
|
1a20a61483 | ||
|
|
db716c1fb6 | ||
|
|
5ac8631c71 | ||
|
|
f6127e72bc | ||
|
|
399df120fd | ||
|
|
deb03a36b3 | ||
|
|
6a13f39b4c | ||
|
|
be4e98bfdb | ||
|
|
0a2f07d69e | ||
|
|
66f7f40a88 | ||
|
|
07bcb34b47 | ||
|
|
1e5810a9ac | ||
|
|
5fcaf83f36 | ||
|
|
c7c5cff952 | ||
|
|
2a3438345c | ||
|
|
3c03f256a1 | ||
|
|
5a6b928b4a | ||
|
|
e930e87683 | ||
|
|
9499267527 | ||
|
|
532c8d0997 | ||
|
|
acb31cd65f | ||
|
|
155b9d33ef | ||
|
|
a59aa520e4 | ||
|
|
f5c9226405 | ||
|
|
7e318f69bc | ||
|
|
c43e38804f | ||
|
|
77caa0065f | ||
|
|
cf496ff04f | ||
|
|
6049afee6c | ||
|
|
ed9315caaf | ||
|
|
1dfa14ef43 | ||
|
|
3b2562dacd | ||
|
|
f2b1db6956 | ||
|
|
09e865202b | ||
|
|
b4fe85523f | ||
|
|
0934f49e96 | ||
|
|
4ff3a39536 | ||
|
|
75017fd80a | ||
|
|
e4b5590315 | ||
| 1af6a2b166 | |||
|
|
057b8272ee | ||
|
|
4649c62a5d | ||
|
|
d782361628 | ||
| d56f6eab63 | |||
|
|
c05f6fead9 | ||
| ba69392c3b | |||
| 3885ad9190 | |||
|
|
3a6480369e | ||
|
|
274966a8d8 | ||
|
|
f2d91b8cce | ||
|
|
cae11e35d9 | ||
|
|
86a8c7d31a | ||
|
|
794de4dfbf | ||
|
|
0d757428e8 | ||
|
|
22d060b597 | ||
|
|
d15e0c71dc | ||
|
|
314459998c | ||
|
|
0cdf34023e | ||
|
|
68a847f3f8 | ||
|
|
5250c0a243 | ||
|
|
7640a64c97 | ||
|
|
1766b1ac8e | ||
|
|
5a201fefb7 | ||
|
|
497d2d89a5 | ||
|
|
982269ee07 | ||
|
|
b9c416a558 | ||
|
|
7978c6016f | ||
|
|
ebf8ec4624 | ||
|
|
9fdf5c062f | ||
|
|
b820c5822e | ||
|
|
bd1650945d | ||
|
|
aa8018c933 | ||
|
|
8bd8caccf7 | ||
|
|
6a1b719688 | ||
|
|
6af11c1752 | ||
|
|
1035b82dfb | ||
|
|
0c216042c9 | ||
|
|
07045a5e55 | ||
|
|
bce58c2fd8 | ||
|
|
5e351bcf22 | ||
|
|
2e11872702 | ||
|
|
8edd5c43ff | ||
|
|
5d6ca597ec | ||
|
|
3e0b02acbc | ||
|
|
43c50f3954 | ||
| 28e4452f6d | |||
| 0cf7f025ad | |||
|
|
e14dbfe81f | ||
|
|
cdd935db54 | ||
|
|
62b24f26d2 | ||
|
|
d963c3b497 | ||
|
|
40a5591aaf | ||
|
|
5bd85465c0 | ||
|
|
bfa9828be0 | ||
|
|
296a780217 | ||
|
|
a173d7ddb9 | ||
|
|
b7291180ad | ||
|
|
38f56f8c46 | ||
|
|
ab3db9c63a | ||
|
|
5b9a682b50 | ||
|
|
dff7fc9639 | ||
|
|
ee88332ad1 | ||
|
|
c5a4278a4a | ||
|
|
24cdecaac9 | ||
|
|
fee4ceedb2 | ||
|
|
c32e4905b2 | ||
|
|
6e3f70b2bf | ||
|
|
d15d900fe3 | ||
|
|
974f88cbea | ||
|
|
fc50695c42 | ||
|
|
a68fbacead | ||
|
|
d3bf2a7363 | ||
|
|
512c8c9d46 | ||
|
|
c92589c4b6 | ||
|
|
e93ac11f95 | ||
|
|
5fe00effe6 | ||
|
|
a7e7af0d44 | ||
|
|
cd96b20f2c | ||
|
|
d879b28636 | ||
|
|
7889c3fc21 | ||
|
|
76438f8c6f | ||
|
|
8bf3032215 | ||
|
|
41b089f1ec | ||
|
|
0c29613bed | ||
|
|
cae0b3dad1 | ||
|
|
24eab7c7df | ||
|
|
0e80c8971c | ||
|
|
52385311d8 | ||
|
|
b714c982fb | ||
|
|
896843c831 | ||
|
|
c12cc80977 | ||
|
|
e38c917af6 | ||
|
|
3eb9ebad5d | ||
|
|
5c81990e31 | ||
| 8526b7a296 | |||
|
|
17434068ee | ||
|
|
f3949e7fb2 | ||
| de6e3f5976 | |||
|
|
a1aa90241e | ||
|
|
d4478b1656 | ||
| 9de2415208 | |||
|
|
4cf97c0060 | ||
|
|
6c4db16d56 | ||
|
|
70dbcc1545 | ||
|
|
e9b02a5b1c | ||
|
|
9704312c8f | ||
| a2d0f9ed8e | |||
|
|
fe5fb53831 | ||
|
|
3d5077d7b7 | ||
|
|
5b974bcb34 | ||
|
|
65c5e35e25 | ||
|
|
d001395b50 | ||
|
|
c8fd6481fc | ||
|
|
d9596e481e | ||
|
|
c6905d4941 | ||
|
|
3807655c7d | ||
|
|
84af495bf4 | ||
|
|
d85c12eccf | ||
|
|
7fcb4e6f49 | ||
|
|
9407f389cd | ||
|
|
6aaa659a22 | ||
|
|
82a5ab6bc4 | ||
|
|
672ec6d8f0 | ||
|
|
43868d6116 | ||
|
|
e0b084030c | ||
|
|
8dabac3eaa | ||
|
|
795ba64386 | ||
|
|
01127cd110 | ||
|
|
4636d3a3ce | ||
|
|
43dc2a4b59 | ||
|
|
6523eee027 | ||
|
|
bda4b846f1 | ||
|
|
8b84b802f0 | ||
|
|
81bffc5732 | ||
|
|
626f014d64 | ||
|
|
13a921d012 | ||
|
|
cbb9b1b9ef | ||
| ecf4fef4ab | |||
|
|
79b64ab6ee | ||
|
|
cb6be74e48 | ||
|
|
a2063cf198 | ||
|
|
0d790ba318 | ||
|
|
158e009aa7 | ||
|
|
f6c6b5b469 | ||
|
|
a9234628c1 | ||
|
|
c062d8334f | ||
|
|
590418f619 | ||
| 8b5508f695 | |||
|
|
122a5a4b9d | ||
|
|
0d8d82691b | ||
|
|
4a106ad8ce | ||
|
|
ca6e4b3d49 | ||
|
|
d076fd4813 | ||
|
|
03456ef3e4 | ||
|
|
11cece395c | ||
|
|
c82d8bae43 | ||
|
|
46f2f89997 | ||
|
|
225a06c333 | ||
|
|
19d94b3954 | ||
|
|
683dac579f | ||
|
|
afe0b3ce43 | ||
|
|
a3ace21789 | ||
|
|
7b273724f4 | ||
|
|
fb2c6fc204 | ||
|
|
282bebba8e | ||
|
|
687476b415 | ||
|
|
7b314236c8 | ||
|
|
88a4b4e426 | ||
|
|
9840639590 | ||
|
|
f7fae992cb | ||
|
|
01509241d0 | ||
|
|
defad965d4 | ||
|
|
18793a6a5b | ||
|
|
8e55c010b1 | ||
|
|
4350281c1f | ||
|
|
ddf1860ccf | ||
|
|
e388a86325 | ||
| 8296c4a37a | |||
|
|
8e6e176b6b | ||
|
|
6a62973596 | ||
|
|
8007229be2 | ||
|
|
8dec3cbd96 | ||
|
|
33016415b6 | ||
|
|
04ad077449 | ||
|
|
d99a043d68 | ||
|
|
e2380d7149 | ||
| c32fa39cec | |||
| 8e4726dae4 | |||
|
|
3bc4a2f313 | ||
|
|
be7220dd6c | ||
|
|
680e27e0ca | ||
|
|
b48b44ea5a | ||
|
|
198d915e64 | ||
|
|
e8582b1976 | ||
|
|
733f26a311 | ||
|
|
a7c775c370 | ||
|
|
b33f74605f | ||
|
|
b43387a0af | ||
|
|
7365668cc8 | ||
|
|
d68aac113b | ||
|
|
4b5caddb3b | ||
|
|
492807a4a0 | ||
|
|
b6289d0c5e | ||
|
|
65495cb666 | ||
|
|
645b2d2860 | ||
|
|
d97ca83fc7 | ||
|
|
aaf984ee3a | ||
|
|
0b551311f6 | ||
| 72b66400de | |||
|
|
df5fe7798c | ||
| cd45fa9f79 | |||
| 5cae9aeee3 | |||
| b43eb50faf | |||
|
|
678a06aad5 | ||
| ef6920e24e | |||
|
|
765a99d03b | ||
|
|
86ba4ba826 | ||
| 79b168fa9f | |||
| 97a6b1ebbb | |||
|
|
afcf6a0c83 | ||
|
|
649d325951 | ||
|
|
cb66719ffe | ||
|
|
6071e359b7 | ||
|
|
bd75abba8d | ||
| 06e6ccd89b | |||
| dfecfbdaf0 | |||
|
|
86a7b20c39 | ||
|
|
fa1fd469c9 | ||
|
|
00fa6f55ea | ||
|
|
6121c7eabd | ||
|
|
41538be5d0 | ||
|
|
57604e2b6c | ||
|
|
1e4781aa2f | ||
|
|
bade2fbeae | ||
|
|
7acb77c730 | ||
|
|
01c420be73 | ||
| ccbd15f599 | |||
|
|
93b62888ab | ||
|
|
6e5065c41b | ||
|
|
0dbab49326 | ||
|
|
3d40670f9c | ||
|
|
7940a62fd1 | ||
|
|
3bfb9a0af2 | ||
|
|
a541198527 | ||
|
|
a4b55cec03 | ||
|
|
72f4696653 | ||
|
|
ac4849761a | ||
|
|
09d955ad65 | ||
|
|
7661b8c7de | ||
|
|
87a09a7f32 | ||
|
|
75e92eac50 | ||
|
|
fcf17eef7c | ||
|
|
d57744e8e7 | ||
|
|
9b3901ca59 | ||
|
|
94c00788da | ||
|
|
c8186e6622 | ||
|
|
ffe537244b | ||
|
|
6d9afc9c15 | ||
|
|
ee3798112a | ||
|
|
7fad2bc09c | ||
|
|
a6afc5ca88 | ||
|
|
bfe60ca87b | ||
|
|
9bf4d745d4 | ||
|
|
cb8cde8f81 | ||
|
|
8a6820d0ae | ||
|
|
398edaee48 | ||
|
|
312981bbd2 | ||
|
|
8db1e24606 | ||
|
|
540477ce76 | ||
|
|
ab788eb96b | ||
|
|
a8fa216165 | ||
| 94e8357b2a | |||
| 780365245b | |||
|
|
000794bd38 | ||
|
|
77053e2739 | ||
|
|
a31d665e8f | ||
|
|
39674b9ca8 | ||
|
|
d7d6859855 | ||
|
|
97f3e856eb | ||
|
|
ebe7c710a9 | ||
|
|
e4e3271ed5 | ||
|
|
c69f6b2b05 | ||
|
|
a3d33a9839 | ||
|
|
b0a4dd22b6 | ||
|
|
2386e7728d | ||
|
|
e4f03cd40a | ||
|
|
99a4b049cf | ||
| 2875310835 | |||
| 8a2f982fac | |||
|
|
1661a6cced | ||
|
|
d43685680d | ||
|
|
4b2f6d210f | ||
|
|
30547a01d4 | ||
| abc9d640fc | |||
|
|
fa64cf114d | ||
|
|
8a35c137b4 | ||
|
|
d62c0c220b | ||
|
|
1efdaec61e | ||
|
|
f6c86eae36 | ||
|
|
60b3110022 | ||
| 1f05c0b431 | |||
|
|
b4bd79af61 | ||
|
|
8e5fc12c90 | ||
|
|
63e38654fe | ||
| 59d2c1e7be | |||
|
|
8d2dfb1dcc | ||
|
|
a7cbff5449 | ||
|
|
e26de73bfc | ||
|
|
d27eadf2c9 | ||
|
|
69651e8193 | ||
|
|
afb480867e | ||
|
|
45c7aff40e | ||
|
|
9193e67bea | ||
|
|
50399dbb8e | ||
|
|
3d131a4f7e | ||
|
|
03c74c5cf2 | ||
|
|
9f658e61f4 | ||
|
|
aa3dd33d5c | ||
|
|
7c165dde1f | ||
|
|
e961ec748b | ||
|
|
8a487e0016 | ||
|
|
851645a694 | ||
|
|
cae66ac10b | ||
|
|
bffd2e4601 | ||
|
|
f281ef65c1 | ||
|
|
56040babd7 | ||
|
|
f7500efc3c | ||
|
|
7eb594f16c | ||
|
|
ab6ba5450b | ||
|
|
33bc1b546f | ||
|
|
c63d64e344 | ||
|
|
debf679dfb | ||
|
|
68c9bc2d5e | ||
|
|
f299b93c2b | ||
|
|
cca6de307b | ||
|
|
aa7a728736 | ||
|
|
c28a1eb778 | ||
|
|
8c829570df | ||
|
|
03dd1959c3 | ||
|
|
f19e59ea80 | ||
|
|
4b4f84b075 | ||
|
|
b032e6eea0 | ||
|
|
787ec1cb7a | ||
|
|
939d5dee78 | ||
|
|
089653a77d | ||
|
|
dee79e7305 | ||
|
|
750eeeba85 | ||
|
|
a5cfe6b1b8 | ||
|
|
a712ecbf7a | ||
|
|
63e3e9df99 | ||
|
|
68a836c59a | ||
|
|
23d67cd327 | ||
|
|
71f5645886 | ||
|
|
a4183fa85b | ||
|
|
e6dd79780e | ||
|
|
fc2d0a1be1 | ||
|
|
aa2170f200 | ||
|
|
b2ad280b73 | ||
|
|
edf29573c6 | ||
|
|
4e52ea206b | ||
|
|
34335eb9cb | ||
|
|
0ed7dafbdf | ||
|
|
f786dd818d | ||
|
|
869758f66f | ||
|
|
d92e73a2f2 | ||
|
|
f9d48a0ff1 | ||
|
|
83213351c1 | ||
|
|
5e1dbe2b7d | ||
|
|
ea5c68150f | ||
|
|
6506515958 | ||
|
|
0688a6d3ca | ||
|
|
9ec815f3ed | ||
|
|
0b0b5a1751 | ||
|
|
6eb4698cc8 | ||
|
|
41819a51a0 | ||
|
|
51d9b97ac7 | ||
|
|
fb15eb7d8b | ||
|
|
d00c4ab752 | ||
|
|
37fb25a379 | ||
|
|
3226ba6ae0 | ||
|
|
ea77f1cc61 | ||
|
|
3b49ad4d20 | ||
|
|
2410fb2d8e | ||
|
|
9da007973e | ||
|
|
4634f3f143 | ||
|
|
8a12fb8302 | ||
|
|
c0b6158910 | ||
|
|
ac9cbf2c3a | ||
|
|
d76775276a | ||
|
|
edcf329399 | ||
|
|
cb686f89ce | ||
|
|
ce9e906ac3 | ||
|
|
71a2bb7b61 | ||
|
|
ff244cacf1 | ||
|
|
3e401c9e7e | ||
|
|
d044032838 | ||
|
|
fbb503df79 | ||
|
|
410d0cf580 | ||
|
|
2518acd217 | ||
|
|
2e477b1507 | ||
|
|
75575d6a82 | ||
|
|
115699f991 | ||
|
|
532760f404 | ||
|
|
f32bc5b680 | ||
|
|
8cd47bb66c | ||
|
|
80badb95be | ||
|
|
d4c8002f6e | ||
|
|
33154b15f0 | ||
| 75587b96be | |||
| cdf4f507a1 | |||
| 9b2d8ed3bd | |||
| 6ad201ebc0 | |||
| a368dc8ee6 | |||
|
|
6835ce2a77 | ||
|
|
30cf0b1a81 | ||
|
|
a16812e7d7 | ||
|
|
663b130bb3 | ||
|
|
920be07460 | ||
|
|
aefca2a7e3 | ||
| f156ff2ce8 | |||
|
|
b2036287b4 | ||
|
|
dd39997c8a | ||
|
|
9eec2c9dcf | ||
|
|
203a0fb39f | ||
|
|
757a34ad0b | ||
| 277976cd50 | |||
| f942a8b8b9 | |||
| 8a541bbe4b | |||
|
|
8bdd9ac751 | ||
| 1f11763790 | |||
|
|
f167104e2e | ||
|
|
33607a12a6 | ||
|
|
bccc54440f | ||
|
|
25ab37b5b8 | ||
|
|
30ac11e93b | ||
|
|
ae6edf1570 | ||
|
|
709fbe3a98 | ||
|
|
4438b63c64 | ||
|
|
0d8c5d8e4e | ||
|
|
b8bf36e3e8 | ||
|
|
78ff2ed4e8 | ||
|
|
b40bb9f928 | ||
|
|
a0fffbf030 | ||
|
|
397a323ea9 | ||
|
|
4dca5ddfe7 | ||
|
|
2ae101c50c | ||
|
|
d927f44f12 | ||
|
|
a0675d904e | ||
|
|
b8ecb341d6 | ||
|
|
21a1ae7937 | ||
| 657fe665cd | |||
|
|
5efcd34b23 | ||
|
|
cabeb911e6 | ||
|
|
016e5a8bdc | ||
|
|
76869080ea | ||
| c361159be6 | |||
|
|
9e4c7c1395 | ||
| 68f85e9cf3 | |||
| 7a6a621c67 | |||
|
|
f4eb44ec16 | ||
| 5567af52ca | |||
| 72b17f9efb | |||
| ef5c48ffd3 | |||
|
|
b0bdedafe0 | ||
|
|
9f71884aa7 | ||
|
|
306e272aa1 | ||
| 78077143ab | |||
|
|
c8582d0edf | ||
|
|
40b09f8311 | ||
|
|
5e71c6f4bd | ||
|
|
8987e96dd0 | ||
|
|
304f164451 | ||
|
|
a01c4066d1 | ||
|
|
bc01d3a4ea | ||
| 1fcf1291e6 | |||
| 904ae21315 | |||
| 3f2d734a6c | |||
|
|
83ee2925da | ||
| 51af68fe6b | |||
| 955f57983c | |||
| de573cf101 | |||
| de8214f83e | |||
| 6c62efa974 | |||
| e6826fd07a | |||
|
|
ccecd62760 | ||
|
|
516a8badb8 | ||
|
|
768c6fda50 | ||
|
|
9584b60ed6 | ||
|
|
3f69377fd2 | ||
|
|
1a8a8e9fc1 | ||
|
|
59a94b1257 | ||
|
|
be49021e79 | ||
|
|
b54c8e9703 | ||
| bb065c1c26 | |||
|
|
d440130ce5 | ||
|
|
82a2bd0b88 | ||
|
|
a7cb79f3eb | ||
|
|
80c69a53e5 | ||
|
|
22e5a3fa63 | ||
| 1f8bae45a0 | |||
| cedbfb4325 | |||
| 0c500280a2 | |||
| 74523152a8 | |||
| 2fcf931453 | |||
|
|
7a68a709a6 | ||
|
|
d70977b316 | ||
|
|
71d25ad386 | ||
|
|
8b097f4ce4 | ||
|
|
3335d5c100 | ||
| ba61bf8f0f | |||
| 3b8ac3288c | |||
|
|
0c8d0dd58e | ||
|
|
5518f10cf6 | ||
| 0692a85d0f | |||
|
|
7fda917039 | ||
|
|
f7c2b517b5 | ||
|
|
51464bf68f | ||
|
|
07aea0317b | ||
|
|
f0786b3f39 | ||
|
|
da56123f08 | ||
|
|
f366053387 | ||
|
|
f8a90c7044 | ||
|
|
05ca46e94a | ||
|
|
d2914be78a | ||
|
|
6d24c2bab1 | ||
|
|
b015579ddf |
@@ -68,6 +68,7 @@ if (bld_key > 0)
|
||||
var verantw_key = oRs("prs_perslid_key_verantw").Value;
|
||||
var verantw_key2 = oRs("prs_perslid_key_verantw2").Value;
|
||||
var vervaldatum = oRs("alg_gebouw_vervaldatum").Value != null ? new Date(oRs("alg_gebouw_vervaldatum").Value) : null;
|
||||
var geb_score1 = oRs("alg_gebouw_mjb_score1").value;
|
||||
oRs.Close();
|
||||
}
|
||||
else
|
||||
@@ -120,7 +121,7 @@ else
|
||||
readonly: bld_key > 0,
|
||||
required: true
|
||||
});
|
||||
manRWFIELD("bld_naam", "fld", L("lcl_estate_gebouw_man_name"), bld_naam, {required: true, maxlength: 30});
|
||||
manRWFIELD("bld_naam", "fld", L("lcl_estate_gebouw_man_name"), bld_naam, {required: true, maxlength: 60});
|
||||
sql = "SELECT alg_srtgebouw_key, "
|
||||
+ " "+lcl.xsqla('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')
|
||||
+ " FROM alg_srtgebouw "
|
||||
@@ -228,6 +229,7 @@ else
|
||||
);
|
||||
if (this_alg.writeman)
|
||||
CHECKBOXTR(L("lcl_estate_gebouw_werkdagen"), "fldalgwerk", "bld_werkdagen", werkdagen==1)
|
||||
ROFIELDTR("fld", "Conditie score", geb_score1, {suppressEmpty: true}); // L("lcl_alg_locatie_mjb_score1")
|
||||
BLOCK_END();
|
||||
|
||||
generateFlexKenmerkBlock ({ onrgoed_key : bld_key,
|
||||
|
||||
@@ -53,7 +53,8 @@ if (loc_key > 0)
|
||||
var pst_adres = oRs("alg_locatie_post_adres").value;
|
||||
var pst_plaats = oRs("alg_locatie_post_plaats").value;
|
||||
var pst_land = oRs("alg_locatie_post_land").value;
|
||||
var dienstniveau = oRs("mld_dienstniveau_key").value;
|
||||
var dienstniveau = oRs("mld_dienstniveau_key").value;
|
||||
var loc_score1 = oRs("alg_locatie_mjb_score1").value;
|
||||
|
||||
oRs.Close();
|
||||
}
|
||||
@@ -138,6 +139,7 @@ manRWFIELD("pst_land", "fld", L("lcl_prs_address_post_land"), p
|
||||
manRWFIELD("loc_vw", "fld", L("lcl_estate_locatie_man_verantw"), loc_vw, {maxlength: 30});
|
||||
manRWFIELD("loc_vwtel", "fld", L("lcl_estate_locatie_man_verantw_tel"), loc_vwtel, {maxlength: 15});
|
||||
manRWFIELD("loc_mail", "fld", L("lcl_noti_email"), loc_mail, {maxlength: 200});
|
||||
ROFIELDTR("fld", "Conditie score", loc_score1, {suppressEmpty: true}); // L("lcl_alg_locatie_mjb_score1")
|
||||
|
||||
BLOCK_END();
|
||||
|
||||
|
||||
@@ -52,6 +52,10 @@ for (var i = 0; i < alg_key_arr.length; i++)
|
||||
|
||||
|
||||
allKenmerkenSQL = "SELECT " + lcl.xsql('k.alg_kenmerk_omschrijving', 'k.alg_kenmerk_key') + " kenmerk_omschrijving"
|
||||
+ ", k.alg_kenmerk_kenmerktype kenmerk_kenmerktype"
|
||||
+ ", k.alg_kenmerk_systeem kenmerk_systeem"
|
||||
+ ", k.alg_kenmerk_toonbaar kenmerk_readonly"
|
||||
+ ", k.alg_kenmerk_uniek kenmerk_uniek"
|
||||
+ ", fac_kenmerkdomein_key"
|
||||
+ " FROM alg_kenmerk k"
|
||||
+ " WHERE k.alg_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */
|
||||
|
||||
@@ -63,6 +63,7 @@ function generateFlexKenmerkBlock(params)
|
||||
+ " k.alg_kenmerk_dec kenmerk_dec, "
|
||||
+ " k.alg_kenmerk_nmin kenmerk_nmin, "
|
||||
+ " k.alg_kenmerk_nmax kenmerk_nmax, "
|
||||
+ " k.alg_kenmerk_systeem kenmerk_systeem, "
|
||||
+ (onrgoed_key > 0
|
||||
? " (SELECT v.alg_onrgoedkenmerk_waarde "
|
||||
+ " FROM alg_onrgoedkenmerk v "
|
||||
|
||||
@@ -68,33 +68,41 @@ function fnrowClass(oRs)
|
||||
function gotoDetails(row)
|
||||
{
|
||||
var algData = eval('(' + row.getAttribute("ROWDATA") + ')');
|
||||
var url = "appl/ALG/alg_verdieping_search.asp?gebouw_key=" + algData.detail_key + "&autosearch=" + autosearch + "&chkgeb=1";
|
||||
var url = "appl/alg/alg_verdieping_search.asp?gebouw_key=" + algData.detail_key + "&autosearch=" + autosearch + "&chkgeb=1";
|
||||
FcltMgr.openDetail(url, "<%=L("lcl_floor")%>");
|
||||
}
|
||||
function gotoParent(row)
|
||||
{
|
||||
var algData = eval('(' + row.getAttribute("ROWDATA") + ')');
|
||||
var url = "appl/ALG/alg_locatie_search.asp?locatie_key=" + algData.parent_key + "&autosearch=" + autosearch;
|
||||
var url = "appl/alg/alg_locatie_search.asp?locatie_key=" + algData.parent_key + "&autosearch=" + autosearch;
|
||||
FcltMgr.openDetail(url, "<%=L("lcl_location")%>");
|
||||
}
|
||||
function gebouwEdit(row)
|
||||
function gebouwEdit(row)
|
||||
{
|
||||
var algData = eval('(' + row.getAttribute("ROWDATA") + ')');
|
||||
var url = "appl/ALG/alg_gebouw.asp?mode=viewUpdate&key=" + algData.key;
|
||||
var url = "appl/alg/alg_gebouw.asp?mode=viewUpdate&key=" + algData.key;
|
||||
FcltMgr.openDetail(url, "<%=L("lcl_building")%>" + ' ' + algData.oms);
|
||||
}
|
||||
|
||||
function doDelete(rowArray, isMulti)
|
||||
function doDelete(rowArray, isMulti)
|
||||
{
|
||||
FcltMgr.confirm(L("lcl_alg_del_txt_gebouw"), { autoconfirm: isMulti }, function() {
|
||||
var bldKeyString = getKeyString(rowArray);
|
||||
var data = { key: bldKeyString,
|
||||
level: "G"
|
||||
};
|
||||
<% protectRequest.dataToken("data"); %>
|
||||
$.post("alg_delete.asp", data, FcltCallbackRefresh, "json");
|
||||
});
|
||||
}
|
||||
|
||||
function toObjMan(row)
|
||||
{
|
||||
FcltMgr.confirm(L("lcl_alg_del_txt_gebouw"), { autoconfirm: isMulti }, function() {
|
||||
var bldKeyString = getKeyString(rowArray);
|
||||
var data = { key: bldKeyString,
|
||||
level: "G"
|
||||
};
|
||||
<% protectRequest.dataToken("data"); %>
|
||||
$.post("alg_delete.asp", data, FcltCallbackRefresh, "json");
|
||||
});
|
||||
var algData = eval('(' + row.getAttribute("ROWDATA") + ')');
|
||||
var url = "appl/ins/ins_search.asp?urole=bo&gebouw_key=" + algData.key;
|
||||
FcltMgr.openDetail(url, "<%=L("lcl_building")%>" + ' ' + algData.oms);
|
||||
}
|
||||
|
||||
</script>
|
||||
<%
|
||||
|
||||
@@ -118,13 +126,24 @@ function gebouw_list(pautfunction, params)
|
||||
var srtgebouw_key = params.srtgebouw_key;
|
||||
var verantw_key = params.verantw_key;
|
||||
var expalgincl = params.expalgincl;
|
||||
var mjob = params.mjob;
|
||||
var fitness_score1_from = params.fitness_score1_from;
|
||||
var fitness_score1_through = params.fitness_score1_through;
|
||||
|
||||
var autparamsINSUSE = user.checkAutorisation("WEB_INSUSE", true);
|
||||
var autparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);
|
||||
var readuse = autparamsINSUSE && autparamsINSUSE.PRSreadlevel < 9 && autparamsINSUSE.ALGreadlevel < 9; // Wijzigen Afgeronde gegevens.
|
||||
var readman = autparamsINSMAN && autparamsINSMAN.PRSreadlevel < 9 && autparamsINSMAN.ALGreadlevel < 9; // Wijzigen Afgeronde gegevens.
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
var eDelete = false;
|
||||
var eObjMan = false;
|
||||
if (alg.canWriteGebouw(oRs("alg_gebouw_key").value, authparams.mALGwritelevel))
|
||||
eDelete = true;
|
||||
return ({eDelete: eDelete})
|
||||
// Heb ik rechten om het objectenbeheer overzicht te zien?
|
||||
if (readuse || readman)
|
||||
eObjMan = true;
|
||||
return ({eDelete: eDelete, eObjMan: eObjMan});
|
||||
}
|
||||
|
||||
function fnrowFlexParams(oRs)
|
||||
@@ -158,6 +177,7 @@ function gebouw_list(pautfunction, params)
|
||||
+ " , g.alg_gebouw_x"
|
||||
+ " , g.alg_gebouw_y"
|
||||
+ " , g.alg_gebouw_vervaldatum"
|
||||
+ " , g.alg_gebouw_mjb_score1"
|
||||
+ " , (SELECT MAX(t.fac_tracking_datum)"
|
||||
+ " FROM fac_tracking t"
|
||||
+ " , fac_srtnotificatie sn"
|
||||
@@ -204,6 +224,15 @@ function gebouw_list(pautfunction, params)
|
||||
if (!expalgincl)
|
||||
sqln += " AND (g.alg_gebouw_vervaldatum IS NULL OR g.alg_gebouw_vervaldatum > TRUNC(SYSDATE)) ";
|
||||
|
||||
if (params.mjob)
|
||||
{ // Conditiescore.
|
||||
// Niet gemeten objecten doen wel mee in dit filter. Deze objecten worden dus niet getoond als er een waarde is ingevuld.
|
||||
if (fitness_score1_from > 0)
|
||||
sqln += " AND alg_locatie_mjb_score1 >= " + fitness_score1_from;
|
||||
if (fitness_score1_through > 0)
|
||||
sqln += " AND alg_locatie_mjb_score1 <= " + fitness_score1_through;
|
||||
}
|
||||
|
||||
sqln += " ORDER BY l.alg_locatie_upper ASC, "
|
||||
+ " g.alg_gebouw_upper ASC ";
|
||||
|
||||
@@ -247,14 +276,12 @@ function gebouw_list(pautfunction, params)
|
||||
rst.addColumn(new Column({caption: L("lcl_geoxcoord"), content: "alg_gebouw_x"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_geoycoord"), content: "alg_gebouw_y"}));
|
||||
}
|
||||
if (params.mjob)
|
||||
rst.addColumn(new Column({caption: "Conditiescore", content: "alg_gebouw_mjb_score1"})); // L("lcl_alg_gebouw_mjb_score1")
|
||||
|
||||
rst.addAction({ action: "gebouwEdit", caption: L("lcl_edit"), isDefault: true});
|
||||
rst.addAction({ action: "doDelete", caption: L("lcl_delete"), enabler: "eDelete", single:!noref, multi: true, multiOnce: true});
|
||||
if (!noref)
|
||||
{
|
||||
rst.addAction({ action: "gotoDetails", caption: L("lcl_goto_verdieping_list")});
|
||||
rst.addAction({ action: "gotoParent", caption: L("lcl_goto_locatie_list")});
|
||||
}
|
||||
rst.addAction({ action: "toObjMan", caption: L("lcl_ins_object_management"), enabler: "eObjMan"});
|
||||
var cnt = rst.processResultset();
|
||||
%>
|
||||
</body>
|
||||
|
||||
@@ -20,6 +20,7 @@ var srtgebouw_key = getQParamInt("gebouw_func", -1); // Gebouwfunctie
|
||||
var verantw_key = getQParamInt("verantw", -1); // Gebouw verantwoordelijke
|
||||
var verantw_key2 = getQParamInt("verantw2", -1); // Gebouw verantwoordelijke 2
|
||||
var autosearch = getQParamInt("autosearch", 0) == 1;
|
||||
var mjob = getQParamInt("mjob", 0) == 1; // mjob mode
|
||||
var authparams = alg.checkAutorisation();
|
||||
var this_alg = alg.func_enabled(gebouw_key);
|
||||
%>
|
||||
@@ -50,6 +51,7 @@ var this_alg = alg.func_enabled(gebouw_key);
|
||||
<body id="searchbody">
|
||||
<div id="search">
|
||||
<form name="u2" target="workFrame" action="alg_gebouw_search_list.asp" method="get">
|
||||
<input type=hidden name="mjob" id="mjob" value="<%=mjob?1:0%>">
|
||||
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
|
||||
<tr>
|
||||
<td class="searchkolom1">
|
||||
@@ -91,26 +93,62 @@ var this_alg = alg.func_enabled(gebouw_key);
|
||||
+ " FROM alg_srtgebouw"
|
||||
+ " WHERE alg_srtgebouw_verwijder IS NULL"
|
||||
+ " ORDER BY UPPER("+lcl.xsql('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')+")";
|
||||
FCLTselector("srt",
|
||||
sql,
|
||||
{ initKey: srtgebouw_key,
|
||||
label: L("lcl_estate_gebouw_srtgebouw"),
|
||||
trclass: "primsearch",
|
||||
emptyOption: ""
|
||||
});
|
||||
%>
|
||||
<!-- Gebouw verantwoordelijke -->
|
||||
<% // Dit veld is alleen zichtbaar indien er minimaal <20><>n gebouwverantwoordelijke geconfigureerd is (suppressNoValues).
|
||||
FCLTpersoonselector("verantw",
|
||||
"sgVerantw",
|
||||
{ perslidKey: verantw_key,
|
||||
label: L("lcl_alg_bld_verantw"),
|
||||
filtercode: "GV", // Gebouw Verantwoordelijke
|
||||
trclass: "primsearch",
|
||||
suppressNoValues: true,
|
||||
whenEmpty: L("lcl_search_generic") // want filter
|
||||
});
|
||||
FCLTselector("srt",
|
||||
sql,
|
||||
{ initKey: srtgebouw_key,
|
||||
label: L("lcl_estate_gebouw_srtgebouw"),
|
||||
trclass: "primsearch",
|
||||
emptyOption: ""
|
||||
});
|
||||
%>
|
||||
<!-- Gebouw verantwoordelijke -->
|
||||
<% // Dit veld is alleen zichtbaar indien er minimaal <20><>n gebouwverantwoordelijke geconfigureerd is (suppressNoValues).
|
||||
FCLTpersoonselector("verantw",
|
||||
"sgVerantw",
|
||||
{ perslidKey: verantw_key,
|
||||
label: L("lcl_alg_bld_verantw"),
|
||||
filtercode: "GV", // Gebouw Verantwoordelijke
|
||||
trclass: "primsearch",
|
||||
suppressNoValues: true,
|
||||
whenEmpty: L("lcl_search_generic") // want filter
|
||||
});
|
||||
|
||||
if (mjob)
|
||||
{ // Conditiescore
|
||||
%> <tr class="primsearch fldfitness_score" id="fitness_score">
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="label">
|
||||
<label for="show_fitness_score_from"><%="Conditiescore"%>:</label> <% /* L("lcl_mjb_fitness_score") */ %>
|
||||
</td>
|
||||
<td style="text-align: right">
|
||||
<%="van"%> <% /* L("lcl_mjb_from") */ %>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="score">
|
||||
<input type="text"
|
||||
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
||||
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
||||
id="fitness_score1_from"
|
||||
name="fitness_score1_from"
|
||||
class="fldflexN number "
|
||||
value=""
|
||||
maxlength="1">
|
||||
<%="t/m"%> <% /* L("lcl_mjb_through") */ %>
|
||||
<input type="text"
|
||||
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
||||
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
||||
id="fitness_score1_through"
|
||||
name="fitness_score1_through"
|
||||
class="fldflexN number "
|
||||
value=""
|
||||
maxlength="1">
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
</table>
|
||||
</td><!-- end column 1 -->
|
||||
</tr>
|
||||
|
||||
@@ -32,6 +32,9 @@ var srtgebouw_key = getQParamInt("srt", -1); // Gebouwfunctie
|
||||
var verantw_key = getQParamInt("verantw", -1); // Gebouw verantwoordelijke
|
||||
var verantw_key2 = getQParamInt("verantw2", -1); // Gebouw verantwoordelijke 2
|
||||
var expalgincl = getQParamInt("expAlgIncl", 0) == 1; // Ook vervallen gebouwen
|
||||
var mjob = getQParamInt("mjob", 0) == 1; // mjob mode
|
||||
var fitness_score1_from = getQParamInt("fitness_score1_from", -1); // Conditie score van.
|
||||
var fitness_score1_through = getQParamInt("fitness_score1_through", -1); // Conditie score t/m.
|
||||
|
||||
gebouw_list ( "*",
|
||||
{ outputmode: outputmode,
|
||||
@@ -45,6 +48,9 @@ gebouw_list ( "*",
|
||||
bld_key: (bld_key != -1? bld_key : null),
|
||||
bld_code: bld_code,
|
||||
bld_name: bld_name,
|
||||
mjob: mjob,
|
||||
fitness_score1_from : fitness_score1_from,
|
||||
fitness_score1_through : fitness_score1_through,
|
||||
noref: (noref != -1? noref : null),
|
||||
expalgincl: expalgincl
|
||||
}
|
||||
|
||||
@@ -120,6 +120,9 @@ function locatie_list(pautfunction, params)
|
||||
var reg_key = params.reg_key;
|
||||
var dis_key = params.dis_key;
|
||||
var loc_key = params.loc_key;
|
||||
var mjob = params.mjob;
|
||||
var fitness_score1_from = params.fitness_score1_from;
|
||||
var fitness_score1_through = params.fitness_score1_through;
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
@@ -161,6 +164,7 @@ function locatie_list(pautfunction, params)
|
||||
+ " , l.alg_locatie_verantw_tel"
|
||||
+ " , l.alg_locatie_x"
|
||||
+ " , l.alg_locatie_y"
|
||||
+ " , l.alg_locatie_mjb_score1"
|
||||
+ " , (SELECT MAX(t.fac_tracking_datum)"
|
||||
+ " FROM fac_tracking t"
|
||||
+ " , fac_srtnotificatie sn"
|
||||
@@ -168,7 +172,7 @@ function locatie_list(pautfunction, params)
|
||||
+ " AND t.fac_tracking_refkey = l.alg_locatie_key"
|
||||
+ " AND sn.fac_srtnotificatie_xmlnode = 'locatie'"
|
||||
+ " ) recentdatum"
|
||||
+ " FROM alg_v_aanweziglocatie l"
|
||||
+ " FROM alg_locatie l" // TODO: alg_v_aanweziglocatie gebruiken
|
||||
+ " , alg_district d "
|
||||
+ " WHERE d.alg_district_key(+) = l.alg_district_key"
|
||||
+ " AND l.alg_locatie_verwijder IS NULL";
|
||||
@@ -201,6 +205,15 @@ function locatie_list(pautfunction, params)
|
||||
if (params.loc_descr)
|
||||
sqln += " AND UPPER(l.alg_locatie_omschrijving) LIKE " + safe.quoted_sql_wild(params.loc_descr + "%");
|
||||
|
||||
if (params.mjob)
|
||||
{ // Conditiescore.
|
||||
// Niet gemeten objecten doen wel mee in dit filter. Deze objecten worden dus niet getoond als er een waarde is ingevuld.
|
||||
if (fitness_score1_from > 0)
|
||||
sqln += " AND alg_locatie_mjb_score1 >= " + fitness_score1_from;
|
||||
if (fitness_score1_through > 0)
|
||||
sqln += " AND alg_locatie_mjb_score1 <= " + fitness_score1_through;
|
||||
}
|
||||
|
||||
sqln += " ORDER BY UPPER(alg_district_omschrijving), UPPER(alg_locatie_code)";
|
||||
|
||||
var addurl = "appl/alg/alg_locatie.asp";
|
||||
@@ -233,6 +246,8 @@ function locatie_list(pautfunction, params)
|
||||
rst.addColumn(new Column({caption: L("lcl_prs_address_bezoek_adres"), content: "alg_locatie_adres"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_prs_address_bezoek_postcode"), content: "alg_locatie_postcode"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_prs_address_bezoek_plaats"), content: "alg_locatie_plaats"}));
|
||||
if (params.mjob)
|
||||
rst.addColumn(new Column({caption: "Conditiescore", content: "alg_locatie_mjb_score1"})); // L("lcl_alg_locatie_mjb_score1")
|
||||
|
||||
if (outputmode != 0)
|
||||
{
|
||||
|
||||
@@ -15,6 +15,7 @@ FCLTHeader.Requires({ plugins:["jQuery", "kenmerk"] });
|
||||
var district_key = getQParamInt("district_key", -1); //district
|
||||
var locatie_key = getQParamInt("locatie_key", -1); //locatie
|
||||
var autosearch = getQParamInt("autosearch", 0) == 1;
|
||||
var mjob = getQParamInt("mjob", 0) == 1; // mjob mode
|
||||
var authparams = alg.checkAutorisation();
|
||||
%>
|
||||
|
||||
@@ -44,7 +45,8 @@ var authparams = alg.checkAutorisation();
|
||||
<body id="searchbody">
|
||||
<div id="search">
|
||||
<form name="u2" target="workFrame" action="alg_locatie_search_list.asp" method="get">
|
||||
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
|
||||
<input type=hidden name="mjob" id="mjob" value="<%=mjob?1:0%>">
|
||||
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
|
||||
<tr>
|
||||
<td class="searchkolom1">
|
||||
<table><!-- x rijen, 2 kolommen: label + veld -->
|
||||
@@ -68,10 +70,49 @@ var authparams = alg.checkAutorisation();
|
||||
</table>
|
||||
</td><!-- end column 1 -->
|
||||
|
||||
<!-- Second column -->
|
||||
<td class="searchkolom2">
|
||||
</td><!-- end column 1 -->
|
||||
<table><!-- x rijen, 2 kolommen: label + veld -->
|
||||
<% if (mjob)
|
||||
{ // Conditiescore
|
||||
%> <tr class="primsearch fldfitness_score" id="fitness_score">
|
||||
<td>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="label">
|
||||
<label for="show_fitness_score_from"><%="Conditiescore"%>:</label> <% /* L("lcl_mjb_fitness_score") */ %>
|
||||
</td>
|
||||
<td style="text-align: right">
|
||||
<%="van"%> <% /* L("lcl_mjb_from") */ %>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="score">
|
||||
<input type="text"
|
||||
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
||||
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
||||
id="fitness_score1_from"
|
||||
name="fitness_score1_from"
|
||||
class="fldflexN number "
|
||||
value=""
|
||||
maxlength="1">
|
||||
<%="t/m"%> <% /* L("lcl_mjb_through") */ %>
|
||||
<input type="text"
|
||||
onChange="fvalid=checkKenmerk(this, false, 'N', 1, 0, 1, 6)"
|
||||
onBlur="checkKenmerk(this, true, 'N', 1, 0, 1, 6)"
|
||||
id="fitness_score1_through"
|
||||
name="fitness_score1_through"
|
||||
class="fldflexN number "
|
||||
value=""
|
||||
maxlength="1">
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
</table>
|
||||
</td><!-- end column 2 -->
|
||||
</tr>
|
||||
<% BLOCK_END();
|
||||
<% BLOCK_END();
|
||||
|
||||
var buttons = [ {title: L("lcl_search"), action: "doSubmit()", id: "bSearch" },
|
||||
{title: L("lcl_obj_advanced"), action: "myModal()", id: "bAdvanced" } ];
|
||||
|
||||
@@ -27,6 +27,9 @@ var dis_key = getQParamInt("districtkey", -1); // District
|
||||
var loc_key = getQParamInt("locatiekey", -1); // Locatie
|
||||
var loc_code = getQParam("loc_code", ""); // Locatiecode
|
||||
var loc_descr = getQParam("loc_descr", ""); // Locatienaam
|
||||
var mjob = getQParamInt("mjob", 0) == 1; // mjob mode
|
||||
var fitness_score1_from = getQParamInt("fitness_score1_from", -1); // Conditie score van.
|
||||
var fitness_score1_through = getQParamInt("fitness_score1_through", -1); // Conditie score t/m.
|
||||
|
||||
locatie_list ( "*",
|
||||
{ outputmode: outputmode,
|
||||
@@ -36,6 +39,9 @@ locatie_list ( "*",
|
||||
loc_key: (loc_key != -1? loc_key : null),
|
||||
loc_code: loc_code,
|
||||
loc_descr: loc_descr,
|
||||
mjob: mjob,
|
||||
fitness_score1_from : fitness_score1_from,
|
||||
fitness_score1_through : fitness_score1_through,
|
||||
noref: (noref != -1? noref : null)
|
||||
}
|
||||
);
|
||||
|
||||
@@ -37,8 +37,19 @@ if (submitting)
|
||||
|
||||
var afdeling_key = -1;
|
||||
var bezetting = -1;
|
||||
var afdeling_keys = [];
|
||||
var bezetting_keys = [];
|
||||
var bezettingen = new Array();
|
||||
var afdeling_keys = new Array();
|
||||
var afdeling_names = [];
|
||||
|
||||
function shorttxt(txt, len)
|
||||
{
|
||||
len = len || S("max_tracking_length");
|
||||
if (txt.length < len)
|
||||
return txt;
|
||||
else
|
||||
return txt.substr(0, len-4) + "...";
|
||||
}
|
||||
|
||||
for (var i = 0; i < nrRows; i++)
|
||||
{
|
||||
afdeling_key = getFParamInt("afd" + i, 0);
|
||||
@@ -47,10 +58,47 @@ if (submitting)
|
||||
if (afdeling_key > 0 && bezetting >= 0)
|
||||
{
|
||||
afdeling_keys.push(afdeling_key);
|
||||
bezetting_keys.push(bezetting);
|
||||
bezettingen.push(bezetting);
|
||||
}
|
||||
}
|
||||
|
||||
if (afdeling_keys.length)
|
||||
{
|
||||
var sql = "SELECT prs_afdeling_key, prs_afdeling_omschrijving"
|
||||
+ " FROM prs_afdeling a"
|
||||
+ " WHERE prs_afdeling_key IN (" + afdeling_keys.join(",") + ")"
|
||||
+ " AND prs_afdeling_verwijder IS NULL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.Eof)
|
||||
{
|
||||
afdeling_names[oRs("prs_afdeling_key").value] = oRs("prs_afdeling_omschrijving").value;
|
||||
oRs.MoveNext();
|
||||
}
|
||||
}
|
||||
|
||||
var oldvals = [];
|
||||
var sql = "SELECT ra.alg_ruimte_key, ra.prs_afdeling_key, a.prs_afdeling_omschrijving, ra.prs_ruimteafdeling_bezetting"
|
||||
+ " FROM prs_ruimteafdeling ra, prs_afdeling a"
|
||||
+ " WHERE ra.alg_ruimte_key IN (" + ruimte_key_arr.join(",") + ")"
|
||||
+ " AND ra.prs_afdeling_key = a.prs_afdeling_key"
|
||||
+ " AND ra.prs_ruimteafdeling_verwijder IS NULL"
|
||||
+ " AND a.prs_afdeling_verwijder IS NULL";
|
||||
|
||||
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.Eof)
|
||||
{
|
||||
var tempTuple = { afd_key: oRs("prs_afdeling_key").value, bez: oRs("prs_ruimteafdeling_bezetting").value };
|
||||
if (typeof oldvals[oRs("alg_ruimte_key").value] === 'undefined') // New ruimte
|
||||
oldvals[oRs("alg_ruimte_key").value] = [tempTuple];
|
||||
else
|
||||
oldvals[oRs("alg_ruimte_key").value].push(tempTuple);
|
||||
|
||||
if (typeof afdeling_names[oRs("prs_afdeling_key").value] === 'undefined')
|
||||
afdeling_names[oRs("prs_afdeling_key").value] = oRs("prs_afdeling_omschrijving").value;
|
||||
oRs.MoveNext();
|
||||
}
|
||||
|
||||
for (var j = 0; j < ruimte_key_arr.length; j++)
|
||||
{ // Verwijderen
|
||||
var sql = "DELETE prs_ruimteafdeling"
|
||||
@@ -73,7 +121,7 @@ if (submitting)
|
||||
if (!oRs.eof)
|
||||
{ // Update
|
||||
var sql = "UPDATE prs_ruimteafdeling SET"
|
||||
+ " prs_ruimteafdeling_bezetting = " + bezetting_keys[i]
|
||||
+ " prs_ruimteafdeling_bezetting = " + bezettingen[i]
|
||||
+ " WHERE prs_ruimteafdeling_key = " + oRs("prs_ruimteafdeling_key").Value;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
@@ -83,11 +131,60 @@ if (submitting)
|
||||
+ " (alg_ruimte_key, prs_afdeling_key, prs_ruimteafdeling_bezetting)"
|
||||
+ " VALUES (" + ruimte_key_arr[j] + ","
|
||||
+ afdeling_keys[i] + ","
|
||||
+ bezetting_keys[i] + ")";
|
||||
+ bezettingen[i] + ")";
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
}
|
||||
|
||||
var trackingArr = new Object();
|
||||
var fromLbl = "";
|
||||
var toLbl = "";
|
||||
var rowNr = -1;
|
||||
var doneAfdeling = new Array();
|
||||
|
||||
for (var i = 0; i < ruimte_key_arr.length; i++)
|
||||
{
|
||||
if (typeof oldvals[ruimte_key_arr[i]] !== 'undefined')
|
||||
for (var x = 0; x < oldvals[ruimte_key_arr[i]].length; x++)
|
||||
{
|
||||
fromLbl = shorttxt(afdeling_names[oldvals[ruimte_key_arr[i]][x].afd_key]) + " (" + oldvals[ruimte_key_arr[i]][x].bez + "%) ";
|
||||
|
||||
rowNr = sharedIndexOf(oldvals[ruimte_key_arr[i]][x].afd_key, afdeling_keys);
|
||||
if (rowNr > -1) // Update
|
||||
{
|
||||
doneAfdeling[rowNr] = true;
|
||||
if (oldvals[ruimte_key_arr[i]][x].bez == bezettingen[rowNr]) // No change
|
||||
continue;
|
||||
toLbl = " " + shorttxt(afdeling_names[afdeling_keys[rowNr]]) + " (" + bezettingen[rowNr] + "%)";
|
||||
}
|
||||
else // Delete
|
||||
toLbl = " " + L("lcl_tracktoempty");
|
||||
|
||||
if (typeof trackingArr[ruimte_key_arr[i]] === 'undefined')
|
||||
trackingArr[ruimte_key_arr[i]] = new Array();
|
||||
trackingArr[ruimte_key_arr[i]].push(fromLbl + L("lcl_trackto") + toLbl);
|
||||
}
|
||||
|
||||
for (var y = 0; y < afdeling_keys.length; y++)
|
||||
{
|
||||
if (doneAfdeling[y])
|
||||
continue;
|
||||
else if (typeof trackingArr[ruimte_key_arr[i]] === 'undefined')
|
||||
trackingArr[ruimte_key_arr[i]] = new Array();
|
||||
// Insert
|
||||
fromLbl = L("lcl_trackfromempty") + " ";
|
||||
toLbl = " " + shorttxt(afdeling_names[afdeling_keys[y]]) + " (" + bezettingen[y] + "%)";
|
||||
trackingArr[ruimte_key_arr[i]].push(fromLbl + L("lcl_trackto") + toLbl);
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < ruimte_key_arr.length; i++)
|
||||
{
|
||||
if (typeof trackingArr[ruimte_key_arr[i]] !== 'undefined')
|
||||
shared.trackaction("ALGRUP", ruimte_key_arr[i], L("lcl_alg_is_algrup") + "\n" + trackingArr[ruimte_key_arr[i]].join("\n"));
|
||||
}
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
FcltMgr.closeDetail(window, { success: true });
|
||||
|
||||
@@ -60,6 +60,7 @@ var werkdagen = oRs("alg_gebouw_werkdagen").Value;
|
||||
var verantw = oRs("prs_perslid_key_verantw").Value;
|
||||
var verantw2 = oRs("prs_perslid_key_verantw2").Value;
|
||||
var vervaldatum = oRs("alg_gebouw_vervaldatum").Value;
|
||||
var geb_score1 = oRs("alg_gebouw_mjb_score1").value;
|
||||
oRs.Close();
|
||||
%>
|
||||
|
||||
@@ -222,6 +223,7 @@ oRs.Close();
|
||||
ROFIELDTR("fld", L("lcl_estate_gebouw_beginuur"), toTimeString(beginuur), {suppressEmpty:true} );
|
||||
ROFIELDTR("fld", L("lcl_estate_gebouw_einduur"), toTimeString(einduur), {suppressEmpty:true} );
|
||||
ROCHECKBOXTR("fldalgwerk", L("lcl_estate_gebouw_werkdagen"), werkdagen==1);
|
||||
ROFIELDTR("fld", "Conditie score", geb_score1, {suppressEmpty: true}); // L("lcl_alg_locatie_mjb_score1")
|
||||
BLOCK_END();
|
||||
|
||||
generateFlexKenmerkBlock ({ onrgoed_key : bld_key,
|
||||
|
||||
@@ -40,6 +40,7 @@ var loc_vwtel = oRs("alg_locatie_verantw_tel").value;
|
||||
var loc_x = oRs("alg_locatie_x").value;
|
||||
var loc_y = oRs("alg_locatie_y").value;
|
||||
var loc_mail = oRs("alg_locatie_email").value;
|
||||
var loc_score1 = oRs("alg_locatie_mjb_score1").value;
|
||||
var pst_adres = oRs("alg_locatie_post_adres").value;
|
||||
var pst_postc = oRs("alg_locatie_post_postcode").value;
|
||||
var pst_adres = oRs("alg_locatie_post_adres").value;
|
||||
@@ -155,6 +156,7 @@ oRs.Close();
|
||||
ROFIELDTR("fld", L("lcl_estate_locatie_man_verantw"), loc_vw, {suppressEmpty: true});
|
||||
ROFIELDTR("fld", L("lcl_estate_locatie_man_verantw_tel"), loc_vwtel, {suppressEmpty: true});
|
||||
AFIELDTR('fldmailto details', L("lcl_noti_email"), "mailto:" + loc_mail, loc_mail, { suppressEmpty: true });
|
||||
ROFIELDTR("fld", "Conditie score", loc_score1, {suppressEmpty: true}); // L("lcl_alg_locatie_mjb_score1")
|
||||
|
||||
BLOCK_END();
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ function API_func()
|
||||
loglevel: oRs("fac_api_loglevel").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
|
||||
};
|
||||
|
||||
|
||||
@@ -55,6 +55,15 @@ try
|
||||
|
||||
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
|
||||
xmlReq.load(Request);
|
||||
if (xmlReq.parseError.errorCode != 0)
|
||||
{
|
||||
__DoLog( "Error loading XML: "
|
||||
+ xmlReq.parseError.errorCode
|
||||
+ "\n" + xmlReq.parseError.reason
|
||||
+ " regel " + xmlReq.parseError.line
|
||||
+ "(" + xmlReq.parseError.linepos + ")"
|
||||
, "#ff0000");
|
||||
}
|
||||
|
||||
if (API.apidata.loglevel) __Log2File(xmlReq.xml, API.APIname + "_IN");
|
||||
|
||||
|
||||
@@ -405,6 +405,7 @@
|
||||
|
||||
xmlResp.appendChild(FCLTElement);
|
||||
|
||||
Response.ContentType = "text/xml";
|
||||
if (API.apidata.stylesheet)
|
||||
{
|
||||
// Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...
|
||||
@@ -412,7 +413,6 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
Response.ContentType = "text/xml";
|
||||
Response.Write(xmlResp.xml)
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<!-- #include file="../../appl/Shared/common.inc" -->
|
||||
<!-- #include file="../../appl/api/api.inc" -->
|
||||
<!-- #include file="../../appl/shared/FlexFiles.inc" -->
|
||||
<!-- #include file="../Shared/xml_converter.inc" -->
|
||||
<script language="javascript" src="../imp/imp_shared.js" runat="server"></script>
|
||||
<%
|
||||
// We sturen het antwoord in UTF-8.
|
||||
@@ -120,5 +121,12 @@
|
||||
xmlResp.appendChild(FCLTElement);
|
||||
|
||||
Response.ContentType = "text/xml";
|
||||
Response.Write(xmlResp.xml);
|
||||
if (API.apidata.stylesheet_out)
|
||||
{
|
||||
var params = {};
|
||||
STR2Stream(xmlResp.xml, API.apidata.stylesheet_out, Response, params);
|
||||
}
|
||||
else
|
||||
Response.Write(xmlResp.xml);
|
||||
|
||||
%>
|
||||
|
||||
@@ -258,6 +258,7 @@
|
||||
if (API.apidata.stylesheet)
|
||||
{
|
||||
// Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...
|
||||
Response.ContentType = "text/xml";
|
||||
STR2Stream(xmlResp.xml, API.apidata.stylesheet, Response, {});
|
||||
}
|
||||
else
|
||||
|
||||
@@ -46,12 +46,24 @@ if (API.apidata.stylesheet)
|
||||
}
|
||||
var inputXML = Server.CreateObject("MSXML2.DOMDocument.6.0");
|
||||
inputXML.load(Request);
|
||||
|
||||
if (inputXML.parseError.errorCode != 0)
|
||||
{
|
||||
__DoLog( "Error loading XML: "
|
||||
+ inputXML.parseError.errorCode
|
||||
+ "\n" + inputXML.parseError.reason
|
||||
+ " regel " + inputXML.parseError.line
|
||||
+ "(" + inputXML.parseError.linepos + ")"
|
||||
, "#ff0000");
|
||||
}
|
||||
if (API.apidata.loglevel) __Log2File(inputXML.xml, API.APIname + "_IN");
|
||||
|
||||
inputXML.transformNodeToObject(iXsl, xmlReq);
|
||||
}
|
||||
else
|
||||
xmlReq.load(Request);
|
||||
|
||||
if (API.apidata.loglevel) __Log2File(xmlReq.xml, API.APIname + "_IN");
|
||||
if (API.apidata.loglevel) __Log2File(xmlReq.xml, API.APIname + "_TUSSEN");
|
||||
|
||||
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
|
||||
xmlResp.appendChild(xmlResp.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""))
|
||||
@@ -612,6 +624,7 @@ function upsertKenmerk(kenmerken, stdmld_key, mld_key)
|
||||
|
||||
xmlResp.appendChild(FCLTElement);
|
||||
|
||||
Response.ContentType = "text/xml";
|
||||
if (API.apidata.stylesheet)
|
||||
{
|
||||
// Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...
|
||||
@@ -619,7 +632,6 @@ if (API.apidata.stylesheet)
|
||||
}
|
||||
else
|
||||
{
|
||||
Response.ContentType = "text/xml";
|
||||
Response.Write(xmlResp.xml)
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -464,7 +464,7 @@ for (i=0; i < opdrachten.length; i++)
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
if (opdraction == "note" && resultcode == -1) // Nog steeds geen fouten.
|
||||
if (resultcode == -1 && opdraction == "note")
|
||||
{
|
||||
tsql = "INSERT INTO mld_opdr_note(mld_opdr_key, prs_perslid_key, mld_opdr_note_omschrijving)"
|
||||
+ " VALUES (" + opdr_key + "," + user_key + "," + safe.quoted_sql(opdropmerking) + ")";
|
||||
@@ -856,13 +856,13 @@ for (i=0; i < opdrachten.length; i++)
|
||||
|
||||
xmlResp.appendChild(FCLTElement);
|
||||
|
||||
Response.ContentType = "text/xml";
|
||||
if (API.apidata.stylesheet)
|
||||
{ // Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...
|
||||
STR2Stream(xmlResp.xml, API.apidata.stylesheet, Response, {});
|
||||
}
|
||||
else
|
||||
{
|
||||
Response.ContentType = "text/xml";
|
||||
Response.Write(xmlResp.xml)
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -441,6 +441,7 @@
|
||||
|
||||
xmlResp.appendChild(FCLTElement);
|
||||
|
||||
Response.ContentType = "text/xml";
|
||||
if (API.apidata.stylesheet)
|
||||
{
|
||||
// Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...
|
||||
@@ -448,7 +449,6 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
Response.ContentType = "text/xml";
|
||||
Response.Write(xmlResp.xml)
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -62,6 +62,9 @@ __Log("== Entering shorturl.asp ==");
|
||||
+ " AND prs_bedrijfadres_locksecret IS NOT NULL"
|
||||
+ " AND prs_bedrijfadres_lockuser_key IS NOT NULL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (oRs.EOF)
|
||||
shared.simpel_page("Fixed user for company '{0}' is not or no longer valid.".format(locked_bdradr_key));
|
||||
|
||||
var locksecret = oRs("prs_bedrijfadres_locksecret").Value;
|
||||
var lockuser_key = oRs("prs_bedrijfadres_lockuser_key").Value;
|
||||
var lockexpire = oRs("prs_bedrijfadres_lockexpire").Value;
|
||||
|
||||
@@ -368,9 +368,9 @@ String.prototype.format = function()
|
||||
|
||||
WScript.Echo("Zorg dat je Fiddler open hebt staan");
|
||||
|
||||
var G_fclt_url = 'http://uwva.facws001/trunk/';
|
||||
var G_fclt_url = 'http://uwva.facws001.sg.nl/trunk/';
|
||||
var G_fclt_url = 'http://uwva.lokalhost/trunk/';
|
||||
var G_fclt_url = 'http://uwva.facws001/branch20171/';
|
||||
//var G_fclt_url = 'http://uwva.facws001/branch20171/';
|
||||
var G_fclt_apikey = 'APIPFO';
|
||||
|
||||
var apis = getAPI2JSON("GET", "apis");
|
||||
@@ -391,6 +391,11 @@ function testOne(api2_name, docparam)
|
||||
if (data[api2_name].length && data[api2_name] instanceof Array)
|
||||
{
|
||||
var model = getAPI2JSON("GET", api2_name + ".api" + (docparam?"?x=1"+docparam:""));
|
||||
if (!model)
|
||||
{
|
||||
WScript.echo("GET van api2_name + ".api + " werkt niet?");
|
||||
return;
|
||||
}
|
||||
|
||||
url += "/" + data[api2_name][0]["id"];
|
||||
var data = getAPI2JSON("GET", url + (docparam?"?x=1"+docparam:""));
|
||||
@@ -404,6 +409,11 @@ function testOne(api2_name, docparam)
|
||||
{
|
||||
for (var inc in model.includes)
|
||||
var data = getAPI2JSON("GET", url + "?include=" + model.includes[inc]);
|
||||
if (!model)
|
||||
{
|
||||
WScript.echo("GET van " + url + "?include=" + model.includes[inc] + " werkt niet?");
|
||||
return;
|
||||
}
|
||||
if (!(model.record_name in data))
|
||||
{
|
||||
WScript.echo("Data niet gevonden als include toegevoegd?");
|
||||
@@ -423,6 +433,8 @@ function getAPI2JSON(method, url, data)
|
||||
{
|
||||
return eval ("(" + objXMLHTTP.responseText + ")");
|
||||
}
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
function FcltAPI2(method, url, data)
|
||||
@@ -433,6 +445,7 @@ function FcltAPI2(method, url, data)
|
||||
|
||||
objXMLHTTP.open(method, url, false);
|
||||
objXMLHTTP.setRequestHeader ("X-FACILITOR-API-Key", G_fclt_apikey);
|
||||
objXMLHTTP.setRequestHeader ("Accept", "application/json");
|
||||
objXMLHTTP.send(data);
|
||||
if (objXMLHTTP.status >= 200 && objXMLHTTP.status <= 299)
|
||||
{
|
||||
@@ -440,5 +453,6 @@ function FcltAPI2(method, url, data)
|
||||
}
|
||||
WScript.Echo(objXMLHTTP.responseText);
|
||||
WScript.Echo(objXMLHTTP.status);
|
||||
WScript.Echo(objXMLHTTP.statusText);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -101,6 +101,13 @@ api2 = {
|
||||
case "varchar":
|
||||
val = getFParam(formfields[i].frm, null);
|
||||
break;
|
||||
case "processingtime":
|
||||
val = {
|
||||
"duration": getFParamFloat(formfields[i].frm, null),
|
||||
"unit": getFParam(formfields[i].frm + "_eenheid", "D")
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
{
|
||||
__DoLog(model.fields[formfields[i].name].typ);
|
||||
@@ -392,12 +399,12 @@ api2 = {
|
||||
if (filterval1) {
|
||||
var safe_val1 = api2.toDate(filterval1);
|
||||
var withtime = (field.typ == "datetime" && api2.hasTime(safe_val1));
|
||||
safe_val1 = withtime?safe_val1.toSQL(true):safe_val1.beginToSQL();
|
||||
safe_val1 = withtime?safe_val1.toSQL(true, true):safe_val1.beginToSQL();
|
||||
}
|
||||
if (filterval2) {
|
||||
var safe_val2 = api2.toDate(filterval2);
|
||||
var withtime = (field.typ == "datetime" && api2.hasTime(safe_val2));
|
||||
safe_val2 = withtime?safe_val2.toSQL(true):safe_val2.endToSQL();
|
||||
safe_val2 = withtime?safe_val2.toSQL(true, true):safe_val2.endToSQL();
|
||||
}
|
||||
if (filterval1 && filterval2) {
|
||||
operand = " BETWEEN ";
|
||||
@@ -565,6 +572,17 @@ api2 = {
|
||||
dbs = model.aliasprefix + fld;
|
||||
selects.push(field.sql + " AS " + dbs);
|
||||
}
|
||||
else if (field.typ == "processingtime")
|
||||
{
|
||||
var sqltijd = "(SELECT xx." + field.dbs + ".tijdsduur"
|
||||
+ " FROM " + model.table + " xx"
|
||||
+ " WHERE xx." + model.primary + " = " + model.table + "." + model.primary + ")";
|
||||
selects.push(sqltijd + " AS " + fld + "_tijdsduur");
|
||||
var sqleenh = "(SELECT xx." + field.dbs + ".eenheid"
|
||||
+ " FROM " + model.table + " xx"
|
||||
+ " WHERE xx." + model.primary + " = " + model.table + "." + model.primary + ")";
|
||||
selects.push(sqleenh + " AS " + fld + "_eenheid");
|
||||
}
|
||||
else if (dbs)
|
||||
{
|
||||
// veldnamen moeten gelijk zijn bij het ophalen. Zie ook: sql2jsonval
|
||||
@@ -919,6 +937,15 @@ api2 = {
|
||||
{
|
||||
var field = model.fields[fld];
|
||||
var sqlfieldname = (model.aliasprefix ? api2.sqlfield_alias(model, fld) : field.dbs);
|
||||
|
||||
if (field.typ == "processingtime")
|
||||
{
|
||||
var val = { "duration": oRs(fld + "_tijdsduur").Value,
|
||||
"unit": oRs(fld + "_eenheid").Value
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
if (field.val instanceof Function)
|
||||
var val = field.val(oRs, field, model, sqlfieldname);
|
||||
else if (field.dbs.indexOf(".") < 0)
|
||||
@@ -1234,7 +1261,10 @@ api2 = {
|
||||
lastkey = key;
|
||||
if (!model.primary)
|
||||
{
|
||||
data.push(record);
|
||||
if (to_skip > 0)
|
||||
to_skip --;
|
||||
else
|
||||
data.push(record);
|
||||
record = {};
|
||||
total_count ++;
|
||||
}
|
||||
@@ -1244,7 +1274,10 @@ api2 = {
|
||||
if (lastkey && data.length < limit)
|
||||
{
|
||||
total_count ++;
|
||||
data.push(record);
|
||||
if (to_skip > 0)
|
||||
to_skip --;
|
||||
else
|
||||
data.push(record);
|
||||
}
|
||||
if ("merged_model" in model) // de disc_params truc
|
||||
{
|
||||
@@ -1349,7 +1382,7 @@ api2 = {
|
||||
if (dt && dt instanceof Date)
|
||||
return dt;
|
||||
}
|
||||
NOT_A_DATE;
|
||||
api2.error(400, "Invalid date format");
|
||||
},
|
||||
generic_REST: function(model, gparams)
|
||||
{
|
||||
@@ -1598,6 +1631,8 @@ function generic_REST_POST(model, gparams)
|
||||
var err = Oracle.Execute(xxxIns.sql, true);
|
||||
if (err.friendlyMsg)
|
||||
api2.error(400, err.friendlyMsg); // Veronderstel Bad Request
|
||||
if (model.trackcode && user_key > 0) // Bij SAML user-provisioning is er nog niet niemand ingelogd.
|
||||
shared.trackaction(model.trackcode, the_key, L("lcl_inserted0").format(model.record_title));
|
||||
|
||||
var inctrack = api2.process_includes(params, model, jsondata, the_key);
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ var api2_mapper = {
|
||||
// "orders" : { "filename": "appl/api2/api_orders.asp", "module": "MLD" },
|
||||
"orders" : { "filename": "appl/bgt/mld_opdr.asp", "module": "MLD" },
|
||||
"issues" : { "filename": "appl/api2/api_issues.asp", "module": "MLD" },
|
||||
"issuetypes" : { "filename": "appl/api2/api_issuetypes.asp", "module": "MLD" },
|
||||
"issuetypes" : { "filename": "appl/mgt/mld_stdmelding.asp", "module": "MLD" },
|
||||
"pinboardcategories" : { "filename": "appl/mgt/mrk_discipline.asp" },
|
||||
"services" : { "filename": "appl/mgt/prs_dienst.asp" },
|
||||
"basisproperties" : { "filename": "appl/mgt/prs_kenmerk.asp", "docparam": "&level=P" },
|
||||
@@ -136,7 +136,7 @@ var api2_mapper = {
|
||||
"doc" : { "filename": "appl/api2/api_doc.asp", "module": "API" },
|
||||
"apis" : { "filename": "appl/api2/api_apis.asp", "module": "API" },
|
||||
"about" : { "filename": "appl/api2/api_about.asp", "module": "API" },
|
||||
"cadcontours" : { "filename": "appl/api2/api_cadcontours.asp", "module": "CAD" },
|
||||
"cadcontours" : { "filename": "appl/api2/api_cadcontours.asp", "module": "CAD", "nodoc": true },
|
||||
"contracts" : { "filename": "appl/api2/api_contracts.asp", "module": "CNT" },
|
||||
"notes" : { "filename": "appl/api2/api_notes.asp", "module": "FAC", "docparam": "&module=MLD" },
|
||||
"approvals" : { "filename": "appl/api2/api_approvals.asp", "module": "FAC" },
|
||||
|
||||
@@ -155,6 +155,18 @@ api2_rest = {
|
||||
Response.Status = "405 Method not allowed";
|
||||
Response.End;
|
||||
}
|
||||
// JGL: Met zeer grote tegenzin behoorlijk UWVA specifiek
|
||||
if (Session("isWriteonlyApi2User"))
|
||||
{
|
||||
if (method == "PUT" || (method == "GET" && getQParam("api2") == "reports"))
|
||||
{
|
||||
// Dat is toegestaan
|
||||
}
|
||||
else
|
||||
{
|
||||
Response.Status = api2.error(400, "Method not supported for this user");
|
||||
}
|
||||
}
|
||||
|
||||
var key = getQParamInt("id", -1); // Voor POST/PUT/DELETE
|
||||
|
||||
@@ -387,7 +399,7 @@ api2_rest = {
|
||||
}
|
||||
else if (model.record_name in jsondata) // een enkel record
|
||||
{
|
||||
if (!(key > 0))
|
||||
if (method == "PUT" && !(key > 0))
|
||||
api2.error(400, "Missing id");
|
||||
if (jsondata[model.record_name] instanceof Array)
|
||||
api2.error(400, "{0} should be single record only.".format(method))
|
||||
@@ -421,9 +433,9 @@ api2_rest = {
|
||||
case "POST":
|
||||
{
|
||||
var key = result.key;
|
||||
if (key > 0)
|
||||
if (key > 0 && !Session("isWriteonlyApi2User"))
|
||||
{
|
||||
var params = { filter: shared.qs2json(model), include: getQParamArray("include", []) }, jsondata, key
|
||||
// var params = { filter: shared.qs2json(model), include: getQParamArray("include", []) }, jsondata, key
|
||||
// requestparams.include is mogelijk uitgebreid met wat er in de body stond
|
||||
data = model.REST_GET({ filter: { id: key }, include: requestparams.include }); // resulterende data weer terug
|
||||
__Log(data);
|
||||
@@ -932,7 +944,7 @@ function RequestJSON()
|
||||
var lngBytesCount = Request.TotalBytes;
|
||||
jvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
|
||||
}
|
||||
__Log("Vraag: " + jvraag);
|
||||
__Log("Request body: " + jvraag);
|
||||
try
|
||||
{
|
||||
var vraag = myJSON.parse(jvraag);
|
||||
|
||||
@@ -151,11 +151,18 @@ model_bes_disc_params =
|
||||
"label": L("bes_discipline_remoteconfirm"),
|
||||
"typ": "check0"
|
||||
},
|
||||
"freeartikel": {
|
||||
"dbs": "bes_disc_params_freeartikel",
|
||||
"label": L("bes_discipline_freeartikel"),
|
||||
"ordermode": {
|
||||
"dbs": "bes_disc_params_bestelmode",
|
||||
"label": L("bes_discipline_bestelmode"),
|
||||
"typ": "number",
|
||||
"LOV": L("bes_discipline_freeartikelLOV"),
|
||||
"LOV": L("bes_discipline_bestelmodeLOV"),
|
||||
"emptyoption": null
|
||||
},
|
||||
"photomode": {
|
||||
"dbs": "bes_disc_params_fotomode",
|
||||
"label": L("bes_discipline_fotomode"),
|
||||
"typ": "number",
|
||||
"LOV": L("bes_discipline_fotomodeLOV"),
|
||||
"emptyoption": null
|
||||
},
|
||||
"punchouturl": {
|
||||
@@ -274,10 +281,22 @@ model_bes_disc_params =
|
||||
"desc": "cnt_termijn_omschrijving"
|
||||
}
|
||||
},
|
||||
"for_others": {
|
||||
"forothers": {
|
||||
"dbs": "bes_disc_params_for_others",
|
||||
"label": L("bes_discipline_for_others"),
|
||||
"typ": "check0"
|
||||
},
|
||||
"objectmode": {
|
||||
"dbs": "bes_disc_params_ins_mode",
|
||||
"label": L("lcl_ins_mode"),
|
||||
"typ": "number",
|
||||
"LOV": L("bes_discipline_ins_modeLOV"),
|
||||
"emptyoption": null
|
||||
},
|
||||
"feconfirm": {
|
||||
"dbs": "bes_disc_params_fe_confirm",
|
||||
"label": L("bes_discipline_fe_confirm"),
|
||||
"typ": "check0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ function model_bez_kenmerk(params)
|
||||
},
|
||||
"system": {
|
||||
"dbs": "bez_kenmerk_systeem",
|
||||
"label": L("mgt_kenmerk_systeem"),
|
||||
"label": L("mgt_srtkenmerk_systeem_adv"),
|
||||
"typ": "number",
|
||||
"LOV": L("mgt_kenmerk_systeemLOV"),
|
||||
"defaultvalue": 0,
|
||||
|
||||
@@ -91,14 +91,30 @@ function model_bgt_budget()
|
||||
"iscurrency": true,
|
||||
"total": true
|
||||
},
|
||||
"vatoriginal": {
|
||||
"dbs": "bgt_budget_btwbedrag_origineel",
|
||||
"sql": "(BGT.getBudgetOpDatum(bgt_budget.bgt_budget_key, 1, NULL))",
|
||||
"label": L("bgt_budget_origineel")+" "+L("lcl_fin_btwtabelwaarde_oms"),
|
||||
"typ": "float",
|
||||
"iscurrency": true,
|
||||
"total": true
|
||||
},
|
||||
"amountmutation": {
|
||||
"dbs": "bgt_budget_bedrag_mutatie",
|
||||
"sql": "(BGT.getBudgetMutaties(bgt_budget.bgt_budget_key, 0, NULL, NULL))",
|
||||
"sql": "(BGT.getBudgetSoortMutatie(NULL, NULL, bgt_budget.prs_kostensoort_key, 0, 'EM', NULL))",
|
||||
"label": L("bgt_budget_mutaties"),
|
||||
"typ": "float",
|
||||
"iscurrency": true,
|
||||
"total": true
|
||||
},
|
||||
"amountreservation": {
|
||||
"dbs": "bgt_budget_bedrag_reserve",
|
||||
"sql": "(BGT.getBudgetSoortMutatie(NULL, NULL, bgt_budget.prs_kostensoort_key, 0, 'AR', NULL))",
|
||||
"label": L("bgt_budget_vnreserve"),
|
||||
"typ": "float",
|
||||
"iscurrency": true,
|
||||
"total": true
|
||||
},
|
||||
"amount": {
|
||||
"dbs": "bgt_budget_bedrag",
|
||||
"label": L("bgt_budget_bedrag"),
|
||||
@@ -137,8 +153,7 @@ function model_bgt_budget()
|
||||
"dbs": "prs_kostenplaats_key",
|
||||
"label": L("bgt_budget_account"),
|
||||
"typ": "key",
|
||||
"foreign": bgt_account_foreign(),
|
||||
"emptyoption": null
|
||||
"foreign": bgt_account_foreign()
|
||||
},
|
||||
"begin": {
|
||||
"dbs": "bgt_budget_begin",
|
||||
@@ -230,10 +245,73 @@ function model_bgt_budget()
|
||||
{ // Zoek bij wijzigen van kostenplaats de kostenplaatsgrp_key op
|
||||
}
|
||||
|
||||
this.hook_pre_delete = function(params, key)
|
||||
{
|
||||
var key_arr = getFParamIntArray("id");
|
||||
|
||||
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);
|
||||
var sql_c = "SELECT COUNT(*) aantal"
|
||||
+ " FROM mld_opdr"
|
||||
+ " WHERE prs_kostensoort_key IN"
|
||||
+ " (SELECT prs_kostensoort_key"
|
||||
+ " FROM bgt_budget"
|
||||
+ " WHERE bgt_budget_key IN (" + key_arr.join(",") + ")"
|
||||
+ " )";
|
||||
var oRs_c = Oracle.Execute(sql_c);
|
||||
var nr_mld_opdr = oRs_c("aantal").Value;
|
||||
oRs_c.Close();
|
||||
if (nr_mld_opdr > 0)
|
||||
{
|
||||
// abort_with_warning(L("bgt_budget_delete_val1").format(L("lcl_fin_contracten"))); // De geselecteerde budgetten hebben contracten. Verwijder deze eerst.
|
||||
abort_with_warning("De geselecteerde budgetten hebben contracten. Verwijder deze eerst.");
|
||||
}
|
||||
|
||||
var sql_m = "SELECT COUNT(*) aantal"
|
||||
+ " FROM bgt_budgetmutatie"
|
||||
+ " WHERE bgt_budget_key_naar IN (" + key_arr.join(",") + ")"
|
||||
+ " OR bgt_budget_key_van IN (" + key_arr.join(",") + ")";
|
||||
var oRs_m = Oracle.Execute(sql_m);
|
||||
var nr_mutatie = oRs_m("aantal").Value;
|
||||
oRs_m.Close();
|
||||
if (nr_mutatie > 0)
|
||||
{
|
||||
// abort_with_warning(L("bgt_budget_delete_val1").format(L("bgt_budget_mutaties"))); // De geselecteerde budgetten hebben mutaties. Verwijder deze eerst.
|
||||
abort_with_warning("De geselecteerde budgetten hebben mutaties. Verwijder deze eerst.");
|
||||
}
|
||||
// Er zijn geen contracten of budgetmutaties bij de geselecteerde budget(ten) bekend.
|
||||
// Verwijderen is geen probleem meer.
|
||||
}
|
||||
|
||||
var v_budgetdiscipline = getQParamInt("budgetdiscipline", -1);
|
||||
if (v_budgetdiscipline == -1)
|
||||
{
|
||||
gparams = {
|
||||
GET: {wheres: [
|
||||
"bgt_budget.ins_discipline_key IN"
|
||||
+ " (SELECT w.ins_discipline_key"
|
||||
+ " FROM fac_v_webgebruiker w"
|
||||
+ " , ins_tab_discipline d"
|
||||
+ " WHERE w.ins_discipline_key = d.ins_discipline_key"
|
||||
+ " AND w.prs_perslid_key = " + user_key
|
||||
+ " AND (w.fac_gebruiker_prs_level_read<9 OR w.fac_gebruiker_alg_level_read<9)"
|
||||
+ " AND d.ins_discipline_module = 'BGT'"
|
||||
+ " AND d.ins_discipline_verwijder IS NULL"
|
||||
+ " )"
|
||||
]
|
||||
}
|
||||
}
|
||||
this.REST_GET = generic_REST_GET(this, gparams);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
}
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
var autparams = user.checkAutorisation(this.autfunction);
|
||||
var canWrite = (autparams.PRSwritelevel < 9 && autparams.ALGwritelevel < 9);
|
||||
if (canWrite)
|
||||
{
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
}
|
||||
}
|
||||
%>
|
||||
@@ -11,6 +11,7 @@
|
||||
Notes:
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="../bgt/bgt_tools.inc" -->
|
||||
<%
|
||||
|
||||
function model_bgt_budgetmutatie()
|
||||
@@ -47,11 +48,14 @@ function model_bgt_budgetmutatie()
|
||||
+ " AND b.prs_kostensoortgrp_key = g.prs_kostensoortgrp_key(+)"
|
||||
+ " AND b.prs_kostensoort_key = s.prs_kostensoort_key(+)"
|
||||
+ " AND s.fin_btwtabelwaarde_key = f.fin_btwtabelwaarde_key(+)"
|
||||
+ " AND b.bgt_project_key = "
|
||||
+ "(SELECT p.bgt_project_key"
|
||||
+ " FROM bgt_budget p"
|
||||
+ " WHERE bgt_budget_key = " + p_budget_key
|
||||
+ ")";
|
||||
+ ( p_budget_key > -1
|
||||
? " AND b.bgt_project_key = "
|
||||
+ "(SELECT p.bgt_project_key"
|
||||
+ " FROM bgt_budget p"
|
||||
+ " WHERE bgt_budget_key = " + p_budget_key
|
||||
+ ")"
|
||||
: ""
|
||||
);
|
||||
|
||||
this.fields = {
|
||||
"id": {
|
||||
@@ -76,6 +80,24 @@ function model_bgt_budgetmutatie()
|
||||
"typ": "varchar",
|
||||
"required": true
|
||||
},
|
||||
"code": {
|
||||
"dbs": "bgt_budgetmutatie_code",
|
||||
"label": L("bgt_budgetmutatie_code"),
|
||||
"typ": "varchar",
|
||||
"LOV": budgetmutatie_code_LOV(),
|
||||
"emptyoption": null
|
||||
},
|
||||
"sequence": {
|
||||
"dbs": "bgt_budgetmutatie_volgnr",
|
||||
"label": L("bgt_budgetmutatie_volgnr"),
|
||||
"typ": "number"
|
||||
},
|
||||
"ident": {
|
||||
"dbs": "bgt_budgetmutatie_identity",
|
||||
"sql": "COALESCE(bgt_budgetmutatie_code || TO_CHAR(bgt_budgetmutatie_volgnr), TO_CHAR(bgt_budgetmutatie_key))",
|
||||
"label": "Volgnr",
|
||||
"typ": "varchar"
|
||||
},
|
||||
"adjustedby": {
|
||||
"dbs": "prs_perslid_key",
|
||||
"label": L("bgt_budgetmutatie_door"),
|
||||
@@ -134,7 +156,7 @@ function model_bgt_budgetmutatie()
|
||||
},
|
||||
"amounttoincl": {
|
||||
"dbs": "bgt_budget_bedrag_naar_incl",
|
||||
"sql": "bgt_budget_bedrag_naar + bgt_budget_btwbedrag_naar",
|
||||
"sql": "COALESCE(bgt_budget_bedrag_naar, 0) + COALESCE(bgt_budget_btwbedrag_naar, 0)",
|
||||
"label": L("lcl_fin_total_sum"),
|
||||
"typ": "float",
|
||||
"readonly": true,
|
||||
@@ -142,14 +164,68 @@ function model_bgt_budgetmutatie()
|
||||
"iscurrency": true,
|
||||
"defaultvalue": "0"
|
||||
},
|
||||
"amountdifference": {
|
||||
"dbs": "bgt_budget_bedrag_verschil",
|
||||
"sql": "COALESCE(bgt_budget_bedrag_van, 0) + COALESCE(bgt_budget_bedrag_naar, 0)",
|
||||
"label": L("bgt_budgetmutatie"),
|
||||
"amountexc": {
|
||||
"dbs": "bgt_budget_bedrag_naar_exc",
|
||||
"sql": "CASE WHEN bgt_budget_key_naar IS NULL THEN bgt_budget_bedrag_van ELSE bgt_budget_bedrag_naar END",
|
||||
"label": L("bgt_budgetmutatie_bedrag"),
|
||||
"typ": "float",
|
||||
"iscurrency": true,
|
||||
"total": true
|
||||
},
|
||||
"amountvat": {
|
||||
"dbs": "bgt_budget_bedrag_naar_btw",
|
||||
"sql": "CASE WHEN bgt_budget_key_naar IS NULL THEN bgt_budget_btwbedrag_van ELSE bgt_budget_btwbedrag_naar END",
|
||||
"label": L("bgt_budgetmutatie_btwbedrag"),
|
||||
"typ": "float",
|
||||
"iscurrency": true,
|
||||
"total": true
|
||||
},
|
||||
"mutbudgetexc": {
|
||||
"dbs": "bgt_budget_mutatie_exc",
|
||||
"sql": "BGT.getMutatieOpBudget("+p_budget_key+", bgt_budgetmutatie_key, 0)",
|
||||
"label": L("bgt_budgetmutatie_bedrag"),
|
||||
"typ": "float",
|
||||
"readonly": true,
|
||||
"iscurrency": true,
|
||||
"total": true
|
||||
},
|
||||
"mutbudgetvat": {
|
||||
"dbs": "bgt_budget_mutatie_btw",
|
||||
"sql": "BGT.getMutatieOpBudget("+p_budget_key+", bgt_budgetmutatie_key, 1)",
|
||||
"label": L("bgt_budgetmutatie_btwbedrag"),
|
||||
"typ": "float",
|
||||
"readonly": true,
|
||||
"iscurrency": true,
|
||||
"total": true
|
||||
},
|
||||
"amountdifference": {
|
||||
"dbs": "bgt_budget_bedrag_verschil",
|
||||
"sql": "BGT.getSoortMutatie(bgt_budgetmutatie_key)",
|
||||
"label": L("bgt_budgetmutatie"),
|
||||
"typ": "float",
|
||||
"readonly": true,
|
||||
"iscurrency": true
|
||||
},
|
||||
"budgetdiscipline": {
|
||||
"dbs": "bgt_budget.ins_discipline_key",
|
||||
"label": L("bgt_discipline_omschrijving"),
|
||||
"typ": "key",
|
||||
"foreign": bgt_budgetdiscipline_foreign(),
|
||||
"hidden_fld": true
|
||||
},
|
||||
"budgetproject": {
|
||||
"dbs": "bgt_budget.bgt_project_key",
|
||||
"label": L("bgt_project_omschrijving"),
|
||||
"typ": "key",
|
||||
"foreign": bgt_budgetproject_foreign(),
|
||||
"hidden_fld": true
|
||||
},
|
||||
"budgetcostcategory": {
|
||||
"dbs": "bgt_budget.bgt_kostenrubriek_key",
|
||||
"label": L("bgt_kostenrubriek_oms"),
|
||||
"typ": "key",
|
||||
"foreign": bgt_budgetcostcategory_foreign(),
|
||||
"hidden_fld": true
|
||||
}
|
||||
};
|
||||
|
||||
@@ -160,14 +236,27 @@ function model_bgt_budgetmutatie()
|
||||
this.list = {
|
||||
"columns": [
|
||||
"mutationdate",
|
||||
"ident",
|
||||
"name",
|
||||
"budgetfrom",
|
||||
"budgetto",
|
||||
"amountto",
|
||||
"vatto",
|
||||
"amountexc",
|
||||
"amountvat",
|
||||
"amountdifference"
|
||||
]
|
||||
};
|
||||
|
||||
function budgetmutatie_code_LOV()
|
||||
{
|
||||
var mutatie_code = ";;"
|
||||
+ "A;A - automatische overboeking;"
|
||||
+ "E;E - extra;"
|
||||
+ "M;M - mutatie;"
|
||||
+ "R;R - reserve";
|
||||
return mutatie_code;
|
||||
}
|
||||
|
||||
this.hook_pre_edit = function (obj, fld)
|
||||
{
|
||||
@@ -223,6 +312,22 @@ function model_bgt_budgetmutatie()
|
||||
jsondata.vatfrom = -1 * jsondata.vatto;
|
||||
}
|
||||
|
||||
this.hook_post_post = function (params, jsondata, key)
|
||||
{
|
||||
// Haal de budget-keys voor correctie uit het mutatierecord.
|
||||
var sql = "SELECT bgt_budget_key_van"
|
||||
+ " , bgt_budget_key_naar"
|
||||
+ " FROM bgt_budgetmutatie"
|
||||
+ " WHERE bgt_budgetmutatie_key = " + key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
mutatie_correctie(oRs("bgt_budget_key_van").Value);
|
||||
mutatie_correctie(oRs("bgt_budget_key_naar").Value);
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
this.hook_pre_put = function (params, jsondata, key)
|
||||
{
|
||||
if ((!jsondata.amountto || jsondata.amountto == 0) && (!jsondata.vatto || jsondata.vatto == 0))
|
||||
@@ -231,26 +336,215 @@ function model_bgt_budgetmutatie()
|
||||
jsondata.vatfrom = -1 * jsondata.vatto;
|
||||
}
|
||||
|
||||
this.hook_post_put = function(params, jsondata, key)
|
||||
{
|
||||
// Haal de budget-keys voor correctie uit het mutatierecord.
|
||||
var sql = "SELECT bgt_budget_key_van"
|
||||
+ " , bgt_budget_key_naar"
|
||||
+ " FROM bgt_budgetmutatie"
|
||||
+ " WHERE bgt_budgetmutatie_key = " + key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
mutatie_correctie(oRs("bgt_budget_key_van").Value);
|
||||
mutatie_correctie(oRs("bgt_budget_key_naar").Value);
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
function contract_waarde(p_budget_key)
|
||||
{
|
||||
var v_contract = { bedrag_exc: 0
|
||||
, bedrag_btw: 0
|
||||
};
|
||||
var sql = "SELECT SUM(COALESCE(o.mld_opdr_kosten, 0)) contract_exc"
|
||||
+ " , SUM(COALESCE(o.mld_opdr_kosten_btw, 0)) contract_btw"
|
||||
+ " FROM bgt_budget b"
|
||||
+ " , mld_opdr o"
|
||||
+ " WHERE b.prs_kostensoort_key = o.prs_kostensoort_key(+)"
|
||||
+ " AND b.bgt_budget_key = " + p_budget_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
v_contract.bedrag_exc = oRs("contract_exc").Value;
|
||||
v_contract.bedrag_btw = oRs("contract_btw").Value;
|
||||
}
|
||||
oRs.Close();
|
||||
return v_contract;
|
||||
}
|
||||
|
||||
function budget_waarde(p_budget_key)
|
||||
{
|
||||
var v_budget = { bedrag_exc: 0
|
||||
, bedrag_btw: 0
|
||||
, isreserve: 1
|
||||
, reserve_key: -1
|
||||
};
|
||||
var sql = "SELECT b.bgt_budget_isreserve"
|
||||
+ " , COALESCE(b.bgt_budget_bedrag, 0) bgt_budget_exc"
|
||||
+ " , COALESCE(b.bgt_budget_btwbedrag, 0) bgt_budget_btw"
|
||||
+ " , r.bgt_budget_key"
|
||||
+ " FROM bgt_budget r"
|
||||
+ " , bgt_budget b"
|
||||
+ " WHERE r.bgt_project_key = b.bgt_project_key"
|
||||
+ " AND r.prs_kostensoort_key IS NULL"
|
||||
+ " AND r.prs_kostensoortgrp_key IS NULL"
|
||||
+ " AND b.bgt_budget_key = " + p_budget_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
v_budget.bedrag_exc = oRs("bgt_budget_exc").Value;
|
||||
v_budget.bedrag_btw = oRs("bgt_budget_btw").Value;
|
||||
v_budget.isreserve = oRs("bgt_budget_isreserve").Value == 1;
|
||||
v_budget.reserve_key = oRs("bgt_budget_key").Value;
|
||||
}
|
||||
oRs.Close();
|
||||
return v_budget;
|
||||
}
|
||||
|
||||
function mutatie_waarde(p_budget_key, p_reserve)
|
||||
{
|
||||
var van_reserve = { bedrag_exc: 0
|
||||
, bedrag_btw: 0
|
||||
};
|
||||
switch (p_reserve)
|
||||
{
|
||||
case "A": sql_res = " AND m.bgt_budgetmutatie_reserve = 1"; break; // alleen automatische overboekingen
|
||||
case "M": sql_res = " AND m.bgt_budgetmutatie_reserve = 0"; break; // alleen mutaties
|
||||
case "T": sql_res = ""; break; // totaal alle mutaties
|
||||
default: "";
|
||||
}
|
||||
var sql = "SELECT SUM(COALESCE(bedrag_exc, 0)) bedrag_exc"
|
||||
+ " , SUM(COALESCE(bedrag_btw, 0)) bedrag_btw"
|
||||
+ " FROM (SELECT SUM(COALESCE(m.bgt_budget_bedrag_van, 0)) bedrag_exc"
|
||||
+ " , SUM(COALESCE(m.bgt_budget_btwbedrag_van, 0)) bedrag_btw"
|
||||
+ " FROM bgt_budgetmutatie m"
|
||||
+ " WHERE bgt_budget_key_van = " + p_budget_key
|
||||
+ sql_res
|
||||
+ " UNION"
|
||||
+ " SELECT SUM(COALESCE(m.bgt_budget_bedrag_naar, 0)) bedrag_exc"
|
||||
+ " , SUM(COALESCE(m.bgt_budget_btwbedrag_naar, 0)) bedrag_btw"
|
||||
+ " FROM bgt_budgetmutatie m"
|
||||
+ " WHERE bgt_budget_key_naar = " + p_budget_key
|
||||
+ sql_res
|
||||
+ ")";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
van_reserve.bedrag_exc = oRs("bedrag_exc").Value;
|
||||
van_reserve.bedrag_btw = oRs("bedrag_btw").Value;
|
||||
}
|
||||
oRs.Close();
|
||||
return van_reserve;
|
||||
}
|
||||
|
||||
function mutatie_correctie(p_budget_key)
|
||||
{
|
||||
function een_correctie(p_budget_key, p_budget_bedrag, p_uitreserve_bedrag, p_contract_bedrag)
|
||||
{
|
||||
// Als een deel van het budgetbedrag uit automatische overboeking bestaat kan het budgetbedrag nooit groter zijn dan het contractbedrag.
|
||||
var te_contracteren = p_budget_bedrag - p_contract_bedrag;
|
||||
var naar_reserve = ( (te_contracteren > p_uitreserve_bedrag) ? p_uitreserve_bedrag : te_contracteren);
|
||||
return naar_reserve;
|
||||
}
|
||||
|
||||
var v_budget = budget_waarde(p_budget_key);
|
||||
var v_uitreserve = mutatie_waarde(p_budget_key, "A");
|
||||
var v_contracten = contract_waarde(p_budget_key);
|
||||
|
||||
if (!v_budget.isreserve)
|
||||
{ // Correctie is alleen voor budgetten op kostensoort, niet het reserve.
|
||||
var v_correctie_bedrag_exc = een_correctie(p_budget_key, v_budget.bedrag_exc, v_uitreserve.bedrag_exc, v_contracten.bedrag_exc);
|
||||
var v_correctie_bedrag_btw = een_correctie(p_budget_key, v_budget.bedrag_btw, v_uitreserve.bedrag_btw, v_contracten.bedrag_btw);
|
||||
|
||||
var data_correctie = { budget_res_key: v_budget.reserve_key
|
||||
, budget_srt_key: p_budget_key
|
||||
, bedrag_exc: v_correctie_bedrag_exc
|
||||
, bedrag_btw: v_correctie_bedrag_btw
|
||||
};
|
||||
insertMutatie(data_correctie, "AO");
|
||||
}
|
||||
}
|
||||
|
||||
function insertMutatie(data_mutatie, mutatie_code)
|
||||
{
|
||||
if (data_mutatie.bedrag_exc != 0 || data_mutatie.bedrag_btw != 0)
|
||||
{
|
||||
var sql = "SELECT prs_kostensoort_altcode"
|
||||
+ " FROM prs_kostensoort"
|
||||
+ " WHERE prs_kostensoort_key = "
|
||||
+ " (SELECT MIN(prs_kostensoort_key)"
|
||||
+ " FROM bgt_budget"
|
||||
+ " WHERE bgt_budget_key = " + data_mutatie.budget_srt_key
|
||||
+ " )";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var v_costtype_code = oRs("prs_kostensoort_altcode").Value;
|
||||
oRs.Close();
|
||||
|
||||
var mutatie_omschr = "";
|
||||
switch (mutatie_code)
|
||||
{
|
||||
case "AO": mutatie_omschr = "AO Automatische overboeking correctie"; break;
|
||||
case "MW": mutatie_omschr = "MW Meer-, minderwerk van " + v_costtype_code; break;
|
||||
}
|
||||
|
||||
var sql_m = "INSERT INTO bgt_budgetmutatie"
|
||||
+ "( bgt_budgetmutatie_datum"
|
||||
+ ", bgt_budgetmutatie_omschrijving"
|
||||
+ ", prs_perslid_key" // not null!
|
||||
+ ", bgt_budget_key_van"
|
||||
+ ", bgt_budget_bedrag_van"
|
||||
+ ", bgt_budget_btwbedrag_van"
|
||||
+ ", bgt_budget_key_naar"
|
||||
+ ", bgt_budget_bedrag_naar"
|
||||
+ ", bgt_budget_btwbedrag_naar"
|
||||
+ ", bgt_budgetmutatie_reserve"
|
||||
+ ") VALUES"
|
||||
+ "( SYSDATE"
|
||||
+ ", " + safe.quoted_sql(mutatie_omschr)
|
||||
+ ", " + user_key
|
||||
+ ", " + data_mutatie.budget_res_key
|
||||
+ ", " + data_mutatie.bedrag_exc
|
||||
+ ", " + data_mutatie.bedrag_btw
|
||||
+ ", " + data_mutatie.budget_srt_key
|
||||
+ ", " + (-1 * data_mutatie.bedrag_exc)
|
||||
+ ", " + (-1 * data_mutatie.bedrag_btw)
|
||||
+ ", 1"
|
||||
+ ")";
|
||||
Oracle.Execute(sql_m);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
var budget_key = getQParamInt("budgetcommon", -1);
|
||||
var mutatie_key = getQParamInt("id", -1);
|
||||
|
||||
var gparams = {
|
||||
GET: {
|
||||
tables: ["bgt_budget"],
|
||||
wheres: ["(bgt_budget.bgt_budget_key = bgt_budgetmutatie.bgt_budget_key_van OR bgt_budget.bgt_budget_key = bgt_budgetmutatie.bgt_budget_key_naar)"]
|
||||
}
|
||||
};
|
||||
|
||||
if (budget_key > -1)
|
||||
{
|
||||
var v_where = ( mutatie_key > -1
|
||||
? "bgt_budgetmutatie_key = {0}".format(mutatie_key)
|
||||
: "bgt_budget_key_van = {0} or bgt_budget_key_naar = {0}".format(budget_key)
|
||||
: "(bgt_budget.bgt_budget_key = {0})".format(budget_key)
|
||||
);
|
||||
this.REST_GET = generic_REST_GET(this, {
|
||||
"GET": {
|
||||
"wheres": [v_where]
|
||||
}
|
||||
});
|
||||
gparams.GET.wheres.push(v_where);
|
||||
}
|
||||
else
|
||||
|
||||
var autparams = user.checkAutorisation(this.autfunction);
|
||||
var canWrite = (autparams.PRSwritelevel < 9 && autparams.ALGwritelevel < 9);
|
||||
this.REST_GET = generic_REST_GET(this, gparams);
|
||||
if (p_budget_key > -1 || canWrite)
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
if (canWrite)
|
||||
{
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
}
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
}
|
||||
%>
|
||||
@@ -11,54 +11,22 @@
|
||||
Notes:
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="../ALG/alg.inc" -->
|
||||
<%
|
||||
|
||||
model_cadcontours =
|
||||
function model_cadcontours()
|
||||
{
|
||||
table: "cad_imp_contour",
|
||||
primary: "cad_imp_contour_key",
|
||||
aliasprefix: "CAD.",
|
||||
records_name: "cadcontours",
|
||||
record_name: "cadcontour",
|
||||
fields: {"id" : { dbs: "cad_imp_contour_key", typ: "key", filter: "exact" },
|
||||
"name" : { dbs: "cad_imp_contour_nr", typ: "varchar", filter: "like" },
|
||||
"cadarea" : { dbs: "cad_imp_contour_opp", typ: "float" },
|
||||
"cadalt1" : { dbs: "cad_imp_contour_opp_alt1", typ: "float" },
|
||||
"cadalt2" : { dbs: "cad_imp_contour.cad_imp_contour_opp_alt2", typ: "float" },
|
||||
"concept" : { dbs: "cad_imp_contour_concept", typ: "number" }
|
||||
},
|
||||
this.table = "cad_imp_contour",
|
||||
this.primary = "cad_imp_contour_key";
|
||||
this.records_name = "cadcontours";
|
||||
this.record_name = "cadcontour";
|
||||
this.fields = {"id" : { dbs: "cad_imp_contour_key", typ: "key", filter: "exact" },
|
||||
"name" : { dbs: "cad_imp_contour_nr", typ: "varchar", filter: "like" },
|
||||
"cadarea" : { dbs: "cad_imp_contour_opp", typ: "float" },
|
||||
"cadalt1" : { dbs: "cad_imp_contour_opp_alt1", typ: "float" },
|
||||
"cadalt2" : { dbs: "cad_imp_contour.cad_imp_contour_opp_alt2", typ: "float" },
|
||||
"concept" : { dbs: "cad_imp_contour_concept", typ: "number" }
|
||||
};
|
||||
|
||||
_check_authorization: function(params, method)
|
||||
{
|
||||
},
|
||||
_analyze_fields: function (fields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
|
||||
{
|
||||
},
|
||||
REST_GET: function _GET(params, jsondata)
|
||||
{
|
||||
model_cadcontours._check_authorization(params, "GET");
|
||||
var query = api2.sqlfields(params, model_cadcontours);
|
||||
|
||||
var wheres = api2.sqlfilter(params, model_cadcontours);
|
||||
query.wheres = query.wheres.concat(wheres);
|
||||
|
||||
var sql = "SELECT " + query.selects.join(", ")
|
||||
+ " FROM " + query.tables.join(", ")
|
||||
+ (query.wheres.length ? " WHERE " + query.wheres.join(" AND " ) : "")
|
||||
|
||||
var json = api2.sql2json (params, sql, model_cadcontours);
|
||||
|
||||
return json;
|
||||
},
|
||||
REST_PUT: function (params, jsondata, the_key) /* update cad contour */
|
||||
{
|
||||
},
|
||||
REST_POST: function (params, jsondata) /* new cad contour */
|
||||
{
|
||||
},
|
||||
REST_DELETE: function (params, the_key) /* delete cad contour */
|
||||
{
|
||||
}
|
||||
// (nog) geen eigen GET en dergelijke, alleen via include van model_rooms
|
||||
}
|
||||
%>
|
||||
@@ -2,7 +2,7 @@
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: model_bes_disc_params.inc
|
||||
File: model_cnt_disc_params.inc
|
||||
|
||||
Description: Vanuit CodeCharge gegenereerd model voor cnt_discipline
|
||||
|
||||
|
||||
@@ -154,10 +154,16 @@ function model_custom_fields(formodel, flexModel, flexParams)
|
||||
Response.Status = "304 Not modified";
|
||||
Response.End;
|
||||
}
|
||||
StreamFile(params.AttachPath, att.name, "application/octet-stream");
|
||||
var extension = att.name.split('.').pop();
|
||||
var mime = S("flex_mimetypes")[extension]; // Sommige mimetypes zijn bekend
|
||||
// Content-Type: image/jpeg; Charset=utf-8
|
||||
// Eigenlijk moet de Charset er alleen bij text/.... bij maar ik krijg die er niet netjes af
|
||||
// IE, FF en Chrome doen er in ieder geval niet moeilijk over
|
||||
//if (mime)
|
||||
// Response.Charset = ''; /
|
||||
StreamFile(params.AttachPath, att.name, mime || "application/octet-stream");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
__Log(filter);
|
||||
@@ -170,9 +176,10 @@ function model_custom_fields(formodel, flexModel, flexParams)
|
||||
// Merk op dat flexProps ook wel het type oplevert. Ik wil echter migreren naar modellen
|
||||
var kenmerkdata = api2.GET(flexModel, jsondata.propertyid);
|
||||
|
||||
|
||||
|
||||
|
||||
// Als je op de volgende regel een 'Object expected' krijgt is er
|
||||
// gesubmit met een kenmerk_key welke niet bestaat
|
||||
// Ik weet nog niet of daar een 'Unautorized', 'Bad request' of 'Stil negeren' van toepassing is
|
||||
// Vooralsnog maar even ongewijzigd er hard uitklappen
|
||||
if ("attributetype" in kenmerkdata)
|
||||
{
|
||||
var typ = kenmerkdata.attributetype.id;
|
||||
|
||||
@@ -30,10 +30,16 @@ function model_doc()
|
||||
this.modules = { };
|
||||
for (var i = 0; i < apis.length; i++)
|
||||
{
|
||||
if (apis[i].nodoc)
|
||||
continue;
|
||||
|
||||
var modulecode = apis[i].modulecode || "XXX";
|
||||
if (!(modulecode in this.modules))
|
||||
this.modules[modulecode] = { name: apis[i].module, apis: { } };
|
||||
this.modules[modulecode].apis[ apis[i].id ] = { label: apis[i].name };
|
||||
var apidata = { label: apis[i].name };
|
||||
if (apis[i].docparam )
|
||||
apidata.docparam = apis[i].docparam;
|
||||
this.modules[modulecode].apis[ apis[i].id ] = apidata;
|
||||
}
|
||||
|
||||
this.REST_GET = generic_REST_GET(this, {});
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<xsl:sort select="local-name()" />
|
||||
<xsl:element name="li">
|
||||
 <xsl:element name="a">
|
||||
<xsl:attribute name="href">../api2/<xsl:value-of select="local-name()"/>.doc</xsl:attribute>
|
||||
<xsl:attribute name="href">../api2/<xsl:value-of select="local-name()"/>.doc<xsl:if test="docparam!=''">?x=x<xsl:value-of select="docparam"/></xsl:if></xsl:attribute>
|
||||
<xsl:value-of select="local-name()"/>
|
||||
</xsl:element>
|
||||
 <span class='apidesc'><xsl:value-of select="label"/></span>
|
||||
|
||||
@@ -52,6 +52,7 @@ function model_fac_usrdata(params)
|
||||
"description": {
|
||||
"dbs": "fac_usrdata_omschr",
|
||||
"label": L("fac_usrdata_omschr"),
|
||||
"required": true,
|
||||
"typ": "varchar",
|
||||
"translate": true
|
||||
},
|
||||
|
||||
@@ -100,6 +100,12 @@ function model_fin_factuur()
|
||||
"foreign": bgt_account_foreign(),
|
||||
"readonly": true
|
||||
},
|
||||
"_staticinvoice": {
|
||||
"dbs": "",
|
||||
"label": L("bgt_factuurnr_vast"),
|
||||
"typ": "varchar",
|
||||
"foreign": bgt_invoice_foreign()
|
||||
},
|
||||
"invoice": {
|
||||
"dbs": "fin_factuur_nr",
|
||||
"label": L("lcl_fin_invoice_number"),
|
||||
@@ -116,7 +122,8 @@ function model_fin_factuur()
|
||||
"label": L("lcl_fin_findate"),
|
||||
"typ": "date",
|
||||
"required": true,
|
||||
"defaultvalue": new Date()
|
||||
"defaultvalue": new Date(),
|
||||
"filter": "exact"
|
||||
},
|
||||
"advice": {
|
||||
"dbs": "fin_factuur_advies",
|
||||
@@ -215,35 +222,50 @@ function model_fin_factuur()
|
||||
</script>
|
||||
<%
|
||||
|
||||
var vast_facnr = isVastFactuurnummer(obj.invoice);
|
||||
if (!obj.id && obj.invoice)
|
||||
{
|
||||
// Bij klonen: id=(bestaat niet), invoice=niet leeg. Dan een (volgende) volgnummer erachter zetten.
|
||||
var invoice = obj.invoice;
|
||||
var cur_inv = (invoice.indexOf("/") > -1 ? invoice.substring(0,invoice.indexOf("/")-1) : invoice);
|
||||
var cur_seq = (invoice.indexOf("/") > -1 ? invoice.substring(invoice.indexOf("/")+1) : 0);
|
||||
cur_seq = parseInt(cur_seq ? cur_seq : 0);
|
||||
if (!vast_facnr)
|
||||
{
|
||||
// Bij klonen: id=(bestaat niet), invoice=niet leeg. Dan een (volgende) volgnummer erachter zetten.
|
||||
var cur_inv = (invoice.indexOf("/") > -1 ? invoice.substring(0,invoice.indexOf("/")) : invoice);
|
||||
var cur_seq = (invoice.indexOf("/") > -1 ? invoice.substring(invoice.indexOf("/")+1) : 0);
|
||||
cur_seq = parseInt(cur_seq ? cur_seq : 0);
|
||||
|
||||
var sql = "SELECT MAX(CASE WHEN INSTR(f.fin_factuur_nr, '/') > 0"
|
||||
+ " THEN TO_NUMBER(SUBSTR(f.fin_factuur_nr, INSTR(f.fin_factuur_nr, '/')+1))"
|
||||
+ " ELSE 0"
|
||||
+ " END) max_seq"
|
||||
+ " FROM bgt_kostenrubriek r"
|
||||
+ " , prs_kostensoortgrp g"
|
||||
+ " , prs_kostensoort s"
|
||||
+ " , mld_opdr o"
|
||||
+ " , fin_factuur f"
|
||||
+ " WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
|
||||
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
|
||||
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
|
||||
+ " AND o.mld_opdr_key = f.mld_opdr_key"
|
||||
+ " AND r.bgt_project_key = " + obj.budgetproject.id
|
||||
+ " AND f.fin_factuur_nr LIKE " + safe.quoted_sql(cur_inv + "%");
|
||||
var oRs = Oracle.Execute(sql);
|
||||
cur_seq = oRs("max_seq").Value;
|
||||
oRs.Close();
|
||||
var sql = "SELECT MAX(CASE WHEN INSTR(f.fin_factuur_nr, '/') > 0"
|
||||
+ " THEN TO_NUMBER(SUBSTR(f.fin_factuur_nr, INSTR(f.fin_factuur_nr, '/')+1))"
|
||||
+ " ELSE 0"
|
||||
+ " END) max_seq"
|
||||
+ " FROM bgt_kostenrubriek r"
|
||||
+ " , prs_kostensoortgrp g"
|
||||
+ " , prs_kostensoort s"
|
||||
+ " , mld_opdr o"
|
||||
+ " , fin_factuur f"
|
||||
+ " WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
|
||||
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
|
||||
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
|
||||
+ " AND o.mld_opdr_key = f.mld_opdr_key"
|
||||
+ " AND r.bgt_project_key = " + obj.budgetproject.id
|
||||
+ " AND f.fin_factuur_nr LIKE " + safe.quoted_sql(cur_inv + "%");
|
||||
var oRs = Oracle.Execute(sql);
|
||||
cur_seq = oRs("max_seq").Value;
|
||||
oRs.Close();
|
||||
|
||||
var new_inv = cur_inv + "/" + (cur_seq + 1);
|
||||
obj.invoice = new_inv;
|
||||
var new_inv = cur_inv + "/" + (cur_seq==0 ? 2 : cur_seq + 1);
|
||||
obj.invoice = new_inv;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Bij klonen van een factuur met een vast factuurnr blijft deze ongewijzigd.
|
||||
obj.invoice = invoice;
|
||||
}
|
||||
var v_company = obj.company.id;
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
<% if (v_company) { %> var company = "<%=v_company%>"; <% } %>
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -306,7 +328,33 @@ function model_fin_factuur()
|
||||
// Gebruik daarvoor die van mld_opdr.
|
||||
setKostensoort(obj);
|
||||
// Is het factuurnummer/volgnummer uniek binnen het project?
|
||||
checkUniekFactuurnummer(-1, obj.budgetproject, obj.invoice);
|
||||
var v_discipline_key = (typeof obj.budgetdiscipline == "object" ? obj.budgetdiscipline.id : obj.budgetdiscipline);
|
||||
checkUniekFactuurnummer(-1, v_discipline_key, obj.invoice);
|
||||
// Bij een kopiefactuur van een origineel (factuurnummer zonder volgnummer)
|
||||
// moet het originele factuurnummer de toevoeging "/1" krijgen.
|
||||
// De vaste factuurnummers echter niet.
|
||||
var vast_factnr = isVastFactuurnummer(obj.invoice);
|
||||
var is_clone = (getQParamInt("scf_clone", 0) == 1);
|
||||
if (is_clone && !vast_factnr)
|
||||
{
|
||||
// Haal het originele factuurnummer op.
|
||||
var org_fin_key = getQParamInt("id");
|
||||
var sql = "SELECT fin_factuur_nr"
|
||||
+ " FROM fin_factuur"
|
||||
+ " WHERE fin_factuur_key = " + org_fin_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var fact_nr_org = oRs("fin_factuur_nr").Value;
|
||||
oRs.Close();
|
||||
if (fact_nr_org.indexOf("/") == -1)
|
||||
{
|
||||
// Het originele factuurnummer heeft nog geen volgnummer.
|
||||
// Deze dus alsnog toevoegen.
|
||||
var sql = "UPDATE fin_factuur"
|
||||
+ " SET fin_factuur_nr = " + safe.quoted_sql(fact_nr_org + "/1")
|
||||
+ " WHERE fin_factuur_key = " + org_fin_key;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.hook_pre_put = function(params, obj, key)
|
||||
@@ -314,8 +362,75 @@ function model_fin_factuur()
|
||||
// Bij wijzigen van factuur moet prs_kostensoort_key nog gevuld worden.
|
||||
// Gebruik daarvoor die van mld_opdr.
|
||||
setKostensoort(obj);
|
||||
// Project-key kan als gevolg van de filtering niet aanwezig zijn.
|
||||
// Haal deze dus maar op met behulp van de factuur-key.
|
||||
var sql = "SELECT pr.ins_discipline_key"
|
||||
+ " , kr.bgt_project_key"
|
||||
+ " , TRUNC(fa.fin_factuur_datum) factuur_datum"
|
||||
+ " , TRUNC(fa.fin_factuur_advies) advies_datum"
|
||||
+ " , fa.fin_factuur_nr"
|
||||
+ " , fa.fin_factuur_opmerking"
|
||||
+ " , fa.fin_factuur_statuses_key"
|
||||
+ " FROM bgt_project pr"
|
||||
+ " , bgt_kostenrubriek kr"
|
||||
+ " , prs_kostensoortgrp kg"
|
||||
+ " , prs_kostensoort ks"
|
||||
+ " , mld_opdr mo"
|
||||
+ " , fin_factuur fa"
|
||||
+ " WHERE pr.bgt_project_key = kr.bgt_project_key"
|
||||
+ " AND kr.bgt_kostenrubriek_key = kg.bgt_kostenrubriek_key"
|
||||
+ " AND kg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
|
||||
+ " AND ks.prs_kostensoort_key = mo.prs_kostensoort_key"
|
||||
+ " AND mo.mld_opdr_key = fa.mld_opdr_key"
|
||||
+ " AND fa.fin_factuur_key = " + key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var v_discipline_key = oRs("ins_discipline_key").Value;
|
||||
var v_project_key = oRs("bgt_project_key").Value;
|
||||
var v_factuur_datum = new Date(oRs("factuur_datum").Value);
|
||||
var v_advies_datum = new Date(oRs("advies_datum").Value);
|
||||
var v_invoice = oRs("fin_factuur_nr").Value;
|
||||
var v_remark = oRs("fin_factuur_opmerking").Value || "";
|
||||
var v_status = oRs("fin_factuur_statuses_key").Value;
|
||||
oRs.Close();
|
||||
|
||||
// Is de combinatie factuurnummer/volgnummer nog steeds uniek?
|
||||
checkUniekFactuurnummer(key, obj.budgetproject, obj.invoice);
|
||||
if (obj.invoice != v_invoice)
|
||||
checkUniekFactuurnummer(key, v_discipline_key, obj.invoice);
|
||||
|
||||
// Zet van alle facturen met hetzelfde factuurnummer binnen het project de adviesdatum gelijk.
|
||||
// De vaste factuurnummers worden buiten beschouwing gelaten.
|
||||
var vast_facnr = isVastFactuurnummer(obj.invoice);
|
||||
var v_old_factuurdatum = toDateString(v_factuur_datum, true)
|
||||
var v_new_factuurdatum = toDateString(obj.date.midnight(), true);
|
||||
var v_old_adviesdatum = toDateString(v_advies_datum, true)
|
||||
var v_new_adviesdatum = toDateString(obj.advice.midnight(), true);
|
||||
//
|
||||
var v_diff_datum = (v_old_factuurdatum != v_new_factuurdatum)
|
||||
var v_diff_advies = (v_old_adviesdatum != v_new_adviesdatum);
|
||||
var v_diff_remark = (v_remark != obj.remark);
|
||||
var v_diff_status = (v_status != obj.status);
|
||||
|
||||
if (!vast_facnr && (v_diff_datum || v_diff_advies || v_diff_remark || v_diff_status))
|
||||
{
|
||||
// We moeten zoeken op factuurnummer zonder volgnummer.
|
||||
var cur_invoice = (obj.invoice.indexOf("/") > -1 ? obj.invoice.substring(0, obj.invoice.indexOf("/")) : obj.invoice);
|
||||
var sql_u = "UPDATE fin_factuur"
|
||||
+ " SET fin_factuur_advies = " + obj.advice.toSQL()
|
||||
+ " , fin_factuur_datum = " + obj.date.toSQL()
|
||||
+ " , fin_factuur_opmerking = " + safe.quoted_sql(obj.remark)
|
||||
+ " , fin_factuur_statuses_key = " + obj.status
|
||||
+ " WHERE fin_factuur_key IN"
|
||||
+ " (SELECT fin_factuur_key"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " , mld_opdr m"
|
||||
+ " , bgt_v_project_full p"
|
||||
+ " WHERE f.mld_opdr_key = m.mld_opdr_key"
|
||||
+ " AND m.prs_kostensoort_key = p.prs_kostensoort_key"
|
||||
+ " AND p.ins_discipline_key = " + v_discipline_key
|
||||
+ " AND SUBSTR(f.fin_factuur_nr, 0, INSTR(f.fin_factuur_nr,'/')-1) = " + safe.quoted_sql(cur_invoice)
|
||||
+ " )";
|
||||
Oracle.Execute(sql_u);
|
||||
}
|
||||
}
|
||||
|
||||
function setKostensoort(obj)
|
||||
@@ -329,20 +444,44 @@ function model_fin_factuur()
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
function checkUniekFactuurnummer(p_factuur_key, p_project_key, p_factuurnr)
|
||||
function isVastFactuurnummer(factnr)
|
||||
{
|
||||
// is de huidige factuurnummer iets uit de usrtab, dan deze gewoon laten staan.
|
||||
var sql = "SELECT count(*) aantal"
|
||||
+ " FROM fac_usrdata d"
|
||||
+ " , fac_usrtab t"
|
||||
+ " WHERE t.fac_usrtab_key = d.fac_usrtab_key"
|
||||
+ " AND t.fac_usrtab_naam = " + safe.quoted_sql(S("bgt_usrtab_vaste_factuurnummer"))
|
||||
+ " AND d.fac_usrdata_code = " + safe.quoted_sql(factnr);
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var vast_factnr = (oRs("aantal").Value == 1);
|
||||
oRs.Close();
|
||||
return vast_factnr;
|
||||
}
|
||||
|
||||
function checkUniekFactuurnummer(p_factuur_key, p_discipline_key, p_factuurnr)
|
||||
{
|
||||
var sql = "SELECT count(*) aantal"
|
||||
+ " FROM bgt_kostenrubriek r"
|
||||
+ " FROM bgt_project p"
|
||||
+ " , bgt_kostenrubriek r"
|
||||
+ " , prs_kostensoortgrp g"
|
||||
+ " , prs_kostensoort s"
|
||||
+ " , mld_opdr o"
|
||||
+ " , fin_factuur f"
|
||||
+ " WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
|
||||
+ " WHERE p.bgt_project_key = r.bgt_project_key"
|
||||
+ " AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
|
||||
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
|
||||
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
|
||||
+ " AND o.mld_opdr_key = f.mld_opdr_key"
|
||||
+ " AND r.bgt_project_key = " + p_project_key
|
||||
+ " AND p.ins_discipline_key = " + p_discipline_key
|
||||
+ " AND f.fin_factuur_nr = " + safe.quoted_sql(p_factuurnr)
|
||||
+ " AND f.fin_factuur_nr NOT IN"
|
||||
+ " (SELECT d.fac_usrdata_code"
|
||||
+ " FROM fac_usrdata d"
|
||||
+ " , fac_usrtab t"
|
||||
+ " WHERE t.fac_usrtab_key = d.fac_usrtab_key"
|
||||
+ " AND t.fac_usrtab_naam = " + safe.quoted_sql(S("bgt_usrtab_vaste_factuurnummer"))
|
||||
+ " )"
|
||||
+ (p_factuur_key != -1 ? " AND f.fin_factuur_key <> " + p_factuur_key : "");
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var uniek_factuurnr = (oRs("aantal").Value == 0);
|
||||
@@ -353,6 +492,7 @@ function model_fin_factuur()
|
||||
|
||||
|
||||
var mld_opdr_key = getQParamInt("opdrachtcommon", -1);
|
||||
var fin_key = getQParamInt("id", -1);
|
||||
var ischild = (getQParam("columns", "")=="" ? true : false);
|
||||
var xmodel = getQParam("model", "");
|
||||
if (mode == "list" && (xmodel == this.record_name || (ischild && mld_opdr_key == -1) || (!ischild && mld_opdr_key > -1)))
|
||||
@@ -379,13 +519,38 @@ function model_fin_factuur()
|
||||
]
|
||||
}
|
||||
};
|
||||
if (mld_opdr_key > -1)
|
||||
if (mld_opdr_key > -1 && fin_key == -1)
|
||||
gparams.GET.wheres.push("mld_opdr.mld_opdr_key = {0}".format(mld_opdr_key));
|
||||
this.REST_GET = generic_REST_GET(this, gparams);
|
||||
|
||||
var v_budgetdiscipline = getQParamInt("budgetdiscipline", -1);
|
||||
if (v_budgetdiscipline == -1)
|
||||
{
|
||||
gparams.GET.tables.push("ins_tab_discipline");
|
||||
gparams.GET.wheres.push("bgt_project.ins_discipline_key = ins_tab_discipline.ins_discipline_key");
|
||||
gparams.GET.wheres.push(
|
||||
"bgt_project.ins_discipline_key IN"
|
||||
+ " (SELECT w.ins_discipline_key"
|
||||
+ " FROM fac_v_webgebruiker w"
|
||||
+ " , ins_tab_discipline d"
|
||||
+ " WHERE w.ins_discipline_key = d.ins_discipline_key"
|
||||
+ " AND w.prs_perslid_key = " + user_key
|
||||
+ " AND (w.fac_gebruiker_prs_level_read<9 OR w.fac_gebruiker_alg_level_read<9)"
|
||||
+ " AND d.ins_discipline_module = 'BGT'"
|
||||
+ " AND d.ins_discipline_verwijder IS NULL"
|
||||
+ " )"
|
||||
);
|
||||
}
|
||||
|
||||
this.REST_GET = generic_REST_GET(this, gparams);
|
||||
}
|
||||
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
var autparams = user.checkAutorisation(this.autfunction);
|
||||
var canWrite = (autparams.PRSwritelevel < 9 && autparams.ALGwritelevel < 9);
|
||||
if (canWrite)
|
||||
{
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
}
|
||||
}
|
||||
%>
|
||||
@@ -11,107 +11,21 @@
|
||||
Notes:
|
||||
*/
|
||||
|
||||
model_issueobjects =
|
||||
function model_issueobjects()
|
||||
{
|
||||
table: "mld_melding_object",
|
||||
primary: "mld_melding_object_key",
|
||||
records_name: "issueobjects",
|
||||
record_name: "issueobject",
|
||||
fields: {"id" : { dbs: "mld_melding_object_key", typ: "key", filter: "exact" },
|
||||
"object" : { dbs: "ins_deel_key", typ: "key", foreign: "ins_deel" },
|
||||
"mld_melding_key": { dbs: "mld_melding_key", typ: "key" }
|
||||
},
|
||||
this.table = "mld_melding_object";
|
||||
this.primary = "mld_melding_object_key";
|
||||
this.records_name = "issueobjects";
|
||||
this.record_name = "issueobject";
|
||||
this.autfunction = false; // Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
||||
this.fields = {"id" : { dbs: "mld_melding_object_key", typ: "key", filter: "exact", seq: "mld_s_mld_object_key" },
|
||||
"object": { dbs: "ins_deel_key", typ: "key", foreign: "ins_deel" },
|
||||
"issue" : { dbs: "mld_melding_key", typ: "key"}
|
||||
};
|
||||
|
||||
list: { columns: ["object"] },
|
||||
|
||||
_analyze_fields: function (dbfields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
|
||||
{
|
||||
if (jsondata.id)
|
||||
{
|
||||
// Bestaande mld_melding_object: PUT
|
||||
}
|
||||
else
|
||||
{ // Nieuwe mld_melding_object: POST
|
||||
// Controleer of de combinatie melding_key/object_key al bestaat. Zo ja, dan niet toevoegen.
|
||||
var mld_obj_key = -1;
|
||||
var sql = "SELECT mld_melding_object_key"
|
||||
+ " FROM mld_melding_object"
|
||||
+ " WHERE mld_melding_object_verwijder IS NULL"
|
||||
+ " AND mld_melding_key = " + params.filter.id
|
||||
+ " AND ins_deel_key = " + dbfields[0].val; // TODO: unsafe?
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
mld_obj_key = oRs("mld_melding_object_key").Value;
|
||||
params.isNew = false;
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
},
|
||||
|
||||
_validate_fields: function (dbfields, params, jsondata) /* valideer dbfields, alle constraints die niet door de database worden afgevangen */
|
||||
{
|
||||
},
|
||||
|
||||
REST_GET: function _GET(params)
|
||||
{
|
||||
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
||||
var query = api2.sqlfields(params, model_issueobjects );
|
||||
|
||||
query.wheres.push("mld_melding_object_verwijder IS NULL");
|
||||
|
||||
var wheres = api2.sqlfilter(params, model_issueobjects);
|
||||
query.wheres = query.wheres.concat(wheres);
|
||||
|
||||
var sql = "SELECT " + query.selects.join(", ")
|
||||
+ " FROM " + query.tables.join(", ")
|
||||
+ " WHERE " + query.wheres.join(" AND " );
|
||||
|
||||
var json = api2.sql2json (params, sql, model_issueobjects );
|
||||
|
||||
return json;
|
||||
},
|
||||
|
||||
REST_PUT: function (params, jsondata, the_key) /* update object */
|
||||
{
|
||||
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
||||
var dbfields = api2.update_fields(params, model_issueobjects, jsondata); // Build updater
|
||||
model_issueobjects._analyze_fields(dbfields, params, jsondata);
|
||||
|
||||
var mldUpd = buildTrackingUpdate("mld_melding_object", " mld_melding_object_key = " + the_key, dbfields, { noValidateToken: true });
|
||||
Oracle.Execute(mldUpd.sql);
|
||||
|
||||
// Nu geen api2.process_includes() meer aanroepen, anders ga je de objecten zelf ook nog aanpassen.
|
||||
|
||||
return { key: the_key };
|
||||
},
|
||||
|
||||
REST_POST: function (params, jsondata, parent_key) /* new object */
|
||||
{
|
||||
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
||||
params.isNew = true; // negeer eventuele bestaande keys
|
||||
var dbfields = api2.update_fields(params, model_issueobjects, jsondata); // Build updater
|
||||
model_issueobjects._analyze_fields(dbfields, params, jsondata);
|
||||
|
||||
var new_key = null;
|
||||
if (params.isNew)
|
||||
{
|
||||
dbfields["issue"] = { dbs: "mld_melding_key", typ: "key", val: parent_key };
|
||||
dbfields["id"] = { dbs: "mld_melding_object_key", typ: "key", seq: "mld_s_mld_object_key" };
|
||||
|
||||
var mldIns = buildInsert("mld_melding_object", dbfields, { noValidateToken: true });
|
||||
new_key = mldIns.sequences["mld_melding_object_key"];
|
||||
Oracle.Execute(mldIns.sql);
|
||||
}
|
||||
|
||||
return { key: new_key };
|
||||
},
|
||||
|
||||
REST_DELETE: function (params, the_key) /* delete object */
|
||||
{
|
||||
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
||||
var sql = "DELETE FROM mld_melding_object WHERE mld_melding_object_key = " + the_key;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
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);
|
||||
}
|
||||
%>
|
||||
@@ -89,8 +89,9 @@ function model_issues(mld_key, params)
|
||||
joinfield: "issue"
|
||||
},
|
||||
"issueobjects": {
|
||||
model: model_issueobjects,
|
||||
joinfield: "mld_melding_key"
|
||||
model: new model_issueobjects(),
|
||||
joinfield: "issue",
|
||||
"enable_update": true
|
||||
}
|
||||
};
|
||||
|
||||
@@ -480,7 +481,7 @@ function model_issues(mld_key, params)
|
||||
_validate_fields(dbfields, params, jsondata);
|
||||
|
||||
dbfields["alg"] = { dbs: "mld_alg_onroerendgoed_keys", typ: "datetime", val: params.data.alg_onroerendgoed_keys == -1 ? null : params.data.alg_onroerendgoed_keys };
|
||||
dbfields["origin"] = { dbs: "mld_meldbron_key", typ: "key", val: jsondata.meldbron? jsondata.meldbron : S("mld_meldbron_key") };
|
||||
dbfields["origin"] = { dbs: "mld_meldbron_key", typ: "key", val: jsondata.origin? jsondata.origin : S("mld_meldbron_key") };
|
||||
dbfields["module"] = { dbs: "mld_melding_module", typ: "varchar", val: "MLD" };
|
||||
dbfields["issue"] = { dbs: "mld_melding_key", typ: "key", seq: "mld_s_mld_melding_key" };
|
||||
|
||||
@@ -489,6 +490,7 @@ function model_issues(mld_key, params)
|
||||
var sql = mldIns.sql;
|
||||
Oracle.Execute(mldIns.sql);
|
||||
|
||||
params.filter = { id: new_key }; // De nieuwe mld_melding_key.
|
||||
var mldtrack = api2.process_includes(params, this, jsondata, new_key);
|
||||
|
||||
mld.setmeldingstatus(new_key, (stdm.xmld_directklaar? 0 : 2)); // Zorgt ook voor tracking & daarmee notificatie
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
<% /*
|
||||
|
||||
=============================================================
|
||||
LET OP: Dit bestand moet nog vervallen omdat we tegenwoordig
|
||||
model_mld_stdmelding.inc hebben die veel completer is
|
||||
=============================================================
|
||||
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
|
||||
@@ -52,11 +52,12 @@ function model_mld_dienstniveau()
|
||||
this.includes = {
|
||||
"dienstpakket": {
|
||||
"model": new model_mld_dienstpakket(),
|
||||
"joinfield": "level"
|
||||
"joinfield": "level",
|
||||
"enable_update": true,
|
||||
"multiadd": "issuetype"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
|
||||
@@ -30,7 +30,7 @@ function model_mld_dienstpakket()
|
||||
"label": "Key",
|
||||
"typ": "key",
|
||||
"filter": "exact",
|
||||
"seq": "mld_s_dienstniveau_key"
|
||||
"seq": "mld_s_dienstpakket_key"
|
||||
},
|
||||
"level": {
|
||||
"dbs": "mld_dienstniveau_key",
|
||||
@@ -40,7 +40,8 @@ function model_mld_dienstpakket()
|
||||
"tbl": "mld_dienstniveau",
|
||||
"key": "mld_dienstniveau_key",
|
||||
"desc": "mld_dienstniveau_omschr"
|
||||
}
|
||||
},
|
||||
"uniquewith": "issuetype"
|
||||
},
|
||||
"issuetype": {
|
||||
"dbs": "mld_stdmelding_key",
|
||||
@@ -61,14 +62,16 @@ function model_mld_dienstpakket()
|
||||
"key": "mld_stdmelding_key",
|
||||
"desc": "full_description"
|
||||
},
|
||||
"friendlyname": true
|
||||
"friendlyname": true,
|
||||
"uniquewith": "level"
|
||||
}
|
||||
};
|
||||
|
||||
this.list = {
|
||||
"columns": [
|
||||
"id",
|
||||
"issuetype"
|
||||
"issuetype",
|
||||
"level"
|
||||
]
|
||||
};
|
||||
|
||||
@@ -78,6 +81,7 @@ function model_mld_dienstpakket()
|
||||
|
||||
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
// POST: Er kan hier geen nieuwe dienstpakket toegevoegd worden. Deze ontstaan door bij standaardmeldingen dienstniveau's te koppelen
|
||||
// Als je hier een stdmelding wilt kiezen, zou je eerst op vakgroep (discipline) moeten filteren. Anders wordt de lijst met stdmeldingen te lang.
|
||||
|
||||
@@ -123,31 +123,48 @@ model_mld_disc_params =
|
||||
"dbs": "mld_disc_params_factuurpct",
|
||||
"label": L("mld_discipline_marginpct"),
|
||||
"typ": "number",
|
||||
"defaultvalue": 0
|
||||
"defaultvalue": 0,
|
||||
"multiedit": true
|
||||
},
|
||||
"invoicemargin": {
|
||||
"dbs": "mld_disc_params_factuurmarge",
|
||||
"label": L("mld_discipline_margin"),
|
||||
"iscurrency": true,
|
||||
"typ": "float",
|
||||
"defaultvalue": 0
|
||||
"defaultvalue": 0,
|
||||
"multiedit": true
|
||||
},
|
||||
"invoicematchmode": {
|
||||
"dbs": "mld_disc_params_factmatchmode",
|
||||
"label": L("mld_discipline_match"),
|
||||
"typ": "number",
|
||||
"LOV": L("mld_discipline_matchLOV"),
|
||||
"emptyoption": null
|
||||
"emptyoption": null,
|
||||
"multiedit": true
|
||||
},
|
||||
"invoiceapprove": {
|
||||
"dbs": "mld_disc_params_factuurappr",
|
||||
"label": L("mld_discipline_autofiat"),
|
||||
"typ": "check0"
|
||||
"typ": "check0",
|
||||
"multiedit": true
|
||||
},
|
||||
"invoicebelow": {
|
||||
"dbs": "mld_disc_params_factuurgrens",
|
||||
"label": L("mld_discipline_belowfiat"),
|
||||
"typ": "number"
|
||||
"typ": "number",
|
||||
"multiedit": true
|
||||
},
|
||||
"emailnew3": {
|
||||
"dbs": "mld_disc_params_emailnw3",
|
||||
"label": L("mld_discipline_emailnw3"),
|
||||
"typ": "varchar",
|
||||
"multiedit": true
|
||||
},
|
||||
"smsnew3": {
|
||||
"dbs": "mld_disc_params_smsnw3",
|
||||
"label": L("mld_discipline_smsnw3"),
|
||||
"typ": "varchar",
|
||||
"multiedit": true
|
||||
},
|
||||
"notifybo": {
|
||||
"dbs": "mld_disc_params_bonotify",
|
||||
|
||||
@@ -138,7 +138,7 @@ function model_mld_opdr()
|
||||
},
|
||||
"estimate": {
|
||||
"dbs": "estimate",
|
||||
"sql": "CASE WHEN mld_statusopdr_key=10 THEN mld_opdr_kosten END",
|
||||
"sql": "(BGT.getRaming(mld_opdr.mld_opdr_key, 0, NULL, NULL))",
|
||||
"sqlshow": true,
|
||||
"hidden_fld": true,
|
||||
"label": "Raming",
|
||||
@@ -148,7 +148,7 @@ function model_mld_opdr()
|
||||
},
|
||||
"contracted": {
|
||||
"dbs": "contracted",
|
||||
"sql": "CASE WHEN mld_statusopdr_key<>10 THEN mld_opdr_kosten END",
|
||||
"sql": "(BGT.getGecontracteerd(mld_opdr.mld_opdr_key, 0, NULL, NULL))",
|
||||
"sqlshow": true,
|
||||
"hidden_fld": true,
|
||||
"label": L("bgt_gecontracteerd"),
|
||||
@@ -236,7 +236,19 @@ function model_mld_opdr()
|
||||
"typ": "check0",
|
||||
"defaultvalue": 0,
|
||||
"filter": "exact"
|
||||
}
|
||||
},
|
||||
"remark": {
|
||||
"dbs": "mld_opdr_opmerking",
|
||||
"label": L("lcl_remark"),
|
||||
"typ": "memo"
|
||||
},
|
||||
"_is_clone": {
|
||||
"dbs": "",
|
||||
"label": "Is kopie",
|
||||
"typ": "number",
|
||||
"defaultvalue": 0,
|
||||
"hidden_fld": true
|
||||
}
|
||||
};
|
||||
|
||||
this.fields = object_merge({}, fields_main_1, (S("bgt_enabled") ? fields_bgt_1 : {}), fields_main_2);
|
||||
@@ -251,8 +263,10 @@ function model_mld_opdr()
|
||||
}
|
||||
}
|
||||
|
||||
this.hook_pre_edit = function (obj, fld)
|
||||
this.hook_pre_edit = function (obj, fld, scf_params)
|
||||
{
|
||||
obj._is_clone = getQParamInt("scf_clone", 0);
|
||||
var mld_opdr_id = (obj._is_clone == 1 ? getQParamInt("id", -1) : obj.id);
|
||||
var btw_data = {};
|
||||
if (obj.id > -1 || obj.ordernr_sort)
|
||||
{
|
||||
@@ -260,7 +274,7 @@ function model_mld_opdr()
|
||||
fld.ordernr.readonly = true;
|
||||
}
|
||||
|
||||
if (obj.id > -1)
|
||||
if (mld_opdr_id > -1)
|
||||
{
|
||||
var sql = "SELECT s.prs_kostensoort_btw"
|
||||
+ " , f.fin_btwtabelwaarde_perc"
|
||||
@@ -269,7 +283,7 @@ function model_mld_opdr()
|
||||
+ " , fin_btwtabelwaarde f"
|
||||
+ " WHERE s.fin_btwtabelwaarde_key = f.fin_btwtabelwaarde_key"
|
||||
+ " AND o.prs_kostensoort_key = s.prs_kostensoort_key"
|
||||
+ " AND o.mld_opdr_key = " + obj.id;
|
||||
+ " AND o.mld_opdr_key = " + mld_opdr_id;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
@@ -277,6 +291,25 @@ function model_mld_opdr()
|
||||
btw_data.btw_val = oRs("fin_btwtabelwaarde_perc").Value || "0";
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
/*
|
||||
#TWYN#53173
|
||||
De bestaande knop "Kopi<70>ren" is komen te vervallen. Daarvoor in de plaats zijn twee nieuwe knoppen toegevoegd: "Nieuwe opdracht" en "nieuwe subopdracht".
|
||||
Bij een nieuwe subopdracht is het opdrachtnummer gelijk aan die van de opdracht van waaruit gekopieerd wordt en is niet te wijzigen. Het volgnummer staat standaard op volgnr(max+1).
|
||||
if (obj._is_clone == 2)) // nieuw subcontract: bepaal hoogste volgnummer bij dit contract, en vul deze alvast in.
|
||||
{
|
||||
var sql = "SELECT COALESCE(MAX(s.mld_opdr_bedrijfopdr_volgnr), 0) + 1 volgnr"
|
||||
+ " FROM mld_opdr s"
|
||||
+ " WHERE s.mld_opdr_ordernr ="
|
||||
+ " (SELECT m.mld_opdr_ordernr"
|
||||
+ " FROM mld_opdr m"
|
||||
+ " WHERE m. mld_opdr_key = " + mld_opdr_id
|
||||
+ " )";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
obj.sequence = oRs("volgnr").Value;
|
||||
oRs.Close();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
%>
|
||||
@@ -293,16 +326,23 @@ function model_mld_opdr()
|
||||
|
||||
this.hook_pre_post = function(params, obj)
|
||||
{
|
||||
var parent_key = getQParamInt("id", -1);
|
||||
var isclone = (obj._is_clone == 1);
|
||||
if (!obj.sequence && obj.sequence!=0)
|
||||
abort_with_warning("Vul een volgnummer voor het contract in.");
|
||||
|
||||
var v_costtype = (obj.costtype ? obj.costtype : getQParamInt("costtype", -1));
|
||||
var v_costtype = (typeof obj.costtype == "object" ? obj.costtype.id : obj.costtype);
|
||||
checkAanwezigBudget(v_costtype);
|
||||
|
||||
if (parent_key > -1) // Bij kopie van opdracht geen nieuw nummer genereren.
|
||||
/*
|
||||
TWYN#53173 : waarschijnlijk pas met 2018.1
|
||||
obj._is_clone=1 --> nieuwe (hoofd) opdracht
|
||||
obj._is_clone=2 --> nieuwe sub-opdracht
|
||||
*/
|
||||
if (isclone) // Bij kopie van opdracht geen nieuw nummer genereren.
|
||||
{
|
||||
var v_project_key = (typeof obj.budgetproject == "object" ? obj.budgetproject.id : obj.budgetproject);
|
||||
// Vul het contractnummer van het oorspronkelijke contract in.
|
||||
var parent_key = getQParamInt("id", -1);
|
||||
var sql = "SELECT o.mld_opdr_ordernr"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " WHERE o.mld_opdr_key = " + parent_key;
|
||||
@@ -310,7 +350,7 @@ function model_mld_opdr()
|
||||
obj.ordernr = oRs("mld_opdr_ordernr").Value;
|
||||
oRs.Close();
|
||||
// Kopie contract. Volgnummer moet uniek zijn binnen dit contractnummer.
|
||||
checkUniekContractnummer(-1, obj.budgetproject.id, obj.ordernr, obj.sequence);
|
||||
checkUniekContractnummer(-1, v_project_key, obj.ordernr, obj.sequence);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -333,18 +373,33 @@ function model_mld_opdr()
|
||||
// Nieuw contract, dus volgnummer is altijd uniek hierbinnen.
|
||||
}
|
||||
|
||||
checkBudgetoverschrijding(obj.id, obj.costtype, obj.amount, obj.vat);
|
||||
var v_budget = getBudget(v_costtype);
|
||||
if (obj.additional == 0)
|
||||
{
|
||||
var v_datamutatie = checkBudgetoverschrijding(obj.id, v_budget, obj.amount, obj.vat);
|
||||
insertMutatie( v_datamutatie, "AO" );
|
||||
}
|
||||
else
|
||||
{
|
||||
insertMutatie( { budget_res_key: v_budget.budget_res_key
|
||||
, bedrag_exc: -1 * obj.amount
|
||||
, bedrag_btw: -1 * obj.vat
|
||||
, budget_srt_key: v_budget.budget_srt_key
|
||||
}
|
||||
, "MW"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
this.hook_pre_put = function(params, obj, key)
|
||||
{
|
||||
var v_costtype = (obj.costtype ? obj.costtype : getQParamInt("costtype", -1) );
|
||||
checkAanwezigBudget(v_costtype);
|
||||
|
||||
// Is de combinatie projectnummer/volgnummer nog steeds uniek?
|
||||
// Is de combinatie opdrachtnummer/volgnummer nog steeds uniek?
|
||||
var sql = "SELECT p.bgt_project_key"
|
||||
+ " , o.prs_kostensoort_key"
|
||||
+ " , o.mld_opdr_ordernr"
|
||||
+ " , o.mld_opdr_meerwerk"
|
||||
+ " , o.mld_opdr_kosten"
|
||||
+ " , o.mld_opdr_kosten_btw"
|
||||
+ " FROM bgt_project p"
|
||||
+ " , bgt_kostenrubriek r"
|
||||
+ " , prs_kostensoortgrp g"
|
||||
@@ -357,29 +412,123 @@ function model_mld_opdr()
|
||||
+ " AND o.mld_opdr_key = " + key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var v_ordernr = oRs("mld_opdr_ordernr").Value;
|
||||
var v_meerwerk = oRs("mld_opdr_meerwerk").Value;
|
||||
var v_project_key = oRs("bgt_project_key").Value;
|
||||
var v_cur_costtype_key = oRs("prs_kostensoort_key").Value;
|
||||
var v_cur_bedrag = oRs("mld_opdr_kosten").Value;
|
||||
var v_cur_btwbedrag = oRs("mld_opdr_kosten_btw").Value;
|
||||
oRs.Close();
|
||||
checkUniekContractnummer(key, v_project_key, v_ordernr, obj.sequence);
|
||||
if (v_cur_costtype_key != v_costtype)
|
||||
{ // contract verplaatsen naar ander kostensoort
|
||||
checkBudgetoverschrijding(obj.id, v_cur_costtype_key, 0, 0); // bedrag van deze kostensoort verwijderen
|
||||
checkBudgetoverschrijding(-1, v_costtype, obj.amount, obj.vat); // (aangepast) bedrag aan nieuwe kostensoort toevoegen
|
||||
// facturen krijgen ook nieuwe kostensoort.
|
||||
var sql = "UPDATE fin_factuur"
|
||||
+ " SET prs_kostensoort_key = " + v_costtype
|
||||
+ " WHERE mld_opdr_key = " + key;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
else
|
||||
|
||||
var v_costtype = (obj.costtype ? obj.costtype : v_cur_costtype_key);
|
||||
checkAanwezigBudget(v_costtype);
|
||||
|
||||
// Budget bijwerken als gevolg van meer-minderwerk.
|
||||
if (obj.additional == 1 || v_meerwerk == 1)
|
||||
{
|
||||
checkBudgetoverschrijding(obj.id, v_costtype, obj.amount, obj.vat);
|
||||
// Boek eerst het oude bedrag terug.
|
||||
var v_budget_old = getBudget(v_cur_costtype_key);
|
||||
insertMutatie( { budget_res_key: v_budget_old.budget_res_key
|
||||
, budget_srt_key: v_budget_old.budget_srt_key
|
||||
, bedrag_exc: v_cur_bedrag
|
||||
, bedrag_btw: v_cur_btwbedrag
|
||||
}
|
||||
, "MW"
|
||||
);
|
||||
if (obj.additional == 1)
|
||||
{
|
||||
// Boek het nieuwe bedrag naar het (nieuwe) kostensoort.
|
||||
var v_budget_new = getBudget(v_costtype);
|
||||
insertMutatie( { budget_res_key: v_budget_new.budget_res_key
|
||||
, budget_srt_key: v_budget_new.budget_srt_key
|
||||
, bedrag_exc: -1 * obj.amount
|
||||
, bedrag_btw: -1 * obj.vat
|
||||
}
|
||||
, "MW"
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Controle op overschrijden van budget.
|
||||
if (obj.additional == 0)
|
||||
{
|
||||
if (v_cur_costtype_key != v_costtype)
|
||||
{ // Heeft dit contract ook nog subcontracten
|
||||
/*
|
||||
var sql = "SELECT COUNT(*) aantal"
|
||||
+ " so.mld_opdr_key"
|
||||
+ " , so.prs_kostensoort_key"
|
||||
+ " , so.mld_opdr_kosten"
|
||||
+ " , so.mld_opdr_kosten_btw"
|
||||
+ " FROM mld_opdr co"
|
||||
+ " , mld_opdr so"
|
||||
+ " , bgt_v_project_full cp"
|
||||
+ " , bgt_v_project_full sp"
|
||||
+ " WHERE co.prs_kostensoort_key = cp.prs_kostensoort_key"
|
||||
+ " AND so.prs_kostensoort_key = sp.prs_kostensoort_key"
|
||||
+ " AND co.mld_opdr_ordernr = so.mld_opdr_ordernr"
|
||||
+ " AND cp.bgt_project_key = sp.bgt_project_key"
|
||||
+ " AND co.mld_opdr_key = " + key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.eof)
|
||||
{
|
||||
var v_cur_opdr_key = oRs("mld_opdr_key").Value;
|
||||
//
|
||||
var v_opdr_exc = 0;
|
||||
var v_opdr_btw = 0;
|
||||
var v_budget = getBudget(v_cur_costtype_key);
|
||||
var v_datamutatie = checkBudgetoverschrijding(v_cur_opdr_key, v_budget, v_opdr_exc, v_opdr_btw); // contractbedrag van deze kostensoort verwijderen
|
||||
insertMutatie( v_datamutatie, "AO" );
|
||||
//
|
||||
v_opdr_exc = (v_cur_opdr_key == key ? obj.amount : oRs("mld_opdr_kosten").Value);
|
||||
v_opdr_btw = (v_cur_opdr_key == key ? obj.vat : oRs("mld_opdr_kosten_btw").Value);
|
||||
v_budget = getBudget(v_costtype);
|
||||
v_datamutatie = checkBudgetoverschrijding(-1, v_budget, v_opdr_exc, v_opdr_btw); // (aangepast) bedrag aan nieuwe kostensoort toevoegen
|
||||
insertMutatie( v_datamutatie, "AO" );
|
||||
//
|
||||
// facturen krijgen ook nieuwe kostensoort.
|
||||
var sql = "UPDATE fin_factuur"
|
||||
+ " SET prs_kostensoort_key = " + v_costtype
|
||||
+ " WHERE mld_opdr_key = " + v_cur_opdr_key;
|
||||
Oracle.Execute(sql);
|
||||
//
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
*/
|
||||
/* dit is het originele stuk voor alleen het huidige contract */
|
||||
|
||||
// contract verplaatsen naar ander kostensoort
|
||||
var v_budget_old = getBudget(v_cur_costtype_key);
|
||||
var v_datamutatie = checkBudgetoverschrijding(obj.id, v_budget_old, 0, 0); // bedrag van deze kostensoort verwijderen
|
||||
insertMutatie( v_datamutatie, "AO" );
|
||||
var v_budget_new = getBudget(v_costtype);
|
||||
var v_datamutatie = checkBudgetoverschrijding(-1, v_budget_new, obj.amount, obj.vat); // (aangepast) bedrag aan nieuwe kostensoort toevoegen
|
||||
insertMutatie( v_datamutatie, "AO" );
|
||||
// facturen krijgen ook nieuwe kostensoort.
|
||||
var sql = "UPDATE fin_factuur"
|
||||
+ " SET prs_kostensoort_key = " + v_costtype
|
||||
+ " WHERE mld_opdr_key = " + key;
|
||||
Oracle.Execute(sql);
|
||||
|
||||
/* einde */
|
||||
}
|
||||
else
|
||||
{
|
||||
var v_budget_new = getBudget(v_costtype);
|
||||
var v_datamutatie = checkBudgetoverschrijding(obj.id, v_budget_new, obj.amount, obj.vat);
|
||||
insertMutatie( v_datamutatie, "AO" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.hook_pre_delete = function(params, key)
|
||||
{
|
||||
var sql = "SELECT MAX(o.prs_kostensoort_key) kostensoort"
|
||||
+ " , MAX(o.mld_opdr_meerwerk) meerwerk"
|
||||
+ " , MAX(mld_opdr_kosten) contract_exc"
|
||||
+ " , MAX(mld_opdr_kosten_btw) contract_btw"
|
||||
+ " , COUNT(f.fin_factuur_key) aantal"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " , fin_factuur f"
|
||||
@@ -388,12 +537,30 @@ function model_mld_opdr()
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var aantal_facturen = oRs("aantal").Value;
|
||||
var prs_kostensoort = oRs("kostensoort").Value;
|
||||
var meerwerk = oRs("meerwerk").Value == 1;
|
||||
var contract_exc = oRs("contract_exc").Value;
|
||||
var contract_btw = oRs("contract_btw").Value;
|
||||
oRs.Close();
|
||||
if (aantal_facturen > 0)
|
||||
abort_with_warning("Verwijder eerst de facturen bij dit contract.");
|
||||
|
||||
// Eerst proberen of er automatisch terug geboekt moet worden doot bedrag te muteren naar 0.
|
||||
checkBudgetoverschrijding(key, prs_kostensoort, 0, 0);
|
||||
// Eerst proberen of er automatisch terug geboekt moet worden door bedrag te muteren naar 0.
|
||||
var v_budget_old = getBudget(prs_kostensoort);
|
||||
if (meerwerk)
|
||||
{
|
||||
insertMutatie( { budget_res_key: v_budget_old.budget_res_key
|
||||
, bedrag_exc: contract_exc
|
||||
, bedrag_btw: contract_btw
|
||||
, budget_srt_key: v_budget_old.budget_srt_key
|
||||
}
|
||||
, "MW"
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
var v_datamutatie = checkBudgetoverschrijding(key, v_budget_old, 0, 0);
|
||||
insertMutatie( v_datamutatie, "AO" );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -416,6 +583,57 @@ function model_mld_opdr()
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
var v_budgetdiscipline = getQParamInt("budgetdiscipline", -1);
|
||||
if (v_budgetdiscipline == -1)
|
||||
{
|
||||
gparams.GET.tables.push("ins_tab_discipline");
|
||||
gparams.GET.wheres.push("bgt_project.ins_discipline_key = ins_tab_discipline.ins_discipline_key");
|
||||
gparams.GET.wheres.push(
|
||||
"bgt_project.ins_discipline_key IN"
|
||||
+ " (SELECT w.ins_discipline_key"
|
||||
+ " FROM fac_v_webgebruiker w"
|
||||
+ " , ins_tab_discipline d"
|
||||
+ " WHERE w.ins_discipline_key = d.ins_discipline_key"
|
||||
+ " AND w.prs_perslid_key = " + user_key
|
||||
+ " AND (w.fac_gebruiker_prs_level_read<9 OR w.fac_gebruiker_alg_level_read<9)"
|
||||
+ " AND d.ins_discipline_module = 'BGT'"
|
||||
+ " AND d.ins_discipline_verwijder IS NULL"
|
||||
+ " )"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function getBudget(data_costtype)
|
||||
{
|
||||
var sql = "SELECT MAX(b.bgt_budget_key) budget_s"
|
||||
+ " , MAX(c.bgt_budget_key) budget_r"
|
||||
+ " , MAX(COALESCE(b.bgt_budget_bedrag, 0)) budget_exc"
|
||||
+ " , MAX(COALESCE(b.bgt_budget_btwbedrag, 0)) budget_btw"
|
||||
+ " FROM bgt_budget b"
|
||||
+ " , bgt_budgetmutatie m"
|
||||
+ " , (SELECT r.bgt_project_key"
|
||||
+ " , bgt_budget_key"
|
||||
+ " FROM bgt_budget r"
|
||||
+ " WHERE r.bgt_budget_isreserve = 1"
|
||||
+ " ) c"
|
||||
+ " WHERE b.bgt_project_key = c.bgt_project_key(+)"
|
||||
+ " AND b.prs_kostensoort_key = " + data_costtype;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var budget_key_res = oRs("budget_r").Value;
|
||||
var budget_key_srt = oRs("budget_s").Value;
|
||||
var budget_exc = oRs("budget_exc").Value;
|
||||
var budget_btw = oRs("budget_btw").Value;
|
||||
oRs.Close();
|
||||
if (budget_key_res == null)
|
||||
abort_with_warning("Er is geen budget met kenmerk 'reserve' aanwezig voor dit project");
|
||||
else
|
||||
return { budget_res_key: budget_key_res
|
||||
, budget_srt_key: budget_key_srt
|
||||
, costtype_key: data_costtype
|
||||
, bedrag_exc: budget_exc
|
||||
, bedrag_btw: budget_btw
|
||||
};
|
||||
}
|
||||
|
||||
function checkUniekContractnummer(p_contract_key, p_project_key, p_contractnr, p_volgnr)
|
||||
@@ -454,30 +672,8 @@ function model_mld_opdr()
|
||||
abort_with_warning("Maak eerst een budget aan voor deze kostensoort voordat er contracten aan gekoppeld worden.");
|
||||
}
|
||||
|
||||
function checkBudgetoverschrijding(data_id, data_costtype, data_amount, data_vat)
|
||||
function checkBudgetoverschrijding(data_id, data_budget, data_amount, data_vat)
|
||||
{
|
||||
var sql = "SELECT MAX(b.bgt_budget_key) budget_s"
|
||||
+ " , MAX(c.bgt_budget_key) budget_r"
|
||||
+ " , MAX(COALESCE(b.bgt_budget_bedrag, 0)) budget_exc"
|
||||
+ " , MAX(COALESCE(b.bgt_budget_btwbedrag, 0)) budget_btw"
|
||||
+ " FROM bgt_budget b"
|
||||
+ " , bgt_budgetmutatie m"
|
||||
+ " , (SELECT r.bgt_project_key"
|
||||
+ " , bgt_budget_key"
|
||||
+ " FROM bgt_budget r"
|
||||
+ " WHERE r.bgt_budget_isreserve = 1"
|
||||
+ " ) c"
|
||||
+ " WHERE b.bgt_project_key = c.bgt_project_key(+)"
|
||||
+ " AND b.prs_kostensoort_key = " + data_costtype;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var budget_key_res = oRs("budget_r").Value;
|
||||
var budget_key_srt = oRs("budget_s").Value;
|
||||
var budget_exc = oRs("budget_exc").Value;
|
||||
var budget_btw = oRs("budget_btw").Value;
|
||||
oRs.Close();
|
||||
if (budget_key_res == null)
|
||||
abort_with_warning("Er is geen budget met kenmerk 'reserve' aanwezig voor dit project");
|
||||
|
||||
var amount_old_exc = 0;
|
||||
var amount_old_btw = 0;
|
||||
if (data_id > -1)
|
||||
@@ -485,7 +681,7 @@ function model_mld_opdr()
|
||||
var sql = "SELECT COALESCE(t.mld_opdr_kosten, 0) amount_old_exc"
|
||||
+ " , COALESCE(t.mld_opdr_kosten_btw, 0) amount_old_btw"
|
||||
+ " FROM mld_opdr t"
|
||||
+ " WHERE t.prs_kostensoort_key = " + data_costtype
|
||||
+ " WHERE t.prs_kostensoort_key = " + data_budget.costtype_key
|
||||
+ " AND t.mld_opdr_key = " + data_id;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
amount_old_exc = oRs("amount_old_exc").Value;
|
||||
@@ -495,7 +691,7 @@ function model_mld_opdr()
|
||||
var sql = "SELECT SUM(o.mld_opdr_kosten) amount_total_exc"
|
||||
+ " , SUM(o.mld_opdr_kosten_btw) amount_total_btw"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " WHERE o.prs_kostensoort_key = " + data_costtype;
|
||||
+ " WHERE o.prs_kostensoort_key = " + data_budget.costtype_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var amount_sum_exc = oRs("amount_total_exc").Value;
|
||||
var amount_sum_btw = oRs("amount_total_btw").Value;
|
||||
@@ -509,7 +705,7 @@ function model_mld_opdr()
|
||||
+ " AND b1.bgt_project_key = b2.bgt_project_key"
|
||||
+ " AND m1.bgt_budget_key_van = b2.bgt_budget_key"
|
||||
+ " AND m1.bgt_budget_Key_naar = b1.bgt_budget_key"
|
||||
+ " AND b1.prs_kostensoort_key = " + data_costtype;
|
||||
+ " AND b1.prs_kostensoort_key = " + data_budget.costtype_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var reserve_exc = oRs("reserve_exc").Value;
|
||||
var reserve_btw = oRs("reserve_btw").Value;
|
||||
@@ -521,7 +717,7 @@ function model_mld_opdr()
|
||||
if (amount_old_exc < data_amount)
|
||||
{
|
||||
// verhoging contractwaarde exc
|
||||
var overschot_exc = budget_exc - amount_sum_exc - (data_amount - amount_old_exc);
|
||||
var overschot_exc = data_budget.bedrag_exc - amount_sum_exc - (data_amount - amount_old_exc);
|
||||
bedrag_exc = (overschot_exc < 0 ? overschot_exc : 0);
|
||||
}
|
||||
else
|
||||
@@ -534,7 +730,7 @@ function model_mld_opdr()
|
||||
if (amount_old_btw < data_vat)
|
||||
{
|
||||
// verhoging contractwaarde btw
|
||||
var overschot_btw = budget_btw - amount_sum_btw - (data_vat - amount_old_btw);
|
||||
var overschot_btw = data_budget.bedrag_btw - amount_sum_btw - (data_vat - amount_old_btw);
|
||||
bedrag_btw = (overschot_btw < 0 ? overschot_btw : 0);
|
||||
}
|
||||
else
|
||||
@@ -544,36 +740,71 @@ function model_mld_opdr()
|
||||
bedrag_btw = -1 * (overschot_btw > 0 ? reserve_btw : (data_vat - amount_old_btw) );
|
||||
}
|
||||
|
||||
var sql_m = "INSERT INTO bgt_budgetmutatie"
|
||||
+ "( bgt_budgetmutatie_datum"
|
||||
+ ", bgt_budgetmutatie_omschrijving"
|
||||
+ ", prs_perslid_key" // not null!
|
||||
+ ", bgt_budget_key_van"
|
||||
+ ", bgt_budget_bedrag_van"
|
||||
+ ", bgt_budget_btwbedrag_van"
|
||||
+ ", bgt_budget_key_naar"
|
||||
+ ", bgt_budget_bedrag_naar"
|
||||
+ ", bgt_budget_btwbedrag_naar"
|
||||
//2017.3 + ", bgt_budgetmutatie_reserve"
|
||||
+ ") VALUES"
|
||||
+ "( SYSDATE"
|
||||
+ ", 'AO Automatische overboeking'"
|
||||
+ ", " + user_key
|
||||
+ ", " + budget_key_res
|
||||
+ ", " + bedrag_exc
|
||||
+ ", " + bedrag_btw
|
||||
+ ", " + budget_key_srt
|
||||
+ ", " + (-1 * bedrag_exc)
|
||||
+ ", " + (-1 * bedrag_btw)
|
||||
//2017.3 + ", 1"
|
||||
+ ")";
|
||||
Oracle.Execute(sql_m);
|
||||
return { budget_res_key: data_budget.budget_res_key
|
||||
, bedrag_exc: bedrag_exc
|
||||
, bedrag_btw: bedrag_btw
|
||||
, budget_srt_key: data_budget.budget_srt_key
|
||||
};
|
||||
}
|
||||
|
||||
function insertMutatie(data_mutatie, mutatie_code)
|
||||
{
|
||||
if (data_mutatie.bedrag_exc != 0 || data_mutatie.bedrag_btw != 0)
|
||||
{
|
||||
var sql = "SELECT prs_kostensoort_altcode"
|
||||
+ " FROM prs_kostensoort"
|
||||
+ " WHERE prs_kostensoort_key = "
|
||||
+ " (SELECT MIN(prs_kostensoort_key)"
|
||||
+ " FROM bgt_budget"
|
||||
+ " WHERE bgt_budget_key = " + data_mutatie.budget_srt_key
|
||||
+ " )";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var v_costtype_code = oRs("prs_kostensoort_altcode").Value;
|
||||
oRs.Close();
|
||||
|
||||
var mutatie_omschr = "";
|
||||
switch (mutatie_code)
|
||||
{
|
||||
case "AO": mutatie_omschr = "AO Automatische overboeking"; break;
|
||||
case "MW": mutatie_omschr = "MW Meer-, minderwerk van " + v_costtype_code; break;
|
||||
}
|
||||
|
||||
var sql_m = "INSERT INTO bgt_budgetmutatie"
|
||||
+ "( bgt_budgetmutatie_datum"
|
||||
+ ", bgt_budgetmutatie_omschrijving"
|
||||
+ ", prs_perslid_key" // not null!
|
||||
+ ", bgt_budget_key_van"
|
||||
+ ", bgt_budget_bedrag_van"
|
||||
+ ", bgt_budget_btwbedrag_van"
|
||||
+ ", bgt_budget_key_naar"
|
||||
+ ", bgt_budget_bedrag_naar"
|
||||
+ ", bgt_budget_btwbedrag_naar"
|
||||
+ ", bgt_budgetmutatie_reserve"
|
||||
+ ") VALUES"
|
||||
+ "( SYSDATE"
|
||||
+ ", " + safe.quoted_sql(mutatie_omschr)
|
||||
+ ", " + user_key
|
||||
+ ", " + data_mutatie.budget_res_key
|
||||
+ ", " + data_mutatie.bedrag_exc
|
||||
+ ", " + data_mutatie.bedrag_btw
|
||||
+ ", " + data_mutatie.budget_srt_key
|
||||
+ ", " + (-1 * data_mutatie.bedrag_exc)
|
||||
+ ", " + (-1 * data_mutatie.bedrag_btw)
|
||||
+ ", 1"
|
||||
+ ")";
|
||||
Oracle.Execute(sql_m);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
this.REST_GET = generic_REST_GET(this, gparams);
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
this.REST_GET = generic_REST_GET(this, gparams);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
var autparams = user.checkAutorisation(this.autfunction);
|
||||
var canWrite = (autparams.PRSwritelevel < 9 && autparams.ALGwritelevel < 9);
|
||||
if (canWrite)
|
||||
{
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
}
|
||||
}
|
||||
%>
|
||||
@@ -59,7 +59,7 @@ function model_mld_srtkenmerk(params)
|
||||
},
|
||||
"system": {
|
||||
"dbs": "mld_srtkenmerk_systeem",
|
||||
"label": L("mgt_srtkenmerk_systeem"),
|
||||
"label": L("mgt_srtkenmerk_systeem_adv"),
|
||||
"typ": "number",
|
||||
"LOV": L("mgt_srtkenmerk_systeemLOV"),
|
||||
"defaultvalue": 0,
|
||||
|
||||
616
APPL/API2/model_mld_stdmelding.inc
Normal file
616
APPL/API2/model_mld_stdmelding.inc
Normal file
@@ -0,0 +1,616 @@
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: model_mld_stdmelding.inc
|
||||
|
||||
Description:
|
||||
|
||||
Context:
|
||||
|
||||
Notes: Er is ook een model_issuetypes.inc
|
||||
Deze bevat slechts een subset van de velden die hier worden gebruikt.
|
||||
Kan model_mld_stdmelding ook gebruikt worden ipv model_issuetypes?
|
||||
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="../mld/mld.inc" -->
|
||||
<!-- #include file="model_mld_dienstpakket.inc" -->
|
||||
<%
|
||||
|
||||
function model_mld_stdmelding()
|
||||
{
|
||||
this.records_name = "issuetypes";
|
||||
this.record_name = "issuetype",
|
||||
this.table = "mld_stdmelding";
|
||||
this.primary = "mld_stdmelding_key";
|
||||
this.soft_delete = "mld_stdmelding_verwijder";
|
||||
this.soft_expire = "mld_stdmelding_vervaldatum";
|
||||
this.autfunction = "WEB_MLDMGT";
|
||||
this.record_title = L("mld_stdmelding");
|
||||
this.records_title = L("mld_stdmelding_m");
|
||||
|
||||
this.fields = {
|
||||
"id": {
|
||||
"dbs": "mld_stdmelding_key",
|
||||
"label": L("lcl_key"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"filter": "exact",
|
||||
"seq": "mld_s_mld_stdmelding_key"
|
||||
},
|
||||
"description": {
|
||||
"dbs": "mld_stdmelding_omschrijving",
|
||||
"label": L("lcl_complain"), //L("mld_stdmelding_omschrijving"),
|
||||
"typ": "varchar",
|
||||
"required": true,
|
||||
"translate": true
|
||||
},
|
||||
"disciplinetype": {
|
||||
"dbs": "ins_srtdiscipline.ins_srtdiscipline_key",
|
||||
"label": L("lcl_mld_vakgroeptype"),
|
||||
"typ": "key",
|
||||
"insertonly": true,
|
||||
"foreign" : {
|
||||
"tbl": "(SELECT ins_srtdiscipline_key"
|
||||
+ " , ins_srtdiscipline_omschrijving srtdiscipline_oms"
|
||||
+ " FROM ins_srtdiscipline"
|
||||
+ " WHERE ins_srtdiscipline_module = 'MLD'"
|
||||
+ " ORDER BY 2 ASC"
|
||||
+ ")",
|
||||
"key": "ins_srtdiscipline_key",
|
||||
"desc": "srtdiscipline_oms"
|
||||
}
|
||||
},
|
||||
"discipline": {
|
||||
"dbs": "mld_ins_discipline_key",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_vakgroep"),
|
||||
"foreign": {
|
||||
"tbl": "(SELECT ins_discipline_key"
|
||||
+ " , ins_discipline_omschrijving"
|
||||
+ " FROM mld_v_aanwezigdiscipline"
|
||||
+ " ORDER BY ins_discipline_omschrijving ASC"
|
||||
+ ")",
|
||||
"key": "ins_discipline_key",
|
||||
"desc": "ins_discipline_omschrijving"
|
||||
},
|
||||
"required": (mode == "edit")
|
||||
},
|
||||
"notfrontend": {
|
||||
"dbs": "mld_stdmelding_notfrontend",
|
||||
"typ": "check0",
|
||||
"label": L("lcl_mld_notfrontend"),
|
||||
"multiedit": true
|
||||
|
||||
},
|
||||
"costtype": {
|
||||
"dbs": "prs_kostensoort_key",
|
||||
"typ": "key",
|
||||
"label": L("lcl_charge_type"),
|
||||
"foreign": {
|
||||
"tbl": "prs_kostensoort",
|
||||
"key": "prs_kostensoort_key",
|
||||
"desc": "prs_kostensoort_oms"
|
||||
},
|
||||
"emptyoption": "",
|
||||
"multiedit": true
|
||||
},
|
||||
"canrefer": {
|
||||
"dbs": "mld_stdmelding_kanverwijzen",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_kanverwijzen"),
|
||||
"LOV": canrefer_LOV(),
|
||||
"multiselect": true,
|
||||
"multiadd": true,
|
||||
"emptyoption": L("lcl_none")
|
||||
},
|
||||
"mandatorylevel": {
|
||||
"dbs": "alg_onrgoed_niveau",
|
||||
"typ": "varchar",
|
||||
"label": L("lcl_mld_onrgoed_niveau"),
|
||||
"LOV": "L;" + L("lcl_location") + ";"
|
||||
+ "G;" + L("lcl_building") + ";"
|
||||
+ "V;" + L("lcl_floor") + ";"
|
||||
+ "R;" + L("lcl_room"),
|
||||
"emptyoption": null,
|
||||
"multiedit": true
|
||||
},
|
||||
"notify": {
|
||||
"dbs": "mld_stdmelding_notify",
|
||||
"typ": "check0",
|
||||
"label": L("lcl_mld_notify")
|
||||
},
|
||||
"plannable": {
|
||||
"dbs": "mld_stdmelding_planbaar",
|
||||
"typ": "number",
|
||||
"label": L("lcl_mld_planbaar"),
|
||||
"LOV": L("lcl_mld_planbaarLOV"),
|
||||
"required": true,
|
||||
"defaultvalue": 0,
|
||||
"multiedit": true
|
||||
},
|
||||
"subjectlist": {
|
||||
"dbs": "mld_stdmelding_subject",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_subject"),
|
||||
"LOV": "0;" + L("lcl_mld_onzichtbaar") + ";"
|
||||
+ "1;" + L("lcl_mld_optioneel") + ";"
|
||||
+ "2;" + L("lcl_mld_verplicht"),
|
||||
"emptyoption": null,
|
||||
"multiedit": true
|
||||
},
|
||||
"freetext": {
|
||||
"dbs": "mld_stdmelding_freetext",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_freetext"),
|
||||
"LOV": "0;" + L("lcl_mld_onzichtbaar") + ";"
|
||||
+ "1;" + L("lcl_mld_optioneel") + ";"
|
||||
+ "2;" + L("lcl_mld_verplicht"),
|
||||
"emptyoption": null,
|
||||
"multiedit": true
|
||||
},
|
||||
"objectmandatory": {
|
||||
"dbs": "ins_srtinst_verplicht",
|
||||
"typ": "check0",
|
||||
"label": L("lcl_mld_obj_verplicht")
|
||||
},
|
||||
"hint": {
|
||||
"dbs": "mld_stdmelding_hint",
|
||||
"typ": "memo",
|
||||
"label": L("lcl_mld_hint"),
|
||||
"translate": true
|
||||
},
|
||||
"autoorder": {
|
||||
"dbs": "mld_stdmelding_autoorder",
|
||||
"typ": "check0",
|
||||
"label": L("lcl_mld_autoorder"),
|
||||
"multiedit": true
|
||||
},
|
||||
"autoorderamount": {
|
||||
"dbs": "mld_stdmelding_autoorderamount",
|
||||
"typ": "float",
|
||||
"iscurrency": true,
|
||||
"label": L("lcl_mld_autoorderamount"),
|
||||
"multiedit": true
|
||||
},
|
||||
"requireservice": {
|
||||
"dbs": "mld_stdmelding_vereisdienst",
|
||||
"typ": "check0",
|
||||
"label": L("lcl_mld_vereisdienst"),
|
||||
"multiedit": true
|
||||
},
|
||||
"service": {
|
||||
"dbs": "prs_dienst_key",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_behandel_dienst"),
|
||||
"foreign": {
|
||||
"tbl": "(SELECT prs_dienst_key"
|
||||
+ " , prs_dienst_omschrijving"
|
||||
+ " FROM prs_dienst"
|
||||
+ " ORDER BY UPPER(prs_dienst_omschrijving))",
|
||||
"key": "prs_dienst_key",
|
||||
"desc": "prs_dienst_omschrijving"
|
||||
},
|
||||
"emptyoption": ""
|
||||
},
|
||||
"ordertype": {
|
||||
"dbs": "mld_typeopdr_key",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_std_typeopdr"),
|
||||
"foreign": {
|
||||
"tbl": "(SELECT mld_typeopdr_key"
|
||||
+ " , mld_typeopdr_omschrijving"
|
||||
+ " FROM mld_typeopdr"
|
||||
+ " ORDER BY UPPER(mld_typeopdr_omschrijving))",
|
||||
"key": "mld_typeopdr_key",
|
||||
"desc": "mld_typeopdr_omschrijving"
|
||||
},
|
||||
"emptyoption": ""
|
||||
},
|
||||
"regime": {
|
||||
"dbs": "mld_stdmelding_regime",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_regime"),
|
||||
"LOV": "1;" + L("lcl_mld_office_hours") + ";"
|
||||
+ "2;" + L("lcl_mld_opening_hours") + ";"
|
||||
+ "3;" + L("lcl_mld_24_7"),
|
||||
"emptyoption": null,
|
||||
"multiedit": true
|
||||
},
|
||||
"fixedmalus": {
|
||||
"dbs": "mld_stdmelding_malusbasis",
|
||||
"typ": "float",
|
||||
"label": L("lcl_mld_malusbasis"),
|
||||
"multiedit": true
|
||||
},
|
||||
"periodmalus": {
|
||||
"dbs": "mld_stdmelding_malus",
|
||||
"typ": "float",
|
||||
"label": L("lcl_mld_malus"),
|
||||
"multiedit": true
|
||||
},
|
||||
"roomtypedependant": {
|
||||
"dbs": "mld_stdmelding_afhankelijk",
|
||||
"typ": "check0",
|
||||
"label": L("lcl_mld_afh_srtruimte_object"),
|
||||
"multiedit": true
|
||||
},
|
||||
"symbolname": {
|
||||
"dbs": "mld_stdmelding_image",
|
||||
"typ": "varchar",
|
||||
"label": L("lcl_mld_symbol_name")
|
||||
},
|
||||
"closingtext": {
|
||||
"dbs": "mld_stdmelding_afmeldtext",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_afmeldtext"),
|
||||
"LOV": "1;" + L("lcl_mld_optioneel") + ";"
|
||||
+ "2;" + L("lcl_mld_verplicht"),
|
||||
"emptyoption": null,
|
||||
"multiedit": true
|
||||
},
|
||||
"sequence": {
|
||||
"dbs": "mld_stdmelding_volgnr",
|
||||
"typ": "number",
|
||||
"label": L("lcl_mld_stdmelding_volgnummer")
|
||||
},
|
||||
"ownrooms": {
|
||||
"dbs": "mld_stdmelding_prseigen",
|
||||
"typ": "check0",
|
||||
"label": L("lcl_mld_prseigen"),
|
||||
"multiedit": true
|
||||
},
|
||||
"checksimilar": {
|
||||
"dbs": "mld_stdmelding_doublecheck",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_doublecheck"),
|
||||
"LOV": "0;" + L("lcl_mld_not") + ";"
|
||||
+ "1;" + L("lcl_mld_when_enter") + ";"
|
||||
+ "2;" + L("lcl_mld_when_accept") + ";"
|
||||
+ "3;" + L("lcl_mld_when_enter_accept"),
|
||||
"emptyoption": null,
|
||||
"multiedit": true
|
||||
},
|
||||
"copyable": {
|
||||
"dbs": "mld_stdmelding_kopieerbaar",
|
||||
"typ": "check0",
|
||||
"label": L("lcl_mld_copyable"),
|
||||
"multiedit": true
|
||||
},
|
||||
"survey": {
|
||||
"dbs": "mld_stdmelding_kto",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_in_KTO"),
|
||||
"LOV": "0;" + L("lcl_mld_never") + ";"
|
||||
+ "1;" + L("lcl_mld_always") + ";"
|
||||
+ "2;" + L("lcl_mld_opt_in") + ";"
|
||||
+ "3;" + L("lcl_mld_opt_out")
|
||||
},
|
||||
"limitcatalogue": {
|
||||
"dbs": "bes_ins_discipline_key",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_limited_bes_cat"),
|
||||
"foreign": {
|
||||
"tbl": "(SELECT d.ins_discipline_key"
|
||||
+ " , ins_discipline_omschrijving"
|
||||
+ " FROM ins_tab_discipline d"
|
||||
+ " WHERE d.ins_discipline_module = 'BES'"
|
||||
+ " AND d.ins_discipline_verwijder IS NULL"
|
||||
+ " ORDER BY UPPER(d.ins_discipline_omschrijving))",
|
||||
"key": "ins_discipline_key",
|
||||
"desc": "ins_discipline_omschrijving"
|
||||
},
|
||||
"emptyoption": ""
|
||||
},
|
||||
"expires": {
|
||||
"dbs": "mld_stdmelding_vervaldatum",
|
||||
"typ": "date",
|
||||
"label": L("lcl_mld_expiration_date")
|
||||
},
|
||||
"ordertypemandatory": {
|
||||
"dbs": "mld_stdmelding_opdrtypevast",
|
||||
"typ": "check0",
|
||||
"label": L("lcl_mld_opdrtypevast")
|
||||
},
|
||||
"issuegroup": {
|
||||
"dbs": "mld_stdmeldinggroep_key",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_meldinggroep"),
|
||||
"foreign": {
|
||||
"tbl": "(SELECT g.mld_stdmeldinggroep_key"
|
||||
+ ", " + lcl.xsqla("g.mld_stdmeldinggroep_naam", "g.mld_stdmeldinggroep_key")
|
||||
+ " FROM mld_stdmeldinggroep g"
|
||||
+ " ORDER BY 2)",
|
||||
"key": "mld_stdmeldinggroep_key",
|
||||
"desc": "mld_stdmeldinggroep_naam"
|
||||
},
|
||||
"emptyoption": ""
|
||||
},
|
||||
"immediateready": {
|
||||
"dbs": "mld_stdmelding_directklaar",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_directklaar"),
|
||||
"LOV": ";" + L("lcl_mld_afhankelijk_vakgroep") + ";"
|
||||
+ "0;" + L("lcl_No") + ";"
|
||||
+ "1;" + L("lcl_Yes") + ";"
|
||||
+ "2;" + L("lcl_mld_initieel_fo"),
|
||||
"emptyoption": null,
|
||||
"multiedit": true
|
||||
},
|
||||
"monitorsla": {
|
||||
"dbs": "mld_stdmelding_slabewaken",
|
||||
"typ": "check0",
|
||||
"label": L("lcl_mld_slabewaken"),
|
||||
"multiedit": true
|
||||
},
|
||||
"showobject": {
|
||||
"dbs": "alg_onrgoed_obj_niveau",
|
||||
"typ": "varchar",
|
||||
"label": L("lcl_mld_obj_show_niveau"),
|
||||
"LOV": ";" + L("lcl_mld_no_objects") + ";"
|
||||
+ "L;" + L("lcl_location") + ";"
|
||||
+ "G;" + L("lcl_building") + ";"
|
||||
+ "V;" + L("lcl_floor") + ";"
|
||||
+ "R;" + L("lcl_room"),
|
||||
"emptyisrealvalue": true,
|
||||
"emptyoption": null
|
||||
},
|
||||
"departmentobjects": {
|
||||
"dbs": "alg_org_obj_niveau",
|
||||
"typ": "number",
|
||||
"label": L("lcl_mld_dep_obj"),
|
||||
"LOV": departmentobjects_foreign(),
|
||||
"emptyoption": null
|
||||
},
|
||||
"personalobjects": {
|
||||
"dbs": "mld_stdmelding_prsafdobj",
|
||||
"label": L("lcl_mld_prsobjects"),
|
||||
"typ": "check0"
|
||||
},
|
||||
"externallink": {
|
||||
"dbs": "mld_stdmelding_externurl",
|
||||
"typ": "varchar",
|
||||
"label": L("lcl_mld_externurl")
|
||||
},
|
||||
"_upload": {
|
||||
"dbs": "",
|
||||
"label": L("lcl_mld_symbol_upload"),
|
||||
"typ": "button2",
|
||||
"defaultvalue": L("lcl_mld_browse_upload")
|
||||
},
|
||||
"_limitlabel": {
|
||||
"dbs": "",
|
||||
"label": "",
|
||||
"typ": "label",
|
||||
"labelvalue": L("lcl_mld_object_restrict")
|
||||
},
|
||||
"accepttime": {
|
||||
"dbs": "mld_stdmelding_t_accepttijd",
|
||||
"obj": "MLD_T_UITVOERTIJD",
|
||||
"typ": "processingtime",
|
||||
"label": L("lcl_mld_timetoaccept"),
|
||||
"multiedit": true
|
||||
},
|
||||
"processingtime": {
|
||||
"dbs": "mld_stdmelding_t_uitvoertijd",
|
||||
"obj": "MLD_T_UITVOERTIJD",
|
||||
"typ": "processingtime",
|
||||
"label": L("lcl_mld_uitvoertijd_normaal"),
|
||||
"required": true,
|
||||
"multiedit": true
|
||||
},
|
||||
"criticaltime": {
|
||||
"dbs": "mld_stdmelding_t_uitvtijd_pr1",
|
||||
"obj": "MLD_T_UITVOERTIJD",
|
||||
"typ": "processingtime",
|
||||
"label": L("lcl_mld_uitvoertijd_kritisch"),
|
||||
"multiedit": true
|
||||
},
|
||||
"highprioritytime": {
|
||||
"dbs": "mld_stdmelding_t_uitvtijd_pr2",
|
||||
"obj": "MLD_T_UITVOERTIJD",
|
||||
"typ": "processingtime",
|
||||
"label": L("lcl_mld_uitvoertijd_hoog"),
|
||||
"multiedit": true
|
||||
},
|
||||
"lowprioritytime": {
|
||||
"dbs": "mld_stdmelding_t_uitvtijd_pr4",
|
||||
"obj": "MLD_T_UITVOERTIJD",
|
||||
"typ": "processingtime",
|
||||
"label": L("lcl_mld_uitvoertijd_laag"),
|
||||
"multiedit": true
|
||||
},
|
||||
"enddateempty": {
|
||||
"dbs": "mld_stdmelding_enddate_empty",
|
||||
"typ": "check0",
|
||||
"label": L("lcl_mld_enddate_empty"),
|
||||
"multiedit": true
|
||||
}
|
||||
};
|
||||
|
||||
this.includes = {
|
||||
"disciplines": {
|
||||
"model": new model_mld_dienstpakket(),
|
||||
"joinfield": "issuetype",
|
||||
"enable_update": true,
|
||||
"multiadd": "level"
|
||||
}
|
||||
};
|
||||
|
||||
var xparams = {
|
||||
GET: {
|
||||
tables: [ "ins_tab_discipline, mld_disc_params, ins_srtdiscipline"],
|
||||
wheres: [ "ins_tab_discipline.ins_discipline_key = mld_stdmelding.mld_ins_discipline_key",
|
||||
"mld_disc_params.mld_ins_discipline_key = mld_stdmelding.mld_ins_discipline_key",
|
||||
"ins_tab_discipline.ins_srtdiscipline_key = ins_srtdiscipline.ins_srtdiscipline_key",
|
||||
"ins_tab_discipline.ins_discipline_verwijder IS NULL"
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
this.hook_pre_edit = function(obj, fld, scf_params)
|
||||
{
|
||||
scf_params.layout.block[0].label += " " +obj.id ;
|
||||
if (obj.id == -1)
|
||||
obj.canrefer = {id:-1, name:null};
|
||||
obj.canrefer = translate_canrefer(obj.canrefer, null);
|
||||
var srtdisc_key = -1;
|
||||
var disc_key = -1;
|
||||
|
||||
obj._is_clone = getQParamInt("scf_clone", 0);
|
||||
var stdm_id = (obj._is_clone == 1 ? getQParamInt("id", -1) : obj.id);
|
||||
|
||||
if (stdm_id > 0)
|
||||
{
|
||||
stdm_info = mld.mld_stdmeldinginfo(stdm_id);
|
||||
srtdisc_key = stdm_info.ins_srtdiscipline_key;
|
||||
disc_key = stdm_info.ins_discipline_key;
|
||||
// Hier hebben we echt de waarde van mld_stdmelding_directklaar nodig,
|
||||
// en niet de defaultwaarde uit mld_disc_params_directklaar.
|
||||
var sql = "SELECT mld_stdmelding_directklaar"
|
||||
+ " FROM mld_stdmelding"
|
||||
+ " WHERE mld_stdmelding_key = " + stdm_id;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
stdm_info.directklaar = oRs("mld_stdmelding_directklaar").Value;
|
||||
oRs.Close();
|
||||
fld.limitcatalogue.foreign.tbl = limitcatalogue_foreign(stdm_info);
|
||||
}
|
||||
|
||||
var proturl = protectQS.create("../shared/BijlagenForm.asp?module=MLDS" + (mode == "show"? "&reado=1" : ""));
|
||||
|
||||
%>
|
||||
<script>
|
||||
var srtinstallatieselector_available = 1; // toon alleen actuele disciplines/groepen en objecten.
|
||||
var proturl_bijlage = "<%=proturl%>";
|
||||
var disciplinetype_key = <%=srtdisc_key%>;
|
||||
var discipline_key = <%=disc_key%>;
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
|
||||
this.hook_pre_show = function(obj, fld, scf_params)
|
||||
{
|
||||
scf_params.layout.block[0].label += " " +obj.id ;
|
||||
obj.canrefer = (obj.canrefer.id != 0 ? translate_canrefer(obj.canrefer, null) : null);
|
||||
}
|
||||
|
||||
// ? deze functie als parameter aan foreign/multiselect meegeven?
|
||||
function translate_canrefer(db_value, lb_arr)
|
||||
{
|
||||
// Kan verwijzen naar meerdere referenties (modules).
|
||||
if (db_value)
|
||||
{
|
||||
// Vertalen van databasewaarde naar multiselectbox waarde.
|
||||
// mld_stdmelding_kanverwijzen is een multiselect-box. Hieraan moet een string met keys worden doorgegeven.
|
||||
// Converteer de bitjes naar string met keys.
|
||||
var kanverwijzen = { id: "", name: "" };
|
||||
for (var i = 1; i < 256; i = i * 2)
|
||||
{ // Een string met keys maken.
|
||||
kanverwijzen.id += ((db_value.id & i) == i? ((kanverwijzen.id == ""? "" : "," ) + i) : "");
|
||||
kanverwijzen.name += ((db_value.id & i) == i? ((kanverwijzen.name == ""? "" : ", ") + mld.getrefmoduletext(i)) : "");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Vertalen van multiselectbox waarde naar databasewaarde.
|
||||
var kanverwijzen = 0;
|
||||
for (var i = 0; i < lb_arr.length; i++)
|
||||
{
|
||||
if (lb_arr[i] > 0)
|
||||
{
|
||||
kanverwijzen += lb_arr[i];
|
||||
}
|
||||
}
|
||||
if (kanverwijzen > 128)
|
||||
kanverwijzen = 128; //{ id: 128, name: mld.getrefmoduletext(128) };
|
||||
}
|
||||
//
|
||||
return kanverwijzen;
|
||||
}
|
||||
|
||||
|
||||
|
||||
this.hook_pre_post = function(scf_params, obj)
|
||||
{ // toevoegen
|
||||
var canrefer_arr = getFParamIntArray("canrefer", [-1]);
|
||||
obj.canrefer = translate_canrefer(null, canrefer_arr);
|
||||
}
|
||||
this.hook_post_post = function(scf_params, obj, key)
|
||||
{
|
||||
}
|
||||
this.hook_pre_put = function(scf_params, obj, key)
|
||||
{ // wijzigen
|
||||
var canrefer_arr = getFParamIntArray("canrefer", [-1]);
|
||||
obj.canrefer = translate_canrefer(null, canrefer_arr);
|
||||
/*
|
||||
// Kan verwijzen naar meerdere referenties (modules).
|
||||
var kanverwijzen_arr = getFParamIntArray("canrefer", [-1]); // Kanverwijzen
|
||||
var kanverwijzen = 0;
|
||||
for (var i = 0; i < kanverwijzen_arr.length; i++)
|
||||
{
|
||||
if (kanverwijzen_arr[i] > 0)
|
||||
kanverwijzen += kanverwijzen_arr[i];
|
||||
}
|
||||
obj.canrefer = (kanverwijzen > 128 ? 128 : kanverwijzen);
|
||||
//
|
||||
*/
|
||||
}
|
||||
this.hook_pre_delete = function(scf_params, key)
|
||||
{
|
||||
}
|
||||
this.hook_pre_search = function(fld)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
this.REST_GET = generic_REST_GET(this, xparams);
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
|
||||
|
||||
function departmentobjects_foreign()
|
||||
{
|
||||
var tbl = "9;" + L("lcl_mld_no_objects") + ";"
|
||||
+ "-1;" + L("lcl_mld_all_objects") + ";"
|
||||
+ "0;" + L("lcl_company");
|
||||
for (var i = 1; i <= S("prs_max_dep_level"); i++)
|
||||
tbl += ";" + i + ";" + L("lcl_dep_name_level" + i);
|
||||
return tbl;
|
||||
}
|
||||
|
||||
function limitcatalogue_foreign(stdm_info)
|
||||
{
|
||||
tbl = "(SELECT d.ins_discipline_key"
|
||||
+ " , ins_discipline_omschrijving"
|
||||
+ " FROM ins_tab_discipline d"
|
||||
+ " WHERE d.ins_discipline_module = 'BES'"
|
||||
+ " AND d.ins_discipline_verwijder IS NULL"
|
||||
+ " AND EXISTS (SELECT 1"
|
||||
+ " FROM mld_discipline md"
|
||||
+ " , ins_srtdiscipline isd"
|
||||
+ " WHERE md.ins_srtdiscipline_key = isd.ins_srtdiscipline_key"
|
||||
+ " AND isd.ins_srtdiscipline_bes = 1"
|
||||
+ " AND md.ins_discipline_key = " + stdm_info.ins_discipline_key + ")"
|
||||
+ " ORDER BY UPPER(d.ins_discipline_omschrijving))";
|
||||
return tbl;
|
||||
}
|
||||
|
||||
function canrefer_LOV()
|
||||
{
|
||||
var tbl = "128;" + mld.getrefmoduletext(128) + ";" /* Alle meldingen */
|
||||
+ "1;" + mld.getrefmoduletext(1) + ";" /* [M] Eigen meldingen */
|
||||
+ "2;" + mld.getrefmoduletext(2) + ";" /* [O] Opdracht */
|
||||
+ "4;" + mld.getrefmoduletext(4) + ";" /* [R] Reservering */
|
||||
+ "8;" + mld.getrefmoduletext(8) /* [B] Bestelling */
|
||||
//+ "16;" + mld.getrefmoduletext(16 + ";" /* [X] Bestelopdracht :reserved for future use */
|
||||
//+ "32;" + mld.getrefmoduletext(32 + ";" /* [C] Contract :reserved for future use */
|
||||
//+ "64;" + mld.getrefmoduletext(64) + ";" /* [F] Factuur :reserved for future use */
|
||||
/* 0: Geen verwijzingen */
|
||||
return tbl;
|
||||
}
|
||||
|
||||
}
|
||||
%>
|
||||
161
APPL/API2/model_mld_stdmelding_srtinst.inc
Normal file
161
APPL/API2/model_mld_stdmelding_srtinst.inc
Normal file
@@ -0,0 +1,161 @@
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: model_mld_stdmelding_srtinst.inc
|
||||
|
||||
Description: Model voor mld_stdmelding_srtinst
|
||||
|
||||
Context:
|
||||
|
||||
Notes: Eerste opzet, under construction
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="model_mld_stdmelding.inc"-->
|
||||
<%
|
||||
|
||||
function model_mld_stdmelding_srtinst(params)
|
||||
{
|
||||
params = params || {};
|
||||
this.records_name = "issuetypeobjecttypes";
|
||||
this.record_name = "issuetypeobjecttype";
|
||||
this.table = "mld_stdmelding_srtinst";
|
||||
this.primary = "mld_stdmelding_srtinst_key";
|
||||
this.autfunction = params.internal?false:"WEB_MLDMGT";
|
||||
this.record_title = L("mld_stdmelding_srtinst");
|
||||
this.records_title = L("mld_stdmelding_srtinst_m");
|
||||
|
||||
this.fields = {
|
||||
"id": {
|
||||
"dbs": "mld_stdmelding_srtinst_key",
|
||||
"label": L("lcl_key"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"filter": "exact",
|
||||
"seq": "mld_s_mld_stdm_srtinst_key",
|
||||
"readonly": true
|
||||
},
|
||||
"disciplinetype": { // Voor filtering
|
||||
"dbs": "ins_srtdiscipline.ins_srtdiscipline_key",
|
||||
"label": L("lcl_mld_vakgroeptype"),
|
||||
"typ": "key",
|
||||
"foreign" : {
|
||||
"tbl": "(SELECT ins_srtdiscipline_key"
|
||||
+ " , ins_srtdiscipline_omschrijving srtdiscipline_oms"
|
||||
+ " FROM ins_srtdiscipline"
|
||||
+ " WHERE ins_srtdiscipline_module = 'MLD'"
|
||||
+ " AND ins_srtdiscipline_ins = 1"
|
||||
+ " ORDER BY 2 ASC"
|
||||
+ ")",
|
||||
"key": "ins_srtdiscipline_key",
|
||||
"desc": "srtdiscipline_oms"
|
||||
}
|
||||
},
|
||||
"discipline": { // Voor filtering
|
||||
"dbs": "mld_stdmelding.mld_ins_discipline_key",
|
||||
"typ": "key",
|
||||
"label": L("lcl_mld_vakgroep"),
|
||||
"foreign": {
|
||||
"tbl": "(SELECT ins_discipline_key"
|
||||
+ " , ins_discipline_omschrijving"
|
||||
+ " FROM mld_v_aanwezigdiscipline"
|
||||
+ " ORDER BY ins_discipline_omschrijving ASC"
|
||||
+ ")",
|
||||
"key": "ins_discipline_key",
|
||||
"desc": "ins_discipline_omschrijving"
|
||||
},
|
||||
"required": (mode == "edit")
|
||||
},
|
||||
"issuetype": {
|
||||
"dbs": "mld_stdmelding_key",
|
||||
"label": L("mld_stdmelding_key"),
|
||||
"typ": "key",
|
||||
"hidden_fld": true,
|
||||
"foreign": {
|
||||
"tbl": "(SELECT m.mld_stdmelding_key"
|
||||
+ " , d.ins_discipline_omschrijving || '/' || m.mld_stdmelding_omschrijving stdmelding_omschr"
|
||||
+ " FROM mld_stdmelding m"
|
||||
+ " , mld_v_aanwezigdiscipline d"
|
||||
+ " WHERE m.mld_ins_discipline_key = d.ins_discipline_key"
|
||||
+ " ORDER BY d.ins_discipline_omschrijving ASC"
|
||||
+ " , m.mld_stdmelding_omschrijving ASC"
|
||||
+ ")",
|
||||
"key": "mld_stdmelding_key",
|
||||
"desc": "stdmelding_omschr"
|
||||
},
|
||||
"LOVinit": ""
|
||||
},
|
||||
"level": {
|
||||
"dbs": "ins_srtinstallatie_niveau",
|
||||
"label": L("lcl_niveau"),
|
||||
"typ": "varchar",
|
||||
"hidden_fld": true
|
||||
},
|
||||
"objectkey": {
|
||||
"dbs": "ins_srtinstallatie_key",
|
||||
"label": L("lcl_ins_object"),
|
||||
"typ": "key",
|
||||
"hidden_fld": true
|
||||
},
|
||||
"objectdiscipline": {
|
||||
"dbs": "ins_v_allsrtinstallatie.ins_discipline_key",
|
||||
"label": L("ins_srtinstallatie_discipline"),
|
||||
"typ": "key",
|
||||
"foreign": {
|
||||
"tbl": "ins_discipline",
|
||||
"key": "ins_discipline_key",
|
||||
"desc": "ins_discipline_omschrijving"
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"objectgroup": {
|
||||
"dbs": "ins_v_allsrtinstallatie.ins_srtgroep_key",
|
||||
"label": L("ins_srtinstallatie_srtgroep"),
|
||||
"typ": "key",
|
||||
"foreign": { "tbl": "ins_srtgroep",
|
||||
"key": "ins_srtgroep_key",
|
||||
"desc": "ins_srtgroep_omschrijving"
|
||||
}
|
||||
},
|
||||
"objecttype": {
|
||||
"dbs": "ins_v_allsrtinstallatie.ins_srtdeel_key",
|
||||
"label": L("ins_srtinstallatie_srtdeel"),
|
||||
"typ": "key",
|
||||
"foreign": { "tbl": "ins_srtdeel",
|
||||
"key": "ins_srtdeel_key",
|
||||
"desc": "ins_srtdeel_omschrijving"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
this.hook_pre_edit = function (obj, fld)
|
||||
{
|
||||
%>
|
||||
<script>
|
||||
var srtinstallatieselector_available = 1; // toon alleen actuele disciplines/groepen en objecten.
|
||||
</script>
|
||||
<%
|
||||
this.fields.disciplinetype.hidden_fld = true;
|
||||
this.fields.discipline.hidden_fld = true;
|
||||
}
|
||||
|
||||
var xparams = {
|
||||
GET: {
|
||||
tables: [ "ins_v_allsrtinstallatie, ins_srtdiscipline, mld_v_aanwezigdiscipline, mld_stdmelding" ],
|
||||
wheres: [ "mld_stdmelding_srtinst.ins_srtinstallatie_key = ins_v_allsrtinstallatie.ins_srtinstallatie_key(+)",
|
||||
"mld_stdmelding_srtinst.ins_srtinstallatie_niveau = ins_v_allsrtinstallatie.niveau(+)",
|
||||
"mld_stdmelding.mld_stdmelding_key = mld_stdmelding_srtinst.mld_stdmelding_key",
|
||||
"mld_v_aanwezigdiscipline.ins_discipline_key = mld_stdmelding.mld_ins_discipline_key",
|
||||
"mld_v_aanwezigdiscipline.ins_srtdiscipline_key = ins_srtdiscipline.ins_srtdiscipline_key"
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
this.REST_GET = generic_REST_GET(this, xparams);
|
||||
if (mld_stdmelding_key != -1)
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
}
|
||||
%>
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
File: model_objects.inc
|
||||
|
||||
Description: Object model.
|
||||
Description: Object model. Still quite incomplete (or "under construction" if you like)
|
||||
Parameters:
|
||||
Context:
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<!-- #include file="./model_custom_fields.inc"-->
|
||||
<!-- #include file="./model_fac_tracking.inc"-->
|
||||
<!-- #include file="./model_ins_kenmerk.inc"-->
|
||||
<!-- #include file="model_issueobjects.inc"-->
|
||||
<%
|
||||
model_objects =
|
||||
{
|
||||
@@ -24,14 +25,16 @@ model_objects =
|
||||
records_name: "objects",
|
||||
record_name: "object",
|
||||
multi_update: true,
|
||||
fields: {"id" : { dbs: "ins_deel_key", typ: "key", filter: "exact" },
|
||||
"name" : { dbs: "ins_deel_omschrijving", typ: "varchar", filter: "like"},
|
||||
"description" : { dbs: "ins_deel_opmerking", typ: "varchar", filter: "like"},
|
||||
"type" : { dbs: "ins_srtdeel_key", typ: "key", filter: "exact", foreign: "ins_srtdeel"},
|
||||
"state" : { dbs: "ins_deel_state", typ: "varchar" },
|
||||
"statedate": { dbs: "ins_deel_statedate", typ: "datetime" },
|
||||
"expiration":{ dbs: "ins_deel_vervaldatum", typ: "date" },
|
||||
"manager" : { dbs: "prs_perslid_key_beh", typ: "key", foreign: "prs_perslid", track: true, label: L("lcl_ins_manager"), sfilter: "exact" },
|
||||
fields: {"id" : { dbs: "ins_deel_key", typ: "key", filter: "exact" },
|
||||
"name" : { dbs: "ins_deel_omschrijving", typ: "varchar", filter: "like"},
|
||||
"description" : { dbs: "ins_deel_opmerking", typ: "varchar", filter: "like"},
|
||||
"type" : { dbs: "ins_srtdeel_key", typ: "key", filter: "exact", foreign: "ins_srtdeel"},
|
||||
"state" : { dbs: "ins_deel_state", typ: "varchar" },
|
||||
"statedate": { dbs: "ins_deel_statedate", typ: "datetime" },
|
||||
"expiration":{ dbs: "ins_deel_vervaldatum", typ: "date" },
|
||||
"manager" : { dbs: "prs_perslid_key_beh", typ: "key", foreign: "prs_perslid", track: true, label: L("lcl_ins_manager"), sfilter: "exact" },
|
||||
"score1" : { dbs: "ins_deel_mjb_score1", typ: "varchar", filter: "exact", track: true, label: L("lcl_ins_deel_mjb_score1")},
|
||||
"score2" : { dbs: "ins_deel_mjb_score2", typ: "varchar", filter: "exact", track: true, label: L("lcl_ins_deel_mjb_score2")},
|
||||
"location" : { dbs: "ins_v_deel_gegevens.alg_locatie_key", typ: "key", foreign: "alg_locatie"},
|
||||
"building" : { dbs: "ins_v_deel_gegevens.alg_gebouw_key", typ: "key", foreign: "alg_gebouw" },
|
||||
"floor" : { dbs: "ins_v_deel_gegevens.alg_verdieping_key", typ: "key", foreign: "alg_verdieping" },
|
||||
@@ -51,7 +54,11 @@ model_objects =
|
||||
"model": new model_custom_fields(this, new model_ins_kenmerk("D", { internal: true }), { readman: true, readuse: true }),
|
||||
"joinfield": "flexparentkey",
|
||||
"enable_update": true
|
||||
}
|
||||
},
|
||||
"issueobjects": {
|
||||
model: new model_issueobjects(),
|
||||
joinfield: "object"
|
||||
}
|
||||
},
|
||||
REST_GET: function _GET(params)
|
||||
{
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<!-- #include file="../shared/budget.inc" -->
|
||||
<!-- #include file="../shared/kpl_ksrt_validate.inc" -->
|
||||
<!-- #include file="../mld/mld.inc" -->
|
||||
<!-- #include file="../prs/prs.inc" -->
|
||||
<!-- #include file="./model_notes.inc"-->
|
||||
<!-- #include file="./model_custom_fields.inc"-->
|
||||
<!-- #include file="./model_fac_tracking.inc"-->
|
||||
@@ -532,9 +533,16 @@ function model_orders(opdr_key, params)
|
||||
{
|
||||
// Wie moet op verzoek goedkeuren voor deze kostenplaats, terwijl het bedrag wellicht onbekend is?
|
||||
// Eerste fiatteur (pkey) mag niet fiatteren want het zit boven zijn profiel limiet.
|
||||
// De melder van de melding (user_key) mag niet zelf goedkeuren boven het bedrag can_selfapprove.
|
||||
// De melder van de melding (user_key) mag niet zelf goedkeuren boven het bedrag can_selfapprove (functie prs.getApprover() regelt dat).
|
||||
// tot_kosten > can_selfapprove => user_key als exclude key meegeven.
|
||||
approver_key = prs.getFiatteur(kostenplaats_key, (tot_kosten > S("can_selfapprove"))?user_key:-1, tot_kosten, disc_key);
|
||||
// De functie prs.getFiatteur() vervangen door de functie prs.getFiatteur().
|
||||
// De functie prs.getApprover() levert de eerste fiatteur op en checkt daarnaast nog
|
||||
// of het totaalbedrag door iemand gefiatteerd kan worden.
|
||||
var params = {prs_key: user_key,
|
||||
dis_key: disc_key,
|
||||
kp_key: kostenplaats_key,
|
||||
totaalbedrag: tot_kosten};
|
||||
approver_key = prs.getApprover(params);
|
||||
for_approval = true;
|
||||
}
|
||||
}
|
||||
@@ -559,6 +567,8 @@ function model_orders(opdr_key, params)
|
||||
|
||||
if (for_approval && kp_fiat)
|
||||
{
|
||||
// Als approver_key -1 was, dan had de functie prs.getApprover() al een abort_with_warning afgegeven
|
||||
// maar de functie mld.getFirstApprover() nog niet. Daarom hier nog even testen.
|
||||
if (approver_key == -1)
|
||||
abort_with_warning(L("lcl_bes_exceed_limit"));
|
||||
else
|
||||
@@ -1095,12 +1105,15 @@ function model_orders(opdr_key, params)
|
||||
+ " AND mld_opdr_key = " + opdr_key;
|
||||
|
||||
var allKenmerkenSQL = "SELECT " + lcl.xsql('t.mld_srtkenmerk_omschrijving', 't.mld_srtkenmerk_key') +" kenmerk_omschrijving"
|
||||
+ ", m.mld_srtkenmerk_key srtkenmerk_key"
|
||||
+ ", t.mld_srtkenmerk_kenmerktype kenmerk_kenmerktype"
|
||||
+ ", t.mld_srtkenmerk_systeem kenmerk_systeem"
|
||||
+ ", k.mld_kenmerk_toonbaar kenmerk_readonly"
|
||||
+ ", k.mld_kenmerk_uniek kenmerk_uniek"
|
||||
+ ", fac_kenmerkdomein_key"
|
||||
+ " FROM mld_kenmerk m, "
|
||||
+ " FROM mld_kenmerk k, "
|
||||
+ " mld_srtkenmerk t"
|
||||
+ " WHERE m.mld_srtkenmerk_key = t.mld_srtkenmerk_key"
|
||||
+ " AND m.mld_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */
|
||||
+ " WHERE k.mld_srtkenmerk_key = t.mld_srtkenmerk_key"
|
||||
+ " AND k.mld_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */
|
||||
// TODO: deze saveFlexKenmerken moet via de standaard includes door model_custom_fields opgelost worden
|
||||
// pas echter op: die verwacht een properyid voor elk kenmerk terwijl saveFlexKenmerken (nog) een 'id' verwacht
|
||||
// In het bijzonder wordt in d:\Apps\Facilitor\Branch20172\CUST\ASLE\Appl ook nog de 'id' gezet!
|
||||
|
||||
@@ -42,17 +42,6 @@ function model_prs_kostencombinatie()
|
||||
"hidden_fld": true,
|
||||
"filter": "like"
|
||||
},
|
||||
"refcode": {
|
||||
"dbs": "prs_kostencombinatie.prs_kostensoort_key",
|
||||
"label": L("prs_kostensoort_refcode"),
|
||||
"typ": "key",
|
||||
"hidden_fld": true,
|
||||
"foreign": {
|
||||
"tbl": "prs_kostensoort",
|
||||
"key": "prs_kostensoort_key",
|
||||
"desc": "prs_kostensoort_refcode"
|
||||
}
|
||||
},
|
||||
"costtype": {
|
||||
"dbs": "prs_kostensoort_key",
|
||||
"label": L("prs_kostensoort_key"),
|
||||
@@ -102,12 +91,15 @@ function model_prs_kostencombinatie()
|
||||
|
||||
this.REST_GET = generic_REST_GET(this, {
|
||||
"GET": {
|
||||
"tables": [ext_sql],
|
||||
"wheres": ["ks.prs_kostensoort_key = prs_kostencombinatie.prs_kostensoort_key",
|
||||
"( ks.prs_kostensoort_upper LIKE " + safe.quoted_sql(costtype_search) +
|
||||
"OR UPPER(ks.prs_kostensoort_opmerking) LIKE " + safe.quoted_sql(costtype_search) +
|
||||
"OR UPPER(ks.prs_kostensoort_refcode) LIKE " + safe.quoted_sql(costtype_search) +
|
||||
")"
|
||||
"wheres": [ "EXISTS "
|
||||
+ " (SELECT 1 "
|
||||
+ " FROM prs_kostensoort "
|
||||
+ " WHERE prs_kostensoort.prs_kostensoort_key = "
|
||||
+ " prs_kostencombinatie.prs_kostensoort_key "
|
||||
+ " AND ( prs_kostensoort_upper LIKE " + safe.quoted_sql(costtype_search)
|
||||
+ " OR UPPER (prs_kostensoort_opmerking) LIKE " + safe.quoted_sql(costtype_search)
|
||||
+ " OR UPPER (prs_kostensoort_refcode) LIKE " + safe.quoted_sql(costtype_search)
|
||||
+ "))"
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="../bgt/bgt_tools.inc" -->
|
||||
<!-- #include file="../api2/api2_tools.inc" -->
|
||||
<%
|
||||
|
||||
function model_prs_kostenplaats()
|
||||
@@ -21,8 +22,8 @@ function model_prs_kostenplaats()
|
||||
this.table = "prs_kostenplaats";
|
||||
this.primary = "prs_kostenplaats_key";
|
||||
this.autfunction = (S("bgt_enabled")==1 ? ["WEB_FINMSU", "WEB_BGTMGT"] : ["WEB_FINMSU"]);
|
||||
this.record_title = (S("bgt_enabled")==1 ? L("bgt_kostenplaats") : L("lcl_account"));
|
||||
this.records_title = (S("bgt_enabled")==1 ? L("bgt_kostenplaats_m") : L("lcl_menu_fin_kostenplaatsen"));
|
||||
this.record_title = (S("bgt_enabled")==1 ? L("bgt_kostenplaats") : L("prs_kostenplaats"));
|
||||
this.records_title = (S("bgt_enabled")==1 ? L("bgt_kostenplaats_m") : L("prs_kostenplaats_m"));
|
||||
this.soft_delete = "prs_kostenplaats_verwijder";
|
||||
|
||||
this.fields = {
|
||||
@@ -55,7 +56,6 @@ function model_prs_kostenplaats()
|
||||
"dbs": "prs_kostenplaatsgrp_key",
|
||||
"label": L("lcl_prs_kostenpl_group"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"foreign": bgt_accountgroup_foreign(),
|
||||
"showtransit": true
|
||||
},
|
||||
@@ -67,6 +67,16 @@ function model_prs_kostenplaats()
|
||||
"required": true,
|
||||
"filter": "like"
|
||||
},
|
||||
"module": {
|
||||
"dbs": "prs_kostenplaats_module",
|
||||
"label": L("lcl_prs_type"),
|
||||
"typ": "varchar",
|
||||
"LOV": "ALG;" + L("lcl_prs_kosttype_alg")
|
||||
+ ";PRJ;" + L("lcl_prs_kosttype_prj")
|
||||
+ ";PRS;" + L("lcl_prs_kosttype_prs"),
|
||||
"hidden_fld": true,
|
||||
"defaultvalue": "PRJ"
|
||||
},
|
||||
"description": {
|
||||
"dbs": "prs_kostenplaats_omschrijving",
|
||||
"label": L("lcl_prs_descr"),
|
||||
@@ -75,25 +85,39 @@ function model_prs_kostenplaats()
|
||||
"required": true,
|
||||
"filter": "like"
|
||||
},
|
||||
"begin": {
|
||||
"dbs": "prs_kostenplaats_begin",
|
||||
"label": "Startdatum", // L("lcl_start_date"),
|
||||
"typ": "date"
|
||||
},
|
||||
"end": {
|
||||
"dbs": "prs_kostenplaats_eind",
|
||||
"label": L("lcl_end_date"),
|
||||
"typ": "date"
|
||||
},
|
||||
"person": {
|
||||
"dbs": "prs_perslid_key",
|
||||
"label": L("lcl_prs_budgethouder"),
|
||||
"typ": "key",
|
||||
"foreign" : "prs_perslid"
|
||||
},
|
||||
"external": {
|
||||
"dbs": "prs_kostenplaats_extern",
|
||||
"label": L("lcl_prs_kpnextern"),
|
||||
"typ": "check0",
|
||||
"multiedit": true
|
||||
},
|
||||
"approval": {
|
||||
"dbs": "prs_kostenplaats_fiat",
|
||||
"label": L("lcl_prs_kpnfiat"),
|
||||
"typ": "check0",
|
||||
"multiedit": true
|
||||
},
|
||||
"begin": {
|
||||
"dbs": "prs_kostenplaats_begin",
|
||||
"label": L("lcl_start_date"),
|
||||
"typ": "date",
|
||||
"multiedit": true
|
||||
},
|
||||
"end": {
|
||||
"dbs": "prs_kostenplaats_eind",
|
||||
"label": L("lcl_end_date"),
|
||||
"typ": "date",
|
||||
"multiedit": true
|
||||
},
|
||||
"costlimit": {
|
||||
"dbs": "prs_kostenplaats_limiet",
|
||||
"label": L("lcl_prs_limiet"),
|
||||
"label": L("lcl_prs_budget") + " (" + L("lcl_valutasign")+")",
|
||||
"typ": "number"
|
||||
},
|
||||
"limitperiod": {
|
||||
@@ -103,23 +127,6 @@ function model_prs_kostenplaats()
|
||||
"LOV": "0;" + L("lcl_prs_none") +
|
||||
";1;" + L("lcl_prs_month") +
|
||||
";2;" + L("lcl_prs_year")
|
||||
},
|
||||
"external": {
|
||||
"dbs": "prs_kostenplaats_extern",
|
||||
"label": L("lcl_prs_kpnextern"),
|
||||
"typ": "check0"
|
||||
},
|
||||
"approval": {
|
||||
"dbs": "prs_kostenplaats_fiat",
|
||||
"label": L("lcl_prs_kpnfiat"),
|
||||
"typ": "check0"
|
||||
},
|
||||
"module": {
|
||||
"dbs": "prs_kostenplaats_module",
|
||||
"label": L("bgt_discipline_module"),
|
||||
"typ": "varchar",
|
||||
"hidden_fld": true,
|
||||
"defaultvalue": "PRJ"
|
||||
}
|
||||
};
|
||||
|
||||
@@ -191,6 +198,7 @@ function model_prs_kostenplaats()
|
||||
],
|
||||
"wheres": [ "prs_kostenplaatsgrp.bgt_project_key = bgt_project.bgt_project_key"
|
||||
, "prs_kostenplaatsgrp.prs_kostenplaatsgrp_key = prs_kostenplaats.prs_kostenplaatsgrp_key"
|
||||
, "bgt_project.bgt_project_verwijder IS NULL"
|
||||
]
|
||||
}
|
||||
});
|
||||
@@ -202,6 +210,56 @@ function model_prs_kostenplaats()
|
||||
{
|
||||
delete this.fields.budgetdiscipline;
|
||||
delete this.fields.budgetproject;
|
||||
delete this.fields.begin;
|
||||
delete this.fields.module.hidden_fld;
|
||||
delete this.fields.module.defaultvalue;
|
||||
|
||||
this.hook_pre_edit = function (obj, fld)
|
||||
{
|
||||
var kpngrp_prs_key = -1;
|
||||
var kpg_limperiode = 0;
|
||||
var kpn_limietperiode = 0;
|
||||
if (obj.id > -1)
|
||||
{
|
||||
var sql = "SELECT kp.prs_kostenplaats_limietperiode"
|
||||
+ " , kpg.prs_kostenplaatsgrp_limperiode"
|
||||
+ " , kpg.prs_perslid_key"
|
||||
+ " FROM prs_kostenplaats kp"
|
||||
+ " , prs_kostenplaatsgrp kpg"
|
||||
+ " WHERE kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)"
|
||||
+ " AND kp.prs_kostenplaats_key = " + obj.id;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
kpngrp_prs_key = oRs("prs_perslid_key").Value? oRs("prs_perslid_key").Value : -1;
|
||||
kpg_limperiode = oRs("prs_kostenplaatsgrp_limperiode").Value ? oRs("prs_kostenplaatsgrp_limperiode").Value : 0;
|
||||
kpn_limietperiode = kpg_limperiode ? kpg_limperiode : (oRs("prs_kostenplaats_limietperiode").Value ? oRs("prs_kostenplaats_limietperiode").Value : 0);
|
||||
oRs.Close();
|
||||
}
|
||||
// Wijzigen van de kostenplaats(groep)? Setting prs_restrict_kpedit {0=volgens autorisatie (default) | 1=alleen eigen kp/kpg wijzigen}.
|
||||
// WEB_FINMSU rechten of budgethouder.
|
||||
var authparams = user.checkAutorisation("WEB_FINMSU", true);
|
||||
var canChangeAlg = (authparams && authparams.ALGwritelevel < 9);
|
||||
var canChange = (canChangeAlg ||
|
||||
(S("prs_restrict_kpedit") == 1 && (obj.person == user_key || kpngrp_prs_key == user_key))) // Alleen eigen kp/kpg wijzigen
|
||||
user.auth_required_or_abort(canChange);
|
||||
|
||||
fld.name.readonly = !canChangeAlg;
|
||||
fld.module.readonly = !canChangeAlg;
|
||||
fld.description.readonly = !canChangeAlg;
|
||||
fld.person.readonly = !canChangeAlg;
|
||||
fld.costgroup.readonly = !canChangeAlg;
|
||||
fld.external.readonly = !canChangeAlg;
|
||||
fld.approval.readonly = !canChangeAlg;
|
||||
fld.end.readonly = !canChangeAlg;
|
||||
fld.limitperiod.readonly = kpg_limperiode;
|
||||
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
// Deze variabelen zijn nodig in prs_kostenplaats.js
|
||||
var p_kpn_limietperiode = <%=kpn_limietperiode%>;
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
|
||||
@@ -57,6 +57,8 @@ function model_prs_perslid(params)
|
||||
this.records_title = L("prs_perslid_m");
|
||||
this.autfunction = params.internal?false:"WEB_PRSSYS"; // we controleren zelf
|
||||
|
||||
|
||||
|
||||
this.fields = {
|
||||
"id": {
|
||||
"dbs": "prs_perslid_key",
|
||||
@@ -105,7 +107,7 @@ function model_prs_perslid(params)
|
||||
"gender": {
|
||||
"dbs": "prs_perslid_geslacht",
|
||||
"label": L("lcl_prs_person_geslacht"),
|
||||
"typ": "varchar",
|
||||
"typ": "number",
|
||||
"LOV": genderLOV()
|
||||
},
|
||||
"language": {
|
||||
@@ -352,9 +354,24 @@ function model_prs_perslid(params)
|
||||
// Else gewoon een nieuwe
|
||||
return generic_REST_POST(this)(params, jsondata, parent_key)
|
||||
}
|
||||
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
if (params.internal || user.has("WEB_PRSMAN"))
|
||||
{
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
var autparams = user.checkAutorisation("WEB_PROFIL");
|
||||
if (autparams.PRSwritelevel < 9 && autparams.ALGwritelevel < 9)
|
||||
{
|
||||
this.REST_PUT = function (params, jsondata, the_key)
|
||||
{
|
||||
if (params.filter.id != user_key || params.filter.mode != "attachment") // Bijlagen *bij jezelf* mag je uploaden
|
||||
abort_with_warning(L("lcl_no_auth"), 403);
|
||||
return generic_REST_PUT(this)(params, jsondata, the_key);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
%>
|
||||
@@ -80,7 +80,7 @@ function model_reportcolumns(usrrap_key, params)
|
||||
typ: "varchar",
|
||||
label: L("lcl_rap_visible"),
|
||||
required: true,
|
||||
LOV: L("lcl_rap_visibleLOV"), // "V;Visible;I;Invisible;H;hidden"
|
||||
LOV: L("lcl_rap_visibleLOV"), // "V;Visible;I;Invisible;H;hidden;S;Suppress repetitions"
|
||||
emptyoption: null,
|
||||
multiedit: true
|
||||
},
|
||||
|
||||
@@ -201,12 +201,25 @@ function model_reports(fac_usrrap_key)
|
||||
{
|
||||
var mtc = usrrap.urllink.match(/(.*)\{(.*)\}/);
|
||||
if (!mtc || mtc.length != 3)
|
||||
shared.simpel_page("Urllink <em>{0}</em> in rapport moet formaat 'xxxx/yyy.asp?key={keyveld}' hebben.".format(usrrap.urllink));
|
||||
shared.simpel_page("'{0}' <em>{1}</em> in report must have format 'xxxx/yyy.asp?key={keyfield}'".format(L("lcl_usrrap_urllink"), usrrap.urllink));
|
||||
model.list.default_url = mtc[1];
|
||||
// Voorkom dat hij binnen menu-wrapper wordt getoond
|
||||
if (mtc[1].indexOf("?u=") == 0)
|
||||
model.list.default_url = "?internal=1&" + mtc[1].substring(1);
|
||||
keyfield = mtc[2];
|
||||
|
||||
var found = false;
|
||||
for (var i = 0; !found && i < usrrap.columns.length; i++)
|
||||
{
|
||||
if (keyfield == usrrap.columns[i].name)
|
||||
{
|
||||
if (usrrap.columns[i].datatype.id != "number")
|
||||
shared.simpel_page("Keyfield <em>{0}</em> in '{1}' {2} must be of type number.".format(keyfield, L("lcl_usrrap_urllink"), usrrap.urllink));
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
if (!found)
|
||||
shared.simpel_page("Keyfield <em>{0}</em> in '{1}' {2} does not exist as a column.".format(keyfield, L("lcl_usrrap_urllink"), usrrap.urllink));
|
||||
}
|
||||
|
||||
if (usrrap.authorization)
|
||||
@@ -274,7 +287,7 @@ function model_reports(fac_usrrap_key)
|
||||
if (fld == keyfield)
|
||||
fld = "id";
|
||||
model.fields[fld] = field;
|
||||
if (usrrap.columns[i].visible.id == 'V')
|
||||
if (usrrap.columns[i].visible.id == "V" || usrrap.columns[i].visible.id == "S")
|
||||
{
|
||||
model.list.columns.push(fld);
|
||||
model.list.groupby.push(field.group.id);
|
||||
@@ -527,7 +540,12 @@ function report_GET(params)
|
||||
order.push(i+1)
|
||||
sql += " ORDER BY " + order.join(", ");
|
||||
|
||||
var maxcnt = params.filter.showall==1?S("qp_maxrows2"): (params.filter.ismobile?S("qp_maxrows_mobile"):S("qp_maxrows"));
|
||||
if (params.filter.limit > 0)
|
||||
maxcnt = parseInt(params.filter.limit, 10);
|
||||
else
|
||||
var maxcnt = params.filter.showall==1?S("qp_maxrows2"): (params.filter.ismobile?S("qp_maxrows_mobile"):S("qp_maxrows"));
|
||||
if (params.filter.offset > 0)
|
||||
maxcnt += parseInt(params.filter.offset, 10);
|
||||
if (params.filter.scf_pivot == 1)
|
||||
params.filter.nolimit = true;
|
||||
var sql = "SELECT * FROM (" + sql + ")"
|
||||
|
||||
@@ -39,7 +39,7 @@ function model_reportsx(usrrap_key, rapparams)
|
||||
len : 60, required: true
|
||||
},
|
||||
"description" : { dbs: "fac_usrrap_info",
|
||||
typ: "varchar",
|
||||
typ: "memo",
|
||||
label: L("lcl_usrrap_info"),
|
||||
filter: "like",
|
||||
translate: true
|
||||
|
||||
@@ -40,10 +40,16 @@ function model_res_activiteit()
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"foreign": {
|
||||
"tbl": "(SELECT res_srtactiviteit_key"
|
||||
+ " , res_srtactiviteit_omschrijving"
|
||||
+ " , res_srtactiviteit_soort"
|
||||
+ " FROM res_srtactiviteit"
|
||||
+ " WHERE res_srtactiviteit_verwijder IS NULL"
|
||||
+ ")",
|
||||
"tbl": "res_srtactiviteit",
|
||||
"key": "res_srtactiviteit_key",
|
||||
"desc": "res_srtactiviteit_omschrijving",
|
||||
"where": "res_srtactiviteit_verwijder IS NULL"
|
||||
"extravalue": "res_srtactiviteit_soort"
|
||||
},
|
||||
"filter": "exact"
|
||||
},
|
||||
@@ -60,6 +66,14 @@ function model_res_activiteit()
|
||||
"typ": "check",
|
||||
"multiedit": true
|
||||
},
|
||||
"posttime": {
|
||||
"dbs": "res_activiteit_posttime",
|
||||
"label": L("res_activiteit_posttime"),
|
||||
"typ": "float",
|
||||
"defaultvalue": 0,
|
||||
required: true,
|
||||
"multiedit": true
|
||||
},
|
||||
"visitorsmandatory": {
|
||||
"dbs": "res_activiteit_aantalverplicht",
|
||||
"label": L("res_activiteit_aantalverplicht"),
|
||||
@@ -89,6 +103,14 @@ function model_res_activiteit()
|
||||
"typ": "check0",
|
||||
"defaultvalue": 1,
|
||||
"multiedit": true
|
||||
},
|
||||
"deliverymode": {
|
||||
"dbs": "res_activiteit_cvab_mode",
|
||||
"label": L("res_activiteit_cvab_mode"),
|
||||
"typ": "key",
|
||||
"LOV": L("res_activiteit_cvab_modeLOV"),
|
||||
"emptyoption": null,
|
||||
"emptyisrealvalue": true
|
||||
}
|
||||
};
|
||||
|
||||
@@ -101,6 +123,21 @@ function model_res_activiteit()
|
||||
}
|
||||
};
|
||||
|
||||
this.hook_pre_show = function (obj, fld)
|
||||
{
|
||||
var sql = "SELECT res_srtactiviteit_soort"
|
||||
+ " FROM res_srtactiviteit"
|
||||
+ " WHERE res_srtactiviteit_verwijder IS NULL"
|
||||
+ " AND res_srtactiviteit_key = " + obj.bookingactivitytypes.id;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
var srtact_soort = oRs("res_srtactiviteit_soort").Value;
|
||||
if (srtact_soort != 1)
|
||||
delete this.fields.deliverymode;
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
|
||||
@@ -81,10 +81,10 @@ function model_res_ruimte()
|
||||
"label": L("res_discipline_key"),
|
||||
"typ": "key",
|
||||
"foreign": {
|
||||
"tbl": "ins_tab_discipline",
|
||||
"tbl": "res_discipline",
|
||||
"key": "ins_discipline_key",
|
||||
"desc": "ins_discipline_omschrijving",
|
||||
"where": "ins_discipline_verwijder is null and ins_discipline_module = 'RES' and ins_discipline_min_level = 3"
|
||||
"where": "ins_discipline_verwijder is null AND ins_discipline_min_level = 3"
|
||||
},
|
||||
"filter": "exact",
|
||||
"required": true
|
||||
@@ -249,7 +249,7 @@ function model_res_ruimte()
|
||||
"dbs": "res_ruimte_extern_id",
|
||||
"label": L("res_ruimte_extern_id"),
|
||||
"typ": "varchar"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// veld "res_ruimte_extern_id" alleen te wijzigen met PRSSYS rechten.
|
||||
@@ -268,7 +268,7 @@ function model_res_ruimte()
|
||||
"joinfield": "bookingroom",
|
||||
"multiadd": "bookingconfiguration",
|
||||
"enable_update": true
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// res_v_alg_ruimte_gegevens levert voor een koppelzaal meerdere records waardoor de opstelling ook meervoudig wordt weergegeven.
|
||||
|
||||
@@ -59,7 +59,7 @@ function model_rooms(room_key, params)
|
||||
{ onrgoedlvl: "R"
|
||||
};
|
||||
this.includes =
|
||||
{"cadcontours": { model: model_cadcontours,
|
||||
{"cadcontours": { model: new model_cadcontours(),
|
||||
joinfunction: function ()
|
||||
{
|
||||
var sqlSync = "SELECT y.alg_ruimte_key cad_ruimte_key"
|
||||
@@ -162,8 +162,11 @@ function model_rooms(room_key, params)
|
||||
+ " AND alg_onrgoed_key = " + room_key;
|
||||
|
||||
allKenmerkenSQL = " SELECT "+lcl.xsql("k.alg_kenmerk_omschrijving","k.alg_kenmerk_key")+" kenmerk_omschrijving"
|
||||
+ " , alg_kenmerk_key srtkenmerk_key"
|
||||
+ " , fac_kenmerkdomein_key"
|
||||
+ ", k.alg_kenmerk_kenmerktype kenmerk_kenmerktype"
|
||||
+ ", k.alg_kenmerk_systeem kenmerk_systeem"
|
||||
+ ", k.alg_kenmerk_toonbaar kenmerk_readonly"
|
||||
+ ", k.alg_kenmerk_uniek kenmerk_uniek"
|
||||
+ ", fac_kenmerkdomein_key"
|
||||
+ " FROM alg_kenmerk k"
|
||||
+ " WHERE k.alg_kenmerk_verwijder IS NULL"
|
||||
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql("R") /* this.defaults.onrgoedlvl */
|
||||
|
||||
@@ -122,6 +122,8 @@ function model_visitors()
|
||||
|
||||
this.REST_PUT = function (params, jsondata, the_key) /* update visitors */
|
||||
{
|
||||
var scope = params.filter.scope || "fe";
|
||||
this.autfunction = { fe : "WEB_BEZUSE", fo : "WEB_BEZFOF", bo : "WEB_BEZBOF", mi : "WEB_RESBAC" } [scope];
|
||||
// TODO: Tracking?
|
||||
if ("parking" in jsondata) // TODO herclaimen bij gewijzigde tijden of locatie!
|
||||
{ // Vooralsnog verantwoordelijkheid bij API-bouwer
|
||||
|
||||
@@ -15,9 +15,6 @@
|
||||
ANONYMOUS_Allowed = 1;
|
||||
%>
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="./login.inc" -->
|
||||
<%
|
||||
var lcl_loggedoff = "U bent nu afgemeld van FACILITOR.<br>Sluit uw browser of klik <a href='{0}'>hier</a> om weer aan te melden.".format(rooturl + "/");
|
||||
shared.simpel_page(lcl_loggedoff);
|
||||
shared.simpel_page(L("lcl_loggedoff").format(rooturl + "/"));
|
||||
%>
|
||||
@@ -26,6 +26,7 @@ function doLogin(prs_key, params)
|
||||
// Paranoia mode
|
||||
var sql = "SELECT prs_perslid_login"
|
||||
+ " , prs_perslid_einddatum"
|
||||
+ " , prs_perslid_loglevel"
|
||||
+ " FROM prs_perslid"
|
||||
+ " WHERE prs_perslid_verwijder IS NULL"
|
||||
+ " AND prs_perslid_inactief IS NULL"
|
||||
@@ -38,7 +39,14 @@ function doLogin(prs_key, params)
|
||||
}
|
||||
var first_login = (oRs("prs_perslid_login").Value == null);
|
||||
var einddatum = oRs("prs_perslid_einddatum").Value != null?new Date(oRs("prs_perslid_einddatum").Value): null;
|
||||
var loglevel = oRs("prs_perslid_loglevel").Value;
|
||||
oRs.Close();
|
||||
if (loglevel > 0)
|
||||
{ // We doen geen __Logging=3, dan zou voor een gebruiker zo maar de logging in beeld komen
|
||||
__Logging = 1; // Voor dit bestand
|
||||
Session("logging") = __Logging;
|
||||
__Log("Logging for this user {0} is forced on".format(Session("userident")||""), '#f00');
|
||||
}
|
||||
|
||||
if (S("prs_einddatum_login_grace") >= 0 && einddatum)
|
||||
{
|
||||
@@ -117,6 +125,7 @@ function doLogin(prs_key, params)
|
||||
|
||||
Session("user_key") = user_key; // Nu ben je pas *echt* ingelogd
|
||||
/* global */ user = new Perslid(user_key);
|
||||
Session("userident") = "{0} ({1})".format(user.naam(), user.oslogin() || user.oslogin2() || user.prs_perslid_email() || "??"); // Handig voor in logging
|
||||
|
||||
Session.Contents.Remove("must_accept_terms");
|
||||
if (S("fac_accept_terms") > 0
|
||||
@@ -190,7 +199,9 @@ function doLoginStateless(prs_key, params)
|
||||
{
|
||||
/* global */ user_key = prs_key;
|
||||
Session("user_key") = user_key; // Nu ben je pas *echt* ingelogd
|
||||
/* global */ user = new Perslid(user_key); // wordt mogelijk nog overruled door imporsonate
|
||||
/* global */ user = new Perslid(user_key); // wordt mogelijk nog overruled door impersonate
|
||||
// Ik wil voor API2 Stateless calls geen SELECT op PRS_PERSLID triggeren met de volgende statements
|
||||
// Session("userident") = "{0} ({1})".format(user.naam(), user.oslogin() || user.oslogin2() || user.prs_perslid_email() || "??"); // Handig voor in logging
|
||||
Session("stateless") = 1;
|
||||
Session.Abandon(); // Altijd, voor de zekerheid
|
||||
}
|
||||
@@ -1510,14 +1521,6 @@ function process_claim_update(claim, idp_data, params)
|
||||
abort_with_warning(pResult.errmsg);
|
||||
}
|
||||
|
||||
if (!("department" in persdata))
|
||||
{
|
||||
if (!idp_data.department)
|
||||
shared.internal_error("Department is not configured for Identity Provider {0} ({1})".format(idp_data.code, idp_data.name));
|
||||
|
||||
persdata["department"] = idp_data.department.id; // dan moet die ingevuld zijn
|
||||
}
|
||||
|
||||
if (user_key < 0)
|
||||
__Log("User automatically created with data:");
|
||||
else
|
||||
@@ -1532,6 +1535,14 @@ function process_claim_update(claim, idp_data, params)
|
||||
}
|
||||
else // nieuwe
|
||||
{
|
||||
if (!("department" in persdata))
|
||||
{
|
||||
if (!idp_data.department)
|
||||
shared.internal_error("Department is not configured for Identity Provider {0} ({1})".format(idp_data.code, idp_data.name));
|
||||
|
||||
persdata["department"] = idp_data.department.id; // dan moet die ingevuld zijn
|
||||
}
|
||||
|
||||
var prs = person.REST_POST( persparams, persdata );
|
||||
__DoLog("Created user '{0} {1}' with key {2} for idp '{3}'".format(persdata["firstname"], persdata["lastname"], prs.key, idp_data.code));
|
||||
// De nieuw aangemaakte gebruiker inloggen:
|
||||
|
||||
@@ -44,21 +44,6 @@ if (Response.Expires > 0)
|
||||
<%
|
||||
__Log("== Entering loginTry.asp ==");
|
||||
|
||||
if (typeof Session("sso_sgf") == "string") // Vanuit FACWS001-portal/ sso_sgf.asp
|
||||
{
|
||||
Session.Contents.Remove("ASPFIXATION"); // Niet moeilijk doen
|
||||
settings.overrule_setting("login_use_email", 0); // We hebben altijd login gescanned namelijk
|
||||
tryLogin(String(Session("sso_sgf")), null, { noPassword: true });
|
||||
if (user_key < 0 && parseInt(String(Session("sso_sgf")), 10))
|
||||
doLogin(parseInt(String(Session("sso_sgf")), 10)); // je mag ook key meegeven
|
||||
|
||||
var realuser = Session("sso_sgf_realuser");
|
||||
if (user_key > 0 && realuser)
|
||||
shared.trackaction("PRSLOG", user_key, L("lcl_logged_on_sso").format(realuser, Request.ServerVariables("REMOTE_ADDR")));
|
||||
Session.Contents.Remove("sso_sgf");
|
||||
Session.Contents.Remove("sso_sgf_realuser");
|
||||
}
|
||||
|
||||
// De stateless varianten proberen we eerst, die worden tenslotte potentieel vaak uitgevoerd
|
||||
if (user_key < 0)
|
||||
{
|
||||
@@ -69,7 +54,7 @@ if (user_key < 0)
|
||||
APIKEY = String(Request.ServerVariables("HTTP_X_FACILITOR_API_KEY")); // Meegegeven als X-FACILITOR-API-Key
|
||||
if (APIKEY)
|
||||
{
|
||||
var sql = "SELECT prs_perslid_key, prs_perslid_naam, prs_perslid_oslogin"
|
||||
var sql = "SELECT prs_perslid_key, prs_perslid_naam, prs_perslid_oslogin, prs_perslid_loglevel, prs_perslid_flags"
|
||||
+ " FROM prs_perslid"
|
||||
+ " WHERE prs_perslid_verwijder IS NULL"
|
||||
+ " AND prs_perslid_apikey = " + safe.quoted_sql(APIKEY);
|
||||
@@ -77,7 +62,19 @@ if (user_key < 0)
|
||||
if (!oRs.Eof)
|
||||
{
|
||||
__Log("API2 User is: {0} ({1})".format(oRs("prs_perslid_naam").Value, oRs("prs_perslid_oslogin").Value));
|
||||
if (oRs("prs_perslid_flags").Value & 16) //isWriteonlyApi2User
|
||||
{
|
||||
Session("isWriteonlyApi2User") = true;
|
||||
}
|
||||
Session("userident") = "{0} (APIKEY: {1})".format(oRs("prs_perslid_naam").Value, APIKEY.substr(0,3) + "..."); // Handig voor in logging
|
||||
doLoginStateless(oRs("prs_perslid_key").Value);
|
||||
var loglevel = oRs("prs_perslid_loglevel").Value;
|
||||
if (loglevel > 0) // We doen geen __Logging=3, dan zou voor een gebruiker zo maar de logging in beeld komen
|
||||
{
|
||||
// __Logging = 1; // *dit* bestand interessert me niet genoeg
|
||||
Session("logging") = 1; // Stateless maar voor de server.redirect e.d. toch zetten
|
||||
Session("userident") = Session("userident") + " (forced logging)";
|
||||
}
|
||||
}
|
||||
// else negeren
|
||||
oRs.Close()
|
||||
@@ -262,7 +259,10 @@ if ((user_key < 0 || getQParamInt("jwtforce", 0) == 1) && jwt)
|
||||
Session("idp_key") = idp_data.id;
|
||||
|
||||
if (claim.payload.fclt_realuser)
|
||||
{
|
||||
Session("fclt_realuser") = claim.payload.fclt_realuser; // Komt mooi in eventuele AiAi logging terecht.
|
||||
shared.trackaction("PRSLOG", user_key, L("lcl_logged_on_sso").format(claim.payload.fclt_realuser, Request.ServerVariables("REMOTE_ADDR")));
|
||||
}
|
||||
|
||||
if (!by_bearer) // bearer is stateless/ single request dus geen redirect
|
||||
{
|
||||
|
||||
361
APPL/BES/bes.inc
361
APPL/BES/bes.inc
@@ -21,6 +21,14 @@
|
||||
// Deze zet de status en doet dan bijpassende tracking en notificatie
|
||||
// zou leuk zijn om true of false op te leveren naar gelang de status echt anders is geworden
|
||||
},
|
||||
setbestelopdrstatus:
|
||||
function (bes_key, bes_bestelopdrstatus_key)
|
||||
{
|
||||
var sql = "BEGIN bes.setbestelopdrstatus(" + bes_key + ", " + bes_bestelopdrstatus_key + ", " + user_key + "); END;"
|
||||
Oracle.Execute(sql);
|
||||
// Deze zet de status en doet dan bijpassende tracking en notificatie
|
||||
// zou leuk zijn om true of false op te leveren naar gelang de status echt anders is geworden
|
||||
},
|
||||
updatebestellingstatus:
|
||||
function (bes_key)
|
||||
{
|
||||
@@ -37,6 +45,239 @@
|
||||
// Deze zet de controleert de status van de bestelopdracht op basis van de status van de regels
|
||||
// en doet dan ook bijpassende tracking en notificatie
|
||||
},
|
||||
|
||||
matchObjectSql:
|
||||
function (pins_srtdeel_key, pbestelling_item_key, params)
|
||||
{ // Matcht bestelde artikelen op objecten die dezelfde kenmerken (srtkenmerk_omschrijving) hebben.
|
||||
var sql = "SELECT DISTINCT ins.ins_deel_key"
|
||||
+ " , ins_alg_ruimte_key"
|
||||
+ " , ins_alg_ruimte_type"
|
||||
+ " , bes.bes_waarde"
|
||||
+ " , ins.ins_waarde"
|
||||
+ " FROM (SELECT sd.ins_srtdeel_key"
|
||||
+ " , sk.bes_srtkenmerk_omschrijving"
|
||||
+ " , kbi.bes_kenmerkbesteli_waarde bes_waarde"
|
||||
+ " FROM bes_bestelling_item bi"
|
||||
+ " , bes_srtdeel sd"
|
||||
+ " , bes_srtkenmerk sk"
|
||||
+ " , bes_kenmerk k"
|
||||
+ " , bes_kenmerkbesteli kbi"
|
||||
+ " WHERE bi.bes_bestelling_item_key = kbi.bes_bestelling_item_key(+)"
|
||||
+ " AND bi.bes_srtdeel_key = sd.bes_srtdeel_key"
|
||||
+ " AND kbi.bes_kenmerk_key = k.bes_kenmerk_key(+)"
|
||||
+ " AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key(+)"
|
||||
+ " AND bi.bes_bestelling_item_key IN (" + pbestelling_item_key + ")"
|
||||
+ " AND kbi.bes_kenmerkbesteli_verwijder(+) IS NULL"
|
||||
+ " AND k.bes_kenmerk_verwijder(+) IS NULL"
|
||||
+ " AND k.bes_kenmerk_type(+) = 'I'"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder(+) IS NULL) bes"
|
||||
+ " , (SELECT DISTINCT d.ins_deel_key"
|
||||
+ " , s.ins_srtdeel_key"
|
||||
+ " , d.ins_alg_ruimte_key"
|
||||
+ " , d.ins_alg_ruimte_type"
|
||||
+ " , t.ins_srtkenmerk_omschrijving ins_srtkenmerk_omschrijving"
|
||||
+ " , (SELECT v.ins_kenmerkdeel_waarde"
|
||||
+ " FROM ins_kenmerkdeel v"
|
||||
+ " WHERE (v.ins_deel_key = d.ins_deel_key"
|
||||
+ " AND k.ins_kenmerk_bewerkniveau = 'D'"
|
||||
+ " OR v.ins_deel_key IN (" + pins_srtdeel_key + ")"
|
||||
+ " AND k.ins_kenmerk_bewerkniveau = 'S')"
|
||||
+ " AND v.ins_kenmerk_key = k.ins_kenmerk_key"
|
||||
+ " AND ins_kenmerkdeel_verwijder IS NULL) ins_waarde"
|
||||
+ " FROM ins_deel d"
|
||||
+ " , ins_srtkenmerk t"
|
||||
+ " , ins_kenmerk k"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , ins_srtgroep g"
|
||||
+ " WHERE s.ins_srtdeel_key = d.ins_srtdeel_key"
|
||||
+ " AND k.ins_srtkenmerk_key = t.ins_srtkenmerk_key"
|
||||
+ " AND g.ins_srtgroep_key = s.ins_srtgroep_key"
|
||||
+ " AND k.ins_kenmerk_verwijder IS NULL"
|
||||
+ " AND t.ins_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND s.ins_srtdeel_key IN (" + pins_srtdeel_key + ")"
|
||||
+ " AND ((k.ins_srtinstallatie_key = s.ins_srtdeel_key"
|
||||
+ " AND k.ins_kenmerk_niveau = 'S')"
|
||||
+ " OR (k.ins_srtinstallatie_key = s.ins_srtgroep_key"
|
||||
+ " AND k.ins_kenmerk_niveau = 'G')"
|
||||
+ " OR (k.ins_srtinstallatie_key = g.ins_discipline_key"
|
||||
+ " AND k.ins_kenmerk_niveau = 'D'))"
|
||||
+ (params.retour
|
||||
? " AND d.ins_alg_ruimte_key_org IS NOT NULL AND d.ins_alg_ruimte_type_org IS NOT NULL" // Alleen objecten die in gebruik zijn.
|
||||
+ " AND d.bes_bestelopdr_key = " + params.bestelopdr_key
|
||||
: " AND d.ins_alg_ruimte_key_org IS NULL AND d.ins_alg_ruimte_type_org IS NULL") // Alleen vrije objecten.
|
||||
+ " ) ins"
|
||||
+ " WHERE bes.ins_srtdeel_key = ins.ins_srtdeel_key"
|
||||
+ " AND bes.bes_srtkenmerk_omschrijving = ins.ins_srtkenmerk_omschrijving"
|
||||
+ " ORDER BY ins_deel_key"
|
||||
return sql;
|
||||
},
|
||||
|
||||
|
||||
getMatchObjectsSql:
|
||||
function (pins_srtdeel_key, pbestelling_item_key, params)
|
||||
{ // Matcht bestelde artikelen op objecten.
|
||||
// Geeft een query terug met alle objecten die behoren onder de objectsoort die is gekoppeld aan het bestelde artikel.
|
||||
// Als er bij het bestelde artikel kenmerkwaarden zijn ingevuld van kenmerken die gelijk zijn aan kenmerken van het object (dezelfde srtkenmerk_omschrijving)
|
||||
// dan moeten deze waarden ook overeenkomen.
|
||||
|
||||
// Zijn er ingevulde artikel kenmerken die overeen moeten komen met gelijke kenmerken bij het object? Waarden zijn nog niet van belang.
|
||||
var sql_match = "SELECT COUNT(DISTINCT ins_deel_key) aantal"
|
||||
+ " FROM (" + bes.matchObjectSql(pins_srtdeel_key, pbestelling_item_key, params) + ")";
|
||||
var oRs_match = Oracle.Execute(sql_match);
|
||||
var domatch = oRs_match("aantal").Value > 0;
|
||||
oRs_match.Close()
|
||||
|
||||
if (domatch)
|
||||
{
|
||||
var sql_freeobj = "SELECT "
|
||||
+ (params.getcount
|
||||
? " COUNT(DISTINCT ins_deel_key) aantal"
|
||||
: " DISTINCT ins_deel_key"
|
||||
+ " , ins_alg_ruimte_key"
|
||||
+ " , ins_alg_ruimte_type")
|
||||
+ " FROM (" + bes.matchObjectSql(pins_srtdeel_key, pbestelling_item_key, params) + ")"
|
||||
+ " WHERE bes_waarde = ins_waarde";
|
||||
}
|
||||
else
|
||||
{ // Alle objecten van de objectsoort die gekoppeld is aan het bestelde artikel zijn ok.
|
||||
var sql_freeobj = "SELECT "
|
||||
+ (params.getcount
|
||||
? " COUNT(DISTINCT d.ins_deel_key) aantal"
|
||||
: " DISTINCT d.ins_deel_key"
|
||||
+ " , d.ins_alg_ruimte_key"
|
||||
+ " , d.ins_alg_ruimte_type")
|
||||
+ " FROM ins_deel d"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " WHERE s.ins_srtdeel_key = d.ins_srtdeel_key"
|
||||
+ " AND s.ins_srtdeel_key IN (" + pins_srtdeel_key + ")"
|
||||
+ (params.retour
|
||||
? " AND d.ins_alg_ruimte_key_org IS NOT NULL AND d.ins_alg_ruimte_type_org IS NOT NULL" // Alleen objecten die in gebruik zijn.
|
||||
+ " AND d.bes_bestelopdr_key = " + params.bestelopdr_key
|
||||
: " AND d.ins_alg_ruimte_key_org IS NULL AND d.ins_alg_ruimte_type_org IS NULL"); // Alleen vrije objecten.
|
||||
}
|
||||
|
||||
return sql_freeobj;
|
||||
},
|
||||
|
||||
createattachdisconnectObjects:
|
||||
function (popdr_key, pbestelopdr_item_key, paantalontv)
|
||||
{ // Aanmaken (Create), koppelen (Attach) of loskoppelen (Disconnect) van objecten aan of van de bestelopdracht (per bestelopdrachtregel).
|
||||
if (isNaN(paantalontv) || paantalontv == 0) return;
|
||||
|
||||
// Eerst instelling gegevens ophalen.
|
||||
sql = "SELECT bi.bes_bestelling_item_key"
|
||||
+ " , bdp.bes_disc_params_ins_mode"
|
||||
+ " , s.ins_srtdeel_key"
|
||||
+ " , bes.prs_perslid_key_voor"
|
||||
+ " , BITAND(sd.ins_srtdeel_binding, 8) afd_binding"
|
||||
+ " , BITAND(sd.ins_srtdeel_binding, 16) prs_binding"
|
||||
+ " , CASE"
|
||||
+ " WHEN bes.bes_bestelling_retourvan_key IS NOT NULL"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END isRetour"
|
||||
+ " , bes.bes_bestelling_retourvan_key"
|
||||
+ " FROM bes_bestelopdr b"
|
||||
+ " , bes_bestelopdr_item boi"
|
||||
+ " , bes_bestelling_item bi"
|
||||
+ " , bes_bestelling bes"
|
||||
+ " , bes_srtdeel s"
|
||||
+ " , bes_srtgroep g"
|
||||
+ " , bes_v_aanwezigdiscipline d"
|
||||
+ " , bes_disc_params bdp"
|
||||
+ " , ins_srtdeel sd"
|
||||
+ " WHERE b.bes_bestelopdr_key = boi.bes_bestelopdr_key"
|
||||
+ " AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key"
|
||||
+ " AND bi.bes_srtdeel_key = s.bes_srtdeel_key"
|
||||
+ " AND bi.bes_bestelling_key = bes.bes_bestelling_key"
|
||||
+ " AND s.bes_srtgroep_key = g.bes_srtgroep_key"
|
||||
+ " AND g.ins_discipline_key = d.ins_discipline_key"
|
||||
+ " AND d.ins_discipline_key = bdp.bes_ins_discipline_key"
|
||||
+ " AND s.ins_srtdeel_key = sd.ins_srtdeel_key(+)"
|
||||
+ " AND b.bes_bestelopdr_key = " + popdr_key
|
||||
+ " AND boi.bes_bestelopdr_item_key = " + pbestelopdr_item_key;
|
||||
var oRsb = Oracle.Execute(sql);
|
||||
|
||||
// Alle artikelen/bestelregels hebben dezelfde discipline en dus dezelfde ins_mode (bes_disc_params_ins_mode).
|
||||
var ins_mode = oRsb("bes_disc_params_ins_mode").Value;
|
||||
// Als de ins_mode "Niet van toepassing(0)" is, dan zijn we direct klaar.
|
||||
if (ins_mode == 0) return;
|
||||
|
||||
var bestelling_item_key = oRsb("bes_bestelling_item_key").Value;
|
||||
var ins_mode = oRsb("bes_disc_params_ins_mode").Value;
|
||||
var ins_srtdeel_key = oRsb("ins_srtdeel_key").Value || -1;
|
||||
var prs_perslid_key_voor = oRsb("prs_perslid_key_voor").Value;
|
||||
var afd_binding = oRsb("afd_binding").Value == 8;
|
||||
var prs_binding = oRsb("prs_binding").Value == 16;
|
||||
var isRetour = oRsb("isRetour").Value == 1;
|
||||
var bes_bestelling_retourvan_key = oRsb("bes_bestelling_retourvan_key").Value;
|
||||
|
||||
if (!isRetour && ins_mode > 0 && ins_srtdeel_key < 0)
|
||||
abort_with_warning(L("lcl_bes_notlinkedto_obj_type"));
|
||||
|
||||
var freeobj_params = {retour: isRetour};
|
||||
if (isRetour)
|
||||
{
|
||||
sql_r = "SELECT boi.bes_bestelopdr_key"
|
||||
+ " FROM bes_bestelling_item bi"
|
||||
+ " , bes_bestelopdr_item boi"
|
||||
+ " WHERE bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key"
|
||||
+ " AND bi.bes_bestelling_key = " + bes_bestelling_retourvan_key;
|
||||
oRs_r = Oracle.Execute(sql_r);
|
||||
freeobj_params.bestelopdr_key = oRs_r("bes_bestelopdr_key").Value;
|
||||
oRs_r.Close();
|
||||
}
|
||||
|
||||
// De scope is vooralsnog alleen de functionaliteit waarbij de objecten al bestaan in FACILITOR (ins_deel records) (DJIN#41674).
|
||||
//if (ins_mode == 1 && paantalontv > 0)
|
||||
//{ // Aanmaken objecten.
|
||||
// // TODO: Objecten vanuit bestellingen kunnen aanmaken voordat deze objecten worden gekoppeld.
|
||||
//}
|
||||
|
||||
// Koppelen van objecten.
|
||||
var sql_freeobj = bes.getMatchObjectsSql(ins_srtdeel_key, bestelling_item_key, freeobj_params);
|
||||
sql = "SELECT ins_deel_key"
|
||||
+ " , ins_alg_ruimte_key"
|
||||
+ " , ins_alg_ruimte_type"
|
||||
+ " FROM (" + sql_freeobj + ")"
|
||||
+ " WHERE ROWNUM <= (" + Math.abs(paantalontv) + ")"
|
||||
+ " ORDER BY ins_deel_key"
|
||||
+ (isRetour
|
||||
? " DESC"
|
||||
: "");
|
||||
var oRsi = Oracle.Execute(sql);
|
||||
while (!oRsi.eof)
|
||||
{
|
||||
ins_deel_key = oRsi("ins_deel_key").Value;
|
||||
|
||||
if (paantalontv > 0)
|
||||
{
|
||||
// Object koppelen.
|
||||
sql = "UPDATE ins_deel"
|
||||
+ " SET ins_alg_ruimte_key_org = " + oRsi("ins_alg_ruimte_key").Value
|
||||
+ " , ins_alg_ruimte_type_org = '" + oRsi("ins_alg_ruimte_type").Value + "'"
|
||||
+ " , ins_alg_ruimte_key = " + (prs_binding? prs_perslid_key_voor : new Perslid(prs_perslid_key_voor).prs_afdeling_key())
|
||||
+ " , ins_alg_ruimte_type = " + (prs_binding? "'P'" : "'A'")
|
||||
+ " , bes_bestelopdr_key = " + popdr_key
|
||||
+ " WHERE ins_deel_key = " + ins_deel_key;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Object loskoppelen.
|
||||
sql = "UPDATE ins_deel"
|
||||
+ " SET ins_alg_ruimte_key_org = NULL"
|
||||
+ " , ins_alg_ruimte_type_org = NULL"
|
||||
+ " , ins_alg_ruimte_key = ins_alg_ruimte_key_org"
|
||||
+ " , ins_alg_ruimte_type = ins_alg_ruimte_type_org"
|
||||
+ " , bes_bestelopdr_key = NULL"
|
||||
+ " WHERE ins_deel_key = " + ins_deel_key;
|
||||
}
|
||||
Oracle.Execute(sql);
|
||||
oRsi.MoveNext();
|
||||
}
|
||||
oRsi.Close();
|
||||
oRsb.Close();
|
||||
},
|
||||
autoapprovefactuur:
|
||||
function (opdr_key)
|
||||
{ // Zijn er bijbehorende facturen die al zijn ingevoerd met de status "Ingevoerd(2)" die nog geapproved moeten worden?
|
||||
@@ -68,6 +309,7 @@
|
||||
case 6: { statustekst = L("lcl_bes_geleverd"); break; }
|
||||
case 7: { statustekst = L("lcl_bes_verwerkt"); break; }
|
||||
case 8: { statustekst = L("lcl_bes_is_bescan"); break; }
|
||||
case 9: { statustekst = L("lcl_bes_ontvangen"); break; }
|
||||
}
|
||||
if (__Logging > 0)
|
||||
statustekst += " ("+String(p)+")";
|
||||
@@ -132,7 +374,9 @@
|
||||
+ " , bes_disc_params_maxartikel"
|
||||
+ " , bes_disc_params_kpautorisatie"
|
||||
+ " , bes_disc_params_for_others"
|
||||
+ " , bes_disc_params_freeartikel"
|
||||
+ " , bes_disc_params_fe_confirm"
|
||||
+ " , bes_disc_params_bestelmode"
|
||||
+ " , bes_disc_params_fotomode"
|
||||
+ " FROM bes_discipline bd, bes_disc_params bdp"
|
||||
+ " WHERE bd.ins_discipline_key = " + disc_key
|
||||
+ " AND bdp.bes_ins_discipline_key = bd.ins_discipline_key";
|
||||
@@ -165,7 +409,10 @@
|
||||
maxartikel : oRs("bes_disc_params_maxartikel").Value? oRs("bes_disc_params_maxartikel").Value : -1,
|
||||
kpautorisatie : oRs("bes_disc_params_kpautorisatie").Value == 1,
|
||||
disc_params_for_others : oRs("bes_disc_params_for_others").Value == 1,
|
||||
isFreeArticle : oRs("bes_disc_params_freeartikel").Value == 1, // {0=ouderwets, 1=vrij artikelen, 2=met suggest voor bestaande (future)}
|
||||
disc_params_fe_confirm : oRs("bes_disc_params_fe_confirm").Value == 1,
|
||||
bestelmode : oRs("bes_disc_params_bestelmode").Value, // 0=ouderwets artikelselector, 1=vrij artikelen, 2=bestellijst
|
||||
fotomode : oRs("bes_disc_params_fotomode").Value, // 0=ouderwets bij kiezen, 1=ook in bestellijst
|
||||
isFreeArticle : oRs("bes_disc_params_bestelmode").Value == 1,
|
||||
can_concept : oRs("bes_disc_params_herfiat").Value > 0 // 5.1.2 functionaliteit
|
||||
}
|
||||
oRs.Close();
|
||||
@@ -411,6 +658,10 @@
|
||||
+ " , m.mld_adres_key"
|
||||
+ " , b.bes_bestelling_leverdatum"
|
||||
+ " , b.bes_bestelling_retourvan_key"
|
||||
+ " , prs.getfiatteur (b.prs_kostenplaats_key, -1, " + staffel_info.totaalbedrag + ", sg.ins_discipline_key) fiatteur_kp_key"
|
||||
+ " , kg.prs_perslid_key fiatteur_kpg_key"
|
||||
+ " , kg.prs_kostenplaatsgrp_fiat2_key"
|
||||
+ " , kg.prs_kostenplaatsgrp_fiat3_key"
|
||||
+ " , b.bes_bestelling_fiat_user"
|
||||
+ " , b.bes_bestelling_korting"
|
||||
+ " , b.bes_bestelling_levkosten"
|
||||
@@ -428,9 +679,22 @@
|
||||
+ " FROM bes_bestelling b"
|
||||
+ " , prs_perslid p"
|
||||
+ " , mld_adres m"
|
||||
+ " , bes_bestelling_item bi"
|
||||
+ " , bes_srtdeel sd"
|
||||
+ " , bes_srtgroep sg"
|
||||
+ " , prs_kostenplaats k"
|
||||
+ " , prs_kostenplaatsgrp kg"
|
||||
+ " WHERE b.bes_bestelling_key = " + bes_key
|
||||
+ " AND p.prs_perslid_key = b.prs_perslid_key"
|
||||
+ " AND m.mld_adres_key(+) = b.mld_adres_key_lev";
|
||||
+ " AND m.mld_adres_key(+) = b.mld_adres_key_lev"
|
||||
+ " AND b.bes_bestelling_key = bi.bes_bestelling_key"
|
||||
+ " AND bi.bes_bestelling_item_key = (SELECT MAX(bi2.bes_bestelling_item_key)"
|
||||
+ " FROM bes_bestelling_item bi2"
|
||||
+ " WHERE bi2.bes_bestelling_key = " + bes_key + ")"
|
||||
+ " AND bi.bes_srtdeel_key = sd.bes_srtdeel_key"
|
||||
+ " AND sd.bes_srtgroep_key = sg.bes_srtgroep_key"
|
||||
+ " AND b.prs_kostenplaats_key = k.prs_kostenplaats_key(+)" // kostenplaats van de opdracht kan leeg zijn
|
||||
+ " AND k.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key(+)";
|
||||
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (oRs.Eof)
|
||||
@@ -454,7 +718,11 @@
|
||||
afleverruimte : oRs("bes_bestelling_plaats").Value,
|
||||
rfoDeliverydate : new Date(oRs("bes_bestelling_leverdatum").Value),
|
||||
rfoRetourVan : oRs("bes_bestelling_retourvan_key").Value,
|
||||
bes_bestelling_fiat_user : oRs("bes_bestelling_fiat_user").Value, // degene die al geweest is
|
||||
fiatteur_kp_key : oRs("fiatteur_kp_key").Value || -1,
|
||||
fiatteur_kpg_key : oRs("fiatteur_kpg_key").Value || -1,
|
||||
fiatteur2_kpg_key : oRs("prs_kostenplaatsgrp_fiat2_key").Value || -1,
|
||||
fiatteur3_kpg_key : oRs("prs_kostenplaatsgrp_fiat3_key").Value || -1,
|
||||
bes_bestelling_fiat_user : oRs("bes_bestelling_fiat_user").Value, // Degene als laatste heeft gefiatteerd.
|
||||
rfoBesKosten : oRs("bes_bestelling_korting").Value,
|
||||
rfoLevKosten : oRs("bes_bestelling_levkosten").Value,
|
||||
rfoOpmerking : oRs("bes_bestelling_opmerking").Value,
|
||||
@@ -481,7 +749,7 @@
|
||||
// Merk op dat het datamodel bestellingen uit meerdere catalogi ondersteund maar
|
||||
// de interface niet. Daarom kan hieronder de MAX(bsg.ins_discipline_key) om <20><>n record te krijgen
|
||||
var sql = "SELECT MAX(bsg.ins_discipline_key) ins_discipline_key"
|
||||
+ " , prs.getfiatteur (" + bes_bestelling.kostenplaats_key + ", " + exclude_fiatter + ", " + staffel_info.totaalbedrag + ", MAX(bsg.ins_discipline_key)) fiatteur_key"
|
||||
+ " , prs.nextfiatteur(" + bes_key + ", 'BES', COALESCE(" + bes_bestelling.bes_bestelling_fiat_user + ", -1)) fiatteur_key"
|
||||
+ " , SUM(bi.bes_bestelling_item_aantal * bi.bes_bestelling_item_prijs) totaal"
|
||||
+ " , SUM(bi.bes_bestelling_item_aantalontv) aantalontv"
|
||||
+ " , MAX(bsg.bes_srtgroep_key) bes_srtgroep_key" // Wordt gebruikt tbv. singlegroep en dan is er maar eentje
|
||||
@@ -510,7 +778,7 @@
|
||||
shared.internal_error("BES: no item lines.");
|
||||
|
||||
bes_bestelling.dis_key = oRs("ins_discipline_key").Value;
|
||||
bes_bestelling.fiatteur_key = oRs("fiatteur_key").Value; // degene die het moet doen
|
||||
bes_bestelling.fiatteur_key = oRs("fiatteur_key").Value; // De volgende fiatteur. Degene die het moet doen.
|
||||
bes_bestelling.srtgroep = oRs("bes_srtgroep_key").Value;
|
||||
bes_bestelling.singlegroep = oRs("singlegroep").Value == 1;
|
||||
bes_bestelling.inclBTW = oRs("inclBTW").Value || 0;
|
||||
@@ -611,6 +879,7 @@
|
||||
+ " , b.bes_bestelopdr_delivery_opmerk"
|
||||
+ " , b.bes_bestelopdr_korting"
|
||||
+ " , b.bes_bestelopdr_levkosten"
|
||||
+ " , b.bes_bestelopdr_flag"
|
||||
+ " , bes_bestelopdr_status"
|
||||
+ " , (SELECT ks.prs_kostensoort_btw"
|
||||
+ " FROM prs_kostensoort ks"
|
||||
@@ -659,7 +928,8 @@
|
||||
perslid_key : oRs("prs_perslid_key").Value,
|
||||
dis_key : oRs("ins_discipline_key").Value,
|
||||
korting : parseFloat((oRs("bes_bestelopdr_korting").Value? oRs("bes_bestelopdr_korting").Value : 0).toFixed(2)),
|
||||
levkosten : parseFloat((oRs("bes_bestelopdr_levkosten").Value? oRs("bes_bestelopdr_levkosten").Value : 0).toFixed(2))
|
||||
levkosten : parseFloat((oRs("bes_bestelopdr_levkosten").Value? oRs("bes_bestelopdr_levkosten").Value : 0).toFixed(2)),
|
||||
flag : oRs("bes_bestelopdr_flag").Value
|
||||
}
|
||||
if(oRs("bes_bestelopdr_status").Value == 6 && oRs("bes_bestelling_retourvan_key").Value > 0)
|
||||
bes_bestelopdr.statustxt = L("lcl_bes_collected");
|
||||
@@ -700,8 +970,8 @@
|
||||
function _func_enabled_bestelling(bes_bestelling, params) // bes_bestelling is een bestelling_info hash
|
||||
{
|
||||
params = params || {};
|
||||
var isVerantwoordelijke = (bes_bestelling.fiatteur_key == user_key || user.isCollega(bes_bestelling.fiatteur_key));
|
||||
isVerantwoordelijke |= (bes_bestelling.bes_bestelling_fiat_user == user_key || user.isCollega(bes_bestelling.bes_bestelling_fiat_user));
|
||||
var isVerantwoordelijke = user.isCollega(bes_bestelling.fiatteur_key);
|
||||
isVerantwoordelijke |= user.isCollega(bes_bestelling.bes_bestelling_fiat_user);
|
||||
|
||||
var bresult = user.func_enabled2("BES",
|
||||
{ ins_discipline_key: bes_bestelling.dis_key,
|
||||
@@ -741,7 +1011,7 @@
|
||||
bresult.canReadFOF = bresult.canRead("WEB_BESFOF");
|
||||
bresult.canReadBOF = bresult.canRead("WEB_BESBOF");
|
||||
|
||||
var eigenBestelling = bes_bestelling.perslid_key == user_key || user.isCollega(bes_bestelling.perslid_key);
|
||||
var eigenBestelling = user.isCollega(bes_bestelling.perslid_key);
|
||||
// Als ik nog voor voor_wijzig // voor_annuleer zit mag de fe vaak nog wel wijzigen/ annuleren
|
||||
var voor_annuleer = bes_bestelling.annuleer_tot && bes_bestelling.annuleer_tot > (new Date);
|
||||
var voor_wijzig = bes_bestelling.wijzig_tot && bes_bestelling.wijzig_tot > (new Date);
|
||||
@@ -753,7 +1023,8 @@
|
||||
bresult.canSubmit = false; // Echt bestellen (vaak automatisch), maakt opdracht aan
|
||||
bresult.canApprove = false; // Fiatteren financieel
|
||||
bresult.canDelete = false; // Algemeen verwijderen
|
||||
bresult.canFactuur = false; // Facturen bekijken
|
||||
bresult.canFactuur = false; // Facturen bekijken
|
||||
bresult.canConfirm = false; // FE Bevestigen ontvangst.
|
||||
// TODO: Hoe is retour functie-autorisatie afhankelijk? canWrite("WEB_BESUSE") || canWrite("WEB_BESFOF")?
|
||||
var bes_disc_info = bes.disc_info(bes_bestelling.dis_key); // alle discipline informatie
|
||||
var _canRetour = (bes_disc_info.disc_params_retour == 1 && bes_bestelling.rfoRetourVan == null) &&
|
||||
@@ -766,6 +1037,11 @@
|
||||
bresult.canMainChange = false; // 'Bovenste stuk', voormalig lower_part
|
||||
bresult.canItemsChange = false; // Mag ik toevoegen en aantallen verhogen
|
||||
|
||||
var eigenBestelling = user.isCollega(bes_bestelling.perslid_key_voor);
|
||||
var fe_confirm = bes_disc_info.disc_params_fe_confirm;
|
||||
var isRetour = bes_bestelling.rfoRetourVan != null;
|
||||
var canConfirm = !isRetour && fe_confirm && eigenBestelling;
|
||||
|
||||
bresult.isChange = bes_bestelling.parent_key > 0;
|
||||
bresult.hasChange = bes_bestelling.change_key > 0;
|
||||
if (!bresult.hasChange) // Als de bestelaanvraag een change heeft mag je er niets meer mee.
|
||||
@@ -896,6 +1172,7 @@
|
||||
bresult.canMainChange = bresult.canWrite("WEB_BESFOF")||user.checkAutorisation("WEB_ORDFIN", true); // Bijvoorbeeld kostenplaats te wijzigen
|
||||
bresult.canRetourURL = _canRetour && (bes_disc_info.disc_params_retour_url != null);
|
||||
bresult.canRetourBES = _canRetour && !bresult.canRetourURL;
|
||||
bresult.canConfirm = canConfirm
|
||||
break;
|
||||
case 7: // Verwerkt (AV)
|
||||
break;
|
||||
@@ -911,33 +1188,40 @@
|
||||
func_enabled_bestelopdracht: // Wat mag ik zoal op deze specifieke bestel opdracht?
|
||||
function _func_enabled_bestelopdracht(opdr_key) // bes_bestelopdr is een bestelopdr_info hash
|
||||
{
|
||||
var sql = "SELECT DISTINCT bo.prs_perslid_key"
|
||||
var sql = "SELECT DISTINCT bo.prs_perslid_key bes_opdr_prs_key"
|
||||
+ " , g.ins_discipline_key"
|
||||
+ " , bo.bes_bestelopdr_status"
|
||||
+ " , ma.alg_locatie_key"
|
||||
+ " , bes_disc_params_fe_confirm"
|
||||
+ " FROM bes_bestelopdr bo"
|
||||
+ " , bes_bestelopdr_item boi"
|
||||
+ " , bes_bestelling_item bi"
|
||||
+ " , bes_bestelling b"
|
||||
+ " , bes_srtdeel s"
|
||||
+ " , bes_srtgroep g"
|
||||
+ " , bes_disc_params bdp"
|
||||
+ " , mld_adres ma"
|
||||
+ " WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key"
|
||||
+ " AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key"
|
||||
+ " AND bi.bes_bestelling_key = b.bes_bestelling_key"
|
||||
+ " AND bi.bes_srtdeel_key = s.bes_srtdeel_key"
|
||||
+ " AND s.bes_srtgroep_key = g.bes_srtgroep_key"
|
||||
+ " AND bo.mld_adres_key_lev = ma.mld_adres_key"
|
||||
+ " AND bdp.bes_ins_discipline_key = g.ins_discipline_key"
|
||||
+ " AND bo.bes_bestelopdr_key = " + opdr_key;
|
||||
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var perslid_key = oRs("prs_perslid_key").Value; // De aanmaker van de bestelopdracht.
|
||||
var bes_opdr_prs_key = oRs("bes_opdr_prs_key").Value; // De aanmaker van de bestelopdracht.
|
||||
var dis_key = oRs("ins_discipline_key").Value;
|
||||
var alg_locatie_key = oRs("alg_locatie_key").Value;
|
||||
var bestelopdr_status = oRs("bes_bestelopdr_status").Value;
|
||||
var disc_params_fe_confirm = oRs("bes_disc_params_fe_confirm").Value;
|
||||
oRs.Close();
|
||||
|
||||
var bresult = user.func_enabled2("BES",
|
||||
{ ins_discipline_key: dis_key,
|
||||
loc_key: alg_locatie_key,
|
||||
prs_key: perslid_key,
|
||||
prs_key: bes_opdr_prs_key,
|
||||
checkOptimistic: false, // pessimist
|
||||
isOptional: false
|
||||
}
|
||||
@@ -947,6 +1231,7 @@
|
||||
bresult.canReadAny = bresult.canRead("WEB_BESBOF") || bresult.canRead("WEB_BESBOR") || bresult.canRead("WEB_BESBAC"); // Bestel opdracht alleen zichtbaar voor backoffice
|
||||
bresult.canReadBOF = bresult.canRead("WEB_BESBOF");
|
||||
bresult.canReadBOR = bresult.canRead("WEB_BESBOR");
|
||||
bresult.canWriteFlags = bresult.canWrite("WEB_BESBOF") || bresult.canWrite("WEB_BESFOF"); // Kan ik flags aanpassen
|
||||
|
||||
// Op button niveau
|
||||
bresult.canChange = false; // Wijzigen
|
||||
@@ -1023,6 +1308,18 @@
|
||||
// Je hebt eerst totaal aantallen per staffelgroep nodig om korting van een (groeps) artikel te kunnen berekenen.
|
||||
for (var i = 0; i < srtdeel_keys.length; i++)
|
||||
{
|
||||
if (itemaantal_arr[i] == 0) // Bij een bestel_lijst zijn er heel veel met aantal 0
|
||||
{
|
||||
ItemArray.push({ item_key : srtdeel_keys[i],
|
||||
aantal : itemaantal_arr[i],
|
||||
prijs : null,
|
||||
eenheid : null,
|
||||
staffelgroep: null
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
sql = "SELECT sd.bes_staffeltabel_key staffelgroep"
|
||||
+ ", bst.bes_staffeltabel_naam staffelgroepnaam"
|
||||
+ ", COALESCE(bes.getsrtdeelprijs(sd.bes_srtdeel_key, NULL) , 0) prijs"
|
||||
@@ -1364,42 +1661,6 @@
|
||||
|
||||
},
|
||||
|
||||
getApprover: function(params)
|
||||
{ // Bepaalde de fiatteur (KP verantwoordelijke of KPG verantwoordlijke).
|
||||
// Levert altijd de eerste fiatteur op maar controleert wel alvast of (als zijn
|
||||
// budget niet echt genoeg is) of de KPG verantwoordelijke wel voldoende budget
|
||||
// heeft. Anders stokt het verderop in het proces.
|
||||
var prs_key = params.prs_key;
|
||||
var dis_key = params.dis_key;
|
||||
var kp_key = params.kp_key;
|
||||
var totaalbedrag = params.totaalbedrag;
|
||||
|
||||
var approver_key = prs.getFiatteur(kp_key, totaalbedrag > S("can_selfapprove")?prs_key:-1, totaalbedrag, dis_key);
|
||||
__Log('Eerstgevonden fiatteur: ' + approver_key);
|
||||
if (approver_key == -1) {
|
||||
// geen fiatteur gevonden, bestellen niet mogelijk
|
||||
__Log('bestelling afgebroken');
|
||||
abort_with_warning(L("lcl_bes_no_fiatteur"));
|
||||
}
|
||||
// Bij methode 3 heeft getfiatteur() al gekeken naar de profielen en heeft daarbij al
|
||||
// tot en met de kpgroepverantwoordelijke gekeken. Als de opgeleverde perslid die
|
||||
// kpgroepverantw is, ga je hier geen hogere meer vinden. Niet doen dan dus.
|
||||
if (S("prs_approvemethod") != 3 && budget.exceeds_profiel(totaalbedrag, approver_key, dis_key))
|
||||
{ // de gevonden fiatteur heeft onvoldoende profiel, is er een hogere (kpngroepverantwoordelijke)
|
||||
// Let wel: alleen controle of hij er bestaat. Wie het is doen we nog niets mee hier.
|
||||
__Log('voldoet niet');
|
||||
var nextapprover_key = prs.getFiatteur(kp_key, approver_key, totaalbedrag, dis_key);
|
||||
__Log('Vervolgensgevonden fiatteur: ' + nextapprover_key);
|
||||
if (nextapprover_key == -1 || budget.exceeds_profiel(totaalbedrag, nextapprover_key, dis_key))
|
||||
{
|
||||
__Log('voldoet ook niet');
|
||||
abort_with_warning(L("lcl_bes_exceed_limit"));
|
||||
}
|
||||
}
|
||||
return approver_key;
|
||||
},
|
||||
|
||||
|
||||
// Levert de 'Is ter fiattering aangeboden bij approver' op.
|
||||
sendNeedApprovalNotification: function(bes_key, approver)
|
||||
{
|
||||
|
||||
@@ -183,7 +183,7 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
ter_finfiattering = bes.checkFiat(bes_key, params);
|
||||
if (ter_finfiattering)
|
||||
{
|
||||
var approver_key = bes.getApprover(params);
|
||||
var approver_key = prs.getApprover(params);
|
||||
__Log("Fiatteur: " + approver_key);
|
||||
apprmessage = bes.sendNeedApprovalNotification(bes_key, approver_key);
|
||||
}
|
||||
|
||||
@@ -41,6 +41,11 @@ for (var i = 0; i < bes_key_arr.length; i++)
|
||||
rfoBesKosten: bes_bestelling.rfoBesKosten,
|
||||
rfoLevKosten: bes_bestelling.rfoLevKosten,
|
||||
fiatteur_key: bes_bestelling.fiatteur_key, // LET OP: De huidige fiatteur wordt opgehaald (Ook als de user_key een vervanger is).
|
||||
fiatteur_kp_key: bes_bestelling.fiatteur_kp_key, // De kostenplaats verantwoordelijke/fiatteur.
|
||||
fiatteur_kpg_key: bes_bestelling.fiatteur_kpg_key, // De kostenplaatsgroep verantwoordelijke/fiatteur.
|
||||
fiatteur2_kpg_key: bes_bestelling.fiatteur2_kpg_key, // De tweede kostenplaatsgroep verantwoordelijke/fiatteur.
|
||||
fiatteur3_kpg_key: bes_bestelling.fiatteur3_kpg_key, // De derde kostenplaatsgroep verantwoordelijke/fiatteur.
|
||||
bes_bestelling_fiat_user: bes_bestelling.bes_bestelling_fiat_user, // Degene als laatste heeft gefiatteerd.
|
||||
dis_key: bes_bestelling.dis_key,
|
||||
perslid_key_voor: bes_bestelling.perslid_key_voor,
|
||||
disc_params_fiatflow: bes_disc_info.disc_params_fiatflow,
|
||||
@@ -55,23 +60,70 @@ user.anything_todo_or_abort(tobeapproved > 0); // We klagen niet over enkele wel
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{
|
||||
// Blijkbaar mogen we Approve'n
|
||||
var totaal = ingesloten[i].totaal - ingesloten[i].rfoBesKosten + ingesloten[i].rfoLevKosten;
|
||||
// als het valt binnen onze limiet (of eigenlijk: degene die nu moet fiatteren als we vervanger zijn) dan zijn we klaar
|
||||
// NB: de fiatteur kan nu direct de kpg-er zijn
|
||||
|
||||
// Check welk profiel gebruikt moet worden als ik vervanger van de budgethouder ben.
|
||||
var profile_user_key = user_key;
|
||||
|
||||
if (user.isCollega(ingesloten[i].fiatteur_kp_key)) {
|
||||
profile_user_key = ingesloten[i].fiatteur_kp_key;
|
||||
}
|
||||
|
||||
var fiatbedrag = 0;
|
||||
var bijnaklaar = false;
|
||||
var fiat_key = ingesloten[i].bes_bestelling_fiat_user; // is deze opdracht al een keer gefiatterd
|
||||
|
||||
// Vrijwillige fiattering komt bij bestellingen niet voor en het totaalbedrag is groter dan 0 want er valt iets te fiatteren.
|
||||
if (!budget.exceeds_profiel(totaal, profile_user_key, ingesloten[i].dis_key) && !fiat_key) // Het valt binnen onze limiet en alleen voor de budgethouder.
|
||||
{
|
||||
fiatbedrag = budget.get_pgblimiet(profile_user_key, -1);
|
||||
bijnaklaar = true;
|
||||
}
|
||||
else // een kpgroep verantwoordelijke moet fiatteren
|
||||
{ // dat zijn wij of collega daarvan, anders was this_opdr.canApprove false geweest
|
||||
// || user.isCollega(ingesloten[i].nextfiatteur_kpg_key) // wij zijn de groepverantwoordelijke1,2,3 of de vervanger van de groepverantwoordelijke.
|
||||
if ( ingesloten[i].fiatteur3_kpg_key > 0 && user.isCollega(ingesloten[i].fiatteur3_kpg_key) )
|
||||
{
|
||||
fiatbedrag = totaal;
|
||||
bijnaklaar = true;
|
||||
}
|
||||
else if (ingesloten[i].fiatteur2_kpg_key > 0 && user.isCollega(ingesloten[i].fiatteur2_kpg_key))
|
||||
{
|
||||
fiatbedrag = S("mld_opdr_kpg_fin_limit2");
|
||||
if (totaal <= S("mld_opdr_kpg_fin_limit2"))
|
||||
{
|
||||
bijnaklaar = true;
|
||||
}
|
||||
}
|
||||
else if (ingesloten[i].fiatteur_kpg_key > 0 && user.isCollega(ingesloten[i].fiatteur_kpg_key)) // we zijn (collega van) ingesloten[i].fiatteur_kpg_key.
|
||||
{
|
||||
fiatbedrag = S("mld_opdr_kpg_fin_limit1");
|
||||
if (totaal <= S("mld_opdr_kpg_fin_limit1"))
|
||||
{
|
||||
bijnaklaar = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // budgethouder en profiel is niet toereikend.
|
||||
fiatbedrag = budget.get_pgblimiet(profile_user_key, -1);
|
||||
}
|
||||
}
|
||||
|
||||
var sql = "UPDATE bes_bestelling"
|
||||
+ " SET bes_bestelling_fiat_user = " + user_key // als we vervanger zijn wordt *onze* naam geregistrerd
|
||||
+ " SET bes_bestelling_fiatbedrag = " + fiatbedrag
|
||||
+ " , bes_bestelling_fiat_user = " + user_key // Als we vervanger zijn wordt *onze* naam geregistreerd.
|
||||
+ " WHERE bes_bestelling_key = " + ingesloten[i].bes_key;
|
||||
Oracle.Execute(sql);
|
||||
// Gequeuede berichten/notificaties en portalberichten van de approver verwijderen.
|
||||
sql = "BEGIN fac.clrnotifications ('BESAP1', " + ingesloten[i].bes_key + "); END;";
|
||||
Oracle.Execute(sql);
|
||||
|
||||
var totaal = ingesloten[i].totaal - ingesloten[i].rfoBesKosten + ingesloten[i].rfoLevKosten;
|
||||
// als het valt binnen onze limiet (of eigenlijk: degene die nu moet fiatteren als we vervanger zijn) dan zijn we klaar
|
||||
// TODO in de volgende versie (zie docu PF) meerlaags fiattering met prs.getfiatteur() vgl opdr_approve.asp
|
||||
// NB: de fiatteur kan nu direct de kpg-er zijn
|
||||
|
||||
if (!budget.exceeds_profiel(totaal, ingesloten[i].fiatteur_key, ingesloten[i].dis_key))
|
||||
if (bijnaklaar)
|
||||
{
|
||||
// Klaar met fiatteren.
|
||||
bes.setbestellingstatus(ingesloten[i].bes_key, 3); // helemaal Gefiatteerd
|
||||
bes.setbestellingstatus(ingesloten[i].bes_key, 3); // Gefiatteerd, trackt zelf BESFIT
|
||||
|
||||
// Afhankelijk van de fiatterings/acceptatie flow zijn dit de acties:
|
||||
// 1) "Fiatteur -> BESBOF": bes_disc_params_fiatflow = 0 (fiatteren en dan accepteren).
|
||||
@@ -104,15 +156,13 @@ for (var i = 0; i < ingesloten.length; i++)
|
||||
// vervolgens naar de volgende/kostenplaatsgroep fiatteur sturen
|
||||
// Fiatteringsproces moet gevolgd worden op de naam van de "voor wie" (bestelling voor)
|
||||
// Als bes_disc_params_for_others niet is gezet zijn perslid_key en perslid_key_voor identiek
|
||||
// Haal de kostenplaatsgroep verantwoordelijke/fiatteur op. De kolom b.bes_bestelling_fiat_user is gevuld met de user_key).
|
||||
// Geen methode 3 dus bedrag/ discipline hoeft er niet in. Strikt genomen wordt hier gewoon de volgende bepaald omdat we de
|
||||
// eerste uitsluiten, volgens de huidige structuren is dat de kpgverantwoordelijk maar dat is niet cruciaal.
|
||||
sql = "SELECT prs.getfiatteur (b.prs_kostenplaats_key, COALESCE (b.bes_bestelling_fiat_user, -1), NULL, NULL) kpg_fiatteur_key"
|
||||
// Haal de volgende kostenplaatsgroep verantwoordelijke/fiatteur op in de rij van drie. De kolom b.bes_bestelling_fiat_user is gevuld met de user_key.
|
||||
sql = "SELECT prs.nextfiatteur(b.bes_bestelling_key, 'BES', COALESCE(b.bes_bestelling_fiat_user, -1)) kpg_fiatteur_key"
|
||||
+ " FROM bes_bestelling b"
|
||||
+ " WHERE b.bes_bestelling_key = " + ingesloten[i].bes_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var nextapprover_key = oRs("kpg_fiatteur_key").Value;
|
||||
if (nextapprover_key == -1 || budget.exceeds_profiel(totaal, nextapprover_key, ingesloten[i].dis_key))
|
||||
if (nextapprover_key == -1)
|
||||
{ // Deze bestelling overschrijdt het mandaat van de budgethouder (kostenplaatsgroep verantwoordelijke/fiatteur) van de opgegeven kostenplaats en/of de budgethouder is onbekend.
|
||||
result.message = L("lcl_bes_exceed_limit");
|
||||
}
|
||||
|
||||
@@ -23,12 +23,13 @@ function process_besteller_info(prs_info)
|
||||
$("#bestellimiet").val(prs_info.profiel_limiet);
|
||||
|
||||
// Als er maar 1 afleveradres is, dan moet deze geselecteerd blijven (verplicht en is standaard geselecteerd).
|
||||
if ($("#delivery_place").length > 1)
|
||||
if ($("#delivery_place").length > 0)
|
||||
{
|
||||
if (prs_info.mld_adres_key > 0)
|
||||
$("#deliveryAddr").val(prs_info.mld_adres_key);
|
||||
// setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
|
||||
sgAdres.setValue(prs_info.mld_adres_key, prs_info.mld_adres_naam, false, true);
|
||||
else
|
||||
$("#deliveryAddr").val(-1);
|
||||
sgAdres.setValue(-1, "");
|
||||
}
|
||||
|
||||
$("ordernr").val("");
|
||||
|
||||
@@ -133,24 +133,60 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
|
||||
if (frontend)
|
||||
{
|
||||
var authForOwnAcoount = true;
|
||||
if (S("prs_dep_default_kpn") == 0)
|
||||
{ // Niet standaard geautoriseerd voor eigen kostenplaats. Dit hier checken
|
||||
sql = "SELECT k.prs_kostenplaats_key kpkey"
|
||||
+ " FROM prs_perslidkostenplaats pk"
|
||||
+ " , prs_v_aanwezigkostenplaats k"
|
||||
+ " WHERE pk.prs_kostenplaats_key = k.prs_kostenplaats_key(+)"
|
||||
+ " AND pk.prs_perslidkostenplaats_boeken = 1"
|
||||
+ " AND pk.prs_perslid_key = " + user_key
|
||||
+ " AND (k.prs_kostenplaats_key = " + (user.afdeling().prs_kostenplaats_key() || -1)
|
||||
+ " OR pk.prs_kostenplaats_key IS NULL)";
|
||||
// Setting "prs_default_kpn_empty": Costcentre always default empty.
|
||||
// Alleen van belang als er meerdere kostenplaatsen te selecteren zijn en als de kostenplaats verplicht is. Dit uitzoeken.
|
||||
var show_empty_kp = false;
|
||||
var kp_empty = S("prs_default_kpn_empty") == 1;
|
||||
if (bes_disc_info.discipline_kpnverplicht && kp_empty)
|
||||
{
|
||||
sql = "SELECT COUNT(*) aantal"
|
||||
+ " FROM (SELECT k.prs_kostenplaats_key kpkey"
|
||||
+ " FROM prs_v_aanwezigkostenplaats k"
|
||||
+ " , prs_perslidkostenplaats pk"
|
||||
+ " WHERE pk.prs_kostenplaats_key = k.prs_kostenplaats_key"
|
||||
+ " AND pk.prs_perslidkostenplaats_boeken = 1"
|
||||
+ " AND pk.prs_perslid_key = " + user_key
|
||||
+ " AND (k.prs_kostenplaats_eind IS NULL"
|
||||
+ " OR k.prs_kostenplaats_eind > SYSDATE)"
|
||||
+ " UNION"
|
||||
+ " SELECT k.prs_kostenplaats_key kpkey"
|
||||
+ " FROM prs_perslid p"
|
||||
+ " , prs_afdeling a"
|
||||
+ " , prs_v_aanwezigkostenplaats k"
|
||||
+ " WHERE p.prs_afdeling_key = a.prs_afdeling_key"
|
||||
+ " AND p.prs_perslid_key = " + user_key
|
||||
+ " AND a.prs_kostenplaats_key = k.prs_kostenplaats_key"
|
||||
+ " AND (k.prs_kostenplaats_eind IS NULL OR k.prs_kostenplaats_eind > SYSDATE)"
|
||||
+ " )"
|
||||
oRs = Oracle.Execute(sql);
|
||||
authForOwnAcoount = (!oRs.eof);
|
||||
show_empty_kp = oRs("aantal").Value > 0;
|
||||
oRs.close();
|
||||
}
|
||||
if (user.afdeling().prs_kostenplaats_key() && authForOwnAcoount)
|
||||
bes_bestelling.kostenplaats_key = user.afdeling().prs_kostenplaats_key();
|
||||
|
||||
if (show_empty_kp)
|
||||
bes_bestelling.kostenplaats_key = -1;
|
||||
else
|
||||
bes_bestelling.kostenplaats_key = -1;
|
||||
{
|
||||
// Setting "prs_dep_default_kpn": A user can make costs for his own department by default {0=no | 1=yes}
|
||||
var authForOwnAcoount = true;
|
||||
if (S("prs_dep_default_kpn") == 0)
|
||||
{ // Niet standaard geautoriseerd voor eigen kostenplaats. Dit hier checken
|
||||
sql = "SELECT k.prs_kostenplaats_key kpkey"
|
||||
+ " FROM prs_perslidkostenplaats pk"
|
||||
+ " , prs_v_aanwezigkostenplaats k"
|
||||
+ " WHERE pk.prs_kostenplaats_key = k.prs_kostenplaats_key(+)"
|
||||
+ " AND pk.prs_perslidkostenplaats_boeken = 1"
|
||||
+ " AND pk.prs_perslid_key = " + user_key
|
||||
+ " AND (k.prs_kostenplaats_key = " + (user.afdeling().prs_kostenplaats_key() || -1)
|
||||
+ " OR pk.prs_kostenplaats_key IS NULL)";
|
||||
oRs = Oracle.Execute(sql);
|
||||
authForOwnAcoount = (!oRs.eof);
|
||||
}
|
||||
if (user.afdeling().prs_kostenplaats_key() && authForOwnAcoount)
|
||||
bes_bestelling.kostenplaats_key = user.afdeling().prs_kostenplaats_key();
|
||||
else
|
||||
bes_bestelling.kostenplaats_key = -1;
|
||||
}
|
||||
|
||||
bes_bestelling.perslid_key = user_key;
|
||||
bes_bestelling.perslid_key_voor = user_key;
|
||||
@@ -211,6 +247,10 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
var psrt_keys = getQParamIntArray("ps", []); // array met srtdeel_key's
|
||||
var pamounts = getQParamIntArray("pn", []); // array met aantallen
|
||||
|
||||
if (bes_key > 0 && bes_disc_info.bestelmode == 2) // Bij *wijzigen* altijd gewone interface
|
||||
bes_disc_info.bestelmode = 0;
|
||||
var auto_bestellijst = bes_disc_info.bestelmode == 2;
|
||||
|
||||
bes_bestelling.flex_defaults = {};
|
||||
var flex_defaults = getQParam("flex_defaults", "").split("&"); // flex_defaults=bestellingid=12345
|
||||
for (var i in flex_defaults)
|
||||
@@ -233,10 +273,19 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
var user_kpnaam = "<%=safe.jsstring(user.afdeling().kpn_naam())%>";
|
||||
var inclBTW = <%=bes_bestelling.inclBTW%> == 1;
|
||||
var maxartikel = <%=bes_disc_info.maxartikel%>;
|
||||
var fotomode = <%=bes_disc_info.fotomode%>;
|
||||
var bestelmode = <%=bes_disc_info.bestelmode%>;
|
||||
</script>
|
||||
<% if (bes_key > 0)
|
||||
{
|
||||
isCorrectie = generateDetails(bes_key, true); // oude include details.inc
|
||||
isCorrectie = generateDetails(bes_key, {edit: true}); // oude include details.inc
|
||||
}
|
||||
else if (auto_bestellijst)
|
||||
{
|
||||
generateDetails(bes_key, { edit: true,
|
||||
auto_bestellijst: true,
|
||||
disc_key: bes_bestelling.dis_key
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -255,7 +304,10 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
generateDetails(bes_key, true, psrt_keys, pamounts);
|
||||
generateDetails(bes_key, { edit: true,
|
||||
psrt_keys: psrt_keys,
|
||||
pamounts: pamounts
|
||||
});
|
||||
}
|
||||
} %>
|
||||
<script type="text/javascript">
|
||||
@@ -371,6 +423,9 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
<% if (from_punch) { %>
|
||||
AddAllItems(false, false); // Not editable, don't show received amount
|
||||
StaffelKortingResult(); // Wel even totaal tonen
|
||||
<% }
|
||||
else if (auto_bestellijst) { %>
|
||||
AddAllItems(true, false); // Editable, don't show received amount
|
||||
<% }
|
||||
else if (bes_key > 0 || from_voorraad)
|
||||
{
|
||||
@@ -424,7 +479,7 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
if (maxArtikelReached())
|
||||
return false;
|
||||
|
||||
url = "../Bes/sel_favourites.asp?disc_key=<%=bes_bestelling.dis_key%>";
|
||||
url = "../bes/sel_favourites.asp?disc_key=<%=bes_bestelling.dis_key%>";
|
||||
FcltMgr.openModalDetail(url, "<%=L("lcl_bes_favour_title")%>",
|
||||
{
|
||||
callback: function (data)
|
||||
@@ -480,7 +535,7 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
return;
|
||||
}
|
||||
|
||||
url = "../Bes/addFavourites.asp" + "?srtdeel_key=" + bes_item_info.srtdeel_key
|
||||
url = "../bes/addFavourites.asp" + "?srtdeel_key=" + bes_item_info.srtdeel_key
|
||||
+ "&disc_key=<%=bes_bestelling.dis_key%>";
|
||||
FcltMgr.openModalDetail(url, '<%=L("lcl_bes_favour_list")%>');
|
||||
}
|
||||
@@ -812,55 +867,58 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
}
|
||||
else // Gewoon artikel uit catalogus kiezen
|
||||
{
|
||||
FCLTartikelgroepselector("srtgroep",
|
||||
"sgSrtgroep",
|
||||
{ label: L("lcl_bes_srtgroup"),
|
||||
artikelgroepKey: bes_bestelling.srtgroep,
|
||||
disc_key: bes_bestelling.dis_key,
|
||||
onChange: bes_disc_info.isFreeArticle?null:"onChangeArtikelgroep",
|
||||
required: bes_disc_info.isFreeArticle,
|
||||
extraParamField: "singlegroep",
|
||||
extracode: "S",
|
||||
readonly: (bes_key > 0 && bes_bestelling.singlegroep)
|
||||
});
|
||||
|
||||
sql = " SELECT bs.bes_staffeltabel_key"
|
||||
+ ", bs.bes_staffeltabel_naam"
|
||||
+ " FROM bes_staffeltabel bs"
|
||||
+ " WHERE EXISTS (SELECT sd.bes_srtdeel_key"
|
||||
+ " FROM bes_v_aanwezigsrtgroep sg"
|
||||
+ ", bes_v_aanwezigsrtdeel sd"
|
||||
+ " WHERE sg.ins_discipline_key = " + bes_bestelling.dis_key
|
||||
+ " AND sg.bes_srtgroep_key = sd.bes_srtgroep_key"
|
||||
+ " AND sd.bes_staffeltabel_key = bs.bes_staffeltabel_key)"
|
||||
+ " ORDER BY 2";
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
if (bes_disc_info.bestelmode == 0) // Gewone artikel selector
|
||||
{
|
||||
FCLTselector("staffelgroep", sql, // filter op suggest besitem
|
||||
{ label: L("lcl_bes_staffelgroep"),
|
||||
emptyOption: ""
|
||||
}
|
||||
);
|
||||
}
|
||||
else
|
||||
{ // Staffelgroep hidden weergeven met -1 als waarde (geen staffelgroep geselecteerd)
|
||||
%> <input type="hidden" id="staffelgroep" tabindex="-1" class="fldselect" value="-1">
|
||||
<% }
|
||||
oRs.Close();
|
||||
FCLTartikelgroepselector("srtgroep",
|
||||
"sgSrtgroep",
|
||||
{ label: L("lcl_bes_srtgroup"),
|
||||
artikelgroepKey: bes_bestelling.srtgroep,
|
||||
disc_key: bes_bestelling.dis_key,
|
||||
onChange: bes_disc_info.isFreeArticle?null:"onChangeArtikelgroep",
|
||||
required: bes_disc_info.isFreeArticle,
|
||||
extraParamField: "singlegroep",
|
||||
extracode: "S",
|
||||
readonly: (bes_key > 0 && bes_bestelling.singlegroep)
|
||||
});
|
||||
|
||||
FCLTbesitemselector("besitem",
|
||||
"sgBesItem",
|
||||
{ label: L("lcl_bes_srtdeel"),
|
||||
bessrtdeel_key: -1,
|
||||
disc_key: bes_bestelling.dis_key,
|
||||
readonly: !this_bes.canItemsChange,
|
||||
urlAdd: [{urlParam: "srtgroep_key", field: "srtgroep"},
|
||||
{urlParam: "staffel_key", field: "staffelgroep"}],
|
||||
onChange: "load_item_info",
|
||||
favouritelist: true
|
||||
sql = " SELECT bs.bes_staffeltabel_key"
|
||||
+ ", bs.bes_staffeltabel_naam"
|
||||
+ " FROM bes_staffeltabel bs"
|
||||
+ " WHERE EXISTS (SELECT sd.bes_srtdeel_key"
|
||||
+ " FROM bes_v_aanwezigsrtgroep sg"
|
||||
+ ", bes_v_aanwezigsrtdeel sd"
|
||||
+ " WHERE sg.ins_discipline_key = " + bes_bestelling.dis_key
|
||||
+ " AND sg.bes_srtgroep_key = sd.bes_srtgroep_key"
|
||||
+ " AND sd.bes_staffeltabel_key = bs.bes_staffeltabel_key)"
|
||||
+ " ORDER BY 2";
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
FCLTselector("staffelgroep", sql, // filter op suggest besitem
|
||||
{ label: L("lcl_bes_staffelgroep"),
|
||||
emptyOption: ""
|
||||
}
|
||||
);
|
||||
}
|
||||
else
|
||||
{ // Staffelgroep hidden weergeven met -1 als waarde (geen staffelgroep geselecteerd)
|
||||
%> <input type="hidden" id="staffelgroep" tabindex="-1" class="fldselect" value="-1">
|
||||
<% }
|
||||
oRs.Close();
|
||||
|
||||
FCLTbesitemselector("besitem",
|
||||
"sgBesItem",
|
||||
{ label: L("lcl_bes_srtdeel"),
|
||||
bessrtdeel_key: -1,
|
||||
disc_key: bes_bestelling.dis_key,
|
||||
readonly: !this_bes.canItemsChange,
|
||||
urlAdd: [{urlParam: "srtgroep_key", field: "srtgroep"},
|
||||
{urlParam: "staffel_key", field: "staffelgroep"}],
|
||||
onChange: "load_item_info",
|
||||
favouritelist: true
|
||||
});
|
||||
}
|
||||
// Het informatieblok van een geselecteerd artikel
|
||||
%>
|
||||
<tr>
|
||||
@@ -892,6 +950,9 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
<td colspan="2" class="iteminfo2" title="<%=L("lcl_bes_multiple")%>" id="veelvoud_text"></td></tr>
|
||||
<tr id="stock_tr" style="display:none">
|
||||
<td colspan="2" class="iteminfo2" title="<%=L("lcl_bes_stock")%>"><%=L("lcl_bes_stock")%>: <span id="stock_text"></span></td></tr>
|
||||
<% if (bes_disc_info.bestelmode == 0) // Gewone artikel selector
|
||||
{
|
||||
%>
|
||||
<tr id="aantal_tr" style="display:none">
|
||||
<td><label><%=L("lcl_bes_amount")%>:</label><td><input onfocus="this.select()" class="fldbescnt" type="text" id="aantal_text" value="1"></td></tr>
|
||||
<tr id="buttons_tr" style="display:none"><td colspan="2">
|
||||
@@ -902,6 +963,9 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
CreateButtons(buttons, { showIcons: true })
|
||||
%></div>
|
||||
</td></tr>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -917,6 +981,13 @@ else // nieuwe bestelling. Defaults bepalen
|
||||
<tr>
|
||||
<th></th>
|
||||
<!--<th><%=L("lcl_bes_srtgroup")%></th>-->
|
||||
<% if (bes_disc_info.fotomode == 1) // Foto erbij
|
||||
{
|
||||
%>
|
||||
<th><%=L("lcl_bes_image")%></th>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<th><%=L("lcl_bes_srtdeel_nr")%></th>
|
||||
<th><%=L("lcl_bes_srtdeel")%></th>
|
||||
<th><%=L("lcl_bes_unity")%></th>
|
||||
|
||||
@@ -47,6 +47,7 @@ var flexval_string_arr = getFParamArray("flexval_string",[]);
|
||||
var flexdeel_string_arr = getFParamArray("flexdeel_string",[]);
|
||||
var flexitem_string_unsafe = getFParamArray("flexitem_string",[]); // kan ook 'new1' zijn voor nieuwe opdrachten
|
||||
var srtdeel_keys = getFParamIntArray("srtdeel_keys",[]); // Bij isFree ook voor bewerken bestaande
|
||||
var isPunchout = (bes_disc_info.disc_params_punchouturl && !bes_disc_info.isFreeArticle) ? 1 : 0;
|
||||
|
||||
if (bes_disc_info.isFreeArticle)
|
||||
{ // Moeten we de nieuwe srtdeel-en nog aanmaken
|
||||
@@ -185,7 +186,7 @@ if (!isCorrectie)
|
||||
// De melder van de melding (prs_key) mag niet zelf goedkeuren boven het bedrag can_selfapprove.
|
||||
// staffel_info.totaalbedrag > can_selfapprove => prs_key als exclude key meegeven.
|
||||
// prs_key heeft altijd een waarde (prs_key > 0) (required).
|
||||
approver_key = bes.getApprover(params);
|
||||
approver_key = prs.getApprover(params);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -308,13 +309,17 @@ currentKenmerkenSQL = " SELECT kb.bes_kenmerk_key"
|
||||
+ " WHERE k.bes_kenmerk_key = kb.bes_kenmerk_key"
|
||||
+ " AND bes_kenmerkbestell_verwijder IS NULL"
|
||||
+ " AND bes_bestelling_key = " + bes_key;
|
||||
|
||||
allKenmerkenSQL = "SELECT " + lcl.xsql('t.bes_srtkenmerk_omschrijving', 't.bes_srtkenmerk_key') +" kenmerk_omschrijving"
|
||||
+ ", b.bes_srtkenmerk_key srtkenmerk_key"
|
||||
+ ", t.bes_srtkenmerk_kenmerktype kenmerk_kenmerktype"
|
||||
+ ", t.bes_srtkenmerk_systeem kenmerk_systeem"
|
||||
+ ", k.bes_kenmerk_toonbaar kenmerk_readonly"
|
||||
+ ", k.bes_kenmerk_uniek kenmerk_uniek"
|
||||
+ ", fac_kenmerkdomein_key"
|
||||
+ " FROM bes_kenmerk b, "
|
||||
+ " FROM bes_kenmerk k, "
|
||||
+ " bes_srtkenmerk t"
|
||||
+ " WHERE b.bes_srtkenmerk_key = t.bes_srtkenmerk_key"
|
||||
+ " AND b.bes_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */
|
||||
+ " WHERE k.bes_srtkenmerk_key = t.bes_srtkenmerk_key"
|
||||
+ " AND k.bes_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */
|
||||
|
||||
var flextrack = saveFlexKenmerken(bes_key, { kenmerkTable: "bes_kenmerkbestell",
|
||||
kenmerkParentKey : "bes_bestelling_key",
|
||||
@@ -440,7 +445,7 @@ if (status == 1 || status == 2 || status == 3 || status == 4 || status == 5)
|
||||
// Nu kan daadwerkelijk de juiste status gezet worden.
|
||||
|
||||
// Afhankelijk van de fiatterings/acceptatie flow zijn dit de acties:
|
||||
// 1) "Fiatteur -> "BESBOF": bes_disc_params_fiatflow = 0 (fiatteren en dan accepteren).
|
||||
// 1) "Fiatteur -> BESBOF": bes_disc_params_fiatflow = 0 (fiatteren en dan accepteren).
|
||||
// Als er gefiatter moet worden dan kostenplaats verantwoordelijke een notificatie sturen. De status blijft "Nieuw(2)".
|
||||
// Als er niet meer gefiatteerd moet worden, moet er gekeken worden of er geaccepteerd dient te worden.
|
||||
// Als er geaccepteerd dient te worden moet de status naar "Gefiatteerd(3)".
|
||||
@@ -597,7 +602,7 @@ else if (oldStatus == 6) // 6=geleverd
|
||||
+ " nvl(bes_bestelopdr_item_aantal, 0)"
|
||||
+ " - " + old_aantal[item_coll[itemregelnr]]
|
||||
+ " + " + amount_arr[itemregelnr]
|
||||
+ ", bes_bestelopdr_item_prijs = bes.calcbesartikelkortingsprijs(" + item_coll[itemregelnr] + ")"
|
||||
+ ", bes_bestelopdr_item_prijs = bes.calcbesartikelkortingsprijs(" + item_coll[itemregelnr] + ", " + isPunchout + ")"
|
||||
+ " WHERE bes_bestelopdr_item_key ="
|
||||
+ " (SELECT bes_bestelopdr_item_key"
|
||||
+ " FROM bes_bestelling_item"
|
||||
|
||||
@@ -44,12 +44,14 @@
|
||||
// xml genereren als bes_srtdeel_opmaat = 1
|
||||
sql = "SELECT bes_srtdeel_preview"
|
||||
+ ", bes_srtdeel_prsflex"
|
||||
+ ", " + lcl.xsqla('bes_srtdeel_omschrijving', 'bes_srtdeel_key')
|
||||
+ " FROM bes_srtdeel"
|
||||
+ " WHERE bes_srtdeel_key = " + srtdeel_key
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof) {
|
||||
preview = oRs("bes_srtdeel_preview").value||0;
|
||||
prsflex = oRs("bes_srtdeel_prsflex").value||0;
|
||||
var desc = oRs("bes_srtdeel_omschrijving").Value;
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -74,7 +76,8 @@ function doSubmit()
|
||||
if (window.document.getElementById("k" + i + "val")) {
|
||||
|
||||
var kval = window.document.getElementById("k" + i + "val")
|
||||
if (kval.value != "")
|
||||
var tp = window.document.getElementById('k' + i + 't').value;
|
||||
if ((tp && tp != 'R' && tp != 'S' && kval.value != "") || (tp && (tp == 'R' || tp == 'S') && kval.value != -1))
|
||||
{
|
||||
var kkey = window.document.getElementById('k' + i + 'key').value;
|
||||
objReturn[0][objReturn[0].length] = kkey;
|
||||
@@ -88,7 +91,6 @@ function doSubmit()
|
||||
lbl = lbl.substring(0, lbl.length - 1)
|
||||
objReturn[2][objReturn[2].length] = lbl;
|
||||
|
||||
var tp = window.document.getElementById('k' + i + 't').value;
|
||||
if (kval.type == 'checkbox') {
|
||||
objReturn[3][objReturn[3].length] = (kval.checked?1:0);
|
||||
}
|
||||
@@ -180,7 +182,7 @@ $(document).ready(function() {
|
||||
</table>
|
||||
<% } %>
|
||||
|
||||
<% BLOCK_START("besItemFlex" , L("lcl_flexible_properties")); %>
|
||||
<% BLOCK_START("besItemFlex" , L("lcl_flexible_properties") + ": " + desc ); %>
|
||||
<tr><td><table width=100% id="theTable">
|
||||
|
||||
<%
|
||||
@@ -192,6 +194,7 @@ $(document).ready(function() {
|
||||
+ " sk.bes_srtkenmerk_dec kenmerk_dec, "
|
||||
+ " sk.bes_srtkenmerk_nmin kenmerk_nmin, "
|
||||
+ " sk.bes_srtkenmerk_nmax kenmerk_nmax, "
|
||||
+ " sk.bes_srtkenmerk_systeem kenmerk_systeem, "
|
||||
+ lcl.xsql('k.bes_kenmerk_default', 'k.bes_kenmerk_key')+ " kenmerk_waarde, "
|
||||
+ " k.bes_kenmerk_volgnummer kenmerk_volgnr, "
|
||||
+ lcl.xsql('sk.bes_srtkenmerk_dimensie', 'sk.bes_srtkenmerk_key') +" kenmerk_dimensie, "
|
||||
|
||||
@@ -47,7 +47,8 @@ var this_bestelopdr = bes.func_enabled_bestelopdracht(opdr_key);
|
||||
|
||||
var fields = [ { dbs: "bes_bestelopdr_opmerking", typ: "varchar", frm: "opmerk", track: L("lcl_remark"), len: 320 },
|
||||
{ dbs: "mld_adres_key_lev", typ: "key", frm: "levering", track: L("lcl_bes_adres_lev"), foreign: "MLD_V_AFLEVERADRES" } ,
|
||||
{ dbs: "mld_adres_key_fac", typ: "key", frm: "factuur", track: L("lcl_bes_adres_fac"), foreign: "MLD_V_FACTUURADRES" }
|
||||
{ dbs: "mld_adres_key_fac", typ: "key", frm: "factuur", track: L("lcl_bes_adres_fac"), foreign: "MLD_V_FACTUURADRES" } ,
|
||||
{ dbs: "bes_bestelopdr_flag", typ: "number", frm: "besopdrflag" }
|
||||
];
|
||||
if (getFParam("chkproceed", "off") == "on")
|
||||
fields.push({ dbs: "bes_bestelopdr_status", typ: "key", val: 3});
|
||||
@@ -229,6 +230,22 @@ var this_bestelopdr = bes.func_enabled_bestelopdracht(opdr_key);
|
||||
RWTEXTAREATR("opmerk", "fldtxt", L("lcl_remark"), bes_bestelopdr.opmerking, {html: "rows='3'", suppressEmpty: true}); // Afhandeling, reden niet akkoord
|
||||
ROTEXTAREATR("fldtxt", L("lcl_bes_comment"), bes_bestelopdr.delivery_opmerk, {suppressEmpty: true});
|
||||
ROTEXTAREATR("fldtxt", L("lcl_bes_bestelling_lev_opm"), bes_bestelling.lev_opm, {suppressEmpty: true} );
|
||||
|
||||
if (this_bestelopdr.canWriteFlags && (S("bes_bestelopdr_flags") > 0))
|
||||
{
|
||||
var besflagnr = bes_bestelopdr.flag || 0;
|
||||
sql = "";
|
||||
for (var i=0; i<S("bes_bestelopdr_flags"); i++)
|
||||
{
|
||||
sql += "SELECT "+i+","+safe.quoted_sql(L("lcl_bestelopdr_flag"+i))+" FROM DUAL" + (i<(parseInt(S("bes_bestelopdr_flags"))-1)?" UNION ALL ":"");
|
||||
}
|
||||
FCLTselector("besopdrflag",
|
||||
sql,
|
||||
{ initKey: bes_bestelopdr.flag,
|
||||
label: L("lcl_bestelopdr_flags")
|
||||
});
|
||||
}
|
||||
|
||||
BLOCK_END();
|
||||
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
<!-- #include file="../Shared/selector.inc" -->
|
||||
<!-- #include file="../Shared/calendar.inc" -->
|
||||
<!-- #include file="../Shared/bedrijfselector.inc" -->
|
||||
<!-- #include file="../Shared/srtdeelselector.inc" -->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({plugins:["suggest", "jQuery"]})
|
||||
@@ -29,35 +30,36 @@ var authparams = user.checkAutorisation("WEB_BESMSU");
|
||||
|
||||
if (srtdeel_key > 0)
|
||||
{
|
||||
sql = "SELECT d.bes_srtgroep_key,"
|
||||
+ " bes_srtdeel_omschrijving,"
|
||||
+ " bes_srtdeel_btw,"
|
||||
+ " bes_srtdeel_eenheid,"
|
||||
+ " bes_srtdeel_nr,"
|
||||
+ " d.prs_bedrijf_key,"
|
||||
+ " bes_srtdeel_vervaldatum ,"
|
||||
+ " bes_srtdeel_image,"
|
||||
+ " bes_srtdeel_veelvoud,"
|
||||
+ " bes_srtdeel_prsflex,"
|
||||
+ " bes_srtdeel_preview,"
|
||||
+ " bes_srtdeel_opmerking,"
|
||||
+ " bes_srtdeel_voorraadmin ,"
|
||||
+ " bes_srtdeel_voorraadmax ,"
|
||||
+ " bes_srtdeel_voorraadfactor ,"
|
||||
+ " bes_staffeltabel_key,"
|
||||
+ " bes_srtdeel_minimum,"
|
||||
+ " bes_srtdeel_verwijder,"
|
||||
+ " bes_srtdeel_wijzigdagen,"
|
||||
+ " bes_srtdeel_annuleerdagen,"
|
||||
+ " bes_srtdeel_depotverdeelpct,"
|
||||
+ " disc.ins_discipline_key,"
|
||||
+ " bes_srtgroep_omschrijving,"
|
||||
+ " ins_discipline_omschrijving,"
|
||||
+ " d.bes_srtprod_key,"
|
||||
+ " bes_srtprod_omschrijving,"
|
||||
+ " bes_srtprod_nr,"
|
||||
+ " bes_srtdeel_notitie,"
|
||||
+ " bes_srtdeel_maxbestel"
|
||||
sql = "SELECT d.bes_srtgroep_key"
|
||||
+ " , bes_srtdeel_omschrijving"
|
||||
+ " , bes_srtdeel_btw"
|
||||
+ " , bes_srtdeel_eenheid"
|
||||
+ " , bes_srtdeel_nr"
|
||||
+ " , d.prs_bedrijf_key"
|
||||
+ " , bes_srtdeel_vervaldatum"
|
||||
+ " , bes_srtdeel_image"
|
||||
+ " , bes_srtdeel_veelvoud"
|
||||
+ " , bes_srtdeel_prsflex"
|
||||
+ " , bes_srtdeel_preview"
|
||||
+ " , bes_srtdeel_opmerking"
|
||||
+ " , bes_srtdeel_voorraadmin"
|
||||
+ " , bes_srtdeel_voorraadmax"
|
||||
+ " , bes_srtdeel_voorraadfactor"
|
||||
+ " , bes_staffeltabel_key"
|
||||
+ " , bes_srtdeel_minimum"
|
||||
+ " , bes_srtdeel_verwijder"
|
||||
+ " , bes_srtdeel_wijzigdagen"
|
||||
+ " , bes_srtdeel_annuleerdagen"
|
||||
+ " , bes_srtdeel_depotverdeelpct"
|
||||
+ " , disc.ins_discipline_key"
|
||||
+ " , bes_srtgroep_omschrijving"
|
||||
+ " , ins_discipline_omschrijving"
|
||||
+ " , d.bes_srtprod_key"
|
||||
+ " , bes_srtprod_omschrijving"
|
||||
+ " , bes_srtprod_nr"
|
||||
+ " , bes_srtdeel_notitie"
|
||||
+ " , bes_srtdeel_maxbestel"
|
||||
+ " , d.ins_srtdeel_key"
|
||||
+ " FROM bes_srtdeel d, bes_srtgroep g, ins_tab_discipline disc,"
|
||||
+ " bes_srtprod p"
|
||||
+ " WHERE g.ins_discipline_key = disc.ins_discipline_key"
|
||||
@@ -96,7 +98,8 @@ if (srtdeel_key > 0)
|
||||
srtprod_oms: oRs("bes_srtprod_omschrijving").Value,
|
||||
srtprod_nr: oRs("bes_srtprod_nr").Value,
|
||||
srtdeel_not: oRs("bes_srtdeel_notitie").Value,
|
||||
maxbestel: oRs("bes_srtdeel_maxbestel").Value
|
||||
maxbestel: oRs("bes_srtdeel_maxbestel").Value,
|
||||
ins_srtdeel_key: oRs("ins_srtdeel_key").Value
|
||||
}
|
||||
|
||||
oRs.Close();
|
||||
@@ -213,13 +216,13 @@ else
|
||||
|
||||
BLOCK_START("besArtikelBestel", L("lcl_bes_srtdeelbestelblok"));
|
||||
FCLTbedrijfselector("lev_key", // supplier
|
||||
"sg_lev",
|
||||
{ companyKey: art.bedrijf_key,
|
||||
label: L("lcl_bes_Supplier"),
|
||||
trclass: "primsearch",
|
||||
filtercode: "L",
|
||||
whenEmpty: L("lcl_search_generic")
|
||||
});
|
||||
"sg_lev",
|
||||
{ companyKey: art.bedrijf_key,
|
||||
label: L("lcl_bes_Supplier"),
|
||||
trclass: "primsearch",
|
||||
filtercode: "L",
|
||||
whenEmpty: L("lcl_search_generic")
|
||||
});
|
||||
|
||||
FCLTcalendar( "verval",
|
||||
{
|
||||
@@ -245,6 +248,15 @@ else
|
||||
initKey: art.staffeltabel_key,
|
||||
emptyOption: ""});
|
||||
RWFIELDTR("depotverdeelpct", "fldshort", L("lcl_bes_depotverdeelpct"), art.depotverdeelpct);
|
||||
// Objectsoort.
|
||||
FCLTsrtdeelselector("ins_srtdeel_key",
|
||||
"sgSrtdeel",
|
||||
{ label: L("lcl_bes_link_obj_type"),
|
||||
srtdeel_key: art.ins_srtdeel_key,
|
||||
autfunction: "",
|
||||
module: "INS",
|
||||
binding: 24 // Afdeling 0x8=8 (BIND_AFDELI) + Persoon0x10=16 (BIND_PERSOO).
|
||||
});
|
||||
|
||||
BLOCK_END();
|
||||
IFACE.FORM_END();
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
{ dbs: "bes_srtdeel_annuleerdagen", typ: "number", frm: "annuleerdagen" },
|
||||
{ dbs: "bes_srtdeel_depotverdeelpct", typ: "number", frm: "depotverdeelpct" },
|
||||
{ dbs: "bes_staffeltabel_key", typ: "key", frm: "staffel" },
|
||||
{ dbs: "bes_srtdeel_notitie", typ: "varchar", frm: "notitie"}];
|
||||
{ dbs: "bes_srtdeel_notitie", typ: "varchar", frm: "notitie"},
|
||||
{ dbs: "ins_srtdeel_key", typ: "key", frm: "ins_srtdeel_key"}];
|
||||
|
||||
var warning = "";
|
||||
if (srtdeel_key > 0)
|
||||
|
||||
39
APPL/BES/bes_flag.asp
Normal file
39
APPL/BES/bes_flag.asp
Normal file
@@ -0,0 +1,39 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
verhoog de status van de flag met 1.
|
||||
*/ %>
|
||||
<%
|
||||
var JSON_Result = true;
|
||||
%>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="bes.inc" -->
|
||||
|
||||
<%
|
||||
protectRequest.validateToken();
|
||||
var besopdr_key = getFParamInt("besopdr_key");
|
||||
var flagkey = getFParamInt("flagkey");
|
||||
|
||||
var this_besopdr = bes.func_enabled_bestelopdracht(besopdr_key);
|
||||
user.auth_required_or_abort(this_besopdr.canWriteFlags);
|
||||
|
||||
var result = {};
|
||||
|
||||
flagkey += 1;
|
||||
flagkey = flagkey % S("bes_bestelopdr_flags"); // cycle door de waarden {0, 1, ... , (S('bes_bestelopdr_flags')-1)}.
|
||||
|
||||
var updatesql = "UPDATE bes_bestelopdr"
|
||||
+ " SET bes_bestelopdr_flag = " + flagkey
|
||||
+ " WHERE bes_bestelopdr_key = " + besopdr_key;
|
||||
Oracle.Execute(updatesql);
|
||||
|
||||
result.success = true;
|
||||
result.besopdr_key = besopdr_key;
|
||||
result.newflag = flagkey; // Het nieuwe volgnummer van de bezoeker vlaggetjes.
|
||||
|
||||
Response.Write(JSON.stringify(result));
|
||||
%>
|
||||
@@ -31,7 +31,7 @@ function generateFlexKenmerkCode(params)
|
||||
var fronto = (urole == "fo");
|
||||
var backo = (urole == "bo");
|
||||
var minfo = (urole == "mi");
|
||||
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
||||
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
|
||||
|
||||
var bes_key = params.bes_key; // Bestelling key
|
||||
var disc_key = params.disc_key; // Catalogus key
|
||||
@@ -108,6 +108,7 @@ function generateFlexKenmerkCode(params)
|
||||
+ " sk.bes_srtkenmerk_dec kenmerk_dec, "
|
||||
+ " sk.bes_srtkenmerk_nmin kenmerk_nmin, "
|
||||
+ " sk.bes_srtkenmerk_nmax kenmerk_nmax, "
|
||||
+ " sk.bes_srtkenmerk_systeem kenmerk_systeem, "
|
||||
+ (bes_key > 0
|
||||
? " (SELECT v.bes_kenmerkbestell_waarde"
|
||||
+ " FROM bes_kenmerkbestell v"
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
besstlev search for orders with the status besstlev
|
||||
besstver search for orders with the status besstver
|
||||
besstann search for orders with the status besstann
|
||||
besstont search for orders with the status besstont
|
||||
besordstafg search for orders with the status besordstafg
|
||||
besordstnew search for orders with the status besordstnew
|
||||
besordstbeh search for orders with the status besordstbeh
|
||||
@@ -99,6 +100,7 @@ function bes_list (pautfunction, params)
|
||||
// params.besstlev : boolean (true | false)
|
||||
// params.besstver : boolean (true | false)
|
||||
// params.besstann : boolean (true | false)
|
||||
// params.besstont : boolean (true | false)
|
||||
// params.besordstafg : boolean (true | false)
|
||||
// params.besordstnew : boolean (true | false)
|
||||
// params.besordstbeh : boolean (true | false)
|
||||
@@ -113,7 +115,7 @@ function bes_list (pautfunction, params)
|
||||
var fronto = (urole == "fo");
|
||||
var backo = (urole == "bo");
|
||||
var minfo = (urole == "mi"); // NOT APPLICABLE?
|
||||
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
||||
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
|
||||
|
||||
// Voor resulttable de globalen zetten; zou ng anders moeten.
|
||||
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
|
||||
@@ -147,6 +149,7 @@ function bes_list (pautfunction, params)
|
||||
var besstlev = params.besstlev;
|
||||
var besstver = params.besstver;
|
||||
var besstann = params.besstann;
|
||||
var besstont = params.besstont;
|
||||
var besordstafg = params.besordstafg;
|
||||
var besordstnew = params.besordstnew;
|
||||
var besordstbeh = params.besordstbeh;
|
||||
@@ -164,6 +167,7 @@ function bes_list (pautfunction, params)
|
||||
if (besstlev) showbesstatus = (showbesstatus == ""? "" : showbesstatus + ",") + "6";
|
||||
if (besstver) showbesstatus = (showbesstatus == ""? "" : showbesstatus + ",") + "7";
|
||||
if (besstann) showbesstatus = (showbesstatus == ""? "" : showbesstatus + ",") + "8";
|
||||
if (besstont) showbesstatus = (showbesstatus == ""? "" : showbesstatus + ",") + "9";
|
||||
|
||||
var showordstatus = "";
|
||||
if (besordstafg) showordstatus = (showordstatus == ""? "" : showordstatus + ",") + "1";
|
||||
|
||||
@@ -23,7 +23,7 @@ var urole = getQParamSafe("urole");
|
||||
var fronto = (urole == "fo");
|
||||
var backo = (urole == "bo");
|
||||
var minfo = (urole == "mi");
|
||||
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
||||
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
|
||||
var opdr_key = getQParamInt('ordernr');
|
||||
var autoopdr = getQParam('autoopdr', '');
|
||||
|
||||
|
||||
53
APPL/BES/bes_opdr_confirm.asp
Normal file
53
APPL/BES/bes_opdr_confirm.asp
Normal file
@@ -0,0 +1,53 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: bes_opdr_confirm.asp
|
||||
Description: Bevestigen van een bestelaanvraag door de de besteller. (canConfirm)
|
||||
Parameters:
|
||||
bes_key Bestelaanvraag nummer (key)
|
||||
*/
|
||||
var JSON_Result = true;
|
||||
%>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="./bes.inc" -->
|
||||
|
||||
<%
|
||||
protectRequest.validateToken();
|
||||
|
||||
var bes_key_arr = getFParamIntArray("bes_key");
|
||||
|
||||
var result = {};
|
||||
var tobeconfirmed = 0;
|
||||
var ingesloten = [];
|
||||
// Bepaal de bestellingen in de selectie die
|
||||
// ook echt bevestigt kunnen of mogen worden.
|
||||
for (var i = 0; i < bes_key_arr.length; i++)
|
||||
{
|
||||
var bes_bestelling = bes.bestelling_info(bes_key_arr[i]); // Globale variabele met alle bes_bestelling informatie
|
||||
var this_bestelling = bes.func_enabled_bestelling(bes_bestelling);
|
||||
if (this_bestelling.canConfirm)
|
||||
{
|
||||
ingesloten.push(bes_key_arr[i]);
|
||||
tobeconfirmed++;
|
||||
}
|
||||
}
|
||||
user.anything_todo_or_abort(tobeconfirmed > 0); // We klagen niet over enkele wel en enkele niet
|
||||
|
||||
for (var i = 0; i < ingesloten.length; i++)
|
||||
{
|
||||
// Status "Ontvangen(9)" zetten
|
||||
bes.setbestellingstatus(ingesloten[i], 9); // Zet de status "Ontvangen(9)" en trackt zelf BESOT2.
|
||||
// Tijdelijk: Gequeuede BESOT2 notificatie verwijderen voor 2017.3 omdat deze onterecht wordt verstuurd. In 2018.1 structueel oplossen.
|
||||
var sql = "BEGIN fac.clrnotifications ('BESOT2', " + ingesloten[i] + "); END;";
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
|
||||
result = { close: true, success: true};
|
||||
|
||||
Response.Write(JSON.stringify(result));
|
||||
Response.End;
|
||||
%>
|
||||
@@ -56,7 +56,7 @@ var urole = getQParamSafe("urole");
|
||||
var fronto = (urole == "fo");
|
||||
var backo = (urole == "bo");
|
||||
var minfo = (urole == "mi");
|
||||
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
||||
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
|
||||
|
||||
var datefrom = getQParamDate("date_from", null);
|
||||
var dateto = getQParamDate("date_to", null);
|
||||
|
||||
@@ -18,7 +18,7 @@ var urole = getQParamSafe("urole", ""); // Indien niet meegegeven, veronderste
|
||||
var fronto = (urole == "fo");
|
||||
var backo = (urole == "bo");
|
||||
var minfo = (urole == "mi");
|
||||
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
||||
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
|
||||
|
||||
// FORM parameters: de waarde indien aanwezig, anders null
|
||||
// Vaak is een lege selectie ook een -1, dus dan is-ie wel aanwezig, maar hoeft niet
|
||||
@@ -89,9 +89,9 @@ else
|
||||
// ** nu volgt de verwerking
|
||||
|
||||
// Statusfilters:
|
||||
// FE: Nieuw (2), open (3, 4, 5), geleverd (1, 6, 7, 8)
|
||||
// FO: Nieuw (2), open (3, 4, 5), geleverd (6), archief (1, 7, 8)
|
||||
// BO: Nieuw (2, 3, 4), open (5), geleverd (6), archief (1, 7, 8)
|
||||
// FE: Nieuw (2), open (3, 4, 5), geleverd (1, 6, 7, 8, 9)
|
||||
// FO: Nieuw (2), open (3, 4, 5), geleverd (6, 9), archief (1, 7, 8)
|
||||
// BO: Nieuw (2, 3, 4), open (5), geleverd (6, 9), archief (1, 7, 8)
|
||||
// Merk op: de ids kunnen afhankelijk van de urole andere betekenis hebben, dus.
|
||||
var besstatus1 = (frontend && st_rfoDelivered) || (!frontend && st_rfoClosed);
|
||||
var besstatus2 = st_rfoNew;
|
||||
@@ -101,6 +101,7 @@ else
|
||||
var besstatus6 = st_rfoDelivered;
|
||||
var besstatus7 = besstatus1;
|
||||
var besstatus8 = besstatus1;
|
||||
var besstatus9 = st_rfoDelivered;
|
||||
|
||||
var ordstatus1 = null;
|
||||
var ordstatus2 = null;
|
||||
@@ -123,6 +124,7 @@ else
|
||||
var besstatus6 = false;
|
||||
var besstatus7 = false;
|
||||
var besstatus8 = false;
|
||||
var besstatus9 = false;
|
||||
for (var mst = 0; mst < rfo_status_arr.length; mst++)
|
||||
{
|
||||
switch(rfo_status_arr[mst])
|
||||
@@ -143,6 +145,8 @@ else
|
||||
break;
|
||||
case 8: besstatus8 = true;
|
||||
break;
|
||||
case 9: besstatus9 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,6 +187,7 @@ else
|
||||
params.besstlev = besstatus6;
|
||||
params.besstver = besstatus7;
|
||||
params.besstann = besstatus8;
|
||||
params.besstont = besstatus9;
|
||||
params.besordstafg = ordstatus1;
|
||||
params.besordstnew = ordstatus2;
|
||||
params.besordstbeh = ordstatus3;
|
||||
|
||||
@@ -60,7 +60,7 @@ FCLTHeader.Requires({plugins:["suggest","jQuery"],
|
||||
<script type="text/javascript" >
|
||||
var details_Items = new Array(); // voor details.inc
|
||||
</script>
|
||||
<% generateDetails(bes_key, false); %>
|
||||
<% generateDetails(bes_key); %>
|
||||
<script type="text/javascript" >
|
||||
jQuery(document).ready(function() {
|
||||
$("#besFlex").toggle($("#k_all").val()>0); // verbergen als leeg
|
||||
@@ -116,6 +116,22 @@ FCLTHeader.Requires({plugins:["suggest","jQuery"],
|
||||
FcltMgr.windowopen('./bes_opdr_xml.asp?bes_key='+'<% = bes_key %>');
|
||||
}
|
||||
|
||||
function bes_opdr_confirm()
|
||||
{
|
||||
FcltMgr.confirm(L("lcl_bes_confirm").format("<%=S("bes_bestelling_prefix") + bes_bestelling.bes_key%>"),
|
||||
function()
|
||||
{
|
||||
var data = { urole: "<%=urole%>",
|
||||
bes_key: <%=bes_key%>
|
||||
};
|
||||
<% protectRequest.dataToken("data"); %>
|
||||
$.post("bes_opdr_confirm.asp",
|
||||
data,
|
||||
FcltCallbackRefresh,
|
||||
"json");
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<%
|
||||
@@ -140,7 +156,7 @@ var buttons = [];
|
||||
this_bes.canAccept4 ||
|
||||
this_bes.canAccept5)
|
||||
{
|
||||
buttons.push({ icon: "accept.png", title: L("lcl_approve"), action: "bes_accept()" });
|
||||
buttons.push({ icon: "accept.png", title: L("lcl_bes_accept"), action: "bes_accept()" });
|
||||
}
|
||||
|
||||
if (this_bes.canReject)
|
||||
@@ -163,6 +179,9 @@ var buttons = [];
|
||||
|
||||
if (this_bes.canDelete)
|
||||
buttons.push({ icon: "delete.png", title: L("lcl_delete"), action: "bes_delete()" });
|
||||
|
||||
if (this_bes.canConfirm)
|
||||
buttons.push({ icon: "accept.png", title: L("lcl_confirm"), action: "bes_opdr_confirm()" });
|
||||
}
|
||||
|
||||
buttons.push({ icon: "print.png", title: L("lcl_print"), action: "bes_print()"});
|
||||
@@ -236,6 +255,7 @@ var currency_suff = '<%=S("currency_suff")%>';
|
||||
var show_price = '<%=show_price%>';
|
||||
var lower = false;
|
||||
var inclBTW = <%=bes_bestelling.inclBTW%> == 1;
|
||||
var fotomode = <%=bes_disc_info.fotomode%>;
|
||||
|
||||
function bes_accept()
|
||||
{
|
||||
@@ -277,6 +297,13 @@ function bes_reject()
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<% if (bes_disc_info.fotomode == 1) // Foto erbij
|
||||
{
|
||||
%>
|
||||
<th><%=L("lcl_bes_image")%></th>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<th><%=L("lcl_bes_srtdeel_nr")%></th>
|
||||
<th><%=L("lcl_bes_srtdeel")%></th>
|
||||
<th><%=L("lcl_bes_unity")%></th>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!--#include file="../Shared/persoonselector.inc" -->
|
||||
<!-- #include file="bes.inc" -->
|
||||
|
||||
<%
|
||||
@@ -64,10 +65,9 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera
|
||||
FcltMgr.confirm(L("lcl_bes_confirm_accept").format("<%=S("bes_bestelopdr_prefix") + bes_bestelopdr.bestelopdr_id%>"),
|
||||
function()
|
||||
{
|
||||
var data = {
|
||||
urole: "<%=urole%>",
|
||||
opdr_key: <%=opdr_key%>
|
||||
};
|
||||
var data = { urole: "<%=urole%>",
|
||||
opdr_key: <%=opdr_key%>
|
||||
};
|
||||
<% protectRequest.dataToken("data"); %>
|
||||
$.post("opdr_accept.asp",
|
||||
data,
|
||||
@@ -185,8 +185,29 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera
|
||||
Title: L("lcl_status_details") + " " + S("bes_bestelopdr_prefix") + bes_bestelopdr.bestelopdr_id
|
||||
}
|
||||
}
|
||||
ROFIELDTR("fld", L("lcl_bes_Bes_status"), bes_bestelopdr.statustxt, params);
|
||||
var statustxt = bes_bestelopdr.statustxt;
|
||||
var aantal = 0;
|
||||
var aantalontv = 0;
|
||||
for (var i = 0; i < bes_bestelopdr.artikel_arr.length; i++)
|
||||
{
|
||||
aantal = aantal + bes_bestelopdr.artikel_arr[i].aantal;
|
||||
aantalontv = aantalontv + bes_bestelopdr.artikel_arr[i].aantalontv;
|
||||
}
|
||||
if (bes_bestelopdr.status == 4 && aantalontv > 0 && aantalontv < aantal)
|
||||
statustxt += "\n" + "Deels geleverd"; // TODO in 2018.1 harde tekst vervangen door lcl_bes_ord_deelsgeleverd.
|
||||
ROFIELDTR("fld", L("lcl_bes_Bes_status"), statustxt, params);
|
||||
ROFIELDTR("fld", L("lcl_bes_Bes_Owner"), bes_bestelopdr.prs_perslid_naam);
|
||||
if (bes_bestelling.perslid_key_voor > 0 && bes_bestelling.perslid_key_voor != bes_bestelopdr.perslid_key)
|
||||
{
|
||||
FCLTpersoonselector(
|
||||
"personFor",
|
||||
"sgPersonFor",
|
||||
{ perslidKey: bes_bestelling.perslid_key_voor,
|
||||
label: L("lcl_bes_order_for"),
|
||||
readonly: true,
|
||||
moreinfo: true
|
||||
});
|
||||
}
|
||||
|
||||
sql = "SELECT mld_adres_naam "
|
||||
+ " FROM mld_adres"
|
||||
@@ -203,6 +224,11 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera
|
||||
ROTEXTAREATR("fldtxt", L("lcl_remark"), bes_bestelopdr.opmerking, {id: "txt", suppressEmpty: true}); // Afhandeling, reden niet akkoord
|
||||
ROTEXTAREATR("fldtxt", L("lcl_bes_comment"), bes_bestelopdr.delivery_opmerk, {id: "odtxt", suppressEmpty: true});
|
||||
ROTEXTAREATR("fldtxt", L("lcl_bes_bestelling_lev_opm"), bes_bestelling.lev_opm, {suppressEmpty: true} );
|
||||
|
||||
if (this_bestelopdr.canWriteFlags && bes_bestelopdr.flag)
|
||||
{
|
||||
ROFIELDTR("fld showflag", L("lcl_bestelopdr_flags")+I("fa-circle besopdrflag"+ bes_bestelopdr.flag), L("lcl_bestelopdr_flag" + bes_bestelopdr.flag), {trclass: "showflag"});
|
||||
}
|
||||
BLOCK_END();
|
||||
|
||||
BLOCK_START("besOpdrItems", L("lcl_bes_geselecteerd"));
|
||||
|
||||
@@ -51,6 +51,7 @@ sql = "SELECT d.bes_srtgroep_key"
|
||||
+ " , bes_srtprod_nr"
|
||||
+ " , bes_srtdeel_maxbestel"
|
||||
+ " , d.bes_srtprod_key"
|
||||
+ " , d.ins_srtdeel_key"
|
||||
+ " FROM bes_srtdeel d, bes_srtgroep g, ins_tab_discipline disc"
|
||||
+ " , bes_srtprod p"
|
||||
+ " WHERE g.ins_discipline_key = disc.ins_discipline_key"
|
||||
@@ -87,7 +88,8 @@ var art = { srtdeel_key: srtdeel_key,
|
||||
srtprod_oms: oRs("bes_srtprod_omschrijving").Value,
|
||||
srtprod_nr: oRs("bes_srtprod_nr").Value,
|
||||
maxbestel: oRs("bes_srtdeel_maxbestel").Value,
|
||||
srtprod_key: oRs("bes_srtprod_key").Value
|
||||
srtprod_key: oRs("bes_srtprod_key").Value,
|
||||
ins_srtdeel_key: oRs("ins_srtdeel_key").Value
|
||||
}
|
||||
|
||||
oRs.Close();
|
||||
@@ -195,6 +197,17 @@ oRs.Close();
|
||||
suppressEmpty: true,
|
||||
readonly: true });
|
||||
ROFIELDTR("fldshort", L("lcl_bes_depotverdeelpct"), art.depotverdeelpct, {suppressEmpty: true});
|
||||
// Objectsoort.
|
||||
var sql = "SELECT ins_srtdeel_key"
|
||||
+ " , ins_srtdeel_omschrijving"
|
||||
+ " FROM ins_v_aanwezigsrtdeel"
|
||||
+ " WHERE BITAND(ins_srtdeel_binding, 8) = 8 OR BITAND(ins_srtdeel_binding, 16) = 16" // Afdeling 0x8=8, Persoon 0x10=16.
|
||||
+ " ORDER BY ins_srtdeel_omschrijving";
|
||||
FCLTselector("ins_srtdeel_key", sql,
|
||||
{ label: L("lcl_obj_sort"),
|
||||
initKey: art.ins_srtdeel_key,
|
||||
suppressEmpty: true,
|
||||
readonly: true });
|
||||
BLOCK_END();
|
||||
%>
|
||||
</form>
|
||||
|
||||
@@ -40,7 +40,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
var fronto = (urole == "fo");
|
||||
var backo = (urole == "bo");
|
||||
var minfo = (urole == "mi"); // NOT APPLICABLE?
|
||||
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
||||
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
|
||||
|
||||
// Voor resulttable de globalen zetten; zou ng anders moeten.
|
||||
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
|
||||
@@ -143,15 +143,22 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ " AND (sd.bes_srtdeel_vervaldatum IS NULL OR sd.bes_srtdeel_vervaldatum > SYSDATE)"
|
||||
: "")
|
||||
+ (params.besgroep_key
|
||||
? " AND g.bes_srtgroep_key IN (SELECT sd2.bes_srtgroep_key"
|
||||
+ " FROM bes_v_aanwezigsrtdeel sd2"
|
||||
+ " , bes_v_aanwezigsrtgroep sg2"
|
||||
+ " WHERE sd2.bes_srtgroep_key = sg2.bes_srtgroep_key"
|
||||
+ " AND (sd2.bes_srtdeel_vervaldatum IS NULL OR sd2.bes_srtdeel_vervaldatum > SYSDATE)"
|
||||
+ " AND sd2.bes_srtdeel_nr IN (SELECT sd3.bes_srtdeel_nr"
|
||||
+ " FROM bes_v_aanwezigsrtdeel sd3"
|
||||
+ " WHERE (sd3.bes_srtdeel_vervaldatum IS NULL OR sd3.bes_srtdeel_vervaldatum > SYSDATE)"
|
||||
+ " AND sd3.bes_srtgroep_key = " + params.besgroep_key + "))"
|
||||
? " AND (sd.bes_srtdeel_nr IN (SELECT sd3.bes_srtdeel_nr" // Inkoop en interne artikelen zijn op bes_srtdeel_nr gekoppeld.
|
||||
+ " FROM bes_v_aanwezigsrtdeel sd3"
|
||||
+ " WHERE (sd3.bes_srtdeel_vervaldatum IS NULL OR sd3.bes_srtdeel_vervaldatum > SYSDATE)"
|
||||
+ " AND sd3.bes_srtgroep_key = " + params.besgroep_key + ")"
|
||||
+ " OR"
|
||||
+ " (SELECT isd2.bes_srtdeel_key" // Het kan zijn dat er (nog) geen inkoop variant is.
|
||||
+ " FROM bes_srtdeel isd2"
|
||||
+ " , bes_srtgroep isg2"
|
||||
+ " , bes_discipline bd2"
|
||||
+ " WHERE isd2.bes_srtgroep_key = isg2.bes_srtgroep_key"
|
||||
+ " AND bd2.ins_discipline_key = isg2.ins_discipline_key"
|
||||
+ " AND isd2.bes_srtdeel_nr LIKE sd.bes_srtdeel_nr"
|
||||
+ " AND isd2.bes_srtdeel_verwijder IS NULL"
|
||||
+ " AND (isd2.bes_srtdeel_vervaldatum IS NULL OR isd2.bes_srtdeel_vervaldatum > TRUNC(SYSDATE))"
|
||||
+ " AND bd2.ins_discipline_key = dp.bes_ins_discipline_key_inkoop) IS NULL"
|
||||
+ " )"
|
||||
: "")
|
||||
+ (params.item_key
|
||||
? " AND sd.bes_srtdeel_key IN (SELECT sd2.bes_srtdeel_key"
|
||||
@@ -244,7 +251,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ " AND (sd.bes_srtdeel_vervaldatum IS NULL OR sd.bes_srtdeel_vervaldatum > SYSDATE)"
|
||||
: "")
|
||||
+ (params.besgroep_key
|
||||
? " AND g.bes_srtgroep_key = " + besgroep_key
|
||||
? " AND g.bes_srtgroep_key = " + params.besgroep_key
|
||||
+ " AND (sd.bes_srtdeel_vervaldatum IS NULL OR sd.bes_srtdeel_vervaldatum > SYSDATE)"
|
||||
: "")
|
||||
+ (params.item_key
|
||||
@@ -332,7 +339,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ " AND (sd.bes_srtdeel_vervaldatum IS NULL OR sd.bes_srtdeel_vervaldatum > SYSDATE)"
|
||||
: "")
|
||||
+ (params.besgroep_key
|
||||
? " AND g.bes_srtgroep_key = " + besgroep_key
|
||||
? " AND g.bes_srtgroep_key = " + params.besgroep_key
|
||||
+ " AND (sd.bes_srtdeel_vervaldatum IS NULL OR sd.bes_srtdeel_vervaldatum > SYSDATE)"
|
||||
: "")
|
||||
+ (params.item_key
|
||||
@@ -488,8 +495,8 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ " OR bk.bes_srtinstallatie_key = sd.bes_srtdeel_key AND bk.bes_kenmerk_niveau LIKE 'S')"
|
||||
+ " AND bk.bes_kenmerk_type = 'I'"
|
||||
+ " AND bk.bes_srtkenmerk_key = sk.bes_srtkenmerk_key"
|
||||
+ " AND bk.bes_kenmerk_verwijder = NULL"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder = NULL"
|
||||
+ " AND bk.bes_kenmerk_verwijder IS NULL"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND sd.bes_srtdeel_key = l.bes_srtdeel_key) aantalkenmerken"
|
||||
+ " , l.eenheid_extern"
|
||||
+ " , l.eenheid_intern"
|
||||
|
||||
@@ -27,7 +27,7 @@ var urole = getQParamSafe("urole");
|
||||
var fronto = (urole == "fo");
|
||||
var backo = (urole == "bo");
|
||||
var minfo = (urole == "mi");
|
||||
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
||||
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
|
||||
|
||||
var disc = getQParamInt("disc", -1); // Inkoop catalogus
|
||||
var srtgroup = getQParamInt("srtgroup", -1); // groep
|
||||
|
||||
@@ -18,7 +18,7 @@ var urole = getQParamSafe("urole", ""); // Indien niet meegegeven, veronderste
|
||||
var fronto = (urole == "fo");
|
||||
var backo = (urole == "bo");
|
||||
var minfo = (urole == "mi");
|
||||
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
||||
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
|
||||
|
||||
// FORM parameters: de waarde indien aanwezig, anders null
|
||||
// Vaak is een lege selectie ook een -1, dus dan is-ie wel aanwezig, maar hoeft niet
|
||||
|
||||
@@ -14,10 +14,17 @@
|
||||
// aanroeper moet hebben: var details_Items = new Array(); // voor details.inc
|
||||
|
||||
|
||||
// Gebruikt voor bestaande bestellingen (bes_key >0 en this_bes gezet)
|
||||
// Gebruikt voor bestaande bestellingen (bes_key >0)
|
||||
// of voor binnenkomst punchout (bes_key==-1 en psrt_keys, pamounts arrays met keys en aantallen)
|
||||
function generateDetails(bes_key, edit, psrt_keys, pamounts)
|
||||
// of voor auto-bestellijst (bes_key==-1, params.disc_key gezet en params.bestellijst = true)
|
||||
function generateDetails(bes_key, params)
|
||||
{
|
||||
params = params || {};
|
||||
var edit = params.edit;
|
||||
var psrt_keys = params.psrt_keys;
|
||||
var pamounts = params.pamounts;
|
||||
var sql;
|
||||
var oRs;
|
||||
if (bes_key > 0)
|
||||
{
|
||||
// retrieve info about the objects
|
||||
@@ -26,7 +33,8 @@ function generateDetails(bes_key, edit, psrt_keys, pamounts)
|
||||
+ " , s.bes_srtdeel_nr"
|
||||
+ ", " + lcl.xsqla('s.bes_srtdeel_omschrijving', 's.bes_srtdeel_key')
|
||||
+ " , bes_srtdeel_details_loc"
|
||||
+ " , i.bes_bestelling_item_aantal"
|
||||
+ " , NVL2(s.bes_srtdeel_image, p.prs_bedrijf_image_loc || s.bes_srtdeel_image, NULL) foto"
|
||||
+ " , i.bes_bestelling_item_aantal"
|
||||
+ ", " + lcl.xsqla('g.bes_srtgroep_omschrijving', 'g.bes_srtgroep_key')
|
||||
+ (edit
|
||||
? " , COALESCE(bes.getsrtdeelprijs(i.bes_srtdeel_key, null) , 0)"
|
||||
@@ -54,14 +62,17 @@ function generateDetails(bes_key, edit, psrt_keys, pamounts)
|
||||
+ " , bes_srtgroep g"
|
||||
+ " , bes_bestelling b"
|
||||
+ " , bes_staffeltabel bst"
|
||||
+ " , prs_bedrijf p"
|
||||
+ " WHERE i.bes_bestelling_key = " + bes_key
|
||||
+ " AND i.bes_srtdeel_key = s.bes_srtdeel_key"
|
||||
+ " AND b.bes_bestelling_key = i.bes_bestelling_key"
|
||||
+ " AND s.bes_srtgroep_key = g.bes_srtgroep_key"
|
||||
+ " AND bst.bes_staffeltabel_key(+) = s.bes_staffeltabel_key"
|
||||
+ " AND p.prs_bedrijf_verwijder IS NULL" // want ook die geven later een error en kunnen niet besteld worden
|
||||
+ " AND s.prs_bedrijf_key = p.prs_bedrijf_key"
|
||||
+ " ORDER BY bes_srtdeel_nr, UPPER(bes_srtdeel_omschrijving)"; // XLAT??
|
||||
}
|
||||
else // punchout data heeft niets met staffels o.i.d.
|
||||
else // punchout en bestellijst hebben niets met staffels o.i.d.
|
||||
{
|
||||
sql = "SELECT ins_discipline_key"
|
||||
+ " , s.bes_srtdeel_key"
|
||||
@@ -69,6 +80,7 @@ function generateDetails(bes_key, edit, psrt_keys, pamounts)
|
||||
+ ", " + lcl.xsqla('s.bes_srtdeel_omschrijving', 's.bes_srtdeel_key')
|
||||
// + " , 0 bes_bestelling_item_aantal" // komt straks uit pamounts
|
||||
+ " , bes_srtdeel_details_loc"
|
||||
+ " , NVL2(s.bes_srtdeel_image, p.prs_bedrijf_image_loc || s.bes_srtdeel_image, NULL) foto"
|
||||
+ ", " + lcl.xsqla('g.bes_srtgroep_omschrijving', 'g.bes_srtgroep_key')
|
||||
+ " , bes.getsrtdeelprijs (s.bes_srtdeel_key, NULL) prijs"
|
||||
+ " , s.bes_srtdeel_btw"
|
||||
@@ -82,53 +94,31 @@ function generateDetails(bes_key, edit, psrt_keys, pamounts)
|
||||
+ ", " + lcl.xsqla('s.bes_srtdeel_opmerking', 's.bes_srtdeel_key')
|
||||
+ " FROM bes_srtdeel s"
|
||||
+ " , bes_srtgroep g"
|
||||
+ " , bes_staffeltabel bst"
|
||||
+ " WHERE s.bes_srtdeel_key IN (" + psrt_keys.join(",") + ")"
|
||||
+ " , prs_bedrijf p"
|
||||
+ " WHERE "
|
||||
+ (params.auto_bestellijst // Dan alle artikelen van deze discipline
|
||||
?"g.ins_discipline_key = " + params.disc_key
|
||||
+ " AND bes_srtdeel_verwijder IS NULL"
|
||||
+ " AND bes_srtgroep_verwijder IS NULL"
|
||||
+ " AND (bes_srtdeel_vervaldatum IS NULL"
|
||||
+ " OR bes_srtdeel_vervaldatum > SYSDATE)"
|
||||
:"s.bes_srtdeel_key IN (" + psrt_keys.join(", ") + ")")
|
||||
+ " AND s.bes_srtgroep_key = g.bes_srtgroep_key"
|
||||
+ " AND bst.bes_staffeltabel_key(+) = s.bes_staffeltabel_key"
|
||||
+ " ORDER BY bes_srtdeel_nr, UPPER(bes_srtdeel_omschrijving)"; // XLAT??
|
||||
+ " AND p.prs_bedrijf_verwijder IS NULL" // want ook die geven later een error en kunnen niet besteld worden
|
||||
+ " AND s.prs_bedrijf_key = p.prs_bedrijf_key"
|
||||
+ " ORDER BY g.bes_srtgroep_volgnr"
|
||||
+ " , " + lcl.xsql('g.bes_srtgroep_omschrijving', 'g.bes_srtgroep_key')
|
||||
+ " , s.bes_srtdeel_volgnr"
|
||||
+ " , " + lcl.xsql('s.bes_srtdeel_omschrijving', 's.bes_srtdeel_key');
|
||||
}
|
||||
oRs = Oracle.Execute(sql);
|
||||
var oRs = Oracle.Execute(sql);
|
||||
%>
|
||||
<script type="text/javascript" >
|
||||
<script>
|
||||
var i = 0;
|
||||
<%
|
||||
var isCorrectie = false; // We hebben geen apart
|
||||
while (!oRs.eof)
|
||||
{
|
||||
sql = " SELECT k.bes_kenmerk_key"
|
||||
+ "," + lcl.xsqla('sk.bes_srtkenmerk_omschrijving', 'sk.bes_srtkenmerk_key')
|
||||
+ ", sk.bes_srtkenmerk_kenmerktype"
|
||||
+ ", r.fac_kenmerkdomein_objectnaam"
|
||||
+ ", r.fac_kenmerkdomein_kolomnaam"
|
||||
+ ", r.fac_kenmerkdomein_kolomtxt"
|
||||
+ ", r.fac_usrtab_key"
|
||||
+ ", sk.bes_srtkenmerk_lengte"
|
||||
+ ", sk.bes_srtkenmerk_dec"
|
||||
+ ", sk.bes_srtkenmerk_nmin"
|
||||
+ ", sk.bes_srtkenmerk_nmax"
|
||||
+ ", (SELECT v.bes_kenmerkbesteli_waarde"
|
||||
+ " FROM bes_kenmerkbesteli v"
|
||||
+ " WHERE v.bes_bestelling_item_key = " + oRs("bes_bestelling_item_key").value // 83 84
|
||||
+ " AND v.bes_kenmerk_key = k.bes_kenmerk_key"
|
||||
+ " AND v.bes_kenmerkbesteli_verwijder IS NULL) waarde" // 11
|
||||
+ ", k.bes_kenmerk_verplicht"
|
||||
+ ", k.bes_kenmerk_groep"
|
||||
+ ", " + lcl.xsqla('k.bes_kenmerk_default', 'k.bes_kenmerk_key')
|
||||
+ ", k.bes_srtinstallatie_key"
|
||||
+ " FROM bes_srtkenmerk sk"
|
||||
+ ", bes_kenmerk k"
|
||||
+ ", fac_kenmerkdomein r"
|
||||
+ ", bes_kenmerkbesteli kbi"
|
||||
+ " WHERE k.bes_kenmerk_verwijder IS NULL"
|
||||
+ " AND kbi.bes_kenmerk_key = k.bes_kenmerk_key"
|
||||
+ " AND kbi.bes_bestelling_item_key IN (" + oRs("bes_bestelling_item_key").value + ")"
|
||||
+ " AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND sk.fac_kenmerkdomein_key = r.fac_kenmerkdomein_key(+)"
|
||||
+ " AND k.bes_kenmerk_type = 'I'"
|
||||
+ " ORDER BY k.bes_kenmerk_volgnummer, UPPER("+lcl.xsql('sk.bes_srtkenmerk_omschrijving', 'sk.bes_srtkenmerk_key') +")";
|
||||
oRs1 = Oracle.Execute(sql);
|
||||
%>
|
||||
var objFlex = new Array;
|
||||
objFlex[0] = new Array(); // bes_kenmerk_key
|
||||
@@ -137,46 +127,86 @@ function generateDetails(bes_key, edit, psrt_keys, pamounts)
|
||||
objFlex[3] = new Array(); // flexkenmerkwaarde omschrijving
|
||||
i = 0;
|
||||
<%
|
||||
while (!oRs1.eof)
|
||||
{
|
||||
var ktype = oRs1("bes_srtkenmerk_kenmerktype").value;
|
||||
if (ktype == 'R' || ktype == 'S')
|
||||
{
|
||||
val = oRs1("waarde").value;
|
||||
var FAC_USRTAB_KEY = oRs1("fac_usrtab_key").value;
|
||||
if (oRs1("fac_kenmerkdomein_objectnaam").value == "FAC_USRDATA" && FAC_USRTAB_KEY)
|
||||
where = "FAC_USRTAB_KEY = " + FAC_USRTAB_KEY;
|
||||
sql = "SELECT " + oRs1("fac_kenmerkdomein_kolomnaam").value + "," + oRs1("fac_kenmerkdomein_kolomtxt").value + " waarde"
|
||||
+ " FROM " + oRs1("fac_kenmerkdomein_objectnaam").value
|
||||
+ " WHERE " + oRs1("fac_kenmerkdomein_kolomnaam").value + " = " + val;
|
||||
oRs2 = Oracle.Execute(sql);
|
||||
if (oRs("bes_bestelling_item_key").value > 0)
|
||||
{
|
||||
sql = " SELECT k.bes_kenmerk_key"
|
||||
+ "," + lcl.xsqla('sk.bes_srtkenmerk_omschrijving', 'sk.bes_srtkenmerk_key')
|
||||
+ ", sk.bes_srtkenmerk_kenmerktype"
|
||||
+ ", r.fac_kenmerkdomein_objectnaam"
|
||||
+ ", r.fac_kenmerkdomein_kolomnaam"
|
||||
+ ", r.fac_kenmerkdomein_kolomtxt"
|
||||
+ ", r.fac_usrtab_key"
|
||||
+ ", sk.bes_srtkenmerk_lengte"
|
||||
+ ", sk.bes_srtkenmerk_dec"
|
||||
+ ", sk.bes_srtkenmerk_nmin"
|
||||
+ ", sk.bes_srtkenmerk_nmax"
|
||||
+ ", (SELECT v.bes_kenmerkbesteli_waarde"
|
||||
+ " FROM bes_kenmerkbesteli v"
|
||||
+ " WHERE v.bes_bestelling_item_key = " + oRs("bes_bestelling_item_key").value
|
||||
+ " AND v.bes_kenmerk_key = k.bes_kenmerk_key"
|
||||
+ " AND v.bes_kenmerkbesteli_verwijder IS NULL) waarde" // 11
|
||||
+ ", k.bes_kenmerk_verplicht"
|
||||
+ ", k.bes_kenmerk_groep"
|
||||
+ ", " + lcl.xsqla('k.bes_kenmerk_default', 'k.bes_kenmerk_key')
|
||||
+ ", k.bes_srtinstallatie_key"
|
||||
+ " FROM bes_srtkenmerk sk"
|
||||
+ ", bes_kenmerk k"
|
||||
+ ", fac_kenmerkdomein r"
|
||||
+ ", bes_kenmerkbesteli kbi"
|
||||
+ " WHERE k.bes_kenmerk_verwijder IS NULL"
|
||||
+ " AND kbi.bes_kenmerk_key = k.bes_kenmerk_key"
|
||||
+ " AND kbi.bes_bestelling_item_key IN (" + oRs("bes_bestelling_item_key").value + ")"
|
||||
+ " AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND sk.fac_kenmerkdomein_key = r.fac_kenmerkdomein_key(+)"
|
||||
+ " AND k.bes_kenmerk_type = 'I'"
|
||||
+ " ORDER BY k.bes_kenmerk_volgnummer, UPPER("+lcl.xsql('sk.bes_srtkenmerk_omschrijving', 'sk.bes_srtkenmerk_key') +")";
|
||||
oRs1 = Oracle.Execute(sql);
|
||||
while (!oRs1.eof)
|
||||
{
|
||||
var ktype = oRs1("bes_srtkenmerk_kenmerktype").value;
|
||||
if (ktype == 'R' || ktype == 'S')
|
||||
{
|
||||
val = oRs1("waarde").value;
|
||||
var FAC_USRTAB_KEY = oRs1("fac_usrtab_key").value;
|
||||
if (oRs1("fac_kenmerkdomein_objectnaam").value == "FAC_USRDATA" && FAC_USRTAB_KEY)
|
||||
where = "FAC_USRTAB_KEY = " + FAC_USRTAB_KEY;
|
||||
sql = "SELECT " + oRs1("fac_kenmerkdomein_kolomnaam").value + "," + oRs1("fac_kenmerkdomein_kolomtxt").value + " waarde"
|
||||
+ " FROM " + oRs1("fac_kenmerkdomein_objectnaam").value
|
||||
+ " WHERE " + oRs1("fac_kenmerkdomein_kolomnaam").value + " = " + safe.quoted_sql(val);
|
||||
oRs2 = Oracle.Execute(sql);
|
||||
|
||||
if (!oRs2.eof)
|
||||
{ %>
|
||||
objFlex[0][i] = <%=oRs1("bes_kenmerk_key").value%>;
|
||||
objFlex[1][i] = "<%=safe.jsstring(oRs1("waarde").value)%>";
|
||||
objFlex[2][i] = "<%=safe.jsstring(oRs1("bes_srtkenmerk_omschrijving").value)%>";
|
||||
objFlex[3][i] = "<%=safe.jsstring(oRs2("waarde").value)%>";
|
||||
i++;
|
||||
<% }
|
||||
}
|
||||
else
|
||||
{ %>
|
||||
objFlex[0][i] = <%=oRs1("bes_kenmerk_key").value%>;
|
||||
objFlex[1][i] = "<%=safe.jsstring(oRs1("waarde").value)%>";
|
||||
objFlex[2][i] = "<%=safe.jsstring(oRs1("bes_srtkenmerk_omschrijving").value)%>";
|
||||
objFlex[3][i] = "<%=safe.jsstring(oRs1("waarde").value)%>";
|
||||
i++;
|
||||
<% }
|
||||
oRs1.moveNext();
|
||||
if (!oRs2.eof)
|
||||
{ %>
|
||||
objFlex[0][i] = <%=oRs1("bes_kenmerk_key").value%>;
|
||||
objFlex[1][i] = "<%=safe.jsstring(oRs1("waarde").value)%>";
|
||||
objFlex[2][i] = "<%=safe.jsstring(oRs1("bes_srtkenmerk_omschrijving").value)%>";
|
||||
objFlex[3][i] = "<%=safe.jsstring(oRs2("waarde").value)%>";
|
||||
i++;
|
||||
<% }
|
||||
}
|
||||
else
|
||||
{ %>
|
||||
objFlex[0][i] = <%=oRs1("bes_kenmerk_key").value%>;
|
||||
objFlex[1][i] = "<%=safe.jsstring(oRs1("waarde").value)%>";
|
||||
objFlex[2][i] = "<%=safe.jsstring(oRs1("bes_srtkenmerk_omschrijving").value)%>";
|
||||
objFlex[3][i] = "<%=safe.jsstring(oRs1("waarde").value)%>";
|
||||
i++;
|
||||
<% }
|
||||
oRs1.moveNext();
|
||||
}
|
||||
oRs1.Close();
|
||||
}
|
||||
oRs1.Close();
|
||||
var amount = 0;
|
||||
if (bes_key > 0)
|
||||
{
|
||||
amount = oRs("bes_bestelling_item_aantal").value;
|
||||
isCorrectie = isCorrectie || amount < 0; // Heuristisch
|
||||
}
|
||||
else if (params.auto_bestellijst)
|
||||
{
|
||||
amount = 0;
|
||||
}
|
||||
else // punch_out
|
||||
{
|
||||
for (var i=0; i < psrt_keys.length; i++)
|
||||
@@ -187,14 +217,16 @@ function generateDetails(bes_key, edit, psrt_keys, pamounts)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// hieronder niet te veel spaties toevoegen: die gaan allemaal over het lijntje!
|
||||
var fotopad = oRs("foto").Value;
|
||||
if (fotopad && fotopad.indexOf("/") == -1) // Nog geen enkele slash? Dan moet het wel lokaal zijn.
|
||||
fotopad = S("bes_image_path") + oRs("ins_discipline_key").Value + "/" + fotopad;
|
||||
%>
|
||||
details_Items[<%=oRs("bes_bestelling_item_key").value%>] =
|
||||
{ srtdeel_key: <%=oRs("bes_srtdeel_key").value%>,
|
||||
srtdeel_nr: "<%=safe.jsstring(oRs("bes_srtdeel_nr").value)%>",
|
||||
srtdeel_omschrijving: "<%=safe.jsstring(oRs("bes_srtdeel_omschrijving").value)%>",
|
||||
srtdeel_details_loc: "<%=safe.jsstring(oRs("bes_srtdeel_details_loc").value)%>",
|
||||
srtdeel_image: "<%=safe.jsstring(fotopad)%>",
|
||||
srtgroup_text: "<%=safe.jsstring(oRs("bes_srtgroep_omschrijving").value)%>",
|
||||
amount: <%=amount%>,
|
||||
price: <%=safe.jsfloat(oRs("prijs").value || 0)%>,
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
var fav_name = getQParam('fav_name', "");
|
||||
%>
|
||||
|
||||
<button onclick='onSelectAll()'><%=L("lcl_all")%></button>
|
||||
<form name="u2">
|
||||
<table id="besfavtable" cellspacing=0 cellpadding=0 class="rstable">
|
||||
|
||||
@@ -89,18 +90,18 @@
|
||||
+ " WHERE (k.bes_srtinstallatie_key = " + disc_key + " AND k.bes_kenmerk_niveau LIKE 'D'"
|
||||
+ " OR k.bes_srtinstallatie_key = g.bes_srtgroep_key AND k.bes_kenmerk_niveau LIKE 'G'"
|
||||
+ " OR k.bes_srtinstallatie_key = d.bes_srtdeel_key AND k.bes_kenmerk_niveau LIKE 'S')"
|
||||
+ " AND sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key"
|
||||
+ " AND sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key"
|
||||
+ " AND k.bes_kenmerk_verwijder IS NULL"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND k.bes_kenmerk_type = 'I') num_prop"
|
||||
+ ", (SELECT COUNT(bes_kenmerk_key)"
|
||||
+ " FROM bes_kenmerk k, bes_srtkenmerk sk"
|
||||
+ " WHERE (k.bes_srtinstallatie_key = " + disc_key + " AND k.bes_kenmerk_niveau LIKE 'D'"
|
||||
+ " OR k.bes_srtinstallatie_key = g.bes_srtgroep_key AND k.bes_kenmerk_niveau LIKE 'G'"
|
||||
+ " OR k.bes_srtinstallatie_key = d.bes_srtdeel_key AND k.bes_kenmerk_niveau LIKE 'S')"
|
||||
+ " AND sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key"
|
||||
+ " AND sk.bes_srtkenmerk_key = k.bes_srtkenmerk_key"
|
||||
+ " AND k.bes_kenmerk_verwijder IS NULL"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND k.bes_kenmerk_type = 'I'"
|
||||
+ " AND k.bes_kenmerk_default LIKE '%##SQL##%') num_prssql"
|
||||
+ ", CASE bst.bes_staffeltabel_groep"
|
||||
@@ -178,18 +179,18 @@
|
||||
+ " WHERE (k.bes_srtinstallatie_key = " + disc_key + " AND k.bes_kenmerk_niveau LIKE 'D'"
|
||||
+ " OR k.bes_srtinstallatie_key = g.bes_srtgroep_key AND k.bes_kenmerk_niveau LIKE 'G'"
|
||||
+ " OR k.bes_srtinstallatie_key = d.bes_srtdeel_key AND k.bes_kenmerk_niveau LIKE 'S')"
|
||||
+ " AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key"
|
||||
+ " AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key"
|
||||
+ " AND k.bes_kenmerk_verwijder IS NULL"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND k.bes_kenmerk_type = 'I') num_prop"
|
||||
+ ", (SELECT COUNT(bes_kenmerk_key)"
|
||||
+ " FROM bes_kenmerk k, bes_srtkenmerk sk"
|
||||
+ " WHERE (k.bes_srtinstallatie_key = " + disc_key + " AND k.bes_kenmerk_niveau LIKE 'D'"
|
||||
+ " OR k.bes_srtinstallatie_key = g.bes_srtgroep_key AND k.bes_kenmerk_niveau LIKE 'G'"
|
||||
+ " OR k.bes_srtinstallatie_key = d.bes_srtdeel_key AND k.bes_kenmerk_niveau LIKE 'S')"
|
||||
+ " AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key"
|
||||
+ " AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key"
|
||||
+ " AND k.bes_kenmerk_verwijder IS NULL"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND k.bes_kenmerk_type = 'I'"
|
||||
+ " AND k.bes_kenmerk_default LIKE '%##SQL##%') num_prssql"
|
||||
+ ", CASE bst.bes_staffeltabel_groep"
|
||||
|
||||
@@ -21,6 +21,11 @@ function onClickItem(tr)
|
||||
$(tr).toggleClass("selected");
|
||||
}
|
||||
|
||||
function onSelectAll()
|
||||
{
|
||||
$("table#besfavtable tr").addClass("selected");
|
||||
}
|
||||
|
||||
function onDblClickItem(tr) {
|
||||
$(tr).closest("table").find("tr").removeClass("selected"); // Alle andere regels deselecteren
|
||||
$(tr).addClass("selected");
|
||||
|
||||
@@ -37,9 +37,34 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver);
|
||||
$('textarea').autogrow();
|
||||
});
|
||||
|
||||
function hasInStock()
|
||||
{
|
||||
var max_o_i = $("#max_o_i").val();
|
||||
var art_text = "";
|
||||
var count_insuf = 0;
|
||||
for (var i = 0; i < max_o_i; i++)
|
||||
{
|
||||
var instock = parseInt($("#instock" + i).val(), 10);
|
||||
var delivered = parseInt($("#cnt" + i).val(), 10) || 0;
|
||||
var retour = instock < 0 || delivered < 0;
|
||||
if ((retour && instock > delivered) || (!retour && instock < delivered))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function opdr_submit()
|
||||
{
|
||||
if (hasBadFields())
|
||||
var max_o_i = $("#max_o_i").val();
|
||||
var valid = true;
|
||||
for (var i = 0; i < max_o_i; i++)
|
||||
{
|
||||
$("#cnt" + i).blur();
|
||||
valid = valid && !$("#cnt" + i).hasClass("bad");
|
||||
}
|
||||
if (!valid) return false;
|
||||
|
||||
if (hasBadFields() || !hasInStock())
|
||||
{
|
||||
FcltMgr.alert(L("lcl_shared_validator_invalid"));
|
||||
return false;
|
||||
@@ -59,10 +84,10 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver);
|
||||
var besopdr_id = "";
|
||||
for (i = 0; i < max_o_i; i++)
|
||||
{
|
||||
ontv = getFParamInt('cnt' + i, 0);
|
||||
oldcnt = getFParamInt('amto' + i);
|
||||
bokey = getFParamInt('bokey' + i);
|
||||
bikey = getFParamInt('bi_key' + i);
|
||||
ontv = getFParamInt("cnt" + i, 0);
|
||||
oldcnt = getFParamInt("amto" + i);
|
||||
bokey = getFParamInt("bokey" + i);
|
||||
bikey = getFParamInt("bi_key" + i);
|
||||
|
||||
if ( !isNaN(ontv) && ontv != 0 && !isNaN(oldcnt))
|
||||
{
|
||||
@@ -91,16 +116,24 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver);
|
||||
besopdr_id = oRs("bes_bestelopdr_id").Value;
|
||||
|
||||
trackarray.push(L("lcl_bes_delivery") + ": " + ontv + " " + item_oms);
|
||||
|
||||
// Aanmaken (Create), koppelen (Attach) of loskoppelen (Disconnect) van objecten aan of van de bestelopdracht (per bestelopdrachtregel).
|
||||
bes.createattachdisconnectObjects(opdr_key, bokey, ontv);
|
||||
}
|
||||
}
|
||||
// Laat de gevolgen bepalen..
|
||||
bes.updatebestelopdrstatus(opdr_key);
|
||||
// moet ik verdorie de bestelling_key nog speciaal ophalen..
|
||||
sql = "SELECT bes_bestelling_key"
|
||||
+ " FROM bes_bestelling_item"
|
||||
+ " WHERE bes_bestelling_item_key = " + bikey;
|
||||
sql = "SELECT bi.bes_bestelling_key"
|
||||
+ " , b.prs_perslid_key_voor"
|
||||
+ " FROM bes_bestelling_item bi"
|
||||
+ " , bes_bestelling b"
|
||||
+ " WHERE bi.bes_bestelling_key = b.bes_bestelling_key"
|
||||
+ " AND bes_bestelling_item_key = " + bikey;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
bes.updatebestellingstatus(oRs("bes_bestelling_key").value);
|
||||
var bes_key = oRs("bes_bestelling_key").Value;
|
||||
bes.updatebestellingstatus(bes_key);
|
||||
var prs_voor = oRs("prs_perslid_key_voor").Value;
|
||||
oRs.Close();
|
||||
|
||||
var newremark = getFParam("notsat", "");
|
||||
@@ -117,10 +150,28 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver);
|
||||
opdr_key,
|
||||
L("lcl_bes_is_bes2uptrack").format(S("bes_bestelopdr_prefix") + besopdr_id) + "\n" + trackarray.join("\n"));
|
||||
|
||||
// BESOT2 Notificaties sturen naar de prs_perslid_voor.
|
||||
// This notification is now sent on behalf of the system, what might be the local FM organisation
|
||||
var sql = "SELECT l.alg_locatie_email" // null as a string
|
||||
+ " FROM mld_adres ma, alg_locatie l, bes_bestelling b"
|
||||
+ " WHERE b.mld_adres_key_lev = ma.mld_adres_key"
|
||||
+ " AND ma.alg_locatie_key = l.alg_locatie_key"
|
||||
+ " AND b.bes_bestelling_key = " + bes_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
var lsender = oRs(0).Value;
|
||||
else
|
||||
var lsender = null;
|
||||
|
||||
Oracle.Execute("BEGIN fac.putnotificationsrtprio(NULL, " + prs_voor + ", 'BESOT2', " + bes_key + ", NULL, NULL, NULL, NULL, NULL, 2, " + (lsender ? safe.quoted_sql(lsender) : "NULL") + "); END;");
|
||||
|
||||
// Zijn er bijbehorende facturen die al zijn ingevoerd met de status "Ingevoerd(2)" die nog geapproved moeten worden?
|
||||
bes.autoapprovefactuur(opdr_key);
|
||||
|
||||
%> <script>FcltMgr.closeDetail(window, { } );</script>
|
||||
%> <script type="text/javascript">
|
||||
FcltMgr.closeDetail(window, { } );
|
||||
</script>
|
||||
|
||||
<% Response.End;
|
||||
}
|
||||
// end submitting
|
||||
@@ -135,42 +186,51 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver);
|
||||
%>
|
||||
<body class="modal" id="mod_beslever">
|
||||
<form action="opdr_delivery.asp?opdr_key=<%=opdr_key%>&submit=1" method=post name=u2 onsubmit="return false;">
|
||||
<% sql = "SELECT DISTINCT b.bes_bestelopdr_key,"
|
||||
+ " bd.prs_bedrijf_naam,"
|
||||
+ lcl.xsqla('s.bes_srtdeel_omschrijving','s.bes_srtdeel_key') +", "
|
||||
+ lcl.xsqla('s.bes_srtdeel_eenheid','s.bes_srtdeel_key') +", "
|
||||
+ " boi.bes_bestelopdr_item_prijs,"
|
||||
+ " bi.bes_bestelling_item_aantal,"
|
||||
+ " s.bes_srtdeel_key,"
|
||||
+ " bi.bes_bestelling_item_key,"
|
||||
+ " boi.bes_bestelopdr_item_aantal,"
|
||||
+ " boi.bes_bestelopdr_item_aantalontv,"
|
||||
+ " m.mld_adres_bezoek_adres || ' ' ||"
|
||||
<% sql = "SELECT DISTINCT b.bes_bestelopdr_key"
|
||||
+ " , bd.prs_bedrijf_naam"
|
||||
+ " , " + lcl.xsqla("s.bes_srtdeel_omschrijving", "s.bes_srtdeel_key")
|
||||
+ " , " + lcl.xsqla("s.bes_srtdeel_eenheid", "s.bes_srtdeel_key")
|
||||
+ " , boi.bes_bestelopdr_item_prijs"
|
||||
+ " , bi.bes_bestelling_item_aantal"
|
||||
+ " , s.bes_srtdeel_key"
|
||||
+ " , bi.bes_bestelling_item_key"
|
||||
+ " , boi.bes_bestelopdr_item_aantal"
|
||||
+ " , boi.bes_bestelopdr_item_aantalontv"
|
||||
+ " , m.mld_adres_bezoek_adres || ' ' ||"
|
||||
+ " m.mld_adres_bezoek_postcode || ' ' ||"
|
||||
+ " m.mld_adres_bezoek_plaats delivery_place, "
|
||||
+ " b.bes_bestelopdr_opmerking,"
|
||||
+ " bes.prs_perslid_key,"
|
||||
+ " boi.bes_bestelopdr_item_key,"
|
||||
+ " s.bes_srtdeel_nr,"
|
||||
+ " b.bes_bestelopdr_delivery_opmerk"
|
||||
+ " FROM ins_tab_discipline d, "
|
||||
+ " bes_srtgroep g,"
|
||||
+ " bes_srtdeel s,"
|
||||
+ " prs_bedrijf bd,"
|
||||
+ " bes_bestelopdr b,"
|
||||
+ " mld_adres m,"
|
||||
+ " bes_bestelling_item bi,"
|
||||
+ " bes_bestelopdr_item boi,"
|
||||
+ " bes_bestelling bes"
|
||||
+ " WHERE d.ins_discipline_key = g.ins_discipline_key AND"
|
||||
+ " g.bes_srtgroep_key = s.bes_srtgroep_key AND"
|
||||
+ " s.bes_srtdeel_key = bi.bes_srtdeel_key AND"
|
||||
+ " bi.bes_bestelling_key = bes.bes_bestelling_key AND"
|
||||
+ " b.bes_bestelopdr_key = boi.bes_bestelopdr_key AND"
|
||||
+ " bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key AND"
|
||||
+ " b.prs_bedrijf_key = bd.prs_bedrijf_key AND"
|
||||
+ " m.mld_adres_key(+)= b.mld_adres_key_lev AND"
|
||||
+ " b.bes_bestelopdr_key = " + opdr_key
|
||||
+ " m.mld_adres_bezoek_plaats delivery_place"
|
||||
+ " , b.bes_bestelopdr_opmerking"
|
||||
+ " , bes.prs_perslid_key"
|
||||
+ " , boi.bes_bestelopdr_item_key"
|
||||
+ " , s.bes_srtdeel_nr"
|
||||
+ " , b.bes_bestelopdr_delivery_opmerk"
|
||||
+ " , bdp.bes_disc_params_ins_mode"
|
||||
+ " , CASE"
|
||||
+ " WHEN bes.bes_bestelling_retourvan_key IS NOT NULL"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END isRetour"
|
||||
+ " , s.ins_srtdeel_key"
|
||||
+ " FROM ins_tab_discipline d"
|
||||
+ " , bes_disc_params bdp"
|
||||
+ " , bes_srtgroep g"
|
||||
+ " , bes_srtdeel s"
|
||||
+ " , prs_bedrijf bd"
|
||||
+ " , bes_bestelopdr b"
|
||||
+ " , mld_adres m"
|
||||
+ " , bes_bestelling_item bi"
|
||||
+ " , bes_bestelopdr_item boi"
|
||||
+ " , bes_bestelling bes"
|
||||
+ " WHERE d.ins_discipline_key = g.ins_discipline_key"
|
||||
+ " AND d.ins_discipline_key = bdp.bes_ins_discipline_key"
|
||||
+ " AND g.bes_srtgroep_key = s.bes_srtgroep_key"
|
||||
+ " AND s.bes_srtdeel_key = bi.bes_srtdeel_key"
|
||||
+ " AND bi.bes_bestelling_key = bes.bes_bestelling_key"
|
||||
+ " AND b.bes_bestelopdr_key = boi.bes_bestelopdr_key"
|
||||
+ " AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key"
|
||||
+ " AND b.prs_bedrijf_key = bd.prs_bedrijf_key"
|
||||
+ " AND m.mld_adres_key(+)= b.mld_adres_key_lev"
|
||||
+ " AND b.bes_bestelopdr_key = " + opdr_key
|
||||
+ " ORDER BY bes_srtdeel_nr";
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
@@ -198,6 +258,8 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver);
|
||||
</tr>
|
||||
<% while(!oRs.eof)
|
||||
{
|
||||
var fitemoms = oRs("bes_srtdeel_omschrijving").value;
|
||||
var fitemeenh = oRs("bes_srtdeel_eenheid").value || "";
|
||||
var fitemstr = oRs("bes_srtdeel_omschrijving").value + " (" + S("currency_pref") + safe.curr(oRs("bes_bestelopdr_item_prijs").value || 0)
|
||||
+ S("currency_suff") + "/" + (oRs("bes_srtdeel_eenheid").value || "") + ")";
|
||||
var fitemcnt = oRs("bes_bestelopdr_item_aantal").value;
|
||||
@@ -205,20 +267,37 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver);
|
||||
var oikey = oRs("bes_bestelopdr_item_key").value;
|
||||
var bi_key = oRs("bes_bestelling_item_key").value;
|
||||
|
||||
var ins_mode = oRs("bes_disc_params_ins_mode").Value; // Discipline is voor elke regel hetzelfde. Dus de mode ook.
|
||||
var instock;
|
||||
var isRetour = oRs("isRetour").Value == 1;
|
||||
var ins_srtdeel_key = oRs("ins_srtdeel_key").Value || -1;
|
||||
if (!isRetour && ins_mode > 0 && ins_srtdeel_key > 0)
|
||||
{
|
||||
var sql_instock = bes.getMatchObjectsSql(ins_srtdeel_key, bi_key, {getcount: true, retour: isRetour}); // isRetour is false.
|
||||
var oRsI = Oracle.Execute(sql_instock);
|
||||
instock = oRsI("aantal").Value;
|
||||
oRsI.Close();
|
||||
}
|
||||
%>
|
||||
<tr>
|
||||
<td><%=safe.html(oRs("bes_srtdeel_nr").value)%></td>
|
||||
<td><%=safe.html(fitemstr)%></td>
|
||||
<td align='right' valign='top'><nobr>
|
||||
<td>
|
||||
<%=safe.html(fitemstr)%>
|
||||
</td>
|
||||
<td align="right" valign="top"><nobr>
|
||||
<% if (!isRetour && ins_mode > 0 && ins_srtdeel_key > 0)
|
||||
{ %>
|
||||
<input type="hidden" id="itemeenh<%=count%>" name="itemeenh<%=count%>" value="<%=safe.html(fitemeenh)%>">
|
||||
<% } %>
|
||||
<% if (fitemcnttv != -1)
|
||||
{ %>
|
||||
<%=fitemcnt%>
|
||||
<input type='hidden' id='amto<%=count%>' name='amto<%=count%>'
|
||||
<input type="hidden" id="amto<%=count%>" name="amto<%=count%>"
|
||||
value='<%=fitemcnttv%>'>
|
||||
<% }%>
|
||||
</nobr>
|
||||
</td>
|
||||
<td align='right' valign='top'>
|
||||
<td align="right" valign="top">
|
||||
<% if (fitemcnttv != -1){%>
|
||||
<%=fitemcnttv%>
|
||||
<% }
|
||||
@@ -227,17 +306,21 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver);
|
||||
0
|
||||
<% } %>
|
||||
</td>
|
||||
<td align='right' valign='top'><NOBR>
|
||||
<td align="right" valign="top"><NOBR>
|
||||
<input type="text" maxlength=5 style="width:50px;text-align:right"
|
||||
onBlur='checkInput(event);' id='cnt<%=count%>' name='cnt<%=count%>'
|
||||
value=''>
|
||||
<input type='hidden' id='bokey<%=count%>' name='bokey<%=count%>' value='<%=oikey%>'>
|
||||
<input type='hidden' id='bi_key<%=count%>' name='bi_key<%=count%>' value='<%=bi_key%>'>
|
||||
onBlur="checkInput(event);" id="cnt<%=count%>" name="cnt<%=count%>"
|
||||
value="">
|
||||
<input type="hidden" id="bokey<%=count%>" name="bokey<%=count%>" value="<%=oikey%>">
|
||||
<input type="hidden" id="bi_key<%=count%>" name="bi_key<%=count%>" value="<%=bi_key%>">
|
||||
<% if (!isRetour && ins_mode > 0 && ins_srtdeel_key > 0)
|
||||
{ %>
|
||||
<input type="hidden" id="instock<%=count%>" name="instock<%=count%>" value="<%=instock%>">
|
||||
<% } %>
|
||||
</NOBR>
|
||||
</td>
|
||||
<td align='right' valign='top' id='remtd<%=count%>'>
|
||||
<td align="right" valign="top" id="remtd<%=count%>">
|
||||
<%=fitemcnt-fitemcnttv%>
|
||||
<input type='hidden' id='rem<%=count%>' name='rem<%=count%>' value='<%=fitemcnt-fitemcnttv%>'>
|
||||
<input type="hidden" id="rem<%=count%>" name="rem<%=count%>" value="<%=fitemcnt-fitemcnttv%>">
|
||||
</td>
|
||||
</tr>
|
||||
<%
|
||||
@@ -245,7 +328,13 @@ user.auth_required_or_abort(this_bestelopdr.canDeliver);
|
||||
count++;
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var ins_mode = <%=ins_mode%>;
|
||||
var ins_srtdeel_key = <%=ins_srtdeel_key%>;
|
||||
var isRetour = <%=isRetour? 1 : 0%> == 1;
|
||||
</script>
|
||||
<%
|
||||
BLOCK_END();
|
||||
%>
|
||||
<input type='hidden' id='max_o_i' name='max_o_i' value='<%=count%>'>
|
||||
|
||||
@@ -20,15 +20,40 @@ function checkInput(evt)
|
||||
|
||||
var i = obj.id.substring(3);
|
||||
var remaining = parseInt(document.getElementById('rem'+i).value,10);
|
||||
if( val == "" || val == 0 || (!isNaN(val) && isGoodNumber(val,true,false,-1,-1) &&
|
||||
((remaining > 0 && parseInt(val,10) >= 0) || (remaining < 0 && parseInt(val,10) <= 0)))) {
|
||||
if( val == "" ) val = 0;
|
||||
valid = !((remaining > 0 && val > remaining) || (remaining < 0 && val < remaining))
|
||||
error = L("lcl_bes_exceed_value")
|
||||
if (val == "" || val == 0 ||
|
||||
(!isNaN(val) && isGoodNumber(val, true, false, -1, -1) &&
|
||||
((remaining > 0 && parseInt(val, 10) >= 0) || (remaining < 0 && parseInt(val, 10) <= 0))))
|
||||
{
|
||||
if (val == "") val = 0;
|
||||
valid = !((remaining > 0 && val > remaining) || (remaining < 0 && val < remaining));
|
||||
error = L("lcl_bes_exceed_value");
|
||||
if (!isRetour && valid && ins_mode > 0 && ins_srtdeel_key > 0)
|
||||
{
|
||||
var instock = parseInt($("#instock" + i).val(), 10);
|
||||
var delivered = parseInt($("#cnt" + i).val(), 10) || 0;
|
||||
var retour = instock < 0 || delivered < 0;
|
||||
var itemeenh = $("#itemeenh" + i).val();
|
||||
if (retour)
|
||||
{
|
||||
valid = instock <= delivered;
|
||||
error = L("lcl_bes_insuf_return").format((instock * -1) + " " + itemeenh);
|
||||
}
|
||||
else
|
||||
{
|
||||
valid = instock >= delivered;
|
||||
error = L("lcl_bes_insuf_instock").format(instock + " " + itemeenh);
|
||||
}
|
||||
}
|
||||
else if (!isRetour && valid && ins_mode > 0 && ins_srtdeel_key < 0)
|
||||
{ // Zou niet voor moeten komen.
|
||||
valid = false;
|
||||
error = L("lcl_bes_notlinkedto_obj_type");
|
||||
iface.button.disable("btn_delivery_submit"); // Disable de "Opslaan" button.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
error = L("lcl_bes_bad_value")
|
||||
error = L("lcl_bes_bad_value");
|
||||
valid = false;
|
||||
}
|
||||
validateField(obj, valid, error);
|
||||
|
||||
@@ -63,10 +63,14 @@ function opdr_list (pautfunction, params)
|
||||
// params.besopdrstbev : boolean (true | false)
|
||||
// params.besopdrstlev : boolean (true | false)
|
||||
// params.besopdrstver : boolean (true | false)
|
||||
// params.flags : intArray [flagkeys {0-9}]
|
||||
|
||||
var authparams = user.checkAutorisation(pautfunction);
|
||||
|
||||
var urole = params.urole;
|
||||
var urole = params.urole;
|
||||
var fronto = (urole == "fo");
|
||||
var backo = (urole == "bo");
|
||||
var frontend = (urole == "fe");
|
||||
|
||||
// Voor resulttable de globalen zetten; zou ng anders moeten.
|
||||
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
|
||||
@@ -93,6 +97,7 @@ function opdr_list (pautfunction, params)
|
||||
var besopdrstbev = params.besopdrstbev;
|
||||
var besopdrstlev = params.besopdrstlev;
|
||||
var besopdrstver = params.besopdrstver;
|
||||
var flags = params.flags;
|
||||
|
||||
var showopdrstatus = "";
|
||||
if (besopdrstafg) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "1";
|
||||
@@ -125,6 +130,7 @@ function opdr_list (pautfunction, params)
|
||||
+ ", 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"
|
||||
+ ", b.bes_bestelopdr_flag"
|
||||
+ ", ma.mld_adres_naam afleveradres"
|
||||
+ ", bst.bes_bestelling_plaats"
|
||||
+ ", bst.bes_bestelling_leverdatum"
|
||||
@@ -226,6 +232,23 @@ function opdr_list (pautfunction, params)
|
||||
|
||||
if (supplier_key)
|
||||
sql += " AND be.prs_bedrijf_key = " + supplier_key;
|
||||
|
||||
if (!frontend && flags && flags.length > 0 && flags.length < S("bes_bestelopdr_flags"))
|
||||
{
|
||||
var filterNull = false;
|
||||
|
||||
for (var i = 0; i < flags.length; i++)
|
||||
{
|
||||
if (flags[i] === 0)
|
||||
{
|
||||
filterNull = true;
|
||||
}
|
||||
}
|
||||
|
||||
sql += " AND (b.bes_bestelopdr_flag IN (" + flags.join(",") + ")"
|
||||
+ (filterNull ? " OR b.bes_bestelopdr_flag IS NULL" : "")
|
||||
+ " )";
|
||||
}
|
||||
}
|
||||
|
||||
// apply 3D authorization to the locations and to the to the organisations (both ALG and PRS)
|
||||
@@ -307,6 +330,33 @@ function opdr_list (pautfunction, params)
|
||||
return safe.html(bestellingvoor);
|
||||
}
|
||||
|
||||
function fncolFlags(oRs)
|
||||
{
|
||||
var bestelopdr_key = oRs("bes_bestelopdr_key").Value;
|
||||
var flagkey = oRs("bes_bestelopdr_flag").Value || 0;
|
||||
var ttl = L("lcl_bestelopdr_flag" + flagkey);
|
||||
var displ = "";
|
||||
|
||||
if (print)
|
||||
{
|
||||
if (flagkey != 0) displ = safe.html(ttl); // else blijft-ie gewoon leeg
|
||||
}
|
||||
else if (excel) // dan gewoon maar de code, handig groeperen
|
||||
{
|
||||
displ = flagkey||"";
|
||||
}
|
||||
else // maak er dan nog leuke plaatjes van
|
||||
{
|
||||
var flagIcon = flagkey == 0 ? "fa-circle-o" : "fa-circle";
|
||||
// Met hidden flagkey voor sortering. 999 zorgt dat bij 1 keer sorteren de gevlagde direct bovenaan staan
|
||||
displ = "<div " + ((urole == "bo" || urole == "fo") ? "onclick='toggleBesopdrFlag(event, "+ bestelopdr_key +");'":"")
|
||||
+ " title='"+safe.htmlattr(ttl)+"'>"
|
||||
+ "<i id='besopdrflagimg"+bestelopdr_key+"' flagkey='"+flagkey+"' class='fa "+flagIcon+" besopdrflag"+flagkey+"'></i>"
|
||||
+ "<span style='display:none'>"+(flagkey||999)+"</span></div>";
|
||||
}
|
||||
return displ;
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({keyColumn: "bes_bestelopdr_key",
|
||||
ID: "opdrtable",
|
||||
rowData: fnrowData,
|
||||
@@ -319,6 +369,10 @@ function opdr_list (pautfunction, params)
|
||||
});
|
||||
|
||||
// Kolommen
|
||||
if (S("bes_bestelopdr_flags") > 0 && !frontend) // Flags
|
||||
{
|
||||
rst.addColumn(new Column({caption: (outputmode == 0 ? I("fa-circle") : L("lcl_bestelopdr_flags")), content: fncolFlags, align: "center"}));
|
||||
}
|
||||
rst.addColumn(new Column({caption: L("lcl_ord_order_num"), content: fncolBesOpdrId}));
|
||||
rst.addColumn(new Column({caption: L("lcl_bes_add_date"), content: "datum", datatype: "date"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_bes_Supplier"), content: "prs_bedrijf_naam", tooltip: "tooltip"}));
|
||||
|
||||
@@ -65,3 +65,32 @@ function opdrDeliver(row)
|
||||
FcltMgr.openModalDetail(url, L("lcl_bes_delivery"), {xwidth: 800});
|
||||
}
|
||||
}
|
||||
|
||||
function toggleBesopdrFlag(evt, besopdr_key)
|
||||
{
|
||||
FcltMgr.stopPropagation(evt);
|
||||
|
||||
var flagkey = $('#besopdrflagimg'+besopdr_key).attr('flagkey');
|
||||
var data = { besopdr_key: besopdr_key
|
||||
, flagkey : flagkey
|
||||
};
|
||||
protectRequest.dataToken(data);
|
||||
$.post("../bes/bes_flag.asp"
|
||||
, data
|
||||
, FcltCallbackAndThen(setBesopdrFlag)
|
||||
, "json"
|
||||
);
|
||||
}
|
||||
|
||||
function setBesopdrFlag(data)
|
||||
{ // Zet de flag en het volgnummer van de flag.
|
||||
var bes_key = data.besopdr_key;
|
||||
var flagkey = data.newflag;
|
||||
var flagimg = (flagkey == 0 ? 'fa fa-circle-o besopdrflag'+flagkey : 'fa fa-circle besopdrflag'+flagkey);
|
||||
|
||||
$('#besopdrflagimg'+bes_key).attr('flagkey', flagkey);
|
||||
$('#besopdrflagimg'+bes_key).attr('class', flagimg);
|
||||
$('#besopdrflagimg'+bes_key).parent().attr('title', L("lcl_bestelopdr_flag" + flagkey));
|
||||
$('#besopdrflagimg'+bes_key).next().text(flagkey||999); // Hidden span voor sorteren
|
||||
$('#opdrtable th').removeClass('sorttable_sorted sorttable_sorted_reverse'); // sortable cache't namelijk
|
||||
}
|
||||
@@ -27,7 +27,7 @@ var urole = getQParamSafe("urole", "bo");
|
||||
var fronto = urole == "fo";
|
||||
var backo = (urole == "bo" || urole == "br");
|
||||
var minfo = (urole == "mi");
|
||||
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
||||
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
|
||||
|
||||
var prs_key = getQParamInt("prs_key", -1); // Requestor_key
|
||||
var disc = getQParamInt("disc", -1); // catalogus
|
||||
@@ -149,6 +149,26 @@ oRs.Close();
|
||||
trclass: "secsearch"
|
||||
}) ;
|
||||
|
||||
if (!frontend && S("bes_bestelopdr_flags") > 1) // Flags checkboxen -->
|
||||
{
|
||||
%>
|
||||
<tr>
|
||||
<td class="label"><label><%=L("lcl_bestelopdr_flags")%>: </label></td>
|
||||
<td id="besFlags">
|
||||
<% for (flagkey=0; flagkey < S("bes_bestelopdr_flags"); flagkey++)
|
||||
{
|
||||
if (flagkey == 0)
|
||||
{
|
||||
%><label for="flag0"><input type="checkbox" name="flag0" id="flag0" checked> <%=safe.html(L("lcl_bestelopdr_flag0"))%></label><br>
|
||||
<% }
|
||||
else
|
||||
{
|
||||
%><label for="flag<%=flagkey%>"><input type="checkbox" name="flag<%=flagkey%>" id="flag<%=flagkey%>" checked><i class="fa fa-circle besopdrflag<%=flagkey%> besopdrs"></i> <%=safe.html(L("lcl_bestelopdr_flag"+flagkey))%></label><br>
|
||||
<% }
|
||||
} %>
|
||||
</td>
|
||||
</tr>
|
||||
<% }
|
||||
%>
|
||||
</table>
|
||||
</td><!-- end column 1 -->
|
||||
|
||||
@@ -65,6 +65,15 @@ else
|
||||
params.adr_key = (adr_key != -1 ? adr_key : null);
|
||||
params.loc_key = (loc_key != -1 ? loc_key : null);
|
||||
|
||||
// Flags
|
||||
var flags = [];
|
||||
for (flagkey=0; flagkey < S("bes_bestelopdr_flags"); flagkey++)
|
||||
{
|
||||
if (getQParam("flag" + flagkey, "off") == "on")
|
||||
flags.push(flagkey);
|
||||
}
|
||||
params.flags = flags;
|
||||
|
||||
// FORM checkboxes
|
||||
var st_opdrRej = (getQParamInt("opdrRej", 0) == 1);
|
||||
var st_opdrOpen = (getQParamInt("opdrOpen", 0) == 1);
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
<label><%=L("lcl_bes_fav_items_fl")%>:</label>
|
||||
<iframe width="100%" height="400" src="../Shared/empty.asp" name="workFrame" id="workFrame" frameborder="0"
|
||||
scrolling="auto" framespacing='0'
|
||||
xxonload="FcltMgr.iframeLoaded(this)">
|
||||
onload="FcltMgr.iframeLoaded(this, { largerOnly: true })">
|
||||
</iframe>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -18,13 +18,24 @@
|
||||
|
||||
*/
|
||||
|
||||
var lastsrtgroup_text = "";
|
||||
function AddAllItems(editable, show_received)
|
||||
{
|
||||
if (this.details_Items == null)
|
||||
return;
|
||||
|
||||
var table = $("#sel_items>tbody")[0];
|
||||
for (i in details_Items)
|
||||
{
|
||||
if (details_Items[i].srtgroup_text != lastsrtgroup_text)
|
||||
{
|
||||
var tr = table.insertRow(-1);
|
||||
tr.className = "bessrtgroepname";
|
||||
var cell = tr.insertCell(-1);
|
||||
cell.colSpan = 8 + (window.fotomode==1?1:0) + (show_received?1:0);
|
||||
$(cell).text(details_Items[i].srtgroup_text)
|
||||
}
|
||||
lastsrtgroup_text = details_Items[i].srtgroup_text;
|
||||
CreateRow(details_Items[i], details_Items[i].amount, (show_received? details_Items[i].received : -1), editable, details_Items[i].objFlex);
|
||||
}
|
||||
if (editable) StaffelKortingResult();
|
||||
@@ -65,7 +76,7 @@ function load_item_info(srtdeel_key, urole, aantal)
|
||||
|
||||
function getAantalArtikelen()
|
||||
{ // Hoeveel artikelen zijn er al geselecteerd
|
||||
return $("#sel_items>tbody>tr").length;
|
||||
return $("#sel_items>tbody>tr").not(".bessrtgroepname").length;
|
||||
}
|
||||
|
||||
function maxArtikelReached()
|
||||
@@ -322,6 +333,16 @@ function CreateRow(bes_item_info, aantal, received, editable, objFlex, urole)
|
||||
|
||||
var new_price = aantal * bes_item_info.price;
|
||||
|
||||
if (window.fotomode == 1)
|
||||
{
|
||||
// Create foto
|
||||
cell = tr.insertCell(-1);
|
||||
cell.vAlign = 'top';
|
||||
cell.className = 'bessrtdeelfoto';
|
||||
if (bes_item_info.srtdeel_image)
|
||||
$(cell).html("<img src='{0}'>".format(bes_item_info.srtdeel_image));
|
||||
}
|
||||
|
||||
// Create srtdeel
|
||||
cell = tr.insertCell(-1);
|
||||
cell.vAlign = 'top';
|
||||
@@ -370,7 +391,7 @@ function CreateRow(bes_item_info, aantal, received, editable, objFlex, urole)
|
||||
}
|
||||
cell.innerHTML += "<div id='div" + id_key + "' style='display: \"none\"'></div>"+ "</nobr>";
|
||||
|
||||
// Create order unity field
|
||||
// Create order unit field
|
||||
cell = tr.insertCell(-1);
|
||||
cell.vAlign = 'top';
|
||||
cell.innerHTML = "<nobr>" + bes_item_info.eenheid + "</nobr>";
|
||||
@@ -475,7 +496,7 @@ function checkInput()
|
||||
var filled_lines = 0;
|
||||
var blank_lines = 0;
|
||||
|
||||
$("#sel_items>tbody>tr").each(
|
||||
$("#sel_items>tbody>tr").not(".bessrtgroepname").each(
|
||||
function () {
|
||||
if (this.amount != 0)
|
||||
filled_lines++;
|
||||
@@ -500,7 +521,7 @@ function checkInput()
|
||||
var item_keys = [];
|
||||
var id_key = "";
|
||||
var p = 0;
|
||||
$("#sel_items>tbody>tr").each(
|
||||
$("#sel_items>tbody>tr").not(".bessrtgroepname").each(
|
||||
function () {
|
||||
id_key = this.bes_item_info.srtdeel_key + "_" + this.bes_item_info.item_key;
|
||||
if ($("#flexkeys" + id_key).val() != -1) {
|
||||
@@ -718,17 +739,20 @@ function StaffelKortingResult()
|
||||
var staffelItemArray = new Array();
|
||||
var json = null; // Bij isFreeArticle 'resultaat' van bes_gettotals.asp
|
||||
var anyFree = false; // Dan moeten we het helemaal clientside oplossen
|
||||
$("#sel_items>tbody>tr").each(
|
||||
$("#sel_items>tbody>tr").not(".bessrtgroepname").each(
|
||||
function () {
|
||||
json = json || { totaalbedrag: 0 }; // voor FreeArtikel
|
||||
json.totaalbedrag += this.amount * this.bes_item_info.price;
|
||||
anyFree = anyFree || this.bes_item_info.isFreeArticle // die gaan niet via bes_gettotals.asp dus zelf totaal bepalen
|
||||
json = json || { totaalbedrag: 0 }; // voor FreeArtikel
|
||||
json.totaalbedrag += this.amount * this.bes_item_info.price;
|
||||
anyFree = anyFree || this.bes_item_info.isFreeArticle // die gaan niet via bes_gettotals.asp dus zelf totaal bepalen
|
||||
|
||||
var srtdeel_key = this.bes_item_info.srtdeel_key;
|
||||
if (staffelItemArray[srtdeel_key]) // aantallen van een item bij elkaar optellen
|
||||
staffelItemArray[srtdeel_key].aantal += this.amount;
|
||||
else
|
||||
staffelItemArray[srtdeel_key] = new StaffelItem(srtdeel_key, this.amount, 10)
|
||||
var srtdeel_key = this.bes_item_info.srtdeel_key;
|
||||
if (this.amount)
|
||||
{
|
||||
if (staffelItemArray[srtdeel_key]) // aantallen van een item bij elkaar optellen
|
||||
staffelItemArray[srtdeel_key].aantal += this.amount;
|
||||
else
|
||||
staffelItemArray[srtdeel_key] = new StaffelItem(srtdeel_key, this.amount, 10)
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
@@ -764,7 +788,13 @@ function checkAmount(aantal_cell)
|
||||
var id_key = aantal_cell.id.substring(6);
|
||||
var valid = true;
|
||||
var error = "";
|
||||
if (aantal_cell.value == '') aantal_cell.value = amount = 1;
|
||||
if (aantal_cell.value == '')
|
||||
{
|
||||
if (window.bestelmode == 2) // Bij autobestellijst staan we gewoon 0 of leeg toen
|
||||
aantal_cell.value = amount = 0;
|
||||
else
|
||||
aantal_cell.value = amount = 1;
|
||||
}
|
||||
valid = !isNaN(amount) && isGoodNumber(aantal_cell.value, true,false,-1,-1) && amount <= 99999;
|
||||
validateField(aantal_cell, valid, L("lcl_bes_invalidAmount"));
|
||||
if (!valid)
|
||||
@@ -811,12 +841,15 @@ function checkAmount(aantal_cell)
|
||||
|
||||
// Als er items geleverd zijn, mag het aantal daar niet onder komen
|
||||
// Of laten we de leverancier dit dan gewoon afkeuren?
|
||||
if ((amount < tr.bes_item_info.received && tr.orgAmount >= 0) ||
|
||||
(amount > tr.bes_item_info.received && tr.orgAmount <= 0))
|
||||
if (bes_item_info.received > 0)
|
||||
{
|
||||
validateField(aantal_cell, false, L("lcl_bes_exceed_delivered"));
|
||||
return;
|
||||
}
|
||||
if ((amount < tr.bes_item_info.received && tr.orgAmount >= 0) ||
|
||||
(amount > tr.bes_item_info.received && tr.orgAmount <= 0))
|
||||
{
|
||||
validateField(aantal_cell, false, L("lcl_bes_exceed_delivered"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tr.amount = amount; // voor het gemak
|
||||
|
||||
@@ -231,7 +231,7 @@ bez =
|
||||
deleted = true;
|
||||
}
|
||||
oRs.Close();
|
||||
return deleted
|
||||
return deleted;
|
||||
},
|
||||
|
||||
deleteBezoekers:
|
||||
@@ -240,10 +240,10 @@ bez =
|
||||
var lmessage;
|
||||
// Gooi een bezoeker weg. Als het de enige is, dan wordt de
|
||||
// afspraak ook verwijderd, anders niet
|
||||
sql = "SELECT b.bez_afspraak_key"
|
||||
+ " FROM bez_bezoekers b"
|
||||
+ " WHERE b.bez_bezoekers_key = " + pBez_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
var sql = "SELECT b.bez_afspraak_key"
|
||||
+ " FROM bez_bezoekers b"
|
||||
+ " WHERE b.bez_bezoekers_key = " + pBez_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
// Extra controle tbv nogmaals deleten van een zojuist gedelete
|
||||
if (!oRs.eof)
|
||||
{
|
||||
@@ -258,6 +258,7 @@ bez =
|
||||
} else {
|
||||
lmessage = L("lcl_bez_already_deleted");
|
||||
}
|
||||
oRs.Close();
|
||||
return lmessage;
|
||||
},
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ var backo = urole == "bo";
|
||||
var minfo = urole == "mi";
|
||||
var frontend = (!fronto & !backo & !minfo);
|
||||
|
||||
var transitParam = buildTransitParam(["urole", "contactonly"]);
|
||||
var transitParam = buildTransitParam(["urole", "contactonly"], { urole: urole });
|
||||
|
||||
var rsv_ruimte_key = null;
|
||||
if (afspr_key > 0)
|
||||
|
||||
@@ -50,9 +50,14 @@ function bez_edit_bezoekers(afspraak_key, afspraak_begin, afspraak_eind, loc_key
|
||||
oRs.MoveNext();
|
||||
}
|
||||
|
||||
var alleen_afhandelingskenmerken = (!user.has("WEB_BEZBOF") || ( (S("bez_show_progress_prop") & 4) > 0) );
|
||||
var flexfilter = [];
|
||||
if (!user.has("WEB_BEZBOF"))
|
||||
var flexfilter_afhandel_default = [];
|
||||
if (alleen_afhandelingskenmerken)
|
||||
{
|
||||
flexfilter = ["k.bez_kenmerk_volgnr < 900"];
|
||||
flexfilter_afhandel_default = ["(k.bez_kenmerk_volgnr < 900 OR (k.bez_kenmerk_volgnr >= 900 AND k.bez_kenmerk_default IS NOT NULL))"];
|
||||
}
|
||||
|
||||
// else: kenmerken voor nieuwe bezoekers worden aangemaakt door load_kenmerk.asp
|
||||
|
||||
@@ -87,10 +92,10 @@ function bez_edit_bezoekers(afspraak_key, afspraak_begin, afspraak_eind, loc_key
|
||||
<span id="bezPrkFree"></span>
|
||||
<input type="hidden" name="prktype" id="prktype" value="<%=aantal_gebter == 0? "N" : (aantal_gebter == 1? "C" : "S")%>">
|
||||
</th>
|
||||
<% if (S("bez_set_remote_flags") > 0) // Authorisatie?
|
||||
{ %>
|
||||
<th><%=L("lcl_bez_remote")%></th>
|
||||
<% } %>
|
||||
<% if (S("bez_set_remote_flags") > 0) // Authorisatie?
|
||||
{ %>
|
||||
<th><%=L("lcl_bez_remote")%></th>
|
||||
<% } %>
|
||||
<% if (S("vis_bo_uses_badgenrs") == 1)
|
||||
{ %>
|
||||
<th><%=backo? L("lcl_vis_badgenr") : ""%></th>
|
||||
@@ -150,61 +155,61 @@ function bez_edit_bezoekers(afspraak_key, afspraak_begin, afspraak_eind, loc_key
|
||||
var next_vis = 1;
|
||||
var anydone = false;
|
||||
while (!oRs.eof)
|
||||
{ /* +1 uit eigen locatie,
|
||||
+2 uit andere locatie,
|
||||
+4 komt niet fysiek,
|
||||
+8 komt niet aan balie,
|
||||
+16 geen parkeerplaats */
|
||||
var bez_flags = oRs("bez_bezoekers_flags").Value;
|
||||
{ /* +1 uit eigen locatie,
|
||||
+2 uit andere locatie,
|
||||
+4 komt niet fysiek,
|
||||
+8 komt niet aan balie,
|
||||
+16 geen parkeerplaats */
|
||||
var bez_flags = oRs("bez_bezoekers_flags").Value;
|
||||
%>
|
||||
<tr id="trbez<%=next_vis%>">
|
||||
<td align="center">
|
||||
<% if (!res_ruimte_extern && oRs("bez_bezoekers_done").Value == null)
|
||||
{ %>
|
||||
<i class="fa fa-trash-o fa-lg fa-fw" title="<%=L("lcl_delete")%>" OnClick="deleteVisit(<%=next_vis%>)"></i>
|
||||
<tr id="trbez<%=next_vis%>">
|
||||
<td align="center">
|
||||
<% if (!res_ruimte_extern && oRs("bez_bezoekers_done").Value == null)
|
||||
{ %>
|
||||
<i class="fa fa-trash-o fa-lg fa-fw" title="<%=L("lcl_delete")%>" OnClick="deleteVisit(<%=next_vis%>)"></i>
|
||||
<%
|
||||
} else {
|
||||
anydone = true;
|
||||
}
|
||||
} else {
|
||||
anydone = true;
|
||||
}
|
||||
%>
|
||||
<input type="hidden" name="contkey<%=next_vis%>" id="contkey<%=next_vis%>"
|
||||
value="<%=oRs("prs_contactpersoon_key").Value||-1%>" >
|
||||
<input type="hidden" name="prskey<%=next_vis%>" id="prskey<%=next_vis%>"
|
||||
value="<%=oRs("prs_perslid_key").Value||-1%>" >
|
||||
</td>
|
||||
<% if (!params.contactonly && (S("bez_sel_contactpersoon") > 0 || S("bez_sel_internpersoon") == 1))
|
||||
{ %>
|
||||
<td>
|
||||
<i class="fa fa-user-o" title="<%=titel%>" onclick=selectPerson(<%=next_vis%>)> </i>
|
||||
</td>
|
||||
<% } else if (params.contactonly && S("bez_sel_contactpersoon") > 0) { %>
|
||||
<td>
|
||||
<i class="fa fa-lg fa-info-circle details" onclick=showPerson(<%=next_vis%>)> </i>
|
||||
</td>
|
||||
<% } %>
|
||||
<td>
|
||||
<% // ContactpersoonBedrijfSelected laadt nieuwe flexkenmerken en bijbehorende verplichte flexkenmerk bij personen zorgen er
|
||||
// ook voor dat personen eventueel verplicht wordt [checkRequiredGroup("10S" + params.suggestid.substr(3))];
|
||||
// Bij suggestbox met contactpersonen (params.contactonly) geen maximale lengte eis.
|
||||
var bezreado = res_ruimte_extern || oRs("prs_contactpersoon_key").Value != null || oRs("prs_perslid_key").Value != null
|
||||
RWFIELD("bez" + next_vis, "fld", "", oRs("bez_afspraak_naam").Value,
|
||||
{ maxlength: (params.contactonly? null : "30"), readonly: bezreado, html: (params.contactonly? "sgonChange='ContactpersoonBedrijfSelected'" : 'onChange="checkRequiredGroup(\'10S' + next_vis + '\')"') })
|
||||
<input type="hidden" name="contkey<%=next_vis%>" id="contkey<%=next_vis%>"
|
||||
value="<%=oRs("prs_contactpersoon_key").Value||-1%>" >
|
||||
<input type="hidden" name="prskey<%=next_vis%>" id="prskey<%=next_vis%>"
|
||||
value="<%=oRs("prs_perslid_key").Value||-1%>" >
|
||||
</td>
|
||||
<% if (!params.contactonly && (S("bez_sel_contactpersoon") > 0 || S("bez_sel_internpersoon") == 1))
|
||||
{ %>
|
||||
<td>
|
||||
<i class="fa fa-user-o" title="<%=titel%>" onclick=selectPerson(<%=next_vis%>)> </i>
|
||||
</td>
|
||||
<% } else if (params.contactonly && S("bez_sel_contactpersoon") > 0) { %>
|
||||
<td>
|
||||
<i class="fa fa-lg fa-info-circle details" onclick=showPerson(<%=next_vis%>)> </i>
|
||||
</td>
|
||||
<% } %>
|
||||
<td>
|
||||
<% // ContactpersoonBedrijfSelected laadt nieuwe flexkenmerken en bijbehorende verplichte flexkenmerk bij personen zorgen er
|
||||
// ook voor dat personen eventueel verplicht wordt [checkRequiredGroup("10S" + params.suggestid.substr(3))];
|
||||
// Bij suggestbox met contactpersonen (params.contactonly) geen maximale lengte eis.
|
||||
var bezreado = res_ruimte_extern || oRs("prs_contactpersoon_key").Value != null || oRs("prs_perslid_key").Value != null
|
||||
RWFIELD("bez" + next_vis, "fld", "", oRs("bez_afspraak_naam").Value,
|
||||
{ maxlength: (params.contactonly? null : "30"), readonly: bezreado, html: (params.contactonly? "sgonChange='ContactpersoonBedrijfSelected'" : 'onChange="checkRequiredGroup(\'10S' + next_vis + '\')"') })
|
||||
%>
|
||||
</td>
|
||||
<td>
|
||||
<% // Bij suggestbox met bedrijven (params.contactonly) geen maximale lengte eis.
|
||||
RWFIELD("bed" + next_vis, "fld", "", oRs("bez_afspraak_bedrijf").Value,
|
||||
{ maxlength: (params.contactonly? null : "60"), readonly: bezreado, html: (params.contactonly? "sgonChange='ContactpersoonBedrijfSelected'" : '') } )
|
||||
</td>
|
||||
<td>
|
||||
<% // Bij suggestbox met bedrijven (params.contactonly) geen maximale lengte eis.
|
||||
RWFIELD("bed" + next_vis, "fld", "", oRs("bez_afspraak_bedrijf").Value,
|
||||
{ maxlength: (params.contactonly? null : "60"), readonly: bezreado, html: (params.contactonly? "sgonChange='ContactpersoonBedrijfSelected'" : '') } )
|
||||
%>
|
||||
</td>
|
||||
<% if (S("vis_remark") == 1 || S("vis_remark") == 2)
|
||||
{
|
||||
%> <td> <%
|
||||
RWFIELD("opm" + next_vis, "fld", "", oRs("bez_bezoekers_opmerking").Value, { maxlength: 50 } );
|
||||
%> </td> <%
|
||||
}
|
||||
</td>
|
||||
<% if (S("vis_remark") == 1 || S("vis_remark") == 2)
|
||||
{
|
||||
%> <td> <%
|
||||
RWFIELD("opm" + next_vis, "fld", "", oRs("bez_bezoekers_opmerking").Value, { maxlength: 50 } );
|
||||
%> </td> <%
|
||||
}
|
||||
%>
|
||||
<td>
|
||||
<td>
|
||||
<!--Gebouw/Terrein-->
|
||||
<div id="selectprkdiv<%=next_vis%>" name="selectprkdiv<%=next_vis%>" style="display: <%=S("vis_parking_key") != -1 && this_bez.canWritePrk && aantal_gebter == 1? "block" : "none"%>">
|
||||
<input type="checkbox" id="prk<%=next_vis%>" <%=((bez_flags&16)==16?"disabled=1":"")%> name="prk<%=next_vis%>" <%=oRs("res_rsv_deel_key").Value != null? "CHECKED " : ""%>>
|
||||
@@ -231,77 +236,82 @@ function bez_edit_bezoekers(afspraak_key, afspraak_begin, afspraak_eind, loc_key
|
||||
<div style="display: none">
|
||||
<input type="text" id="prkselect<%=next_vis%>" name="prkselect<%=next_vis%>" value="<%=aantal_gebter > 1? "S" : "C"%>"> <% /* "S"=suggestboxen, "C"=checkboxen */ %>
|
||||
</div>
|
||||
<% /* if (S("vis_parking_key") != -1 && this_bez.canWritePrk) CHECKBOX("", "prk" + next_vis, oRs("res_rsv_deel_key").value != null) */ %>
|
||||
</td>
|
||||
<% if (S("bez_set_remote_flags") > 0) // Authorisatie?
|
||||
{ %>
|
||||
<td align="center">
|
||||
<input type="checkbox" id="remote<%=next_vis%>" name="remote<%=next_vis%>" <%=(bez_flags&S("bez_set_remote_flags")) == S("bez_set_remote_flags")? "CHECKED " : ""%>>
|
||||
</td>
|
||||
<% } %>
|
||||
<% if (S("vis_bo_uses_badgenrs") == 1)
|
||||
{ %>
|
||||
<td align="left"><input type="<%=backo?"text":"hidden"%>" class="fldbadge" name="bdg<%=next_vis%>" maxlength="30" value="<%=safe.htmlattr(oRs("bez_bezoekers_pasnr").Value)%>"></td>
|
||||
<% } %>
|
||||
<% var ptmpfolder;
|
||||
|
||||
if (S("bez_max_flex_on_line") > 0)
|
||||
{
|
||||
ptmpfolder = generateFlexKenmerkCode ({ urole: urole,
|
||||
bez_key : oRs("bez_bezoekers_key").Value,
|
||||
afspraak_key: afspraak_key,
|
||||
reado: false,
|
||||
flexcolumns: S("bez_flexcolumns"),
|
||||
beznum: next_vis,
|
||||
requiredbyfield: "bez" + next_vis,
|
||||
notr: true,
|
||||
flexend: parseInt(S("bez_max_flex_on_line"), 10),
|
||||
nolabel: true,
|
||||
getTmpfolder: true, // Geef de tijdelijke folder terug waar bestanden zijn opgeslagen.
|
||||
filter: flexfilter
|
||||
});
|
||||
}
|
||||
<% /* if (S("vis_parking_key") != -1 && this_bez.canWritePrk) CHECKBOX("", "prk" + next_vis, oRs("res_rsv_deel_key").value != null) */ %>
|
||||
</td>
|
||||
<% if (S("bez_set_remote_flags") > 0) // Authorisatie?
|
||||
{ %>
|
||||
<td align="center">
|
||||
<input type="checkbox" id="remote<%=next_vis%>" name="remote<%=next_vis%>" <%=(bez_flags&S("bez_set_remote_flags")) == S("bez_set_remote_flags")? "CHECKED " : ""%>>
|
||||
</td>
|
||||
<% } %>
|
||||
<% if (S("vis_bo_uses_badgenrs") == 1)
|
||||
{ %>
|
||||
<td align="left"><input type="<%=backo?"text":"hidden"%>" class="fldbadge" name="bdg<%=next_vis%>" maxlength="30" value="<%=safe.htmlattr(oRs("bez_bezoekers_pasnr").Value)%>"></td>
|
||||
<% } %>
|
||||
<% var ptmpfolder;
|
||||
|
||||
if (S("bez_max_flex_on_line") > 0)
|
||||
{
|
||||
ptmpfolder = generateFlexKenmerkCode ({ urole: urole,
|
||||
bez_key : oRs("bez_bezoekers_key").Value,
|
||||
afspraak_key: afspraak_key,
|
||||
reado: false,
|
||||
flexcolumns: S("bez_flexcolumns"),
|
||||
beznum: next_vis,
|
||||
requiredbyfield: "bez" + next_vis,
|
||||
notr: true,
|
||||
flexend: parseInt(S("bez_max_flex_on_line"), 10),
|
||||
nolabel: true,
|
||||
getTmpfolder: true, // Geef de tijdelijke folder terug waar bestanden zijn opgeslagen.
|
||||
filter: flexfilter_afhandel_default,
|
||||
hidedefault: true
|
||||
});
|
||||
}
|
||||
%>
|
||||
</tr>
|
||||
<tr id="trbez<%=next_vis%>flex"><td></td>
|
||||
<% if (S("bez_sel_contactpersoon") > 0 || (!params.contactonly && S("bez_sel_internpersoon") == 1))
|
||||
{ %>
|
||||
<td></td>
|
||||
<% } %>
|
||||
<td colspan="2">
|
||||
<div class="bezflex">
|
||||
<table id="bezFlexListB<%=next_vis%>"><tbody>
|
||||
</tr>
|
||||
<tr id="trbez<%=next_vis%>flex"><td></td>
|
||||
<% if (S("bez_sel_contactpersoon") > 0 || (!params.contactonly && S("bez_sel_internpersoon") == 1))
|
||||
{ %>
|
||||
<td></td>
|
||||
<% } %>
|
||||
<td colspan="2">
|
||||
<div class="bezflex">
|
||||
<table id="bezFlexListB<%=next_vis%>">
|
||||
<tbody>
|
||||
<%
|
||||
generateFlexKenmerkCode ({ urole: urole,
|
||||
bez_key : oRs("bez_bezoekers_key").Value,
|
||||
afspraak_key: afspraak_key,
|
||||
reado: false,
|
||||
flexcolumns: S("bez_flexcolumns"),
|
||||
beznum: next_vis,
|
||||
requiredbyfield: "bez" + next_vis,
|
||||
flexstart: parseInt(S("bez_max_flex_on_line"), 10) + 1,
|
||||
tmpfolder: ptmpfolder, // Als er een tijdelijke folder bekend is dan deze meegeven.
|
||||
filter: flexfilter
|
||||
});
|
||||
generateFlexKenmerkCode ({ urole: urole,
|
||||
bez_key : oRs("bez_bezoekers_key").Value,
|
||||
afspraak_key: afspraak_key,
|
||||
reado: false,
|
||||
flexcolumns: S("bez_flexcolumns"),
|
||||
beznum: next_vis,
|
||||
requiredbyfield: "bez" + next_vis,
|
||||
flexstart: parseInt(S("bez_max_flex_on_line"), 10) + 1,
|
||||
tmpfolder: ptmpfolder, // Als er een tijdelijke folder bekend is dan deze meegeven.
|
||||
filter: flexfilter_afhandel_default,
|
||||
hidedefault: true
|
||||
});
|
||||
%>
|
||||
</tbody></table>
|
||||
<input type=hidden id="bez_key<%=next_vis%>" name="bez_key<%=next_vis%>" value="<%=oRs("bez_bezoekers_key").Value%>">
|
||||
<div id="bezFlexListA<%=next_vis%>" style="display:none"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<% next_vis++;
|
||||
oRs.MoveNext();
|
||||
}
|
||||
} %>
|
||||
</tbody>
|
||||
</table>
|
||||
<input type=hidden id="bez_key<%=next_vis%>" name="bez_key<%=next_vis%>" value="<%=oRs("bez_bezoekers_key").Value%>">
|
||||
<div id="bezFlexListA<%=next_vis%>" style="display:none"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<% next_vis++;
|
||||
oRs.MoveNext();
|
||||
}
|
||||
} %>
|
||||
|
||||
<tr><td>
|
||||
<tr>
|
||||
<td>
|
||||
<input type='hidden' id='next_vis' name='next_vis' value=<%=next_vis%>>
|
||||
<% if (anydone) { /* dan niet meer import-vervang */ %>
|
||||
<input type="hidden" id="anydone" value="1">
|
||||
<% } %>
|
||||
</td></tr>
|
||||
<% if (anydone) { /* dan niet meer import-vervang */ %>
|
||||
<input type="hidden" id="anydone" value="1">
|
||||
<% } %>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<style>
|
||||
@@ -313,12 +323,12 @@ function bez_edit_bezoekers(afspraak_key, afspraak_begin, afspraak_eind, loc_key
|
||||
buttons = [{ title: L("lcl_more_vis"), icon: "plus.png", action: "more_visit(" + S("vis_increment_number") + ")", id:"btn_bez_morevis" }];
|
||||
if (!params.contactonly)
|
||||
buttons.push({ title: L("lcl_bez_import_lijst"), icon: "bezimport.png", action: "import_visit()", id:"btn_bez_import" })
|
||||
%><div id="morebuttons"><%
|
||||
if (!res_ruimte_extern)
|
||||
CreateButtons(buttons, { showIcons: true });
|
||||
%> <div id="morebuttons"><%
|
||||
if (!res_ruimte_extern)
|
||||
CreateButtons(buttons, { showIcons: true });
|
||||
%> </div><%
|
||||
}
|
||||
%>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
more_visit(<%=params.autoadd || 0%>);
|
||||
var vis_parking_key = <%=S("vis_parking_key")%>;
|
||||
@@ -327,12 +337,12 @@ function bez_edit_bezoekers(afspraak_key, afspraak_begin, afspraak_eind, loc_key
|
||||
var bez_sel_contactpersoon = <%=S("bez_sel_contactpersoon")%>;
|
||||
// Aantal kolommen zonder de flexkenmerken.
|
||||
var aantal_std_td = 4 + <%=((S("bez_sel_contactpersoon") > 0 || (!params.contactonly && S("bez_sel_internpersoon") == 1)) ? 1 : 0)%>
|
||||
+ <%=((S("vis_bo_uses_badgenrs") == 1)? 1 : 0)%>
|
||||
+ <%=((S("vis_remark") == 1 || S("vis_remark") == 2)? 1 : 0)%>
|
||||
+ <%=((S("vis_bo_uses_badgenrs") == 1) ? 1 : 0)%>
|
||||
+ <%=((S("vis_remark") == 1 || S("vis_remark") == 2) ? 1 : 0)%>
|
||||
+ <%=((S("bez_set_remote_flags") > 0)? 1 : 0)%>;
|
||||
<% if (params.contactonly) { /* automatisch contactpersonificeren */ %>
|
||||
makeContactSuggest();
|
||||
<% } %>
|
||||
<% if (params.contactonly) { /* automatisch contactpersonificeren */ %>
|
||||
makeContactSuggest();
|
||||
<% } %>
|
||||
|
||||
<% if (params.contactonly)
|
||||
{ %>
|
||||
|
||||
@@ -326,9 +326,12 @@ function saveOneBezoeker(afspraak_key, rsv_ruimte_key, bznum, params)
|
||||
{ dbs: "prs_perslid_key", typ: "key", frm: "prskey" + bznum, track: L("lcl_intern_pers"), foreign: "prs_perslid" },
|
||||
{ dbs: "bez_afspraak_naam", typ: "varchar", val: beznaam, track: L("lcl_vis_name"), len: 30 },
|
||||
{ dbs: "bez_afspraak_bedrijf", typ: "varchar", val: bed, track: L("lcl_vis_company") + (S("bez_sel_internpersoon") == 1? "/" + L("lcl_department") : ""), len: 60 },
|
||||
{ dbs: "bez_bezoekers_pasnr", typ: "varchar", val: bdg, track: L("lcl_vis_badgenr") },
|
||||
{ dbs: "bez_bezoekers_opmerking", typ: "varchar", val: opm, track: L("lcl_vis_remark") }
|
||||
{ dbs: "bez_bezoekers_pasnr", typ: "varchar", val: bdg, track: L("lcl_vis_badgenr") }
|
||||
];
|
||||
if (S("vis_remark") == 1 || S("vis_remark") == 2) // voorkom dat hij wordt gewist bij vis_remark==3 (readonly)
|
||||
{
|
||||
bezfields.push({ dbs: "bez_bezoekers_opmerking", typ: "varchar", val: opm, track: L("lcl_vis_remark") });
|
||||
}
|
||||
|
||||
if (bez_key == -1)
|
||||
{
|
||||
@@ -500,8 +503,11 @@ function saveOneBezoeker(afspraak_key, rsv_ruimte_key, bznum, params)
|
||||
+ " AND bez_bezoekers_key = " + bez_key;
|
||||
|
||||
var allKenmerkenSQL = " SELECT " + lcl.xsql('k.bez_kenmerk_omschrijving', 'k.bez_kenmerk_key') + " kenmerk_omschrijving"
|
||||
+ " , bez_kenmerk_key srtkenmerk_key"
|
||||
+ " , fac_kenmerkdomein_key"
|
||||
+ ", k.bez_kenmerk_kenmerktype kenmerk_kenmerktype"
|
||||
+ ", k.bez_kenmerk_systeem kenmerk_systeem"
|
||||
+ ", k.bez_kenmerk_toonbaar kenmerk_readonly"
|
||||
+ ", k.bez_kenmerk_uniek kenmerk_uniek"
|
||||
+ ", fac_kenmerkdomein_key"
|
||||
+ " FROM bez_kenmerk k"
|
||||
+ " WHERE k.bez_kenmerk_verwijder IS NULL"
|
||||
+ " AND k.bez_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user