109 Commits

Author SHA1 Message Date
ebb5936377 FMHN#80859 r62550 refactored en verplaatst van 2023.3 Gold A naar 2023.2 Gold E
svn path=/Website/branches/v2023.2/; revision=62553
2023-11-10 13:52:06 +00:00
5ef8fba144 FMHN#80733 resevering_key/volgnr tonen ipv res_rsv_ruimte_key, en default host_key moet als FE'er altijd je zelf zijn
svn path=/Website/branches/v2023.2/; revision=62455
2023-11-03 13:07:45 +00:00
969d178b9d FMHN#80646 FCLT#79969 ook in 2023.2 Gold E
svn path=/Website/branches/v2023.2/; revision=62373
2023-10-30 10:26:03 +00:00
Jos Groot Lipman
cf33956175 PROR#79462 Outlook-koppeling deadlocks
svn path=/Website/branches/v2023.2/; revision=62058
2023-10-05 10:54:32 +00:00
Jos Groot Lipman
26b3247fea Release 2023.2 Gold D
svn path=/Website/branches/v2023.2/; revision=62047
2023-10-05 07:26:26 +00:00
Jos Groot Lipman
2c6c5a726c BVB1#79194 MJOB scherm controleert niet op INS rechten
svn path=/Website/branches/v2023.2/; revision=61898
2023-09-26 13:20:16 +00:00
Jos Groot Lipman
12fc92b906 YKPN#80168 Fout bij toevoegen object aan melding via een API2 POST request
svn path=/Website/branches/v2023.2/; revision=61884
2023-09-25 08:09:58 +00:00
Jos Groot Lipman
666e902ea9 FCLT#79972 Custom-queue portal teller opsplitsen in oud en nieuw
svn path=/Website/branches/v2023.2/; revision=61850
2023-09-20 08:42:10 +00:00
Jos Groot Lipman
2d39456578 MAAS#79984 Accorderen lukt niet op cluster niveau testomgeving
svn path=/Website/branches/v2023.2/; revision=61838
2023-09-19 13:50:16 +00:00
Erik Groener
94c9f4cef1 YASK#79849 Graag veld startmelding toevoegen aan de issues API
svn path=/Website/branches/v2023.2/; revision=61776
2023-09-12 08:41:08 +00:00
Erik Groener
59f858fb76 YASK#79849 Graag veld startmelding toevoegen aan de issues API
svn path=/Website/branches/v2023.2/; revision=61773
2023-09-12 06:27:35 +00:00
943f7a681b Release 2023.2 Gold C
svn path=/Website/branches/v2023.2/; revision=61727
2023-09-05 20:48:35 +00:00
89e0b6b366 FCLT#79516 Mobile begint met een hoofdletter en matched niets viel me op
svn path=/Website/branches/v2023.2/; revision=61722
2023-09-05 16:43:56 +00:00
43b3dd0f82 PROR#79954 geen directe room-events imorteren bij sync_level & 2
svn path=/Website/branches/v2023.2/; revision=61701
2023-09-04 12:38:35 +00:00
29b91963fa DRIE#79946 parseInt("string") -> Number
svn path=/Website/branches/v2023.2/; revision=61698
2023-09-04 10:45:30 +00:00
fc13609e92 FCLT#79940 quickfix
svn path=/Website/branches/v2023.2/; revision=61693
2023-09-01 13:47:02 +00:00
886c1ba0c9 FCLT#79516 prs_perslid_inactief toegevoegd aan 'Elke tabel bekijken'
svn path=/Website/branches/v2023.2/; revision=61688
2023-09-01 11:14:40 +00:00
7728ed87ee PNBR#79811 move_new_bb_files niet aanroepen vanuit de API
svn path=/Website/branches/v2023.2/; revision=61569
2023-08-24 12:44:42 +00:00
f09afea57d PNBR#79811 de bb_files niet zelf ophalen maar meegeven als argument van move_new_bb_files()
svn path=/Website/branches/v2023.2/; revision=61568
2023-08-24 10:34:38 +00:00
Jos Groot Lipman
a265670b4f FCLT#79516 Profiel-> rapport en appregistratie overzicht beter scheiden
svn path=/Website/branches/v2023.2/; revision=61543
2023-08-23 09:05:27 +00:00
Jos Groot Lipman
3712b6c19e UWVA#79728 'slepen' van reserveringen op het planbord
svn path=/Website/branches/v2023.2/; revision=61524
2023-08-22 12:21:15 +00:00
91a30de42c NYBU#79669 aantal niet opvragen indien gegroepeerd op rsv
svn path=/Website/branches/v2023.2/; revision=61492
2023-08-18 10:43:31 +00:00
Jos Groot Lipman
201a5cad4a HCAS#79268 SAML EntityId moet bewerkbaar blijven
svn path=/Website/branches/v2023.2/; revision=61483
2023-08-17 11:58:59 +00:00
Erik Groener
9cf1349c50 FMHN#79593 Bij reserveringen word de bijlagen niet mee gestuurd
svn path=/Website/branches/v2023.2/; revision=61454
2023-08-15 10:17:45 +00:00
b2c129d945 FCLT#79622 de variabele-naam 'url' conflicteert met die uit common.inc als je via pda/productsearch komt
svn path=/Website/branches/v2023.2/; revision=61452
2023-08-15 08:29:39 +00:00
Maykel Geerdink
576187c2d6 WOHW#79637: Herplannen taken in scenario's werkt niet.
svn path=/Website/branches/v2023.2/; revision=61451
2023-08-15 08:11:14 +00:00
Maykel Geerdink
9b171120c5 WOHW#79640: Doorvoeren van scenario's gaat niet goed.
svn path=/Website/branches/v2023.2/; revision=61450
2023-08-15 07:41:45 +00:00
7d9c9650cb AAGN#79632 ook in puo; imgstart en imgend elke iteratie updaten
svn path=/Website/branches/v2023.2/; revision=61442
2023-08-14 09:38:24 +00:00
Maykel Geerdink
8424ac811e KMMO#79106: In de opdracht onder MJOB uitvoeringsmelding kun je objecten verwijderen/toeveog.
svn path=/Website/branches/v2023.2/; revision=61423
2023-08-10 07:30:44 +00:00
Maykel Geerdink
3a4d5980cf KMMO#79106: In de opdracht onder MJOB uitvoeringsmelding kun je objecten verwijderen/toeveog.
svn path=/Website/branches/v2023.2/; revision=61419
2023-08-09 14:51:17 +00:00
Maykel Geerdink
7de2e7773f VOLK#79590: in de afdruk van afhandelen reservering wordt niet alle informatie meegenomen.
svn path=/Website/branches/v2023.2/; revision=61418
2023-08-09 13:26:39 +00:00
Maykel Geerdink
c7ce4b8c6d WOIJ#79519: Vervaldatum of aangepaste cyclus wordt niet onthouden.
WOHA#79578: Wijzigen prijzen in MJOB console werkt niet meer.

svn path=/Website/branches/v2023.2/; revision=61410
2023-08-09 07:50:59 +00:00
99c579e6b4 FCLT#79535 "aantal" toegevoegd aan de gegroepeerde query
svn path=/Website/branches/v2023.2/; revision=61382
2023-08-07 07:19:18 +00:00
f8bc90de46 FCLT#79531 params.filter niet meer (altijd) met een String(pKey) overschrijven
svn path=/Website/branches/v2023.2/; revision=61378
2023-08-04 15:24:51 +00:00
cb4545dbec FCLT#79526 imgstart en imgend elke iteratie updaten
svn path=/Website/branches/v2023.2/; revision=61371
2023-08-04 12:59:35 +00:00
52dab4cd8c FCLT#79202 Revert van het savepoint tbv de 2023.2 Gold B release
svn path=/Website/branches/v2023.2/; revision=61367
2023-08-03 17:14:34 +00:00
Jos Groot Lipman
e906a99068 Release 2023.2 Gold B
svn path=/Website/branches/v2023.2/; revision=61365
2023-08-03 14:56:20 +00:00
Maykel Geerdink
30b310dbaa RABO#79495: Freezeyear ophogen naar 2024 - De uitvoeringconsole geeft dan AiAi.
svn path=/Website/branches/v2023.2/; revision=61364
2023-08-03 13:35:10 +00:00
Jos Groot Lipman
7878496362 AAIT#79506 Dienstniveau wordt na wijzigen leeg en overschreven
svn path=/Website/branches/v2023.2/; revision=61363
2023-08-03 13:21:35 +00:00
Jos Groot Lipman
4540f0b01a LOGC#79493 AiAi bij openen melding met meerdere MLDAFM tracking
svn path=/Website/branches/v2023.2/; revision=61359
2023-08-03 07:42:24 +00:00
Maykel Geerdink
4ccf1cb544 WOHW#79398: AiAi in Acceptatie omgeving WOHW - logfile 216mb.
svn path=/Website/branches/v2023.2/; revision=61354
2023-08-02 14:15:49 +00:00
ef5d4fe51d ALLR#79438 Knip hewt onderwerp af zodat de update_exchange-procedure ermee overweg kan
svn path=/Website/branches/v2023.2/; revision=61353
2023-08-02 14:08:22 +00:00
30f78f6647 ALLR#79484 Het organizerEventID updaten adhv de juiste ruimte
svn path=/Website/branches/v2023.2/; revision=61350
2023-08-02 10:41:32 +00:00
8bd35ff260 FCLT#79367 Als de reservering niet gekoppeld was kunnen we hem ook niet verwijderen (2/2)
svn path=/Website/branches/v2023.2/; revision=61349
2023-08-02 10:07:42 +00:00
Jos Groot Lipman
f13244110e FCLT#79367 cad_verify.asp iets beter geklikte (en herkende) contournummer tonen
svn path=/Website/branches/v2023.2/; revision=61348
2023-08-02 09:34:40 +00:00
ad4dbaf278 ALLR#79421 Ook aan de import-procedure het geconfigureerde tijdsframe meegeven
svn path=/Website/branches/v2023.2/; revision=61342
2023-08-01 13:53:06 +00:00
b9cd0321d3 ALLR#79421 Ook aan import-functies extra parameters mee kunnen geven
svn path=/Website/branches/v2023.2/; revision=61341
2023-08-01 13:52:24 +00:00
919d8189ba FCLT#79439 de overrule is nu natuurlijk helemaal niet meer nodig ..
svn path=/Website/branches/v2023.2/; revision=61340
2023-08-01 13:48:25 +00:00
ac55fc3f44 FCLT#79367 Ook timeouts van batched-requests opgehoogd
svn path=/Website/branches/v2023.2/; revision=61336
2023-08-01 11:47:03 +00:00
d12a184280 FCLT#79367 Als de reservering niet gekoppeld was kunnen we hem ook niet verwijderen
svn path=/Website/branches/v2023.2/; revision=61333
2023-08-01 08:07:59 +00:00
8f9e4cf196 FCLT#79439 Revert vd mld_autolink_regexp instelling
svn path=/Website/branches/v2023.2/; revision=61331
2023-07-31 15:35:12 +00:00
934714d87d FCLT#79367 Timeouts omhoog
svn path=/Website/branches/v2023.2/; revision=61324
2023-07-28 15:58:10 +00:00
Erik Groener
43d4440286 FCLT#79202 Nieuwspagina only berichten verschijnen niet; savepoint
svn path=/Website/branches/v2023.2/; revision=61322
2023-07-28 11:13:57 +00:00
e0ea34c55d FCLT#79367 externnr2 ook kunnen aanpassen bij 'elke tabel bekijken'
svn path=/Website/branches/v2023.2/; revision=61321
2023-07-28 10:36:35 +00:00
38a6c76910 FCLT#79387 Synchroniseer-knop alleen tonen als er reserveringen bestaan in het geconfigureerde tijdsframe
svn path=/Website/branches/v2023.2/; revision=61313
2023-07-27 09:27:57 +00:00
4833a51a40 FCLT#79367 pop-up weer bovenin het scherm
svn path=/Website/branches/v2023.2/; revision=61304
2023-07-26 12:27:59 +00:00
1786d9682c FCLT#77238 hoort bij; BLCC#77343; ook nieuwe reserveringen op gekoppelde ruimtes mogen niet dirty zijn
svn path=/Website/branches/v2023.2/; revision=61295
2023-07-25 11:13:58 +00:00
8c6293a240 FCLT#79333 komma
svn path=/Website/branches/v2023.2/; revision=61287
2023-07-24 14:49:21 +00:00
89547ce7c9 FCLT#79333 fclt-links ook in chat opnemen, fixes
svn path=/Website/branches/v2023.2/; revision=61286
2023-07-24 14:41:58 +00:00
bea17906ab FMHN#79301 Multiselect-filters ook meenemen bij de klikactie
svn path=/Website/branches/v2023.2/; revision=61280
2023-07-24 10:27:41 +00:00
65a7467d5d RWSN#78906 Eerst de kenmerken afwachten alvorens te submitten
svn path=/Website/branches/v2023.2/; revision=61272
2023-07-21 11:57:17 +00:00
725bfff46b BLST#79278 contentType = false om als multipart/form-data te versturen
svn path=/Website/branches/v2023.2/; revision=61268
2023-07-21 08:38:26 +00:00
b52673b8fb FCLT#79290 reshuffle
svn path=/Website/branches/v2023.2/; revision=61267
2023-07-21 07:33:20 +00:00
Maykel Geerdink
6ce0cd714e FCLT#76749: Autorisaties mbt facturen fiatteren/goedkeuren.
UWVA#75608: Fiatteur van factuur ook bijbehorende verplichting zien.

svn path=/Website/branches/v2023.2/; revision=61264
2023-07-20 16:26:25 +00:00
Maykel Geerdink
0a68aa29e3 FCLT#76749: Autorisaties mbt facturen fiatteren/goedkeuren.
UWVA#75608: Fiatteur van factuur ook bijbehorende verplichting zien.

svn path=/Website/branches/v2023.2/; revision=61263
2023-07-20 15:32:06 +00:00
b3aeb56d84 FCLT#79142 Alleen de niet-verwijderde prs_perslid (2/2) :)
svn path=/Website/branches/v2023.2/; revision=61261
2023-07-20 14:31:14 +00:00
6086329e46 FCLT#79142 Alleen de niet-verwijderde prs_perslid
svn path=/Website/branches/v2023.2/; revision=61260
2023-07-20 14:27:25 +00:00
b1b879af84 FCLT#79142 prs_perslid_oslogin is altijd al UPPER
svn path=/Website/branches/v2023.2/; revision=61259
2023-07-20 14:20:08 +00:00
4556c922cd FCLT#79142 Afspraken vanuit Outlook met een -in Facilitor- onbekende gastheer ook in Facilitor boeken
svn path=/Website/branches/v2023.2/; revision=61257
2023-07-20 13:27:32 +00:00
Jos Groot Lipman
fabc557c35 PCHX#79267 Overzicht vd workflow is leeg
svn path=/Website/branches/v2023.2/; revision=61255
2023-07-20 12:53:45 +00:00
Jos Groot Lipman
dde810396f VLKC#79283 rapportages naar Excel currency format
svn path=/Website/branches/v2023.2/; revision=61252
2023-07-20 11:35:43 +00:00
c8a07225bf FCLT#79142 Afspraken vanuit Outlook met een -in Facilitor- onbekende gastheer ook in Facilitor boeken
svn path=/Website/branches/v2023.2/; revision=61250
2023-07-20 10:48:53 +00:00
b988b2e556 FCLT#77238 Syntax fout ..
svn path=/Website/branches/v2023.2/; revision=61242
2023-07-19 13:41:12 +00:00
c775bf70fb FCLT#77238 import_APP_key
svn path=/Website/branches/v2023.2/; revision=61241
2023-07-19 13:29:46 +00:00
54714f0f74 FCLT#77238 Alleen uit de EXCHANGE & EXCHFULL importfuncties
svn path=/Website/branches/v2023.2/; revision=61240
2023-07-19 13:17:33 +00:00
f411f2166b FCLT#77238 Oude 'pending' regels uit de exc_import-tabel verwijderen na de full sync
svn path=/Website/branches/v2023.2/; revision=61238
2023-07-19 12:58:59 +00:00
23c8d0b931 VRTW#79242 Alleen de bijlagen versturen
svn path=/Website/branches/v2023.2/; revision=61233
2023-07-19 09:14:40 +00:00
Erik Groener
e3794723bf VENR#79161 Atos Bezoekersbalie aantallen lijken niet te kloppen
svn path=/Website/branches/v2023.2/; revision=61232
2023-07-19 08:41:07 +00:00
Erik Groener
a20549bb65 VENR#79161 Atos Bezoekersbalie aantallen lijken niet te kloppen
svn path=/Website/branches/v2023.2/; revision=61231
2023-07-19 08:26:10 +00:00
Maykel Geerdink
929ca587cb PZEE#78447: Opsplitsen opstelling en voorzieningen in afhandelen reserveringen.
svn path=/Website/branches/v2023.2/; revision=61228
2023-07-19 07:29:51 +00:00
Maykel Geerdink
ddee5d09e0 RWSN#78906: BOF krijgt een aanvraag met lege kenmerken binnen.
svn path=/Website/branches/v2023.2/; revision=61220
2023-07-18 14:58:52 +00:00
73afcea85b ALKM#79174 Alleen de subscriptions deleten van onze eigen omgeving
svn path=/Website/branches/v2023.2/; revision=61210
2023-07-17 15:15:08 +00:00
Maykel Geerdink
d51da13462 WZUV#79212: AiAi op mld_doublecheck.asp als geen ruimtegegeven.
svn path=/Website/branches/v2023.2/; revision=61209
2023-07-17 14:23:20 +00:00
aba548c49b FCLT#79158 Extra logging bij fouten
svn path=/Website/branches/v2023.2/; revision=61208
2023-07-17 13:03:58 +00:00
14ef6de023 FCLT#79158 Extra logging (timers) en 1x opnieuw proberen bij het ontbreken van het Bearer-token
svn path=/Website/branches/v2023.2/; revision=61207
2023-07-17 12:40:40 +00:00
Maykel Geerdink
12c974d9c9 AAGN#79191: MJOB2.0 - Bij uitvoerings-console taken koppelen aan bestaande meldingen.
svn path=/Website/branches/v2023.2/; revision=61206
2023-07-17 11:14:48 +00:00
Maykel Geerdink
4cd77c9456 BVB1#79190: MJOB taken worden ten onrechte aan bestaande melding gekoppeld.
svn path=/Website/branches/v2023.2/; revision=61205
2023-07-17 09:47:18 +00:00
08e7ac0b4c FCLT#79204 alle bijlagen weer tonen op verzoek, en style module toegevoegd
svn path=/Website/branches/v2023.2/; revision=61203
2023-07-15 08:09:55 +00:00
988c1e6557 ALKM#79174 create_webhooks.wsf heeft safe.csv nodig, maar die kent wsf_shared.js niet
svn path=/Website/branches/v2023.2/; revision=61197
2023-07-14 11:00:37 +00:00
f48cafb3a1 FCLT#77238 icon-knop gebruikt verkeerde default (en kent geen custom-default)
svn path=/Website/branches/v2023.2/; revision=61196
2023-07-14 09:51:28 +00:00
Erik Groener
5c8452264f FCLT#79023 tijdelijke ASP overrule van een nieuwe default waarde van S(cnt_autolink_regexp)
svn path=/Website/branches/v2023.2/; revision=61194
2023-07-14 08:55:58 +00:00
da85ef0938 AAXX#79126 Beetje opgeruimd nog, + comments - overbodige code
svn path=/Website/branches/v2023.2/; revision=61185
2023-07-13 14:48:56 +00:00
Jos Groot Lipman
694416465c Release 2023.2 Gold A
svn path=/Website/branches/v2023.2/; revision=61183
2023-07-13 14:44:22 +00:00
Maykel Geerdink
83cf8849e7 UBRH#79116: Wijzigen basisgegevens 'geslacht' persoonsgegevens.
svn path=/Website/branches/v2023.2/; revision=61181
2023-07-13 14:01:20 +00:00
1518a166e0 FCLT#79174
svn path=/Website/branches/v2023.2/; revision=61178
2023-07-13 12:25:00 +00:00
Peter Feij
ae1e67dedc NOUR#79049 verbeterd voor onderdelen
svn path=/Website/branches/v2023.2/; revision=61177
2023-07-13 11:47:40 +00:00
Maykel Geerdink
0199786b41 CONN#79154: Het gereedmelden van meerdere taken werkt niet.
svn path=/Website/branches/v2023.2/; revision=61176
2023-07-13 09:32:28 +00:00
9951c5a8fe FCLT#79158 request ook loggen bij MS Graph errors
svn path=/Website/branches/v2023.2/; revision=61174
2023-07-13 08:22:50 +00:00
Jos Groot Lipman
2ba947c433 LOGC#79147 Float in gemailde rapportage ontbeert decimale scheider in XLS
svn path=/Website/branches/v2023.2/; revision=61173
2023-07-12 16:08:16 +00:00
d556b94218 AAXX#79126 Bijlage bij technische adressen en in de style-editor mogen weer het(zelfde; optioneel) bestand uit een map kiezen
svn path=/Website/branches/v2023.2/; revision=61172
2023-07-12 15:39:31 +00:00
Maykel Geerdink
99d072d5f4 FCLT#79148: INS: AiAi "Ongeldige tabelnaam" op ins/ins_search_list.asp.
svn path=/Website/branches/v2023.2/; revision=61171
2023-07-12 14:44:43 +00:00
4e277821ae FCLT#79119 icoontje & bij deze FGII module de delete knop niet echt laten deleten
svn path=/Website/branches/v2023.2/; revision=61170
2023-07-12 13:20:42 +00:00
24bc25bff3 KFSG#79134 AiAi voorkomen bij verdiepingen met alleen verwijderde ruimten
svn path=/Website/branches/v2023.2/; revision=61169
2023-07-12 12:55:05 +00:00
Peter Feij
615d37e715 NYBU#79112 Datum en tijd gereed weer zichtbaar
svn path=/Website/branches/v2023.2/; revision=61165
2023-07-12 11:58:18 +00:00
Erik Groener
2ed587e00b SVRZ#79125 Verplicht niveau bij standaardmelding aanpassen
svn path=/Website/branches/v2023.2/; revision=61162
2023-07-12 11:15:35 +00:00
Erik Groener
c515520248 VENR#79133 Verdieping kan niet meer worden aangepast
svn path=/Website/branches/v2023.2/; revision=61152
2023-07-12 07:18:08 +00:00
Peter Feij
6b595eba50 NOUR#79049 Overzicht toonde geen terreingebonden objecten meer
svn path=/Website/branches/v2023.2/; revision=61147
2023-07-11 15:37:29 +00:00
Maykel Geerdink
bdeb500f10 BLCC#79069: BCC51292 2x afgemeld.
svn path=/Website/branches/v2023.2/; revision=61143
2023-07-11 14:27:52 +00:00
Jos Groot Lipman
c4625e1eee LOGC#78960 Rapport via de mail verzenden werkt niet
svn path=/Website/branches/v2023.2/; revision=61140
2023-07-11 13:47:43 +00:00
1594 changed files with 101443 additions and 81763 deletions

2
APPL/.gitignore vendored
View File

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

View File

@@ -99,6 +99,13 @@ alg = {
var autfunctionMAN = "WEB_ALGMAN";
var autfunctionUSE = "WEB_ALGUSE";
// Met ALG* bepaal je wat je ziet (Read).
rresult.readman = rresult.canRead (autfunctionMAN);
if (onrgoedlvl != "T")
rresult.readuse = rresult.canRead (autfunctionUSE);
// Met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
switch (onrgoedlvl)
{
case "T": autfunctionMAN = "WEB_TERMAN";
@@ -107,15 +114,14 @@ alg = {
autfunctionUSE = "WEB_RUIUSE";
break;
}
// Met ALG* bepaal je wat je ziet (Read).
rresult.readman = rresult.canRead (autfunctionMAN);
rresult.readuse = rresult.canRead (autfunctionUSE);
// Met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
rresult.readmgt = rresult.canRead("WEB_ALGMGT");
rresult.writemgt = rresult.canWrite("WEB_ALGMGT");
rresult.writeman = rresult.canWrite(autfunctionMAN);
rresult.writeuse = rresult.canWrite(autfunctionUSE);
if (onrgoedlvl != "T")
rresult.writeuse = rresult.canWrite(autfunctionUSE);
else
rresult.writeuse = false;
}
else // iets meer werk
{
@@ -137,7 +143,7 @@ alg = {
+ "WHERE prs_perslid_key = " + user_key
+ " AND alg_district_key = " + alg_key;
break;
case "E":
case "RG":
sql = "SELECT MAX(niveau) FROM fac_v_my_regions "
+ "WHERE prs_perslid_key = " + user_key
+ " AND alg_regio_key = " + alg_key;
@@ -155,8 +161,6 @@ alg = {
rresult.writeuse = rresult.authparams("WEB_ALGUSE").ALGwritelevel <= level;
}
rresult.canCndAggr = rresult.writeuse;
rresult.canReadNotes = (rresult.readuse || rresult.readman);
rresult.canWriteNotes = rresult.canReadNotes;
return rresult;
},
@@ -303,7 +307,6 @@ alg = {
+ " , p.prs_perslid_key"
+ " , COALESCE(g.alg_gebouw_beginuur, -1) alg_gebouw_beginuur"
+ " , COALESCE(g.alg_gebouw_einduur, -1) alg_gebouw_einduur"
+ " , mld_vrije_dagen_id"
+ " FROM alg_gebouw g"
+ " , prs_kostenplaats k"
+ " , prs_perslid p"
@@ -335,27 +338,10 @@ alg = {
kostenplaats_budgethouder_key: oRs("prs_perslid_key").Value,
kostenplaats_budgethouder: oRs("budgethouder").Value,
gebouw_beginuur: oRs("alg_gebouw_beginuur").Value,
gebouw_einduur: oRs("alg_gebouw_einduur").Value,
vrije_dagen: {id: oRs("mld_vrije_dagen_id").Value}
gebouw_einduur: oRs("alg_gebouw_einduur").Value
};
}
oRs.Close();
if (result.vrije_dagen.id && result.vrije_dagen.id.toUpperCase() != "DEFAULT")
{
var vrije_dagen_alt = [];
var sql = "SELECT mld_vrije_dagen_datum"
+ " FROM mld_vrije_dagen"
+ " WHERE mld_vrije_dagen_id = " + safe.quoted_sql(result.vrije_dagen.id);
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
vrije_dagen_alt.push((new Date(oRs("mld_vrije_dagen_datum").Value)).getTime());
oRs.MoveNext();
}
oRs.Close();
if (vrije_dagen_alt.length)
result.vrije_dagen.alt = vrije_dagen_alt;
}
return result;
},
@@ -455,125 +441,6 @@ alg = {
oRs.Close();
return algm2;
},
alg_onroerendgoed_flex_params: function(p_niveau, p_inlijst)
{
var sql = "SELECT DISTINCT " + lcl.xsqla("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key")
+ " , k.alg_kenmerk_kenmerktype"
+ " FROM alg_kenmerk k"
+ " WHERE (BITAND(alg_kenmerk_inlijst, " + (p_inlijst? p_inlijst : 1) + ") = " + (p_inlijst? p_inlijst : 1) + ")"
+ " AND (BITAND(alg_kenmerk_systeem, 4) = 0 OR k.alg_kenmerk_systeem IS NULL)"
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql_upper(p_niveau)
+ " AND k.alg_kenmerk_verwijder IS NULL";
var oRs = Oracle.Execute(sql);
var v_flexParams = { anyflex: !oRs.eof};
if (v_flexParams.anyflex)
{
var multiflex = false;
v_flexParams.bijlageflex = (oRs("alg_kenmerk_kenmerktype").Value == "M");
v_flexParams.flexlabel = oRs("alg_kenmerk_omschrijving").Value;
oRs.MoveNext();
if (!oRs.eof)
{
multiflex = true;
v_flexParams.flexlabel = L("lcl_flexlist_alg_" + p_niveau.toLowerCase());
while (!oRs.eof)
{
if (oRs("alg_kenmerk_kenmerktype").Value == "M")
v_flexParams.bijlageflex = true;
oRs.MoveNext();
}
}
}
oRs.Close();
var onrgoed_fld = "";
switch (p_niveau)
{
case "E": onrgoed_fld = "e.alg_regio_key"; break;
case "D": onrgoed_fld = "d.alg_district_key"; break;
case "L": onrgoed_fld = "l.alg_locatie_key"; break;
case "T": onrgoed_fld = "g.alg_terreinsector_key"; break;
case "G": onrgoed_fld = "g.alg_gebouw_key"; break;
case "V": onrgoed_fld = "v.alg_verdieping_key"; break;
case "R": onrgoed_fld = "r.alg_ruimte_key"; break;
}
v_flexParams.sql = (v_flexParams.anyflex
? ", (SELECT LISTAGG(" + (multiflex
? lcl.xsql("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key") + " || ':' || chr(160) || "
: "")
+ " CASE WHEN k.alg_kenmerk_kenmerktype = 'R' OR k.alg_kenmerk_kenmerktype = 'r' OR k.alg_kenmerk_kenmerktype = 'S'"
+ " THEN flx.getdomeinwaarde(k.fac_kenmerkdomein_key, km.alg_onrgoedkenmerk_waarde)"
+ " WHEN ( ( k.alg_kenmerk_kenmerktype = 'N'"
+ " AND k.alg_kenmerk_lengte = 1"
+ " AND k.alg_kenmerk_nmin = 0"
+ " AND k.alg_kenmerk_nmax = 1"
+ " AND (k.alg_kenmerk_dec = 0 OR k.alg_kenmerk_dec IS NULL)"
+ " )"
+ " OR (k.alg_kenmerk_kenmerktype = 'V')"
+ " )"
+ " THEN DECODE( km.alg_onrgoedkenmerk_waarde"
+ " , 0, " + safe.qL("lcl_check_0")
+ " , 1, " + safe.qL("lcl_check_1")
+ " , km.alg_onrgoedkenmerk_waarde"
+ " )"
+ " ELSE km.alg_onrgoedkenmerk_waarde"
+ " END"
+ " , CHR(13)"
+ " )"
+ " WITHIN GROUP (ORDER BY k.alg_kenmerk_volgnr)"
+ " FROM alg_kenmerk k"
+ " , alg_onrgoedkenmerk km"
+ " WHERE km.alg_onrgoed_key = " + onrgoed_fld
+ " AND km.alg_onrgoed_niveau = " + safe.quoted_sql_upper(p_niveau)
+ " AND k.alg_kenmerk_key = km.alg_kenmerk_key"
+ " AND (BITAND(k.alg_kenmerk_inlijst, " + (p_inlijst? p_inlijst : 1) + ") = " + (p_inlijst? p_inlijst : 1) + ")"
+ " AND (BITAND(k.alg_kenmerk_systeem, 4) = 0 OR k.alg_kenmerk_systeem IS NULL)" // -- niet als vertrouwelijk
+ " AND k.alg_kenmerk_verwijder IS NULL"
+ " AND km.alg_onrgoedkenmerk_verwijder IS NULL"
+ ") algflex"
: ""
)
return v_flexParams;
},
alg_onroerendgoed_flex_bijlagen: function(p_niveau, p_alg_key, p_inlijst)
{
var bijlagen_aantal = 0;
var bijlagen_oms = "";
var bijlagen_lijst = [];
var sql_k = "SELECT k.alg_kenmerk_key"
+ " , " + lcl.xsqla("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key")
+ " FROM alg_kenmerk k"
+ " WHERE BITAND(k.alg_kenmerk_inlijst, " + (p_inlijst? p_inlijst : 1) + ") = " + (p_inlijst? p_inlijst : 1)
+ " AND k.alg_kenmerk_verwijder IS NULL"
+ " AND k.alg_kenmerk_kenmerktype= 'M'"
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql_upper(p_niveau);
var oRs_k = Oracle.Execute(sql_k);
while (!oRs_k.eof)
{
var kenmerk_key = oRs_k("alg_kenmerk_key").Value;
var bijlagen_oms = oRs_k("alg_kenmerk_omschrijving").Value;
var bestanden = flexProps("ALG", p_alg_key, kenmerk_key, "A", {getFiles: true});
var km_aantal = bestanden.files.length;
for (var i=0; i<km_aantal; i++)
{
bijlagen_lijst.push(bestanden.files[i].name);
}
bijlagen_aantal += km_aantal;
oRs_k.MoveNext();
}
oRs_k.Close();
return ( bijlagen_aantal > 0
? "<span title='" + safe.htmlattr(bijlagen_lijst.join("\n")) + "'>"
+ safe.html(bijlagen_oms) + ": " + bijlagen_aantal
+ "</span>"
: ""
);
}
}
%>

View File

@@ -16,6 +16,18 @@
<%
FCLTHeader.Requires({ plugins:["jQuery"] });
function fnrowData(oRs)
{
var parent_key = oRs("alg_regio_key").value;
var detail_key = oRs("alg_district_key").value;
var key = oRs("alg_district_key").value;
var oms = oRs("alg_district_omschrijving").value;
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
%>
<script type="text/javascript">
var autosearch = 1; // automatisch laden van resultaat op search pagina.
@@ -47,7 +59,7 @@ FCLTHeader.Requires({ plugins:["jQuery"] });
var data = { key: disKeyString,
level: "D"
};
<% protectRequest.dataToken("data"); %>
<% protectRequest.dataToken("data"); %>+
$.post("alg_delete.asp", data, FcltCallbackRefresh, "json");
}
);
@@ -69,6 +81,23 @@ function district_list(pautfunction, params)
var reg_key = params.reg_key;
var dis_key = params.dis_key;
function fnrowActionEnabler(oRs)
{
var eDelete = false;
if (alg.canWriteDistrict(oRs("alg_district_key").value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
function fnrowFlexParams(oRs)
{
var dis_key = oRs("alg_district_key").Value;
var this_alg = alg.func_enabled(dis_key, "D");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
%>
<html>
<head>
@@ -76,16 +105,15 @@ function district_list(pautfunction, params)
</head>
<body id="listbody">
<%
var flexParams = alg.alg_onroerendgoed_flex_params("D");
var sqln = "SELECT d.alg_district_key"
+ " , d.alg_regio_key"
+ " , d.alg_district_omschrijving"
+ " , r.alg_regio_omschrijving"
+ flexParams.sql
+ " FROM alg_district d"
+ " , alg_regio r"
+ " WHERE r.alg_regio_key = d.alg_regio_key"
+ " AND d.alg_district_verwijder IS NULL";
var sqln = "SELECT d.alg_district_key, "
+ " d.alg_regio_key, "
+ " d.alg_district_omschrijving, "
+ " r.alg_regio_omschrijving "
+ " FROM alg_district d, "
+ " alg_regio r "
+ " WHERE r.alg_regio_key = d.alg_regio_key "
+ " AND d.alg_district_verwijder IS NULL ";
if ( authparams.ALGreadlevel > -1 )
{ // Er is een scope-beperking van kracht
@@ -121,50 +149,6 @@ function district_list(pautfunction, params)
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
}
/**********************************
* Callback functies ResultsetTable
*********************************/
function fnrowData(oRs)
{
var parent_key = oRs("alg_regio_key").value;
var detail_key = oRs("alg_district_key").value;
var key = oRs("alg_district_key").value;
var oms = oRs("alg_district_omschrijving").value;
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
function fnrowActionEnabler(oRs)
{
var eDelete = false;
if (alg.canWriteDistrict(oRs("alg_district_key").value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
function fnrowFlexParams(oRs)
{
var dis_key = oRs("alg_district_key").Value;
var this_alg = alg.func_enabled(dis_key, "D");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var alg_key = oRs("alg_district_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
{
result += alg.alg_onroerendgoed_flex_bijlagen("D", alg_key);
}
return result;
}
var rst = new ResultsetTable({sql:sqln,
keyColumn: "alg_district_key",
ID: "algtable",
@@ -181,8 +165,6 @@ function district_list(pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_estate_regio_descr"), content: "alg_regio_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_estate_district_man_descr"), content: "alg_district_omschrijving", hasActions: true}));
if (flexParams.anyflex)
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
rst.addAction({ action: "districtEdit", caption: L("lcl_edit"), isDefault: true});
rst.addAction({ action: "doDelete", caption: L("lcl_delete"), enabler: "eDelete", multi: true, multiOnce: true});
@@ -194,3 +176,4 @@ function district_list(pautfunction, params)
</body>
</html>
<%}%>

View File

@@ -15,7 +15,6 @@ FCLTHeader.Requires({ plugins: ["jQuery", "kenmerk"] });
var regio_key = getQParamInt("regio_key", -1);
var district_key = getQParamInt("district_key", -1);
var autosearch = getQParamInt("autosearch", 0) == 1;
var alg_startlevel = getQParamInt("alg_startlevel", 0); // Startlevel van plaatsselector, default Regio
var authparams = alg.checkAutorisation();
%>
@@ -54,7 +53,7 @@ var authparams = alg.checkAutorisation();
FCLTplaatsselector(authparams.ALGreadlevel, {
regiokey: regio_key,
districtkey: district_key,
startlevel: alg_startlevel, // Regio
startlevel: 0, // Regio
eindlevel: 0, // Regio
whenEmpty: L("lcl_search_generic")
});

View File

@@ -78,7 +78,6 @@ if (bld_key > 0)
var vervaldatum = oRs("alg_gebouw_vervaldatum").Value != null ? new Date(oRs("alg_gebouw_vervaldatum").Value) : null;
var geb_score1 = oRs("alg_gebouw_mjb_score1").Value;
var actie_grp_key = oRs("bez_actie_groep_key").Value;
var kalender_id = oRs("mld_vrije_dagen_id").Value;
oRs.Close();
}
else
@@ -199,14 +198,14 @@ else
"sgVerantw",
{ perslidKey: verantw_key,
label: L("lcl_alg_verantw"),
readonly: !this_alg.writeman,
readonly: !this_alg.writeuse,
autlevel: this_alg.authparams("WEB_ALGMAN") && this_alg.authparams("WEB_ALGMAN").PRSwritelevel
});
FCLTpersoonselector("verantw2",
"sgVerantw2",
{ perslidKey: verantw_key2,
label: L("lcl_alg_verantw2"),
readonly: !this_alg.writeman,
readonly: !this_alg.writeuse,
autlevel: this_alg.authparams("WEB_ALGMAN") && this_alg.authparams("WEB_ALGMAN").PRSwritelevel
});
manRWFIELD("bld_email", "fld", L("lcl_alg_gebouw_email"), bld_email, {maxlength: 200});
@@ -223,7 +222,7 @@ else
{ label: L("lcl_mld_dienst_niveau"),
initKey: dienstniveau,
emptyOption: "",
readonly: !this_alg.writeman
readonly: !this_alg.writeuse
});
FCLTadresselector("mld_adres", "sgAdres",
{
@@ -233,17 +232,6 @@ else
filtercode: "A",
readonly: !this_alg.writeman
}) ;
var sql = "SELECT DISTINCT mld_vrije_dagen_id, mld_vrije_dagen_id"
+ " FROM mld_vrije_dagen";
FCLTselector("cal_id"
, sql
, { label: L("lcl_calendar")
, initKey: kalender_id
, emptyOption: ""
, emptyKey: ""
, readonly: !this_alg.writeman
}
);
var times = [];
for (i=0; i<24; i++)
{

View File

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

View File

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

View File

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

View File

@@ -11,12 +11,12 @@
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!--#include file="../Shared/common.inc" -->
<!--#include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/timezoneselector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!--#include file="../Shared/selector.inc" -->
<!--#include file="../Shared/plaatsselector.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<!-- #include file="alg.inc" -->
@@ -50,7 +50,6 @@ if (loc_key > 0)
var loc_y = oRs("alg_locatie_y").Value;
var loc_mail = oRs("alg_locatie_email").Value;
var loc_image = oRs("alg_locatie_image").Value;
var loc_volgnr = oRs("alg_locatie_volgnr").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;
@@ -59,7 +58,6 @@ if (loc_key > 0)
var dienstniveau = oRs("mld_dienstniveau_key").Value;
var loc_score1 = oRs("alg_locatie_mjb_score1").Value;
var vervaldatum = oRs("alg_locatie_vervaldatum").Value != null ? new Date(oRs("alg_locatie_vervaldatum").Value) : null;
var alg_tz = oRs("alg_locatie_timezone").Value;
oRs.Close();
}
@@ -131,8 +129,6 @@ manRWFIELD("pst_land", "fld", L("lcl_prs_address_post_land"), pst_lan
BLOCK_END();
BLOCK_START("facFM", L("lcl_operations_block"), {icon: "fa-users-cog"});
manRWFIELD("loc_volgnr", "fld", L("lcl_alg_locatie_volgnr"), loc_volgnr, {maxlength: 3});
FCLTtimezoneselector("alg_tz", { initVal: alg_tz });
FCLTcalendar("vervaldatum",
{ datum: vervaldatum,
initEmpty: vervaldatum==null,
@@ -154,7 +150,7 @@ FCLTcalendar("vervaldatum",
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: 20});
manRWFIELD("loc_mail", "fld", L("lcl_alg_locatie_email"), loc_mail, {maxlength: 200});
manRWFIELD("loc_mail", "fld", L("lcl_noti_email"), loc_mail, {maxlength: 200});
FILEPICKERTR("loc_image", L("lcl_alg_locatie_image"), loc_image, { "key": loc_key, "module": "ALGPHL", "readonly": !this_alg.writeman });
if (ins_score_enabled)

View File

@@ -74,7 +74,7 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we
</script>
</head>
<body class="fclt-modal" id="mod_algmultiedit">
<body class="modal" id="mod_algmultiedit">
<% MODAL_START(); %>
<form name="u2" action="alg_edit_locatie_multi_save.asp?loc_keys=<%=ingesloten.join(",")%>" method="post">
<%
@@ -98,8 +98,6 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we
initEmpty: true,
readonly: !this_alg.writeuse,required: true
});
RWFIELDTR("loc_vw", "fld", L("lcl_estate_locatie_man_verantw"), "", {maxlength: 30});
RWFIELDTR("loc_vwtel", "fld", L("lcl_estate_locatie_man_verantw_tel"), "", {maxlength: 20});
MODAL_BLOCK_END();

View File

@@ -29,10 +29,6 @@ if (Request.Form("vervaldatum").Count == 1 && getFParam("check_vervaldatum", "of
fields.push({ dbs: "alg_locatie_vervaldatum", typ: "date", frm: "vervaldatum", track: L("lcl_alg_vervaldatum") });
if (Request.Form("dienstniveau").Count == 1 && getFParam("check_dienstniveau", "off") == "on")
fields.push({ dbs: "mld_dienstniveau_key", typ: "key", frm: "dienstniveau", track: L("lcl_mld_dienst_niveau"), foreign: "mld_dienstniveau" });
if (Request.Form("loc_vw").Count == 1 && getFParam("check_loc_vw", "off") == "on")
fields.push({ dbs: "alg_locatie_verantw", typ: "varchar", frm: "loc_vw", track: L("lcl_estate_locatie_man_verantw") });
if (Request.Form("loc_vwtel").Count == 1 && getFParam("check_loc_vwtel", "off") == "on")
fields.push({ dbs: "alg_locatie_verantw_tel", typ: "varchar", frm: "loc_vwtel", track: L("lcl_estate_locatie_man_verantw_tel") });
for (var i = 0; i < loc_key_arr.length; i++)
{

View File

@@ -48,10 +48,7 @@ if (this_alg.writeman)
{ dbs: "alg_locatie_y", typ: "float", frm: "loc_y", track: L("lcl_geoycoord") },
{ dbs: "alg_locatie_vervaldatum", typ: "date", frm: "vervaldatum", track: L("lcl_alg_vervaldatum") },
{ dbs: "alg_locatie_email", typ: "varchar", frm: "loc_mail", track: L("lcl_noti_email") },
{ dbs: "alg_locatie_image", typ: "varchar", frm: "loc_image", track: L("lcl_alg_locatie_image") },
{ dbs: "alg_locatie_volgnr", typ: "number", frm: "loc_volgnr", track: L("lcl_alg_locatie_volgnr") },
{ dbs: "alg_locatie_timezone", typ: "varchar", frm: "alg_tz", track: L("lcl_timezone") }
);
{ dbs: "alg_locatie_image", typ: "varchar", frm: "loc_image", track: L("lcl_alg_locatie_image") });
if (alg.canWriteDistrict(dis_key, this_alg.authparams("WEB_ALGMAN").ALGwritelevel))
fields.push({ dbs: "alg_district_key", typ: "key", val: dis_key });
@@ -131,9 +128,9 @@ else
shared.trackaction("ALGLUP", loc_key, algUpd.trackarray.join("\n"));
}
else
shared.trackaction("ALGLNE", loc_key);
shared.trackaction("ALGLUP", loc_key, L("lcl_noti_ALGLNE")); // strikt genomen ALGLNE
}
}
%>
<html>

View File

@@ -1,47 +0,0 @@
<%@language = "javascript"%>
<% /*
$Revision$
$Id$
File: alg/alg_edit_note.asp
Description: Bekijken en/of aanvullen van een notitie behorende bij een onroerendgoed
in een apart blokje
Parameters: fronto/backo
Context: vanuit onroerendgoed-detail
Note:
*/
var JSON_Result = true; %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="./alg.inc" -->
<!-- #include file="../Shared/notes.inc" -->
<%
var alg_key = getQParamInt("alg_key");
var alg_typ = getQParamSafe("alg_typ").toUpperCase();
var note_key = getQParamInt("note_key", -1);
var note = getFParam("note");
var this_alg = alg.func_enabled(alg_key, alg_typ); // Wat mag ik zoal op dit onroerendgoed.
user.auth_required_or_abort(this_alg.canWriteNotes);
var saved_note_key = notes.note_save( alg_key
, { note: note
, note_key: note_key
, module: "ALG"
, typ: alg_typ
, table: "alg_onroerendgoed"
}
);
var result = { success: true,
alg_key: alg_key,
alg_typ: alg_typ,
note_key: saved_note_key
};
Response.Write(JSON.stringify(result));
ASPPAGE_END();
%>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -37,8 +37,7 @@ var fields = [{ dbs: "alg_terreinsector_omschrijving", typ: "varchar", frm: "ter
{ dbs: "prs_kostenplaats_key", typ: "key", frm: "prs_kstn", track: L("lcl_prs_dept_kosten"), foreign: "PRS_KOSTENPLAATS" },
{ dbs: "prs_afdeling_key", typ: "key", frm: "prs_afd", track: L("lcl_dep_name_level2"), foreign: "PRS_AFDELING" },
{ dbs: "prs_perslid_key_verantw", typ: "key", frm: "verantw", track: L("lcl_alg_verantw"), foreign: "PRS_PERSLID" },
{ dbs: "prs_perslid_key_verantw2", typ: "key", frm: "verantw2", track: L("lcl_alg_verantw2"), foreign: "PRS_PERSLID" },
{ dbs: "mld_dienstniveau_key", typ: "key", frm: "dienstniveau", track: L("lcl_mld_dienst_niveau"), foreign: "MLD_DIENSTNIVEAU" }];
{ dbs: "prs_perslid_key_verantw2", typ: "key", frm: "verantw2", track: L("lcl_alg_verantw2"), foreign: "PRS_PERSLID" }];
if (this_alg.writeman)
{
@@ -149,7 +148,7 @@ if (!warning)
shared.trackaction("ALGTUP", ter_key, algUpd.trackarray.join("\n"));
}
else
shared.trackaction("ALGTNE", ter_key);
shared.trackaction("ALGTUP", ter_key, L("lcl_noti_ALGTNE")); // strikt genomen ALGTNE
}

View File

@@ -19,8 +19,9 @@
<%
FCLTHeader.Requires({plugins:["suggest","jQuery"], js: []})
var flr_key = getQParamInt("flr_key", -1);
var bld_key, loc_key, flr_dwgz;
var flr_key = getQParamInt("flr_key", -1);
var bld_key
var loc_key
var onrgoedlvl = "V";
var this_alg = alg.func_enabled(flr_key, onrgoedlvl);
@@ -28,20 +29,16 @@ user.auth_required_or_abort(this_alg.writeman || (flr_key>0&&this_alg.writeuse))
if (flr_key > 0)
{
var sql = "SELECT alg_verdieping_omschrijving"
+ " , alg_verdieping_volgnr"
+ " , alg_verdieping_code"
+ " , mld_dienstniveau_key"
+ " , alg_verdieping_dwgz"
+ " FROM alg_verdieping "
+ " WHERE alg_verdieping_key = " + flr_key;
var oRs = Oracle.Execute(sql);
sql = " select * "
+ " FROM ALG_VERDIEPING "
+ " WHERE alg_verdieping_key = " + flr_key;
var flr_omschr = oRs("alg_verdieping_omschrijving").Value;
var flr_volgnr = oRs("alg_verdieping_volgnr").Value;
var flr_code = oRs("alg_verdieping_code").Value;
var dienstniveau = oRs("mld_dienstniveau_key").Value;
var flr_dwgz = oRs("alg_verdieping_dwgz").Value;
oRs = Oracle.Execute(sql);
var flr_omschr = oRs("ALG_VERDIEPING_OMSCHRIJVING").value;
var flr_volgnr = oRs("ALG_VERDIEPING_VOLGNR").value;
var flr_code = oRs("ALG_VERDIEPING_CODE").value;
var dienstniveau = oRs("mld_dienstniveau_key").value;
oRs.Close();
}
%>
@@ -85,7 +82,7 @@ if (this_alg.writeman)
else
manRWFIELD = function (a,b,c,d,e) { ROFIELDTR(b,c,d,e) }; // als geen USE of <self> dan zijn er veel readonly
BLOCK_START("algflr1", L("lcl_floor"), {icon: "fa-layer-group"});
BLOCK_START("algflr1", L("lcl_floor"), {icon: "fa-th-list fa-flip-horizontal"});
FCLTplaatsselector(this_alg.authparams("WEB_ALGMAN").ALGwritelevel, {
locatiekey: loc_key,
gebouwkey: bld_key,
@@ -121,7 +118,6 @@ if (flr_key > 0)
ROFIELDTR("fld", L("lcl_estate_verdieping_netto_vloeropp") + L("lcl_estate_calc_vloeropp"), calcopp.opprooms, {suppressEmpty: true, datatype: "float"});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt1") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt1, {suppressEmpty: true, datatype: "float"});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt2") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt2, {suppressEmpty: true, datatype: "float"});
manRWFIELD("flr_dwgz", "fld", L("lcl_estate_verdieping_man_dwgz"), flr_dwgz, {datatype: "float"});
}
BLOCK_END();

View File

@@ -74,11 +74,11 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we
</script>
</head>
<body class="fclt-modal" id="mod_algmultiedit">
<body class="modal" id="mod_algmultiedit">
<% MODAL_START(); %>
<form name="u2" action="alg_edit_verdieping_multi_save.asp?flr_keys=<%=ingesloten.join(",")%>" method="post">
<%
MODAL_BLOCK_START("algflr1", L("lcl_floor"), { icon: "fa-layer-group" });
MODAL_BLOCK_START("algflr1", L("lcl_floor"), { icon: "fa-th-list fa-flip-horizontal" });
sql = "SELECT mld_dienstniveau_key"
+ " , " + lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")

View File

@@ -35,8 +35,7 @@ if (this_alg.writeman)
fields.push(
{ dbs: "alg_verdieping_omschrijving", typ: "varchar", frm: "flr_omschr", track: L("lcl_estate_verdieping_man_descr") },
{ dbs: "alg_verdieping_volgnr", typ: "number", frm: "flr_volgnr", track: L("lcl_estate_verdieping_man_volgnr") },
{ dbs: "alg_verdieping_code", typ: "varchar", frm: "flr_code", track: L("lcl_estate_verdieping_man_code") },
{ dbs: "alg_verdieping_dwgz", typ: "float", frm: "flr_dwgz", track: L("lcl_estate_verdieping_man_dwgz") }
{ dbs: "alg_verdieping_code", typ: "varchar", frm: "flr_code", track: L("lcl_estate_verdieping_man_code") }
);
if (flr_key == -1 && alg.canWriteGebouw(geb_key, this_alg.authparams("WEB_ALGMAN").ALGwritelevel))
fields.push({ dbs: "alg_gebouw_key", typ: "key", val: geb_key });
@@ -117,7 +116,7 @@ if (!warning)
shared.trackaction("ALGVUP", flr_key, algUpd.trackarray.join("\n"));
}
else
shared.trackaction("ALGVNE", flr_key);
shared.trackaction("ALGVUP", flr_key, L("lcl_noti_ALGVNE")); // strikt genomen ALGVNE
}
%>

View File

@@ -46,7 +46,7 @@ if (wp_key > 0)
{
var algUpd = buildTrackingUpdate("prs_werkplek", " prs_werkplek_key = " + wp_key, fields);
var err = Oracle.Execute(algUpd.sql, true);
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
@@ -98,4 +98,4 @@ else
<body>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

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

View File

@@ -1,410 +0,0 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
Description: Statistics mbt vastgoed en harde faciliteiten
Is als een soort actueel jaaroverzicht van de assets
Gaat er van uitdat er "netjes" geconfigureerd is, en anders is dit een incentive om dat te doen.
Werkt dan ook als een soort verify. Je komt bijvoorbeeld te specifieke groeperingen constateren
bij de srtgebouw en srtruimte
Is onafhankelijk van organsatie(structuur), het zijn zuiver harde, fysieke assets
Uitzondering voor de reserveerare zaken, die dubbelen met het fysieke maar geven
een beeld van de dienstverlening.
Kan ongetwijfeld nog uitgebreid worden en eigenlijk nog een paar verse lcl's
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<%
FCLTHeader.Requires({ plugins:["jQuery"], js: ["jquery-ui.js"] });
%>
<html>
<head>
<% FCLTHeader.Generate();
var autfunction = "WEB_PRSSYS"; // of later WEB_ALGMSU?
var authparams = user.checkAutorisation(autfunction);
facts = new Array;
function add2facts (oRs)
{
while (!oRs.eof)
{
facts.push({id: oRs("id").value, lbl: oRs("lbl").value, cnt: oRs("val").value, det: oRs("det").value})
oRs.moveNext();
}
}
%>
</head>
<body class="showmode">
<% SUBFRAME_START();
// Gebouwen
var sql = "SELECT 1 id, "+safe.quoted_sql(L('frm_alggebouwframe'))+" lbl, COUNT (*) val, SUM (alg_gebouw_bruto_vloeropp) det"
+ " FROM alg_gebouw "
+ " WHERE alg_gebouw_verwijder IS NULL "
+ " AND (alg_gebouw_vervaldatum IS NULL OR alg_gebouw_vervaldatum > SYSDATE)";
var oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = " SELECT 1 id, '> '||" + lcl.xsql ('s.alg_srtgebouw_omschrijving', 's.alg_srtgebouw_key') + " lbl, COUNT (*) val, SUM (g.alg_gebouw_bruto_vloeropp) det "
+ " FROM alg_gebouw g, alg_srtgebouw s "
+ " WHERE s.alg_srtgebouw_key(+) = g.alg_srtgebouw_key "
+ " AND g.alg_gebouw_verwijder IS NULL "
+ " AND (alg_gebouw_vervaldatum IS NULL OR alg_gebouw_vervaldatum > SYSDATE) "
+ "GROUP BY s.alg_srtgebouw_omschrijving "
+ "ORDER BY 3 desc, 2 ";
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = "SELECT 1 id, "+safe.quoted_sql(L('lcl_alg_fmstats_nrloc'))+" lbl, COUNT (*) val, '' det"
+ " FROM (SELECT DISTINCT alg_locatie_plaats "
+ " FROM alg_locatie l "
+ " WHERE l.alg_locatie_verwijder IS NULL "
+ " AND (alg_locatie_vervaldatum IS NULL OR alg_locatie_vervaldatum > SYSDATE)"
+ " AND EXISTS (SELECT '' FROM alg_gebouw g WHERE g.alg_locatie_key = l.alg_locatie_key"
+ " AND g.alg_gebouw_verwijder IS NULL "
+ " AND (alg_gebouw_vervaldatum IS NULL OR alg_gebouw_vervaldatum > SYSDATE)))";
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
// Terreinen
sql = "SELECT 2 id, "+safe.quoted_sql(L('frm_algterreinframe'))+" lbl, COUNT (*) val, SUM (alg_terreinsector_oppervlak) det"
+ " FROM alg_terreinsector "
+ " WHERE alg_terreinsector_verwijder IS NULL "
+ " AND (alg_terreinsector_vervaldatum IS NULL OR alg_terreinsector_vervaldatum > SYSDATE)";
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = " SELECT 2 id, '> '||" + lcl.xsql ('s.alg_srtterreinsec_omschrijving', 's.alg_srtterreinsector_key') + " lbl, COUNT (*) val, SUM (t.alg_terreinsector_oppervlak) det "
+ " FROM alg_terreinsector t, alg_srtterreinsector s "
+ " WHERE s.alg_srtterreinsector_key(+) = t.alg_srtterreinsector_key "
+ " AND t.alg_terreinsector_verwijder IS NULL "
+ " AND (alg_terreinsector_vervaldatum IS NULL OR alg_terreinsector_vervaldatum > SYSDATE) "
+ "GROUP BY s.alg_srtterreinsec_omschrijving "
+ "ORDER BY 3 desc, 2 ";
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = "SELECT 2 id, "+safe.quoted_sql(L('lcl_alg_fmstats_nrloc'))+" lbl, COUNT (*) val, '' det"
+ " FROM (SELECT DISTINCT alg_locatie_plaats "
+ " FROM alg_locatie l "
+ " WHERE l.alg_locatie_verwijder IS NULL "
+ " AND (alg_locatie_vervaldatum IS NULL OR alg_locatie_vervaldatum > SYSDATE)"
+ " AND EXISTS (SELECT '' FROM alg_terreinsector g WHERE g.alg_locatie_key = l.alg_locatie_key"
+ " AND g.alg_terreinsector_verwijder IS NULL "
+ " AND (alg_terreinsector_vervaldatum IS NULL OR alg_terreinsector_vervaldatum > SYSDATE)))";
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
// Ruimtes
sql = "SELECT 3 id, "+safe.quoted_sql(L('frm_algruimteframe'))+" lbl, COUNT (*) val, SUM (alg_ruimte_bruto_vloeropp) det "
+ " FROM alg_ruimte "
+ " WHERE alg_ruimte_verwijder IS NULL";
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = " SELECT 3 id, '> '||" + lcl.xsql ('s.alg_srtruimte_omschrijving', 's.alg_srtruimte_key') + " lbl, COUNT (*) val, SUM (r.alg_ruimte_bruto_vloeropp) det "
+ " FROM alg_ruimte r, alg_srtruimte s "
+ " WHERE s.alg_srtruimte_key(+) = r.alg_srtruimte_key "
+ " AND r.alg_ruimte_verwijder IS NULL "
+ "GROUP BY s.alg_srtruimte_omschrijving "
+ "ORDER BY 3 desc, 2 ";
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
// Niet reserveerbare assets
sql0 = "SELECT {0} id, " // 1 query voor beide
+ " '{2}' lbl, "
+ " COUNT (*) val, "
+ " '' det "
+ " FROM ins_v_deelenonderdeel i, ins_srtdeel sd "
+ " WHERE i.ins_deel_verwijder IS NULL "
+ " AND i.ins_srtdeel_key = sd.ins_srtdeel_key"
+ " AND sd.ins_srtdeel_verwijder IS NULL "
+ " AND (i.ins_deel_vervaldatum IS NULL OR i.ins_deel_vervaldatum > SYSDATE) "
+ " AND sd.ins_srtdeel_sensortype {1}" // 1 query voor beide
+ " AND NOT EXISTS "
+ " (SELECT '' "
+ " FROM res_deel r "
+ " WHERE res_deel_verwijder IS NULL "
+ " AND (res_deel_vervaldatum IS NULL OR res_deel_vervaldatum > SYSDATE) "
+ " AND r.res_ins_deel_key = i.ins_deel_key) ";
sql1 = "SELECT {0} id, '> ' || ins_discipline_omschrijving lbl, COUNT (*) val, '' det "
+ " FROM ins_v_deelenonderdeel i, ins_discipline rd, ins_srtdeel sd "
+ " WHERE i.ins_discipline_key = rd.ins_discipline_key "
+ " AND i.ins_deel_verwijder IS NULL "
+ " AND sd.ins_srtdeel_verwijder IS NULL "
+ " AND i.ins_srtdeel_key = sd.ins_srtdeel_key"
+ " AND sd.ins_srtdeel_sensortype {1}"
+ " AND ins_discipline_verwijder IS NULL "
+ " AND (i.ins_deel_vervaldatum IS NULL OR i.ins_deel_vervaldatum > SYSDATE) "
+ " AND NOT EXISTS "
+ " (SELECT '' "
+ " FROM res_deel r "
+ " WHERE res_deel_verwijder IS NULL "
+ " AND (res_deel_vervaldatum IS NULL OR res_deel_vervaldatum > SYSDATE) "
+ " AND r.res_ins_deel_key = i.ins_deel_key) "
+ "GROUP BY ins_discipline_omschrijving "
+ "ORDER BY 3 DESC, 2 ";
sql = sql0.format(4, '= 0', L('lcl_alg_fmstats_assets'));
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = sql1.format(4, '= 0');
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = sql0.format(5, '<> 0', L('lcl_alg_fmstats_sensors'));
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = sql1.format(5, '<> 0');
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
// Reserveerbare ruimtes (reken maar na :-))
sql = "SELECT 6 id,"
+ " 'Reserveerbare ruimtes' lbl,"
+ " COUNT (*) val,"
+ " SUM (r.alg_ruimte_bruto_vloeropp) det"
+ " FROM alg_ruimte r"
+ " WHERE r.alg_ruimte_verwijder IS NULL"
+ " AND r.alg_ruimte_key IN (SELECT alg_ruimte_key"
+ " FROM res_alg_ruimte rag, res_ruimte rr"
+ " WHERE res_alg_ruimte_verwijder IS NULL"
+ " AND rr.res_ruimte_key = rag.res_ruimte_key"
+ " AND (rr.res_ruimte_startdatum IS NULL OR rr.res_ruimte_startdatum <= SYSDATE)"
+ " AND (rr.res_ruimte_vervaldatum IS NULL OR rr.res_ruimte_vervaldatum > SYSDATE)"
+ " )"
+ " ORDER BY 3 DESC, 2";
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = "SELECT 6 id,"
+ " '> ' || ins_discipline_omschrijving lbl,"
+ " COUNT (*) val,"
+ " SUM (r.alg_ruimte_bruto_vloeropp) det"
+ " FROM alg_ruimte r,"
+ " res_ruimte rr,"
+ " res_discipline rd,"
+ " res_alg_ruimte rag"
+ " WHERE rr.res_discipline_key = rd.ins_discipline_key"
+ " AND r.alg_ruimte_verwijder IS NULL"
+ " AND rd.ins_discipline_verwijder IS NULL"
+ " AND rag.res_ruimte_key = rr.res_ruimte_key"
+ " AND rag.alg_ruimte_key = r.alg_ruimte_key"
+ " AND rag.res_alg_ruimte_verwijder IS NULL"
+ " AND rr.res_ruimte_verwijder IS NULL"
+ " AND (rr.res_ruimte_startdatum IS NULL OR rr.res_ruimte_startdatum <= SYSDATE)"
+ " AND (rr.res_ruimte_vervaldatum IS NULL OR rr.res_ruimte_vervaldatum > SYSDATE)"
+ " GROUP BY ins_discipline_omschrijving"
+ " ORDER BY 3 DESC, 2";
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
//Reserveerbare faciliteiten
var sql0 = "SELECT {0} id, '{2}' lbl, COUNT (*) val, '' det "
+ " FROM ins_deel i "
+ " WHERE i.ins_deel_verwijder IS NULL "
+ " AND EXISTS "
+ " (SELECT ins_deel_key "
+ " FROM res_deel r, res_discipline rd "
+ " WHERE res_deel_verwijder IS NULL "
+ " AND r.res_discipline_key = rd.ins_discipline_key "
+ " AND ins_discipline_min_level = {1} "
+ " AND (res_deel_vervaldatum IS NULL OR res_deel_vervaldatum > SYSDATE) "
+ " AND r.res_ins_deel_key = i.ins_deel_key) ";
// ins_discipline_min_level /* 1; Reserveerbaar object; 2; Verbruiksartikel; 3; Ruimte 4; Personenresource; 5; Werkplek;*/
var sql1 = "SELECT {0} id, '> ' || ins_discipline_omschrijving lbl, COUNT (*) val, '' det "
+ " FROM res_deel rr, res_discipline rd "
+ " WHERE rr.res_discipline_key = rd.ins_discipline_key "
+ " AND rr.res_deel_verwijder IS NULL "
+ " AND ins_discipline_min_level = {1} "
+ " AND ins_discipline_verwijder IS NULL "
+ " AND (rr.res_deel_vervaldatum IS NULL OR rr.res_deel_vervaldatum > SYSDATE) "
+ "GROUP BY ins_discipline_omschrijving "
+ "ORDER BY 3 DESC, 2 ";
sql = sql0.format(7, '1', L('lcl_res_objcat'));
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = sql1.format(7, '1');
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = sql0.format(8, '4', L('lcl_res_persons'));
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = sql1.format(8, '4');
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = sql0.format(9, '5', L('lcl_res_wpcat'));
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = sql1.format(9, '5');
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
// Werkplekken
sql = " SELECT 10 id, "+safe.quoted_sql(L('frm_wplistframe'))+" lbl, COUNT (*) val, '' det "
+ " FROM prs_werkplek wp, "
+ " alg_ruimte r, "
+ " alg_verdieping v, "
+ " alg_gebouw g, "
+ " alg_locatie l "
+ " WHERE prs_werkplek_virtueel = 0 "
+ " AND r.alg_ruimte_key = wp.prs_alg_ruimte_key "
+ " AND r.alg_verdieping_key = v.alg_verdieping_key "
+ " AND v.alg_gebouw_key = g.alg_gebouw_key "
+ " AND g.alg_locatie_key = l.alg_locatie_key "
+ " AND g.alg_gebouw_verwijder IS NULL "
+ " AND v.alg_verdieping_verwijder IS NULL "
+ " AND r.alg_ruimte_verwijder IS NULL "
+ " AND (alg_gebouw_vervaldatum IS NULL OR alg_gebouw_vervaldatum > SYSDATE) ";
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
sql = " SELECT 10 id, '> ' || l.alg_locatie_plaats lbl, COUNT (*) val, '' det"
+ " FROM prs_werkplek wp, "
+ " alg_ruimte r, "
+ " alg_verdieping v, "
+ " alg_gebouw g, "
+ " alg_locatie l "
+ " WHERE prs_werkplek_virtueel = 0 "
+ " AND r.alg_ruimte_key = wp.prs_alg_ruimte_key "
+ " AND r.alg_verdieping_key = v.alg_verdieping_key "
+ " AND v.alg_gebouw_key = g.alg_gebouw_key "
+ " AND g.alg_locatie_key = l.alg_locatie_key "
+ " AND g.alg_gebouw_verwijder IS NULL "
+ " AND v.alg_verdieping_verwijder IS NULL "
+ " AND r.alg_ruimte_verwijder IS NULL "
+ " AND (alg_gebouw_vervaldatum IS NULL OR alg_gebouw_vervaldatum > SYSDATE) "
+ "GROUP BY l.alg_locatie_plaats "
+ "ORDER BY 3 DESC, 2 ";
oRs = Oracle.Execute(sql);
add2facts (oRs);
oRs.Close();
var buttons = [];
IFRAMER_HEADER(L("lcl_alg_fmstats")+" / "+L("lcl_estate_ruimte_bruto_vloeropp"), buttons);
%>
<form name=u2 onSubmit="return false;">
<%
var i = 0;
var currid = 1;
// Luiheid en eenmaligheid is de reden om dit niet met een loopje te doen, verschillen alleen in icon en presentatie van det(ails).
// Zou ze best collapsible willen, maar dat werkt alleen nog maar voor flexkenmerkblokken; ingeklapt kan wel, maar dan kun je niet meer uitklappen.
BLOCK_START("fm1", facts[i].lbl+" "+safe.showFloat(facts[i].cnt,0) + " / " + safe.showFloat(facts[i].det||'-',0)+ " m2", {icon: "fa-building"});
i+=1;
for (i=i; i<facts.length; i++)
{
if (facts[i].id && facts[i].id != currid) { currid += 1; break; }
ROFIELDTR("fld", facts[i].lbl, safe.showFloat(facts[i].cnt,0) + (facts[i].det ? (" / " + safe.showFloat(facts[i].det||'-',0) + " m2") : ""));
}
BLOCK_END();
BLOCK_START("fm2", facts[i].lbl+" "+safe.showFloat(facts[i].cnt,0) + " / " + safe.showFloat(facts[i].det||'-',0)+ " m2", {icon: "fa-layer-group"});
i+=1;
for (i=i; i<facts.length; i++)
{
if (facts[i].id && facts[i].id != currid) { currid += 1; break; }
ROFIELDTR("fld", facts[i].lbl, safe.showFloat(facts[i].cnt,0) + (facts[i].det ? (" / " + safe.showFloat(facts[i].det||'-',0) + " m2") : ""));
}
BLOCK_END();
BLOCK_START("fm3", facts[i].lbl+" "+safe.showFloat(facts[i].cnt,0) + " / " + safe.showFloat(facts[i].det||'-',0)+ " m2", {icon: "fa-map-marker-alt"});
i+=1;
for (i=i; i<facts.length; i++)
{
if (facts[i].id && facts[i].id != currid) { currid += 1; break; }
ROFIELDTR("fld", facts[i].lbl, safe.showFloat(facts[i].cnt,0) + (facts[i].det ? (" / " + safe.showFloat(facts[i].det||'-',0) + " m2") : ""));
}
BLOCK_END();
BLOCK_START("fm4", facts[i].lbl+" "+safe.showFloat(facts[i].cnt,0), {icon: "fa-cubes"});
i+=1;
for (i=i; i<facts.length; i++)
{
if (facts[i].id && facts[i].id != currid) { currid += 1; break; }
ROFIELDTR("fld", facts[i].lbl, safe.showFloat(facts[i].cnt,0) );
}
BLOCK_END();
BLOCK_START("fm5", facts[i].lbl+" "+safe.showFloat(facts[i].cnt,0), {icon: "fa-sensor"});
i+=1;
for (i=i; i<facts.length; i++)
{
if (facts[i].id && facts[i].id != currid) { currid += 1; break; }
ROFIELDTR("fld", facts[i].lbl, safe.showFloat(facts[i].cnt,0) );
}
BLOCK_END();
BLOCK_START("fm6", facts[i].lbl+" "+safe.showFloat(facts[i].cnt,0) + " / " + safe.showFloat(facts[i].det||'-',0)+ " m2", {icon: "fa-users"});
i+=1;
for (i=i; i<facts.length; i++)
{
if (facts[i].id && facts[i].id != currid) { currid += 1; break; }
ROFIELDTR("fld", facts[i].lbl, safe.showFloat(facts[i].cnt,0) + (facts[i].det ? (" / " + safe.showFloat(facts[i].det||'-',0) + " m2") : ""));
}
BLOCK_END();
BLOCK_START("fm7", facts[i].lbl+" "+safe.showFloat(facts[i].cnt,0), {icon: "fa-projector"});
i+=1;
for (i=i; i<facts.length; i++)
{
if (facts[i].id && facts[i].id != currid) { currid += 1; break; }
ROFIELDTR("fld", facts[i].lbl, safe.showFloat(facts[i].cnt,0) );
}
BLOCK_END();
BLOCK_START("fm8", facts[i].lbl+" "+safe.showFloat(facts[i].cnt,0), {icon: "fa-user"});
i+=1;
for (i=i; i<facts.length; i++)
{
if (facts[i].id && facts[i].id != currid) { currid += 1; break; }
ROFIELDTR("fld", facts[i].lbl, safe.showFloat(facts[i].cnt,0) );
}
BLOCK_END();
BLOCK_START("fm9", facts[i].lbl+" "+safe.showFloat(facts[i].cnt,0), {icon: "fa-desktop"});
i+=1;
for (i=i; i<facts.length; i++)
{
if (facts[i].id && facts[i].id != currid) { currid += 1; break; }
ROFIELDTR("fld", facts[i].lbl, safe.showFloat(facts[i].cnt,0) );
}
BLOCK_END();
BLOCK_START("fm10", facts[i].lbl+" "+safe.showFloat(facts[i].cnt,0), {icon: "fa-chair-office"});
i+=1;
for (i=i; i<facts.length; i++)
{
if (facts[i].id && facts[i].id != currid) { currid += 1; break; }
ROFIELDTR("fld", facts[i].lbl, safe.showFloat(facts[i].cnt,0) );
}
BLOCK_END();
%>
</form>
<% SUBFRAME_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>

View File

@@ -20,15 +20,16 @@ var cnt_full = getQParamInt("cnt_full", 1);
if (bld_key > 0)
{
var sql = "SELECT alg_gebouw_code, alg_locatie_key, alg_gebouw_x, alg_gebouw_y "
sql = " select alg_gebouw_code, alg_locatie_key, alg_gebouw_x, alg_gebouw_y "
+ " FROM alg_gebouw "
+ " WHERE alg_gebouw_key = " + bld_key;
var oRs = Oracle.Execute(sql);
var bld_name = " " + oRs("alg_gebouw_code").Value;
var loc_key = oRs("alg_locatie_key").Value;
var bld_x = oRs("alg_gebouw_x").Value;
var bld_y = oRs("alg_gebouw_y").Value;
oRs.Close();
+ " WHERE alg_gebouw_key = " + bld_key;
oRs = Oracle.Execute(sql);
var bld_name = " " + oRs("alg_gebouw_code").value;
var loc_key = oRs("alg_locatie_key").value;
var bld_x = oRs("alg_gebouw_x").value;
var bld_y = oRs("alg_gebouw_y").value;
}
else
{
@@ -93,15 +94,13 @@ else
if (authparamsCNTMAN || authparamsCNTUSE)
{
var page1 = "../cnt/cnt_search_list.asp?embedded=1&tiny=1&urole=" + curole
+ "&ffutu=1&fact=1&frap=1&fopz=1&sact=1&bld_key=" + bld_key
+ "&cnt_full="+cnt_full;
var page1="../cnt/cnt_search_list.asp?embedded=1&tiny=1&urole=" + curole + "&ffutu=1&fact=1&frap=1&fopz=1&sact=1&bld_key=" + bld_key
page1 += "&cnt_full="+cnt_full;
IFRAMER("cntlistframe", page1, { icon: "fa-list"} );
}
if (S("alg_fg_remote_maps") != "" && bld_x && bld_y)
{
var page2 = "../cad/ShowGoogleMap.asp?bld_key=" + bld_key;
if (S("alg_fg_remote_maps") != "" && bld_x && bld_y) {
var page2= "../cad/ShowGoogleMap.asp?bld_key=" + bld_key
IFRAMER("mapsframe", page2, { title: L("lcl_maps"), icon: "fa-map-marker-alt" } );
}
// tracking naar subframe :-)
@@ -113,9 +112,6 @@ else
IFRAMER("alghistoryframe", page3, { icon: "fa-list", title: L("lcl_tracking")} );
}
page4 = "alg_show_note2.asp?alg_key=" + bld_key + "&alg_typ=G";
IFRAMER("algnoteframe", page4, { refreshOnClose: true, sidebar: true } ); // sidebar heeft geen icon/title nodig
}
%>
<% PAGE_END(); %>

View File

@@ -16,7 +16,51 @@
<%
FCLTHeader.Requires({ plugins: ["jQuery"] });
var cnt_full = getQParamInt("cnt_full", 1);
function fnrowData(oRs)
{
var parent_key = oRs("alg_locatie_key").value;
var detail_key = oRs("alg_gebouw_key").value;
var key = oRs("alg_gebouw_key").value;
var oms = oRs("alg_gebouw_naam").value;
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
var recent = new Date();
function fnrowClass(oRs)
{
var lclass = "";
// Tracking: hoe lang geleden voor het laatst gewijzigd?
if (oRs.Fields("recentdatum").Value != null)
{
var ltrackdate1 = new Date();
var ltrackdate10 = new Date();
var ltrackdate100 = new Date();
var alg_onrgoed_recent = S("alg_onrgoed_recent");
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
if (fac_recent > ltrackdate1)
{
lclass += " updated";
}
else if (fac_recent > ltrackdate10)
{
lclass += " updated10";
}
else if (fac_recent > ltrackdate100)
{
lclass += " updated100";
}
}
return lclass;
}
var cnt_full = getQParamInt("cnt_full", 1);
// Fast check to see if any building responsibles have been set
// If not, we can suppress the column
@@ -40,7 +84,6 @@ FCLTHeader.Requires({ plugins: ["jQuery"] });
oRs.close()
}
var canImport = (user.checkAutorisation("WEB_IMPORT", true) != null);
%>
<script type="text/javascript">
@@ -63,6 +106,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"] });
function gebouwEdit(row)
{
var algData = JSON.parse(row.getAttribute("ROWDATA"));
var v_all_cnt = <%=cnt_full%>;
var url = "appl/alg/alg_gebouw.asp?mode=viewChange&key=" + algData.key + "&cnt_full=<%=cnt_full%>";
FcltMgr.openDetail(url, L("lcl_building") + " " + algData.oms);
}
@@ -105,6 +149,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"] });
var url = "appl/ins/ins_search.asp?urole=bo&gebouw_key=" + algData.key;
FcltMgr.openDetail(url, L("lcl_building") + " " + algData.oms);
}
</script>
<%
@@ -132,22 +177,34 @@ function gebouw_list(pautfunction, params)
var fitness_score1_from = params.fitness_score1_from;
var fitness_score1_through = params.fitness_score1_through;
var transitParam = buildTransitParam(["locatiekey", "urole", "bld_key", "flo_key", "room_key"]);
var rstFilters = params.rstFilters;
var checkBoxes = [
{
lcl: L("lcl_alg_gebouw_vervallen_incl"),
param: 'expAlgIncl',
checked: expalgincl,
transitParams: transitParam
}
];
var rstCheckBoxes = rstFilters ? checkBoxes : [];
var autparamsINSUSE = user.checkAutorisation("WEB_INSUSE", true);
var autparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);
var readuse = autparamsINSUSE && autparamsINSUSE.PRSreadlevel < 9 && autparamsINSUSE.ALGreadlevel < 9; // Wijzigen Afgeronde gegevens.
var readman = autparamsINSMAN && autparamsINSMAN.PRSreadlevel < 9 && autparamsINSMAN.ALGreadlevel < 9; // Wijzigen Afgeronde gegevens.
function fnrowActionEnabler(oRs)
{
var eDelete = false;
var eEditMulti = false;
var eObjMan = false;
if (alg.canWriteGebouw(oRs("alg_gebouw_key").value, authparams.mALGwritelevel))
{
eDelete = true;
eEditMulti = true;
}
// Heb ik rechten om het objectenbeheer overzicht te zien?
if (readuse || readman)
eObjMan = true;
return ({eDelete: eDelete, eEditMulti: eEditMulti, eObjMan: eObjMan});
}
function fnrowFlexParams(oRs)
{
var bld_key = oRs("alg_gebouw_key").Value;
var this_alg = alg.func_enabled(bld_key, "G");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
%>
<html>
@@ -156,8 +213,8 @@ function gebouw_list(pautfunction, params)
</head>
<body id="listbody">
<%
var flexParams = alg.alg_onroerendgoed_flex_params("G");
var sqln = "SELECT g.alg_gebouw_key"
+ " , g.alg_locatie_key"
+ " , g.alg_locatie_key"
+ " , g.alg_srtgebouw_key"
+ " , l.alg_locatie_omschrijving"
@@ -187,7 +244,6 @@ function gebouw_list(pautfunction, params)
+ " AND t.fac_tracking_refkey = g.alg_gebouw_key"
+ " AND sn.fac_srtnotificatie_xmlnode = 'gebouw'"
+ " ) recentdatum"
+ flexParams.sql
+ " FROM alg_gebouw g"
+ " , alg_locatie l"
+ " , alg_srtgebouw s"
@@ -245,98 +301,12 @@ function gebouw_list(pautfunction, params)
var addurl = "appl/alg/alg_gebouw.asp";
var addButton = [];
if (canAdd)
{
addButton.push({ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" });
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
}
/**********************************
* Callback functies ResultsetTable
*********************************/
var recent = new Date();
function fnrowData(oRs)
{
var parent_key = oRs("alg_locatie_key").value;
var detail_key = oRs("alg_gebouw_key").value;
var key = oRs("alg_gebouw_key").value;
var oms = oRs("alg_gebouw_naam").value;
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
function fnrowClass(oRs)
{
var lclass = "";
// Tracking: hoe lang geleden voor het laatst gewijzigd?
if (oRs.Fields("recentdatum").Value != null)
{
var ltrackdate1 = new Date();
var ltrackdate10 = new Date();
var ltrackdate100 = new Date();
var alg_onrgoed_recent = S("alg_onrgoed_recent");
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
if (fac_recent > ltrackdate1)
{
lclass += " updated";
}
else if (fac_recent > ltrackdate10)
{
lclass += " updated10";
}
else if (fac_recent > ltrackdate100)
{
lclass += " updated100";
}
}
return lclass;
}
function fnrowActionEnabler(oRs)
{
var eDelete = false;
var eEditMulti = false;
var eObjMan = false;
if (alg.canWriteGebouw(oRs("alg_gebouw_key").value, authparams.mALGwritelevel))
{
eDelete = true;
eEditMulti = true;
}
// Heb ik rechten om het objectenbeheer overzicht te zien?
if (readuse || readman)
eObjMan = true;
return ({eDelete: eDelete, eEditMulti: eEditMulti, eObjMan: eObjMan});
}
function fnrowFlexParams(oRs)
{
var bld_key = oRs("alg_gebouw_key").Value;
var this_alg = alg.func_enabled(bld_key, "G");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var alg_key = oRs("alg_gebouw_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
{
result += alg.alg_onroerendgoed_flex_bijlagen("G", alg_key);
}
return result;
}
// addurl += buildTransitParam(["loc_key", "bld_key", "flo_key", "room_key"], params) // TODO: welke allemaal?
var rst = new ResultsetTable({ sql:sqln,
keyColumn: "alg_gebouw_key",
@@ -351,9 +321,7 @@ function gebouw_list(pautfunction, params)
flexParams: fnrowFlexParams,
filterParams: params,
outputmode: outputmode,
buttons: addButton,
rstCheckBoxes: rstCheckBoxes,
roundtripCode: (canImport ? "ONRGOED1" : "")
buttons: addButton
});
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_descr"), content: "alg_locatie_omschrijving"}));
@@ -372,6 +340,7 @@ function gebouw_list(pautfunction, params)
}
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_bruto_vloeropp"), content: "alg_gebouw_bruto_vloeropp", datatype: "float", decimals: 2}));
rst.addColumn(new Column({caption: L("lcl_alg_vervaldatum"), content: "alg_gebouw_vervaldatum", datatype: "date"}));
if (outputmode != 0)
{
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_opmerk"), content: "alg_gebouw_opmerking"}));
@@ -384,8 +353,6 @@ function gebouw_list(pautfunction, params)
}
if (ins_score_enabled)
rst.addColumn(new Column({caption: L("lcl_alg_gebouw_mjb_score1"), content: "alg_gebouw_mjb_score1", datatype: "number"}));
if (flexParams.anyflex)
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
rst.addAction({ action: "gebouwEdit", caption: L("lcl_edit"), isDefault: true});
if (S("cnd_gebreken_srtdisc_key") > -1)
@@ -399,3 +366,4 @@ function gebouw_list(pautfunction, params)
</html>
<%
} %>

View File

@@ -21,7 +21,6 @@ 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 alg_startlevel = getQParamInt("alg_startlevel", 2); // Startlevel van plaatsselector, default Locatie
var cnt_full = getQParamInt("cnt_full", 1);
var authparams = alg.checkAutorisation();
var this_alg = alg.func_enabled(gebouw_key);
@@ -65,7 +64,7 @@ var this_alg = alg.func_enabled(gebouw_key);
FCLTplaatsselector(authparams.ALGreadlevel, {
locatiekey: locatie_key,
gebouwkey: gebouw_key,
startlevel: alg_startlevel, // locatie
startlevel: 2, // locatie
eindlevel: 2, // locatie
whenEmpty: L("lcl_search_generic")
});

View File

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

View File

@@ -84,10 +84,7 @@ else
if (loc_key > -1)
{
var urole = "bo";
var page0 = "../alg/alg_gebouw_search_list.asp?urole="
+ urole +"&locatiekey="+loc_key
+ "&rst_filters=1";
var page0 = "../alg/alg_gebouw_search_list.asp?urole=" + urole +"&locatiekey="+loc_key;
IFRAMER("alggebouwframe", page0, { icon: "fa-list"} );
var page1 = "../alg/alg_terreinsector_search_list.asp?urole=" + urole +"&locatiekey="+loc_key;
IFRAMER("algterreinframe", page1, { icon: "fa-list"} );
@@ -101,16 +98,13 @@ else
if (authparamsCNTMAN || authparamsCNTUSE)
{
var page2 = "../cnt/cnt_search_list.asp?embedded=1&tiny=1&urole=" + curole
+ "&ffutu=1&fact=1&frap=1&fopz=1&sact=1&loc_key=" + loc_key
+ "&rst_filters=1"
+ "&cnt_full="+cnt_full;
var page2="../cnt/cnt_search_list.asp?embedded=1&tiny=1&urole=" + curole + "&ffutu=1&fact=1&frap=1&fopz=1&sact=1&loc_key=" + loc_key
page2 += "&cnt_full="+cnt_full;
IFRAMER("cntlistframe", page2, { icon: "fa-list" } );
}
if (S("alg_fg_remote_maps") != "" && loc_x && loc_y)
{
var page4 = "../cad/ShowGoogleMap.asp?loc_key=" + loc_key;
if (S("alg_fg_remote_maps") != "" && loc_x && loc_y) {
var page4= "../cad/ShowGoogleMap.asp?loc_key=" + loc_key
IFRAMER("mapsframe", page4, { title: L("lcl_maps"), icon: "fa-map-marker-alt" } );
}
// tracking naar subframe :-)
@@ -121,10 +115,6 @@ else
page5 = protectQS.create("../shared/status_info.asp?loc_key=" + loc_key);
IFRAMER("alghistoryframe", page5, { icon: "fa-list", title: L("lcl_tracking")} );
}
page6 = "alg_show_note2.asp?alg_key=" + loc_key + "&alg_typ=L";
IFRAMER("algnoteframe", page6, { refreshOnClose: true, sidebar: true } ); // sidebar heeft geen icon/title nodig
}
%>
<% PAGE_END(); %>

View File

@@ -18,6 +18,50 @@ FCLTHeader.Requires({ plugins:["jQuery"],
js: []
})
function fnrowData(oRs)
{
var parent_key = oRs("alg_district_key").value;
var detail_key = oRs("alg_locatie_key").value;
var key = oRs("alg_locatie_key").value;
var oms = oRs("alg_locatie_omschrijving").value;
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
var recent = new Date();
function fnrowClass(oRs)
{
var lclass = "";
// Tracking: hoe lang geleden voor het laatst gewijzigd?
if (oRs.Fields("recentdatum").Value != null)
{
var ltrackdate1 = new Date();
var ltrackdate10 = new Date();
var ltrackdate100 = new Date();
var alg_onrgoed_recent = S("alg_onrgoed_recent");
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
if (fac_recent > ltrackdate1)
{
lclass += " updated";
}
else if (fac_recent > ltrackdate10)
{
lclass += " updated10";
}
else if (fac_recent > ltrackdate100)
{
lclass += " updated100";
}
}
return lclass;
}
var cnt_full = getQParamInt("cnt_full", 1);
%>
<script type="text/javascript">
@@ -98,6 +142,27 @@ function locatie_list(pautfunction, params)
var expalgincl = params.expalgincl;
var fitness_score1_from = params.fitness_score1_from;
var fitness_score1_through = params.fitness_score1_through;
function fnrowActionEnabler(oRs)
{
var eDelete = false;
var eEditMulti = false;
if (alg.canWriteLocatie(oRs("alg_locatie_key").value, authparams.mALGwritelevel))
{
eDelete = true;
eEditMulti = true;
}
return ({eDelete: eDelete, eEditMulti: eEditMulti})
}
function fnrowFlexParams(oRs)
{
var loc_key = oRs("alg_locatie_key").Value;
var this_alg = alg.func_enabled(loc_key, "L");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
%>
<html>
@@ -105,9 +170,7 @@ function locatie_list(pautfunction, params)
<% FCLTHeader.Generate({outputmode:outputmode}) %>
</head>
<body id="listbody">
<%
var flexParams = alg.alg_onroerendgoed_flex_params("L");
var sqln = "SELECT l.alg_locatie_key"
<% var sqln = "SELECT l.alg_locatie_key"
+ " , l.alg_district_key"
+ " , l.alg_locatie_code"
+ " , l.alg_locatie_omschrijving"
@@ -133,7 +196,6 @@ function locatie_list(pautfunction, params)
+ " AND t.fac_tracking_refkey = l.alg_locatie_key"
+ " AND sn.fac_srtnotificatie_xmlnode = 'locatie'"
+ " ) recentdatum"
+ flexParams.sql
+ " FROM alg_v_aanweziglocatie l"
+ " , alg_district d "
+ " WHERE d.alg_district_key(+) = l.alg_district_key"
@@ -189,88 +251,6 @@ function locatie_list(pautfunction, params)
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
}
/**********************************
* Callback functies ResultsetTable
*********************************/
var recent = new Date();
function fnrowData(oRs)
{
var parent_key = oRs("alg_district_key").value;
var detail_key = oRs("alg_locatie_key").value;
var key = oRs("alg_locatie_key").value;
var oms = oRs("alg_locatie_omschrijving").value;
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
function fnrowClass(oRs)
{
var lclass = "";
// Tracking: hoe lang geleden voor het laatst gewijzigd?
if (oRs.Fields("recentdatum").Value != null)
{
var ltrackdate1 = new Date();
var ltrackdate10 = new Date();
var ltrackdate100 = new Date();
var alg_onrgoed_recent = S("alg_onrgoed_recent");
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
if (fac_recent > ltrackdate1)
{
lclass += " updated";
}
else if (fac_recent > ltrackdate10)
{
lclass += " updated10";
}
else if (fac_recent > ltrackdate100)
{
lclass += " updated100";
}
}
return lclass;
}
function fnrowActionEnabler(oRs)
{
var eDelete = false;
var eEditMulti = false;
if (alg.canWriteLocatie(oRs("alg_locatie_key").value, authparams.mALGwritelevel))
{
eDelete = true;
eEditMulti = true;
}
return ({eDelete: eDelete, eEditMulti: eEditMulti})
}
function fnrowFlexParams(oRs)
{
var loc_key = oRs("alg_locatie_key").Value;
var this_alg = alg.func_enabled(loc_key, "L");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var alg_key = oRs("alg_locatie_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
{
result += alg.alg_onroerendgoed_flex_bijlagen("L", alg_key);
}
return result;
}
var rst = new ResultsetTable({ sql:sqln,
keyColumn: "alg_locatie_key",
ID: "algtable",
@@ -305,12 +285,9 @@ function locatie_list(pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_prs_address_post_plaats"), content: "alg_locatie_post_plaats"}));
rst.addColumn(new Column({caption: L("lcl_prs_address_post_land"), content: "alg_locatie_post_land"}));
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_verantw"), content: "alg_locatie_verantw"}));
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_verantw_tel"), content: "alg_locatie_verantw_tel"}));
rst.addColumn(new Column({caption: L("lcl_geoxcoord"), content: "alg_locatie_x"}));
rst.addColumn(new Column({caption: L("lcl_geoycoord"), content: "alg_locatie_y"}));
}
if (flexParams.anyflex)
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
rst.addAction({ action: "locatieEdit", caption: L("lcl_edit"), isDefault: true});
@@ -329,3 +306,4 @@ function locatie_list(pautfunction, params)
<%
}
%>

View File

@@ -17,7 +17,6 @@ var district_key = getQParamInt("district_key", -1); //district
var locatie_key = getQParamInt("locatie_key", -1); //locatie
var autosearch = getQParamInt("autosearch", 0) == 1;
var cnt_full = getQParamInt("cnt_full", 1);
var alg_startlevel = getQParamInt("alg_startlevel", 0); // Startlevel van plaatsselector, default Regio
var authparams = alg.checkAutorisation();
%>
@@ -58,7 +57,7 @@ var authparams = alg.checkAutorisation();
<% FCLTplaatsselector(authparams.ALGreadlevel, {
districtkey: district_key,
locatiekey: locatie_key,
startlevel: alg_startlevel, // regio
startlevel: 0, // regio
eindlevel: 2, // Locatie
whenEmpty: L("lcl_search_generic") // want filter
});

View File

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

View File

@@ -16,7 +16,6 @@ FCLTHeader.Requires({ plugins:["jQuery", "kenmerk"] });
var regio_key = getQParamInt("regio_key", -1); //regio
var autosearch = getQParamInt("autosearch", 0) == 1;
var alg_startlevel = getQParamInt("alg_startlevel", 0); // Startlevel van plaatsselector, default Regio
var authparams = alg.checkAutorisation();
%>
@@ -24,31 +23,7 @@ var authparams = alg.checkAutorisation();
<head>
<% FCLTHeader.Generate(); %>
<script type="text/javascript">
function doSubmit()
{
// Submitten met kenmerken
doSubmitWithKenmerken();
}
async function myModal(init)
{
var lvl = "E";
var key = 0;
var bld_key = "";
var url = "load_kenmerk.asp?disc="
+ "&urole=bo"
+ "&advanced=1"
+ "&hasFilter=1"
+ "&onrgoed_key=" +bld_key
+ "&onrgoed_niveau=" + lvl;
var titel = L("lcl_properties");
await showKenmerkModal(url, titel, init);
}
$(function() {
<% if (autosearch) { %>
document.forms.u2.submit();
<% } %>
});
$(function() {<% if (autosearch) { %> document.forms.u2.submit(); <%}%> });
</script>
</head>
<body id="searchbody">
@@ -58,15 +33,13 @@ var authparams = alg.checkAutorisation();
// <!-- Locatie, gebouw en verdieping -->
FCLTplaatsselector(authparams.ALGreadlevel, {
regiokey: regio_key,
startlevel: alg_startlevel, // Regio
startlevel: 0, // Regio
eindlevel: 0, // District
whenEmpty: L("lcl_search_generic")
});
SEARCH_BLOCK_END();
var buttons = [{title: L("lcl_overview_list"), action: "document.forms.u2.submit();", id: "bSearch", icon: "fa-clipboard-list" }];
SIMPLE_BLOCK_START();
var buttons = [ {title: L("lcl_overview_list"), action: "doSubmit();", id: "bSearch", icon: "fa-clipboard-list" }
, {title: L("lcl_shared_advanced"), action: "myModal()", id: "bAdvanced", importance: 3, icon: "fa-filter" }
];
CreateButtons(buttons, { entersubmit: true, showIcons: true });
SIMPLE_BLOCK_END();
SEARCH_PAGE_END(); %>
@@ -82,4 +55,4 @@ var authparams = alg.checkAutorisation();
</div>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -49,7 +49,6 @@ if (room_key > 0)
var flr_oms = oRs("alg_verdieping_omschrijving").value;
var room_nr = oRs("alg_ruimte_nr").value;
var room_name = " " + bld_code + "-" + flr_oms + "-" + room_nr;
oRs.Close();
}
else
{
@@ -109,7 +108,7 @@ else
var page2 ="alg_werkplek_search_list.asp?tiny=1&ruimtekey=" + room_key;
IFRAMER("wplistframe", page2, { icon: "fa-list" } );
var page3 = "../mgt/prs_ruimteafdeling.asp?tiny=1&mode=list&room=" + room_key;
var page3 ="../prs/prs_afdeling_search_list.asp?tiny=1&room_key=" + room_key; // Alle afdelingen van alle niveau's (1 en hoger) laten zien dus afd_niveau=nr niet meegegeven
IFRAMER("afdlistframe", page3, { icon: "fa-list" } );
var authparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);

View File

@@ -19,10 +19,10 @@ FCLTHeader.Requires({ plugins:["jQuery", "suggest"], js: ["jQuery-ui.js"] });
function ruimte_list(pautfunction, params)
{
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
var addButton = [];
var authparams = alg.checkAutorisation();
// Met ALG* bepaal je wat je ziet (Read), met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
var canAdd = (authparams.rmALGwritelevel < 9);
var canImport = (user.checkAutorisation("WEB_IMPORT", true) != null);
// Voor resulttable de globalen zetten; zou ng anders moeten.
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
@@ -41,19 +41,6 @@ function ruimte_list(pautfunction, params)
var expalgincl = params.expalgincl;
var chkgeb = params.chkgeb;
var cnt_full = params.cnt_full;
var usingoccupationsensors = params.sensorstats;
// Het lijkt zinvol, ook voor onnodig performanceverlies, dat we deze alleen doen als we autorisatie hebben voor WEB_RESBAC of WEB_RESMSU
var showdeskreservationstats = params.resstats && (user.has("WEB_RESBAC") || user.has("WEB_RESMSU"))
var showroomreservationstats = params.resstats && (user.has("WEB_RESBAC") || user.has("WEB_RESMSU"));
if (showdeskreservationstats) {
// Fast check to see if we do have werkplekdisciplines
sql= "SELECT 1 FROM res_discipline WHERE ins_discipline_min_level = 5 AND ins_discipline_verwijder IS NULL AND ROWNUM = 1";
oRs = Oracle.Execute(sql);
showdeskreservationstats = !oRs.eof;
oRs.close();
}
%>
<html>
@@ -91,10 +78,14 @@ function ruimte_list(pautfunction, params)
FcltMgr.openModalDetail(url, subject, {callback: FcltCallbackRefresh});
}
function doRuimteAfdeling(row)
function doRuimteAfdeling(rowArray)
{
var algData = JSON.parse(row.getAttribute("ROWDATA"));
FcltMgr.openModalDetail("alg_ruimteafdeling.asp?ruimte_keys=" + algData.key, L("lcl_alg_ruimte_bezetting"));
var ruimteArr = [];
for (var i = 0; i < rowArray.length; i++)
{
ruimteArr.push(rowArray[i].getAttribute("ROWKEY"))
}
FcltMgr.openModalDetail("alg_ruimteafdeling.asp?ruimte_keys=" + ruimteArr.join(","), L("lcl_alg_ruimte_bezetting"));
}
function doRESScope(rowArray)
@@ -123,9 +114,7 @@ function ruimte_list(pautfunction, params)
</head>
<body id="listbody">
<%
var flexParams = alg.alg_onroerendgoed_flex_params("R");
var sqln = "SELECT r.alg_ruimte_key"
<% var sqln = "SELECT r.alg_ruimte_key"
+ ", v.alg_verdieping_key"
+ ", v.alg_gebouw_key"
+ ", g.alg_locatie_key"
@@ -145,37 +134,11 @@ function ruimte_list(pautfunction, params)
+ ", r.alg_ruimte_opp_alt1"
+ ", r.alg_ruimte_opp_alt2"
+ ", r.alg_ruimte_verwijder"
+ " , (SELECT MAX(t.fac_tracking_datum)"
+ " FROM fac_tracking t"
+ " , fac_srtnotificatie sn"
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
+ " AND t.fac_tracking_refkey = r.alg_ruimte_key"
+ " AND sn.fac_srtnotificatie_xmlnode = 'ruimte'"
+ " ) recentdatum"
+ flexParams.sql
+ (usingoccupationsensors
? ", sstats.total_person_hours"
+ ", sstats.avg_utilization_pct"
+ ", sstats.peak_occupied_desks"
: "")
+ (showdeskreservationstats
? ", dstats.total_reserved_hours_desk"
+ ", dstats.avg_reserved_count_desk"
+ ", dstats.peak_reserved_count_desk"
: "")
+ (showroomreservationstats
? ", rstats.total_reserved_hours_room" // hoeveel uur in de afgelopen 90 dagen
+ ", rstats.avg_persons_per_reservation" // gemiddeld aantal deelnemers per reservering
+ ", rstats.avg_reservation_duration_hours" // gemiddelde reserveringsduur
: "")
+ " FROM alg_ruimte r"
+ ", alg_verdieping v"
+ ", alg_gebouw g"
+ ", alg_locatie l"
+ ", alg_srtruimte s"
+ (usingoccupationsensors ? ", ins_v_room_occupancy_kpis sstats" : "")
+ (showdeskreservationstats ? ", res_v_desk_reservation_kpis dstats" : "")
+ (showroomreservationstats ? ", res_v_room_simple_kpis rstats" : "")
+ " WHERE v.alg_verdieping_key = r.alg_verdieping_key "
+ " AND g.alg_gebouw_key = v.alg_gebouw_key "
+ " AND l.alg_locatie_key(+) = g.alg_locatie_key "
@@ -189,9 +152,6 @@ function ruimte_list(pautfunction, params)
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + authparams.ALGreadlevel + ")";
}
sqln += (usingoccupationsensors ? " AND r.alg_ruimte_key = sstats.alg_ruimte_key(+)" : "")
sqln += (showdeskreservationstats ? " AND r.alg_ruimte_key = dstats.alg_ruimte_key(+)" : "")
sqln += (showroomreservationstats ? " AND r.alg_ruimte_key = rstats.alg_ruimte_key(+)" : "")
sqln += getKenmerkSql("ALG", "r.alg_ruimte_key");
@@ -250,22 +210,6 @@ function ruimte_list(pautfunction, params)
+ ", v.alg_verdieping_volgnr ASC"
+ ", r.alg_ruimte_upper_nr ASC"
var addurl = "appl/alg/alg_ruimte.asp?a=1";
addurl += buildTransitParam(["locatiekey", "gebouwkey", "verdiepingkey", "ruimtekey"], params) // TODO: welke allemaal?
var buttons = [];
if (canAdd)
{
buttons.push({ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" });
}
buttons.push({ icon: "fa-columns", title: L("lcl_scf_columns"), action: "openColumns()"});
/**********************************
* Callback functies ResultsetTable
*********************************/
var recent = new Date();
function fnrowData(oRs)
{
var parent_key = oRs("alg_verdieping_key").Value;
@@ -277,37 +221,6 @@ function ruimte_list(pautfunction, params)
return JSON.stringify(data);
}
function fnrowClass(oRs) // identiek aan de andere niveaus
{
var lclass = "";
// Tracking: hoe lang geleden voor het laatst gewijzigd?
if (oRs.Fields("recentdatum").Value != null)
{
var ltrackdate1 = new Date();
var ltrackdate10 = new Date();
var ltrackdate100 = new Date();
var alg_onrgoed_recent = S("alg_onrgoed_recent");
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
if (fac_recent > ltrackdate1)
{
lclass += " updated";
}
else if (fac_recent > ltrackdate10)
{
lclass += " updated10";
}
else if (fac_recent > ltrackdate100)
{
lclass += " updated100";
}
}
return lclass;
}
var floorCache = [];
// Voor performance bekijken we de rechten per verdieping. In de praktijk nauwkeurig genoeg
function fnrowActionEnabler(oRs)
@@ -334,37 +247,27 @@ function ruimte_list(pautfunction, params)
return flexParams;
}
function fncolFlexBijlagen(oRs)
var addurl = "appl/alg/alg_ruimte.asp?a=1";
addurl += buildTransitParam(["locatiekey", "gebouwkey", "verdiepingkey", "ruimtekey"], params) // TODO: welke allemaal?
if (canAdd)
{
var flexval = oRs("algflex").Value;
var alg_key = oRs("alg_ruimte_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
{
result += alg.alg_onroerendgoed_flex_bijlagen("R", alg_key);
}
return result;
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
}
var rst = new ResultsetTable({ sql: sqln,
keyColumn: "alg_ruimte_key",
ID: "algtable",
title: L("lcl_menu_alg_ruimte"),
tabs_code: "algruimte_list-x",
showAll: showall,
rowData: fnrowData,
rowClass: fnrowClass,
rowActionEnabler: fnrowActionEnabler,
outputmode: outputmode,
flexModule: "ALG",
flexId: "alg_ruimte_key",
flexParams: fnrowFlexParams,
filterParams: params,
buttons: buttons,
roundtripCode: (canImport ? "ONRGOED2" : "")
buttons: addButton
});
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_descr"), content: "alg_locatie_omschrijving"}));
@@ -378,8 +281,16 @@ function ruimte_list(pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_man_sort"), content: "alg_srtruimte_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_bruto_vloeropp"), content: "alg_ruimte_bruto_vloeropp", datatype: "float", decimals: 2 }));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_opp_alt1"), content: "alg_ruimte_opp_alt1", datatype: "float", decimals: 2 }));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_opp_alt2"), content: "alg_ruimte_opp_alt2", datatype: "float", decimals: 2 }));
if (L("lcl_estate_ruimte_opp_alt1") != "")
{
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_opp_alt1"), content: "alg_ruimte_opp_alt1", datatype: "float", decimals: 2 }));
}
if (L("lcl_estate_ruimte_opp_alt1") != "")
{
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_opp_alt2"), content: "alg_ruimte_opp_alt2", datatype: "float", decimals: 2 }));
}
if (outputmode != 0) // to be completed
{
@@ -389,32 +300,11 @@ function ruimte_list(pautfunction, params)
}
if (expalgincl)
rst.addColumn(new Column({caption: L("lcl_alg_vervaldatum"), content: "alg_ruimte_verwijder", datatype: "date"}));
if (flexParams.anyflex)
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
if (usingoccupationsensors)
{
rst.addColumn(new Column({caption: I("fa-sensor")+"&nbsp;"+L("lcl_alg_occupationsensor_ph"), content: "total_person_hours", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-sensor")+"&nbsp;"+L("lcl_alg_occupationsensor_au"), content: "avg_utilization_pct", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-sensor")+"&nbsp;"+L("lcl_alg_occupationsensor_po"), content: "peak_occupied_desks", datatype: "number"}));
}
if (showroomreservationstats)
{
rst.addColumn(new Column({caption: I("fa-calendar")+"&nbsp;"+L("lcl_alg_resstats_trhr"), content: "total_reserved_hours_room", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-calendar")+"&nbsp;"+L("lcl_alg_resstats_appr"), content: "avg_persons_per_reservation", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-calendar")+"&nbsp;"+L("lcl_alg_resstats_ardh"), content: "avg_reservation_duration_hours", datatype: "float"}));
}
if (showdeskreservationstats)
{
rst.addColumn(new Column({caption: I("fa-chair-office")+"&nbsp;"+L("lcl_alg_wpresstats_trh"), content: "total_reserved_hours_desk", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-chair-office")+"&nbsp;"+L("lcl_alg_wpresstats_arc"), content: "avg_reserved_count_desk", datatype: "float"}));
rst.addColumn(new Column({caption: I("fa-chair-office")+"&nbsp;"+L("lcl_alg_wpresstats_prc"), content: "peak_reserved_count_desk", datatype: "number"}));
}
rst.addAction({ action: "ruimteEdit", caption: L("lcl_edit"), isDefault: true });
rst.addAction({ action: "ruimteEditMulti", caption: L("lcl_alg_multi_edit"), multi: true, multiOnce: true, single: false, enabler: "eEditMulti"});
rst.addAction({ action: "doDelete", caption: L("lcl_delete"), multi: true, single: !noref, enabler: "eDelete" });
rst.addAction({ action: "doRuimteAfdeling", caption: L("lcl_alg_bezetting"), multi: false, enabler: "eBezetting" });
rst.addAction({ action: "doRuimteAfdeling", caption: L("lcl_alg_bezetting"), multi: true, multiOnce: true, enabler: "eBezetting" });
if (user.has("WEB_RESMSU"))
rst.addAction({ action: "doRESScope", caption: L("res_srtartikel_onrgoed"), multi: true, single: false, multiOnce: true });
if (!noref)
@@ -430,3 +320,4 @@ function ruimte_list(pautfunction, params)
<%
}
%>

View File

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

View File

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

View File

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

View File

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

View File

@@ -20,7 +20,7 @@ function ruimtefunctie_list(pautfunction, params)
{
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
var addButton = [];
var authparams = user.has("WEB_ALGMSU") && alg.checkAutorisation(true);
var authparams = alg.checkAutorisation();
var canAdd = (authparams.mALGwritelevel < 9);
// Voor resulttable de globalen zetten; zou ng anders moeten.

View File

@@ -10,10 +10,7 @@
locatie_key key van de locatie
gebouw_key key van het gebouw
Context: Vanuit menu
Note:
Het menuitem vereist ALGMSU, kennelijk om deze voor het gepeupel te onderdrukken
De feitelijke autorisatie keek hier niet naar en vertrouwde op de ALGMAN/ALGUSE-autorisaties
wat ook goed is. Je moet dus beide hebben.
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
@@ -28,7 +25,8 @@ FCLTHeader.Requires({ plugins: ["jQuery", "kenmerk"] });
var alg_srtruimte_key = getQParamInt("alg_srtruimte_key", -1); // Ruimtefunctie
var locatie_key = getQParamInt("locatie_key", -1); // Locatie
var gebouw_key = getQParamInt("gebouw_key", -1); // Gebouw
var authparams = user.has("WEB_ALGMSU") && alg.checkAutorisation(true); // als je geen scope hebt kun je toch niks
var authparams = alg.checkAutorisation();
%>
<html>

View File

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

View File

@@ -25,7 +25,6 @@ var locatie_key = getQParamInt("locatie_key", -1); // Locatie
var gebouw_key = getQParamInt("gebouw_key", -1); // Gebouw
var verdieping_key = getQParamInt("verdieping_key", -1); // Verdieping
var ruimte_key = getQParamInt("ruimte_key", -1); // ruimte
var alg_startlevel = getQParamInt("alg_startlevel", 0); // Startlevel van plaatsselector, default Regio
var authparams = alg.checkAutorisation();
%>
@@ -51,14 +50,14 @@ var authparams = alg.checkAutorisation();
<body id="searchbody">
<form name="u2" id="algform" target="workFrame" action="dynamischbepaald" method="get" onsubmit="return false;">
<% SEARCH_PAGE_START({ header: L("lcl_filterblok") });
SEARCH_BLOCK_START();
SEARCH_BLOCK_START();
FCLTplaatsselector(authparams.ALGreadlevel, {
districtkey: district_key,
locatiekey: locatie_key,
gebouwkey: gebouw_key,
verdiepingkey: verdieping_key,
ruimtekey: ruimte_key,
startlevel: alg_startlevel, // regio
startlevel: 0, // regio
eindlevel: 5, // ruimte
whenEmpty: L("lcl_search_generic") // want filter
});
@@ -73,13 +72,13 @@ var authparams = alg.checkAutorisation();
var buttons = [
{title: L("lcl_menu_alg_locatie"), action: "doSubmit('L')", icon: "fa-location-arrow"},
{title: L("lcl_menu_alg_gebouw"), action: "doSubmit('G')", icon: "fa-building"},
{title: L("lcl_menu_alg_verdieping"), action: "doSubmit('V')", icon: "fa-layer-group"},
{title: L("lcl_menu_alg_verdieping"), action: "doSubmit('V')", icon: "fa-th-list fa-flip-horizontal"},
{title: L("lcl_menu_alg_ruimte"), action: "doSubmit('R')", icon: "fa-map-marker"},
{title: L("lcl_menu_alg_terreinsector"), action: "doSubmit('T')", icon: "fa-draw-polygon"}
];
SIMPLE_BLOCK_START();
CreateButtons(buttons, { entersubmit: true, showIcons: true });
SIMPLE_BLOCK_END();
SIMPLE_BLOCK_END();
%>
<% SEARCH_PAGE_END(); %>
</form>
@@ -94,4 +93,4 @@ var authparams = alg.checkAutorisation();
</div>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

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

View File

@@ -11,7 +11,6 @@
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/timezoneselector.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<!-- #include file="alg.inc" -->
@@ -41,7 +40,6 @@ var loc_y = oRs("alg_locatie_y").Value;
var loc_mail = oRs("alg_locatie_email").Value;
var loc_image = oRs("alg_locatie_image").Value;
var loc_score1 = oRs("alg_locatie_mjb_score1").Value;
var loc_volgnr = oRs("alg_locatie_volgnr").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;
@@ -50,8 +48,6 @@ var pst_land = oRs("alg_locatie_post_land").Value;
var loc_deleted = oRs("alg_locatie_verwijder").Value != null;
var vervaldatum = oRs("alg_locatie_vervaldatum").Value;
var dienstniveau_key = oRs("mld_dienstniveau_key").Value;
var alg_tz = oRs("alg_locatie_timezone").Value;
oRs.Close();
%>
<html>
@@ -138,8 +134,6 @@ oRs.Close();
BLOCK_END();
BLOCK_START("facFM", L("lcl_operations_block"), {icon: "fa-users-cog"});
ROFIELDTR("fld", L("lcl_alg_locatie_volgnr"), loc_volgnr, {suppressEmpty: true});
FCLTtimezoneselector("", {initVal: alg_tz, readonly: true, suppressEmpty: true});
var fldcls = "fld";
if (vervaldatum <= new Date())
fldcls += " expired2";
@@ -156,7 +150,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, {type: "telefoon", suppressEmpty: true});
ROFIELDTR("fld", L("lcl_alg_locatie_email"), loc_mail, { suppressEmpty: true, type: "email" });
ROFIELDTR("fld", L("lcl_noti_email"), loc_mail, { suppressEmpty: true, type: "email" });
FILEPICKERTR("loc_image", L("lcl_alg_locatie_image"), loc_image, { "key": loc_key, "module": "ALGPHL", "readonly": true });
if (ins_score_enabled)
ROFIELDTR("fld", L("lcl_alg_locatie_mjb_score1"), loc_score1, {suppressEmpty: true});

View File

@@ -1,81 +0,0 @@
<%@ language="javascript"%>
<% /*
$Revision$
$Id$
File: alg_show_note2.asp
Description: Nieuwe notities versie.
Betere layout, altijd een invulveld
Parameters: alg_key (altijd verplicht hier)
Note: Nu kan iedereen hier zijn, FE of FOBO. FE mag de interne notes niet zien, let daarop.
*/
var alg_key = getQParamInt("alg_key"); // Altijd verplicht alg_key.
var alg_typ = getQParamSafe("alg_typ").toUpperCase();
var xmlnode = "";
switch (alg_typ)
{
case "R": "ruimte"; break;
case "V": "verdieping"; break;
case "G": "gebouw"; break;
case "T": "terreinsector"; break;
case "L": "locatie"; break;
case "D": "district"; break;
}
var LOCKED_USER_OK = { "xmlnode" : xmlnode, "key": alg_key };
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/status.inc"-->
<!-- #include file="./alg.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/discx3d.inc" -->
<!-- #include file="../Shared/notes.inc" -->
<%
FCLTHeader.Requires({js: ["notes.js"]});
var outputmode = getQParamInt("outputmode", 0);
var this_alg = alg.func_enabled(alg_key, alg_typ); // Wat mag ik zoal op dit onroerendgoed.
user.auth_required_or_abort(this_alg.canReadNotes);
var afgehandeld = false;
var kenmerk_key = -1;
if (alg_key > 0)
{
// Als ik canReadNotes heb dan heb ik canUSEread en/of canMANread rechten.
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
var myreadrolcode = 0 + (this_alg.canMANread ? 1 : 0)
+ (this_alg.canUSEread ? 2 : 0);
// Is er een bijlage kenmerk?
var sql = "SELECT k.alg_kenmerk_key"
+ " FROM alg_kenmerk k"
+ " WHERE k.alg_kenmerk_niveau IN ('R','V','G','T','L')"
+ " AND k.alg_kenmerk_verwijder IS NULL"
+ " AND BITAND(k.alg_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
+ " AND ( k.alg_kenmerk_verplicht IS NULL"
+ " OR k.alg_kenmerk_verplicht = 0)"
+ " AND k.alg_kenmerk_kenmerktype = 'M'"
+ " AND k.alg_kenmerk_toonbaar IS NULL"
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql_upper(alg_typ)
+ " ORDER BY k.alg_kenmerk_volgnr"
+ " , k.alg_kenmerk_niveau";
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
kenmerk_key = oRs("alg_kenmerk_key").Value;
}
oRs.Close();
var upload_url = protectQS.create("../Shared/BijlagenForm.asp?module=ALG&multi=1&key=" + alg_key + "&kenmerk_key=" + kenmerk_key);
}
notes.show_note2("ALG", alg_key, kenmerk_key, this_alg, afgehandeld, upload_url, {alg_typ: alg_typ});
%>
<% ASPPAGE_END(); %>

View File

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

View File

@@ -41,6 +41,7 @@ var sql = "SELECT ts.alg_locatie_key"
+ " , ts.alg_terreinsector_oppervlak"
+ " , ts.alg_terreinsector_omtrek"
+ " , ts.alg_terreinsector_aanmaak"
+ " , ts.alg_terreinsector_omschrijving"
+ " , ts.alg_terreinsector_ordernr"
+ " , ts.alg_terreinsector_image"
+ " , ts.alg_terreinsector_toon_telef"
@@ -58,7 +59,6 @@ var sql = "SELECT ts.alg_locatie_key"
+ " , prs_perslid_key_verantw2"
+ " , ts.alg_terreinsector_vervaldatum"
+ " , ts.alg_terreinsector_verwijder"
+ " , ts.mld_dienstniveau_key"
+ " FROM alg_terreinsector ts"
+ " WHERE ts.alg_terreinsector_key = " + ter_key;
var oRs = Oracle.Execute(sql);
@@ -71,20 +71,19 @@ var ter_sroms = oRs("srtterreinsector_oms").Value;
var ter_opp = oRs("alg_terreinsector_oppervlak").Value;
var ter_omt = oRs("alg_terreinsector_omtrek").Value;
var ter_aanmk = oRs("alg_terreinsector_aanmaak").Value;
var ter_oms = oRs("alg_terreinsector_omschrijving").Value;
var ter_ordnr = oRs("alg_terreinsector_ordernr").Value;
var ter_image = oRs("alg_terreinsector_image").Value;
var toon_telefoon = oRs("alg_terreinsector_toon_telef").Value;
var toon_email = oRs("alg_terreinsector_toon_email").Value;
var toon_kenteken = oRs("alg_terreinsector_toon_kentk").Value;
var kp_key = oRs("prs_kostenplaats_key").Value;
var prs_kstn = oRs("prs_kostenplaats_key").Value;
var prs_kstpl = oRs("kostenplaats_oms").Value;
var afd_key = oRs("prs_afdeling_key").Value;
var prs_afd = oRs("afdeling_oms").Value;
var verantw_key = oRs("prs_perslid_key_verantw").Value;
var verantw2_key = oRs("prs_perslid_key_verantw2").Value;
var ter_deleted = oRs("alg_terreinsector_verwijder").Value != null;
var vervaldatum = oRs("alg_terreinsector_vervaldatum").Value;
var dienstniveau_key = oRs("mld_dienstniveau_key").Value;
oRs.Close();
%>
@@ -151,8 +150,7 @@ oRs.Close();
{ locatiekey: loc_key,
startlevel: 2, // Locatie
eindlevel: 2, // Locatie
readonly: true,
moreinfo: true
readonly: true
});
ROFIELDTR("fld", L("lcl_estate_terreinsector_man_name"), ter_naam);
@@ -192,15 +190,13 @@ oRs.Close();
if (vervaldatum <= new Date())
fldcls += " expired2";
ROFIELDTR(fldcls, L("lcl_alg_vervaldatum"), toDateString(vervaldatum), {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_prs_dept_kosten"), prs_kstpl, { suppressEmpty: true, infoPointer: { Url: "appl/mgt/prs_kostenplaats.asp?mode=show&id=" + kp_key}});
ROFIELDTR("fld", L("lcl_dep_name_level2"), prs_afd, { infoPointer: { Url: "appl/prs/prs_afdeling.asp?key=" + afd_key }});
ROFIELDTR("fld", L("lcl_prs_dept_kosten"), prs_kstpl, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_dep_name_level2"), prs_afd);
FCLTpersoonselector("verantw",
"sgVerantw",
{ perslidKey: verantw_key,
label: L("lcl_alg_verantw"),
readonly: true,
moreinfo: true,
suppressEmpty: true
});
FCLTpersoonselector("verantw2",
@@ -208,27 +204,12 @@ oRs.Close();
{ perslidKey: verantw2_key,
label: L("lcl_alg_verantw2"),
readonly: true,
moreinfo: true,
suppressEmpty: true
});
ROFIELDTR("fld", L("lcl_estate_terreinsector_ordernr"), ter_ordnr, {suppressEmpty: true});
FILEPICKERTR("ter_image", L("lcl_alg_terreinsector_image"), ter_image, { "key": ter_key, "module": "ALGPHT", "readonly": true });
BLOCK_END();
BLOCK_START("algter4", L("lcl_alg_gebouw_facilitair"), {icon: "fa-users-cog"});
if (dienstniveau_key)
{
sql = "SELECT mld_dienstniveau_key"
+ " , " + lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau"
+ " WHERE mld_dienstniveau_key = " + dienstniveau_key;
oRs = Oracle.Execute(sql);
ROFIELDTR("fld", L("lcl_mld_dienst_niveau"), oRs("mld_dienstniveau_omschr").value);
oRs.Close();
}
BLOCK_END();
if (!(ter_opp == null && ter_omt == null && vervaldatum == null))
{
BLOCK_START("algter4", L("lcl_alg_gebouw_fysiek"), {icon: "fa-ruler-combined"});

View File

@@ -28,21 +28,15 @@ var onrgoedlvl = "V";
var this_alg = alg.func_enabled(flr_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.readman || this_alg.readuse);
var sql = " SELECT alg_verdieping_omschrijving"
+ " , alg_verdieping_volgnr"
+ " , alg_verdieping_code"
+ " , alg_verdieping_verwijder"
+ " , mld_dienstniveau_key"
+ " , alg_verdieping_dwgz"
var sql = " SELECT * "
+ " FROM alg_verdieping "
+ " WHERE alg_verdieping_key = " + flr_key;
var oRs = Oracle.Execute(sql);
var flr_omschr = oRs("alg_verdieping_omschrijving").Value;
var flr_volgnr = oRs("alg_verdieping_volgnr").Value;
var flr_code = oRs("alg_verdieping_code").Value;
var flr_deleted = oRs("alg_verdieping_verwijder").Value != null;
var flr_dwgz = oRs("alg_verdieping_dwgz").Value;
var dienstniveau_key = oRs("mld_dienstniveau_key").Value;
var flr_omschr = oRs("alg_verdieping_omschrijving").value;
var flr_volgnr = oRs("alg_verdieping_volgnr").value;
var flr_code = oRs("alg_verdieping_code").value;
var flr_deleted = oRs("alg_verdieping_verwijder").value != null;
var dienstniveau_key = oRs("mld_dienstniveau_key").value;
oRs.Close();
%>
@@ -115,7 +109,7 @@ oRs.Close();
}
%>
<form name=u2 onSubmit="return false;">
<% BLOCK_START("algflr1", L("lcl_floor"), {icon: "fa-layer-group"});
<% BLOCK_START("algflr1", L("lcl_floor"), {icon: "fa-th-list fa-flip-horizontal"});
FCLTplaatsselector(-1, {
verdiepingkey: flr_key,
startlevel: 2, //locatie
@@ -132,7 +126,7 @@ oRs.Close();
+ " FROM mld_dienstniveau "
+ " WHERE mld_dienstniveau_key = " + dienstniveau_key;
oRs = Oracle.Execute(sql);
ROFIELDTR("fld", L("lcl_mld_dienst_niveau"), oRs("mld_dienstniveau_omschr").Value);
ROFIELDTR("fld", L("lcl_mld_dienst_niveau"), oRs("mld_dienstniveau_omschr").value);
oRs.Close();
}
BLOCK_END();
@@ -143,7 +137,6 @@ oRs.Close();
ROFIELDTR("fld", L("lcl_estate_verdieping_netto_vloeropp") + L("lcl_estate_calc_vloeropp"), calcopp.opprooms, {suppressEmpty: true, datatype: "float"});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt1") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt1, {suppressEmpty: true, datatype: "float"});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt2") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt2, {suppressEmpty: true, datatype: "float"});
ROFIELDTR("fld", L("lcl_estate_verdieping_man_dwgz"), safe.displayfloat(flr_dwgz, 3, true), {suppressEmpty: true});
BLOCK_END();
generateFlexKenmerkBlock ({

View File

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

View File

@@ -115,6 +115,28 @@ function terrein_list(pautfunction, params)
var verantw_key = params.verantw_key;
var ter_func_key = params.ter_func_key;
var expalgincl = params.expalgincl;
function fnrowActionEnabler(oRs) // klopt dit voor terreinsector?
{
var eDelete = false;
var eEditMulti = false;
if (alg.canWriteLocatie(oRs("alg_locatie_key").Value, authparams.tmALGwritelevel))
{
eDelete = true;
eEditMulti = true;
}
return ({eDelete: eDelete, eEditMulti: eEditMulti})
}
function fnrowFlexParams(oRs)
{
var ter_key = oRs("alg_terreinsector_key").Value;
var this_alg = alg.func_enabled(ter_key, "T");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
%>
<html>
@@ -123,7 +145,6 @@ function terrein_list(pautfunction, params)
</head>
<body id="listbody">
<%
var flexParams = alg.alg_onroerendgoed_flex_params("T");
var sqln = "SELECT g.alg_terreinsector_key"
+ " , g.alg_locatie_key"
+ " , l.alg_locatie_omschrijving"
@@ -137,14 +158,6 @@ function terrein_list(pautfunction, params)
+ " , (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = prs_perslid_key_verantw2) perslid_resp2"
+ " , g.alg_srtterreinsector_key"
+ " , " + lcl.xsqla('s.alg_srtterreinsec_omschrijving', 's.alg_srtterreinsector_key')
+ " , (SELECT MAX(t.fac_tracking_datum)"
+ " FROM fac_tracking t"
+ " , fac_srtnotificatie sn"
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
+ " AND t.fac_tracking_refkey = g.alg_terreinsector_key"
+ " AND sn.fac_srtnotificatie_xmlnode = 'terreinsector'"
+ " ) recentdatum"
+ flexParams.sql
+ " FROM alg_v_aanwezigterreinsector g"
+ " , alg_locatie l"
+ " , alg_srtterreinsector s"
@@ -199,79 +212,6 @@ function terrein_list(pautfunction, params)
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
}
/**********************************
* Callback functies ResultsetTable
*********************************/
var recent = new Date();
function fnrowActionEnabler(oRs) // klopt dit voor terreinsector?
{
var eDelete = false;
var eEditMulti = false;
if (alg.canWriteLocatie(oRs("alg_locatie_key").Value, authparams.tmALGwritelevel))
{
eDelete = true;
eEditMulti = true;
}
return ({eDelete: eDelete, eEditMulti: eEditMulti})
}
function fnrowClass(oRs) // identiek aan de andere niveaus
{
var lclass = "";
// Tracking: hoe lang geleden voor het laatst gewijzigd?
if (oRs.Fields("recentdatum").Value != null)
{
var ltrackdate1 = new Date();
var ltrackdate10 = new Date();
var ltrackdate100 = new Date();
var alg_onrgoed_recent = S("alg_onrgoed_recent");
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
if (fac_recent > ltrackdate1)
{
lclass += " updated";
}
else if (fac_recent > ltrackdate10)
{
lclass += " updated10";
}
else if (fac_recent > ltrackdate100)
{
lclass += " updated100";
}
}
return lclass;
}
function fnrowFlexParams(oRs)
{
var ter_key = oRs("alg_terreinsector_key").Value;
var this_alg = alg.func_enabled(ter_key, "T");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var alg_key = oRs("alg_terreinsector_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
{
result += alg.alg_onroerendgoed_flex_bijlagen("T", alg_key);
}
return result;
}
var rst = new ResultsetTable({sql:sqln,
keyColumn: "alg_terreinsector_key",
ID: "algtable",
@@ -279,7 +219,6 @@ function terrein_list(pautfunction, params)
showAll: showall,
rowActionEnabler: fnrowActionEnabler,
rowData: fnrowData,
rowClass: fnrowClass,
outputmode: outputmode,
flexModule: "ALG",
flexId: "alg_terreinsector_key",
@@ -302,8 +241,6 @@ function terrein_list(pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_estate_terreinsector_man_oppervlak"), content: "alg_terreinsector_oppervlak"}));
rst.addColumn(new Column({caption: L("lcl_estate_terreinsector_man_omtrek"), content: "alg_terreinsector_omtrek"}));
rst.addColumn(new Column({caption: L("lcl_alg_vervaldatum"), content: "alg_terreinsector_vervaldatum", datatype: "date"}));
if (flexParams.anyflex)
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
rst.addAction({ action: "terreinEdit", caption: L("lcl_edit"), isDefault: true});
rst.addAction({ action: "terreinEditMulti", caption: L("lcl_alg_multi_edit"), enabler: "eEditMulti", single:false, multi: true, multiOnce: true});
@@ -316,3 +253,4 @@ function terrein_list(pautfunction, params)
</body>
</html>
<%}%>

View File

@@ -19,7 +19,6 @@ var vak_code = getQParam("vak_code", "");
var ter_func_key = getQParamInt("ter_func_key", -1);
var verantw_key = getQParamInt("verantw", -1); // Terrein verantwoordelijke
var autosearch = getQParamInt("autosearch", 0) == 1;
var alg_startlevel = getQParamInt("alg_startlevel", 2); // Startlevel van plaatsselector, default Locatie
var authparams = alg.checkAutorisation();
%>
@@ -63,7 +62,7 @@ var authparams = alg.checkAutorisation();
// <!-- Locatie, gebouw en verdieping -->
FCLTplaatsselector( authparams.ALGreadlevel
, { locatiekey: locatie_key,
startlevel: alg_startlevel, // locatie
startlevel: 2, // locatie
eindlevel: 2, // locatie
whenEmpty: L("lcl_search_generic")
});

View File

@@ -16,8 +16,20 @@
<%
FCLTHeader.Requires({ plugins:["jQuery"] });
var cnt_full = getQParamInt("cnt_full", 1);
function fnrowData(oRs)
{
var parent_key = oRs("alg_gebouw_key").value;
var detail_key = oRs("alg_verdieping_key").value;
var key = oRs("alg_verdieping_key").value;
var oms = oRs("alg_verdieping_omschrijving").value
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
%>
<script type="text/javascript">
@@ -84,6 +96,27 @@ function verdiepingen_list(pautfunction, params)
var bld_key_arr = params.bld_key_arr;
var lvl_key_arr = params.lvl_key_arr;
var chkgeb = params.chkgeb;
function fnrowActionEnabler(oRs)
{
var eDelete = false;
var eEditMulti = false;
if (alg.canWriteVerdieping(oRs("alg_verdieping_key").value, authparams.mALGwritelevel))
{
eDelete = true;
eEditMulti = true;
}
return ({eDelete: eDelete, eEditMulti: eEditMulti})
}
function fnrowFlexParams(oRs)
{
var ver_key = oRs("alg_verdieping_key").Value;
var this_alg = alg.func_enabled(ver_key, "V");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
%>
<html>
@@ -92,7 +125,6 @@ function verdiepingen_list(pautfunction, params)
</head>
<body id="listbody">
<%
var flexParams = alg.alg_onroerendgoed_flex_params("V");
var sqln = "SELECT v.alg_verdieping_key, "
+ " v.alg_gebouw_key, "
+ " g.alg_locatie_key, "
@@ -101,14 +133,6 @@ function verdiepingen_list(pautfunction, params)
+ " g.alg_gebouw_naam, "
+ " v.alg_verdieping_omschrijving, "
+ " v.alg_verdieping_code "
+ " , (SELECT MAX(t.fac_tracking_datum)"
+ " FROM fac_tracking t"
+ " , fac_srtnotificatie sn"
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
+ " AND t.fac_tracking_refkey = v.alg_verdieping_key"
+ " AND sn.fac_srtnotificatie_xmlnode = 'verdieping'"
+ " ) recentdatum"
+ flexParams.sql
+ " FROM alg_v_aanwezigverdieping v, "
+ " alg_gebouw g, "
+ " alg_locatie l "
@@ -160,90 +184,6 @@ function verdiepingen_list(pautfunction, params)
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
}
/**********************************
* Callback functies ResultsetTable
*********************************/
var recent = new Date();
function fnrowData(oRs)
{
var parent_key = oRs("alg_gebouw_key").value;
var detail_key = oRs("alg_verdieping_key").value;
var key = oRs("alg_verdieping_key").value;
var oms = oRs("alg_verdieping_omschrijving").value
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
function fnrowClass(oRs) // identiek aan de andere niveaus
{
var lclass = "";
// Tracking: hoe lang geleden voor het laatst gewijzigd?
if (oRs.Fields("recentdatum").Value != null)
{
var ltrackdate1 = new Date();
var ltrackdate10 = new Date();
var ltrackdate100 = new Date();
var alg_onrgoed_recent = S("alg_onrgoed_recent");
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
if (fac_recent > ltrackdate1)
{
lclass += " updated";
}
else if (fac_recent > ltrackdate10)
{
lclass += " updated10";
}
else if (fac_recent > ltrackdate100)
{
lclass += " updated100";
}
}
return lclass;
}
function fnrowActionEnabler(oRs)
{
var eDelete = false;
var eEditMulti = false;
if (alg.canWriteVerdieping(oRs("alg_verdieping_key").value, authparams.mALGwritelevel))
{
eDelete = true;
eEditMulti = true;
}
return ({eDelete: eDelete, eEditMulti: eEditMulti})
}
function fnrowFlexParams(oRs)
{
var ver_key = oRs("alg_verdieping_key").Value;
var this_alg = alg.func_enabled(ver_key, "V");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("algflex").Value;
var alg_key = oRs("alg_verdieping_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
{
result += alg.alg_onroerendgoed_flex_bijlagen("V", alg_key);
}
return result;
}
var rst = new ResultsetTable({sql:sqln,
keyColumn: "alg_verdieping_key",
ID: "algtable",
@@ -255,7 +195,6 @@ function verdiepingen_list(pautfunction, params)
flexParams: fnrowFlexParams,
filterParams: params,
rowData: fnrowData,
rowClass: fnrowClass,
rowActionEnabler: fnrowActionEnabler,
buttons: addButton
});
@@ -265,8 +204,6 @@ function verdiepingen_list(pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_name"), content: "alg_gebouw_naam"}));
rst.addColumn(new Column({caption: L("lcl_estate_verdieping_man_code"), content: "alg_verdieping_code"}));
rst.addColumn(new Column({caption: L("lcl_estate_verdieping_man_descr"), content: "alg_verdieping_omschrijving" }));
if (flexParams.anyflex)
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
rst.addAction({ action: "verdiepingEdit", caption: L("lcl_edit"), isDefault: true});
rst.addAction({ action: "verdiepingEditMulti", caption: L("lcl_alg_multi_edit"), enabler: "eEditMulti", single:false, multi: true, multiOnce: true});
@@ -280,3 +217,4 @@ function verdiepingen_list(pautfunction, params)
</body>
</html>
<%}%>

View File

@@ -17,7 +17,6 @@ var locatie_key = getQParamInt("locatie_key", -1); // Locatie
var gebouw_key = getQParamInt("gebouw_key", -1); // Gebouw
var verdieping_key = getQParamInt("verdieping_key", -1); // Verdieping
var autosearch = getQParamInt("autosearch", 0) == 1;
var alg_startlevel = getQParamInt("alg_startlevel", 2); // Startlevel van plaatsselector, default Locatie
var chkgeb = getQParamInt("chkgeb", 0) == 1;
var cnt_full = getQParamInt("cnt_full", 1);
var authparams = alg.checkAutorisation();
@@ -57,7 +56,7 @@ var authparams = alg.checkAutorisation();
<body id="searchbody">
<form name="u2" target="workFrame" action="alg_verdieping_search_list.asp" method="get">
<% SEARCH_PAGE_START({ header: L("lcl_filterblok") });
SEARCH_BLOCK_START();
SEARCH_BLOCK_START();
%>
<input type="hidden" id="cnt_full" name="cnt_full" value="<%=cnt_full%>">
<input type="hidden" id="chkgeb" name="chkgeb" value="<%=(chkgeb?1:0)%>">
@@ -67,7 +66,7 @@ var authparams = alg.checkAutorisation();
gebouwkey: gebouw_key,
verdiepingkey: verdieping_key,
multitoggle: 4,
startlevel: alg_startlevel, // locatie
startlevel: 2, // locatie
eindlevel: 4, // verdieping
whenEmpty: L("lcl_search_generic") // want filter
});
@@ -80,7 +79,7 @@ var authparams = alg.checkAutorisation();
];
CreateButtons(buttons, { entersubmit: true , showIcons: true});
SIMPLE_BLOCK_END();
SEARCH_PAGE_END();
SEARCH_PAGE_END();
%>
</form>

View File

@@ -27,7 +27,6 @@ var verdieping_key = getQParamInt("verdieping_key", -1); // Verdieping
var ruimte_key = getQParamInt("ruimte_key", -1); // ruimte
var descr = getQParam("werkplek", "");
var autosearch = getQParamInt("autosearch", 0) == 1;
var alg_startlevel = getQParamInt("alg_startlevel", 2); // Startlevel van plaatsselector, default Locatie
var authparams = alg.checkAutorisation();
%>
@@ -47,7 +46,7 @@ var authparams = alg.checkAutorisation();
gebouwkey: gebouw_key,
ruimtekey: ruimte_key,
multitoggle: 4,
startlevel: alg_startlevel, // locatie
startlevel: 2, // locatie
eindlevel: 5, // ruimte
whenEmpty: L("lcl_search_generic") // want filter
});

View File

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

View File

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

View File

@@ -58,10 +58,10 @@ function API_func(APIname)
file: oRs("fac_api_filepath").Value,
prs_perslid_key: user_key,
loglevel: oRs("fac_api_loglevel").Value,
errorhandling: oRs("fac_api_errorhandling").Value,
usrrap_key: oRs("fac_usrrap_key").Value,
stylesheet: oRs("fac_api_stylesheet").Value,
stylesheet_out: oRs("fac_api_stylesheet_out").Value
stylesheet_out: oRs("fac_api_stylesheet_out").Value,
import_app_key: oRs("fac_import_app_key").Value
};
if (this.apidata.loglevel > 1) // Zet maar op 3 als je HTML logging wilt
@@ -106,28 +106,26 @@ API_func.prototype.error = function (msg)
Response.Write(safe.html(msg));
// Op productie zie je bovenstaande Response.Write ook niet terug in Fiddler omdat
// 'detailed error messages' uit staat. Daarom ook maar loggen voor het gemak.
__DoLog(safe.html(msg), "#ff0000");
__DoLog(safe.html(msg), "ff0000");
}
Response.End;
}
// LET OP: Verwacht wordt dat de JSON-code in de body utf-8 encoded is, niet windows-1252!
// (in de praktijk moet je *moeite* doen om windows-1252 te krijgen dus dit is handiger)
function RequestJSON(loglevel)
function RequestJSON()
{
var jvraag;
if(Request.TotalBytes == 0)
if(Request.TotalBytes > 0)
{
return { error: "Empty body posted" }
var lngBytesCount = Request.TotalBytes;
jvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
}
var lngBytesCount = Request.TotalBytes;
jvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
__Log("Vraag: " + jvraag);
try
{
var vraag = myJSON.parse(jvraag);
if (loglevel)
if (API.apidata.loglevel)
__Log2File(JSON.stringify(vraag, null, 2), API.APIname + "_IN", ".json");
}
catch (e)
@@ -141,16 +139,13 @@ function RequestJSON(loglevel)
function RequestXML(API)
{
var xvraag;
if(Request.TotalBytes == 0)
if(Request.TotalBytes > 0)
{
return { error: "Empty body posted" }
var lngBytesCount = Request.TotalBytes;
xvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
if (API.apidata.loglevel)
__Log2File(xvraag, API.APIname + "_IN");
}
var lngBytesCount = Request.TotalBytes;
xvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
if (API.apidata.loglevel)
__Log2File(xvraag, API.APIname + "_IN");
__Log("Request body: " + xvraag);
try
{
@@ -175,11 +170,7 @@ function styledRequestXML(API)
var parsed = RequestXML(API);
if (parsed.error)
{
var method = String(Request.ServerVariables("REQUEST_METHOD"));
if (method != "POST") // gebeurt nog wel eens
{
__DoLog( "Weird: expected method POST, got " + method);
}
__DoLog( "Error loading XML: " + parsed.error, "#ff0000");
API.error("Error loading XML: " + parsed.error);
}

View File

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

View File

@@ -28,6 +28,20 @@
var API = new API_func();
// Mareon specifieke code
// In APPL\MARX\export\BCTAdapter.asp zijn mar_queue_key en mar_queue_requestid
// aan de callbackurl voor API=FIN_FACTUUR_PDF toegevoegd.
// Die gebruiken we hier om te registreren dat de factuur blijkbaar goed ingescand is
var mar_queue_requestid = getQParam("mar_queue_requestid", "");
if (mar_queue_requestid)
{
var sql = "UPDATE mar_factuur_queue"
+ " SET mar_factuur_queue_replied = SYSDATE"
+ " WHERE mar_factuur_queue_key = " + getQParamInt("mar_queue_key")
+ " AND mar_factuur_queue_requestid = " + safe.quoted_sql(mar_queue_requestid);
Oracle.Execute(sql);
}
var bytes = Request.TotalBytes;
if (bytes <= 0) // Chunked encoding geeft -1
{
@@ -41,16 +55,7 @@
}
"Error 'Operation not Allowed' op de volgende regel betekent meestal dat de upload te groot is";
var result = api_gen_import(API, Request.BinaryRead(bytes));
xmlResp = result.xmldom;
if (API.apidata.errorhandling == 1 && user.errorhandling() == 1)
{
if (result.anyError) // een 'E' in imp_log
{
Response.Status = '400 Bad Request';
}
}
var xmlResp = api_gen_import(API, Request.BinaryRead(bytes));
Response.ContentType = "text/xml";
if (API.apidata.stylesheet_out)
@@ -61,6 +66,5 @@
else
Response.Write(xmlResp.xml);
ASPPAGE_END();
%>

View File

@@ -11,7 +11,6 @@
Context: Ook vanuit APPL\MARX\API_mareon_opdracht.asp
*/
// result: { xmldom: object, anyError: boolean }
function api_gen_import(API, data, charset) //
{
var fileStream = Server.CreateObject("ADODB.Stream");
@@ -73,12 +72,10 @@ function api_gen_import(API, data, charset) //
if (import_key > 0)
{
var errorCount = 0; // hoeveel errors?
var elementDetails = xmlResp.createElement("details");
var sql = "SELECT imp_log_status,"
+ " imp_log_omschrijving,"
+ " imp_log_hint,"
+ " imp_log_status"
+ " imp_log_hint"
+ " FROM imp_log"
+ " WHERE fac_import_key = " + import_key
+ " AND imp_log_status <> 'I'";
@@ -104,15 +101,6 @@ function api_gen_import(API, data, charset) //
elementHint.appendChild(elementHintText);
elementDetail.appendChild(elementHint);
}
if (oRs("imp_log_status").Value != null )
{
if (oRs("imp_log_status").Value == 'E' || oRs("imp_log_status").Value == 'F')
errorCount ++
var elementStatus = xmlResp.createElement("status");
var elementStatusText = xmlResp.createTextNode(oRs("imp_log_status").Value);
elementStatus.appendChild(elementStatusText);
elementDetail.appendChild(elementStatus);
}
elementDetails.appendChild(elementDetail);
oRs.moveNext();
}
@@ -144,6 +132,6 @@ function api_gen_import(API, data, charset) //
}
xmlResp.appendChild(FCLTElement);
return { xmldom: xmlResp, anyError: errorCount > 0 };
return xmlResp;
}
%>

View File

@@ -39,35 +39,25 @@ function abortRejectMail(tekst, maillog, optionalColor)
function stripHtml(html)
{
html = (html||"");
html = html.replace(/([=][\n])/g, ""); // Een = en crlf aan het einde is een afgebroken regel. Deze weer aan elkaar zetten.
html = stripStyle(html);
// verwijder html-tags
html = html.replace(/(<br\s*\/?>)/ig,"\n\r");
html = html.replace(/(<([^>]+)>)/ig,"");
html = stripCharcodes(html);
// &nbsp; naar spatie
html = html.replace(/\&nbsp\;/ig, " ");
//verwijder leading spaces and tabs
html = html.replace(/^[ \t]+/gm,"");
// verwijder lege regels
html = html.replace(/(\n\r)+/g,"\n\r");
// zet een regel die begint met : maar achter de vorige
html = html.replace(/(\n\r:)/g,":");
return html;
}
function stripStyle(html)
{
html = (html||"");
html = html.replace(/(<style[^<]*<\/style>)/igm, "");
return html;
}
function stripCharcodes(html)
{
html = (html||"");
// Vervang lettercodes door het teken zelf.
html = html.replace(/(&#x(\d|[a-f])+;)/ig
, function(a){
return String.fromCharCode(parseInt(a.substr(3,a.length-4), 16));
}
);
html = html.replace(/(&nbsp;)/ig, " "); // &nbsp; naar spatie
html = html.replace(/^[ \t]+/gm,""); // verwijder leading spaces and tabs
html = html.replace(/([\n\r])+/g,"\n"); // verwijder lege regels
html = html.replace(/([\n\r]:)/g,":"); // zet een regel die begint met : maar achter de vorige
html = html.replace(/<style>[^<]*<\/style>/igm, "");
return html;
}
@@ -198,38 +188,6 @@ function getEmailSetting(xmlReq, xmlParameters)
return senderResult;
}
// Check the subject against general rules (emlSetting null) or some defined
// regular expression from the configuration in emlSetting
// return .success true if the subject is okay, false else
// If false, a reason is given in .message
function checkSubject(emlSetting, xmlParameters)
{
var subjectResult = { success: true };
if (emlSetting == null)
{
// generieke onderwerpcheck tegen rubbish
var v_subject_undeliverable = new RegExp(S("mail_subject_undeliverable")).test(xmlParameters.Subject);
var v_subject_ignore = new RegExp(S("mail_subject_ignore")).test(xmlParameters.Subject);
var senderResult = null;
if (v_subject_undeliverable || v_subject_ignore)
{
subjectResult.success = false;
subjectResult.message = ( v_subject_undeliverable ? S("mail_subject_undeliverable") : S("mail_subject_ignore"));
}
} else {
// matcht het mailonderwerp wellicht met een specifieke configuratie?
if (emlSetting.text)
{
subjectResult.success = new RegExp(emlSetting.text, "ig").test(xmlParameters.Subject);
subjectResult.message = "Subject " + xmlParameters.Subject + (subjectResult.success ? " matches " : " does not match ") + emlSetting.text
__Log(subjectResult.message);
}
else // geen voorwaarde is altijd goed
subjectResult.success = true;
}
return subjectResult;
}
function setPath(attachpath)
{
var path = attachpath;
@@ -250,23 +208,16 @@ function getEmailSetting(xmlReq, xmlParameters)
+ " fac_email_setting_volgnr,"
+ " fac_email_setting_action,"
+ " fac_email_setting_expire,"
+ " fac_email_setting_from," // optioneel: waar de afzender aan moet voldoen
+ " fac_email_setting_from,"
+ " fac_email_setting_frommode,"
+ " fac_email_setting_text," // optioneel: waar het onderwerp aan moet voldoen
+ " fac_email_setting_attachpath,"
+ " fac_email_setting_attachext,"
+ " fac_email_setting_reqattachext," // optioneel: extensie van de bijlage die verplicht is
+ " fac_email_setting_attachmaxkb,"
+ " fac_email_setting_reqattachext,"
+ " fac_email_setting_loglevel,"
+ " prs_perslid_key_auth"
+ " FROM fac_email_setting"
+ " WHERE upper(fac_email_setting_user) = UPPER("+safe.quoted_sql(xmlParameters.mailuser)+")"
+ " ORDER BY fac_email_setting_volgnr";
// Als je het zo zou doen vind je organischer de meest specifieke match, met volgnummer slechts beslissend als er meerdere zouden zijn
// Het lijkt echter safer om datr aan de gebruiker over te laten en die dat met volgnummer expliciet te kunnen laten definieren.
//+ " ORDER BY fac_email_setting_reqattachext NULLS LAST, fac_email_setting_from NULLS LAST, fac_email_setting_text NULLS LAST, fac_email_setting_volgnr";
var oRs = Oracle.Execute(sql);
if (oRs.eof)
{ // Er is geen fac_email_setting record gevonden.
@@ -277,22 +228,10 @@ function getEmailSetting(xmlReq, xmlParameters)
};
}
else
{ // Er bestaat minimaal 1 fac_email_setting record voor deze ontvanger.
{ // Er bestaat minimaal 1 fac_email_setting record.
var allowedSetting = {};
var rejectedAttach = [];
var hasRequiredAttachment = false;
var hasMatchingFrom = false;
var hasMatchingSubject = false;
// Loop door de fac_email_setting records en bepaal welke het beste past bij deze e-mail
// Dat is de eerste match op basis van het volgnummer, waarbij de 3 criteria niet conflicteren.
// - de afzender matcht of is niet specifiek gedefinieerd
// - het onderwerp matcht de conditie of is niet specifiek gedefinieerd
// - de verplichte bijlage is present of is niet specifiek gedefinieerd
// Het gevonden record levert de aan te roepen mailprocessor en
// (bij de default fac.processemail) de aan te maken standaardmelding
while (!oRs.eof && !(hasRequiredAttachment && hasMatchingFrom && hasMatchingSubject))
while (!oRs.eof && !hasRequiredAttachment)
{
var emlSetting = {
key: oRs("fac_email_setting_key").Value,
@@ -303,41 +242,25 @@ function getEmailSetting(xmlReq, xmlParameters)
required_attachext: oRs("fac_email_setting_reqattachext").Value,
prs_perslid_key_auth: oRs("prs_perslid_key_auth").Value,
attachpath: oRs("fac_email_setting_attachpath").Value,
attach_maxkb: oRs("fac_email_setting_attachmaxkb").Value,
fromMode: oRs("fac_email_setting_frommode").Value,
from: oRs("fac_email_setting_from").Value,
text: oRs("fac_email_setting_text").Value,
loglevel: oRs("fac_email_setting_loglevel").Value
};
emlSetting.path = setPath(emlSetting.attachpath);
__Log("Scanning e-mail setting: "+emlSetting.key + " (volgnr "+emlSetting.volgnr+")");
__Log("Scanning e-mail setting: "+emlSetting.volgnr);
var expireResult = checkExpire(emlSetting.expire);
var senderResult = checkSender(emlSetting, xmlParameters);
var subjectResult = checkSubject(emlSetting, xmlParameters);
var expireResult = checkExpire(emlSetting.expire);
var senderResult = checkSender(emlSetting, xmlParameters);
hasMatchingFrom = senderResult.success;
hasMatchingSubject = subjectResult.success;
__Log('hasMatchingFrom '+ hasMatchingFrom);
__Log('hasMatchingSubject '+ hasMatchingSubject);
// als fron en subject okay zijn, dan kijken we of er een verplicht kenmerk is
if (expireResult.success && hasMatchingFrom && hasMatchingSubject)
if (expireResult.success && senderResult.success)
{
emlSetting.theFrom = senderResult.theFrom; // verbeter na de uitgevoerde controle
emlSetting.theFrom = senderResult.theFrom;
var attachResult = checkAttach(xmlReq, xmlParameters, emlSetting);
emlSetting.allowedFiles = attachResult.allowedFiles;
emlSetting.requiredFound = attachResult.requiredFound;
hasRequiredAttachment = emlSetting.required_attachext == null || attachResult.requiredFound;
hasRequiredAttachment = attachResult.requiredFound;
allowedSetting = emlSetting;
if (attachResult.rejectedFiles.tekst != "")
{
result.rejectMail = attachResult.rejectedFiles;
}
else
{
delete result.rejectMail;
}
delete result.rejectMail;
}
else
{
@@ -346,12 +269,10 @@ function getEmailSetting(xmlReq, xmlParameters)
result.rejectMail = (!expireResult.success ? expireResult.rejectMail : senderResult.rejectMail);
}
}
__Log("hasRequiredAttachment: " + hasRequiredAttachment);
oRs.MoveNext();
}
__Log("Done looking for matching e-mail settings");
result.emlSetting = allowedSetting;
result.silentignoreemail = checkSubject(null, xmlParameters).message;
}
oRs.Close();
return result;
@@ -373,16 +294,14 @@ function emailAction(emlSetting, xmlParam, resultParam)
}
var actionsql =
"BEGIN " + emlSetting.action + " (" + safe.quoted_sql(emlSetting.theFrom) + ", "
+ safe.quoted_sql(xmlParam.toAddr) + ", "
+ safe.quoted_sql(xmlParam.Subject || L("lcl_fac_hmail_no_subject")) + ", " // de actions kunnen slecht tegen lege subject
+ "?, "
+ safe.quoted_sql(xmlParam.sessionId) + ", "
"BEGIN " + emlSetting.action + " (" + safe.quoted_sql(emlSetting.theFrom) + ","
+ safe.quoted_sql(xmlParam.toAddr) + ","
+ safe.quoted_sql(xmlParam.Subject || L("lcl_fac_hmail_no_subject")) + "," // de actions kunnen slecht tegen lege subject
+ safe.quoted_sql(v_body, 3990) + "," // HSLE#33588 10 karakters speling
+ safe.quoted_sql(xmlParam.sessionId) + ","
+ emlSetting.key + ");"
+ "END;";
var oparams = [ { typ: adLongVarChar, dir: adParamInput, val: v_body.substr(0, S("mld_melding_oms_maxlen")==4000?3990:S("mld_melding_oms_maxlen")) } ];
Oracle.ExecuteParam(actionsql, oparams);
Oracle.Execute(actionsql);
// Nog iets specifieks terug te melden voor de logging?
var sql = "SELECT fac_result_waarde"
@@ -470,18 +389,16 @@ function emailAction(emlSetting, xmlParam, resultParam)
}
else
{
result.maillog = "Verder geen database process_email actie gedefinieerd";
result.maillog = "Verder geen e-mail action gedefinieerd";
}
return result;
}
//
function checkAttach(xmlReq, xmlParameter, emlSetting)
{
var requiredFound = false;
var allowedFiles = [];
var rejectedFiles = { tekst: [], maillog: []};
var Attachments = xmlReq.getElementsByTagName("attachment");
for (var i=0; i < Attachments.length; i++)
@@ -489,32 +406,17 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
var safefilename = safe.filename(XMLval(Attachments[i], "filename", i));
var extension = safefilename.substr(safefilename.lastIndexOf("."));
var attsize = parseInt(XMLval(Attachments[i], "size", i), 10);
if (emlSetting.attach_maxkb && emlSetting.attach_maxkb > 0) {
var filesize_MB = (attsize / 1024 / 1024).toFixed(3); // attsize is in bytes. Maak er MB van.
var maxsize_MB = (emlSetting.attach_maxkb / 1024).toFixed(3); // attach_maxkb in in kB. Maak er MB van.
}
if (safefilename == S("fac_logo_file"))
{ // Waarschijnlijk een FACILITOR bon gereply'd
__Log("Bijlage {0} genegeerd.".format(safefilename));
}
else if (attsize < S("flex_min_size")) // sowieso te klein
else if (attsize < S("flex_min_size"))
{
__Log("Bijlage {0} genegeerd, te klein met {1} bytes.".format(safefilename, attsize));
}
else if (attsize < S("flex_min_imgsize") && new RegExp(S("flex_min_imgsize_ext"), "ig").test(safefilename)) // plaatje te klein (facebook, twitter, X)
{
__Log("Plaatje {0} genegeerd, te klein met {1} bytes.".format(safefilename, attsize));
}
else if ( emlSetting.attach_maxkb && emlSetting.attach_maxkb > 0 // Er is een maximum bestandsgrootte ingesteld
&& parseFloat(filesize_MB) > parseFloat(maxsize_MB)) // En die is overschreden
{
__Log(L("fac_email_setting_err1").format(safefilename, filesize_MB, maxsize_MB));
rejectedFiles.tekst.push(L("fac_email_setting_err1").format(safefilename, filesize_MB, maxsize_MB));
rejectedFiles.maillog.push(("Bijlage {0} te groot: {1} bytes").format(safefilename, attsize));
}
else if (!new RegExp(S("flexallowedext"), "ig").test(safefilename))
{ // Niet ondersteunde bestandstype
__Log("Onbekende extensie e-mail bijlage: {0} ({1} bytes) van {2}. Bestand is niet opgeslagen.".format(safefilename, attsize, emlSetting.theFrom));
__DoLog("Onbekende extensie e-mail bijlage: {0} ({1} bytes) van {2}. Bestand is niet opgeslagen.".format(safefilename, attsize, emlSetting.theFrom));
}
else if (emlSetting.allowed_attachext && !new RegExp(emlSetting.allowed_attachext, "ig").test(safefilename))
{ // bestand is niet van het opgegeven type
@@ -533,11 +435,7 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
}
var attachResult = { requiredFound: requiredFound,
allowedFiles: allowedFiles,
rejectedFiles: { tekst: rejectedFiles.tekst.join("\n"),
maillog: rejectedFiles.maillog.join("\n"),
optionalColor: "#ff4"
}
allowedFiles: allowedFiles
};
return attachResult;
}
@@ -545,7 +443,6 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
function saveAttachments(xmlReq, emlSetting, xmlParam, resultParam)
{
var result = resultParam || {};
result.headers = result.headers || {};
// Als we een bijlage van een zekere type verwachten kan er beter maar een zijn ook!
if ((emlSetting.allowed_attachext || emlSetting.required_attachext) && !emlSetting.allowedFiles.length)
@@ -578,24 +475,6 @@ function saveAttachments(xmlReq, emlSetting, xmlParam, resultParam)
var safeFiles = [];
if (result.path)
{
// Als de url &multifile=1 bevat wordt niet per file een aanroep gedaan met de file in de body maar
// worden alle files in de temp-folder verzameld en dan wordt er <20><>n aanroep van de url gedaan
// met alleen de temp filenamen in de body
result.isMulti = result.path.indexOf("multifile=1") > -1;
if (result.isMulti)
{
__Log("Alle bijlagen straks naar " + result.path);
// Dit gaat allemaal in de http-body naar result.path
result.headers["Content-Type"] = "application/json";
result.headers["Accept"] = "application/json";
result.emlSetting = emlSetting; // de e-mail settings uit de database
result.mailParams = xmlParam; // alles wat we maar weten van de e-mail
if (emlSetting.prs_perslid_key_auth) // per bestand/url unieke jwt
{
var jwt = getBearerToken(emlSetting.prs_perslid_key_auth, "_INTERNAL", 30);
result.headers["Authorization"] = "Bearer " + jwt;
}
}
var Attachments = emlSetting.allowedFiles;
for (var i=0; i < Attachments.length; i++)
{
@@ -606,12 +485,9 @@ function saveAttachments(xmlReq, emlSetting, xmlParam, resultParam)
var attsize = Attachments[i].attsize;
if (isUrl)
{
if (result.isMulti)
var txt = '{0} bijlage ({1} bytes)'.format(safefilename, attsize);
else
txt = '{0} bijlage ({1} bytes) verwerken met {2}'.format(safefilename, attsize, result.path);
__Log('{0} bijlage ({1} bytes) verwerken met {2}'.format(safefilename, attsize, result.path));
var tempfilename = result.tempfolder + "\\API_HMAIL_" + shared.random(32) + "_" + safefilename;
__Log(txt + '\n' + 'Tijdelijk bewaard onder {0}'.format(tempfilename));
__Log('Tijdelijk bewaard onder {0}'.format(tempfilename));
var safefile = { sequence: filesequence,
safefilename: safefilename,
tempfilename: tempfilename,
@@ -621,9 +497,7 @@ function saveAttachments(xmlReq, emlSetting, xmlParam, resultParam)
};
if (emlSetting.prs_perslid_key_auth) // per bestand/url unieke jwt
{
// Omdat de bestanden sequentieel worden verwekt door hMailserver kan het een tijdje duren
// voordat de laatste aan de beurt is. Daarom timeout (veel) groter dan 30 seconde zetten.
var jwt = getBearerToken(emlSetting.prs_perslid_key_auth, "_INTERNAL", 300); // of: (i+1)*30 maar dat is overdreven
var jwt = getBearerToken(emlSetting.prs_perslid_key_auth, "_INTERNAL", 30);
safefile.headers["Authorization"] = "Bearer " + jwt;
}
safeFiles.push (safefile);
@@ -666,6 +540,7 @@ function saveAttachments(xmlReq, emlSetting, xmlParam, resultParam)
}
result.attachments = safeFiles;
}
__Log(result);
return result;
}
@@ -712,7 +587,7 @@ var xmlReq = parsed.xml;
var xmlParameters = getXml(xmlReq);
var emlResult = getEmailSetting(xmlReq, xmlParameters);
if (emlResult.emlSetting && !emlResult.rejectMail)
if (emlResult.emlSetting)
{
var emlSetting = emlResult.emlSetting;
if (emlSetting.loglevel > 0)
@@ -728,41 +603,33 @@ if (emlResult.emlSetting && !emlResult.rejectMail)
__Log("htmlBody: " + xmlParameters.htmlBody);
__Log("body: " + xmlParameters.Body);
__Log("E-mail user ontvankelijk: " + xmlParameters.mailuser);
__Log("gebruikt email setting: " + emlSetting.key);
__Log("gebruikt email setting: " + emlSetting.volgnr);
if (emlResult.silentignoreemail)
{
var saveResult = { silentignoreemail : true, maillog: "Ignored because subject matches " + emlResult.silentignoreemail }
__Log("Ignored because subject matches " + emlResult.silentignoreemail);
}
else
{
var result = { success: true,
path: emlSetting.path,
kenmerkpath: "",
attachments: [],
tempfolder: shared.tempFolder(),
loglevel: emlSetting.loglevel || 0
};
var result = { success: true,
path: emlSetting.path,
kenmerkpath: "",
attachments: [],
tempfolder: shared.tempFolder(),
loglevel: emlSetting.loglevel || 0
};
var actionResult = emailAction(emlSetting, xmlParameters, result);
if (!actionResult.rejectMail)
var actionResult = emailAction(emlSetting, xmlParameters, result);
if (!actionResult.rejectMail)
{
var saveResult = saveAttachments(xmlReq, emlSetting, xmlParameters, actionResult);
if (!saveResult.rejectMail)
{
var saveResult = saveAttachments(xmlReq, emlSetting, xmlParameters, actionResult);
if (!saveResult.rejectMail)
{
saveEml(xmlParameters, saveResult);
}
else
{
emlResult.rejectMail = saveResult.rejectMail;
}
saveEml(xmlParameters, saveResult);
}
else
{
emlResult.rejectMail = actionResult.rejectMail;
emlResult.rejectMail = saveResult.rejectMail;
}
}
else
{
emlResult.rejectMail = actionResult.rejectMail;
}
}
if (emlResult.rejectMail)

View File

@@ -200,6 +200,7 @@ for (i = 0; i < meldingen.length; i++)
}
else
{
if (einddatum != null)
{
var mld_datum;
@@ -253,7 +254,7 @@ for (i = 0; i < meldingen.length; i++)
fields.push({ dbs: "mld_melding_opmerking", typ: "varchar", val: meld_opm, track: L("lcl_mld_inf_Opmerking"), len: 4000 });
if (meld_onderwerp)
fields.push({ dbs: "mld_melding_onderwerp", typ: "varchar", val: meld_onderwerp, track: L("lcl_mld_inf_Onderwerp"), len: 200 });
fields.push({ dbs: "mld_melding_onderwerp", typ: "varchar", val: meld_onderwerp, track: L("lcl_mld_inf_Onderwerp"), len: 80 });
if (meld_oms)
fields.push({ dbs: "mld_melding_omschrijving", typ: "varchar", val: meld_oms, track: L("lcl_mld_inf_Omschrijving"), len: 4000 });
@@ -272,7 +273,13 @@ for (i = 0; i < meldingen.length; i++)
} // einde update
else if (meldaction == "insert")
{
if (!validStdmld(stdmld_key))
tsql = "SELECT 1"
+ " FROM mld_stdmelding sm"
+ " WHERE sm.mld_stdmelding_key = " + (stdmld_key || -1)
+ " AND sm.mld_stdmelding_verwijder IS NULL";
var oRs = Oracle.Execute(tsql);
if (oRs.eof)
{
resultcode = 3;
resulttekst = "Undefined stdmelding";
@@ -333,57 +340,52 @@ for (i = 0; i < meldingen.length; i++)
}
tsql = "SELECT alg_locatie_key "
+ " FROM alg_v_aanweziglocatie"
+ " WHERE alg_locatie_code="+ safe.quoted_sql(meldloc);
var oRs_L = Oracle.Execute(tsql);
if (!oRs_L.eof)
+ " FROM alg_v_aanweziglocatie"
+ " WHERE alg_locatie_code="+ safe.quoted_sql(meldloc);
var oRs = Oracle.Execute(tsql);
if (!oRs.eof)
{
alglevel_ok = alglevel_ok || stdmld_niveau == "L";
locatie_key = oRs_L("alg_locatie_key").Value;
locatie_key = oRs("alg_locatie_key").Value;
fields.push({ dbs: "mld_alg_locatie_key", typ: "key", val: locatie_key });
tsql = "SELECT alg_gebouw_key "
+ " FROM alg_v_aanweziggebouw"
+ " WHERE alg_locatie_key ="+ locatie_key
+ " AND alg_gebouw_code="+ safe.quoted_sql(meldgeb);
var oRs_G = Oracle.Execute(tsql);
if (!oRs_G.eof)
+ " FROM alg_v_aanweziggebouw"
+ " WHERE alg_locatie_key ="+ locatie_key
+ " AND alg_gebouw_code="+ safe.quoted_sql(meldgeb);
var oRs = Oracle.Execute(tsql);
if (!oRs.eof)
{
alglevel_ok = alglevel_ok || stdmld_niveau == "G";
plaats_key = oRs_G("alg_gebouw_key").Value;
plaats_key = oRs("alg_gebouw_key").Value;
tsql = "SELECT alg_verdieping_key "
+ " FROM alg_v_aanwezigverdieping"
+ " WHERE alg_gebouw_key ="+ plaats_key
+ " AND alg_verdieping_code="+ safe.quoted_sql(meldver);
var oRs_V = Oracle.Execute(tsql);
if (!oRs_V.eof)
+ " FROM alg_v_aanwezigverdieping"
+ " WHERE alg_gebouw_key ="+ plaats_key
+ " AND alg_verdieping_code="+ safe.quoted_sql(meldver);
var oRs = Oracle.Execute(tsql);
if (!oRs.eof)
{
alglevel_ok = alglevel_ok || stdmld_niveau == "V";
plaats_key = oRs_V("alg_verdieping_key").Value;
plaats_key = oRs("alg_verdieping_key").Value;
tsql = "SELECT alg_ruimte_key "
+ " FROM alg_v_aanwezigruimte"
+ " WHERE alg_verdieping_key ="+ plaats_key
+ " AND alg_ruimte_nr="+ safe.quoted_sql(meldrnr);
var oRs_R = Oracle.Execute(tsql);
if (!oRs_R.eof) {
+ " FROM alg_v_aanwezigruimte"
+ " WHERE alg_verdieping_key ="+ plaats_key
+ " AND alg_ruimte_nr="+ safe.quoted_sql(meldrnr);
var oRs = Oracle.Execute(tsql);
if (!oRs.eof) {
alglevel_ok = alglevel_ok || stdmld_niveau == "R";
plaats_key = oRs_R("alg_ruimte_key").Value;
plaats_key = oRs("alg_ruimte_key").Value;
}
oRs_R.Close();
}
oRs_V.Close();
}
oRs_G.Close();
if (plaats_key != -1)
{
fields.push({ dbs: "mld_alg_onroerendgoed_keys", typ: "key", val: plaats_key });
}
}
oRs_L.Close();
if (!alglevel_ok)
{
resultcode = 5;
@@ -410,11 +412,12 @@ for (i = 0; i < meldingen.length; i++)
// Met "WEB_MLDUSE" autorisatie check maak ik deze melding aan. Dan kijk ik hier ook naar de FE setting "FE Defaultwaarde kosten klant aan".
var ins_srtdiscipline_kk = (ins_srtdisc_kk & 1) == 1;
var kpn_key = user.prs_kostenplaats_key() || -1;
if ((kpn_key == -1) || (meld_kpn && meld_kpn != ""))
var kpn_key = user.afdeling().prs_kostenplaats_key() || -1;
if (meld_kpn && meld_kpn != "")
{
var tempKpn = getKpn(meld_kpn);
kpn_key = (tempKpn != -1 ? tempKpn : stdm_info.kp_key);
if (tempKpn != -1)
kpn_key = tempKpn;
}
if (kpnverplicht && kpn_key < 0)
@@ -441,7 +444,7 @@ for (i = 0; i < meldingen.length; i++)
{ dbs: "mld_melding_module", typ: "varchar", val: "MLD" },
{ dbs: "mld_meldbron_key", typ: "key", val: 6 }, // system
{ dbs: "mld_melding_omschrijving", typ: "varchar", val: meld_oms, len: 4000 },
{ dbs: "mld_melding_onderwerp", typ: "varchar", val: meld_onderwerp, len: 200 },
{ dbs: "mld_melding_onderwerp", typ: "varchar", val: meld_onderwerp, len: 80 },
{ dbs: "prs_kostenplaats_key", typ: "key", val: kpn_key },
{ dbs: "prs_afdeling_key", typ: "key", val: afd_key },
{ dbs: "mld_kosten_klant", typ: "number", val: kpn_key > 0 && ins_srtdiscipline_kk? 1 : null },
@@ -467,10 +470,7 @@ for (i = 0; i < meldingen.length; i++)
upsertKenmerk(mldkenmerken, stdmld_key, mld_key);
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze melding.
// Handle workflow actions for new call:
// Let wel: alleen initiele stap ondersteund, niet latere vervolgstappen bij statuswijzigingen!
mld.nextworkflowstep(mld_key, -1); // -1 = initial (the originating call)
// En nog maar even de aanname dat een extern systeem niet aan workflows/ktos doet?
// Klantspecifieke check functie (hookfunction) voor de invoer
var pResult = new HookResult();
@@ -513,52 +513,35 @@ for (i = 0; i < meldingen.length; i++)
} // end for
// Alle melding-nodes zijn behandeld.
function validStdmld(stdmld_key)
{
var tsql = "SELECT COUNT(*) aantal"
+ " FROM mld_stdmelding sm"
+ " WHERE sm.mld_stdmelding_key = " + (stdmld_key || -1)
+ " AND sm.mld_stdmelding_verwijder IS NULL";
var oRs = Oracle.Execute(tsql);
var geldig = (oRs("aantal").Value == 1);
oRs.Close();
return geldig;
}
function getKpn(meld_kpn)
{
var kpn_key = -1;
if (!meld_kpn)
{
var temp_sql = "SELECT ''"
+ " FROM prs_perslidkostenplaats pkp"
+ " WHERE pkp.prs_perslidkostenplaats_boeken = 1"
+ " AND (pkp.prs_kostenplaats_key = kp.prs_kostenplaats_key"
+ " OR pkp.prs_kostenplaats_key IS NULL)" // Mandated for all
+ " AND pkp.prs_perslid_key = " + perslid_key;
return -1;
temp_sql = "SELECT kp.prs_kostenplaats_key"
+ " FROM prs_kostenplaats kp"
+ " WHERE kp.prs_kostenplaats_verwijder IS NULL"
+ " AND (kp.prs_kostenplaats_begin IS NULL"
+ " OR kp.prs_kostenplaats_begin < SYSDATE)"
+ " AND (kp.prs_kostenplaats_eind IS NULL"
+ " OR kp.prs_kostenplaats_eind > SYSDATE)"
+ " AND EXISTS ("
+ temp_sql
+ " )"
+ " AND kp.prs_kostenplaats_upper = " + safe.quoted_sql_upper(meld_kpn); // Unique
var temp_sql = "SELECT ''"
+ " FROM prs_perslidkostenplaats pkp"
+ " WHERE pkp.prs_perslidkostenplaats_boeken = 1"
+ " AND (pkp.prs_kostenplaats_key = kp.prs_kostenplaats_key"
+ " OR pkp.prs_kostenplaats_key IS NULL)" // Mandated for all
+ " AND pkp.prs_perslid_key = " + perslid_key;
var oRs = Oracle.Execute(temp_sql);
if (!oRs.eof)
{
kpn_key = oRs("prs_kostenplaats_key").Value;
}
oRs.Close();
}
temp_sql = "SELECT kp.prs_kostenplaats_key"
+ " FROM prs_kostenplaats kp"
+ " WHERE kp.prs_kostenplaats_verwijder IS NULL"
+ " AND (kp.prs_kostenplaats_begin IS NULL"
+ " OR kp.prs_kostenplaats_begin < SYSDATE)"
+ " AND (kp.prs_kostenplaats_eind IS NULL"
+ " OR kp.prs_kostenplaats_eind > SYSDATE)"
+ " AND EXISTS ("
+ temp_sql
+ " )"
+ " AND kp.prs_kostenplaats_upper = " + safe.quoted_sql_upper(meld_kpn); // Unique
return kpn_key;
var oRs = Oracle.Execute(temp_sql);
if (!oRs.EoF)
return oRs("prs_kostenplaats_key").Value;
oRs.Close();
return -1;
}
function getAfd(meld_afd)
@@ -733,14 +716,6 @@ function upsertKenmerk(kenmerken, stdmld_key, mld_key)
xmlResp.appendChild(FCLTElement);
if (API.apidata.errorhandling == 1 && user.errorhandling() == 1)
{
if (resultcode > 0) // -1 en 0 zijn 'goed'
{
Response.Status = '400 Bad Request';
}
}
Response.ContentType = "text/xml";
if (API.apidata.stylesheet)
{
@@ -752,4 +727,4 @@ else
Response.Write(xmlResp.xml)
}
%>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

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

View File

@@ -121,19 +121,11 @@ for (var i = 0; i < opdrachten.length; i++)
var onderwerp = XMLval(opdrachten[i], "onderwerp"); // NEW
var opdr_kpn = XMLval(opdrachten[i], "kostenplaats");
var flag = parseInt(XMLval(opdrachten[i], "flag"), 10);
var actiecode = parseInt(XMLval(opdrachten[i], "actiecode"), 10);
var txt_mut_datum = XMLval(opdrachten[i], "mut_datum"); // UPD
var opdrstatus = XMLval(opdrachten[i], "status"); // UPD
var opdropmerking = XMLval(opdrachten[i], "opmerking"); // UPD
var opdrnote = XMLval(opdrachten[i], "note"); // UPD
var opdrnoteflag = parseInt(XMLval(opdrachten[i], "noteflag")); // UPD
var note_key = -1; // vooralnog
// Welke tracking gaan we registreren?
var status_tracking_key = -1; // prio1
var datum_tracking_key = -1; // prio2
var update_tracking_key = -1; // prio3
var opdrgereed = XMLval(opdrachten[i], "datumgereed"); // NEW/UPD
var opdrkosten = XMLval(opdrachten[i], "kosten"); // NEW/UPD
@@ -450,6 +442,12 @@ for (var i = 0; i < opdrachten.length; i++)
Oracle.Execute(tsql);
resultcode = 0; // we zijn klaar.
}
if (resultcode == -1 && opdraction == "update" && opdrnote != null)
{
tsql = "INSERT INTO mld_opdr_note(mld_opdr_key, prs_perslid_key, mld_opdr_note_omschrijving)"
+ " VALUES (" + opdr_key + "," + user_key + "," + safe.quoted_sql(opdrnote) + ")";
Oracle.Execute(tsql);
}
}
else
{
@@ -495,13 +493,7 @@ for (var i = 0; i < opdrachten.length; i++)
// Dit zijn de wijzigingen, die voeren we alleen uit bij een geldige statuswijziging
// of geen statuswijziging
var canOpmChange = opdraction == "insert" ||
this_opdr.canOpmChange &&
( S("mld_afhandeling_restrict_edit") == 0 // Hier mag het afhandeling veld altijd aangepast worden
|| opdrstatus != null && (oldstatus == 5 || oldstatus == 8) && // En anders alleen bij het afmelden, afwijzen of annuleren
( opdrstatus == 'ORDAFM' && this_opdr.canClose // Verifieer dat we gaan (en mogen) afmelden
|| opdrstatus == 'ORDCAN' && this_opdr.canCancel)); // Verifieer dat we gaan (en mogen) annuleren
if (opdropmerking != null && canOpmChange)
if (opdropmerking != null)
{ // opmerking bij de opdracht
var new_opm = opdropmerking;
if (ORDremark == 5) // Append
@@ -546,11 +538,11 @@ for (var i = 0; i < opdrachten.length; i++)
}
}
if (opdrkosten != null && (opdraction == "insert" || this_opdr.canUrenMatChange))
if (opdrkosten != null)
opdr_fields.push({ dbs: "mld_opdr_kosten", typ: "float", val: opdrkosten, track: L("lcl_total_cost") });
if (opdruren != null && (opdraction == "insert" || this_opdr.canUrenMatChange))
if (opdruren != null)
opdr_fields.push({ dbs: "mld_opdr_uren", typ: "float", val: opdruren, track: L("lcl_hours") });
if (opdrmateriaal != null && (opdraction == "insert" || (this_opdr.typeopdr_materiaal < 2 && this_opdr.canUrenMatChange)))
if (opdrmateriaal != null)
opdr_fields.push({ dbs: "mld_opdr_materiaal", typ: "float", val: opdrmateriaal, track: L("lcl_mld_material") });
if (opdruurloon != null)
opdr_fields.push({ dbs: "mld_opdr_uurloon", typ: "float", val: opdruurloon, track: L("lcl_prs_person_uurloon") });
@@ -559,7 +551,7 @@ for (var i = 0; i < opdrachten.length; i++)
var formattedID = ins_srtdiscipline_prefix + opdrid;
var orddat_tracking = "";
if (opdrgereed != null && (opdraction == "insert" || this_opdr.canDatesChange))
if (opdrgereed != null)
{
var old_einddatum = mld_opdr.mld_opdr_einddatum;
var new_einddatum = XMLtoJsDate(opdrgereed);
@@ -574,7 +566,7 @@ for (var i = 0; i < opdrachten.length; i++)
// Plandatum wordt apart getracked want deze heeft zijn eigen tracking code (ORDPLD)
var ordpld_tracking = "";
if (plandatum != null && (opdraction == "insert" || this_opdr.canPlanDatesChange))
if (plandatum != null)
{
var new_plandatum;
if (plandatum == "")
@@ -596,7 +588,7 @@ for (var i = 0; i < opdrachten.length; i++)
// Plandatum2 wordt apart getracked want deze heeft zijn eigen tracking code (ORDPL2)
var ordpl2_tracking = "";
if ((S("mld_use_plandate2") & 2 && plandatum2 != null) && (opdraction == "insert" || this_opdr.canPlanDatesChange))
if (S("mld_use_plandate2") & 2 && plandatum2 != null)
{
var new_plandatum2;
if (plandatum2 == "")
@@ -618,7 +610,7 @@ for (var i = 0; i < opdrachten.length; i++)
if ((this_opdr.canHervatten && resume) || (this_opdr.canOnderbreken && halt))
{
status_tracking_key = mld.opdr_hltrsm(opdr_key, { halt: halt, resume: resume }); // Zorgt voor het zetten van de mld_opdr.mld_opdr_halted waarde en het tracken van "ORDHLT" of "ORDRSM".
mld.opdr_hltrsm(opdr_key, { halt: halt, resume: resume }); // Zorgt voor het zetten van de mld_opdr.mld_opdr_halted waarde en het tracken van "ORDHLT" of "ORDRSM".
}
else if (resume || halt)
{
@@ -646,12 +638,10 @@ for (var i = 0; i < opdrachten.length; i++)
forcetracking = true;
if (((halt && mld_opdr.halted) || (resume && !mld_opdr.halted)) && forcetracking)
{
// De status staat al op halted of resume maar er is nog geen "ORDHLT" of "ORDRSM" tracking aanwezig.
// Dan deze tracking alsnog aanmaken m.b.v. de functie opdr_hltrsm.
// De functie zorgt ook voor het leegmaken van verplichte onderbreek kenmerken bij het hervatten.
status_tracking_key = mld.opdr_hltrsm(opdr_key, { halt: halt, resume: resume, forcetracking: true }); // Zorgt voor het zetten van de mld_opdr.mld_opdr_halted waarde en het tracken van "ORDHLT" of "ORDRSM".
}
mld.opdr_hltrsm(opdr_key, { halt: halt, resume: resume, forcetracking: true }); // Zorgt voor het zetten van de mld_opdr.mld_opdr_halted waarde en het tracken van "ORDHLT" of "ORDRSM".
resultcode = -1; // Hij was al halted of resumed, niet erg dus.
}
}
@@ -777,7 +767,7 @@ for (var i = 0; i < opdrachten.length; i++)
{
var mldUpd = buildTrackingUpdate("mld_opdr", "mld_opdr_key = " + opdr_key, opdr_fields, { noValidateToken: true });
Oracle.Execute(mldUpd.sql);
update_tracking_key = mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_updatedbysoap") + "\n" + mldUpd.trackarray.join("\n"));
mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_updatedbysoap") + "\n" + mldUpd.trackarray.join("\n"));
if (mut_datum) // Antedateren voor SLA rapportages.
{
var sql = "BEGIN fac.backtrackaction('ORDUPD', " + opdr_key + ", " + user_key + ", " + mut_datum.toSQL(true) +"); END;"
@@ -786,17 +776,17 @@ for (var i = 0; i < opdrachten.length; i++)
// Tracken en notificeren van de einddatum (ORDDAT) (notificeren aan de gebouwverantwoordelijke van het betreffende gebouw van de onderliggende melding).
if (orddat_tracking != "")
{
datum_tracking_key = mld.trackopdreinddatumupdate(opdr_key, orddat_tracking);
mld.trackopdreinddatumupdate(opdr_key, orddat_tracking);
}
// Tracken en notificeren van de geplande aanvang datum (ORDPLD) (notificeren aan interne contactpersoon).
if (ordpld_tracking != "")
{
datum_tracking_key = mld.trackopdrplandatumupdate(opdr_key, ordpld_tracking);
mld.trackopdrplandatumupdate(opdr_key, ordpld_tracking);
}
// Tracken en notificeren van de geplande einddatum (ORDPL2) (notificeren aan interne contactpersoon).
if (S("mld_use_plandate2") & 2 && ordpl2_tracking != "")
{
datum_tracking_key = mld.trackopdrplandatum2update(opdr_key, ordpl2_tracking);
mld.trackopdrplandatum2update(opdr_key, ordpl2_tracking);
}
}
}
@@ -822,15 +812,14 @@ for (var i = 0; i < opdrachten.length; i++)
}
// De kenmerken.
update_tracking_key = coalesce(update_tracking_key, upsertKenmerk(opdrkenmerken, topdr_key, opdr_key));
upsertKenmerk(opdrkenmerken, topdr_key, opdr_key);
// De opdrachtregels.
update_tracking_key = coalesce(update_tracking_key, upsertOpdrRegels(opdrregels, mld_opdr));
upsertOpdrRegels(opdrregels, mld_opdr);
if (newstatus != -1)
{
add_note(); // zodat we note_key hebben
mld.setopdrachtstatus(opdr_key, newstatus, null, note_key);
mld.setopdrachtstatus(opdr_key, newstatus);
// Hier terugchecken van de status
tsql = "SELECT mld_statusopdr_key FROM mld_opdr"
+ " WHERE mld_opdr_key="+ opdr_key;
@@ -871,7 +860,7 @@ for (var i = 0; i < opdrachten.length; i++)
"ORDACP": L("lcl_ord_is_ordacp"),
"ORDAFR": L("lcl_ord_is_ordafr")
}[opdrstatus];
update_tracking_key = coalesce(update_tracking_key, mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_ordupd") + "\n" + txt + L("lcl_trackto") + toDateTimeString(mut_datum)));
mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_ordupd") + "\n" + txt + L("lcl_trackto") + toDateTimeString(mut_datum));
}
// Zijn er nog lopende opdrachten
@@ -883,12 +872,6 @@ for (var i = 0; i < opdrachten.length; i++)
if (oRs("lopend").Value == 0)
{ // Er zijn alleen opdrachten met status 1 (Afgewezen) of 6/9 (Afgemeld/Afgerond)
// Check of setting bij opdrachttype automatisch sluiten ALTIJD (= 2) toestaat.
// Ondertussen kan de status van de opdracht aangepast zijn.
// De waarde this_mld.canClose kan daarom niet meer juist zijn omdat deze van de status afhankelijk is.
// Daarom moet de waarde opnieuw bepaald worden (PROR#90212 / PROR#90706).
var this_mld2 = mld.func_enabled_melding(mld_opdr.mld_key);
tsql = "SELECT mld_typeopdr_sluitmelding FROM mld_typeopdr"
+ " WHERE mld_typeopdr_key = " + topdr_key;
var oRs = Oracle.Execute(tsql);
@@ -896,7 +879,7 @@ for (var i = 0; i < opdrachten.length; i++)
// Afhankelijk van sluitmelding nu melding status zetten (0=nooit, 1=vragen en 2=altijd)
// Als de laatste opdracht een cancel was dan wordt de melding niet afgemeld.
if ((oRs("mld_typeopdr_sluitmelding").Value == 2 || oRs("mld_typeopdr_sluitmelding").Value == 1)
&& this_mld2.canClose
&& this_mld.canClose
&& opdrstatus != 'ORDCAN')
{
mld.setmeldingstatus (mld_key, 5); // Afgemeld
@@ -911,6 +894,8 @@ for (var i = 0; i < opdrachten.length; i++)
// Zodat die bij de FO weer onder Inbehandeling valt.
mld.setmeldingstatus (mld_key, 4); // Geaccepteerd
}
// else status van de melding niet aanpassen.
resultcode = 0;
}
else
{
@@ -923,48 +908,13 @@ for (var i = 0; i < opdrachten.length; i++)
if (resultcode == -1) // Nog steeds geen fouten.
{
var tracking_key = coalesce(coalesce(status_tracking_key, datum_tracking_key), update_tracking_key); // volgorde van belangrijkheid
add_note(tracking_key); // voor als nog niet eerder gebeurd
// Alleen als er een notitie is aangemaakt mag ik de actiecode ook aanpassen.
if (note_key > 0)
{ // Er is een notitie aangemaakt.
// Actie bij +1=FOBO behandelaar, +2=melder, +4=uitvoerende, +128=attentie FOBO, +512=attentie uitvoerende.
if (resultcode == -1 && !isNaN(actiecode) && actiecode >= 0)
{ // Actie code.
var newActiecode = 0;
if ((actiecode & 128) == 128)
{
newActiecode += 128; // BO attentie
}
var BOactie = false;
if (S("mld_opdr_actiecode") > 0 && ((actiecode & 1) == 1))
{
newActiecode += 1; // + BO actie
BOactie = true;
}
var sql = "UPDATE mld_opdr"
+ " SET mld_opdr_actiecode = mld_opdr_actiecode" // Bestaande bitjes zoals 512 mag niet verloren gaan.
+ " + " + newActiecode
+ " - BITAND(mld_opdr_actiecode, " + newActiecode + ")" // Als het bitje 1 of 128 al gezet was dan deze waarde weer in minderinig brengen.
+ (BOactie
? " - BITAND(mld_opdr_actiecode, 6)" // Van de bitjes 1+2+4 (=7) moet er altijd 1 aan staan. Als we bitje 1 zetten, dan moeten we bitjes 2 of 4 wissen.
: "") // Bitje 1 is niet gezet. Bitjes 2 en 4 ongemoeit laten.
+ " WHERE mld_opdr_key = " + mld_opdr.opdr_key;
Oracle.Execute(sql);
}
}
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze opdracht.
}
else if (resultcode > 0)
{
var logtxt = "api_opdrsoap fail.\nResultcode: {0}\nReturntekst: {1}\nOpdracht: {2}\nOldstatus: {3}".format(resultcode, resulttekst, opdrid, oldstatus);
if (resulttekst.match(/^Not authorized/)) // Dit komt heel vaak voor door updates op gesloten opdrachten.
__Log(logtxt); // Het vervuilt de logfile veel te veel
__Log(logtxt); // Het vervuilt de logfile veel te veel
else
__DoLog(logtxt, "#00FF00");
}
@@ -991,45 +941,7 @@ for (var i = 0; i < opdrachten.length; i++)
} // end for
// Alle opdracht-nodes zijn behandeld.
// Voeg een notitie toe en koppel hem eventueel direct aan tracking_key
function add_note(tracking_key)
{
if (/*global*/ note_key > 0)
return; // hadden we het al gedaan
if (opdraction == "update" && opdrnote != null)
{
var fields = [ { dbs: "mld_opdr_note_key", typ: "key", seq: "mld_s_mld_opdr_note_key" },
{ dbs: "mld_opdr_key", typ: "key", val: opdr_key },
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
{ dbs: "mld_opdr_note_flag", typ: "number", val: opdrnoteflag || 4 }, // default alleen uitvoerende, +1 voor FE-zichtbaar
{ dbs: "mld_opdr_note_omschrijving", typ: "varchar", val: opdrnote, len: 4000 }
];
var noteIns = buildInsert("mld_opdr_note", fields, { noValidateToken: true });
note_key = noteIns.sequences["mld_opdr_note_key"];
Oracle.Execute(noteIns.sql);
if (!(tracking_key > 0))
{ // Er is alleen een losse notitie. De opdracht is niet aangepast.
if ((opdrnoteflag & 1) == 1) // voor FE-zichtbaar
tracking_key = mld.trackmeldingaddnote(mld_key); // MLDNOT tracking.
else
tracking_key = mld.trackopdrachtaddnote(opdr_key); // ORDNOB tracking.
}
var sql = "UPDATE mld_opdr_note"
+ " SET fac_tracking_key = " + tracking_key
+ " WHERE mld_opdr_note_key = " + note_key;
Oracle.Execute(sql);
}
}
// Als key1 geldig is heeft die de voorkeur, anders keys
function coalesce(key1, key2)
{
if (key1 > 0)
return key1;
return key2;
}
function upsertKenmerk(kenmerken, topdr_key, opdr_key)
{
@@ -1087,7 +999,6 @@ function upsertKenmerk(kenmerken, topdr_key, opdr_key)
switch (kenmerk_type)
{
case 'R':
case 'r':
case 'S':
{
// read reference fields
@@ -1106,7 +1017,7 @@ function upsertKenmerk(kenmerken, topdr_key, opdr_key)
{ // We ondersteunen alleen nog maar karakter- en bestandsnaam-velden.
// AEG: Maar wat maakt een nummer nu anders dan een karakter ?
var vnew = kenmerk_waarde;
if (kenmerk_type == 'R' || kenmerk_type == 'r' || kenmerk_type == 'S')
if (kenmerk_type == 'R' || kenmerk_type == 'S')
{
if (vnew)
{
@@ -1119,7 +1030,7 @@ function upsertKenmerk(kenmerken, topdr_key, opdr_key)
{
var kenmerkopdr_key = oRs("mld_kenmerkopdr_key").Value;
var vold = oRs("mld_kenmerkopdr_waarde").Value; // Voor tracking
if (kenmerk_type == 'R' || kenmerk_type == 'r' || kenmerk_type == 'S')
if (kenmerk_type == 'R' || kenmerk_type == 'S')
{
if (vold)
{
@@ -1210,15 +1121,13 @@ function upsertKenmerk(kenmerken, topdr_key, opdr_key)
// Via de GUI komt dit in hetzelfde tracking record als de vaste-velden-wijziging.
// Hier komt het in een eigen tracking record. Daar kan ik mee leven.
if (flextrack.length)
return mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_updatedbysoap") + "\n" + flextrack.join("\n"));
return -1; // else geen trackingkey
mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_updatedbysoap") + "\n" + flextrack.join("\n"));
}
function isGoodCurrency(str)
{
var anum = /^([-\+]?\d{1,6}[.,]?|[-\+]?\d{0,6}[.,]\d{1,7})$/
var anum = /^([-\+]?\d{1,6}[.,]?|[-\+]?\d{0,6}[.,]\d{1,2})$/
return anum.test(str);
}
@@ -1226,8 +1135,6 @@ function upsertOpdrRegels(regels, mld_opdr)
{
var opdr_key = mld_opdr.opdr_key;
var mat_key_list = [];
var mat_tracking_arr = [];
var tracking_key = -1;
for (var r = 0; r < regels.length; r++)
{
var mat_fields = []; // Bij te werken velden.
@@ -1362,18 +1269,18 @@ function upsertOpdrRegels(regels, mld_opdr)
// Aantal is groter dan 0. Opdrachtregel toevoegen (Update).
// Als aantal 0 is dan is de materiaalregel al verwijderd en kom je hier niet.
mat_fields = mat_fields.concat(
[ { dbs: "mld_opdr_materiaal_aantal", typ: "float", savewhen: aantal !== null, track: L("lcl_mld_opdr_aantal"), val: aantalval },
{ dbs: "mld_opdr_materiaal_eenheidcode", typ: "varchar", savewhen: eenheidcode !== null, track: L("lcl_mld_opdr_eenheidcode"), val: eenheidcode, len: 10 },
{ dbs: "mld_opdr_materiaal_eenheid", typ: "varchar", savewhen: eenheid !== null, track: L("lcl_mld_opdr_eenheid"), val: eenheid, len: 30 },
{ dbs: "mld_opdr_materiaal_prijs", typ: "float", savewhen: prijs !== null, track: L("lcl_mld_opdr_prijs"), val: (prijs? prijsval : null) },
{ dbs: "mld_opdr_materiaal_code", typ: "varchar", savewhen: matcode !== null, track: L("lcl_mld_opdr_code"), val: matcode, len: 30 },
{ dbs: "mld_opdr_materiaal_omschr", typ: "varchar", savewhen: omschr !== null, track: L("lcl_mld_opdr_omschr"), val: omschr, len: 255 },
{ dbs: "mld_opdr_materiaal_info", typ: "varchar", savewhen: info !== null, track: L("lcl_mld_opdr_info"), val: info, len: 4000 },
{ dbs: "mld_opdr_materiaal_groep", typ: "varchar", savewhen: groep !== null, track: L("lcl_mld_opdr_groep"), val: groep, len: 60 },
{ dbs: "mld_opdr_materiaal_extra1", typ: "varchar", savewhen: extra1 !== null, track: L("lcl_mld_opdr_extra1"), val: extra1, len: 60 },
{ dbs: "mld_opdr_materiaal_extra2", typ: "varchar", savewhen: extra2 !== null, track: L("lcl_mld_opdr_extra2"), val: extra2, len: 60 },
{ dbs: "mld_opdr_materiaal_extra3", typ: "varchar", savewhen: extra3 !== null, track: L("lcl_mld_opdr_extra3"), val: extra3, len: 4000 },
{ dbs: "mld_opdr_materiaal_extra4", typ: "varchar", savewhen: extra4 !== null, track: L("lcl_mld_opdr_extra4"), val: extra4, len: 4000 }
[ { dbs: "mld_opdr_materiaal_aantal", typ: "float", savewhen: aantal !== null, val: aantalval },
{ dbs: "mld_opdr_materiaal_eenheidcode", typ: "varchar", savewhen: eenheidcode !== null, val: eenheidcode, len: 10 },
{ dbs: "mld_opdr_materiaal_eenheid", typ: "varchar", savewhen: eenheid !== null, val: eenheid, len: 30 },
{ dbs: "mld_opdr_materiaal_prijs", typ: "float", savewhen: prijs !== null, val: (prijs? prijsval : null) },
{ dbs: "mld_opdr_materiaal_code", typ: "varchar", savewhen: matcode !== null, val: matcode, len: 30 },
{ dbs: "mld_opdr_materiaal_omschr", typ: "varchar", savewhen: omschr !== null, val: omschr, len: 255 },
{ dbs: "mld_opdr_materiaal_info", typ: "varchar", savewhen: info !== null, val: info, len: 4000 },
{ dbs: "mld_opdr_materiaal_groep", typ: "varchar", savewhen: groep !== null, val: groep, len: 60 },
{ dbs: "mld_opdr_materiaal_extra1", typ: "varchar", savewhen: extra1 !== null, val: extra1, len: 60 },
{ dbs: "mld_opdr_materiaal_extra2", typ: "varchar", savewhen: extra2 !== null, val: extra2, len: 60 },
{ dbs: "mld_opdr_materiaal_extra3", typ: "varchar", savewhen: extra3 !== null, val: extra3, len: 4000 },
{ dbs: "mld_opdr_materiaal_extra4", typ: "varchar", savewhen: extra4 !== null, val: extra4, len: 4000 }
]);
if ((btw || btw == 0) && (!isNaN (btwval) && btwval >= 0))
@@ -1403,14 +1310,20 @@ function upsertOpdrRegels(regels, mld_opdr)
var matUpd = buildTrackingUpdate("mld_opdr_materiaal", "mld_opdr_materiaal_key = " + materiaal_key, mat_fields, { noValidateToken: true });
// Zijn er velden die gewijzigd moeten worden? Als matUpd null is, dan waren alle savewhen condities false en hoeft er niets geupdate te worden.
if (matUpd && matUpd.sql && matUpd.trackarray.length) { // Als trackarray.length === 0 dan is er effectief niets aangepast (we tracken alles)
if (matUpd && matUpd.sql)
{ // Er zijn wijzigingen.
Oracle.Execute(matUpd.sql);
mat_tracking_arr.push(L("lcl_ord_is_upd_material").format(id) + "\n" + matUpd.trackarray.join("\n"));
mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_updatedbysoap") + "\n" + L("lcl_ord_is_upd_material").format(id) + "\n" + matUpd.trackarray.join("\n"));
}
}
}
oRs.Close();
var sql_del = "DELETE mld_opdr_materiaal"
+ " WHERE mld_opdr_key = " + opdr_key
+ " AND mld_opdr_materiaal_key NOT IN (" + mat_key_list.join(",") + ")";
Oracle.Execute(sql_del);
// 1) Nieuwe materiaalbedrag in de opdracht opslaan.
// 2) De totaalwaarde opnieuw berekenen want het materiaalbedrag is aangepast.
// Dan hebben we het correctie bedrag ook nodig. Dit correctie bedrag moet hetzelfde blijven.
@@ -1427,32 +1340,10 @@ function upsertOpdrRegels(regels, mld_opdr)
+ " WHERE mld_opdr_key = " + opdr_key
Oracle.Execute(sql_total);
}
if (mat_tracking_arr.length)
{ // Er zijn wijzigingen.
tracking_key = mld.trackopdrachtupdate(opdr_key, L("lcl_ord_is_updatedbysoap") + "\n" + mat_tracking_arr.join("\n"));
}
if (mat_key_list.length) {
var sql_del = "DELETE mld_opdr_materiaal"
+ " WHERE mld_opdr_key = " + opdr_key
+ " AND mld_opdr_materiaal_key NOT IN (" + mat_key_list.join(",") + ")";
Oracle.Execute(sql_del);
}
return tracking_key;
}
xmlResp.appendChild(FCLTElement);
if (API.apidata.errorhandling == 1 && user.errorhandling() == 1)
{
if (resultcode > 0) // -1 en 0 zijn 'goed'
{
Response.Status = '400 Bad Request';
}
}
Response.ContentType = "text/xml";
if (API.apidata.stylesheet)
{ // Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...

View File

@@ -184,7 +184,7 @@
if (resultcode == -1) { // nog steeds geen fouten
// Combinatievalidatie ruimte discipline!
if (!kpl_ksrt_validate(user.prs_kostenplaats_key(), null, disc_key)) {
if (!kpl_ksrt_validate(user.afdeling().prs_kostenplaats_key(), null, disc_key)) {
resultcode = 6;
resulttekst = "Illegal reservering (cost)";
}
@@ -207,7 +207,7 @@
fields.push({ dbs: "res_rsv_ruimte_van", typ: "datetime", val: vandate });
fields.push({ dbs: "res_rsv_ruimte_tot", typ: "datetime", val: totdate });
fields.push({ dbs: "res_rsv_ruimte_bezoekers", typ: "number", val: 1 }); // altijd 1
fields.push({ dbs: "prs_kostenplaats_key", typ: "key", val: user.prs_kostenplaats_key() });
fields.push({ dbs: "prs_kostenplaats_key", typ: "key", val: user.afdeling().prs_kostenplaats_key() });
fields.push({ dbs: "res_rsv_ruimte_host_key", typ: "key", val: user_key });
fields.push({ dbs: "res_rsv_ruimte_contact_key", typ: "key", val: user_key });
fields.push({ dbs: "res_rsv_ruimte_omschrijving", typ: "varchar", val: res_oms, len: 4000 });

View File

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

View File

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

View File

@@ -81,7 +81,6 @@ __Log("== Entering shorturl.asp ==");
+ " prs_bedrijfadres_lockexpire"
+ " FROM prs_bedrijfadres"
+ " WHERE prs_bedrijfadres_key = " + locked_bdradr_key
+ " AND prs_bedrijfadres_startdatum <= SYSDATE"
+ " AND prs_bedrijfadres_locksecret IS NOT NULL"
+ " AND prs_bedrijfadres_lockuser_key IS NOT NULL";
var oRs = Oracle.Execute(sql);
@@ -169,8 +168,7 @@ __Log("== Entering shorturl.asp ==");
}
else
{
var sql = "SELECT fac_bookmark_key,"
+ " fac_bookmark_path,"
var sql = "SELECT fac_bookmark_path,"
+ " fac_bookmark_query," // Ooit was bedacht dat je de parameters apart in fac_bookmark_query stopt.
+ " prs_perslid_key_auth," // In de praktijk stoppen mensen het ook vaak in fac_bookmark_path
+ " fac_bookmark_unauth_url," // Dat kunnen we tegenwoordig (2018.1 Gold C) ook wel aan.
@@ -202,7 +200,6 @@ __Log("== Entering shorturl.asp ==");
}
var refresher = oRs("fac_bookmark_refreshtime").Value;
var bookmark_naam = oRs("fac_bookmark_naam").Value;
var bookmark_key = oRs("fac_bookmark_key").Value;
if (user_key < 0)
{
@@ -212,14 +209,12 @@ __Log("== Entering shorturl.asp ==");
if (bookmark_naam != 'faclikedeeplink' && new Perslid(falluser_key).checkAutorisation("WEB_PRSSYS", true))
{
INTERNAL_ERROR_FALLBACK_CANNOT_HAVE_PRSSYS;
// fac_like_deep.asp & fac_like.asp staan we wel toe, die hebben een Session.Abandon();
// fac_like_deep.asp staan we wel toe, die heeft een Session.Abandon();
}
Session("fallback_user_key") = falluser_key; // wordt opgepikt door loginTry.asp
}
else
{
Session("unauth_url") = oRs("fac_bookmark_unauth_url").Value; // wordt opgepikt door common.asp
}
}
var params = oRs("fac_bookmark_query").Value;
@@ -245,9 +240,6 @@ __Log("== Entering shorturl.asp ==");
if (oRs("fac_bookmark_flags").Value == 0)
var url = protectQS.create(url); // prs/pchange_reset.asp, PRS\prs_perslid_qr_confirm.asp en PRS\self_register_confirm.asp verwachten dit
if (user_key > -1)
shared.registeraction("bookmark", {refkey: bookmark_key, info: bookmark_naam, daily: S("fac_gui_counter_menu_daily")});
oRs.Close();
}

View File

@@ -112,7 +112,6 @@ api2 = {
case "color":
case "symbol":
case "varchar":
case "clob":
val = getFParam(formfields[i].frm, null);
break;
case "processingtime":
@@ -188,7 +187,6 @@ api2 = {
filter = "exact";
break;
case "varchar":
case "clob":
case "memo":
case "html":
filter = "like";
@@ -405,7 +403,6 @@ api2 = {
break;
case "varchar": // Als fld.match(/^fclt_d_/) dan is het een old-style rapport filterveld
case "memo":
case "clob":
case "html":
if (filterval instanceof Array)
{ // O.a. multi filter bij rapportages.
@@ -527,7 +524,7 @@ api2 = {
else if (typeof operand == "string" && operand != " NOT IN " && operand != " IN ")
operand = isNot ? " NOT LIKE " : " LIKE ";
if (field.typ == "varchar" || field.typ == "memo" || field.typ == "clob" || field.typ == "html")
if (field.typ == "varchar" || field.typ == "memo" || field.typ == "html")
{
if (field.islcl)
dbs = "lcl.l({0}, 1)".format(dbs);
@@ -536,7 +533,7 @@ api2 = {
}
if (field.caseinsensitive)
{
dbs = field.hasupper || "UPPER(" + dbs + ")";
dbs = "UPPER(" + dbs + ")";
if (safe_val instanceof Array)
for (var i = 0; i < safe_val.length; i++)
safe_val[i] = safe_val[i].toUpperCase();
@@ -694,10 +691,6 @@ api2 = {
+ " WHERE xx." + model.primary + " = " + model.table + "." + model.primary + ")";
selects.push(sqleenh + " AS " + fld + "_eenheid");
}
else if (field.typ == "clob" && !params.filter.id)
{ // er *kan* een discx3d overheen gaan wat tot een UNION kan leiden wat niet mag met een CLOB
selects.push("TO_CHAR(SUBSTR({0}, 1, 4000)) AS {0}".format(field.dbs));
}
else if (dbs)
{
// veldnamen moeten gelijk zijn bij het ophalen. Zie ook: sql2jsonval
@@ -808,10 +801,7 @@ api2 = {
tables.push(tablesql);
}
else
{
if (!inc.isdetailfor)
tables = tables.concat (incquery.tables);
}
tables = tables.concat (incquery.tables);
wheres = wheres.concat (incquery.wheres);
if (inc.model.gparams && inc.model.gparams.GET.tables)
@@ -912,13 +902,13 @@ api2 = {
// Return new_price OR price +/- percentage
function calculatePrice(price, new_price)
{
if (String(new_price).match('%'))
if (new_price.match('%'))
{
return (price + price * parseFloat(new_price) / 100).toFixed(2);
}
else
{
if (String(new_price).match(/^-{2}|\+{2}/)) //match ++ or -- at beginning
if (new_price.match(/^-{2}|\+{2}/)) //match ++ or -- at beginning
{
return price + parseFloat(new_price.replace("++", "+").replace("--", "-"));
}
@@ -1018,7 +1008,6 @@ api2 = {
// object met "name": { field.. } wat daar wel omgezet wordt.
var newfield = { dbs: field.dbs,
typ: field.typ,
withseconds: "withseconds" in field? field.withseconds: fld.indexOf("syncdate") > -1,
track: field.track && field.label?field.label:field.track,
foreign: field.foreign,
val: newval,
@@ -1239,10 +1228,7 @@ api2 = {
var spl = api2.splitLOV(LOV);
var result = [];
for (var f in filter)
{
if ( filter[f] in spl)
result.push(filter[f] + ";" + spl[filter[f]]);
}
result.push(filter[f] + ";" + spl[filter[f]]);
return result.join(";");
},
splitLOV: function _splitLOV(LOV, nameprefix)
@@ -1460,21 +1446,7 @@ api2 = {
}
}
if (!incfound)
{
var data2 = api2.sql2jsonfields(params, oRs, incmodel)
if (model.includes[incname].isdetailfor)
{
for (detail in data2)
{
record[model.includes[incname].isdetailfor][detail] = data2[detail];
}
delete record[incname]; // niet meer nodig
}
else
{
record[incname].push(data2);
}
}
record[incname].push(api2.sql2jsonfields(params, oRs, incmodel));
}
else if (model.includes[incname].func) // include via callback functie zoals reservablerooms/occupation
{
@@ -1729,8 +1701,6 @@ function _validateJsondata(jsondata, model)
case "float":
if (typeof data === "string" && data.match(/^\d+$/)) // "resroom": "823" staan we nog wel toe
data = parseInt(data, 10);
if (typeof data === "string" && (type == "float" || type == "currency") && data.match(/^[\.\d]+$/)) // "uren": "123.4" staan we nog wel toe
data = parseFloat(data);
if (typeof data === "number" && isFinite(data))
valid = true;
break;
@@ -1768,7 +1738,6 @@ function _validateJsondata(jsondata, model)
case "color":
case "symbol":
case "varchar":
case "clob":
if (typeof data == "string")
valid = true;
break;
@@ -2014,10 +1983,6 @@ function generic_REST_POST(model, gparams)
var xxxIns = buildInsert(model.table, dbfields, { noValidateToken: true });
var the_key = xxxIns.sequences[model.fields.id.dbs];
// TODO: Generieke tracking?
if (params.sqlOnly)
{ // Alleen de sql terugsturen
return { genIns: xxxIns, newKey: the_key };
}
var err = Oracle.Execute(xxxIns.sql, true);
if (err.friendlyMsg)
@@ -2091,10 +2056,6 @@ function generic_REST_PUT(model, gparams)
var xxxUpd = buildTrackingUpdate(model.table, wheres.join(" AND " ), dbfields, tracking_params);
var xxxTrack = xxxUpd.trackarray;
// TODO: Generieke tracking?
if (params.sqlOnly)
{ // Alleen de sql terugsturen
return { genUpd: xxxUpd };
}
if (xxxUpd) // Misschien geen velden opgegeven.
{

View File

@@ -25,10 +25,13 @@ var api2_mapper = {
"rooms" : { "filename": "appl/api2/api_rooms.asp", "module": "ALG" },
"districts" : { "filename": "appl/api2/api_districts.asp", "module": "ALG" },
"orderdisciplines" : { "filename": "appl/mgt/bes_discipline.asp" },
"ordercatalogues" : { "filename": "appl/mgt/bes_disciplineprod.asp" },
"orderunits" : { "filename": "appl/mgt/bes_grootheid.asp" },
"orderlineproperties" : { "filename": "appl/mgt/bes_kenmerk.asp" },
"orderproperties" : { "filename": "appl/mgt/bes_kenmerkbestel.asp" },
"orderarticlegroups" : { "filename": "appl/mgt/bes_srtgroep.asp" },
"orderpropertytypes" : { "filename": "appl/mgt/bes_srtkenmerk.asp" },
"orderproductgroups" : { "filename": "appl/mgt/bes_srtprodgroep.asp", "lcl_name": "bes_srtgroep_m" },
"orderpacelisttables" : { "filename": "appl/mgt/bes_staffeltabel.asp" },
"visitoractions" : { "filename": "appl/mgt/bez_actie.asp" },
"visitorproperties" : { "filename": "appl/mgt/bez_kenmerk.asp" },
@@ -73,7 +76,6 @@ var api2_mapper = {
"objectproperties" : { "filename": "appl/mgt/ins_kenmerk.asp" },
"recurringtasks" : { "filename": "appl/mgt/ins_srtcontrole.asp" },
"objectgroups" : { "filename": "appl/mgt/ins_srtgroep.asp" },
"objecttypes" : { "filename": "appl/mgt/ins_srtdeel.asp" },
"objectpropertytypes" : { "filename": "appl/mgt/ins_srtkenmerk.asp" },
"alldisciplines" : { "filename": "appl/mgt/ins_tab_discipline.asp" },
"kpidefinitions" : { "filename": "appl/mgt/kpi_definitie.asp", "module": "KPI" },
@@ -89,7 +91,6 @@ var api2_mapper = {
"disciplinetypes" : { "filename": "appl/mgt/mld_srtdiscipline.asp" },
"issuepropertytypes" : { "filename": "appl/mgt/mld_srtkenmerk.asp" },
"callgroups" : { "filename": "appl/mgt/mld_stdmeldinggroep.asp" },
"issuetags" : { "filename": "appl/mgt/mld_melding_tag.asp" },
"issueordertypes" : { "filename": "appl/mgt/mld_typeopdr.asp" },
"daysoff" : { "filename": "appl/mgt/mld_vrije_dagen.asp" },
"workflows" : { "filename": "appl/mgt/mld_workflow.asp" },
@@ -112,6 +113,7 @@ var api2_mapper = {
"mandates" : { "filename": "appl/mgt/prs_perslidkostenplaats.asp" },
"relationtypes" : { "filename": "appl/mgt/prs_relatietype.asp" },
"employeefunctions" : { "filename": "appl/mgt/prs_srtperslid.asp" },
"basispacelists" : { "filename": "appl/mgt/prs_staffel.asp" },
"packages" : { "filename": "appl/mgt/res_arrangement.asp" },
"packageitems" : { "filename": "appl/mgt/res_arrangement_artikel.asp" },
"bookingactivities" : { "filename": "appl/mgt/res_activiteit.asp" },
@@ -147,7 +149,6 @@ var api2_mapper = {
"reportsx" : { "filename": "appl/api2/api_reportsx.asp", "module": "FAC" },
"reports" : { "filename": "appl/api2/api_reports.asp", "module": "FAC", "nodoc": true },
"invoices" : { "filename": "appl/api2/api_invoices.asp", "module": "FIN" },
"invoicelines" : { "filename": "appl/api2/api_invoicelines.asp", "module": "FIN" },
"objects" : { "filename": "appl/api2/api_objects.asp", "module": "INS" },
"inspections" : { "filename": "appl/api2/api_ins_deelsrtcontrole.asp", "module": "INS" },
"statehistory" : { "filename": "appl/mgt/ins_deel_state_history.asp", "module": "INS" },
@@ -159,14 +160,8 @@ var api2_mapper = {
"purchaseorder" : { "filename": "appl/api2/api_purchaseorder.asp", "module": "BES" },
"purchaseorderitem" : { "filename": "appl/api2/api_purchaseorderitem.asp", "module": "BES" },
"messages" : { "filename": "appl/mgt/msg_message.asp", "module": "MSG" },
"generictables" : { "filename": "appl/mgt/mgt_generic.asp", "hidden": true },
"genericselect" : { "filename": "appl/mgt/mgt_generic_select.asp", "hidden": true },
"fclttasks" : { "filename": "appl/mgt/fac_task.asp", "hidden": true },
"notifications" : { "filename": "appl/mgt/fac_notificatie.asp", "hidden": true },
"bestpractices" : { "filename": "appl/mgt/fac_bestpractices.asp", "hidden": true },
"systemtables" : { "filename": "appl/mgt/user_tables.asp", "hidden": true },
"workflowexpressions" : { "filename": "appl/mgt/mld_workflow_expression.asp", "hidden": true } // dit is geen model
}

View File

@@ -372,11 +372,7 @@ api2_rest = {
jsondata["custom_fields"][0]["attachments"][0].datastream = bodyStream;
if (key == 0) // new record
{
var result = model.includes["custom_fields"].model.REST_POST(requestparams, jsondata.custom_fields[0], -1);
var token = result.token;
// Bestandsnaam kan aangepast zijn.
jsondata.custom_fields[0].value = result.jsondata.value;
jsondata.custom_fields[0].attachments[0] = result.jsondata.attachments[0];
var token = model.includes["custom_fields"].model.REST_POST(requestparams, jsondata.custom_fields[0], -1);
var record = { xflexparentkey: -1, propertyid: jsondata.custom_fields[0].propertyid};
var fileparams = { getFile: jsondata["custom_fields"][0].value, api2name: null, tmpfolder: token };
}
@@ -390,7 +386,7 @@ api2_rest = {
var data = model.includes["custom_fields"].model.get_file_info(requestparams, record, fileparams );
api2_rest.deliver(data, /* dummy model */ { record_name: "attachment" }, outputformat, true);
return jsondata; // Attachment data teruggeven. Bestandsnaam kan aangepast zijn.
return;
}
// Geen atachment dus door met de reguliere code
var data = model["REST_" + method](requestparams, jsondata, key);
@@ -407,8 +403,6 @@ api2_rest = {
}
else if (method == "GET")
{
if (outputformat == "csv" || outputformat == "xlsx")
requestparams.filter.nolimit = 1;
var result = model["REST_" + method]( requestparams, null, key );
}
else if (filter.mode == "files")
@@ -489,7 +483,7 @@ api2_rest = {
Response.End;
}
if (format == "html" || format == "json" || format == "table" || format == "csv" || format == "xlsx")
if (format == "html" || format == "json" || format == "table" || format == "csv")
{
var result = { };
if (model.formatted_get)
@@ -616,11 +610,7 @@ api2_rest = {
break;
case "csv":
Response.ContentType = "text/csv";
var str_antwoord = api2_rest.json2csv(single?[resultdata[model.record_name]]:resultdata[model.records_name], model, single);
break;
case "xlsx":
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
var str_antwoord = api2_rest.json2xlsx(single?[resultdata[model.record_name]]:resultdata[model.records_name], model, single);
var str_antwoord = api2_rest.json2csv(resultdata[model.records_name], model, single);
break;
case "table":
Response.ContentType = "text/html";
@@ -706,53 +696,44 @@ api2_rest = {
Response.write(str_antwoord);
},
// Merk op dat (onbedoeld) de tabel-kolommen bepaald worden door de velden in het *eerste* record
// en niet zozeer door het gedefinieerde fields-object
// Ook: verwacht wordt dat de volgorde van velden altijd gelijk is wat JavaScript 'for' niet
// garandeert (maar in de praktijk wel goed gaat)
json2htmltable: function _json2htmltable(data, model, single)
{
var ths = [];
if (!data.length)
return "\n<table>\n</table>"
// Header maken
var ths = [];
for (var fld in data[0])
{
var lbl = fld;
if (fld in model.fields)
lbl = model.fields[fld].label;
else
{
var val = data[0][fld];
if (val && typeof val == "object")
{
if (model.includes && fld in model.includes)
var lbl = model.includes[fld].model.records_title;
else
lbl = fld; // Attachments/flexfiles
}
}
ths.push("<th title='{0}'>{1}</th>".format(safe.htmlattr(lbl), fld));
}
var trs = [];
if (data.length) // Header maken
{
var ths = [];
for (var fld in data[0])
{
var lbl = fld;
if (fld in model.fields)
lbl = model.fields[fld].label;
else
{
var val = data[0][fld];
if (val && typeof val == "object")
{
if (model.includes && fld in model.includes)
var lbl = model.includes[fld].model.records_title;
else
lbl = fld; // Attachments/flexfiles
}
}
ths.push("<th title='{0}'>{1}</th>".format(safe.htmlattr(lbl), fld));
}
trs.push(ths.join(""));
}
for (var i = 0; i < data.length; i++)
{
var rec = data[i];
var tds = [];
for (var fld in data[0]) // Hier dezelfde kolomvolgorde (van eerste record) gebruiken
for (var fld in rec)
{
var cls = "";
if (model.fields[fld] && model.fields[fld].typ.match(/number|float|currency|key/) && !model.fields[fld].foreign)
{
cls = " style='text-align:right'";
}
if (fld in rec)
var val = rec[fld];
else
var val = "";
var val = rec[fld];
var safeval = Server.HTMLEncode(String(val));
if (val === null)
safeval = '&nbsp;';
@@ -763,7 +744,7 @@ api2_rest = {
var naam = val.name||"???";
if (typeof naam == 'object' && naam instanceof Date) // Bij appointment
naam = toISODateTimeString(naam);
safeval = val.id + " <em>(" + safe.html(naam) + ")</em>";
safeval = val.id + " (" + Server.HTMLEncode(naam) + ")";
}
else if (val && typeof val == "object" && model.includes && fld in model.includes)
safeval = api2_rest.json2htmltable(val, model.includes[fld].model, true); // dereference
@@ -785,9 +766,7 @@ api2_rest = {
return "\n<table>\n" + html + "\n</table>";
}
else
return "\n<table style='border-collapse: separate;'>"
+ "\n<thead><tr style='position:sticky;top:0'>" + ths.join("") + "</tr>\n</thead>"
+ "\n<tbody>\n<tr>" + trs.join("</tr>\n<tr>") + "</tr>\n</tbody>\n</table>";
return "\n<table>\n<tr>" + trs.join("</tr>\n<tr>") + "</tr></table>";
},
json2csv: function _json2csv(data, model, single)
@@ -844,148 +823,6 @@ api2_rest = {
return trs.join("\r\n");
},
// Zie ook resultset_table_v2.inc/ResultsetTable.prototype.ProcessAsNativeExcel
json2xlsx: function _json2xlsx(data, model, single)
{
var oExcel = new ActiveXObject("SLNKXLSX.Excel");
var tmpxlsx = "XLSX_" + shared.random(16) +".xlsx"
var oWb = oExcel.workbook_new(shared.tempFolder() + "/" + tmpxlsx, 1); // 1=constant memory
oWb.set_property("author", user.naam());
oWb.set_property("title", model.records_name);
oWb.set_property("comments", "Created with Facilitor v{0}".format(FCLTVersion));
var oWs = oWb.add_worksheet("Sheet1");
var maxlengths = [];
// Header row
oWs.freeze_panes(1, 0);
var col = 0;
for (var fld in data[0])
{
var caption = fld; // Bij API2 beter dan model.field[fld].label omdat het iets meer Machine2Machine is.
if (fld in model.fields) // niet bij includes
{
var tooltip = model.fields[fld].label;
if (tooltip)
oWs.write_comment(0, col, tooltip); // maar wel label in het commentaar
}
var len = oWs.write_string(0, col++, caption, 1); // 1 = bold
maxlengths.push(len);
oWs.set_column_width(i, 8.43 /* LXW_DEF_COL_WIDTH */, 1); // Forceer alvast 'wrap' omdat met constant memory het niet achteraf kan
}
// Nu de rows
for (var row = 0; row < data.length; row++)
{
var i = 0;
var rec = data[row];
var rownum = row + 1;
for (var fld in rec)
{
var field = model.fields[fld];
var val = rec[fld];
if (val == null)
{
i ++;
continue;
}
if (val && typeof val == "object" && "id" in val)
{
var naam = val.name||"???";
//if (typeof naam == 'object' && naam instanceof Date) // Bij appointment
// naam = toISODateTimeString(naam);
val = naam; // TODO: val.id in tooltip?;
field.typ = "varchar";
}
else if (val && typeof val == "object" && model.includes && fld in model.includes)
api2.error(500, "Include={0} not supported with xlsx".format(fld));
else if (val instanceof Array) // attachments array
api2.error(500, "Include={0} not supported with xlsx".format("attachments"));
if (typeof val == "object" && isNaN(val))
{
api2.error(500, "Field '{0}' value is NaN in record {1}".format(fld, row));
}
//if (typeof val == "string")
// field.typ = "varchar";
var len = 0;
//if (typeof val == "string" && inArray(field.typ, ["date", "datetime", "time", "currency", "float", "number"]))
//{
// if (!(this.columns[i].orgContent instanceof Function))
// __DoLog("Vreemd: kolom {0} is string en niet van het type {1}?".format(this.columns[i].caption, this.columns[i].datatype), "#ff0000");
// len = oWs.write_string(rownum, i, val);
//}
//else
switch (field.typ)
{
case "varchar":
case "memo" : len = oWs.write_string(rownum, i, String(val));
break;
case "date" : oWs.write_vardate(rownum, i, new Date(val).getVarDate(), 0); //TODO .midnight() toepassen eindigt in verkeerde tijdzone?
len = 16;
break;
case "datetime": oWs.write_vardate(rownum, i, new Date(val).getVarDate(), 1);
len = 10;
break;
case "time" : // In de database ondersteunen we dit niet maar komt voor bij fac_report
oWs.write_vardate(rownum, i, new Date(val).getVarDate(), 2);
len = 5;
break;
case "currency": oWs.write_number(rownum, i, val, 1);
break;
case "float" : oWs.write_number(rownum, i, val, 1);
break;
case "key":
case "check0":
case "check":
case "number": oWs.write_number(rownum, i, val, 0);
break;
case "processingtime":
if (val["duration"] != null)
val = val["duration"] + " " + (val["unit"]=='U'?L("lcl_mld_hours"):L("lcl_mld_days"));
else
val = "";
len = oWs.write_string(rownum, i, val);
break;
case "html": val = val.replace(/(<([^>]+)>)/ig,""); // strip html
val = val.replace(/\&nbsp\;/ig, " ");// &nbsp; naar spatie;
val = val.replace(/\&amp;\;/ig, "&");// er zijn er nog meer maar dit vind ik genoeg
val = val.replace(/\&lt\;/ig, "<");
val = val.replace(/\&gt\;/ig, ">");
val = val.replace(/\&apos\;/ig, "'>'");
val = val.replace(/\&quot\;/ig, "\"");
// TODO: andere html-entities ook vertalen?
len = oWs.write_string(rownum, i, val);
break;
default: len = oWs.write_string(rownum, i, String(val));
}
if (len > maxlengths[i])
maxlengths[i] = len;
i++;
}
}
for (var i = 0; i < maxlengths.length; i++)
{
if (maxlengths[i] > 8.43 * 10) // LXW_DEF_COL_WIDTH, 8.43 is de default Excel cell width
{
oWs.set_column_width(i, Math.min(maxlengths[i] / 10, 50), 1);
}
}
oWb.workbook_close();
var mime = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
var filename = "Facilitor {0} {1}.xlsx".format(model.records_name, toISODateTimeString(new Date()));
var pcontentdp = "attachment";
Response.AddHeader("content-disposition", pcontentdp + "; filename= \"" + safe.ContentName(filename) + "\"")
StreamFile(shared.tempFolder(), tmpxlsx, { mime: mime ,
pcontentdp: "none", // geen pcontentdp, dat hebben we zelf gedaan
deletefile: __Logging == 0});
},
// TODO: Wanneer attributes gebruiken en wanneer (sub)-elements?
// Streven: data == xml2json(json2xml(data))
json2xml: function _json2xml(data, model, single)

View File

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

View File

@@ -44,5 +44,5 @@
params = flexProps(pModule, pKey, String(pKenmerk_key), pNiveau);
StreamFile(params.AttachPath, pFileName, { mime: "application/octet-stream"});
%><% ASPPAGE_END(); %>
StreamFile(params.AttachPath, pFileName, "application/octet-stream");
%><% ASPPAGE_END(); %>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -70,8 +70,8 @@ function model_appointments()
"_alg_keys" : { dbs: "alg_onrgoed_keys", typ: "key", fnval: afs_alg_onrgoed_keys },
"contact" : { dbs: "bez_afspraak_contact_key", typ: "key", foreign: "prs_perslid", label: L("lcl_vis_contactperson"), track: true},
"reservation": { dbs: "res_rsv_ruimte_key", typ: "key", foreign: "res_rsv_ruimte", label: L("lcl_reservation"), track: true},
"externnr" : { dbs: "bez_afspraak_externnr", typ: "varchar", label: L("extern_nr"), readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) },
"externsyncdate": { dbs: "bez_afspraak_externsyncdate", typ: "datetime", label: L("extern_syncdate"), readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) },
"externnr" : { dbs: "bez_afspraak_externnr", typ: "varchar", label: L("extern_nr"), readonly: !user.has("WEB_FACTAB") },
"externsyncdate": { dbs: "bez_afspraak_externsyncdate", typ: "datetime", label: L("extern_syncdate"), readonly: !user.has("WEB_FACTAB") },
"order" : { dbs: "mld_opdr_key", typ: "key", foreign: "mld_opdr", label: L("lcl_mld_opdr"), track: true}
};
@@ -93,8 +93,8 @@ function model_appointments()
else
{
this.fields["host"] = { dbs: "bez_afspraak_gastheer", typ: "varchar", label: L("lcl_vis_visit"), track: true};
this.fields["phone"] = { dbs: "bez_afspraak_telefoonnr", typ: "varchar", label: L("lcl_phone"), track: true};
}
this.fields["phone"] = { dbs: "bez_afspraak_telefoonnr", typ: "varchar", label: L("lcl_phone"), track: true};
this.list = { columns: ["id", "from", "to"] },
this.includes =
@@ -214,36 +214,6 @@ function model_appointments()
dbfields["action"] = { dbs: "bez_actie_key", typ: "key", val: default_actie };
}
}
// Zet ook de locatie als S("vis_afspraak_onrgoed_uses_keys")=1 en er onrgoed_keys zijn meegegeven.
if (S("vis_afspraak_onrgoed_uses_keys") == 1)
{
if (!jsondata.location)
{
var alg_key = -1;
if (jsondata.room)
alg_key = jsondata.room;
else if (jsondata.floor)
alg_key = jsondata.floor;
else if (jsondata.building)
alg_key = jsondata.building;
if (alg_key > 0) // anders niet meegegeven bij update en/of het is een appointment onder een reservering en er komt nog wel een follow_afspraak
{
var sql = "SELECT MAX(alg_locatie_key) loc_key"
+ " FROM alg_v_allonroerendgoed"
+ " WHERE alg_onroerendgoed_keys = " + alg_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
var loc_key = oRs("loc_key").Value;
dbfields["location"] = { dbs: "alg_locatie_key", typ: "key", foreign: "alg_locatie", val: loc_key};
jsondata.location = loc_key;
}
oRs.Close();
}
}
}
};
this.REST_PUT = function (params, jsondata, the_key) /* update appointment */
@@ -305,13 +275,13 @@ function model_appointments()
this.REST_DELETE = function (params, the_key) /* delete appointment */
{
var this_bez = bez.func_enabled_afspraak(the_key);
user.auth_required_or_abort(this_bez.canDelete);
var wheres = [" bez_afspraak_key = " + the_key];
wheres.push("(bez_afspraak_contact_key = " + user_key // Altijd fe vooralnog
+ " OR bez_afspraak_host_key = " + user_key + ")");
var sql = "DELETE FROM bez_afspraak"
+ " WHERE bez_afspraak_key = " + the_key;
Oracle.Execute(sql);
+ " WHERE " + wheres.join(" AND " );
Oracle.Execute(sql);
// Geen tracking (mogelijk) omdat het record echt is verwijderd
};
}

View File

@@ -73,12 +73,11 @@ function model_aut_client(params)
}*/
}
this.includes = {
"clientpersons": {
"model": new model_aut_client_perslid(),
"joinfield": "autclient"
}
};
this.includes =
{ "clientpersons": { model: new model_aut_client_perslid(),
joinfield: "autclient"
}
};
this.REST_GET = generic_REST_GET(this);
this.REST_POST = generic_REST_POST(this);

View File

@@ -18,7 +18,6 @@ function model_aut_client_perslid(params)
this.autfunction = params.self?false:"WEB_FACFAC";
this.record_title = L("aut_client_perslid");
this.records_title = L("aut_client_perslid_m");
this.defaultIcon = "fa-user-shield";
this.fields = {
"id": {

View File

@@ -23,23 +23,6 @@ function model_aut_idp(params)
this.askfirst = "type";
var sqlteller = "(SELECT (SELECT TO_CHAR(COALESCE(SUM (fac_gui_counter_count), 0)) "
+ " FROM fac_gui_counter "
+" WHERE fac_gui_counter_group = 'IDP_Login' AND fac_gui_counter_refkey = aut_idp.aut_idp_key "
+ " AND fac_gui_counter_date >= TRUNC (SYSDATE)) "
+ " || '/' || "
+ " (SELECT TO_CHAR(COALESCE(SUM (fac_gui_counter_count), 0)) "
+ " FROM fac_gui_counter "
+ " WHERE fac_gui_counter_group = 'IDP_Login' AND fac_gui_counter_refkey = aut_idp.aut_idp_key "
+ " AND fac_gui_counter_date > SYSDATE - 7) "
+ " || '/' || "
+ " (SELECT TO_CHAR(COALESCE(SUM (fac_gui_counter_count), 0)) "
+ " FROM fac_gui_counter "
+ " WHERE fac_gui_counter_group = 'IDP_Login' AND fac_gui_counter_refkey = aut_idp.aut_idp_key "
+ " AND fac_gui_counter_date > SYSDATE - 30) "
+ " FROM DUAL) "
this.fields = {
"id": {
"dbs": "aut_idp_key",
@@ -184,21 +167,14 @@ function model_aut_idp(params)
"label": L("aut_idp_aanmaak"),
"typ": "date",
"readonly": true
},
"usage" : {
"dbs": "dummy",
"label": L("aut_idp_usage"),
typ: "varchar",
sql: sqlteller
}
}
this.includes = {
"idpmappings": {
"model": new model_aut_idp_map(),
"joinfield": "identityprovider",
"enable_update": true
}
};
this.includes =
{"idpmappings": { model: new model_aut_idp_map(),
joinfield: "identityprovider",
enable_update: true
}
};
this.hook_pre_edit = function (obj, fld)
{
@@ -211,7 +187,7 @@ function model_aut_idp(params)
fld_hide = ["samlmetaurl"];
break;
case 5: // saml
fld_hide = "algorithm audience secret timeout duration remoteloginurl samlmetaurl clockskew".split(" ");
fld_hide = "algorithm audience secret timeout duration remoteloginurl remotelogouturl ipfilter ipauto".split(" ");
break;
}
for (var d=0; d<fld_hide.length; d++)

View File

@@ -17,7 +17,6 @@ function model_aut_idp_map(params)
this.autfunction = params.internal?false:"WEB_FACTAB";
this.record_title = L("aut_idp_map");
this.records_title = L("aut_idp_map_m");
this.defaultIcon = "fa-code-branch fa-rotate-270";
this.fields = {
"id": {
@@ -61,7 +60,6 @@ function model_aut_idp_map(params)
+ ";11;" + L("lcl_prs_person_mobile")
+ ";12;" + L("prs_perslid_externid")
+ ";13;" + L("prs_perslid_externid") + " (case insensitive)"
+ ";14;" + L("lcl_prs_person_nr")
// De foreign's
+ ";20;" + L("lcl_prs_person_function")

View File

@@ -17,7 +17,6 @@ function model_aut_sp_map(params)
this.autfunction = params.internal?false:"WEB_FACTAB";
this.record_title = L("aut_sp_map");
this.records_title = L("aut_sp_map_m");
this.defaultIcon = "fa-code-branch fa-rotate-270";
this.fields = {
"id": {

View File

@@ -188,13 +188,13 @@ function model_bes_bestelling()
"dbs": "bes_bestelling_externnr",
"typ": "varchar",
"label": L("extern_nr"),
"readonly": !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR"))
"readonly": !user.has("WEB_FACTAB")
},
"externsyncdate": {
"dbs": "bes_bestelling_externsyncdate",
"typ": "datetime",
"label": L("extern_syncdate"),
"readonly": !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR"))
"readonly": !user.has("WEB_FACTAB")
}
};

View File

@@ -59,7 +59,7 @@ function model_bes_bestelling_item()
"itemgrossprice": {
"dbs": "bes_bestelling_item_brutoprijs",
"typ": "currency",
"label": L("lcl_bes_brutoprijs")
"label": L("lcl_bes_srtprod_prijs_prijs")
},
"itemprice": {
"dbs": "bes_bestelling_item_prijs" ,

View File

@@ -117,13 +117,13 @@ function model_bes_bestelopdr()
"dbs": "bes_bestelopdr_externnr",
"typ": "varchar",
"label": L("extern_nr"),
"readonly": !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR"))
"readonly": !user.has("WEB_FACTAB")
},
"externsyncdate": {
"dbs": "bes_bestelopdr_externsyncdate",
"typ": "datetime",
"label": L("extern_syncdate"),
"readonly": !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR"))
"readonly": !user.has("WEB_FACTAB")
}
};

View File

@@ -71,7 +71,7 @@ function model_bes_bestelopdr_item()
"itemgrossprice": {
"dbs": "bes_bestelopdr_item_brutoprijs",
"typ": "currency",
"label": L("lcl_bes_brutoprijs")
"label": L("lcl_bes_srtprod_prijs_prijs")
},
"received": {
"dbs": "bes_bestelopdr_item_ontvangen",

View File

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

View File

@@ -38,11 +38,6 @@ function model_bes_discipline(disc_key, params)
{ // Ook de autorisatie van de oude discipline kopieren
mgt.clone_authorization(key, org_disc_key);
}
var clone_art = getQParamInt("clone_art", 0) == 1;
if (clone_art)
{ // Ook de autorisatie van de oude discipline kopieren
mgt.clone_articles(key, org_disc_key);
}
}
this.REST_POST = generic_REST_POST(_model_bes_discipline);
@@ -91,6 +86,7 @@ _model_bes_discipline = // Internal only
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": "prs_kostensoort",
"LOVinit": "",
"showtransit": true
},
"costcentremandatory": {
@@ -131,7 +127,7 @@ _model_bes_discipline = // Internal only
"dbs": "ins_discipline_externsyncdate",
"typ": "datetime",
"label": L("extern_syncdate"),
"readonly": !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR"))
"readonly": !user.has("WEB_FACTAB")
}
/* Velden van BES_DISC_PARAMS komen er dynamisch bij */
},

View File

@@ -0,0 +1,70 @@
<% /*
$Revision$
$Id$
File: model_bes_disciplineprod.inc
Description: Vanuit CodeCharge gegenereerd model voor bes_disciplineprod
Context:
Notes:
*/
%>
<%
function model_bes_disciplineprod()
{
this.records_name = "ordercatalogues";
this.record_name = "ordercatalogue";
this.table = "ins_tab_discipline";
this.primary = "ins_discipline_key";
this.autfunction = "WEB_PRDMSU";
this.record_title = L("ins_tab_discipline");
this.records_title = L("ins_tab_discipline_m");
this.fields = {
"id": {
"dbs": "ins_discipline_key",
"label": L("lcl_key"),
"typ": "key",
"required": true,
"seq": "ins_s_ins_discipline_key",
"defaultvalue": null
},
"name": {
"dbs": "ins_discipline_omschrijving",
"label": L("ins_discipline_omschrijving"),
"typ": "varchar",
"required": true,
"filter": "like"
},
"module": {
"dbs": "ins_discipline_module",
"label": L("ins_discipline_module"),
"typ": "varchar",
"hidden_fld": true,
"defaultvalue": "PRD"
},
"remark": {
"dbs": "ins_discipline_opmerking",
"label": L("ins_discipline_opmerking"),
"typ": "memo"
}
};
this.REST_GET = generic_REST_GET(this,
{ "GET": {
wheres: [ "ins_discipline_verwijder IS NULL",
"ins_discipline_module = 'PRD'"
]
}
}
);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this, {});
}
%>

View File

@@ -0,0 +1,50 @@
<% /*
$Revision$
$Id$
File: model_bes_grootheid.inc
Description: Vanuit CodeCharge gegenereerd model voor bes_grootheid
Context:
Notes:
*/
%>
<%
function model_bes_grootheid()
{
this.records_name = "orderunits";
this.record_name = "orderunit";
this.table = "bes_grootheid";
this.primary = "bes_grootheid_key";
this.soft_delete = "bes_grootheid_verwijder";
this.autfunction = "WEB_PRDMSU";
this.record_title = L("bes_grootheid");
this.records_title = L("bes_grootheid_m");
this.fields = {
"id": {
"dbs": "bes_grootheid_key",
"label": L("lcl_key"),
"typ": "key",
"required": true,
"seq": "bes_s_bes_grootheid_key"
},
"name": {
"dbs": "bes_grootheid_naam",
"label": L("bes_grootheid_naam"),
"typ": "varchar",
"required": true
}
};
this.REST_GET = generic_REST_GET(this);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this, {});
}
%>

View File

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

View File

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

View File

@@ -168,6 +168,12 @@ function model_bes_srtdeel(disc_key)
"label": L("lcl_bes_voorraadmax"),
"multiedit": true
},
"product": {
"dbs": "bes_srtprod_key",
"typ": "key",
"foreign": "BES_SRTPROD",
"label": L("lcl_bes_srtprod")
},
"deviationpct": {
"dbs": "bes_srtdeel_margepct",
"typ": "number",
@@ -214,8 +220,7 @@ function model_bes_srtdeel(disc_key)
"foreign": "ins_srtdeel",
"label": L("lcl_bes_link_obj_type"),
"module": "INS",
"binding": 24, // Afdeling 0x8=8 (BIND_AFDELI) + Persoon0x10=16 (BIND_PERSOO).
"infoPointer": { Url: "appl/ins/ins_srtdeel.asp?srtdeel_key=" }
"binding": 24 // Afdeling 0x8=8 (BIND_AFDELI) + Persoon0x10=16 (BIND_PERSOO).
},
"actualprice": {
"dbs": "actualprice",
@@ -227,7 +232,7 @@ function model_bes_srtdeel(disc_key)
"dbs": "ins_tab_discipline.ins_discipline_key",
"typ": "key",
"foreign": {
"tbl": "bes_v_aanwezigdiscipline",
"tbl": "bes_discipline",
"key": "ins_discipline_key",
"desc": "(" + lcl.xsql("ins_discipline_omschrijving", "ins_discipline_key") + ")",
"where": (disc_key > -1 ? "ins_discipline_key = " + disc_key : "")
@@ -259,7 +264,6 @@ function model_bes_srtdeel(disc_key)
"orderbys": [
"ins_discipline_omschrijving",
"bes_srtgroep_omschrijving",
"bes_srtdeel_volgnr",
"bes_srtdeel_nr"
]
}

View File

@@ -74,24 +74,26 @@ function model_bes_srtkenmerk(params)
"mask": 1,
"defaultvalue": 0
},
// {
// "name": "conf",
// "label": L("mgt_kenmerk_systeem_conf"),
// "mask": 4,
// "defaultvalue": 0
// },
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 0
},
{
"name": "overview_req",
"label": L("mgt_kenmerk_systeem_overview_req"),
"mask": 2,
"defaultvalue": 0
},
/*
{
"name": "conf",
"label": L("mgt_kenmerk_systeem_conf"),
"mask": 4,
"defaultvalue": 0
},
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 0
},
*/
{
"name": "overview_pur",
"label": L("mgt_kenmerk_systeem_overview_pur"),
@@ -134,8 +136,8 @@ function model_bes_srtkenmerk(params)
"code": {
"dbs": "bes_srtkenmerk_code",
"typ": "varchar",
"label": L("mgt_srtkenmerk_code"),
"readonly": !user.has("WEB_PRSSYS")
"label": L("lcl_bes_code"),
"readonly": !user.has("WEB_FACTAB")
}
};

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