578 Commits

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

svn path=/Website/branches/v2024.2/; revision=66132
2024-09-04 15:10:35 +00:00
Jos Groot Lipman
12d802390d FCLT#85298 Licentieklanten versie-informatie via helpserver
svn path=/Website/branches/v2024.2/; revision=66065
2024-08-29 08:58:30 +00:00
Erik Groener
84301f1c7c MNNL#73376 Kennisbank-items (gebouwafhankelijk) bij bezoekersafspraak tonen
svn path=/Website/branches/v2024.2/; revision=66029
2024-08-27 07:13:56 +00:00
Marcel Bourseau
539734a54d MARX#83118 Bijlagen in ORG opdracht / (near)realtime opdrachten vanuit Tobias (365)
svn path=/Website/branches/v2024.2/; revision=66012
2024-08-23 15:19:09 +00:00
Arthur Egberink
5ac1653e02 YAXX#84417 -- Ontwikkeling Facilitor.asp om de Facilitor-Facilitor koppeling te ondersteunen
svn path=/Website/branches/v2024.2/; revision=65976
2024-08-21 11:21:06 +00:00
Jos Groot Lipman
b688e37a2d FCLT#85180 fac_refresh_accept_save.asp kan willekeurig bestand overschrijven
svn path=/Website/branches/v2024.2/; revision=65975
2024-08-21 10:29:55 +00:00
Jos Groot Lipman
26cef1b8a1 YAXX#84417 API2 binnenkomende float ook als string "123.4" toestaan
svn path=/Website/branches/v2024.2/; revision=65974
2024-08-21 10:24:26 +00:00
Erik Groener
482a6c315d UWVA#85040 Vraag over kennisbankitem 73376 en locatie/gebouw koppeling in Betaomgeving
svn path=/Website/branches/v2024.2/; revision=65973
2024-08-21 09:46:07 +00:00
Arthur Egberink
65a1dbfe90 YAXX#84417 -- Ontwikkeling Facilitor.asp om de Facilitor-Facilitor koppeling te ondersteunen
svn path=/Website/branches/v2024.2/; revision=65954
2024-08-20 12:45:07 +00:00
Erik Groener
38514ad6fe UWVA#85036 Probleem met verwijderen contractscope. Na opslaan niet verwijderd
svn path=/Website/branches/v2024.2/; revision=65949
2024-08-20 10:17:08 +00:00
Jos Groot Lipman
6c6c28469e PNBR#85147 Foutmelding bij aanmaken object via API2: 'f' is undefined
svn path=/Website/branches/v2024.2/; revision=65938
2024-08-19 11:27:32 +00:00
Jos Groot Lipman
9932163338 NYBU#85072 Probleem bij toevoegen waarden aan tabel CODA_OMS: ORA-00904 ongeldige ID
svn path=/Website/branches/v2024.2/; revision=65886
2024-08-14 09:28:04 +00:00
ce9a9294a3 FCLT#84941 Facturen anonimiseren uitgeschakeld
svn path=/Website/branches/v2024.2/; revision=65781
2024-08-01 11:38:25 +00:00
4d776cd183 HSLE#84929 alias afmeldtextoms -> afmeldtext
svn path=/Website/branches/v2024.2/; revision=65772
2024-08-01 07:31:20 +00:00
ada31b8f1e HSLE#84929 alias afmeldtextoms -> afmeldtext
svn path=/Website/branches/v2024.2/; revision=65771
2024-08-01 07:28:40 +00:00
90ee66d5d6 Release 2024.2 Gold B
svn path=/Website/branches/v2024.2/; revision=65769
2024-07-31 13:31:55 +00:00
Maykel Geerdink
33158d34ec BVB1#84839: Beheerder ziet bloktitels die alleen voor eindgebruikers zijn bedoeld.
svn path=/Website/branches/v2024.2/; revision=65758
2024-07-29 14:37:28 +00:00
Maykel Geerdink
183970a3c7 BVB1#84839: Beheerder ziet bloktitels die alleen voor eindgebruikers zijn bedoeld.
svn path=/Website/branches/v2024.2/; revision=65756
2024-07-29 13:08:50 +00:00
Maykel Geerdink
59a5b5bb7e BVB1#84839: Beheerder ziet bloktitels die alleen voor eindgebruikers zijn bedoeld.
FCLT#84880: MLD: FE-user ziet kenmerken boven de 800 met alleen MLDUSE rechten.

svn path=/Website/branches/v2024.2/; revision=65755
2024-07-29 13:06:39 +00:00
b05ec800b1 MARX#84827 Geen early-exit-tak inschieten als we nog niet hoeven te exit'en
svn path=/Website/branches/v2024.2/; revision=65754
2024-07-29 12:06:41 +00:00
Maykel Geerdink
57e596bcf8 FCLT#84880: MLD: FE-user ziet kenmerken boven de 800 met alleen MLDUSE rechten.
svn path=/Website/branches/v2024.2/; revision=65752
2024-07-29 09:42:33 +00:00
Maykel Geerdink
98c28b703a BVB1#84839: Beheerder ziet bloktitels die alleen voor eindgebruikers zijn bedoeld.
svn path=/Website/branches/v2024.2/; revision=65751
2024-07-29 09:05:45 +00:00
Maykel Geerdink
95be29a44a BVB1#84839: Beheerder ziet bloktitels die alleen voor eindgebruikers zijn bedoeld.
svn path=/Website/branches/v2024.2/; revision=65750
2024-07-29 08:38:05 +00:00
90df193274 FCLT#84879 Bij het checken van dubbele mobile meldingen een niet-verplichte, of verborgen plaats niet meenemen in de sql
svn path=/Website/branches/v2024.2/; revision=65749
2024-07-29 07:54:34 +00:00
15833959b4 FCLT#84873 FINUPD -> FAQUPD
svn path=/Website/branches/v2024.2/; revision=65743
2024-07-26 15:16:45 +00:00
ea433e4da1 WOMD#84870 Floats; komma -> punt
svn path=/Website/branches/v2024.2/; revision=65737
2024-07-26 12:14:59 +00:00
c374867a29 FCLT#84869 vertrouwelijk niet
svn path=/Website/branches/v2024.2/; revision=65734
2024-07-26 11:07:17 +00:00
1a72af6dae FCLT#84869 bestelkenmerksoort via GUI als 'anonimiseren' of 'vertrouwelijk' kunnen instellen
svn path=/Website/branches/v2024.2/; revision=65733
2024-07-26 11:06:06 +00:00
cddd650326 FCLT#84869 factuurkenmerk via GUI als 'anonimiseren' of 'vertrouwelijk' kunnen instellen
svn path=/Website/branches/v2024.2/; revision=65732
2024-07-26 10:52:59 +00:00
db1313d829 VNOG#84773 Aanpassing verplaatst van Trunk -> 2024.2
svn path=/Website/branches/v2024.2/; revision=65727
2024-07-26 07:47:29 +00:00
Maykel Geerdink
67b6f4b9ed BVB1#84839: Beheerder ziet bloktitels die alleen voor eindgebruikers zijn bedoeld.
svn path=/Website/branches/v2024.2/; revision=65723
2024-07-25 13:51:29 +00:00
ca53a4c4bd BLCC#84832 Onzichtbare notities ook in de lijst voor de uitvoerder onzichtbaar
svn path=/Website/branches/v2024.2/; revision=65701
2024-07-24 12:06:21 +00:00
Jos Groot Lipman
fccd0ae756 FCLT#84823 fac_email_settings meer bulk-edit velden
svn path=/Website/branches/v2024.2/; revision=65699
2024-07-24 09:03:09 +00:00
e1963659ad FCLT#84823 'Specifieke kenmerken'-tekst iets minder bold
svn path=/Website/branches/v2024.2/; revision=65696
2024-07-24 08:11:56 +00:00
ed64233555 FCLT#84817 refactoring; oracle resultset op naam ophalen ipv index
svn path=/Website/branches/v2024.2/; revision=65692
2024-07-23 14:53:44 +00:00
dc1f9b5b28 FCLT#84817 spinner is al safe
svn path=/Website/branches/v2024.2/; revision=65691
2024-07-23 14:36:52 +00:00
ccfc53c85c FCLT#84817 +safe.html en scrollIntoView onclick
svn path=/Website/branches/v2024.2/; revision=65688
2024-07-23 12:46:51 +00:00
Maykel Geerdink
08945a6325 WZUV#84793: Foutmelding ORA-00904 in AiAi Log op productie.
svn path=/Website/branches/v2024.2/; revision=65681
2024-07-23 07:48:31 +00:00
Erik Groener
e67a441e7f FCLT#84724 Kopieergeschiedenis behandelteam niet bewerkbaar bij andere meldingskenmerktypes
svn path=/Website/branches/v2024.2/; revision=65645
2024-07-19 08:32:00 +00:00
Jos Groot Lipman
d1eb64733b Release 2024.2 Gold A
svn path=/Website/branches/v2024.2/; revision=65637
2024-07-18 13:17:15 +00:00
Maykel Geerdink
b685609d26 FCLT#84736: Probleem met rechten en zichtbaarheid van kenmerken bij melding.
svn path=/Website/branches/v2024.2/; revision=65636
2024-07-18 13:07:23 +00:00
Jos Groot Lipman
588f00763f FCLT#84555 Nog een CLOB-je als je in een kenmerkdomein mld_melding_omschrijving had gebruikt (zoals DEMO_V_MLD_PROBLEMS)
svn path=/Website/branches/v2024.2/; revision=65635
2024-07-18 12:57:54 +00:00
Maykel Geerdink
14ad7c7014 TWYN#84753: Spoed: Diverse foutmeldingen bij gegevensaanpassing in BCS.
svn path=/Website/branches/v2024.2/; revision=65634
2024-07-18 12:33:08 +00:00
Jos Groot Lipman
242cf179ec MARX#84651 Probleem: MAO-bericht wordt niet verzonden in testomgeving OCB bouw
svn path=/Website/branches/v2024.2/; revision=65633
2024-07-18 12:21:15 +00:00
Jos Groot Lipman
1831686548 MARX#84760 Vraag over ontbrekende facturen in het prefacturenregister
svn path=/Website/branches/v2024.2/; revision=65632
2024-07-18 11:40:02 +00:00
Maykel Geerdink
92908d2f88 VLKC#84644 Kostenregistratie via REST API ontbreekt bij afgemelde opdrachten
svn path=/Website/branches/v2024.2/; revision=65630
2024-07-18 10:56:05 +00:00
Jos Groot Lipman
72d175b33e FCLT#84555 Putorders bij ophalen scheduled rapport/xlsx ook prs_perslid_key_receiver loggen omdat het in die context wordt opgehaald.
svn path=/Website/branches/v2024.2/; revision=65629
2024-07-18 09:48:56 +00:00
Jos Groot Lipman
858e13ed0a UWVA#84694 res_deel_vervaldatum meenemen bij plaatfilter
svn path=/Website/branches/v2024.2/; revision=65626
2024-07-18 08:22:35 +00:00
Erik Groener
fbfde7d07a SKAF#84727 Ruimtebeheer tab ontbreekt voor locaties Boekweit en Kelnarij
svn path=/Website/branches/v2024.2/; revision=65605
2024-07-17 09:37:40 +00:00
Maykel Geerdink
87dc3a4bf8 PZEE#84672: Notitie ontbreekt in mail vanuit objecten en wordt niet gelogd.
svn path=/Website/branches/v2024.2/; revision=65591
2024-07-16 13:10:52 +00:00
Jos Groot Lipman
6ca72609bd FCLT#84555 Nog een CLOB-je
svn path=/Website/branches/v2024.2/; revision=65588
2024-07-16 13:01:24 +00:00
Maykel Geerdink
50e3a0c678 PZEE#84672: Notitie ontbreekt in mail vanuit objecten en wordt niet gelogd.
svn path=/Website/branches/v2024.2/; revision=65585
2024-07-16 11:50:31 +00:00
Maykel Geerdink
4abffc358b PZEE#84672: Notitie ontbreekt in mail vanuit objecten en wordt niet gelogd.
svn path=/Website/branches/v2024.2/; revision=65584
2024-07-16 10:48:58 +00:00
Jos Groot Lipman
53de128500 FCLT#84555 temp/*.xlsx ook opruimen bij wekelijkse cleanup
svn path=/Website/branches/v2024.2/; revision=65580
2024-07-15 15:22:32 +00:00
Jos Groot Lipman
6019257d09 FCLT#84555 temp/*.png ook opruimen bij wekelijkse cleanup
svn path=/Website/branches/v2024.2/; revision=65578
2024-07-15 14:51:06 +00:00
Jos Groot Lipman
3fd2e4346a FCLT#84246 Tellen hoe vaak een identity provider gebruikt wordt: Ook SAML
svn path=/Website/branches/v2024.2/; revision=65577
2024-07-15 14:30:53 +00:00
Jos Groot Lipman
6333abbc54 FCLT#84689 Databasefout ORA-12899: Waarde te groot voor kolom KW1C_TEST.PRS_PERSLID_COLS
svn path=/Website/branches/v2024.2/; revision=65572
2024-07-15 12:58:57 +00:00
Jos Groot Lipman
ed4f63a8f8 FCLT#84555 Thumb resize logging iets verbeterd
svn path=/Website/branches/v2024.2/; revision=65564
2024-07-15 10:54:24 +00:00
Jos Groot Lipman
5e0ec7b55f FMHN#84649 AiAi-melding bij telefoongids
svn path=/Website/branches/v2024.2/; revision=65563
2024-07-15 10:34:04 +00:00
4ec71f3b1b PZEE#84659 disciplineselector en persoonselector als includes toegevoegd
svn path=/Website/branches/v2024.2/; revision=65556
2024-07-12 11:11:33 +00:00
Erik Groener
6a12c77ffd KFNS#84484 81549 Opdracht boven/onder bedrag: moet inclusief grenswaarde
svn path=/Website/branches/v2024.2/; revision=65555
2024-07-12 10:12:31 +00:00
Erik Groener
66b90cece8 BLCC#84579 Geen ruimtebeheer gegevens in Graphics
svn path=/Website/branches/v2024.2/; revision=65554
2024-07-12 09:52:47 +00:00
Erik Groener
c953b0b8d6 KFNS#84484 81549 Opdracht boven/onder bedrag: moet inclusief grenswaarde
svn path=/Website/branches/v2024.2/; revision=65553
2024-07-12 09:27:14 +00:00
9fd75299c1 FCLT#84554 Positionering blok-related-elementen van header naar content
svn path=/Website/branches/v2024.2/; revision=65551
2024-07-12 08:08:36 +00:00
a72c524b2c SGGR#84645 null -> ""
svn path=/Website/branches/v2024.2/; revision=65549
2024-07-12 07:19:15 +00:00
Jos Groot Lipman
7ebb0132f9 FCLT#84246 Tellen hoe vaak een identity provider gebruikt wordt 0/0/0 ipv. //
svn path=/Website/branches/v2024.2/; revision=65547
2024-07-11 16:07:42 +00:00
f92d096c20 LOGC#84615 Actie terug kunnen pakken
svn path=/Website/branches/v2024.2/; revision=65543
2024-07-11 10:17:44 +00:00
d549fc11c5 LOGC#84615 attentieBO - bitje werd er niet goed afgehaald
svn path=/Website/branches/v2024.2/; revision=65542
2024-07-11 09:20:22 +00:00
f947e0908b VNOG#84624 Afleveradres kan nu ook niet verplicht zijn, check specifiek daar op
svn path=/Website/branches/v2024.2/; revision=65541
2024-07-11 07:50:23 +00:00
Marcel Bourseau
a24585ab49 MARX#84616 Fout in MARX API "API_mareon_opdracht.asp": HTTP400 verschijnt niet
svn path=/Website/branches/v2024.2/; revision=65527
2024-07-10 14:15:42 +00:00
38292a31f5 LOGC#84602 Een uitgevinkte checkbox wordt niet meegegeven, dus check voor de default op de aanwezigheid van has_XXX
svn path=/Website/branches/v2024.2/; revision=65517
2024-07-10 10:27:17 +00:00
Maykel Geerdink
af43fb5401 FCLT#84554: Deelmeldingen mobile.
svn path=/Website/branches/v2024.2/; revision=65513
2024-07-10 08:33:14 +00:00
40136a69ce IVET#84599 Verkeerde key-kolom gebruikt voor de vertaling
svn path=/Website/branches/v2024.2/; revision=65512
2024-07-10 08:26:07 +00:00
7da0c7b94c LOGC#84597 Als ik melder ben en de attentie van een melding staat bij FE, dan wil ik dat ik dat zie, ook al ik FOBO ben
svn path=/Website/branches/v2024.2/; revision=65511
2024-07-10 08:06:34 +00:00
7ca711fa0a LOGC#84597 Ook actie verzetten als S(mld_note_hidden_action2FE) aan staat, maar notificeren niet
svn path=/Website/branches/v2024.2/; revision=65510
2024-07-10 07:53:06 +00:00
Jos Groot Lipman
22b4b187e6 CIZN#82871 Kunnen we ingelezen tekeningen met zwarte lijnen tonen
svn path=/Website/branches/v2024.2/; revision=65508
2024-07-10 07:37:25 +00:00
Maykel Geerdink
c977c49ce6 PCHX#84377: Percentage voorwaarde voor herfiattering werkt nog niet helemaal goed.
svn path=/Website/branches/v2024.2/; revision=65507
2024-07-10 07:15:28 +00:00
cde580ac23 KFNS#84485 meldbronnen alfabetisch sorteren
svn path=/Website/branches/v2024.2/; revision=65498
2024-07-09 13:12:18 +00:00
4264fef028 MNNL#84562 Een ander icoontje zodat deze subtabs in deze modus geen spinner krijgen (2/2)
svn path=/Website/branches/v2024.2/; revision=65496
2024-07-09 12:57:12 +00:00
28eec7401f MNNL#84562 Een ander icoontje zodat deze subtabs in deze modus geen spinner krijgen
svn path=/Website/branches/v2024.2/; revision=65495
2024-07-09 12:50:13 +00:00
b8dc9cb834 MNNL#84562 voorkom een reset van de subtab badge bij meerdere resultsets (indien nodig)
svn path=/Website/branches/v2024.2/; revision=65494
2024-07-09 12:31:28 +00:00
Maykel Geerdink
049f2494bb PCHX#82873: Voorwaarde voor herfiattering van opdrachten kunnen instellen.
svn path=/Website/branches/v2024.2/; revision=65493
2024-07-09 11:43:52 +00:00
Maykel Geerdink
3c3d0ee0d7 PCHX#82873: Voorwaarde voor herfiattering van opdrachten kunnen instellen.
FCLT#82594: Melding 'opdelen' in deelmeldingen.

svn path=/Website/branches/v2024.2/; revision=65491
2024-07-09 11:26:39 +00:00
7b9946629e FCLT#84555 'Notificeren' ook bij S(mld_note_hidden_action2FE) mee-togglen als het oogje al aangevinkt is (=de notitie zichtbaar is)
svn path=/Website/branches/v2024.2/; revision=65489
2024-07-09 10:57:40 +00:00
a8cf988445 FCLT#84574 null != "null" en bij het accepteren kijken naar canAccept ipv canAfhandChange
svn path=/Website/branches/v2024.2/; revision=65488
2024-07-09 10:39:43 +00:00
Jos Groot Lipman
a12e0142b6 FCLT#84555 AiAi op API2/reservations door copy-paste foutje
svn path=/Website/branches/v2024.2/; revision=65482
2024-07-09 08:27:37 +00:00
Jos Groot Lipman
40bfd8a7ba FCLT#84555 Nog een CLOB-je
svn path=/Website/branches/v2024.2/; revision=65481
2024-07-09 08:25:58 +00:00
e8b525e9c9 FCLT#84555 -comments
svn path=/Website/branches/v2024.2/; revision=65479
2024-07-09 07:56:49 +00:00
Jos Groot Lipman
cea48bb736 FCLT#84567 AiAi CLOB groepering in rapport
svn path=/Website/branches/v2024.2/; revision=65476
2024-07-09 07:31:49 +00:00
94013785a5 LOGC#84556 Vervolgmeldingen hier uitsluiten
svn path=/Website/branches/v2024.2/; revision=65474
2024-07-08 19:19:20 +00:00
388e0b9ddc FCLT#84557 De personenselector bij 'Ingeplande acties' (job_search.asp?urole=fo) moet niet readonly zijn
svn path=/Website/branches/v2024.2/; revision=65473
2024-07-08 19:03:13 +00:00
935fb3b50d FCLT#84555 Safari support
svn path=/Website/branches/v2024.2/; revision=65472
2024-07-08 18:36:31 +00:00
Jos Groot Lipman
9a72ccf914 Release 2024.2 Gold
svn path=/Website/branches/v2024.2/; revision=65471
2024-07-08 15:05:00 +00:00
Maykel Geerdink
8a237b15fa FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/branches/v2024.2/; revision=65469
2024-07-08 14:02:50 +00:00
Erik Groener
6599fc7acf UWVA#84469 API-Koppeling e-afspraak werkt niet kan locatie niet vinden
svn path=/Website/branches/v2024.2/; revision=65467
2024-07-08 12:05:48 +00:00
9c7d1c771f BLCC#77727 relatieve multi-edit van flexkenmerken ook bij ALG toestaan, alleen bij multi-edit
svn path=/Website/branches/v2024.2/; revision=65465
2024-07-08 11:46:51 +00:00
Maykel Geerdink
5347d3d19c PCHX#82873: Voorwaarde voor herfiattering van opdrachten kunnen instellen.
svn path=/Website/branches/v2024.2/; revision=65464
2024-07-08 11:37:29 +00:00
08e67e3089 FCLT#84475 Ook van radiobuttons de domeinwaarde ophalen ipv de key (3/3)
svn path=/Website/branches/v2024.2/; revision=65462
2024-07-08 11:12:33 +00:00
0810f21858 FCLT#84475 readonly labels niet tonen voor radiobuttons
svn path=/Website/branches/v2024.2/; revision=65460
2024-07-08 09:54:58 +00:00
Jos Groot Lipman
35ce49d8a4 RWSN#84523 CMDB-Import geeft foutmeldingen
svn path=/Website/branches/v2024.2/; revision=65459
2024-07-08 09:24:18 +00:00
727c25eea7 YKPN#84527 Serverside variabele gebruiken
svn path=/Website/branches/v2024.2/; revision=65457
2024-07-08 08:37:46 +00:00
Maykel Geerdink
b8bc64967c PCHX#82873: Voorwaarde voor herfiattering van opdrachten kunnen instellen.
svn path=/Website/branches/v2024.2/; revision=65455
2024-07-08 08:10:46 +00:00
c1a652d8dc FCLT#82594 Punten 6, 7 & 9
svn path=/Website/branches/v2024.2/; revision=65447
2024-07-05 15:30:24 +00:00
407e564d1e FCLT#82594 blokken en secties niet invisible maken in deze functie
svn path=/Website/branches/v2024.2/; revision=65437
2024-07-05 08:57:21 +00:00
Jos Groot Lipman
5e13385473 ARAI#80101 Laatste notitie direct zichtbaar in het meldingenoverzicht
svn path=/Website/branches/v2024.2/; revision=65423
2024-07-03 16:00:08 +00:00
Maykel Geerdink
4144f738ce AAGN#83349: Geen pop-up bij kosten klaar melden.FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/branches/v2024.2/; revision=65421
2024-07-03 15:35:31 +00:00
Jos Groot Lipman
7c4ed27e24 FCLT#84246 scan_users ook last cust-sql laten opleveren
svn path=/Website/branches/v2024.2/; revision=65413
2024-07-03 13:35:39 +00:00
2991c2292f FCLT#84167 Open AI default uitgeschakeld
svn path=/Website/branches/v2024.2/; revision=65410
2024-07-03 11:13:46 +00:00
ac56e334ef FCLT#84436 signature-pad css moet niet de globale body overrulen
svn path=/Website/branches/v2024.2/; revision=65409
2024-07-03 10:18:18 +00:00
e24a6aa28b CSUN#82890 toasters toegevoegd die worden getoond na het opslaan voor in/herplannen, gereedmelden en voltooien
svn path=/Website/branches/v2024.2/; revision=65406
2024-07-03 09:43:50 +00:00
Jos Groot Lipman
c425209751 FCLT#84246 Tellen hoe vaak een identity provider gebruikt wordt nu met lcl ipv vaste tekst
svn path=/Website/branches/v2024.2/; revision=65400
2024-07-03 09:11:28 +00:00
Jos Groot Lipman
875b9a2638 FCLT#84436 Bedrijfadres oAuth scope meegeven bij grant_type=client_credentials
svn path=/Website/branches/v2024.2/; revision=65399
2024-07-03 08:09:46 +00:00
Jos Groot Lipman
cae60bc10c INLO#84349 Bij ophalen van de foto voor een bon deze *nooit* verwijderen
svn path=/Website/branches/v2024.2/; revision=65395
2024-07-03 07:09:26 +00:00
20216e0f78 FCLT#84285 Opmerkingen veld ook kunnen invullen bij Annuleren indien S(mld_afhandeling_restrict_edit) = 1
svn path=/Website/branches/v2024.2/; revision=65392
2024-07-03 06:49:51 +00:00
Jos Groot Lipman
00b032e8f0 Release 2024.2 RC3
svn path=/Website/branches/v2024.2/; revision=65385
2024-07-02 14:37:09 +00:00
Jos Groot Lipman
bced908f82 INLO#84398 Mobile reserveren geen plattegrond ook niks tonen
svn path=/Website/branches/v2024.2/; revision=65384
2024-07-02 14:20:03 +00:00
534a3afe42 EIND#82432 activiteit omschrijving -> mld_onderwerp en readonly 'uitgevoerd' van blok verplaatst
svn path=/Website/branches/v2024.2/; revision=65377
2024-07-02 12:50:48 +00:00
8b3b5a0b4d FCLT#84285 Verifieer indien S("mld_afhandeling_restrict_edit") != 0 dat we gaan, en mogen afmelden bij het invullen van 'afhandeling'
svn path=/Website/branches/v2024.2/; revision=65375
2024-07-02 12:39:40 +00:00
Jos Groot Lipman
c98905d126 KFNS#83533 Provisioning ook voor case-insensitive externId
svn path=/Website/branches/v2024.2/; revision=65373
2024-07-02 12:26:34 +00:00
8d89936a61 FCLT#82594 vinkje + achtergrondkleur in voortgangsoverzicht een vaste breedte+hoogte gegeven
svn path=/Website/branches/v2024.2/; revision=65369
2024-07-02 11:34:31 +00:00
d073376a05 LOGC#84433 tables gewoon 100% breed maken
svn path=/Website/branches/v2024.2/; revision=65367
2024-07-02 10:20:31 +00:00
Jos Groot Lipman
ce9376ed65 FCLT#83940 Wat doet fac_api.fac_import_app_key eigenlijk
svn path=/Website/branches/v2024.2/; revision=65365
2024-07-02 09:35:30 +00:00
ed5b603042 LOGC#84433 tables wel zichtbaar overflowen in de notities
svn path=/Website/branches/v2024.2/; revision=65363
2024-07-02 08:46:36 +00:00
25741591ed DEMO#84394 Geen verwijderde catalogi tonen
svn path=/Website/branches/v2024.2/; revision=65361
2024-07-02 07:42:48 +00:00
96153fe87e FCLT#84285 S("mld_ord_edit_plandates") heeft niets te maken met wat je mag of niet via de API1
svn path=/Website/branches/v2024.2/; revision=65358
2024-07-01 14:22:18 +00:00
Maykel Geerdink
f17d3dbe55 BLCC#84375: AiAi "Object expected" bij kostenklaar melden.
svn path=/Website/branches/v2024.2/; revision=65355
2024-07-01 13:45:58 +00:00
Jos Groot Lipman
af3904dbfb PZEE#75836 Catering bij reserveringen bestellen bij externe leveranciers
svn path=/Website/branches/v2024.2/; revision=65354
2024-07-01 13:12:00 +00:00
Maykel Geerdink
17484f7590 BLCC#84375: AiAi "Object expected" bij kostenklaar melden.
svn path=/Website/branches/v2024.2/; revision=65326
2024-06-27 16:46:53 +00:00
5cb6779dcf FCLT#82594 Unieke kolom-namen zodat je weergave kan customizen
svn path=/Website/branches/v2024.2/; revision=65325
2024-06-27 15:17:10 +00:00
7276120fbd FCLT#84345 conditioneel zichtbare radiobuttons
svn path=/Website/branches/v2024.2/; revision=65323
2024-06-27 14:47:03 +00:00
0465bb9659 FCLT#84345 conditioneel zichtbare radiobuttons
svn path=/Website/branches/v2024.2/; revision=65322
2024-06-27 14:45:18 +00:00
Jos Groot Lipman
9965e8287e FCLT#84376 Mobile catering bestellen zonder afbeeldingen is lelijk
svn path=/Website/branches/v2024.2/; revision=65319
2024-06-27 13:43:44 +00:00
6f306cc416 DJIN#84348 "Dit kan even duren...." onload weghalen
svn path=/Website/branches/v2024.2/; revision=65316
2024-06-27 11:53:10 +00:00
db588c9dfe DJIN#84348 Alles tonen
svn path=/Website/branches/v2024.2/; revision=65315
2024-06-27 11:46:30 +00:00
Jos Groot Lipman
19776aedb6 FCLT#84376 Mobile catering bestellen zonder afbeeldingen is lelijk
svn path=/Website/branches/v2024.2/; revision=65314
2024-06-27 11:46:05 +00:00
Maykel Geerdink
2aea2604ad BLCC#84375: AiAi "Object expected" bij kostenklaar melden.
svn path=/Website/branches/v2024.2/; revision=65313
2024-06-27 11:07:38 +00:00
Jos Groot Lipman
2352bb3bac FCLT#84220 Formulierbewerker preview niet al te moeilijk doen over 'M12345' als key i.p.v. '12345'
svn path=/Website/branches/v2024.2/; revision=65312
2024-06-27 10:26:51 +00:00
Jos Groot Lipman
43931e0fe5 FCLT#84220 AiAi scanner ook scanner.dbcreated laten opleveren zodat je in de monitorpagina dat kunt herkennen
svn path=/Website/branches/v2024.2/; revision=65311
2024-06-27 10:03:00 +00:00
7ae6cef79b VNOG#83813 Toch spinner :)
svn path=/Website/branches/v2024.2/; revision=65310
2024-06-27 10:01:42 +00:00
Jos Groot Lipman
9bfb75f656 VNOG#83813 Zandloper in subtabjes om aan te geven dat daar nog geladen wordt.
svn path=/Website/branches/v2024.2/; revision=65308
2024-06-27 08:01:56 +00:00
Maykel Geerdink
35456a159d FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/branches/v2024.2/; revision=65306
2024-06-27 06:53:31 +00:00
Erik Groener
8b9579040b FCLT#84366 Radiobutton keuze geeft mogelijkheid tot aanpassen alle kenmerktypen
svn path=/Website/branches/v2024.2/; revision=65304
2024-06-27 06:44:22 +00:00
Maykel Geerdink
e92c4e379f FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/branches/v2024.2/; revision=65299
2024-06-26 15:48:20 +00:00
Jos Groot Lipman
3287ba7b46 NOUR#84367 AiAi: ORA-00932: inconsistent datatypes: expected CHAR got NUMBER
svn path=/Website/branches/v2024.2/; revision=65292
2024-06-26 10:44:51 +00:00
Jos Groot Lipman
de169dda48 FCLT#84220 In logfile de TD met de url hard(er) wrappen voor de leesbaarheid
svn path=/Website/branches/v2024.2/; revision=65287
2024-06-26 09:00:16 +00:00
Jos Groot Lipman
42c316eb71 AREO#84359 Strange: access to user.checkAutorisation while no user is known (yet)
svn path=/Website/branches/v2024.2/; revision=65286
2024-06-26 08:18:39 +00:00
Jos Groot Lipman
eb68f4035b UWVA#84332 Voor SAML remotelogouturl weer bewerkbaar maken
svn path=/Website/branches/v2024.2/; revision=65284
2024-06-25 14:54:57 +00:00
Jos Groot Lipman
8a2f346a92 INLO#84349 Bij ophalen van de foto voor een bon deze *nooit* verwijderen
svn path=/Website/branches/v2024.2/; revision=65277
2024-06-25 11:41:26 +00:00
Jos Groot Lipman
a9d9715dc6 KFNS#84337 refreshOnActivate: true ook voor vervolgopdrachten
svn path=/Website/branches/v2024.2/; revision=65271
2024-06-25 07:19:49 +00:00
Jos Groot Lipman
6956aed1cf DJIN#84201 Mogelijk verkeerde bez_afspraak.bez.alg_onrgoed_keys bij wijzigen afspraak via mobiel
svn path=/Website/branches/v2024.2/; revision=65268
2024-06-24 15:09:49 +00:00
Jos Groot Lipman
31b497a922 FCLT#84220 Iets meer logging bij shared.internal_error
svn path=/Website/branches/v2024.2/; revision=65266
2024-06-24 12:31:33 +00:00
Jos Groot Lipman
739b548356 FCLT#84285 Notities via api_opdrsoap.asp worden niet verwerkt
svn path=/Website/branches/v2024.2/; revision=65257
2024-06-20 15:50:17 +00:00
1d3071ce5e EIND#82432 in 2 blokken weergeven
svn path=/Website/branches/v2024.2/; revision=65254
2024-06-20 13:48:07 +00:00
0235e5cc91 FCLT#82594 Als ik 'knownread' heb, dan hoef ik er ook niet hard uit te klappen, toch?
svn path=/Website/branches/v2024.2/; revision=65249
2024-06-20 11:55:22 +00:00
f4d08e57c5 FCLT#84220 busyloading-overlay wel op de juiste body zetten, het kwam voor dat deze juist -onterecht- op de body van de reeds geladen pagina werd gezet
svn path=/Website/branches/v2024.2/; revision=65247
2024-06-20 10:33:11 +00:00
ae80741bcc FCLT#82594 Afgemeld-status-filter ook op de blokstatus van toepassing laten zijn (2/2)
svn path=/Website/branches/v2024.2/; revision=65246
2024-06-20 10:07:11 +00:00
79c604c3bc FCLT#82594 Afgemeld-status-filter ook op de blokstatus van toepassing laten zijn
svn path=/Website/branches/v2024.2/; revision=65242
2024-06-20 09:00:18 +00:00
49b7350446 FCLT#82594 Blokbehandelaren mogen ook de behandelaar van het blok aanpassen
svn path=/Website/branches/v2024.2/; revision=65234
2024-06-19 15:28:13 +00:00
c558cbab41 FCLT#82594 Blokbehandelaren mogen ook notities gebruiken als zijnde behandelaar
svn path=/Website/branches/v2024.2/; revision=65223
2024-06-19 14:05:48 +00:00
3d3b807c19 FCLT#82594 mld.userIsBlokbehandelaar ontdubbeld, kleine sql optimalisatie voor het ophalen vd kenmerken, en show_after_fwd/upd ook als true returnen voor blokbehandelaren
svn path=/Website/branches/v2024.2/; revision=65221
2024-06-19 13:49:55 +00:00
5fd93af7f1 FCLT#82594 Bloktitel met behandelaar ook uitsluiten van de default bon
svn path=/Website/branches/v2024.2/; revision=65220
2024-06-19 12:57:15 +00:00
bfe05b1d26 FCLT#82594 Initiele rechtencheck (meer) rekening laten houden met blokbehandelaren
svn path=/Website/branches/v2024.2/; revision=65218
2024-06-19 11:17:19 +00:00
f6b57f5aba FCLT#82594 - ()
svn path=/Website/branches/v2024.2/; revision=65217
2024-06-19 10:56:33 +00:00
0b5ede29da FCLT#82594 Grotendeelse revert van rev. 65133
svn path=/Website/branches/v2024.2/; revision=65216
2024-06-19 10:51:44 +00:00
Erik Groener
c2c0892122 AAIT#84259 AiAi bij kopieren factuur
svn path=/Website/branches/v2024.2/; revision=65215
2024-06-19 09:53:53 +00:00
Jos Groot Lipman
ab2091828d FCLT#84246 Tellen hoe vaak een identity provider gebruikt wordt
svn path=/Website/branches/v2024.2/; revision=65210
2024-06-19 08:44:50 +00:00
Jos Groot Lipman
a07af38bbc Release 2024.2 RC2
svn path=/Website/branches/v2024.2/; revision=65205
2024-06-18 14:43:50 +00:00
Jos Groot Lipman
f58e82a19a MARX#84168 Bijlagen in de notities bij opdrachten naar de opdrachtgever
svn path=/Website/branches/v2024.2/; revision=65204
2024-06-18 14:40:12 +00:00
Erik Groener
39f68d274f SKAF#84244 AiAi "K"."ALG_KENMERK_NIVEAU": ongeldige ID bij locatie lijst
svn path=/Website/branches/v2024.2/; revision=65201
2024-06-18 13:54:38 +00:00
067cc16a36 FCLT#80862 revert even
svn path=/Website/branches/v2024.2/; revision=65200
2024-06-18 13:53:39 +00:00
Jos Groot Lipman
e44a86e295 FCLT#84246 Tellen hoe vaak een identity provider gebruikt wordt
svn path=/Website/branches/v2024.2/; revision=65194
2024-06-18 12:11:51 +00:00
24fbaf6f60 VNOG#83813 Plusje in de subtab-rij-counter indien oversized & S(inline_actions_mld) & 2 om inline actions in embedded lijsten uit te schakelen
svn path=/Website/branches/v2024.2/; revision=65192
2024-06-18 11:59:24 +00:00
Erik Groener
4e96330a14 KMMO#82687 Kan het veld cyclus toegevoegd worden aan het MJOB Begrotingsscherm
svn path=/Website/branches/v2024.2/; revision=65186
2024-06-18 09:28:41 +00:00
ea093900e5 FCLT#84220 exploding-menu-item-hint in edit mode altijd weergeven, ook voor bestaande menuopties
svn path=/Website/branches/v2024.2/; revision=65184
2024-06-18 09:12:28 +00:00
Erik Groener
34933fc7d2 KMMO#82687 Kan het veld cyclus toegevoegd worden aan het MJOB Begrotingsscherm
svn path=/Website/branches/v2024.2/; revision=65183
2024-06-18 09:06:05 +00:00
Jos Groot Lipman
5d203519f2 WTCA#82951 Rapportage opent niet in Excel maar nieuw tabblad
TWYN#84021 FCLT_3D_DISCIPLINE_KEY icm procedure rapportages werkt niet goed

svn path=/Website/branches/v2024.2/; revision=65182
2024-06-18 08:51:12 +00:00
Jos Groot Lipman
b90f693b35 MARX#84168 Bijlagen in de notities bij opdrachten naar de opdrachtgever
svn path=/Website/branches/v2024.2/; revision=65181
2024-06-18 07:36:29 +00:00
aa175e1ff2 INLO#84199 revert
svn path=/Website/branches/v2024.2/; revision=65179
2024-06-17 15:17:07 +00:00
637fb4c255 FCLT#81775 Includes naar boven
svn path=/Website/branches/v2024.2/; revision=65176
2024-06-17 14:46:59 +00:00
36f18d9701 FCLT#82594 canChange maar even toegevoegd voor nieuwe meldingen
svn path=/Website/branches/v2024.2/; revision=65175
2024-06-17 14:39:28 +00:00
430dbf35f2 FCLT#84220 prevent text-overflow in voorz. planbord
svn path=/Website/branches/v2024.2/; revision=65174
2024-06-17 14:34:54 +00:00
Erik Groener
3226c6c7c5 BLCC#77727 Ondersteuning van relatieve multi-edit voor flexkenmerken tbv indexaties
svn path=/Website/branches/v2024.2/; revision=65171
2024-06-17 13:40:34 +00:00
Jos Groot Lipman
d041712a53 CIZN#82871 tekeningen met zwarte lijnen forceren
svn path=/Website/branches/v2024.2/; revision=65169
2024-06-17 10:43:47 +00:00
Jos Groot Lipman
28909509cb V4.30 23-08-2022
- Visual Studio 2022
  - SZDB#82496 plaatjes verkleinen met Resample2 ipv. Resample
  - CIZN#82871 tekeningen met zwarte lijnen forceren (whipfile.forcePlanColor)

svn path=/Website/branches/v2024.2/; revision=65167
2024-06-17 10:33:27 +00:00
ab0b42b315 INLO#84199 Bij het bepalen vd kenmerkwaardes ook de verwijderdata in acht nemen van kenmerk-soorten en kenmerk-definities
svn path=/Website/branches/v2024.2/; revision=65162
2024-06-17 09:49:00 +00:00
8ad7ed8cf7 FCLT#84220 Deze pagina wordt te snel ongeldig om hem te willen pinnen
svn path=/Website/branches/v2024.2/; revision=65156
2024-06-17 08:49:46 +00:00
fcc8b26f6d FCLT#82594 obj.attributetype kan undefined zijn
svn path=/Website/branches/v2024.2/; revision=65153
2024-06-17 08:05:18 +00:00
94f6725c85 ARBO#84207 Ook bij radiobuttons is een kenmerkdomein verplicht
svn path=/Website/branches/v2024.2/; revision=65150
2024-06-17 07:49:30 +00:00
fb34e32376 UBRH#84211 act_key = -1 geworden ipv null
svn path=/Website/branches/v2024.2/; revision=65142
2024-06-14 14:58:24 +00:00
caf11e611d FCLT#84170 Uitvoerder ziet het notificeer-icoontje bij notities default wel, tenzij S(fac_reserved_number2) & 2, dan -default- wel
svn path=/Website/branches/v2024.2/; revision=65141
2024-06-14 14:23:19 +00:00
4970af77d2 FCLT#84208 mayberequiredborder gewoon dezelfde kleur als requiredborder, maar dan met een dotted border-style
svn path=/Website/branches/v2024.2/; revision=65140
2024-06-14 14:21:35 +00:00
4c9b38fa87 AREO#84204 fcltmobile werd op false gezet want "0" == falsy .. Daardoor werkte de FcltMgr.confirm niet goed
svn path=/Website/branches/v2024.2/; revision=65138
2024-06-14 10:08:36 +00:00
Erik Groener
0367c4c306 MNNL#73376 Kennisbank-items (gebouwafhankelijk) bij bezoekersafspraak tonen
svn path=/Website/branches/v2024.2/; revision=65137
2024-06-14 10:04:48 +00:00
Erik Groener
1acb0206d3 FCLT#84197 AiAi op mld_meldbron
svn path=/Website/branches/v2024.2/; revision=65136
2024-06-14 07:42:15 +00:00
Maykel Geerdink
450c52d4e1 FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/branches/v2024.2/; revision=65133
2024-06-13 18:17:42 +00:00
d6b3b742d3 TAYL#80979 zichtbaarheid en editability obv rechten
svn path=/Website/branches/v2024.2/; revision=65129
2024-06-13 13:44:46 +00:00
03f52e9cf8 TAYL#80979 zichtbaarheid en editability obv rechten
svn path=/Website/branches/v2024.2/; revision=65128
2024-06-13 13:44:18 +00:00
45abb8c097 TAYL#80979 zichtbaarheid en editability obv rechten
svn path=/Website/branches/v2024.2/; revision=65127
2024-06-13 13:41:07 +00:00
c01f158561 FCLT#82448 mobileheaderimage is niet meer in gebruik
svn path=/Website/branches/v2024.2/; revision=65125
2024-06-13 12:18:29 +00:00
Jos Groot Lipman
b9e502f3b8 Recordsetjes sluiten
svn path=/Website/branches/v2024.2/; revision=65121
2024-06-13 11:06:57 +00:00
Jos Groot Lipman
e0548f1aeb TWYN#84021 FCLT_3D_DISCIPLINE_KEY icm gestylde rapportages werkt niet goed
svn path=/Website/branches/v2024.2/; revision=65120
2024-06-13 11:05:38 +00:00
Erik Groener
0c5fbf5b14 KW1C#84122 Tabblad ruimtebeheer in Graphics toont onjuist ruimtegebruik
svn path=/Website/branches/v2024.2/; revision=65118
2024-06-13 10:34:49 +00:00
a959563ecd Branch 2024.2
svn path=/Website/branches/v2024.2/; revision=65115
2024-06-13 09:48:18 +00:00
Maykel Geerdink
e1ad760712 FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=65113
2024-06-13 09:39:12 +00:00
Erik Groener
9083df01ae KW1C#84122 Tabblad ruimtebeheer in Graphics toont onjuist ruimtegebruik
svn path=/Website/trunk/; revision=65112
2024-06-13 09:37:03 +00:00
Maykel Geerdink
c465776bea FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=65107
2024-06-13 08:40:04 +00:00
Jos Groot Lipman
48b284be22 FCLT#84119 AiAi op UDR rapport op meldingen (CLOB)
svn path=/Website/trunk/; revision=65106
2024-06-13 08:29:14 +00:00
Erik Groener
9acb577b69 BAMG#83299 Wens tot veranderen einddatum - automatisch verlengen
svn path=/Website/trunk/; revision=65105
2024-06-13 08:04:14 +00:00
Maykel Geerdink
99d7d3b9f8 AAGN#84160: Uitvoeringsconsole de geaccordeerde taken ter uitvoering brengen geeft AiAi.
svn path=/Website/trunk/; revision=65101
2024-06-12 15:26:17 +00:00
e3edda78e5 MARX#84154 S("mld_opdr_actiecode") == 2 ondersteunen; gelijk aan == 1, maar niet met notities te togglen
svn path=/Website/trunk/; revision=65099
2024-06-12 15:03:29 +00:00
6906808481 FCLT#84170 Uitvoerder notificeert de BO default niet, tenzij S(fac_reserved_number2) == 1, dan -default- wel
svn path=/Website/trunk/; revision=65098
2024-06-12 14:36:45 +00:00
3d37d4a6db FCLT#84165 #82825 reverted en de kolom 'afhandeling' onvoorwaardelijk (ook) tonen bij FOBO-overzichten, in aanvulling op het MI-overzicht, waar deze al stond
svn path=/Website/trunk/; revision=65094
2024-06-12 13:57:27 +00:00
fa1cb8134c FCLT#84161 AI module tijdelijk gratis
svn path=/Website/trunk/; revision=65093
2024-06-12 13:24:24 +00:00
5a588ff079 PNBR#84147 De ruimte <-> activiteit - check moet alleen uitgevoerd worden als catalogi ook daadwerkelijk meespelen (restype == R)
svn path=/Website/trunk/; revision=65086
2024-06-12 10:01:42 +00:00
Jos Groot Lipman
878d031873 FCLT#82420 Iet verbeterde logging
svn path=/Website/trunk/; revision=65085
2024-06-12 07:56:43 +00:00
Erik Groener
19c900f3b6 FCLT#84133 AiAi op GUI counter bij registeren mobile
svn path=/Website/trunk/; revision=65084
2024-06-12 07:34:15 +00:00
71d4ee4aed FMHN#81574 2024.2 -> 2024.3
svn path=/Website/trunk/; revision=65083
2024-06-12 07:23:45 +00:00
Rik Hassing
bf69384db3 Ticket FMHN#81574 Add check to only show selector when parkingspace is available.
svn path=/Website/trunk/; revision=65082
2024-06-12 07:06:07 +00:00
Jos Groot Lipman
3928aa7453 VNOG#84140 Thumbnail (her)bepaling robuuster
svn path=/Website/trunk/; revision=65079
2024-06-11 15:05:38 +00:00
Erik Groener
917e9e72c3 TWYN#83972 dubbele codering
svn path=/Website/trunk/; revision=65078
2024-06-11 14:20:02 +00:00
Erik Groener
8114619b45 INLO#83701 api_mldsoap maakt nog geen standaard kostenplaats aan op de nieuwe melding
svn path=/Website/trunk/; revision=65077
2024-06-11 14:06:58 +00:00
Erik Groener
7aef3c72bd INLO#83701 api_mldsoap maakt nog geen standaard kostenplaats aan op de nieuwe melding
svn path=/Website/trunk/; revision=65076
2024-06-11 13:32:26 +00:00
Jos Groot Lipman
6309ef8ed6 CSUN#84118 Rapportages inplannen beter 'preferdefaultfilters'
svn path=/Website/trunk/; revision=65073
2024-06-11 09:18:46 +00:00
Jos Groot Lipman
67d3ab7fcd FCLT#84119 AiAi op UDR rapport op meldingen
svn path=/Website/trunk/; revision=65072
2024-06-11 08:28:44 +00:00
dfc9e64811 FCLT#80553 Ook notities van verwijderde personen meenemen in de AI-prompts voor afmeldteksten
svn path=/Website/trunk/; revision=65071
2024-06-11 07:33:37 +00:00
Erik Groener
530e54ff0d TAYL#80979 Eigen Objecten zichtbaar in ins_list.asp
svn path=/Website/trunk/; revision=65070
2024-06-11 07:10:35 +00:00
cff3913033 FCLT#82594 Blokken in de lijst vlnr ordenen op volgnr
svn path=/Website/trunk/; revision=65068
2024-06-10 15:36:59 +00:00
b5e548a77d FCLT#82594 Voortgang afronden op 2 decimalen
svn path=/Website/trunk/; revision=65067
2024-06-10 15:11:00 +00:00
Jos Groot Lipman
d09603750c Release 2024.2 RC1
svn path=/Website/trunk/; revision=65066
2024-06-10 15:06:49 +00:00
208640b8b5 WDKA#80394 underscore moet niet escaped worden in regex
svn path=/Website/trunk/; revision=65065
2024-06-10 14:49:42 +00:00
09fa322cc3 FCLT#80862 Meer feedback meer beter
svn path=/Website/trunk/; revision=65064
2024-06-10 14:47:36 +00:00
1574b089b2 WDKA#80394 bugfix bij flex expressie icm radiobuttons; de nameprefix van radiobuttons werd verkeerd bepaald omdat ik die een (unieke) postfix heb gegeven, dat nu aangepast
FCLT#82594 Bij nieuwe meldingen moet de mld_kenmerkblokmelding niet meege-queried worden.

svn path=/Website/trunk/; revision=65063
2024-06-10 14:46:13 +00:00
Erik Groener
abd2db00cf LOGC#80205 Multi-edit voor flexkenmerken bij meldingen mogelijk maken
svn path=/Website/trunk/; revision=65062
2024-06-10 13:55:43 +00:00
Maykel Geerdink
9f6c962db9 FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=65061
2024-06-10 13:47:35 +00:00
Maykel Geerdink
b73f2ec2d5 PCHX#82873: Voorwaarde voor herfiattering van opdrachten kunnen instellen.
svn path=/Website/trunk/; revision=65060
2024-06-10 13:43:23 +00:00
3e56d9141f BLCC#83389 Kleine refactoring
svn path=/Website/trunk/; revision=65058
2024-06-10 13:21:48 +00:00
072774e0a0 BLCC#83389 Kleine refactoring
svn path=/Website/trunk/; revision=65057
2024-06-10 13:15:19 +00:00
Erik Groener
fb1f037024 BLCC#83206 Contactpersoon opdracht wijzigen door leverancier (EXTORD)
svn path=/Website/trunk/; revision=65056
2024-06-10 13:07:22 +00:00
Erik Groener
4df55d1576 MNNL#73376 Kennisbank-items (gebouwafhankelijk) bij bezoekersafspraak tonen
svn path=/Website/trunk/; revision=65055
2024-06-10 12:59:03 +00:00
82ef157925 FCLT#82594 styling
svn path=/Website/trunk/; revision=65054
2024-06-10 12:56:11 +00:00
Rik Hassing
22f1228106 BLCC#83389 Reset dialect when refering to lcl_complain and then set previous dialect back
svn path=/Website/trunk/; revision=65053
2024-06-10 12:40:12 +00:00
Rik Hassing
b14f083819 BLCC#83389 Add get_dialect function, add force_recache parameter as optional parameter to set_dialect.
svn path=/Website/trunk/; revision=65052
2024-06-10 12:38:01 +00:00
Jos Groot Lipman
82875b00b0 Merge 2024.1 Gold D patches
svn path=/Website/trunk/; revision=65051
2024-06-10 12:05:24 +00:00
Jos Groot Lipman
11f9d45ac1 MARX#82611 API errors vaker als 400 status
svn path=/Website/trunk/; revision=65050
2024-06-10 12:00:14 +00:00
Erik Groener
e2d2d6ed4b TWYN#83949 niet kunnen verwijderen kostensoortgroepen
svn path=/Website/trunk/; revision=65040
2024-06-10 08:08:49 +00:00
Maykel Geerdink
f7925aaa84 FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=65038
2024-06-10 07:04:28 +00:00
600c87d32a WDKA#80394 In multi-edit modus willen we dit als listbox renderen
svn path=/Website/trunk/; revision=65034
2024-06-07 14:56:50 +00:00
8c8f9498b8 WDKA#80394 Achter het kenmerkfilter willen we dit als listbox renderen
svn path=/Website/trunk/; revision=65033
2024-06-07 14:54:20 +00:00
d37b30b31b WDKA#80394 kenmerktype Referentie (radio)
svn path=/Website/trunk/; revision=65031
2024-06-07 14:47:10 +00:00
Erik Groener
f87e498ffc TAYL#80979 Eigen Objecten zichtbaar in ins_list.asp
svn path=/Website/trunk/; revision=65026
2024-06-07 10:14:09 +00:00
ac9c958ae3 VNOG#83910 rowActionEnabler moet ook gedefinieerd worden bij de params die worden meegegeven aan de ResultsetTable
svn path=/Website/trunk/; revision=65025
2024-06-07 10:09:01 +00:00
c4574d3a21 BAUS#80119 AiAi voorkomen als er helemaal geen Zelfservice items bestaan
svn path=/Website/trunk/; revision=65024
2024-06-07 09:59:54 +00:00
a283710778 VNOG#84010 Popup's veilig en (in geval van printen) freeze-vrij openen
svn path=/Website/trunk/; revision=65021
2024-06-07 09:04:21 +00:00
Ruud Lipper
d8a4d47d61 PNBR#84081 kennisbankcatalogus aanpassen
svn path=/Website/trunk/; revision=65019
2024-06-06 14:20:54 +00:00
Rik Hassing
e20bb60562 FCLT#83387 Replace fac_reserved_number1 with mld_instemmer_self.
svn path=/Website/trunk/; revision=65018
2024-06-06 13:57:51 +00:00
Jos Groot Lipman
8e219ebc78 BLCC#80176 Aanpassen visuele weergave selectie Graphics
svn path=/Website/trunk/; revision=65011
2024-06-06 11:12:22 +00:00
a7b360a355 BAUS#80119 Geen leeg Zelfservice tabje tonen en sla een pinned tab altijd op met menu_level = 2
svn path=/Website/trunk/; revision=65009
2024-06-06 09:58:06 +00:00
Erik Groener
b4999bcf6e MNNL#73376 Kennisbank-items (gebouwafhankelijk) bij bezoekersafspraak tonen
svn path=/Website/trunk/; revision=65008
2024-06-06 09:56:25 +00:00
Erik Groener
15af627e0c BLCC#83206 Contactpersoon opdracht wijzigen door leverancier (EXTORD)
svn path=/Website/trunk/; revision=65007
2024-06-06 09:31:45 +00:00
Erik Groener
fce9dac5cf HSLE#83085 AiAi op Mail2Melding bijlage toevoegen
svn path=/Website/trunk/; revision=65003
2024-06-06 08:24:09 +00:00
4e623ae1cc VNOG#83819 INSERT-en in dezelfde COMMIT (BEGIN-END) als de check_fail_sql, anders wordt er niet op tijd ge-'fail'ed
svn path=/Website/trunk/; revision=64998
2024-06-05 15:47:52 +00:00
Jos Groot Lipman
f4f51cfb8a FCLT#83037 Verify Best Practices via API2
svn path=/Website/trunk/; revision=64997
2024-06-05 14:57:03 +00:00
Maykel Geerdink
3149e46091 FCLT#82594: Melding 'opdelen' in deelmeldingen.
BLCC#83389: Incidentmelding moet standaard onderwerp "incidentmelding".

svn path=/Website/trunk/; revision=64996
2024-06-05 14:54:49 +00:00
Jos Groot Lipman
b2bd61b50d MNNL#75606 Inconsistentie in de labelnamen bij terminologie vakgroeptype en opdrachttype
svn path=/Website/trunk/; revision=64993
2024-06-05 13:05:12 +00:00
Erik Groener
964c4f4343 MNNL#73376 Kennisbank-items (gebouwafhankelijk) bij bezoekersafspraak tonen
svn path=/Website/trunk/; revision=64991
2024-06-05 12:10:36 +00:00
Maykel Geerdink
e280492bf3 WOMD#83948: Hoe te indexeren via de MJOB console / multi wijzigen?
svn path=/Website/trunk/; revision=64978
2024-06-04 16:44:57 +00:00
Jos Groot Lipman
1633b293b1 Merge 2024.1 Gold D patches
svn path=/Website/trunk/; revision=64977
2024-06-04 16:26:55 +00:00
Erik Groener
ea31003a00 MNNL#73376 Kennisbank-items (gebouwafhankelijk) bij bezoekersafspraak tonen
svn path=/Website/trunk/; revision=64973
2024-06-04 14:55:52 +00:00
Jos Groot Lipman
e09409ae28 Merge 2024.1 Gold D patches
svn path=/Website/trunk/; revision=64972
2024-06-04 14:50:17 +00:00
Rik Hassing
51d45aca6d FCLT#80863 Mobile selectors buiten beeld
svn path=/Website/trunk/; revision=64967
2024-06-04 13:23:10 +00:00
5dbcc847e9 VNOG#84010 interne schermen met naam openen
svn path=/Website/trunk/; revision=64966
2024-06-04 12:52:40 +00:00
Maykel Geerdink
6778d89a1d AAIT#81519: Vervangers tijdens goedkeuren - 81261 - terugdraaien.
svn path=/Website/trunk/; revision=64965
2024-06-04 12:50:39 +00:00
a35cad6981 FCLT#82420 spinner timers wel verwijderen onload
svn path=/Website/trunk/; revision=64959
2024-06-04 07:56:01 +00:00
Erik Groener
e4c2b76a2a MNNL#73376 Kennisbank-items (gebouwafhankelijk) bij bezoekersafspraak tonen
svn path=/Website/trunk/; revision=64958
2024-06-04 07:41:35 +00:00
160cd87b5d WDKA#80394 kenmerktype [B]erekening referenties verwijderen + comment met documentatie toegevoegd (ter 'vervanging' van de 'documentatie' in de constraints)
svn path=/Website/trunk/; revision=64953
2024-06-03 14:47:17 +00:00
4fbad01bb8 FCLT#81775 De substatus 'actie bij BO' alleen tonen als S(mld_opdr_actiecode) == 1 (in lijst alsmede de detailview)
svn path=/Website/trunk/; revision=64952
2024-06-03 14:35:21 +00:00
de60357b71 VNOG#83722 vervolgmeldingen-subtabje ook verversen 'onactivate'
svn path=/Website/trunk/; revision=64951
2024-06-03 14:32:01 +00:00
Jos Groot Lipman
d6ff21f1b3 FCLT#83677 SCIM koppeling bearer token verlopen
svn path=/Website/trunk/; revision=64950
2024-06-03 14:23:36 +00:00
Jos Groot Lipman
c31972041e FCLT#83677 SCIM koppeling bearer token verlopen
svn path=/Website/trunk/; revision=64949
2024-06-03 14:17:12 +00:00
Jos Groot Lipman
f89b233031 FCLT#83832 meldingsomschrijving van CHAR 4000 naar CLOB 32767
svn path=/Website/trunk/; revision=64948
2024-06-03 13:50:44 +00:00
50436b8fad FCLT#82420 modal-spinner pas na 2s delay
svn path=/Website/trunk/; revision=64944
2024-06-03 13:12:36 +00:00
178db32019 FCLT#80125 mobilefontfamily toegevoegd, met als default waarde leeg, waardoor deze terugvalt op de desktop font-family
svn path=/Website/trunk/; revision=64942
2024-06-03 12:32:55 +00:00
c5cf1816a4 FCLT#81775 Geen 'Backoffice/opdrachtgever'-vinkjes voor de Uitvoerder als deze niet meedoet in het verhaal (uitgevinkt is)
svn path=/Website/trunk/; revision=64939
2024-06-03 10:03:56 +00:00
fb7653c7d9 FCLT#80553 bugfix
svn path=/Website/trunk/; revision=64929
2024-05-31 13:32:15 +00:00
e8cb5a0997 FCLT#81775 mobile ook
svn path=/Website/trunk/; revision=64925
2024-05-31 11:17:48 +00:00
a1a1995918 FCLT#81775 Communicatie vanuit FE naar UITV ook toestaan als 'Behandelaar' is uitgevinkt bij de stdmelding
svn path=/Website/trunk/; revision=64924
2024-05-31 10:54:02 +00:00
Erik Groener
8c25ee31b9 FCLT#82157 Herkomst van de melding
svn path=/Website/trunk/; revision=64920
2024-05-31 07:26:05 +00:00
Erik Groener
31b90fba81 FCLT#82157 Herkomst van de melding
svn path=/Website/trunk/; revision=64919
2024-05-31 07:19:35 +00:00
5c0558dd40 FCLT#81775 lcl's; In de context van OPDR; behandelaar -> opdrachtgever
svn path=/Website/trunk/; revision=64914
2024-05-30 14:41:24 +00:00
456b51e1ae FCLT#82594 Spatie weggevallen
svn path=/Website/trunk/; revision=64912
2024-05-30 14:18:53 +00:00
Jos Groot Lipman
089a278f15 PZEE#75836 Catering bij reserveringen bestellen bij externe leveranciers
svn path=/Website/trunk/; revision=64911
2024-05-30 13:53:18 +00:00
cf03e4cef8 VNOG#83741 Afleveradres-veld ook aan mobile toegevoegd
svn path=/Website/trunk/; revision=64908
2024-05-30 13:29:22 +00:00
53bc9bc950 FCLT#80862 Hier ook
svn path=/Website/trunk/; revision=64907
2024-05-30 12:52:53 +00:00
Jos Groot Lipman
78a81f7c78 PZEE#75836 Catering bij reserveringen bestellen bij externe leveranciers
svn path=/Website/trunk/; revision=64905
2024-05-30 12:32:46 +00:00
Jos Groot Lipman
a839fb2247 FCLT#83973 Eenvoudige notificaties toch ook uitgebreidere body ondersteunen
svn path=/Website/trunk/; revision=64903
2024-05-30 11:57:57 +00:00
e46290cd7a VOLK#82201 Ook afspraken kunnen verwijderen via API2 als je niet zelf contactpersoon/gastheer bent (gewoon als canDelete = true)
svn path=/Website/trunk/; revision=64901
2024-05-30 11:17:06 +00:00
Erik Groener
5276c717df FCLT#82157 Herkomst van de melding
svn path=/Website/trunk/; revision=64900
2024-05-30 10:22:09 +00:00
25cdfd6de1 FCLT#80553 Puntje op de
svn path=/Website/trunk/; revision=64897
2024-05-30 09:42:54 +00:00
90f46958b2 FCLT#83969 Niet naar start-/vervaldata kijken als het niet om een ruimte-reservering gaat
svn path=/Website/trunk/; revision=64896
2024-05-30 09:42:02 +00:00
288ebbf58e FCLT#80553 Aantal OpenAI requests en totale token gebruik per dag per klant bijhouden in fac_gui_counter
svn path=/Website/trunk/; revision=64895
2024-05-30 09:26:35 +00:00
Erik Groener
cabda7944a FCLT#82157 Herkomst van de melding
svn path=/Website/trunk/; revision=64894
2024-05-30 09:25:11 +00:00
Jos Groot Lipman
63f6eb3769 PZEE#75836 Catering bij reserveringen bestellen bij externe leveranciers
svn path=/Website/trunk/; revision=64892
2024-05-30 08:52:07 +00:00
Erik Groener
7843cd2ed0 YASK#83367 De POST functie voert geen controle uit op de reservering
svn path=/Website/trunk/; revision=64889
2024-05-30 07:29:34 +00:00
887e0b0b3f FCLT#82157 Herkomst van de melding - restpuntjes
svn path=/Website/trunk/; revision=64885
2024-05-29 15:53:31 +00:00
Jos Groot Lipman
cd96d00b09 FCLT#82420 Putorders expliciet missing password detecteren, anders vage 'Type mismatch'
svn path=/Website/trunk/; revision=64884
2024-05-29 15:49:31 +00:00
Jos Groot Lipman
6463c3b4c8 PZEE#75836 Catering bij reserveringen bestellen bij externe leveranciers
svn path=/Website/trunk/; revision=64883
2024-05-29 15:48:01 +00:00
73af336ddd NOUR#81853 Taken-subtab bij Object verversen na uitvoeren
VNOG#83722 Opdrachten-subtab & bestellingen-subtab bij Melding verversen na (main-)tab-wissel (bijv. na het maken van een opdracht).
IVET#80918 Opdrachten-subtab bij Melding verversen na (main-)tab-wissel (bijv. na het maken van een opdracht).

svn path=/Website/trunk/; revision=64881
2024-05-29 15:10:42 +00:00
Erik Groener
5a93da9b22 FCLT#82157 Herkomst van de melding
svn path=/Website/trunk/; revision=64879
2024-05-29 14:05:00 +00:00
6c585a5a69 NOUR#81846 Bij de personensuggest de huidige waarde weglaten uit de gesuggereerde resultaten
svn path=/Website/trunk/; revision=64878
2024-05-29 14:03:55 +00:00
03f0d5a859 FCLT#80974 Sorteren ook bij onvolledige resultsets toestaan
svn path=/Website/trunk/; revision=64877
2024-05-29 13:33:24 +00:00
c5e82293f8 TAYL#83009 dirty werkplekken (rsv_delen & rsv_artikelen) ook tonen bij FE & FO
svn path=/Website/trunk/; revision=64875
2024-05-29 12:47:11 +00:00
c9a4cebce7 VRTW#80244 data-ajax='false'
svn path=/Website/trunk/; revision=64870
2024-05-29 10:20:13 +00:00
Erik Groener
5490d92e86 YASK#83367 De POST functie voert geen controle uit op de reservering
svn path=/Website/trunk/; revision=64869
2024-05-29 10:19:35 +00:00
c1d5effd70 VRTW#80244 Punt 1 (2/2)
svn path=/Website/trunk/; revision=64866
2024-05-29 09:51:59 +00:00
994a6dabd7 FCLT#82420 uitlijning labeltje
svn path=/Website/trunk/; revision=64865
2024-05-29 08:45:47 +00:00
247345a31b BAUS#81220 +listfunction
svn path=/Website/trunk/; revision=64864
2024-05-29 07:58:17 +00:00
d6728e53b3 VRTW#80244 Punt 1
svn path=/Website/trunk/; revision=64857
2024-05-28 20:43:41 +00:00
Jos Groot Lipman
e774a40b51 MARX#82611 Is het mogelijk om bij verwerkingsfout een HTTP4xx code wordt teruggestuurd
svn path=/Website/trunk/; revision=64855
2024-05-28 14:52:57 +00:00
Peter Feij
69b08918f2 FCLT#82642 Gefixt dat import andere (betere) tracking deed dan de GUI
svn path=/Website/trunk/; revision=64852
2024-05-28 14:13:04 +00:00
Jos Groot Lipman
0b34f6a5ec FCLT#83940 Wat doet fac_api.fac_import_app_key eigenlijk
MARX#82611 Is het mogelijk om bij verwerkingsfout een HTTP4xx code wordt teruggestuurd

svn path=/Website/trunk/; revision=64850
2024-05-28 14:06:32 +00:00
Peter Feij
95c94aaa3d FCLT#80125 andere card en frame-achtergrond enzo
svn path=/Website/trunk/; revision=64843
2024-05-28 08:23:25 +00:00
Erik Groener
414fb4b006 BAMG#81549 Filtering op kosten bij 'alle opdrachten '
svn path=/Website/trunk/; revision=64842
2024-05-28 08:22:45 +00:00
Peter Feij
002f030aee FCLT#80125 andere card en frame-achtergrond
FCLT#80553 AI-ondersteuning bij afmeldteksten

svn path=/Website/trunk/; revision=64841
2024-05-28 08:20:24 +00:00
Erik Groener
91ecf371e7 BAMG#81549 Filtering op kosten bij 'alle opdrachten '
svn path=/Website/trunk/; revision=64840
2024-05-28 07:52:46 +00:00
d723ea3484 FCLT#82420 Titel niet overschrijden als deze al bestaat vanuit het menu
svn path=/Website/trunk/; revision=64839
2024-05-28 07:44:35 +00:00
e832b9d4be FCLT#82420 Titel niet overschrijden als deze al bestaat vanuit het menu
svn path=/Website/trunk/; revision=64838
2024-05-28 07:42:43 +00:00
ae6d1a22fe FCLT#80553 Geen afmeldteksten & kennisbankitems met AI genereren als er geen notities bij een melding zijn gemaakt
svn path=/Website/trunk/; revision=64828
2024-05-27 09:52:13 +00:00
Erik Groener
fec4e06458 TAYL#80979 Eigen Objecten zichtbaar in ins_list.asp
svn path=/Website/trunk/; revision=64827
2024-05-27 09:32:16 +00:00
c245df1f7a FCLT#80553 Afmeldteksten met Ajax ophalen zodat ze het laden vd pagina niet vertragen + layout
svn path=/Website/trunk/; revision=64826
2024-05-27 09:16:58 +00:00
Erik Groener
ff931c6d6d FCLT#82157 Herkomst van de melding
svn path=/Website/trunk/; revision=64823
2024-05-27 07:39:55 +00:00
Jos Groot Lipman
4797d70288 FCLT#81771 Aanpassen planning geschedulde rapportages
svn path=/Website/trunk/; revision=64822
2024-05-27 07:32:17 +00:00
Peter Feij
ff5e1180df FCLT#80125 andere card en frame-achtergrond
svn path=/Website/trunk/; revision=64817
2024-05-24 16:32:16 +00:00
Peter Feij
150399acf7 FCLT#80125 andere login-achtergrond
svn path=/Website/trunk/; revision=64815
2024-05-24 15:09:24 +00:00
76679ceb97 PNBR#80685 Maximaal 'S(max_horizontal_blocks)' kolommen breed
svn path=/Website/trunk/; revision=64814
2024-05-24 15:00:41 +00:00
Peter Feij
b6668cc6a5 FCLT#76580 Sortering logging deterministischer
svn path=/Website/trunk/; revision=64809
2024-05-24 13:14:16 +00:00
Peter Feij
cfab3b0aa7 FCLT#82420 Op (srt)disciplines met die alleen voor Behandelteam gebruikt worden kun je geen melding maken, die moeten dus niet tussen de gexplodeerde vakgroep(typ)en komen.
svn path=/Website/trunk/; revision=64808
2024-05-24 12:51:50 +00:00
481d7ac89d VLKC#83484 1 kolom offset
svn path=/Website/trunk/; revision=64807
2024-05-24 12:51:29 +00:00
Jos Groot Lipman
263245dc6a FCLT#76580 ie-voortgangs-dashboards
svn path=/Website/trunk/; revision=64792
2024-05-23 15:39:32 +00:00
4b4c398fdc PZEE#79035 Markering mee-togglen
FCLT#82594 (essentiële) spatie weggevallen

svn path=/Website/trunk/; revision=64790
2024-05-23 14:58:19 +00:00
Peter Feij
32d4e90495 FCLT#82420 Feedbackpunt MKL: hier staat naam terwijl het achternaam is. Klopt en is idd fout.
svn path=/Website/trunk/; revision=64786
2024-05-23 14:16:56 +00:00
Peter Feij
7fca0e7bfc FCLT#82420 Feedbackpunt MKL: hier staat naam terwijl het achternaam is. Klopt en is idd fout.
svn path=/Website/trunk/; revision=64785
2024-05-23 14:07:20 +00:00
Jos Groot Lipman
1029573d38 MARX#73521 mareon specifieke code kan nu weg uit api_gen_import.asp
svn path=/Website/trunk/; revision=64778
2024-05-23 09:29:06 +00:00
eadf0970a0 FCLT#81775 Restpunten
svn path=/Website/trunk/; revision=64777
2024-05-23 09:28:12 +00:00
301f3722ba FCLT#82420 + commentaar
svn path=/Website/trunk/; revision=64776
2024-05-23 08:24:04 +00:00
0b25d38a83 FCLT#80553 niet de hele XML meegeven maar een samengestelde JSON
svn path=/Website/trunk/; revision=64769
2024-05-22 15:31:16 +00:00
Jos Groot Lipman
762cfd30ef FCLT#77816 Auditing voor SCIM/API2 user registreert prs_perslid_key niet
svn path=/Website/trunk/; revision=64767
2024-05-22 15:09:27 +00:00
11cab8ad55 FCLT#82420 Initieel niet zsm het kenmerk-modal openen; dat doen we alleen om de waardes in te vullen, niet om de popup te tonen
svn path=/Website/trunk/; revision=64766
2024-05-22 14:17:30 +00:00
Erik Groener
d09f5adab4 PZEE#79035 Markeringen worden overgenomen wanneer ruimte erbij
svn path=/Website/trunk/; revision=64762
2024-05-22 09:17:18 +00:00
Erik Groener
b553d18c0c LOGC#80205 Multi-edit voor flexkenmerken bij meldingen mogelijk maken
svn path=/Website/trunk/; revision=64758
2024-05-22 07:31:53 +00:00
e0118aa437 FCLT#76580 Linkjes na setup pas in 2024.3
svn path=/Website/trunk/; revision=64752
2024-05-21 13:41:34 +00:00
Erik Groener
9ba93c62cf BAMG#83299 Wens tot veranderen einddatum - automatisch verlengen
svn path=/Website/trunk/; revision=64751
2024-05-21 13:12:35 +00:00
39c0bb3222 FCLT#81775 verkeerde variabele
svn path=/Website/trunk/; revision=64743
2024-05-21 07:57:44 +00:00
885f521538 FCLT#82420 Kenmerkfilter-popup onmiddelijk openen met een spinner in afwachting van de kenmerken, ipv niets tonen tot het klaar is
svn path=/Website/trunk/; revision=64740
2024-05-17 15:08:32 +00:00
01a84f5694 FCLT#82594 syntaxfout
svn path=/Website/trunk/; revision=64739
2024-05-17 14:59:56 +00:00
5649f1ed93 EIND#82432 1 keuze = geen keuze
svn path=/Website/trunk/; revision=64738
2024-05-17 14:53:28 +00:00
f48f312829 CIZN#83815 verplichte uitleenkenmerken zijn bij uitlenen nooit optioneel, ook niet in multi-mode
svn path=/Website/trunk/; revision=64736
2024-05-17 14:11:54 +00:00
337a6e3685 FCLT#80553 Verkeerde bitje
svn path=/Website/trunk/; revision=64726
2024-05-17 10:46:53 +00:00
df33edc0c4 FCLT#80553 OpenAI gebruiken voor het genereren van afmeldteksten en kennisbankitems
svn path=/Website/trunk/; revision=64724
2024-05-17 10:44:09 +00:00
Peter Feij
cc64e6b9f3 FCLT#83786 MJOB: Taak Ter UItvoering geeft waarde te groot voor kolom mld_melding_onderwerp
svn path=/Website/trunk/; revision=64717
2024-05-16 22:48:26 +00:00
Peter Feij
490baba58b FCLT#83786 MJOB: Taak Ter Uitvoering geeft waarde te groot voor kolom mld_melding_onderwerp
svn path=/Website/trunk/; revision=64716
2024-05-16 22:47:29 +00:00
Jos Groot Lipman
2180b9e33b Altijd smtp server loggen bij falende e-mail
svn path=/Website/trunk/; revision=64713
2024-05-16 15:42:25 +00:00
Peter Feij
fdd0c1c800 FCLT#82642 Gefixt dat import andere (betere) tracking deed dan de GUI
svn path=/Website/trunk/; revision=64711
2024-05-16 15:26:21 +00:00
Peter Feij
f6d886adfa FCLT#80263 ITIL/IT Service Management 'module' rename ITIL > ITSM
svn path=/Website/trunk/; revision=64710
2024-05-16 15:00:10 +00:00
Peter Feij
4e4edd6c0b FCLT#82157 Herkomst van de melding, punten op de i
svn path=/Website/trunk/; revision=64707
2024-05-16 12:53:24 +00:00
Peter Feij
df77f3fcc8 FCLT#82420 Backbuttons in lijsten nu altijd achterwege gelaten, want Home zit nu in de navbar en we weten wel dat die werkt.
svn path=/Website/trunk/; revision=64704
2024-05-16 10:30:28 +00:00
Peter Feij
b4cb7cddd9 FCLT#82420 Filterpanel heeft nu filter icon, en geen Home meer, want die zit nu in de navbar
svn path=/Website/trunk/; revision=64703
2024-05-16 09:58:47 +00:00
Erik Groener
04ff1b2a8c FCLT#82157 Herkomst van de melding
svn path=/Website/trunk/; revision=64699
2024-05-16 07:06:29 +00:00
Jos Groot Lipman
30f1a16295 FCLT#82420 Naast jpg ook jpeg opruimen
svn path=/Website/trunk/; revision=64692
2024-05-15 15:30:55 +00:00
55bb88772e FCLT#80553 Savepoint voor AI afmeldteksten
svn path=/Website/trunk/; revision=64690
2024-05-15 15:19:17 +00:00
Jos Groot Lipman
76ac6cec01 FCLT#83037 Verify Best Practices
CVGZ#78720 Pentest 3.1 'Herinner mij'-functionaliteit

svn path=/Website/trunk/; revision=64689
2024-05-15 14:04:22 +00:00
5a9d8b3253 BAMG#81483 verdere ontdubbeling
svn path=/Website/trunk/; revision=64687
2024-05-15 13:31:00 +00:00
Jos Groot Lipman
3b088e987d EIND#82452 Meldingsomschrijving van 4000 naar 32767 oprekken
svn path=/Website/trunk/; revision=64679
2024-05-15 11:00:09 +00:00
Maykel Geerdink
fab40cae01 FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=64677
2024-05-15 10:02:39 +00:00
Erik Groener
41bd1bd199 FCLT#83751 Mail2SOAP-dispatcher ontmantelen
svn path=/Website/trunk/; revision=64676
2024-05-15 09:57:03 +00:00
Erik Groener
ca8dabbf1c INLO#83701 api_mldsoap maakt nog geen standaard kostenplaats aan op de nieuwe melding
svn path=/Website/trunk/; revision=64672
2024-05-15 09:42:45 +00:00
5cc7f19f9f BAMG#81483 (Ouderwets) ontdubbelen
svn path=/Website/trunk/; revision=64669
2024-05-15 09:31:33 +00:00
Jos Groot Lipman
3e02df99a0 FCLT#83231 Individuele vervangers moeten blijven werken ongeacht prs_collegas_groep
svn path=/Website/trunk/; revision=64662
2024-05-15 08:06:47 +00:00
Erik Groener
6ff59905fc AAXX#83523 Uitbreiding API functionaliteit rondom floors API met custom fields.
svn path=/Website/trunk/; revision=64660
2024-05-15 07:00:59 +00:00
6b684898d0 VRTW#80244 puntje 2
svn path=/Website/trunk/; revision=64653
2024-05-14 18:35:10 +00:00
5193f9a24f FCLT#81775 Puntjes op de api2
svn path=/Website/trunk/; revision=64652
2024-05-14 18:33:03 +00:00
Jos Groot Lipman
f7902c0a6e FCLT#83231 Individuele vervangers moeten blijven werken ongeacht prs_collegas_groep
svn path=/Website/trunk/; revision=64651
2024-05-14 16:06:07 +00:00
Jos Groot Lipman
1048ddc5d0 FCLT#80927 SCIM default bedrijf configureerbaar maken
svn path=/Website/trunk/; revision=64649
2024-05-14 15:03:15 +00:00
Jos Groot Lipman
0cf3c36364 Merge 2024.1 Gold C patches
svn path=/Website/trunk/; revision=64648
2024-05-14 14:41:29 +00:00
Jos Groot Lipman
e7fbde7236 FCLT#83735 Terugbrengen queries in mld.func_enabled_melding()
svn path=/Website/trunk/; revision=64647
2024-05-14 14:36:45 +00:00
Maykel Geerdink
7c65ffcefb FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=64645
2024-05-14 14:14:43 +00:00
Maykel Geerdink
ce805d6a76 FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=64644
2024-05-14 14:10:40 +00:00
Erik Groener
bd395ead45 AAIT#83560 Karakters kenmerk Overeenkomstnummer ophogen
svn path=/Website/trunk/; revision=64642
2024-05-14 14:03:54 +00:00
Erik Groener
dd065c81f5 FCLT#83231 Individuele vervangers moeten blijven werken ongeacht prs_collegas_groep
svn path=/Website/trunk/; revision=64640
2024-05-14 13:22:45 +00:00
e0620c5f89 FCLT#81775 Puntjes op de apI
svn path=/Website/trunk/; revision=64638
2024-05-14 11:21:14 +00:00
Erik Groener
76805480b5 PNBR#83324 Vraag over reservering, keuze vergaderruimte wordt getoond
svn path=/Website/trunk/; revision=64633
2024-05-14 09:38:59 +00:00
Jos Groot Lipman
f4b6649342 FCLT#82420 Dode IMP_LOG opruimcode (sinds BAMG#74195) maar eens echt weggehaald
svn path=/Website/trunk/; revision=64632
2024-05-14 09:25:48 +00:00
Jos Groot Lipman
3b660f1bca FCLT#82420 Putorders iets minder loggen: ====== Skip opdracht/bestelopdr voegt niet toe
svn path=/Website/trunk/; revision=64630
2024-05-14 09:03:07 +00:00
Erik Groener
06d7037fde PNBR#83324 Vraag over reservering, keuze vergaderruimte wordt getoond
svn path=/Website/trunk/; revision=64629
2024-05-14 09:02:55 +00:00
a24104411c EXPO#83744 Alleen submitten met notitie (dus niet indien disabled)
svn path=/Website/trunk/; revision=64628
2024-05-14 07:34:18 +00:00
Erik Groener
8178fde2e1 AAIT#82510 Datum laatst aangemaakte notitie in overzicht facturen
svn path=/Website/trunk/; revision=64626
2024-05-14 07:01:45 +00:00
Jos Groot Lipman
edf5a0be4f FCLT#82420 Ook logging van Servervard (en daarmee http-headers) in puo_xml_test.asp
svn path=/Website/trunk/; revision=64625
2024-05-13 15:14:04 +00:00
04fc179ee8 FCLT#81775 notes API2 (ORD) savepoint
svn path=/Website/trunk/; revision=64624
2024-05-13 15:11:52 +00:00
Jos Groot Lipman
b70c5888c2 EIND#82452 Meldingsomschrijving van 4000 naar 32767 oprekken
svn path=/Website/trunk/; revision=64623
2024-05-13 14:46:17 +00:00
75821fd938 FCLT#76580 Dat kan beter gewoon in een eigen resultsetje (natuurlijk)
svn path=/Website/trunk/; revision=64621
2024-05-13 13:39:40 +00:00
44cd845438 FCLT#76580 Logging bijgevoegd, linkjes; todo
svn path=/Website/trunk/; revision=64620
2024-05-13 13:08:40 +00:00
Erik Groener
0932cfa91e VNOG#83671 Prefix van opdracht wordt niet standaard gevuld bij ORDMAI
svn path=/Website/trunk/; revision=64619
2024-05-13 12:57:09 +00:00
6c03509044 FCLT#82420 refactoring, geen functionele changes, alleen whitespace en capatalization
svn path=/Website/trunk/; revision=64617
2024-05-13 12:42:23 +00:00
2ca91e7b17 FCLT#82420 ff hip.2
svn path=/Website/trunk/; revision=64616
2024-05-13 12:32:40 +00:00
Maykel Geerdink
de919e10ce FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=64613
2024-05-13 11:49:24 +00:00
87e2f32266 FCLT#82420 ff hip
svn path=/Website/trunk/; revision=64612
2024-05-13 11:29:24 +00:00
Maykel Geerdink
f3cbe07d5f FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=64611
2024-05-13 11:22:59 +00:00
f80ca136a0 VNOG#83720 Alleen de .fatal options als zijnde fatal tonen, de rest niet
svn path=/Website/trunk/; revision=64610
2024-05-13 11:11:21 +00:00
cbd91ad5f8 VNOG#83485 bes_fo_default_user = 2 is nieuw en zorgt ervoor dat bij het aanmaken van een BES bij een MLD, de aanvrager van de MLD wordt ingevuld als aanvrager van de BES
svn path=/Website/trunk/; revision=64607
2024-05-13 09:35:20 +00:00
Erik Groener
d70f0b708e VNOG#83671 Prefix van opdracht wordt niet standaard gevuld bij ORDMAI
svn path=/Website/trunk/; revision=64605
2024-05-13 08:30:29 +00:00
9f66eb7849 FCLT#81775 Savepoint .4
svn path=/Website/trunk/; revision=64604
2024-05-13 08:25:36 +00:00
Erik Groener
06a9fc5bc4 BAMG#81865 Reserveringsoverzicht/planbord uitbreiden met filter op vergaderzaal
Deze hoorde er niet bij. Wijziging ge-revert.

svn path=/Website/trunk/; revision=64603
2024-05-13 08:21:25 +00:00
Erik Groener
024c70a270 BAMG#81865 Reserveringsoverzicht/planbord uitbreiden met filter op vergaderzaal
svn path=/Website/trunk/; revision=64602
2024-05-13 08:05:32 +00:00
Erik Groener
df990040f5 FCLT#83649 bes_srtprod, bes_srtprod_prijs, bes_bedrijf_srtprod en bes_bedrijf_b uitfaseren
svn path=/Website/trunk/; revision=64595
2024-05-10 08:06:14 +00:00
Peter Feij
4ba259cc80 FCLT#82420 Kolom rapportagegroep (eindelijk) ook in het overzicht tonen (en in FAC_INI vullen)
svn path=/Website/trunk/; revision=64591
2024-05-08 16:03:07 +00:00
c9ad4d7682 MNNL#83684 2de datepicker als zodanig herkennen
svn path=/Website/trunk/; revision=64586
2024-05-08 13:43:35 +00:00
Peter Feij
75e148d93b CSUN#82825 Kolom toevoegen in meldingsoverzicht
svn path=/Website/trunk/; revision=64581
2024-05-08 11:43:29 +00:00
Erik Groener
722dae36ab BAMG#81865 Reserveringsoverzicht/planbord uitbreiden met filter op vergaderzaal
svn path=/Website/trunk/; revision=64580
2024-05-08 11:27:03 +00:00
Erik Groener
1100b91acd FCLT#82157 Herkomst van de melding
svn path=/Website/trunk/; revision=64576
2024-05-08 08:26:46 +00:00
Jos Groot Lipman
068844658a FCLT#82420 Bij onze interne import een placeholder met een hint voor de duidelijkheid.
svn path=/Website/trunk/; revision=64569
2024-05-07 14:32:14 +00:00
Jos Groot Lipman
70dbb2e5f6 FCLT#82420 Als putputorders opdracht te lang faalt stoppen we versturen. Wel laatste keer versturen zodat mld_opdr_teverzenden op 1 zetten genoeg is om nog een keertje te sturen
svn path=/Website/trunk/; revision=64568
2024-05-07 13:58:52 +00:00
cb40ce41eb Merge 2024.1 Gold C patches
svn path=/Website/trunk/; revision=64567
2024-05-07 13:52:32 +00:00
Peter Feij
7b4bee8816 FCLT#82642 Teruggefloten door QA: een Aiai is goed genoeg
svn path=/Website/trunk/; revision=64566
2024-05-07 13:38:43 +00:00
Peter Feij
bf03be1d0f FCLT#82642 Harde keys 12 voor infobord dynamisch gemaakt met setting, die in deze init_fmis worden gezet
svn path=/Website/trunk/; revision=64564
2024-05-07 13:16:21 +00:00
Erik Groener
fce027950d MARX#82116 Factuur/pdf te groot
svn path=/Website/trunk/; revision=64562
2024-05-07 12:12:57 +00:00
Jos Groot Lipman
ac873f869f FCLT#82420 Iets beter foutmelding bij API1 lege XML-body post
svn path=/Website/trunk/; revision=64557
2024-05-07 08:05:30 +00:00
Peter Feij
f4dc792aa1 CIZN#83049 Werkplek specifieke informatie (res_deel_opmerking) kunne tonen in de popup bij werkplek
svn path=/Website/trunk/; revision=64552
2024-05-06 14:51:53 +00:00
1cb53f91d9 MARX#83002 syntax-fix
svn path=/Website/trunk/; revision=64550
2024-05-06 14:37:27 +00:00
Erik Groener
716dae9142 FCLT#82157 Herkomst van de melding
svn path=/Website/trunk/; revision=64549
2024-05-06 14:17:23 +00:00
Jos Groot Lipman
0f34773f95 EIND#82452 Meldingsomschrijving van 4000 naar 32767 oprekken
svn path=/Website/trunk/; revision=64548
2024-05-06 13:10:32 +00:00
Jos Groot Lipman
c3c9436c74 EIND#82452 Meldingsomschrijving van 4000 naar 32767 oprekken
svn path=/Website/trunk/; revision=64547
2024-05-06 12:39:31 +00:00
81c4468612 FCLT#80553
svn path=/Website/trunk/; revision=64546
2024-05-06 12:33:29 +00:00
Maykel Geerdink
fc129c2725 FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=64545
2024-05-06 12:20:43 +00:00
Erik Groener
ebe40cf9de SZDB#82496 Foto's onscherp in overzicht voorzieningen
svn path=/Website/trunk/; revision=64544
2024-05-06 12:07:30 +00:00
a66102aa9a FCLT#81775 [clientside] Toggles en modules correct zetten
svn path=/Website/trunk/; revision=64542
2024-05-06 11:11:26 +00:00
Maykel Geerdink
3a8173eb4c FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=64541
2024-05-06 10:18:31 +00:00
Peter Feij
33b0a77ba9 PCHD#83116 Vakgroeptype prominenter zichtbaar maken
svn path=/Website/trunk/; revision=64539
2024-05-06 10:09:56 +00:00
Erik Groener
8fe2290fdf FCLT#82351 json instelling per grafiektype
svn path=/Website/trunk/; revision=64533
2024-05-06 09:26:48 +00:00
Jos Groot Lipman
cf053651a0 FCLT#82420 export/import van thema gaf 'position' is niet van het verwachte type ('varchar')
svn path=/Website/trunk/; revision=64520
2024-05-06 07:27:40 +00:00
Erik Groener
4164e8c1dd FCLT#82351 json instelling per grafiektype
svn path=/Website/trunk/; revision=64519
2024-05-06 07:09:00 +00:00
76c143eb28 FCLT#81404 niet altijd minified?
svn path=/Website/trunk/; revision=64518
2024-05-06 05:54:46 +00:00
Erik Groener
ffd65fffda FCLT#82351 json instelling per grafiektype
svn path=/Website/trunk/; revision=64511
2024-05-03 11:36:36 +00:00
f6601c6841 FCLT#83032 (revert) Aanpassing van Trunk -> Branch 2024.1
svn path=/Website/trunk/; revision=64509
2024-05-03 10:39:12 +00:00
Erik Groener
8e329c54dc SZDB#82496 Foto's onscherp in overzicht voorzieningen
svn path=/Website/trunk/; revision=64505
2024-05-03 07:43:22 +00:00
Peter Feij
d511d8a762 FCLT#82420 De kolommen die er intussen bij zijn mogen ook best getoond worden
svn path=/Website/trunk/; revision=64501
2024-05-02 16:45:28 +00:00
Peter Feij
6c8bc62f80 FCLT#82420 lcl_menu_alg_ruimtetarieven vereist WEB_ALGMSU dus vereisen we dat hier ook
svn path=/Website/trunk/; revision=64500
2024-05-02 16:34:53 +00:00
Peter Feij
97164cb5bb FCLT#82420 Kleine kolomshuffle
svn path=/Website/trunk/; revision=64497
2024-05-02 14:57:16 +00:00
Peter Feij
1dc243c5ba FCLT#82420 edgecase: zonder users werd null getoond ipv 0
svn path=/Website/trunk/; revision=64494
2024-05-02 14:23:48 +00:00
Peter Feij
87b1b84b97 FCLT#82420 De kolommen die er intussen bij zijn mogen ook best getoond worden
svn path=/Website/trunk/; revision=64489
2024-05-02 12:47:09 +00:00
Peter Feij
1d3687004c FCLT#82420 uit herziening Create-initialisatie bleek dat users met een _OSLOGIN onterecht als persoon geteld werden in de GDPR statistiek, dus die uitsluiten.
svn path=/Website/trunk/; revision=64483
2024-05-02 08:02:34 +00:00
Erik Groener
b351624e41 FCLT#83073 Legenda overzicht facturen
svn path=/Website/trunk/; revision=64471
2024-05-01 12:28:07 +00:00
Maykel Geerdink
fcde025747 FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=64470
2024-05-01 11:47:00 +00:00
Erik Groener
aac71a1639 VNOG#81951 Optimaliseren MLD2BES -integratie (afleveradres)
svn path=/Website/trunk/; revision=64469
2024-05-01 10:50:12 +00:00
8535dcb849 FCLT#76580 minor (styling/lcl) changes
svn path=/Website/trunk/; revision=64459
2024-04-30 15:04:46 +00:00
afcd692808 FCLT#81775 .3
svn path=/Website/trunk/; revision=64458
2024-04-30 14:26:58 +00:00
Maykel Geerdink
39583ae95c FCLT#82594: Melding 'opdelen' in deelmeldingen.
svn path=/Website/trunk/; revision=64454
2024-04-30 11:51:56 +00:00
Peter Feij
101e10f28b FCLT#82420 Ook recentaanduiding voor verdiepingen, terreinen en ruimtes
svn path=/Website/trunk/; revision=64450
2024-04-30 10:34:21 +00:00
Erik Groener
0001cd98c3 TAYL#80979 Eigen Objecten zichtbaar in ins_list.asp
svn path=/Website/trunk/; revision=64447
2024-04-30 09:12:17 +00:00
Peter Feij
812291e273 FCLT#82420 Sortering van de aan te passen teksten op de werkelijke tekst ipv de technische labels
svn path=/Website/trunk/; revision=64445
2024-04-30 07:55:29 +00:00
5a65ccf227 FCLT#81775 Savepoint 0.2
svn path=/Website/trunk/; revision=64439
2024-04-29 14:48:55 +00:00
Erik Groener
72b81598d6 PZEE#79035 Markeringen worden overgenomen wanneer ruimte erbij
svn path=/Website/trunk/; revision=64438
2024-04-29 14:36:46 +00:00
Erik Groener
bf57032c27 FCLT#82157 Herkomst van de melding
svn path=/Website/trunk/; revision=64434
2024-04-29 11:16:50 +00:00
72e422382c FCLT#81775 Savepoint (reply2all -de default- werkt nog niet)
svn path=/Website/trunk/; revision=64416
2024-04-26 13:34:11 +00:00
7cd07f3c09 LBRN#83503 Wat logging erbij en maar even aanzien
svn path=/Website/trunk/; revision=64402
2024-04-25 08:06:40 +00:00
Jos Groot Lipman
649b3820e3 EIND#82452 Meldingsomschrijving van 4000 naar 32767 oprekken
svn path=/Website/trunk/; revision=64396
2024-04-24 15:33:48 +00:00
61e2917491 FCLT#83476 Hatsikidee, weg ermee
svn path=/Website/trunk/; revision=64383
2024-04-24 07:56:02 +00:00
e6d1c2b50d FCLT#80862 Feedback bij klikken op menu-knoppen
svn path=/Website/trunk/; revision=64382
2024-04-24 07:03:27 +00:00
6c1ffe53a3 AAXX#83219 Revert (want verplaatst van Trunk -> 2024.1)
svn path=/Website/trunk/; revision=64372
2024-04-23 15:15:27 +00:00
9ec1448a4b AAXX#83219 declined niet als nieuwe/actieve reservering zien, maar als [D]eleted (wat het is)
svn path=/Website/trunk/; revision=64371
2024-04-23 15:13:00 +00:00
af22f064c0 FCLT#81775 opdr_type zichtbaar voor FE moet niets voor notities betekenen, en scenario 1; FOBO krijgt er UITV. toggles bij
svn path=/Website/trunk/; revision=64367
2024-04-23 12:27:37 +00:00
4627783363 FCLT#81775 bug fixje; fobo toggles niet disablen, die ziet altijd alles dus dat hoeft niet
svn path=/Website/trunk/; revision=64363
2024-04-23 11:04:56 +00:00
af60d46970 FCLT#81775 bug fixje voor invisible label tooltip
svn path=/Website/trunk/; revision=64362
2024-04-23 10:53:49 +00:00
d25167430f FCLT#82420 iets minder vaak togglen
svn path=/Website/trunk/; revision=64360
2024-04-23 08:23:08 +00:00
12ab9c5f2e FCLT#76580 diversen
svn path=/Website/trunk/; revision=64352
2024-04-22 10:36:48 +00:00
bd0592e100 FCLT#82419 1 logfile per Maand
svn path=/Website/trunk/; revision=64351
2024-04-22 10:21:56 +00:00
13013d7967 FCLT#76580 Exceptions wel throwen
svn path=/Website/trunk/; revision=64350
2024-04-22 10:20:41 +00:00
fcdde6991f FCLT#76580 Vanuit GUI een initialisatie kunnen runnen
svn path=/Website/trunk/; revision=64347
2024-04-22 09:09:09 +00:00
bc9740bc45 VRTW#80244 Mobile multi-opdrachten afmelden
svn path=/Website/trunk/; revision=64340
2024-04-19 13:47:31 +00:00
ea7c76361a VRTW#80244 Multi afmelden mobile
svn path=/Website/trunk/; revision=64337
2024-04-19 12:50:31 +00:00
e2b75eb362 VRTW#80244 mobile bulkacties (gui) savepoint 0.1
svn path=/Website/trunk/; revision=64319
2024-04-18 15:28:59 +00:00
bec9b67b92 FCLT#76580 Installatie-voortgangs-dashboards css +
svn path=/Website/trunk/; revision=64318
2024-04-18 15:02:08 +00:00
9ac963e144 FCLT#76580 Kleiner is fijner
svn path=/Website/trunk/; revision=64317
2024-04-18 14:25:33 +00:00
12fe1bf630 FCLT#76580 Verhuizing reverted, plaatjes & savepoint 0.3
svn path=/Website/trunk/; revision=64312
2024-04-18 13:06:04 +00:00
Jos Groot Lipman
e0fc591281 FCLT#83037 Verify Best Practices
svn path=/Website/trunk/; revision=64298
2024-04-18 09:38:20 +00:00
Erik Groener
e303b702d2 FCLT#81771 Aanpassen planning geschedulde rapportages
svn path=/Website/trunk/; revision=64295
2024-04-18 07:45:20 +00:00
11313e13fc FCLT#76580 Verhuizing DB -> ASP
svn path=/Website/trunk/; revision=64290
2024-04-17 14:48:01 +00:00
Jos Groot Lipman
0c56eccb67 FCLT#83184 web_sample.config wordt al jaren niet meer in FlexFiles folder geplaatst
svn path=/Website/trunk/; revision=64284
2024-04-17 13:32:32 +00:00
Erik Groener
8a90b8c9e7 FCLT#81771 Aanpassen planning geschedulde rapportages
svn path=/Website/trunk/; revision=64283
2024-04-17 13:05:18 +00:00
288f5a8f03 FCLT#76580 moved
svn path=/Website/trunk/; revision=64281
2024-04-17 09:19:29 +00:00
e0d04d7d62 FCLT#82420 maxlength = 5 om binnen fac_menu_volgnr NUMBER(5) te blijven
svn path=/Website/trunk/; revision=64280
2024-04-17 08:43:34 +00:00
Erik Groener
ba5f0c5839 FCLT#80823 Een import bestand met hele lange regels ondersteunen
svn path=/Website/trunk/; revision=64273
2024-04-17 06:24:44 +00:00
Jos Groot Lipman
f6f1df518a EIND#82452 Meldingsomschrijving van 4000 naar 32767 oprekken
svn path=/Website/trunk/; revision=64271
2024-04-16 15:18:14 +00:00
2ab3675b2c FCLT#76580 Savepoint 0.1
svn path=/Website/trunk/; revision=64268
2024-04-16 15:09:50 +00:00
Peter Feij
32ac787384 ARAI#80101 Laatste notitie direct zichtbaar in het meldingenoverzicht
svn path=/Website/trunk/; revision=64262
2024-04-16 11:54:56 +00:00
Erik Groener
c3f89dd390 MARX#81174 Kunnen de ANO functie's de bijlagen-kenmerken met ano-vlag verwijderen?
svn path=/Website/trunk/; revision=64258
2024-04-16 06:51:51 +00:00
fea760221c FCLT#82420 Outlook-koppeling error logging ietwat uitgebreid
svn path=/Website/trunk/; revision=64256
2024-04-15 15:14:11 +00:00
2b103be559 FCLT#83316 'In overzicht tonen' niet tonen bij CNT kenmerken (waar het toch/nog niets doet)
svn path=/Website/trunk/; revision=64243
2024-04-15 10:05:15 +00:00
d4813bea7a FCLT#80553 S(openai_model) toegevoegd voor keuze mogelijkheid
svn path=/Website/trunk/; revision=64241
2024-04-15 09:23:46 +00:00
9da6811372 EIND#82452 Zonder bindparams gewoon de reguliere Oracle.Execute gebruiken
svn path=/Website/trunk/; revision=64240
2024-04-15 09:10:40 +00:00
8f9b038c30 FCLT#80553 openAI account toegevoegd, mini fixes & S(openai_mld_subject_instructions)
svn path=/Website/trunk/; revision=64232
2024-04-12 13:21:03 +00:00
c728c16c05 EIND#82432 deze hoort hier ook nog bij
svn path=/Website/trunk/; revision=64231
2024-04-12 11:25:46 +00:00
Erik Groener
3e7d3ce30e WSKO#83250 Filtering bij mobile meldingen overzicht
svn path=/Website/trunk/; revision=64229
2024-04-12 09:55:43 +00:00
Maykel Geerdink
bbdc39d036 WOWW#83286 MJOB Realisatie geeft ORA-01785 order.
svn path=/Website/trunk/; revision=64223
2024-04-11 13:42:23 +00:00
17d2220061 CVGZ#81722 gastheer/vrouw tel. nr altijd tonen
svn path=/Website/trunk/; revision=64215
2024-04-11 10:08:22 +00:00
Erik Groener
5df46ed917 ALLR#83193 Verbruiksartikelen met eigen omschrijving komen niet goed in de XML
svn path=/Website/trunk/; revision=64213
2024-04-11 09:53:05 +00:00
Jos Groot Lipman
13a3a282ca YAXX#82715 lastlogin standaard bij autorisatie personen tonen
svn path=/Website/trunk/; revision=64207
2024-04-10 14:42:49 +00:00
Erik Groener
736a9af82e VOLK#83130 Bezoek via API geregistreerd pas zichtbaar na 'Wijzigen'
svn path=/Website/trunk/; revision=64204
2024-04-10 13:11:39 +00:00
Erik Groener
7c58281b0d FCLT#80823 Een import bestand met hele lange regels ondersteunen
svn path=/Website/trunk/; revision=64198
2024-04-10 06:13:37 +00:00
Maykel Geerdink
588cb4e931 MARX#83002: Statusberichten na Afgemeld.
svn path=/Website/trunk/; revision=64197
2024-04-09 15:49:04 +00:00
abca07c512 Merge 2024.1 Gold B patches
svn path=/Website/trunk/; revision=64192
2024-04-09 08:06:27 +00:00
1c9b607a44 FCLT#82420 Voorkom inline spacing na textarea's, en align de hint van een textarea-kenmerk (ook) rechts
svn path=/Website/trunk/; revision=64191
2024-04-08 15:00:57 +00:00
a678570d91 EIND#82432 Geplande acties voor FE
svn path=/Website/trunk/; revision=64186
2024-04-08 13:55:26 +00:00
Jos Groot Lipman
d8a6724354 EIND#82452 Meldingsomschrijving van 4000 naar 32767 oprekken
svn path=/Website/trunk/; revision=64179
2024-04-08 11:49:27 +00:00
Erik Groener
631ed5b362 HMOD#82814 Plaatsweergave in mobile bij mobile_position_required = 1
svn path=/Website/trunk/; revision=64173
2024-04-08 07:46:35 +00:00
372276dc39 EIND#82432 Savepoint; Geplande acties voor FE
svn path=/Website/trunk/; revision=64172
2024-04-05 22:05:51 +00:00
e620463d0a ARCK#83163 prs_perslid_naam_friendly -> prs_perslid_naam_full
svn path=/Website/trunk/; revision=64170
2024-04-05 14:19:21 +00:00
Peter Feij
22bade88cb FCLT#82437 Markering concept melding
svn path=/Website/trunk/; revision=64153
2024-04-03 13:57:16 +00:00
Erik Groener
c574e200a6 VNOG#81951 Optimaliseren MLD2BES -integratie (afleveradres)
svn path=/Website/trunk/; revision=64143
2024-04-03 10:27:09 +00:00
ecd7336349 FCLT#80553 OpenAI gebruiken om melding-onderwerpen automatisch te genereren
svn path=/Website/trunk/; revision=64119
2024-04-02 08:23:34 +00:00
f171ae980d SGGR#83046 eerste bezoekers eerst
svn path=/Website/trunk/; revision=64113
2024-04-02 07:35:32 +00:00
3202d10532 SGGR#83046 reserveringen sorteren op startdatum/tijd
svn path=/Website/trunk/; revision=64103
2024-03-29 16:25:35 +00:00
Erik Groener
e196c98f73 UWVA#81627 'Gereserveerd via' Mobile registreren
svn path=/Website/trunk/; revision=64078
2024-03-28 11:31:36 +00:00
Erik Groener
5b17092229 VRTW#82513 Ondersteuning toevoegen voor HTML mail
svn path=/Website/trunk/; revision=64059
2024-03-26 14:53:23 +00:00
909e2e9c8e FCLT#83032 Volledig eruit klappen op een error voorkomen; ga verder met de overige ruimtes
svn path=/Website/trunk/; revision=64057
2024-03-26 11:23:50 +00:00
Maykel Geerdink
09fdfc02c5 BAMG#82356: Gebouwverantwoordelijke bij gebouw heeft verkeerde rechten.
svn path=/Website/trunk/; revision=64056
2024-03-26 09:26:55 +00:00
Jos Groot Lipman
e5d42faffd Merge 2024.1 Gold A patches
svn path=/Website/trunk/; revision=64055
2024-03-26 08:30:30 +00:00
Maykel Geerdink
0374568450 AAIT#81519: Vervangers tijdens goedkeuren - 81261 - terugdraaien.
svn path=/Website/trunk/; revision=64053
2024-03-26 07:52:16 +00:00
Maykel Geerdink
5f6460946a UWVA#82966: Reserveren van een voorziening Tot datum niet gevuld.
svn path=/Website/trunk/; revision=64043
2024-03-25 14:09:58 +00:00
Erik Groener
e79233b4d5 BLCC#81079 Velden in gebouwenoverzicht aan/uit kunnen zetten, inclusief kenmerkvelden
svn path=/Website/trunk/; revision=64040
2024-03-25 13:40:08 +00:00
1ca03522a2 AAXX#82213 plaats-naam ook op de mobile voorpagina tonen
svn path=/Website/trunk/; revision=64022
2024-03-22 14:27:08 +00:00
7c9d0a5df9 AAXX#81256 Locatie kunnen kiezen bij het reserveren van een persoon
svn path=/Website/trunk/; revision=64021
2024-03-22 14:06:29 +00:00
Erik Groener
2d40206046 BLCC#80212 Tracking scope mutaties - CNT
svn path=/Website/trunk/; revision=64000
2024-03-21 09:33:08 +00:00
Maykel Geerdink
851bf29081 VLKC#79478: Heropenen functionaliteit alleen voor frontoffice.
svn path=/Website/trunk/; revision=63997
2024-03-21 08:21:03 +00:00
Maykel Geerdink
071c620004 LBRN#80944: Sorteerfunctie verdwijnt in overzicht bestelopdrachten?
svn path=/Website/trunk/; revision=63991
2024-03-20 14:41:35 +00:00
Jos Groot Lipman
b9af0d7a89 FCLT#78016 Onnodige UPPER op prs_perslid_oslogin maakt dat index niet gebruikt wordt.
svn path=/Website/trunk/; revision=63981
2024-03-20 10:09:38 +00:00
Maykel Geerdink
9940003866 LPNL#80295: Bij contracten ook kenmerken definiëren die voor alle contracten gelden.
svn path=/Website/trunk/; revision=63979
2024-03-20 09:38:36 +00:00
Jos Groot Lipman
473511b30f FCLT#77116 fac_verify_client.asp is eigenlijk unsafe: cookies er uit
svn path=/Website/trunk/; revision=63978
2024-03-20 09:01:15 +00:00
Erik Groener
68483305fc FMHN#80006 weergave ministerie toevoegen bij keuzelijsten personen
svn path=/Website/trunk/; revision=63974
2024-03-19 14:49:52 +00:00
Erik Groener
53a6e51c89 FCLT#82645 Alleen lezen kenmerken niet tonen in multi-edit kenmerk
svn path=/Website/trunk/; revision=63972
2024-03-19 12:38:21 +00:00
Erik Groener
aa0584452b LOGC#76927 Beter/sneller kenbaar maken dat er geen operators online zijn in de chat
svn path=/Website/trunk/; revision=63923
2024-03-14 11:24:06 +00:00
Erik Groener
1c2547733f MARX#81950 Bijlage bij een kopie factuur komt niet juist in Tobias
svn path=/Website/trunk/; revision=63920
2024-03-14 08:41:38 +00:00
Jos Groot Lipman
bc525a305d FCLT#82420 mld_melding_externnr is datatype "text", niet "number"
svn path=/Website/trunk/; revision=63919
2024-03-14 08:21:55 +00:00
Erik Groener
5bb053277e LOGC#76927 Beter/sneller kenbaar maken dat er geen operators online zijn in de chat
svn path=/Website/trunk/; revision=63909
2024-03-13 13:55:15 +00:00
Erik Groener
7885349a17 FCLT#82645 Alleen lezen kenmerken niet tonen in multi-edit kenmerk
svn path=/Website/trunk/; revision=63899
2024-03-13 10:06:53 +00:00
Maykel Geerdink
56c3ba015a BAUS#81220: Kenmerken direct kunnen vullen bij het voltooien van de status.
svn path=/Website/trunk/; revision=63898
2024-03-13 09:09:23 +00:00
0b4500e7d0 LOGC#80205 kenmerken-multi-edit weer enabled
svn path=/Website/trunk/; revision=63887
2024-03-12 10:15:07 +00:00
619fb9a78e Merge 2024.1 Gold patches
svn path=/Website/trunk/; revision=63886
2024-03-12 10:01:16 +00:00
Erik Groener
3d16487f86 FCLT#77713 Wilt u Identity mapping '[object Object]' verwijderen?
svn path=/Website/trunk/; revision=63818
2024-03-05 14:37:18 +00:00
Jos Groot Lipman
29ea85186e Merge 2024.1 RC4 patches
svn path=/Website/trunk/; revision=63809
2024-03-05 11:07:47 +00:00
94a87850d0 VLKC#80053 opdracht-leesrechten ipv melding-leesrechten
svn path=/Website/trunk/; revision=63748
2024-02-28 13:23:08 +00:00
Maykel Geerdink
af987f5225 BLCC#77727: Ondersteuning van relatieve multi-edit voor flexkenmerken tbv indexaties.
svn path=/Website/trunk/; revision=63722
2024-02-27 12:59:10 +00:00
Maykel Geerdink
d4f942cc47 BLCC#77727: Ondersteuning van relatieve multi-edit voor flexkenmerken tbv indexaties.
svn path=/Website/trunk/; revision=63718
2024-02-27 09:59:56 +00:00
870ed4939d FMHN#82441 lcl
svn path=/Website/trunk/; revision=63702
2024-02-26 07:32:54 +00:00
Jos Groot Lipman
1b5523a1db FLEX#80893 Mobile plattegrond bij reservering toont (te) weinig informatie
svn path=/Website/trunk/; revision=63689
2024-02-22 16:00:19 +00:00
4ab8afde7d Merge 2024.1 RC2 patches (en een klein deel van RC3)
svn path=/Website/trunk/; revision=63684
2024-02-22 14:41:34 +00:00
a5304ad4b4 AAXX#82213 css alvast aangepast
svn path=/Website/trunk/; revision=63679
2024-02-22 11:16:08 +00:00
Maykel Geerdink
b8ba2fc3c3 VLKC#78390: Notificatie via objectnotities aan fietsuitlener.
svn path=/Website/trunk/; revision=63665
2024-02-21 09:16:23 +00:00
44d5b4cae1 FCLT#82420 Geen scrollbalk tonen als er niets te scrollen valt
svn path=/Website/trunk/; revision=63645
2024-02-20 12:07:05 +00:00
377 changed files with 12505 additions and 5631 deletions

View File

@@ -443,6 +443,130 @@ alg = {
oRs.Close();
return algm2;
},
alg_onroerendgoed_flex_params: function(p_niveau)
{
var sql = "SELECT DISTINCT " + lcl.xsqla("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key")
+ " , k.alg_kenmerk_kenmerktype"
+ " FROM alg_kenmerk k"
+ " WHERE (BITAND(alg_kenmerk_inlijst, 1) = 1)"
+ " AND (BITAND(alg_kenmerk_systeem, 4) = 0 OR k.alg_kenmerk_systeem IS NULL)"
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql_upper(p_niveau)
+ " AND k.alg_kenmerk_verwijder IS NULL";
var oRs = Oracle.Execute(sql);
var v_flexParams = { anyflex: !oRs.eof};
if (v_flexParams.anyflex)
{
var multiflex = false;
v_flexParams.bijlageflex = (oRs("alg_kenmerk_kenmerktype").Value == "M");
v_flexParams.flexlabel = oRs("alg_kenmerk_omschrijving").Value;
oRs.MoveNext();
if (!oRs.eof)
{
multiflex = true;
v_flexParams.flexlabel = L("lcl_flexlist");
while (!oRs.eof)
{
if (oRs("alg_kenmerk_kenmerktype").Value == "M")
v_flexParams.bijlageflex = true;
oRs.MoveNext();
}
}
}
oRs.Close();
var onrgoed_fld = "";
switch (p_niveau)
{
case "D": onrgoed_fld = "d.alg_district_key"; break;
case "L": onrgoed_fld = "l.alg_locatie_key"; break;
case "T": onrgoed_fld = "g.alg_terreinsector_key"; break;
case "G": onrgoed_fld = "g.alg_gebouw_key"; break;
case "V": onrgoed_fld = "v.alg_verdieping_key"; break;
case "R": onrgoed_fld = "r.alg_ruimte_key"; break;
}
v_flexParams.sql = ( v_flexParams.anyflex
? " , (SELECT LISTAGG(" + ( multiflex
? lcl.xsql("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key") + " || ':' || chr(160) || "
: ""
)
+ " CASE WHEN k.alg_kenmerk_kenmerktype = 'R' OR k.alg_kenmerk_kenmerktype = 'r' OR k.alg_kenmerk_kenmerktype = 'S'"
+ " THEN flx.getdomeinwaarde(k.fac_kenmerkdomein_key, km.alg_onrgoedkenmerk_waarde)"
+ " WHEN ( ( k.alg_kenmerk_kenmerktype = 'N'"
+ " AND k.alg_kenmerk_lengte = 1"
+ " AND k.alg_kenmerk_nmin = 0"
+ " AND k.alg_kenmerk_nmax = 1"
+ " AND (k.alg_kenmerk_dec = 0 OR k.alg_kenmerk_dec IS NULL)"
+ " )"
+ " OR (k.alg_kenmerk_kenmerktype = 'V')"
+ " )"
+ " THEN DECODE( km.alg_onrgoedkenmerk_waarde"
+ " , 0, " + safe.qL("lcl_check_0")
+ " , 1, " + safe.qL("lcl_check_1")
+ " , km.alg_onrgoedkenmerk_waarde"
+ " )"
+ " ELSE km.alg_onrgoedkenmerk_waarde"
+ " END"
+ " , CHR(13)"
+ " )"
+ " WITHIN GROUP (ORDER BY k.alg_kenmerk_volgnr)"
+ " FROM alg_kenmerk k"
+ " , alg_onrgoedkenmerk km"
+ " WHERE km.alg_onrgoed_key = " + onrgoed_fld
+ " AND km.alg_onrgoed_niveau = " + safe.quoted_sql_upper(p_niveau)
+ " AND k.alg_kenmerk_key = km.alg_kenmerk_key"
+ " AND (BITAND(k.alg_kenmerk_inlijst,1) = 1)"
+ " AND (BITAND(k.alg_kenmerk_systeem,4) = 0 OR k.alg_kenmerk_systeem IS NULL)" // -- niet als vertrouwelijk
+ " AND k.alg_kenmerk_verwijder IS NULL"
+ " AND km.alg_onrgoedkenmerk_verwijder IS NULL"
+ " ) flex"
: ""
)
return v_flexParams;
},
alg_onroerendgoed_flex_bijlagen: function(p_niveau, p_alg_key)
{
var bijlagen_aantal = 0;
var bijlagen_oms = "";
var bijlagen_lijst = [];
var sql_k = "SELECT k.alg_kenmerk_key"
+ " , " + lcl.xsqla("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key")
+ " , CASE WHEN BITAND(k.alg_kenmerk_inlijst, 1) = 1"
+ " THEN 1"
+ " ELSE 0"
+ " END in_overzicht_tonen"
+ " FROM alg_kenmerk k"
+ " WHERE k.alg_kenmerk_verwijder IS NULL"
+ " AND k.alg_kenmerk_kenmerktype= 'M'"
+ " AND k.alg_kenmerk_niveau = " + safe.quoted_sql_upper(p_niveau);
var oRs_k = Oracle.Execute(sql_k);
while (!oRs_k.eof)
{
if (oRs_k("in_overzicht_tonen").Value == 1)
{
var kenmerk_key = oRs_k("alg_kenmerk_key").Value;
var bijlagen_oms = oRs_k("alg_kenmerk_omschrijving").Value;
var bestanden = flexProps("ALG", p_alg_key, kenmerk_key, "A", {getFiles: true});
var km_aantal = bestanden.files.length;
for (var i=0; i<km_aantal; i++)
{
bijlagen_lijst.push(bestanden.files[i].name);
}
bijlagen_aantal += km_aantal;
}
oRs_k.MoveNext();
}
oRs_k.Close();
return ( bijlagen_aantal > 0
? "<span title='" + safe.htmlattr(bijlagen_lijst.join("\n")) + "'>"
+ safe.html(bijlagen_oms) + ": " + bijlagen_aantal
+ "</span>"
: ""
);
}
}
%>

View File

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

View File

@@ -198,14 +198,14 @@ else
"sgVerantw",
{ perslidKey: verantw_key,
label: L("lcl_alg_verantw"),
readonly: !this_alg.writeuse,
readonly: !this_alg.writeman,
autlevel: this_alg.authparams("WEB_ALGMAN") && this_alg.authparams("WEB_ALGMAN").PRSwritelevel
});
FCLTpersoonselector("verantw2",
"sgVerantw2",
{ perslidKey: verantw_key2,
label: L("lcl_alg_verantw2"),
readonly: !this_alg.writeuse,
readonly: !this_alg.writeman,
autlevel: this_alg.authparams("WEB_ALGMAN") && this_alg.authparams("WEB_ALGMAN").PRSwritelevel
});
manRWFIELD("bld_email", "fld", L("lcl_alg_gebouw_email"), bld_email, {maxlength: 200});
@@ -222,7 +222,7 @@ else
{ label: L("lcl_mld_dienst_niveau"),
initKey: dienstniveau,
emptyOption: "",
readonly: !this_alg.writeuse
readonly: !this_alg.writeman
});
FCLTadresselector("mld_adres", "sgAdres",
{

View File

@@ -160,7 +160,7 @@ if (!warning)
shared.trackaction("ALGGUP", bld_key, algUpd.trackarray.join("\n"));
}
else
shared.trackaction("ALGGUP", bld_key, L("lcl_noti_ALGGNE")); // strikt genomen ALGGNE
shared.trackaction("ALGGNE", bld_key);
}
%>

View File

@@ -129,7 +129,7 @@ else
shared.trackaction("ALGLUP", loc_key, algUpd.trackarray.join("\n"));
}
else
shared.trackaction("ALGLUP", loc_key, L("lcl_noti_ALGLNE")); // strikt genomen ALGLNE
shared.trackaction("ALGLNE", loc_key);
}
%>

View File

@@ -148,7 +148,7 @@ if (!warning)
shared.trackaction("ALGTUP", ter_key, algUpd.trackarray.join("\n"));
}
else
shared.trackaction("ALGTUP", ter_key, L("lcl_noti_ALGTNE")); // strikt genomen ALGTNE
shared.trackaction("ALGTNE", ter_key);
}

View File

@@ -117,7 +117,7 @@ if (!warning)
shared.trackaction("ALGVUP", flr_key, algUpd.trackarray.join("\n"));
}
else
shared.trackaction("ALGVUP", flr_key, L("lcl_noti_ALGVNE")); // strikt genomen ALGVNE
shared.trackaction("ALGVNE", flr_key);
}
%>

View File

@@ -99,7 +99,8 @@ function generateFlexKenmerkBlock(params)
mobile: params.mobile,
parentKey: onrgoed_key,
kenmerk_module: onrgoed_niveau,
hasfilter: hasfilter
hasfilter: hasfilter,
relativeValuesAllowed: params.multi
}
);
}

View File

@@ -16,51 +16,7 @@
<%
FCLTHeader.Requires({ plugins: ["jQuery"] });
function fnrowData(oRs)
{
var parent_key = oRs("alg_locatie_key").value;
var detail_key = oRs("alg_gebouw_key").value;
var key = oRs("alg_gebouw_key").value;
var oms = oRs("alg_gebouw_naam").value;
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
var recent = new Date();
function fnrowClass(oRs)
{
var lclass = "";
// Tracking: hoe lang geleden voor het laatst gewijzigd?
if (oRs.Fields("recentdatum").Value != null)
{
var ltrackdate1 = new Date();
var ltrackdate10 = new Date();
var ltrackdate100 = new Date();
var alg_onrgoed_recent = S("alg_onrgoed_recent");
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
if (fac_recent > ltrackdate1)
{
lclass += " updated";
}
else if (fac_recent > ltrackdate10)
{
lclass += " updated10";
}
else if (fac_recent > ltrackdate100)
{
lclass += " updated100";
}
}
return lclass;
}
var cnt_full = getQParamInt("cnt_full", 1);
var cnt_full = getQParamInt("cnt_full", 1);
// Fast check to see if any building responsibles have been set
// If not, we can suppress the column
@@ -181,30 +137,6 @@ function gebouw_list(pautfunction, params)
var autparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);
var readuse = autparamsINSUSE && autparamsINSUSE.PRSreadlevel < 9 && autparamsINSUSE.ALGreadlevel < 9; // Wijzigen Afgeronde gegevens.
var readman = autparamsINSMAN && autparamsINSMAN.PRSreadlevel < 9 && autparamsINSMAN.ALGreadlevel < 9; // Wijzigen Afgeronde gegevens.
function fnrowActionEnabler(oRs)
{
var eDelete = false;
var eEditMulti = false;
var eObjMan = false;
if (alg.canWriteGebouw(oRs("alg_gebouw_key").value, authparams.mALGwritelevel))
{
eDelete = true;
eEditMulti = true;
}
// Heb ik rechten om het objectenbeheer overzicht te zien?
if (readuse || readman)
eObjMan = true;
return ({eDelete: eDelete, eEditMulti: eEditMulti, eObjMan: eObjMan});
}
function fnrowFlexParams(oRs)
{
var bld_key = oRs("alg_gebouw_key").Value;
var this_alg = alg.func_enabled(bld_key, "G");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
%>
<html>
@@ -213,8 +145,8 @@ function gebouw_list(pautfunction, params)
</head>
<body id="listbody">
<%
var flexParams = alg.alg_onroerendgoed_flex_params("G");
var sqln = "SELECT g.alg_gebouw_key"
+ " , g.alg_locatie_key"
+ " , g.alg_locatie_key"
+ " , g.alg_srtgebouw_key"
+ " , l.alg_locatie_omschrijving"
@@ -244,6 +176,7 @@ function gebouw_list(pautfunction, params)
+ " AND t.fac_tracking_refkey = g.alg_gebouw_key"
+ " AND sn.fac_srtnotificatie_xmlnode = 'gebouw'"
+ " ) recentdatum"
+ flexParams.sql
+ " FROM alg_gebouw g"
+ " , alg_locatie l"
+ " , alg_srtgebouw s"
@@ -308,6 +241,93 @@ function gebouw_list(pautfunction, params)
// addurl += buildTransitParam(["loc_key", "bld_key", "flo_key", "room_key"], params) // TODO: welke allemaal?
/**********************************
* Callback functies ResultsetTable
*********************************/
var recent = new Date();
function fnrowData(oRs)
{
var parent_key = oRs("alg_locatie_key").value;
var detail_key = oRs("alg_gebouw_key").value;
var key = oRs("alg_gebouw_key").value;
var oms = oRs("alg_gebouw_naam").value;
var data = {parent_key: parent_key, detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
}
function fnrowClass(oRs)
{
var lclass = "";
// Tracking: hoe lang geleden voor het laatst gewijzigd?
if (oRs.Fields("recentdatum").Value != null)
{
var ltrackdate1 = new Date();
var ltrackdate10 = new Date();
var ltrackdate100 = new Date();
var alg_onrgoed_recent = S("alg_onrgoed_recent");
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
if (fac_recent > ltrackdate1)
{
lclass += " updated";
}
else if (fac_recent > ltrackdate10)
{
lclass += " updated10";
}
else if (fac_recent > ltrackdate100)
{
lclass += " updated100";
}
}
return lclass;
}
function fnrowActionEnabler(oRs)
{
var eDelete = false;
var eEditMulti = false;
var eObjMan = false;
if (alg.canWriteGebouw(oRs("alg_gebouw_key").value, authparams.mALGwritelevel))
{
eDelete = true;
eEditMulti = true;
}
// Heb ik rechten om het objectenbeheer overzicht te zien?
if (readuse || readman)
eObjMan = true;
return ({eDelete: eDelete, eEditMulti: eEditMulti, eObjMan: eObjMan});
}
function fnrowFlexParams(oRs)
{
var bld_key = oRs("alg_gebouw_key").Value;
var this_alg = alg.func_enabled(bld_key, "G");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
function fncolFlexBijlagen(oRs)
{
var flexval = oRs("flex").Value;
var alg_key = oRs("alg_gebouw_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
{
result += alg.alg_onroerendgoed_flex_bijlagen("G", alg_key);
}
return result;
}
var rst = new ResultsetTable({ sql:sqln,
keyColumn: "alg_gebouw_key",
ID: "algtable",
@@ -340,7 +360,6 @@ function gebouw_list(pautfunction, params)
}
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_bruto_vloeropp"), content: "alg_gebouw_bruto_vloeropp", datatype: "float", decimals: 2}));
rst.addColumn(new Column({caption: L("lcl_alg_vervaldatum"), content: "alg_gebouw_vervaldatum", datatype: "date"}));
if (outputmode != 0)
{
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_opmerk"), content: "alg_gebouw_opmerking"}));
@@ -353,6 +372,8 @@ function gebouw_list(pautfunction, params)
}
if (ins_score_enabled)
rst.addColumn(new Column({caption: L("lcl_alg_gebouw_mjb_score1"), content: "alg_gebouw_mjb_score1", datatype: "number"}));
if (flexParams.anyflex)
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
rst.addAction({ action: "gebouwEdit", caption: L("lcl_edit"), isDefault: true});
if (S("cnd_gebreken_srtdisc_key") > -1)

View File

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

View File

@@ -49,6 +49,7 @@ if (room_key > 0)
var flr_oms = oRs("alg_verdieping_omschrijving").value;
var room_nr = oRs("alg_ruimte_nr").value;
var room_name = " " + bld_code + "-" + flr_oms + "-" + room_nr;
oRs.Close();
}
else
{

View File

@@ -110,7 +110,9 @@ function ruimte_list(pautfunction, params)
</head>
<body id="listbody">
<% var sqln = "SELECT r.alg_ruimte_key"
<%
var flexParams = alg.alg_onroerendgoed_flex_params("R");
var sqln = "SELECT r.alg_ruimte_key"
+ ", v.alg_verdieping_key"
+ ", v.alg_gebouw_key"
+ ", g.alg_locatie_key"
@@ -130,6 +132,14 @@ function ruimte_list(pautfunction, params)
+ ", r.alg_ruimte_opp_alt1"
+ ", r.alg_ruimte_opp_alt2"
+ ", r.alg_ruimte_verwijder"
+ " , (SELECT MAX(t.fac_tracking_datum)"
+ " FROM fac_tracking t"
+ " , fac_srtnotificatie sn"
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
+ " AND t.fac_tracking_refkey = r.alg_ruimte_key"
+ " AND sn.fac_srtnotificatie_xmlnode = 'ruimte'"
+ " ) recentdatum"
+ flexParams.sql
+ " FROM alg_ruimte r"
+ ", alg_verdieping v"
+ ", alg_gebouw g"
@@ -206,6 +216,19 @@ function ruimte_list(pautfunction, params)
+ ", v.alg_verdieping_volgnr ASC"
+ ", r.alg_ruimte_upper_nr ASC"
var addurl = "appl/alg/alg_ruimte.asp?a=1";
addurl += buildTransitParam(["locatiekey", "gebouwkey", "verdiepingkey", "ruimtekey"], params) // TODO: welke allemaal?
if (canAdd)
{
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
}
/**********************************
* Callback functies ResultsetTable
*********************************/
var recent = new Date();
function fnrowData(oRs)
{
var parent_key = oRs("alg_verdieping_key").Value;
@@ -217,6 +240,37 @@ function ruimte_list(pautfunction, params)
return JSON.stringify(data);
}
function fnrowClass(oRs) // identiek aan de andere niveaus
{
var lclass = "";
// Tracking: hoe lang geleden voor het laatst gewijzigd?
if (oRs.Fields("recentdatum").Value != null)
{
var ltrackdate1 = new Date();
var ltrackdate10 = new Date();
var ltrackdate100 = new Date();
var alg_onrgoed_recent = S("alg_onrgoed_recent");
ltrackdate1.setMinutes(recent.getMinutes() - alg_onrgoed_recent);
ltrackdate10.setMinutes(recent.getMinutes() - alg_onrgoed_recent * 12);
ltrackdate100.setMinutes(recent.getMinutes() - alg_onrgoed_recent*12*2);
var fac_recent = new Date(oRs.Fields("recentdatum").Value);
if (fac_recent > ltrackdate1)
{
lclass += " updated";
}
else if (fac_recent > ltrackdate10)
{
lclass += " updated10";
}
else if (fac_recent > ltrackdate100)
{
lclass += " updated100";
}
}
return lclass;
}
var floorCache = [];
// Voor performance bekijken we de rechten per verdieping. In de praktijk nauwkeurig genoeg
function fnrowActionEnabler(oRs)
@@ -243,12 +297,19 @@ function ruimte_list(pautfunction, params)
return flexParams;
}
var addurl = "appl/alg/alg_ruimte.asp?a=1";
addurl += buildTransitParam(["locatiekey", "gebouwkey", "verdiepingkey", "ruimtekey"], params) // TODO: welke allemaal?
if (canAdd)
function fncolFlexBijlagen(oRs)
{
addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
var flexval = oRs("flex").Value;
var alg_key = oRs("alg_ruimte_key").Value;
var result = ( flexval
? safe.html(flexval.replace(/\r/g, "\n")+ "\n")
: ""
);
if (flexParams.bijlageflex)
{
result += alg.alg_onroerendgoed_flex_bijlagen("R", alg_key);
}
return result;
}
var rst = new ResultsetTable({ sql: sqln,
@@ -257,6 +318,7 @@ function ruimte_list(pautfunction, params)
title: L("lcl_menu_alg_ruimte"),
showAll: showall,
rowData: fnrowData,
rowClass: fnrowClass,
rowActionEnabler: fnrowActionEnabler,
outputmode: outputmode,
flexModule: "ALG",
@@ -296,6 +358,8 @@ function ruimte_list(pautfunction, params)
}
if (expalgincl)
rst.addColumn(new Column({caption: L("lcl_alg_vervaldatum"), content: "alg_ruimte_verwijder", datatype: "date"}));
if (flexParams.anyflex)
rst.addColumn(new Column({caption: flexParams.flexlabel, content: fncolFlexBijlagen, colName: "fncolFlexBijlagen"}));
rst.addAction({ action: "ruimteEdit", caption: L("lcl_edit"), isDefault: true });
rst.addAction({ action: "ruimteEditMulti", caption: L("lcl_alg_multi_edit"), multi: true, multiOnce: true, single: false, enabler: "eEditMulti"});

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 = alg.checkAutorisation();
var authparams = user.has("WEB_ALGMSU") && alg.checkAutorisation(true);
var canAdd = (authparams.mALGwritelevel < 9);
// Voor resulttable de globalen zetten; zou ng anders moeten.

View File

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

View File

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

View File

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

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,
import_app_key: oRs("fac_import_app_key").Value
stylesheet_out: oRs("fac_api_stylesheet_out").Value
};
if (this.apidata.loglevel > 1) // Zet maar op 3 als je HTML logging wilt
@@ -106,7 +106,7 @@ API_func.prototype.error = function (msg)
Response.Write(safe.html(msg));
// Op productie zie je bovenstaande Response.Write ook niet terug in Fiddler omdat
// 'detailed error messages' uit staat. Daarom ook maar loggen voor het gemak.
__DoLog(safe.html(msg), "ff0000");
__DoLog(safe.html(msg), "#ff0000");
}
Response.End;
}
@@ -116,11 +116,13 @@ API_func.prototype.error = function (msg)
function RequestJSON(loglevel)
{
var jvraag;
if(Request.TotalBytes > 0)
if(Request.TotalBytes == 0)
{
var lngBytesCount = Request.TotalBytes;
jvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
return { error: "Empty body posted" }
}
var lngBytesCount = Request.TotalBytes;
jvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
__Log("Vraag: " + jvraag);
try
{
@@ -139,13 +141,16 @@ function RequestJSON(loglevel)
function RequestXML(API)
{
var xvraag;
if(Request.TotalBytes > 0)
if(Request.TotalBytes == 0)
{
var lngBytesCount = Request.TotalBytes;
xvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
if (API.apidata.loglevel)
__Log2File(xvraag, API.APIname + "_IN");
return { error: "Empty body posted" }
}
var lngBytesCount = Request.TotalBytes;
xvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
if (API.apidata.loglevel)
__Log2File(xvraag, API.APIname + "_IN");
__Log("Request body: " + xvraag);
try
{
@@ -170,7 +175,11 @@ function styledRequestXML(API)
var parsed = RequestXML(API);
if (parsed.error)
{
__DoLog( "Error loading XML: " + parsed.error, "#ff0000");
var method = String(Request.ServerVariables("REQUEST_METHOD"));
if (method != "POST") // gebeurt nog wel eens
{
__DoLog( "Weird: expected method POST, got " + method);
}
API.error("Error loading XML: " + parsed.error);
}

View File

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

View File

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

View File

@@ -39,25 +39,35 @@ function abortRejectMail(tekst, maillog, optionalColor)
function stripHtml(html)
{
html = (html||"");
html = html.replace(/([=][\n])/g, ""); // Een = en crlf aan het einde is een afgebroken regel. Deze weer aan elkaar zetten.
html = stripStyle(html);
// verwijder html-tags
html = html.replace(/(<br\s*\/?>)/ig,"\n\r");
html = html.replace(/(<([^>]+)>)/ig,"");
// &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,":");
html = stripCharcodes(html);
return html;
}
function stripStyle(html)
{
html = (html||"");
html = html.replace(/<style>[^<]*<\/style>/igm, "");
html = html.replace(/(<style[^<]*<\/style>)/igm, "");
return html;
}
function stripCharcodes(html)
{
html = (html||"");
// Vervang lettercodes door het teken zelf.
html = html.replace(/(&#x(\d|[a-f])+;)/ig
, function(a){
return String.fromCharCode(parseInt(a.substr(3,a.length-4), 16));
}
);
html = html.replace(/(&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
return html;
}
@@ -213,6 +223,7 @@ function getEmailSetting(xmlReq, xmlParameters)
+ " fac_email_setting_attachpath,"
+ " fac_email_setting_attachext,"
+ " fac_email_setting_reqattachext,"
+ " fac_email_setting_attachmaxkb,"
+ " fac_email_setting_loglevel,"
+ " prs_perslid_key_auth"
+ " FROM fac_email_setting"
@@ -230,6 +241,7 @@ function getEmailSetting(xmlReq, xmlParameters)
else
{ // Er bestaat minimaal 1 fac_email_setting record.
var allowedSetting = {};
var rejectedAttach = [];
var hasRequiredAttachment = false;
while (!oRs.eof && !hasRequiredAttachment)
{
@@ -242,6 +254,7 @@ function getEmailSetting(xmlReq, xmlParameters)
required_attachext: oRs("fac_email_setting_reqattachext").Value,
prs_perslid_key_auth: oRs("prs_perslid_key_auth").Value,
attachpath: oRs("fac_email_setting_attachpath").Value,
attach_maxkb: oRs("fac_email_setting_attachmaxkb").Value,
fromMode: oRs("fac_email_setting_frommode").Value,
from: oRs("fac_email_setting_from").Value,
loglevel: oRs("fac_email_setting_loglevel").Value
@@ -260,7 +273,14 @@ function getEmailSetting(xmlReq, xmlParameters)
emlSetting.requiredFound = attachResult.requiredFound;
hasRequiredAttachment = attachResult.requiredFound;
allowedSetting = emlSetting;
delete result.rejectMail;
if (attachResult.rejectedFiles.tekst != "")
{
result.rejectMail = attachResult.rejectedFiles;
}
else
{
delete result.rejectMail;
}
}
else
{
@@ -297,11 +317,13 @@ function emailAction(emlSetting, xmlParam, resultParam)
"BEGIN " + emlSetting.action + " (" + safe.quoted_sql(emlSetting.theFrom) + ","
+ safe.quoted_sql(xmlParam.toAddr) + ","
+ safe.quoted_sql(xmlParam.Subject || L("lcl_fac_hmail_no_subject")) + "," // de actions kunnen slecht tegen lege subject
+ safe.quoted_sql(v_body, 3990) + "," // HSLE#33588 10 karakters speling
+ "?, "
+ safe.quoted_sql(xmlParam.sessionId) + ","
+ emlSetting.key + ");"
+ "END;";
Oracle.Execute(actionsql);
var oparams = [ { typ: adLongVarChar, dir: adParamInput, val: v_body.substr(0, S("mld_melding_oms_maxlen")==4000?3990:S("mld_melding_oms_maxlen")) } ];
Oracle.ExecuteParam(actionsql, oparams);
// Nog iets specifieks terug te melden voor de logging?
var sql = "SELECT fac_result_waarde"
@@ -399,6 +421,7 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
{
var requiredFound = false;
var allowedFiles = [];
var rejectedFiles = { tekst: [], maillog: []};
var Attachments = xmlReq.getElementsByTagName("attachment");
for (var i=0; i < Attachments.length; i++)
@@ -406,6 +429,10 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
var safefilename = safe.filename(XMLval(Attachments[i], "filename", i));
var extension = safefilename.substr(safefilename.lastIndexOf("."));
var attsize = parseInt(XMLval(Attachments[i], "size", i), 10);
if (emlSetting.attach_maxkb && emlSetting.attach_maxkb > 0) {
var filesize_MB = (attsize / 1024 / 1024).toFixed(3); // attsize is in bytes. Maak er MB van.
var maxsize_MB = (emlSetting.attach_maxkb / 1024).toFixed(3); // attach_maxkb in in kB. Maak er MB van.
}
if (safefilename == S("fac_logo_file"))
{ // Waarschijnlijk een FACILITOR bon gereply'd
__Log("Bijlage {0} genegeerd.".format(safefilename));
@@ -414,6 +441,13 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
{
__Log("Bijlage {0} genegeerd, te klein met {1} bytes.".format(safefilename, attsize));
}
else if ( emlSetting.attach_maxkb && emlSetting.attach_maxkb > 0 // Er is een maximum bestandsgrootte ingesteld
&& parseFloat(filesize_MB) > parseFloat(maxsize_MB)) // En die is overschreden
{
__Log(L("fac_email_setting_err1").format(safefilename, filesize_MB, maxsize_MB));
rejectedFiles.tekst.push(L("fac_email_setting_err1").format(safefilename, filesize_MB, maxsize_MB));
rejectedFiles.maillog.push(("Bijlage {0} te groot: {1} bytes").format(safefilename, attsize));
}
else if (!new RegExp(S("flexallowedext"), "ig").test(safefilename))
{ // Niet ondersteunde bestandstype
__DoLog("Onbekende extensie e-mail bijlage: {0} ({1} bytes) van {2}. Bestand is niet opgeslagen.".format(safefilename, attsize, emlSetting.theFrom));
@@ -435,7 +469,11 @@ function checkAttach(xmlReq, xmlParameter, emlSetting)
}
var attachResult = { requiredFound: requiredFound,
allowedFiles: allowedFiles
allowedFiles: allowedFiles,
rejectedFiles: { tekst: rejectedFiles.tekst.join("\n"),
maillog: rejectedFiles.maillog.join("\n"),
optionalColor: "#ff4"
}
};
return attachResult;
}
@@ -564,7 +602,6 @@ function saveAttachments(xmlReq, emlSetting, xmlParam, resultParam)
}
result.attachments = safeFiles;
}
__Log(result);
return result;
}
@@ -611,7 +648,7 @@ var xmlReq = parsed.xml;
var xmlParameters = getXml(xmlReq);
var emlResult = getEmailSetting(xmlReq, xmlParameters);
if (emlResult.emlSetting)
if (emlResult.emlSetting && !emlResult.rejectMail)
{
var emlSetting = emlResult.emlSetting;
if (emlSetting.loglevel > 0)

View File

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

View File

@@ -494,7 +494,13 @@ for (var i = 0; i < opdrachten.length; i++)
// Dit zijn de wijzigingen, die voeren we alleen uit bij een geldige statuswijziging
// of geen statuswijziging
if (opdropmerking != null)
var canOpmChange = opdraction == "insert" ||
this_opdr.canOpmChange &&
( S("mld_afhandeling_restrict_edit") == 0 // Hier mag het afhandeling veld altijd aangepast worden
|| opdrstatus != null && (oldstatus == 5 || oldstatus == 8) && // En anders alleen bij het afmelden, afwijzen of annuleren
( opdrstatus == 'ORDAFM' && this_opdr.canClose // Verifieer dat we gaan (en mogen) afmelden
|| opdrstatus == 'ORDCAN' && this_opdr.canCancel)); // Verifieer dat we gaan (en mogen) annuleren
if (opdropmerking != null && canOpmChange)
{ // opmerking bij de opdracht
var new_opm = opdropmerking;
if (ORDremark == 5) // Append
@@ -539,11 +545,11 @@ for (var i = 0; i < opdrachten.length; i++)
}
}
if (opdrkosten != null)
if (opdrkosten != null && (opdraction == "insert" || this_opdr.canUrenMatChange))
opdr_fields.push({ dbs: "mld_opdr_kosten", typ: "float", val: opdrkosten, track: L("lcl_total_cost") });
if (opdruren != null)
if (opdruren != null && (opdraction == "insert" || this_opdr.canUrenMatChange))
opdr_fields.push({ dbs: "mld_opdr_uren", typ: "float", val: opdruren, track: L("lcl_hours") });
if (opdrmateriaal != null)
if (opdrmateriaal != null && (opdraction == "insert" || (this_opdr.typeopdr_materiaal < 2 && this_opdr.canUrenMatChange)))
opdr_fields.push({ dbs: "mld_opdr_materiaal", typ: "float", val: opdrmateriaal, track: L("lcl_mld_material") });
if (opdruurloon != null)
opdr_fields.push({ dbs: "mld_opdr_uurloon", typ: "float", val: opdruurloon, track: L("lcl_prs_person_uurloon") });
@@ -552,7 +558,7 @@ for (var i = 0; i < opdrachten.length; i++)
var formattedID = ins_srtdiscipline_prefix + opdrid;
var orddat_tracking = "";
if (opdrgereed != null)
if (opdrgereed != null && (opdraction == "insert" || this_opdr.canDatesChange))
{
var old_einddatum = mld_opdr.mld_opdr_einddatum;
var new_einddatum = XMLtoJsDate(opdrgereed);
@@ -567,7 +573,7 @@ for (var i = 0; i < opdrachten.length; i++)
// Plandatum wordt apart getracked want deze heeft zijn eigen tracking code (ORDPLD)
var ordpld_tracking = "";
if (plandatum != null)
if (plandatum != null && (opdraction == "insert" || this_opdr.canPlanDatesChange))
{
var new_plandatum;
if (plandatum == "")
@@ -589,7 +595,7 @@ for (var i = 0; i < opdrachten.length; i++)
// Plandatum2 wordt apart getracked want deze heeft zijn eigen tracking code (ORDPL2)
var ordpl2_tracking = "";
if (S("mld_use_plandate2") & 2 && plandatum2 != null)
if ((S("mld_use_plandate2") & 2 && plandatum2 != null) && (opdraction == "insert" || this_opdr.canPlanDatesChange))
{
var new_plandatum2;
if (plandatum2 == "")
@@ -822,6 +828,7 @@ for (var i = 0; i < opdrachten.length; i++)
if (newstatus != -1)
{
add_note(); // zodat we note_key hebben
mld.setopdrachtstatus(opdr_key, newstatus, null, note_key);
// Hier terugchecken van de status
tsql = "SELECT mld_statusopdr_key FROM mld_opdr"
@@ -897,8 +904,6 @@ for (var i = 0; i < opdrachten.length; i++)
// Zodat die bij de FO weer onder Inbehandeling valt.
mld.setmeldingstatus (mld_key, 4); // Geaccepteerd
}
// else status van de melding niet aanpassen.
resultcode = 0;
}
else
{
@@ -911,36 +916,9 @@ for (var i = 0; i < opdrachten.length; i++)
if (resultcode == -1) // Nog steeds geen fouten.
{
if (opdraction == "update" && opdrnote != null)
{
var fields = [ { dbs: "mld_opdr_note_key", typ: "key", seq: "mld_s_mld_opdr_note_key" },
{ dbs: "mld_opdr_key", typ: "key", val: opdr_key },
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
{ dbs: "mld_opdr_note_flag", typ: "number", val: opdrnoteflag || 4 }, // default alleen uitvoerende, +1 voor FE-zichtbaar
{ dbs: "mld_opdr_note_omschrijving", typ: "varchar", val: opdrnote, len: 4000 }
];
var noteIns = buildInsert("mld_opdr_note", fields, { noValidateToken: true });
note_key = noteIns.sequences["mld_opdr_note_key"];
Oracle.Execute(noteIns.sql);
// later registreren we eventueel nog een tracking_key
}
// Registeren bij de laatste notitie
if (note_key > 0)
{
var tracking_key = coalesce(coalesce(status_tracking_key, datum_tracking_key), update_tracking_key); // volgorde van belangrijkheid
if (!(tracking_key > 0))
{ // Er is alleen een losse notitie. De opdracht is niet aangepast.
if ((opdrnoteflag & 1) == 1) // voor FE-zichtbaar
tracking_key = mld.trackmeldingaddnote(mld_key); // MLDNOT tracking.
else
tracking_key = mld.trackopdrachtaddnote(opdr_key); // ORDNOB tracking.
}
var sql = "UPDATE mld_opdr_note"
+ " SET fac_tracking_key = " + tracking_key
+ " WHERE mld_opdr_note_key = " + note_key;
Oracle.Execute(sql);
}
var tracking_key = coalesce(coalesce(status_tracking_key, datum_tracking_key), update_tracking_key); // volgorde van belangrijkheid
add_note(tracking_key); // voor als nog niet eerder gebeurd
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze opdracht.
}
@@ -975,6 +953,37 @@ for (var i = 0; i < opdrachten.length; i++)
} // end for
// Alle opdracht-nodes zijn behandeld.
// Voeg een notitie toe en koppel hem eventueel direct aan tracking_key
function add_note(tracking_key)
{
if (/*global*/ note_key > 0)
return; // hadden we het al gedaan
if (opdraction == "update" && opdrnote != null)
{
var fields = [ { dbs: "mld_opdr_note_key", typ: "key", seq: "mld_s_mld_opdr_note_key" },
{ dbs: "mld_opdr_key", typ: "key", val: opdr_key },
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
{ dbs: "mld_opdr_note_flag", typ: "number", val: opdrnoteflag || 4 }, // default alleen uitvoerende, +1 voor FE-zichtbaar
{ dbs: "mld_opdr_note_omschrijving", typ: "varchar", val: opdrnote, len: 4000 }
];
var noteIns = buildInsert("mld_opdr_note", fields, { noValidateToken: true });
note_key = noteIns.sequences["mld_opdr_note_key"];
Oracle.Execute(noteIns.sql);
if (!(tracking_key > 0))
{ // Er is alleen een losse notitie. De opdracht is niet aangepast.
if ((opdrnoteflag & 1) == 1) // voor FE-zichtbaar
tracking_key = mld.trackmeldingaddnote(mld_key); // MLDNOT tracking.
else
tracking_key = mld.trackopdrachtaddnote(opdr_key); // ORDNOB tracking.
}
var sql = "UPDATE mld_opdr_note"
+ " SET fac_tracking_key = " + tracking_key
+ " WHERE mld_opdr_note_key = " + note_key;
Oracle.Execute(sql);
}
}
// Als key1 geldig is heeft die de voorkeur, anders keys
function coalesce(key1, key2)
@@ -1040,6 +1049,7 @@ function upsertKenmerk(kenmerken, topdr_key, opdr_key)
switch (kenmerk_type)
{
case 'R':
case 'r':
case 'S':
{
// read reference fields
@@ -1058,7 +1068,7 @@ function upsertKenmerk(kenmerken, topdr_key, opdr_key)
{ // We ondersteunen alleen nog maar karakter- en bestandsnaam-velden.
// AEG: Maar wat maakt een nummer nu anders dan een karakter ?
var vnew = kenmerk_waarde;
if (kenmerk_type == 'R' || kenmerk_type == 'S')
if (kenmerk_type == 'R' || kenmerk_type == 'r' || kenmerk_type == 'S')
{
if (vnew)
{
@@ -1071,7 +1081,7 @@ function upsertKenmerk(kenmerken, topdr_key, opdr_key)
{
var kenmerkopdr_key = oRs("mld_kenmerkopdr_key").Value;
var vold = oRs("mld_kenmerkopdr_waarde").Value; // Voor tracking
if (kenmerk_type == 'R' || kenmerk_type == 'S')
if (kenmerk_type == 'R' || kenmerk_type == 'r' || kenmerk_type == 'S')
{
if (vold)
{
@@ -1389,6 +1399,14 @@ function upsertOpdrRegels(regels, mld_opdr)
xmlResp.appendChild(FCLTElement);
if (API.apidata.errorhandling == 1)
{
if (resultcode > 0) // -1 en 0 zijn 'goed'
{
Response.Status = '400 Bad Request';
}
}
Response.ContentType = "text/xml";
if (API.apidata.stylesheet)
{ // Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...

View File

@@ -169,7 +169,8 @@ __Log("== Entering shorturl.asp ==");
}
else
{
var sql = "SELECT fac_bookmark_path,"
var sql = "SELECT fac_bookmark_key,"
+ " fac_bookmark_path,"
+ " fac_bookmark_query," // Ooit was bedacht dat je de parameters apart in fac_bookmark_query stopt.
+ " prs_perslid_key_auth," // In de praktijk stoppen mensen het ook vaak in fac_bookmark_path
+ " fac_bookmark_unauth_url," // Dat kunnen we tegenwoordig (2018.1 Gold C) ook wel aan.
@@ -201,6 +202,7 @@ __Log("== Entering shorturl.asp ==");
}
var refresher = oRs("fac_bookmark_refreshtime").Value;
var bookmark_naam = oRs("fac_bookmark_naam").Value;
var bookmark_key = oRs("fac_bookmark_key").Value;
if (user_key < 0)
{
@@ -215,7 +217,9 @@ __Log("== Entering shorturl.asp ==");
Session("fallback_user_key") = falluser_key; // wordt opgepikt door loginTry.asp
}
else
{
Session("unauth_url") = oRs("fac_bookmark_unauth_url").Value; // wordt opgepikt door common.asp
}
}
var params = oRs("fac_bookmark_query").Value;
@@ -241,6 +245,9 @@ __Log("== Entering shorturl.asp ==");
if (oRs("fac_bookmark_flags").Value == 0)
var url = protectQS.create(url); // prs/pchange_reset.asp, PRS\prs_perslid_qr_confirm.asp en PRS\self_register_confirm.asp verwachten dit
if (user_key > -1)
shared.registeraction("bookmark", {refkey: bookmark_key, info: bookmark_naam, daily: S("fac_gui_counter_menu_daily")});
oRs.Close();
}

View File

@@ -112,6 +112,7 @@ api2 = {
case "color":
case "symbol":
case "varchar":
case "clob":
val = getFParam(formfields[i].frm, null);
break;
case "processingtime":
@@ -187,6 +188,7 @@ api2 = {
filter = "exact";
break;
case "varchar":
case "clob":
case "memo":
case "html":
filter = "like";
@@ -403,6 +405,7 @@ api2 = {
break;
case "varchar": // Als fld.match(/^fclt_d_/) dan is het een old-style rapport filterveld
case "memo":
case "clob":
case "html":
if (filterval instanceof Array)
{ // O.a. multi filter bij rapportages.
@@ -524,7 +527,7 @@ api2 = {
else if (typeof operand == "string" && operand != " NOT IN " && operand != " IN ")
operand = isNot ? " NOT LIKE " : " LIKE ";
if (field.typ == "varchar" || field.typ == "memo" || field.typ == "html")
if (field.typ == "varchar" || field.typ == "memo" || field.typ == "clob" || field.typ == "html")
{
if (field.islcl)
dbs = "lcl.l({0}, 1)".format(dbs);
@@ -533,7 +536,7 @@ api2 = {
}
if (field.caseinsensitive)
{
dbs = "UPPER(" + dbs + ")";
dbs = field.hasupper || "UPPER(" + dbs + ")";
if (safe_val instanceof Array)
for (var i = 0; i < safe_val.length; i++)
safe_val[i] = safe_val[i].toUpperCase();
@@ -691,6 +694,10 @@ api2 = {
+ " WHERE xx." + model.primary + " = " + model.table + "." + model.primary + ")";
selects.push(sqleenh + " AS " + fld + "_eenheid");
}
else if (field.typ == "clob" && !params.filter.id)
{ // er *kan* een discx3d overheen gaan wat tot een UNION kan leiden wat niet mag met een CLOB
selects.push("TO_CHAR(SUBSTR({0}, 1, 4000)) AS {0}".format(field.dbs));
}
else if (dbs)
{
// veldnamen moeten gelijk zijn bij het ophalen. Zie ook: sql2jsonval
@@ -1701,6 +1708,8 @@ function _validateJsondata(jsondata, model)
case "float":
if (typeof data === "string" && data.match(/^\d+$/)) // "resroom": "823" staan we nog wel toe
data = parseInt(data, 10);
if (typeof data === "string" && (type == "float" || type == "currency") && data.match(/^[\.\d]+$/)) // "uren": "123.4" staan we nog wel toe
data = parseFloat(data);
if (typeof data === "number" && isFinite(data))
valid = true;
break;
@@ -1738,6 +1747,7 @@ function _validateJsondata(jsondata, model)
case "color":
case "symbol":
case "varchar":
case "clob":
if (typeof data == "string")
valid = true;
break;
@@ -1983,6 +1993,10 @@ function generic_REST_POST(model, gparams)
var xxxIns = buildInsert(model.table, dbfields, { noValidateToken: true });
var the_key = xxxIns.sequences[model.fields.id.dbs];
// TODO: Generieke tracking?
if (params.sqlOnly)
{ // Alleen de sql terugsturen
return { genIns: xxxIns, newKey: the_key };
}
var err = Oracle.Execute(xxxIns.sql, true);
if (err.friendlyMsg)
@@ -2056,6 +2070,10 @@ function generic_REST_PUT(model, gparams)
var xxxUpd = buildTrackingUpdate(model.table, wheres.join(" AND " ), dbfields, tracking_params);
var xxxTrack = xxxUpd.trackarray;
// TODO: Generieke tracking?
if (params.sqlOnly)
{ // Alleen de sql terugsturen
return { genUpd: xxxUpd };
}
if (xxxUpd) // Misschien geen velden opgegeven.
{

View File

@@ -25,13 +25,10 @@ var api2_mapper = {
"rooms" : { "filename": "appl/api2/api_rooms.asp", "module": "ALG" },
"districts" : { "filename": "appl/api2/api_districts.asp", "module": "ALG" },
"orderdisciplines" : { "filename": "appl/mgt/bes_discipline.asp" },
"ordercatalogues" : { "filename": "appl/mgt/bes_disciplineprod.asp" },
"orderunits" : { "filename": "appl/mgt/bes_grootheid.asp" },
"orderlineproperties" : { "filename": "appl/mgt/bes_kenmerk.asp" },
"orderproperties" : { "filename": "appl/mgt/bes_kenmerkbestel.asp" },
"orderarticlegroups" : { "filename": "appl/mgt/bes_srtgroep.asp" },
"orderpropertytypes" : { "filename": "appl/mgt/bes_srtkenmerk.asp" },
"orderproductgroups" : { "filename": "appl/mgt/bes_srtprodgroep.asp", "lcl_name": "bes_srtgroep_m" },
"orderpacelisttables" : { "filename": "appl/mgt/bes_staffeltabel.asp" },
"visitoractions" : { "filename": "appl/mgt/bez_actie.asp" },
"visitorproperties" : { "filename": "appl/mgt/bez_kenmerk.asp" },
@@ -161,6 +158,7 @@ var api2_mapper = {
"generictables" : { "filename": "appl/mgt/mgt_generic.asp", "hidden": true },
"genericselect" : { "filename": "appl/mgt/mgt_generic_select.asp", "hidden": true },
"bestpractices" : { "filename": "appl/mgt/fac_bestpractices.asp", "hidden": true },
"systemtables" : { "filename": "appl/mgt/user_tables.asp", "hidden": true },
"workflowexpressions" : { "filename": "appl/mgt/mld_workflow_expression.asp", "hidden": true } // dit is geen model
}

View File

@@ -702,44 +702,53 @@ api2_rest = {
Response.write(str_antwoord);
},
// Merk op dat (onbedoeld) de tabel-kolommen bepaald worden door de velden in het *eerste* record
// en niet zozeer door het gedefinieerde fields-object
// Ook: verwacht wordt dat de volgorde van velden altijd gelijk is wat JavaScript 'for' niet
// garandeert (maar in de praktijk wel goed gaat)
json2htmltable: function _json2htmltable(data, model, single)
{
var trs = [];
if (data.length) // Header maken
var ths = [];
if (!data.length)
return "\n<table>\n</table>"
// Header maken
var ths = [];
for (var fld in data[0])
{
var ths = [];
for (var fld in data[0])
var lbl = fld;
if (fld in model.fields)
lbl = model.fields[fld].label;
else
{
var lbl = fld;
if (fld in model.fields)
lbl = model.fields[fld].label;
else
var val = data[0][fld];
if (val && typeof val == "object")
{
var val = data[0][fld];
if (val && typeof val == "object")
{
if (model.includes && fld in model.includes)
var lbl = model.includes[fld].model.records_title;
else
lbl = fld; // Attachments/flexfiles
}
if (model.includes && fld in model.includes)
var lbl = model.includes[fld].model.records_title;
else
lbl = fld; // Attachments/flexfiles
}
ths.push("<th title='{0}'>{1}</th>".format(safe.htmlattr(lbl), fld));
}
trs.push(ths.join(""));
ths.push("<th title='{0}'>{1}</th>".format(safe.htmlattr(lbl), fld));
}
var trs = [];
for (var i = 0; i < data.length; i++)
{
var rec = data[i];
var tds = [];
for (var fld in rec)
for (var fld in data[0]) // Hier dezelfde kolomvolgorde (van eerste record) gebruiken
{
var cls = "";
if (model.fields[fld] && model.fields[fld].typ.match(/number|float|currency|key/) && !model.fields[fld].foreign)
{
cls = " style='text-align:right'";
}
var val = rec[fld];
if (fld in rec)
var val = rec[fld];
else
var val = "";
var safeval = Server.HTMLEncode(String(val));
if (val === null)
safeval = '&nbsp;';
@@ -750,7 +759,7 @@ api2_rest = {
var naam = val.name||"???";
if (typeof naam == 'object' && naam instanceof Date) // Bij appointment
naam = toISODateTimeString(naam);
safeval = val.id + " (" + Server.HTMLEncode(naam) + ")";
safeval = val.id + " <em>(" + safe.html(naam) + ")</em>";
}
else if (val && typeof val == "object" && model.includes && fld in model.includes)
safeval = api2_rest.json2htmltable(val, model.includes[fld].model, true); // dereference
@@ -772,7 +781,9 @@ api2_rest = {
return "\n<table>\n" + html + "\n</table>";
}
else
return "\n<table>\n<tr>" + trs.join("</tr>\n<tr>") + "</tr></table>";
return "\n<table style='border-collapse: separate;'>"
+ "\n<thead><tr style='position:sticky;top:0'>" + ths.join("") + "</tr>\n</thead>"
+ "\n<tbody>\n<tr>" + trs.join("</tr>\n<tr>") + "</tr>\n</tbody>\n</table>";
},
json2csv: function _json2csv(data, model, single)

View File

@@ -13,7 +13,7 @@
*/
%>
<%
function buildKenmerktypeLOV(kenmerktype, emptyOption)
function buildKenmerktypeLOV(kenmerktype, params)
{
var kenmerktypeLOV = "";
switch (kenmerktype)
@@ -32,11 +32,18 @@
break;
case "R":
kenmerktypeLOV = "R;" + L("mgt_srtkenmerk_referentie_l") + ";"
+ "r;" + L("mgt_srtkenmerk_referentie_r") + ";"
+ "S;" + L("mgt_srtkenmerk_referentie_s")
break;
case "S":
kenmerktypeLOV = "S;" + L("mgt_srtkenmerk_referentie_s") + ";"
+ "R;" + L("mgt_srtkenmerk_referentie_l")
+ "R;" + L("mgt_srtkenmerk_referentie_l") + ";"
+ "r;" + L("mgt_srtkenmerk_referentie_r")
break;
case "r":
kenmerktypeLOV = "r;" + L("mgt_srtkenmerk_referentie_r") + ";"
+ "R;" + L("mgt_srtkenmerk_referentie_l") + ";"
+ "S;" + L("mgt_srtkenmerk_referentie_s")
break;
case "X":
kenmerktypeLOV = "X;" + L("mgt_srtkenmerk_bestandsnaam");
@@ -52,11 +59,18 @@
break;
case "L":
kenmerktypeLOV = "L;" + L("mgt_srtkenmerk_label") + ";"
+ "l;" + L("mgt_srtkenmerk_label_i")
+ "l;" + L("mgt_srtkenmerk_label_i") + ";"
+ (params && params.module == "MLD"? "b;" + L("mgt_srtkenmerk_label_ii") : "")
break;
case "l":
kenmerktypeLOV = "l;" + L("mgt_srtkenmerk_label_i") + ";"
+ "L;" + L("mgt_srtkenmerk_label")
+ "L;" + L("mgt_srtkenmerk_label") + ";"
+ (params && params.module == "MLD"? "b;" + L("mgt_srtkenmerk_label_ii") : "")
break;
case "b":
kenmerktypeLOV = "b;" + L("mgt_srtkenmerk_label_ii") + ";"
+ "L;" + L("mgt_srtkenmerk_label") + ";"
+ "l;" + L("mgt_srtkenmerk_label_i")
break;
case "Q":
kenmerktypeLOV = "Q;" + L("mgt_srtkenmerk_blanco");
@@ -68,12 +82,13 @@
kenmerktypeLOV = "V;" + L("mgt_srtkenmerk_checkbox");
break;
default:
kenmerktypeLOV = (emptyOption ? emptyOption + ";" : "")
kenmerktypeLOV = (params && params.emptyOption ? params.emptyOption + ";" : "")
+ "C;" + L("mgt_srtkenmerk_karakter")
+ ";N;" + L("mgt_srtkenmerk_numeriek")
+ ";D;" + L("mgt_srtkenmerk_datum")
+ ";T;" + L("mgt_srtkenmerk_tijd")
+ ";R;" + L("mgt_srtkenmerk_referentie_l")
+ ";r;" + L("mgt_srtkenmerk_referentie_r")
+ ";S;" + L("mgt_srtkenmerk_referentie_s")
+ ";X;" + L("mgt_srtkenmerk_bestandsnaam")
+ ";F;" + L("mgt_srtkenmerk_bestand")
@@ -81,8 +96,8 @@
+ ";M;" + L("mgt_srtkenmerk_bestand_f")
+ ";L;" + L("mgt_srtkenmerk_label")
+ ";l;" + L("mgt_srtkenmerk_label_i")
+ (params && params.module != "MLD"? "" : ";b;" + L("mgt_srtkenmerk_label_ii"))
+ ";Q;" + L("mgt_srtkenmerk_blanco")
// + ";B;" + L("mgt_srtkenmerk_berekening")
+ ";V;" + L("mgt_srtkenmerk_checkbox");
}
return kenmerktypeLOV;

View File

@@ -214,6 +214,36 @@ function model_appointments()
dbfields["action"] = { dbs: "bez_actie_key", typ: "key", val: default_actie };
}
}
// Zet ook de locatie als S("vis_afspraak_onrgoed_uses_keys")=1 en er onrgoed_keys zijn meegegeven.
if (S("vis_afspraak_onrgoed_uses_keys") == 1)
{
if (!jsondata.location)
{
var alg_key = -1;
if (jsondata.room)
alg_key = jsondata.room;
else if (jsondata.floor)
alg_key = jsondata.floor;
else if (jsondata.building)
alg_key = jsondata.building;
if (alg_key > 0) // anders niet meegegeven bij update en/of het is een appointment onder een reservering en er komt nog wel een follow_afspraak
{
var sql = "SELECT MAX(alg_locatie_key) loc_key"
+ " FROM alg_v_allonroerendgoed"
+ " WHERE alg_onroerendgoed_keys = " + alg_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
var loc_key = oRs("loc_key").Value;
dbfields["location"] = { dbs: "alg_locatie_key", typ: "key", foreign: "alg_locatie", val: loc_key};
jsondata.location = loc_key;
}
oRs.Close();
}
}
}
};
this.REST_PUT = function (params, jsondata, the_key) /* update appointment */
@@ -275,13 +305,13 @@ function model_appointments()
this.REST_DELETE = function (params, the_key) /* delete appointment */
{
var wheres = [" bez_afspraak_key = " + the_key];
wheres.push("(bez_afspraak_contact_key = " + user_key // Altijd fe vooralnog
+ " OR bez_afspraak_host_key = " + user_key + ")");
var sql = "DELETE FROM bez_afspraak"
+ " WHERE " + wheres.join(" AND " );
var this_bez = bez.func_enabled_afspraak(the_key);
user.auth_required_or_abort(this_bez.canDelete);
var sql = "DELETE FROM bez_afspraak"
+ " WHERE bez_afspraak_key = " + the_key;
Oracle.Execute(sql);
// Geen tracking (mogelijk) omdat het record echt is verwijderd
};
}

View File

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

View File

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

View File

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

View File

@@ -227,7 +227,7 @@ function model_bes_srtdeel(disc_key)
"dbs": "ins_tab_discipline.ins_discipline_key",
"typ": "key",
"foreign": {
"tbl": "bes_discipline",
"tbl": "bes_v_aanwezigdiscipline",
"key": "ins_discipline_key",
"desc": "(" + lcl.xsql("ins_discipline_omschrijving", "ins_discipline_key") + ")",
"where": (disc_key > -1 ? "ins_discipline_key = " + disc_key : "")

View File

@@ -74,26 +74,24 @@ function model_bes_srtkenmerk(params)
"mask": 1,
"defaultvalue": 0
},
{
"name": "overview_req",
"label": L("mgt_kenmerk_systeem_overview_req"),
"mask": 2,
"defaultvalue": 0
},
/*
{
"name": "conf",
"label": L("mgt_kenmerk_systeem_conf"),
"mask": 4,
"defaultvalue": 0
},
// {
// "name": "conf",
// "label": L("mgt_kenmerk_systeem_conf"),
// "mask": 4,
// "defaultvalue": 0
// },
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 0
},
*/
{
"name": "overview_req",
"label": L("mgt_kenmerk_systeem_overview_req"),
"mask": 2,
"defaultvalue": 0
},
{
"name": "overview_pur",
"label": L("mgt_kenmerk_systeem_overview_pur"),

View File

@@ -1,71 +0,0 @@
<% /*
$Revision$
$Id$
File: model_bes_srtprodgroep.inc
Description: Vanuit CodeCharge gegenereerd model voor bes_srtprodgroep
Context:
Notes:
*/
%>
<%
function model_bes_srtprodgroep()
{
this.records_name = "orderproductgroeps";
this.record_name = "orderproductgroep";
this.table = "bes_srtgroep";
this.primary = "bes_srtgroep_key";
this.autfunction = "WEB_PRDMSU";
this.record_title = L("bes_srtgroep");
this.records_title = L("bes_srtgroep_m");
this.fields = {
"id": {
"dbs": "bes_srtgroep_key",
"label": L("lcl_key"),
"typ": "key",
"required": true,
"seq": "bes_s_bes_srtgroep_key",
"defaultvalue": null
},
"orderdisciplines": {
"dbs": "ins_discipline_key",
"label": L("bes_ins_discipline_key"),
"typ": "key",
"required": true,
"foreign": {
"tbl": "ins_tab_discipline",
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving",
"where": "ins_discipline_verwijder IS NULL AND ins_discipline_module = 'PRD'"
},
"emptyoption": L("mgt_all")
},
"name": {
"dbs": "bes_srtgroep_omschrijving",
"label": L("bes_srtgroep_omschrijving"),
"typ": "varchar"
}
};
this.REST_GET = generic_REST_GET(this,
{ "GET": {
wheres: [ "ins_discipline_key IN"
+ "( SELECT ins_discipline_key"
+ " FROM ins_tab_discipline"
+ " WHERE ins_discipline_module = 'PRD')"
]
}
}
);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this, {});
}
%>

View File

@@ -0,0 +1,110 @@
<% /*
$Revision$
$Id$
File: model_bestpractices.inc
Description: bestpractices model.
Parameters: &failonly=1 laat alleen 'problemen' over
Context: Levert data op of de inrichting wel volgens best-practices is
Notes: Implementatie als api2-model om eenvoudiger XD queries te kunnen doen
*/
// 'best' alleen toevoegen als het afwijkt van de default waarde
// Voeg dan eventueel een remark toe als toelichting
var check_set = [{ name: "auto_https" },
{ name: "fac_html_strictness",
best: "1",
remark: "1=disallow html in messages, res-room description, flex-labels"
},
{ name: "allow_framed_facilitor" },
{ name: "fac_api_allow_impersonate" },
{ name: "fac_allow_jsonp" },
{ name: "prs_password_otp_mode",
best: 6,
remark: "6=Force everyone to use OTP"
},
{ name: "login_remember_days",
best: 0,
remark: "0=Disable 'remember me'"
},
{ name: "csp_header" },
{ name: "csp_header_extradata" },
{ name: "fac_api_allow_impersonate" },
{ name: "fac_api_key_in_url" },
{ name: "flexAllowedExt" },
{ name: "imgAllowedExt" },
{ name: "impAllowedExt" }, // (unused?)
{ name: "referrer_policy_header" },
{ name: "allowedLinkRegex" },
{ name: "fac_emailtoken_auth_expire" },
{ name: "fac_tamper_check" },
{ name: "hsts_maxage" },
{ name: "cookie_samesite" },
{ name: "self_register" } // (wil je niet 'per ongeluk' aan laten staan)
];
resultcodes = { ok: "No problem",
fatal: "No further checks possible, fix and recheck",
error: "Error, fix and recheck",
warning: "Warning: Could be more secure",
inform: "Information only"
}
function model_bestpractices()
{
this.autfunction = "WEB_FACTAB";
this.table = "bestpractices";
this.primary = "id";
this.records_name = "bestpractices";
this.record_name = "bestpractice";
this.fields = { "settingname" : { typ: "varchar" },
"defaultvalue" : { typ: "varchar" },
"best" : { typ: "varchar" },
"remark" : { typ: "varchar" },
"value" : { typ: "varchar" },
"result" : { typ: "varchar" }
};
this.REST_GET = function _GET(params)
{
var best_data = [];
for (var s in check_set)
{
var set = check_set[s];
var one_data = { "settingname" : set.name,
"defaultvalue": null,
"value" : settings.get_setting(set.name, null, true), // overrules verwarren alleen maar, geen S(set.name)
"best" : null,
"remark" : null,
"result" : null
}
var t = Application("SET_T_" + set.name);
var v = String(Application("SET_DEFAULT_" + set.name));
if (t == 'boolean')
v = (v == "true") || (v == "1") || (v.toLowerCase() == "yes");
one_data.defaultvalue = v;
if ("best" in set)
one_data.best = set.best;
else
one_data.best = one_data.defaultvalue;
if (one_data.value == one_data.best)
{
if (params.filter.failonly == '1')
continue;
}
else
{
one_data.result = resultcodes.warning;
if ("remark" in set)
one_data.remark = set.remark;
}
best_data.push(one_data);
};
return best_data;
}
}
%>

View File

@@ -79,14 +79,14 @@ function model_cad_thema()
"position": {
"dbs": "plaats.waar",
"label": L("cad_label_type_waar"),
"typ": "varchar",
"typ": "key",
"hidden_fld": true,
"LOV": buildCadPositionLOV()
},
"situation": {
"dbs": "plaats.situatie",
"label": L("cad_label_type_situatie"),
"typ": "varchar",
"typ": "key",
"hidden_fld": true,
"LOV": buildCadSituationLOV()
},

View File

@@ -138,8 +138,37 @@ model_cnt_disc_params =
"label": L("cnt_discipline_huurder"),
"typ": "check0",
"defaultvalue": 1
},
"options": {
"dbs": "cnt_disc_params_opties",
"label": L("cnt_discipline_verlengbaar"),
"typ": "check0",
"defaultvalue": 0
}
/* // Voor als in cnt_disc_params_opties meerdere bits worden gebruikt om verschillende opties aan te geven:
"options": {
"dbs": "cnt_disc_params_opties",
"label": L("cnt_discipline_optie"),
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 1,
"radios": [
{
"name": "renewable",
"label": L("cnt_discipline_verlengbaar"),
"mask": 1,
"defaultvalue": 0
}
]
}
],
"defaultvalue": 0
}
*/
}
}

View File

@@ -77,7 +77,6 @@ function model_cnt_kenmerk(params)
"dbs": "cnt_srtcontract_key",
"label": L("cnt_srtcontract_key"),
"typ": "key",
"required": true,
"foreign": {
"tbl": "(select ins_discipline_key"
+ " , ins_discipline_omschrijving"
@@ -124,12 +123,12 @@ function model_cnt_kenmerk(params)
"label": L("mgt_kenmerk_toonbaar"),
"typ": "check"
},
"inlist": {
"dbs": "cnt_kenmerk_inlijst",
"label": L("mgt_kenmerk_systeem_overview"),
"typ": "check0",
"multiedit": true
},
// "inlist": { // Dit werkt nog niet voor [CNT]
// "dbs": "cnt_kenmerk_inlijst",
// "label": L("mgt_kenmerk_systeem_overview"),
// "typ": "check0",
// "multiedit": true
// },
"propertydefault": {
"dbs": "cnt_kenmerk_default",
"label": L("mgt_kenmerk_default"),

View File

@@ -47,19 +47,22 @@ function model_fac_email_setting()
"from": {
"dbs": "fac_email_setting_from",
"label": L("fac_email_setting_from"),
"typ": "varchar"
"typ": "varchar",
"multiedit": true
},
"frommode": {
"dbs": "fac_email_setting_frommode",
"label": L("fac_email_setting_frommode"),
"typ": "number",
"required": true,
"LOV": L("fac_email_setting_frommodeLOV")
"LOV": L("fac_email_setting_frommodeLOV"),
"multiedit": true
},
"action": {
"dbs": "fac_email_setting_action",
"label": L("fac_email_setting_action"),
"typ": "varchar"
"typ": "varchar",
"multiedit": true
},
"expire": {
"dbs": "fac_email_setting_expire",
@@ -70,30 +73,41 @@ function model_fac_email_setting()
"attachmentspath": {
"dbs": "fac_email_setting_attachpath",
"label": L("fac_email_setting_attachpath"),
"typ": "varchar"
"typ": "varchar",
"multiedit": true
},
"attachext": {
"dbs": "fac_email_setting_attachext",
"label": L("fac_email_setting_attachext"),
"typ": "varchar"
"typ": "varchar",
"multiedit": true
},
"reqattachext": {
"dbs": "fac_email_setting_reqattachext",
"label": L("fac_email_setting_reqattachext"),
"typ": "varchar"
"typ": "varchar",
"multiedit": true
},
"attachmaxkb": {
"dbs": "fac_email_setting_attachmaxkb",
"label": L("fac_email_setting_attachmaxkb"),
"typ": "number",
"multiedit": true
},
"loglevel": {
"dbs": "fac_email_setting_loglevel",
"label": L("fac_email_setting_loglevel"),
"typ": "number",
"required": true,
"defaultvalue": 0
"defaultvalue": 0,
"multiedit": true
},
"person": {
"dbs": "prs_perslid_key_auth",
"label": L("fac_email_setting_perslid_key"),
"typ": "key",
"foreign": "prs_perslid"
"foreign": "prs_perslid",
"multiedit": true
},
"remark": {
"dbs": "fac_email_setting_opmerking",

View File

@@ -132,17 +132,15 @@ function model_fac_import_app()
"label": L("fac_import_app_prefix"),
"typ": "varchar"
},
"action": {
"dbs": "fac_import_app_action",
"label": L("fac_import_app_action"),
"typ": "varchar",
"required": true,
"defaultvalue": "ORACLE"
},
"delimiter": {
"dbs": "fac_import_app_delimiter",
"label": L("fac_import_app_delimiter"),
"typ": "varchar"
},
"csv": {
"dbs": "fac_import_app_csv",
"label": L("fac_import_app_csv"),
"typ": "check0"
}
};

View File

@@ -13,7 +13,7 @@
%>
<%
function model_fac_notificatie_job(niveau) // J voor Jobs, S voor Scheduled mail
function model_fac_notificatie_job(params) // J voor Jobs, S voor Scheduled mail
{
this.records_name = "notificationjobs";
this.record_name = "notificationjob";
@@ -129,10 +129,15 @@ function model_fac_notificatie_job(niveau) // J voor Jobs, S voor Scheduled mail
"label": L("fac_notificatie_job_queue"),
"typ": "varchar",
"defaultvalue": "DEFAULT"
},
"fac_usrrap_key": {
dbs: "fac_usrrap_key",
typ: "key",
hidden_fld: true
}
};
if (niveau == 'S')
if (params.niveau == 'S')
{
delete this.fields["flags"];
delete this.fields["jobmode"];
@@ -151,6 +156,16 @@ function model_fac_notificatie_job(niveau) // J voor Jobs, S voor Scheduled mail
gparams.GET.wheres.push("prs_perslid_key_receiver = " + user_key); // alleen van jezelf
this.autfunction = false;
}
this.list = {
columns: [
"person",
"receiver",
"interval",
"lastrun",
"nextrun"
]
};
}
else
{
@@ -161,14 +176,15 @@ function model_fac_notificatie_job(niveau) // J voor Jobs, S voor Scheduled mail
wheres: ["fac_notificatie_job_view IS NOT NULL"]
}
};
if (user.has("WEB_PRSSYS"))
{
this.REST_POST = generic_REST_POST(this);
}
}
this.REST_GET = generic_REST_GET(this, gparams);
if (user.has("WEB_PRSSYS"))
{
this.REST_POST = generic_REST_POST(this);
}
this.REST_PUT = generic_REST_PUT(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}
%>

View File

@@ -117,7 +117,7 @@ function model_fac_usrdata(tab_key, params)
{ // Is de waarde een verwijzing naar een andere waarde in een eigen tabel?
if (fld.refdata)
fld.refdata.foreign.tbl = "( SELECT fac_usrdata_key"
+ " , " + lcl.xsql("fac_usrdata_omschr", "fac_usrdata_key")
+ " , " + lcl.xsqla("fac_usrdata_omschr", "fac_usrdata_key")
+ " , fac_usrtab_key"
+ " , fac_usrdata_verwijder"
+ " FROM fac_usrdata"
@@ -126,7 +126,7 @@ function model_fac_usrdata(tab_key, params)
+ (obj.refdata && obj.refdata.id
? " UNION"
+ " SELECT fac_usrdata_key"
+ " , " + lcl.xsql("fac_usrdata_omschr", "fac_usrdata_key") //+ " ||"
+ " , " + lcl.xsqla("fac_usrdata_omschr", "fac_usrdata_key") //+ " ||"
+ " , fac_usrtab_key"
+ " , fac_usrdata_verwijder"
+ " FROM fac_usrdata"

View File

@@ -96,8 +96,38 @@ function model_fin_kenmerk(params)
},
"system": {
"dbs": "fin_kenmerk_systeem",
"label": L("mgt_srtkenmerk_systeem"),
"typ": "check0"
"label": L("mgt_srtkenmerk_systeem_adv"),
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 15,
"radios": [
{
"name": "ksystem",
"label": L("mgt_kenmerk_systeem"),
"mask": 1,
"defaultvalue": 0
},
// {
// "name": "conf",
// "label": L("mgt_kenmerk_systeem_conf"),
// "mask": 4,
// "defaultvalue": 0
// },
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 0
}
]
}
],
"defaultvalue": 0,
"required": true
},
"inlist": {
"dbs": "fin_kenmerk_inlijst",

View File

@@ -14,6 +14,8 @@
%>
<!-- #include file="../Shared/discxalg3d.inc"-->
<!-- #include file="./model_cad_tekening.inc"-->
<!-- #include file="./model_alg_kenmerk.inc"-->
<!-- #include file="./model_custom_fields.inc"-->
<%
function model_floors() {
this.table = "alg_verdieping";
@@ -37,6 +39,11 @@ function model_floors() {
"model": new model_cad_tekening("V", { internal: true }),
"joinfield": "floor",
"enable_update": true
},
"custom_fields" : {
"model": new model_custom_fields(this, new model_alg_kenmerk("V", { internal: true }), { readman: true, readuse: true }),
"joinfield": "flexparentkey",
"enable_update": true
}
};
this.REST_GET = function _GET(params) {

View File

@@ -139,9 +139,23 @@ function model_ins_kenmerk(niveau, params)
"label": L("ins_kenmerk_verplicht"),
"typ": "key",
"LOV": fill_verplicht_LOV(),
"listfunction": function(oRs) {
var val = oRs.Fields("required.name").Value;
if (val === null) {
return L("lcl_mld_niet_verplicht");
}
return val;
},
"emptyoption": L("lcl_mld_niet_verplicht"),
"multiedit": true
},
"requiredstatus": {
"dbs": "ins_kenmerk_verplicht_status",
"label": L("ins_kenmerk_verplicht_status"),
"typ": "key",
"LOV": L("ins_kenmerk_requiredstatusLOV"),
"emptyoption": null
},
"group": {
"dbs": "ins_kenmerk_groep",
"label": L("ins_kenmerk_groep"),
@@ -290,6 +304,7 @@ function model_ins_kenmerk(niveau, params)
}
else
{ //kenmerk_niveau: D | G | S
delete this.fields.requiredstatus;
this.record_title = L("ins_kenmerk");
this.records_title = L("ins_kenmerk_m");
gparams.GET = {tables: ["ins_v_allsrtinstallatie"],

View File

@@ -53,9 +53,9 @@ function model_issues(mld_key, params)
"actiondate" : { dbs: "mld_melding_actiedatum", typ: "datetime", label: L("lcl_mld_actiondate"), track: true},
"treatmentteam":{dbs: "mld_ins_discipline_key", typ: "key", foreign: "mld_discipline", label: L("mld_processing_group"), track: true },
"issuetype" : { dbs: "mld_stdmelding_key", typ: "key", foreign: "mld_stdmelding", label: L("lcl_complain"), track: true },
"description": { dbs: "mld_melding_omschrijving", typ: "varchar", label: L("lcl_descr"), track: true, filter: "like" },
"description": { dbs: "mld_melding_omschrijving", typ: "clob", len: S("mld_melding_oms_maxlen"), label: L("lcl_descr"), track: true, filter: "like" },
"remark" : { dbs: "mld_melding_opmerking", typ: "varchar", label: L("lcl_remark"), track: true},
"subject" : { dbs: "mld_melding_onderwerp", typ: "varchar", label: L("lcl_mld_subject"), track: true},
"subject" : { dbs: "mld_melding_onderwerp", typ: "varchar", label: L("lcl_mld_subject"), track: true, len: 80},
"status" : { dbs: "mld_melding_status", typ: "key", foreign: mld.getmldstatustext, label: L("lcl_status"), track: true, filter: mld.getStatusSql },
"flag" : { dbs: "mld_melding_flag", typ: "key", /* geen echte key, wel key-gedrag */ label: L("lcl_mld_flags"), track: true },
"origin" : { dbs: "mld_meldbron_key", typ: "key", foreign: { tbl: "mld_meldbron",
@@ -481,7 +481,6 @@ function model_issues(mld_key, params)
delete_fld(jsondata, "handler", !this_mld.canAfhandChange);
delete_fld(jsondata, "public", !mld_info.canbepublished);
delete_fld(jsondata, "origin", true);
delete_fld(jsondata, "extern_id", !inArray(mld_info.meldbron_key, S("mld_meldbron_extern")) );
delete_fld(jsondata, "indult" , !(stdm_info.slabewaken && this_mld.canSLAChange) );
delete_fld(jsondata, "completed", !this_mld.canAfrond);
delete_fld(jsondata, "kto", !((mld_info.kto_opt & 2) == 2 && mld_info.kto_verstuurd == null && this_mld.canClose) );
@@ -699,7 +698,7 @@ function model_issues(mld_key, params)
var wheres = [" mld_melding_key = " + mld_key];
var mldUpd = buildTrackingUpdate("mld_melding", wheres.join(" AND " ), dbfields, { noValidateToken: true });
var err = Oracle.Execute(mldUpd.sql, true);
var err = Oracle.Execute(mldUpd, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
}
@@ -801,8 +800,7 @@ function model_issues(mld_key, params)
var mldIns = buildInsert("mld_melding", dbfields, { noValidateToken: true });
var new_key = mldIns.sequences["mld_melding_key"];
var sql = mldIns.sql;
Oracle.Execute(mldIns.sql);
Oracle.Execute(mldIns);
params.filter = { id: new_key }; // De nieuwe mld_melding_key.
var mldtrack = api2.process_includes(params, this, jsondata, new_key);

View File

@@ -170,6 +170,24 @@ function model_mld_kenmerk(niveau, params)
"label": L("mgt_kenmerk_autorisatie"),
"typ": "key",
"foreign": "fac_functie"
},
"treatmentteam": {
"dbs": "ins_discipline_key",
"label": L("mld_processing_group_kenm"),
"typ": "key",
//"foreign": "mld_discipline"
"foreign": {
"tbl": "(SELECT d.ins_discipline_key"
+ " , d.ins_discipline_omschrijving"
+ " FROM mld_v_aanwezigdiscipline d"
+ " , ins_srtdiscipline sd"
+ " , mld_disc_params dp"
+ " WHERE d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND dp.mld_ins_discipline_key = d.ins_discipline_key"
+ " AND BITAND(dp.mld_disc_params_srtgroep, 2) = 2)",
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving"
}
}
};
@@ -251,7 +269,7 @@ function model_mld_kenmerk(niveau, params)
"emptyoption": L("mld_srtdiscipline_m_all")
},
"discipline": {
"dbs": "view_mld_kenmerk.ins_discipline_key", //"mld_discipline.ins_discipline_key",
"dbs": "view_mld_kenmerk.discipline", //"mld_discipline.ins_discipline_key",
"label": L("lcl_mld_vakgroep"),
"typ": "key",
"foreign": "mld_discipline",
@@ -359,8 +377,8 @@ function model_mld_kenmerk(niveau, params)
+ " WHERE mld_srtkenmerk_key = " + issuepropertytype;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
result.lbl_default = (oRs("mld_srtkenmerk_kenmerktype").Value == "l" ? L("mgt_kenmerk_icon"): L("mgt_kenmerk_default"));
result.lbl_readonly = (oRs("mld_srtkenmerk_kenmerktype").Value == "l" ? L("mgt_kenmerk_collapsed"): mld_opdr_readonly);
result.lbl_default = (oRs("mld_srtkenmerk_kenmerktype").Value == "l" || oRs("mld_srtkenmerk_kenmerktype").Value == "b"? L("mgt_kenmerk_icon") : L("mgt_kenmerk_default"));
result.lbl_readonly = (oRs("mld_srtkenmerk_kenmerktype").Value == "l" || oRs("mld_srtkenmerk_kenmerktype").Value == "b"? L("mgt_kenmerk_collapsed") : mld_opdr_readonly);
oRs.Close();
}
return result;
@@ -371,11 +389,16 @@ function model_mld_kenmerk(niveau, params)
{
delete this.fields.filled;
delete this.fields.issuepropertytypename;
delete this.fields.attributetype;
if (obj.id != -1 && obj.level.id == "D")
if (obj.id != -1 && obj.level.id == "D")
delete this.fields.mld_issuetype;
// Het behandelteam alleen tonen bij behandelbare bloktitels in de edit-mode.
if (obj.id != -1 && obj.attributetype && obj.attributetype.id != "b")
delete this.fields.treatmentteam;
delete this.fields.attributetype;
if (!obj.level.name)
{
if (obj.level.id == "M")
@@ -400,6 +423,8 @@ function model_mld_kenmerk(niveau, params)
var ordertype_key = "<%=v_ordertype_key%>";
var kenmerk_key = <%=kenmerk_key%>;
var is_clone = <%=v_isclone%>;
var attributetype = "<%=( (obj.attributetype && obj.attributetype.id) ? obj.attributetype.id : "")%>";
var issuepropertytype = "<%=( (obj.issuepropertytype && obj.issuepropertytype.id) ? obj.issuepropertytype.id : -1)%>";
</script>
<%
}
@@ -429,6 +454,20 @@ function model_mld_kenmerk(niveau, params)
fld["readonly"].label = srttype.lbl_readonly;
}
this.hook_pre_post = function (params, obj)
{ // Verwijder eventuele waarde voor treatmentteam (ins_discipline_key) als het geen bloktitel met behandelaar is.
var sql = "SELECT mld_srtkenmerk_kenmerktype"
+ " FROM mld_srtkenmerk"
+ " WHERE mld_srtkenmerk_key = " + obj.issuepropertytype;
var oRs = Oracle.Execute(sql);
var kenmerktype = oRs("mld_srtkenmerk_kenmerktype").Value;
oRs.Close();
if (kenmerktype != "b")
{
obj.treatmentteam = null;
}
}
var gparams = {"GET": {}};
if (isOpdrachtKenmerk)
{
@@ -445,7 +484,7 @@ function model_mld_kenmerk(niveau, params)
+ " , s.ref_mld_stdmelding_key"
+ " , s.mld_stdmelding_key mld_mld_stdmelding_key"
+ " , s.mld_stdmelding_omschrijving"
+ " , s.ins_discipline_key"
+ " , s.ins_discipline_key discipline"
+ " , s.ins_srtdiscipline_key"
+ " , aantal"
+ " , aantal365"

View File

@@ -20,7 +20,7 @@ function model_mld_meldbron()
this.table = "mld_meldbron";
this.primary = "mld_meldbron_key";
this.soft_delete = "mld_meldbron_verwijder";
this.autfunction = "WEB_PRSSYS";
this.autfunction = "WEB_MLDMGT";
this.record_title = L("mld_meldbron");
this.records_title = L("mld_meldbron_m");
@@ -39,10 +39,45 @@ function model_mld_meldbron()
"typ": "varchar",
"required": true
},
"default": {
"dbs": "mld_meldbron_default",
"label": L("mld_meldbron_default"),
"typ": "check"
"selectable": {
"dbs": "mld_meldbron_kiesbaar",
"label": L("mld_meldbron_kiesbaar"),
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 3,
"radios": [
{
"name": "select_fo",
"label": L("mld_meldbron_kiesbaar1"),
"mask": 1,
"defaultvalue": 0
},
{
"name": "edit_ext",
"label": L("mld_meldbron_kiesbaar2"),
"mask": 2,
"defaultvalue": 0
}
]
}
],
"defaultvalue": "0"
},
"selectable_select_fo": {
"dbs": "selectable_select_fo",
"sql": "CASE WHEN (BITAND(mld_meldbron.mld_meldbron_kiesbaar,1)=1) THEN 1 ELSE 0 END",
"label": L("mld_meldbron_kiesbaar1"),
"typ": "check0"
},
"selectable_edit_ext": {
"dbs": "selectable_exit_ext",
"sql": "CASE WHEN (BITAND(mld_meldbron.mld_meldbron_kiesbaar,2)=2) THEN 1 ELSE 0 END",
"label": L("mld_meldbron_kiesbaar2"),
"typ": "check0"
}
};

View File

@@ -24,6 +24,7 @@ function model_mld_opdr()
this.records_name = "orders";
this.record_name = "order";
this.table = "mld_opdr";
this.trackcode = "ORDUPD";
this.primary = "mld_opdr_key";
this.record_title = L("lcl_fin_mld_opdr");
this.records_title = L("lcl_fin_opdrachten");
@@ -168,13 +169,15 @@ function model_mld_opdr()
"typ": "key",
"required": true,
"foreign": bgt_company_foreign(),
"showtransit": true
"showtransit": true,
"track": true
},
"reference": {
"dbs": "mld_opdr_id",
"label": L("lcl_opdr_id"),
"typ": "varchar",
"showtransit": true
"showtransit": true,
"track": true
},
"ordernr_sort": {
"dbs": "mld_opdr_ordernr_int",
@@ -187,7 +190,8 @@ function model_mld_opdr()
"dbs": "mld_opdr_ordernr",
"label": S("bgt_enabled")? L("bgt_opdr_ordernr") : L("lcl_mld_inf_Ordernr"),
"typ": (S("bgt_enabled")? "number" : "varchar"),
"hidden_fld": true
"hidden_fld": true,
"track": true
},
"sequence": {
"dbs": "mld_opdr_bedrijfopdr_volgnr",
@@ -201,19 +205,22 @@ function model_mld_opdr()
"label": S("bgt_enabled")? L("bgt_budget_account") : L("lcl_mld_kosten"),
"typ": "key",
"foreign": bgt_account_foreign(),
"showtransit": true
"showtransit": true,
"track": true
},
"description": {
"dbs": "mld_opdr_omschrijving",
"label": L("lcl_descr"),
"typ": "varchar"
"typ": "varchar",
"track": true
},
"startdate": {
"dbs": "mld_opdr_datumbegin",
"label": S("bgt_enabled")? L("bgt_contractdatum") : L("lcl_orderdate"),
"typ": S("bgt_enabled")? "date" : "datetime",
"filter": (S("bgt_enabled")? "exact" : "range"),
"showtransit": (S("bgt_enabled")? true : false)
"showtransit": (S("bgt_enabled")? true : false),
"track": true
}
};
@@ -222,25 +229,29 @@ function model_mld_opdr()
"dbs": "mld_opdr_einddatum",
"label": L("lcl_opdr_enddate"),
"typ": "datetime",
"filter": "range"
"filter": "range",
"track": true
},
"plandate": {
"dbs": "mld_opdr_plandatum",
"label": L("lcl_opdr_plandate"),
"typ": "datetime",
"filter": "range"
"filter": "range",
"track": true
},
"plandate2": {
"dbs": "mld_opdr_plandatum2",
"label": L("lcl_opdr_plandate2"),
"typ": "datetime",
"filter": "range"
"filter": "range",
"track": true
},
"contact": {
"dbs": "prs_contactpersoon_key",
"label": L("lcl_contact_pers"),
"typ": "key",
"foreign": mld_contact_foreign()
"foreign": mld_contact_foreign(),
"track": true
},
"costtype": {
"dbs": "prs_kostensoort_key",
@@ -248,24 +259,28 @@ function model_mld_opdr()
"typ": "key",
"foreign": "prs_kostensoort",
"readonly": S("mld_opdr_alt_kostensoort") == 1? false : true,
"LOVinit": ""
"LOVinit": "",
"track": true
},
"hours": {
"dbs": "mld_opdr_uren",
"label": L("lcl_mld_nrhours"),
"typ": "float"
"typ": "float",
"track": true
},
"hourrate": {
"dbs": "mld_opdr_uurloon",
"label": L("lcl_hour_rate"),
"typ": "float",
"iscurrency": true
"iscurrency": true,
"track": true
},
"materialcost": {
"dbs": "mld_opdr_materiaal",
"label": L("lcl_mater_cost"),
"typ": "float",
"iscurrency": true
"iscurrency": true,
"track": true
}
};
@@ -275,14 +290,16 @@ function model_mld_opdr()
"label": S("bgt_enabled")? L("bgt_gecontracteerd") : L("lcl_total_cost") + " " + L("lcl_valutasign"),
"typ": "float",
"iscurrency": true,
"total": true
"total": true,
"track": true
},
"vat": {
"dbs": "mld_opdr_kosten_btw",
"label": L("lcl_mld_opdr_btw"),
"typ": "float",
"iscurrency": true,
"total": true
"total": true,
"track": true
},
"amountincl": {
"dbs": "mld_opdr_kosten_incl",
@@ -297,21 +314,24 @@ function model_mld_opdr()
"iscurrency": true,
"total": true,
"defaultvalue": "0",
"clone": false
"clone": false,
"track": true
},
"status": {
"dbs": "mld_statusopdr_key",
"label": L("lcl_mld_opdr_status"),
"typ": "key",
"foreign": bgt_orderstatus_foreign(),
"defaultvalue": 5
"defaultvalue": 5,
"track": true
},
"owner": {
"dbs": "prs_perslid_key",
"label": L("lcl_mld_starter"),
"typ": "key",
"hidden_fld": true,
"foreign": "PRS_PERSLID"
"foreign": "prs_perslid",
"track": true
},
"issueordertype": {
"dbs": "mld_typeopdr_key",
@@ -321,7 +341,8 @@ function model_mld_opdr()
"foreign": {"tbl": "mld_typeopdr",
"key": "mld_typeopdr_key",
"desc": "mld_typeopdr_omschrijving"},
"hidden_fld": true
"hidden_fld": true,
"track": true
},
"module": {
"dbs": "mld_opdr_module",
@@ -339,13 +360,15 @@ function model_mld_opdr()
"remark": {
"dbs": "mld_opdr_opmerking",
"label": L("lcl_remark"),
"typ": "memo"
"typ": "memo",
"track": true
},
"contract": {
"dbs": "cnt_contract_key",
"label": L("lcl_contract"),
"typ": "key",
"foreign": "cnt_contract"
"foreign": "cnt_contract",
"track": true
},
"_is_clone": { // Wordt alleen gebruikt als hidden kopie veld.
"dbs": "",
@@ -356,7 +379,8 @@ function model_mld_opdr()
"offer": {
"dbs": "mld_opdr_parent_key",
"label": L("lcl_mld_opdr_parent"),
"typ": "key"
"typ": "key",
"track": true
},
"externalnr": {
"dbs": "mld_opdr_externnr",
@@ -1535,6 +1559,44 @@ obj._is_clone=2 --> nieuwe sub-opdracht
}
}
function _keep_editable_fields(jsondata, opdr_info)
{ // Verwijder voor PUT wat niet gewijzigd mag worden.
function delete_fld(jsondata, field, condition)
{
if (condition)
delete jsondata[field];
}
var this_opdr = mld.func_enabled_opdracht(opdr_info.opdr_key);
// Nu per veld eventueel verwijderen.
delete_fld(jsondata, "remark", !this_opdr.canOpmChange || S("mld_afhandeling_restrict_edit") != 0);
delete_fld(jsondata, "company", !this_opdr.canUitvChange);
delete_fld(jsondata, "contact", !this_opdr.canVeldChange);
delete_fld(jsondata, "contract", !this_opdr.canContractChange);
delete_fld(jsondata, "owner", !this_opdr.canVeldChange);
delete_fld(jsondata, "description", !this_opdr.canVeldChange);
delete_fld(jsondata, "startdate", !this_opdr.canDatesChange);
delete_fld(jsondata, "enddate", !this_opdr.canDatesChange);
delete_fld(jsondata, "plandate", (!this_opdr.canPlanDatesChange || !(S("mld_ord_edit_plandates") & 1)));
delete_fld(jsondata, "plandate2", (!this_opdr.canPlanDatesChange || !(S("mld_ord_edit_plandates") & 1)));
delete_fld(jsondata, "account", ((!this_opdr.canKostChange || !opdr_info.tonen_totaal) || S("mld_ord_show_kostenplaats") != 1)); // Setting mld_ord_show_kostenplaats: show kostenplaats field for orders {0=do not show | 1=editable | 2=show}
delete_fld(jsondata, "costtype", S("mld_opdr_alt_kostensoort") == 0); // Setting mld_opdr_alt_kostensoort: Enable use of alternative cost category {0|1} default 0
delete_fld(jsondata, "ordernr", !this_opdr.canVeldChange);
delete_fld(jsondata, "hours" , !this_opdr.canUrenMatChange);
delete_fld(jsondata, "hourrate", !this_opdr.canUrenMatChange);
delete_fld(jsondata, "materialcost", (this_opdr.typeopdr_materiaal >= 2 || !this_opdr.canUrenMatChange));
delete_fld(jsondata, "amount", (!this_opdr.mld_opdr.tonen_correctie || !this_opdr.canUrenMatChange || this_opdr.mld_opdr.correctie_readonly));
delete_fld(jsondata, "sequence", true);
if ((S("fac_api2_compatibility") & 1) != 1)
delete_fld(jsondata, "issueordertype", true);
delete_fld(jsondata, "module", true);
delete_fld(jsondata, "additional", true);
delete_fld(jsondata, "offer", true);
delete_fld(jsondata, "externalnr", true);
delete_fld(jsondata, "externalsyncdate", true);
}
this.REST_PUT = function (params, jsondata, the_key)
{
var x_params = object_merge({}, params, gparams);
@@ -1543,23 +1605,23 @@ obj._is_clone=2 --> nieuwe sub-opdracht
abort_with_warning(L("lcl_shared_no_auth"));
var old_opdrstatus = -1;
var opdr_info = mld.mld_opdr_info(the_key); // Bevat alle info van de opdracht.
var mld_key = opdr_info.mld_key; // De melding key (jsondata.issue.id) is wellicht niet altijd aanwezig.
if (S("bgt_enabled") != 1) // BGT doet niets met mld_melding; mld_opdr heeft zelfs geen mld_melding_key!
{ // Maar voordat wijzigingen worden opgeslagen moet voor niet-BGT worden gecontroleerd of de gebruiker voldoende rechten heeft.
// De opdracht key staat in the_key.
var mld_opdr = mld.mld_opdr_info(the_key); // Bevat alle info van de opdracht.
var mld_key = mld_opdr.mld_key; // De melding key (jsondata.issue.id) is wellicht niet altijd aanwezig.
var opdr_type_key = mld_opdr.opdr_type;
var this_opdr = mld.func_enabled_opdracht(the_key);
old_opdrstatus = mld_opdr.opdr_status;
// De opdracht key staat in the_key.
var opdr_type_key = opdr_info.opdr_type;
var this_opdr = mld.func_enabled_opdracht(the_key);
old_opdrstatus = opdr_info.opdr_status;
}
else
{
var sqls = "SELECT mld_statusopdr_key"
+ " FROM mld_opdr"
+ " WHERE mld_opdr_key = " + the_key;
var oRss = Oracle.Execute(sqls);
old_opdrstatus = oRss("mld_statusopdr_key").Value;
oRss.Close();
var sqls = "SELECT mld_statusopdr_key"
+ " FROM mld_opdr"
+ " WHERE mld_opdr_key = " + the_key;
var oRss = Oracle.Execute(sqls);
old_opdrstatus = oRss("mld_statusopdr_key").Value;
oRss.Close();
}
// De status pas na het inserten zetten zodat er ook getrackt kan worden met de functie setopdrachtstatus.
@@ -1573,6 +1635,8 @@ obj._is_clone=2 --> nieuwe sub-opdracht
setStatus = setopdrstatus != old_opdrstatus;
}
if (S("bgt_enabled") != 1)
_keep_editable_fields(jsondata, opdr_info);
var result = generic_REST_PUT(this)(params, jsondata, the_key);
var opdr_key = result.key;

View File

@@ -70,7 +70,10 @@ function model_mld_srtdiscipline()
"orderdata": {
"dbs": "ins_srtdiscipline_bes",
"label": L("ins_srtdiscipline_bes"),
"typ": "check"
"typ": "number",
"defaultvalue": "0",
"LOV": L("ins_srtdiscipline_besLOV"),
"emptyoption": null
},
"reservationdata": {
"dbs": "ins_srtdiscipline_res",

View File

@@ -47,7 +47,7 @@ function model_mld_srtkenmerk(params)
"label": L("mgt_srtkenmerk_kenmerktype"),
"typ": "varchar",
"required": true,
"LOV": buildKenmerktypeLOV(),
"LOV": buildKenmerktypeLOV(null, { module: "MLD" }),
"showtransit": true,
"multiedit": true
},
@@ -131,7 +131,7 @@ function model_mld_srtkenmerk(params)
this.hook_pre_edit = function (obj, fld)
{
var kenmerktype = (obj.attributetype ? obj.attributetype.id : "");
fld.attributetype.LOV = buildKenmerktypeLOV(kenmerktype);
fld.attributetype.LOV = buildKenmerktypeLOV(kenmerktype, { module: "MLD" });
%>
<script type="text/javascript">
var module = "MLD";

View File

@@ -213,7 +213,9 @@ function model_mld_stdmelding()
"label": L("lcl_mld_subject"),
"LOV": "0;" + L("lcl_mld_onzichtbaar") + ";"
+ "1;" + L("lcl_mld_optioneel") + ";"
+ "2;" + L("lcl_mld_verplicht"),
+ "2;" + L("lcl_mld_verplicht")
+ (S("ai_enabled") & 1 ? ";3;" : ";##DISABLED##;")
+ L("lcl_mld_ai_generated"),
"emptyoption": null,
"multiedit": true
},

View File

@@ -66,6 +66,8 @@ SELECT 'PRJ'
%>
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="../mld/mld_edit_note.inc" -->
<!-- #include file="../mld/opdr_edit_note.inc" -->
<%
function model_notes(module)
@@ -118,24 +120,36 @@ function model_notes(module)
}
this.table = tabel.naam;
this.primary = tabel.parent + "_note_key";
var sqlbijlagen = "(SELECT COUNT(*) aantal"
+ " FROM fac_bijlagen"
+ " WHERE fac_bijlagen_module = " + safe.quoted_sql((module === "OPDR" ? "ORD" : module) + "N")
+ " AND fac_bijlagen_refkey = " + tabel.naam + "." + tabel.id + ")";
this.fields =
{ "id" : { dbs: tabel.id, typ: "key", seq: tabel.seq },
"author" : { dbs: "prs_perslid_key", typ: "key", foreign: "prs_perslid" },
"description" : { dbs: tabel.naam + "_omschrijving", typ: "varchar", filter: "like" },
"created" : { dbs: tabel.naam + "_aanmaak", typ: "datetime", "readonly": true},
"parent" : { dbs: tabel.parent + "_key", typ: "key" }
{ "id" : { dbs: tabel.id, typ: "key", seq: tabel.seq },
"author" : { dbs: "prs_perslid_key", typ: "key", foreign: "prs_perslid" },
"description" : { dbs: tabel.naam + "_omschrijving", typ: "varchar", filter: "like" },
"created" : { dbs: tabel.naam + "_aanmaak", typ: "datetime", "readonly": true},
"parent" : { dbs: tabel.parent + "_key", typ: "key" },
"nnattachments" : { dbs: "dummy", typ: "number", sql: sqlbijlagen }
};
var notes_id = getQParamInt("notes_id", -1); // Om een specifieke notitie op te vragen
if (notes_id > 0)
{
this.tablesql = "(SELECT * FROM {0} WHERE {1} = {2}) {0}".format(tabel.naam, tabel.id, parseInt(notes_id))
}
switch (module)
{
case "MLD":
{
this.fields["flag"] = { dbs: "mld_melding_note_flag", typ: "number" }; // database default is 0, onzichtbaarFE
this.fields["flag"] = { dbs: tabel.parent + "_note_flag", typ: "number" }; // database default is 0, onzichtbaarFE
this.fields["group"] = { dbs: "fac_note_group_key", typ: "key", foreign: "fac_note_group"};
break;
}
case "ORD":
{
this.fields["flag"] = { dbs: "mld_opdr_note_flag", typ: "number" }; // database default is 4, zichtbaarUITV
this.fields["flag"] = { dbs: tabel.parent + "_note_flag", typ: "number" }; // database default is 4, zichtbaarUITV
this.fields["group"] = { dbs: "fac_note_group_key", typ: "key", foreign: "fac_note_group"};
break;
}
@@ -149,6 +163,43 @@ function model_notes(module)
]
};
// Deze functie wordt na de GET aangeroepen. De bijlagen zijn zo afwijkend
// dat ik dat niet fatsoenlijk in 'fields' verwerkt kreeg
this.post_get = function (params, record)
{
record.attachments = [];
if (!record.nnattachments) // voorkom sql-statement per notitie
{
delete record["nnattachments"];
return;
}
delete record["nnattachments"];
var fileparams = { getFiles: true, getFileEncoded: params.filter.fileencoding, /* api2name: "notes", */ cacheablehmac: true };
var props = flexProps((module === "OPDR" ? "ORD" : module) + "N", record.id, undefined, undefined, fileparams);
for (var f in props.files)
{
var file = props.files[f];
var attachment = { name: file.name,
date: file.date,
size: file.size };
if (file.deepurl) attachment.content_url = file.deepurl;
if (file.token) attachment.token = file.token;
if (file.key) attachment.id = file.key;
if (file.digest) attachment.digest = file.digest;
switch (params.filter.fileencoding) // De enige twee encodings die we ondersteunen
{
case "base64":
attachment.content_base64 = file.data;
break;
case "hex":
attachment.content_hex = file.data;
break;
}
record.attachments.push(attachment);
};
}
function _check_authorization (params, method)
{
params.message = "";
@@ -203,14 +254,10 @@ function model_notes(module)
switch (method)
{
case "PUT":
var opdr_key = params.filter.parent_key;
var this_opdr = mld.func_enabled_opdracht(opdr_key);
user.auth_required_or_abort(this_opdr.canEditOpdrNote);
params.isNew = false;
break;
case "POST":
var opdr_key = params.filter.parent_key;
var this_opdr = mld.func_enabled_opdracht(opdr_key);
user.auth_required_or_abort(this_opdr.canEditOpdrNote);
params.isNew = true;
break;
@@ -226,6 +273,43 @@ function model_notes(module)
}
}
this._validate_fields = function (params, jsondata) { /* valideer fields, alle constraints die niet door de database worden afgevangen */
switch (params.filter.module) {
case "MLD": {
if (!params.filter.scope) {
params.filter.scope = "fe"; // default scope
}
break;
}
case "ORD": {
if (S("mld_opdr_actiecode") == 0 || // Dan doen deze niet mee
jsondata.action_to_backoffice && jsondata.action_to_executor) { /* Deze zijn exclusief, als je ze allebei zet, dan weet je vast niet wat je doet, dus doe dan niets */
delete jsondata.action_to_backoffice;
delete jsondata.action_to_executor;
}
if (params.func_enabled.myRole === 4) { // Ik ben uitvoerder
jsondata.flag = (jsondata.flag || 0) | 4; // *Altijd* ZichtbaarUITV
delete jsondata.notify_executor;
delete jsondata.action_to_executor;
if (jsondata.flag && jsondata.flag & 32 || jsondata.action_to_requestor) {
jsondata.flag = jsondata.flag | 37;
jsondata.notify_requestor = true;
jsondata.action_to_requestor = true;
} else {
delete jsondata.action_to_requestor;
}
} else if (params.func_enabled.myRole === 2) { // Ik ben BO
jsondata.flag = ("flag" in jsondata) ? jsondata.flag : 4; // *Default* ZichtbaarUITV
delete jsondata.notify_backoffice;
if (jsondata.action_to_executor) {
jsondata.flag = (jsondata.flag || 0) | 4; // *Altijd* ZichtbaarUITV
jsondata.notify_executor = true;
}
}
}
}
};
// Geen standaard REST_GET, dat doe je maar via het hoofdmodel/include
this.templateREST_GET = function _GET(params)
{
@@ -267,27 +351,29 @@ function model_notes(module)
this.REST_GET = this.templateREST_GET; // om het resultaat te kunnen opleveren
params.filter.parent_key = parseInt(jsondata.parent, 10);
if (!(params.filter.parent_key > 0))
abort_with_warning(L("lcl_invalid_key"))
if (!jsondata.author)
jsondata.author = user_key;
if (!params.filter.scope)
params.filter.scope = "fe"; // default scope
// Is deze note een vraag aan de melder? Maak hem dan ook zichtbaar voor de melder (en uitvoerder zelf)
if (jsondata.flag && jsondata.flag & 32)
jsondata.flag = jsondata.flag | 5;
abort_with_warning(L("lcl_invalid_key"));
_check_authorization(params, "POST");
//
if (!jsondata.author) // Dit werkt niet echt hoor, overal wordt user(_key) gebruikt, bij shared.trackaction, de bepaling van myRole, etc ..
jsondata.author = user_key;
this._validate_fields(params, jsondata);
var dbfields = api2.update_fields(params, this, jsondata); // Build updater
dbfields["id"] = { dbs: tabel.id, typ: "key", seq: tabel.seq };
var xxxIns = buildInsert(this.table, dbfields, { noValidateToken: true });
var new_key = xxxIns.sequences[tabel.id];
params.note_key = xxxIns.sequences[tabel.id];
Oracle.Execute(xxxIns.sql);
return { key: new_key };
if (module == "ORD") { // Momenteel alleen hier nog ondersteund
_set_actiecode(params, jsondata);
_track_and_notify(params, jsondata);
}
return { key: params.note_key };
}
// REST_DELETE = function (params, the_key) /* delete note doen we niet */

View File

@@ -56,8 +56,8 @@ function model_objects(ins_key, params)
"dwgx": { dbs: "ins_deel_dwgx", typ: "float", label: L("lcl_ins_deel_dwgx"), track: true},
"dwgy": { dbs: "ins_deel_dwgy", typ: "float", label: L("lcl_ins_deel_dwgy"), track: true},
"dwgz": { dbs: "ins_deel_dwgz", typ: "float", label: L("lcl_ins_deel_dwgz"), track: true},
"dwgrotation": { dbs: "ins_deel_dwgrotatie", typ: "float", label: "Object rotatie", track: true}, // Vanaf 2024.2 -> L("lcl_ins_deel_dwg_rotatie")
"dwgscale": { dbs: "ins_deel_dwgschaal", typ: "float", label: "Object schaal", track: true}, // Vanaf 2024.2 -> L("lcl_ins_deel_dwg_schaal")
"dwgrotation": { dbs: "ins_deel_dwgrotatie", typ: "float", label: L("lcl_ins_deel_dwg_rotatie"), track: true},
"dwgscale": { dbs: "ins_deel_dwgschaal", typ: "float", label: L("lcl_ins_deel_dwg_schaal"), track: true},
"externnr": { dbs: "ins_deel_externnr", typ: "varchar", label: L("extern_nr"), readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR"))},
"externsyncdate": { dbs: "ins_deel_externsyncdate", typ: "datetime", label: L("extern_syncdate"), readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR"))},
"flag": { dbs: "ins_deel_flag", typ: "number", track: true, LOV:"", label: L("lcl_ins_flags")}
@@ -257,7 +257,7 @@ function model_objects(ins_key, params)
else
placeholder.bind_msg.push(L("lcl_obj_bind_r"));
}
if ((bindingBits & BIND_WERKPL) && f.werkplekkey)
if (bindingBits & BIND_WERKPL)
{
if (jsondata.workplace && jsondata.workplace > 0)
{

View File

@@ -828,6 +828,7 @@ function model_orders(opdr_key, params)
var pkey = -1;
if (tot_kosten > opdr_info.t_cost && tot_kosten > 0)
{ // De totale kosten zijn verhoogd.
var wasSelfapproved = false;
// Bepaling oorspronkelijke (laatste) fiatteur, als die er was.
sql = "SELECT pf.prs_perslid_key"
+ " FROM fac_tracking tr"
@@ -849,12 +850,20 @@ function model_orders(opdr_key, params)
{ // Dan waren de opdracht kosten onder het mandaat van mijzelf of de BO-medewerker.
// Als de kostenplaats bij de opdracht overruled is dan wordt altijd tegen het profiel van de BO-medewerker getest.
if (mld_info.mld_kk == 1 && mld_info.kostenpl_key == kostenplaats_key && S("mld_opdr_ignore_caller_profile") == 0)
pkey = mld_info.melder_key; // Melder/aanvrager van melding
pkey = mld_info.melder_key; // Melder/aanvrager van melding
else
pkey = user_key; //getFParamInt("behandelaar"); // BO medewerker? dat is gewoon de user
pkey = user_key; //getFParamInt("behandelaar"); // BO medewerker? dat is gewoon de user
wasSelfapproved = true;
}
if (S("mld_use_order_approval") && (tot_kosten > S("can_selfapprove") || budget.exceeds_profiel(tot_kosten, pkey, this_opdr.mld_opdr.opdr_disc_key)))
if (S("mld_use_order_approval") &&
((tot_kosten > opdr_info.fiatbedrag && // Als de totale kosten nog steeds onder het reeds gefiatteerde bedrag blijven, hoeven we niet te herfiatteren.
((wasSelfapproved && tot_kosten > S("can_selfapprove")) ||
(S("mld_opdr_reapproval_rate") == -1 && budget.exceeds_profiel(tot_kosten, pkey, this_opdr.mld_opdr.opdr_disc_key))
)) ||
(S("mld_opdr_reapproval_rate") >= 0 && tot_kosten > (opdr_info.t_cost * (1 + S("mld_opdr_reapproval_rate") / 100))) // Als de totale kosten een bepaald percentage toeneemt, moet geherfiatteerd worden.
)
)
{ // Er moet (opnieuw) gefiatteerd worden. Is er wel iemand met voldoende mandaat? Indien er niemand gevonden kan worden mag de wijziging niet doorgaan.
// Het mandaat is al te hoog voor de melder/aanvrager van de melding.
// De melder/aanmaker van de melding mag niet zelf goedkeuren boven het bedrag can_selfapprove.

View File

@@ -24,6 +24,7 @@ function model_prs_kostensoortgrp()
this.autfunction = (S("bgt_enabled")==1 ? ["WEB_FINMSU", "WEB_BGTMGT"] : ["WEB_FINMSU"]);
this.record_title = L("prs_kostensoortgrp");
this.records_title = L("prs_kostensoortgrp_m");
this.soft_delete = "prs_kostensoortgrp_verwijder";
var fields_main = {};
var fields_ext = {};

View File

@@ -132,7 +132,14 @@ function model_prs_perslid(params)
"typ": "varchar",
"len": 30,
"filter": "exact",
"caseinsensitive": true
"caseinsensitive": true,
"hasupper": "prs_perslid_oslogin"
},
"lastlogin": {
"dbs": "prs_perslid_login",
"label": L("lcl_prs_person_lastlogin"),
"typ": "date",
"readonly": true
},
"externallogin": { // SCIM only. Identiek aan prs_perslid_oslogin maar dan niet uppercased of afgekapt
"dbs": "prs_perslid_externoslogin",

View File

@@ -577,6 +577,30 @@ function report_GET(params)
if (hasAggregate) break;
}
// CLOB (mld_melding_omschrijving) mag niet in de ORDER BY genoemd worden
// TODO: in de toekomst misschien explicieter rapport kolom type 'memo' onderkennen?
var sqlc = "SELECT column_name, data_type"
+ " FROM user_tab_columns"
+ " WHERE table_name = " + safe.quoted_sql_upper(model.table);
var oRs = Oracle.Execute(sqlc);
var isclob = {};
while (!oRs.EOF)
{
isclob[oRs("column_name").Value] = (oRs("data_type") == 'CLOB');
oRs.MoveNext();
}
oRs.Close()
// CLOB is problematisch in GROUP BY
for (var fld in model.fields)
{
var field = model.fields[fld];
if (isclob[field.dbs.toUpperCase()])
{
field.sql = "TO_CHAR(SUBSTR({0}, 1, 4000))".format(field.dbs);
}
}
// Controleren of de urllink parameter een &##TRANSIT## heeft. Dan geven wel alle filtervelden door
if (params.urllink && params.urllink.link && params.urllink.link.match(/&##TRANSIT##/i))
{
@@ -813,10 +837,15 @@ function report_GET(params)
if (inselect && field.sorting) // is er niet voor scf_count/scf_ratio
autosorting = autosorting && (field.sorting.id == 3)
}
if (autosorting)
{
for (var i=0; i < query.selects.length; i++)
order.push(i+1);
{
var colname = query.selects[i].split(".").pop().toUpperCase(); // achterste stuk
if (!isclob[colname])
order.push(i+1);
}
}
else
{
@@ -832,7 +861,7 @@ function report_GET(params)
if (found && (!params.filter.distinct || (params.filter.distinct && (fld == params.filter.distinct))))
{
var field = this.fields[fld];
if (field.sorting)
if (field.sorting && !isclob[field.dbs.toUpperCase()])
{
// Sortering op x-as of y-as gebeurt nu verder op.
// TODO: case 1 en 2 kunnen nu samen genomen worden.

View File

@@ -13,6 +13,7 @@
*/
%>
<!-- #include file="./model_reportcolumns.inc" -->
<!-- #include file="./model_fac_notificatie_job.inc" -->
<%
function model_reportsx(usrrap_key, rapparams)
@@ -267,6 +268,12 @@ function model_reportsx(usrrap_key, rapparams)
"model": new model_reportcolumns(usrrap_key, { internal: rapparams.internal }),
"joinfield": "fac_usrrap_key",
"enable_update": true
},
"notificationjobs": {
"model": new model_fac_notificatie_job({ niveau: "S"}),
"joinfield": "fac_usrrap_key",
"enable_update": true,
"label": L("lcl_schedule_frm_report")
}
};
@@ -364,7 +371,7 @@ function model_reportsx(usrrap_key, rapparams)
+ (query.wheres.length ? " WHERE " + query.wheres.join(" AND " ) : "")
+ " ORDER BY fac_usrrap_volgnr NULLS LAST, fac_usrrap_omschrijving";
if (params.include && params.include.length)
if (params.include && params.include.length && inArray("columns", params.include))
sql += ", fac_usrrap_cols_volgnr";
var json = api2.sql2json (params, sql, this);

View File

@@ -93,8 +93,13 @@ function model_res_srtactiviteit()
"columns": [
"id",
"prefix",
"name",
"manner",
"name"
"costcentrerequired",
"anonymous",
"withdescription",
"withremark",
"withamount"
]
};
this.search = {

View File

@@ -30,11 +30,11 @@ function model_reservationconsumables()
this.record_name = "reservationconsumable";
this.fields = {
"id" : { dbs: "res_rsv_artikel_key", typ: "key" , seq:"res_s_res_rsv_artikel_key"},
"id" : { dbs: "res_rsv_artikel_key", typ: "key", seq:"res_s_res_rsv_artikel_key"},
"reservation": { dbs: "res_rsv_ruimte_key", typ: "key", foreign: "res_rsv_ruimte" },
"consumable" : { dbs: "res_artikel_key", typ: "key", foreign: "res_artikel" },
"freename" : { dbs: "res_rsv_artikel_omschrijving", typ: "varchar" },
"amount" : { dbs: "res_rsv_artikel_aantal", typ: "number"},
"amount" : { dbs: "res_rsv_artikel_aantal", typ: "number" },
"status" : { dbs: "res_status_bo_key", typ: "key", foreign: status_bo },
"from" : { dbs: "res_rsv_artikel_levering", typ: "datetime" },
//"to" : { dbs: "res_rsv_artikel_tot", typ: "date" },
@@ -45,7 +45,7 @@ function model_reservationconsumables()
"dirtlevel" : { dbs: "res_rsv_artikel_dirtlevel", typ: "number" },
"delivered" : { dbs: "res_rsv_artikel_geleverd", typ: "datetime" },
"pickup" : { dbs: "res_rsv_artikel_afhalen", typ: "datetime" },
"externnr" : { dbs: "res_rsv_artikel_externnr", typ: "varchar", readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) },
"externnr" : { dbs: "res_rsv_artikel_externnr", typ: "varchar", readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) },
"externsyncdate": { dbs: "res_rsv_artikel_externsyncdate", typ: "datetime", readonly: !(user.has("WEB_FACTAB") || user.has("WEB_FACXNR")) }
};
@@ -67,6 +67,29 @@ function model_reservationconsumables()
params.authparams = user.checkAutorisation(this.autfunction, null, null, true); // pessimistisch
}
this._check_dirty = function (rsv_ruimte_key, scope, this_res)
{
var check_fail_sql = "";
var set_dirty_sql = "";
if (!(S("res_fo_catering_scopeless") && (scope == "fo" || scope == "bo")))
{ // Controle of artikelen dirty zijn.
set_dirty_sql = " res.set_artikelen_dirty (" + rsv_ruimte_key + ");";
if (S("res_fe_allow_dirty") != 1 && this_res.canChangeFEOnly)
{
check_fail_sql = " if res.dirty_level_all(" + rsv_ruimte_key + ") <> 0 then"
+ " raise_application_error (-20001, " + safe.quoted_sql(L("lcl_res_fe_no_dirty")) + ");"
+ " end if;"
}
}
var sql = "BEGIN "
+ set_dirty_sql
+ check_fail_sql
+ "END;";
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
}
this.REST_GET = function _GET(params)
{
this._validate_fields({}, params, {});
@@ -113,15 +136,21 @@ function model_reservationconsumables()
return json;
};
this.REST_POST = function (params, jsondata) /* new reservable consumable */
this.REST_POST = function (params, jsondata, parent_key) /* new reservable consumable */
{
var rsv_ruimte_key = parent_key;
var res_artikel_key = jsondata.consumable.id;
var this_res = res.func_enabled(rsv_ruimte_key); // Wat heb ik zoal aan rechten op deze specifieke reservering
this._validate_fields({}, params, jsondata);
var sql = "SELECT ra.res_artikel_vrije_omschrijving"
+ " , res_disc_params_bonotify"
+ " FROM res_artikel ra"
+ " WHERE ra.res_artikel_key = " + jsondata.consumable.id;
+ " , res_disc_params rdp"
+ " WHERE ra.res_discipline_key = rdp.res_ins_discipline_key"
+ " AND ra.res_artikel_key = " + res_artikel_key;
var oRs = Oracle.Execute(sql);
var hasFreename = (oRs("res_artikel_vrije_omschrijving").Value == 1);
var bonotify = oRs("res_disc_params_bonotify").Value == 1;
oRs.Close();
if (hasFreename)
@@ -138,19 +167,68 @@ function model_reservationconsumables()
if (jsondata.amount == 0)
abort_with_warning(L("lcl_res_rsv_art_count"));
return generic_REST_POST(this)(params, jsondata);
params.sqlOnly = true;
var gen_result = generic_REST_POST(this)(params, jsondata);
var rsv_artikel_key = gen_result.newKey;
delete params.sqlOnly;
// Controle of artikelen dirty zijn.
var check_fail_sql = "";
var set_dirty_sql = "";
var set_noti_sql = "";
if (!(S("res_fo_catering_scopeless") && (scope == "fo" || scope == "bo")))
{
set_dirty_sql = " res.set_artikelen_dirty (" + rsv_ruimte_key + ");";
if (S("res_fe_allow_dirty") != 1 && this_res.canChangeFEOnly)
{
check_fail_sql = " if res.dirty_level_all(" + rsv_ruimte_key + ") <> 0 then"
+ " raise_application_error (-20001, " + safe.quoted_sql(L("lcl_res_fe_no_dirty")) + ");"
+ " end if;"
}
}
if (bonotify)
set_noti_sql = " res.notifybackoffice(" + rsv_ruimte_key + ", 'RESNEW', 'C', " + res_artikel_key + ");";
var sql = "BEGIN "
+ gen_result.genIns.sql + ";"
+ set_dirty_sql
+ check_fail_sql
+ set_noti_sql
+ "END;";
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
// NB: parameter "track" in this.fields niet aanwezig, dus ook geen tracking!
var trackarray = [res.trackartikel(res_artikel_key, "insert")];
if (trackarray.length > 0 && !params.delayTracking)
shared.trackaction("RESNEW", rsv_artikel_key, trackarray.join("\n"));
params.isNew = false; // Voorkom dat een volgende reservationconsumable ook een insert wordt.
return { key: rsv_artikel_key };
}
this.REST_PUT = function (params, jsondata, the_key) /* update reservable consumables */
{
var rsv_artikel_key = the_key;
var scope = params.filter.scope || "fe";
this._validate_fields({}, params, jsondata);
var sql = "SELECT r.res_rsv_ruimte_key"
+ " FROM res_rsv_ruimte r"
+ " , res_rsv_artikel a"
+ " WHERE r.res_rsv_ruimte_key = a.res_rsv_ruimte_key"
+ " AND a.res_rsv_artikel_key = " + rsv_artikel_key;
var oRs = Oracle.Execute(sql);
var rsv_ruimte_key = oRs("res_rsv_ruimte_key").value;
oRs.Close();
var this_res = res.func_enabled(rsv_ruimte_key); // Wat heb ik zoal aan rechten op deze specifieke reservering
var sql = "SELECT ra.res_artikel_vrije_omschrijving"
+ " , rra.res_rsv_artikel_omschrijving"
+ " FROM res_artikel ra"
+ " , res_rsv_artikel rra"
+ " WHERE ra.res_artikel_key = rra.res_artikel_key"
+ " AND rra.res_rsv_artikel_key = " + the_key;
+ " AND rra.res_rsv_artikel_key = " + rsv_artikel_key;
var oRs = Oracle.Execute(sql);
var hasFreename = (oRs("res_artikel_vrije_omschrijving").Value == 1);
var curFreename = oRs("res_rsv_artikel_omschrijving").Value;
@@ -176,7 +254,37 @@ function model_reservationconsumables()
if (jsondata.amount == 0)
abort_with_warning(L("lcl_res_rsv_art_count"));
return generic_REST_PUT(this)(params, jsondata, the_key);
params.sqlOnly = true;
var gen_result = generic_REST_PUT(this)(params, jsondata, the_key);
delete params.sqlOnly;
// Controle of artikelen dirty zijn.
var check_fail_sql = "";
var set_dirty_sql = "";
if (!(S("res_fo_catering_scopeless") && (scope == "fo" || scope == "bo")))
{
set_dirty_sql = " res.set_artikelen_dirty (" + rsv_ruimte_key + ");";
if (S("res_fe_allow_dirty") != 1 && this_res.canChangeFEOnly)
{
check_fail_sql = " if res.dirty_level_all(" + rsv_ruimte_key + ") <> 0 then"
+ " raise_application_error (-20001, " + safe.quoted_sql(L("lcl_res_fe_no_dirty")) + ");"
+ " end if;"
}
}
var sql = "BEGIN "
+ gen_result.genUpd.sql + ";"
+ set_dirty_sql
+ check_fail_sql
+ "END;";
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
// NB: parameter "track" in this.fields niet aanwezig, dus ook geen tracking!
var trackarray = gen_result.genUpd.trackarray;
if (trackarray.length > 0 && !params.delayTracking)
shared.trackaction("RESUPD", the_key, L("lcl_updated") + "\n" + trackarray.join("\n"));
return { key: rsv_artikel_key };
}
this.REST_DELETE = function (params, the_key) /* delete reservable consumable */

View File

@@ -84,6 +84,10 @@ function error_handler(code, msg, orgHandler)
code = code + " " + codestr;
}
FCLT.DEZE.Response.Status = code;
FCLT.DEZE.__Log("Aborting with status: " + code);
FCLT.DEZE.__Log(data);
FCLT.DEZE.Response.End;
}

View File

@@ -55,9 +55,6 @@
/* Globals */
var FCLT;
// De omschrijving van de objecten in FACILITOR moet FW1, FW2 etc. zijn
var scimgroups_srtdeel_key = 258418;
function initialize(params)
{
FCLT = params;
@@ -86,6 +83,10 @@ function error_handler(code, msg, orgHandler)
code = code + " " + codestr;
}
FCLT.DEZE.Response.Status = code;
FCLT.DEZE.__Log("Aborting with status: " + code);
FCLT.DEZE.__Log(data);
FCLT.DEZE.Response.End;
}
@@ -121,10 +122,21 @@ function transform_incoming(params, data)
{
externalid : data["externalId"],
description: data["code"],
name : data["externalId"],
company : { name: "Schiphol Group" } // mag omdat company "desc_is_unique" heeft
name : data["externalId"]
};
if (params.method == "POST") // niet zetten bij een PUT (die misschien alleen kostenplaatsen bijwerkt): dan kan onbedoeld een afdeling naar het default bedrijf gezet raken
{
if (FCLT.DEZE.S("scim_default_bedrijf") > 0)
{
department.company = FCLT.DEZE.S("scim_default_bedrijf");
}
else
{
FCLT.DEZE._AiAi("Setting scim_default_bedrijf must have a value");
}
}
if ("costCenter" in data && data["costCenter"] != "")
{
department.costcentre = { name: data["costCenter"] }; // id mag achterwege blijven omdat desc_is_unique

View File

@@ -346,8 +346,12 @@ FCLT.DEZE.__Log(data);
var bedrijf_key = oRs("prs_bedrijf_key").Value;
oRs.Close()
}
else
{ // TODO: Kunnen we een default verzinnen?
else if (FCLT.DEZE.S("scim_default_bedrijf") > 0)
{
var bedrijf_key = FCLT.DEZE.S("scim_default_bedrijf");
}
else
{
FCLT.DEZE.api2.error(400, "Missing organization for department");
}

View File

@@ -2,14 +2,34 @@ table {
color: #333;
font-family: Verdana;
font-size: smaller;
border-collapse:
collapse; border-spacing: 0;
border-collapse: separate;
border-spacing: 0;
}
td, th { border: 1px solid #CCC;
table th {
/* Apply both top and bottom borders to the <th> */
border-top: 1px solid #CCC;
border-bottom: 1px solid #CCC;
border-right: 1px solid #CCC;
}
table td {
/* For cells, apply the border to one of each side only (right but not left, bottom but not top) */
border-bottom: 1px solid #CCC;
border-right: 1px solid #CCC;
}
td, th {
padding-left: .2em;
padding-right: .2em;
height: 1.3em; }
height: 1.3em;
}
table th:first-child,
table td:first-child {
/* Apply a left border on the first <td> or <th> in a row */
border-left: 1px solid #CCC;
}
th {
background: #F3F3F3;

View File

@@ -169,12 +169,14 @@ function doLogin(prs_key, params)
+ " ( fac_menu_altlabel"
+ " , fac_menu_alturl"
+ " , fac_menu_altgroep"
+ " , fac_menu_level"
+ " , prs_perslid_key"
+ " , fac_menu_volgnr"
+ " ) VALUES"
+ " (" + safe.quoted_sql(L("lcl_firstlogin_url"), 30)
+ " ," + safe.quoted_sql(S("fac_firstlogin_url"))
+ " ,5"
+ " ,2"
+ " ," + user_key
+ " ,(SELECT 10 + COALESCE(MAX(fac_menu_volgnr), 0)"
+ " FROM fac_menu"
@@ -1170,15 +1172,15 @@ function jwt_decode(token)
return result;
};
function jwt_verify(decoded_jwt, secret, skew, duration)
function jwt_verify(claim, secret, skew, duration)
{
skew = skew || 0;
duration = duration || 0;
if (decoded_jwt.header.alg != "HS256")
if (claim.header.alg != "HS256")
return { err: "Only HS256 is supported" };
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var sig = oCrypto.hex_hmac_sha256(secret, decoded_jwt.orgheaderSeg + "." + decoded_jwt.orgpayloadSeg);
var sig = oCrypto.hex_hmac_sha256(secret, claim.orgheaderSeg + "." + claim.orgpayloadSeg);
var sig64 = oCrypto.hex2base64(sig, false, true); // no padding, urlsafe
var now = new Date().getTime() / 1000;
@@ -1190,30 +1192,65 @@ function jwt_verify(decoded_jwt, secret, skew, duration)
return { err: 'Token not yet active' };
}
if (claim.payload.exp && now > claim.payload.exp + skew) {
return { err: 'Token expired at {0}'.format(toISODateTimeString(new Date(claim.payload.exp * 1000), true)) };
if (claim.payload.exp)
{
if (now > claim.payload.exp + skew) {
var txt = 'JWT token for {0} has expired at {1}'.format(claim.payload.username || claim.payload.perslid_key || claim.payload.email, toISODateTimeString(new Date(claim.payload.exp * 1000)))
jwt_warn(claim, txt)
return { err: txt };
}
else if (claim.payload.iat)
{
var dur = Math.floor((claim.payload.exp - claim.payload.iat) / 3600 / 24); // dagen
var now = new Date().getTime() / 1000;
var togo = Math.floor((claim.payload.exp - now) / 3600 / 24); // dagen
if (dur > 14 && togo < 14)
{
var txt = "JWT token for {0} will expire soon at {1}".format(claim.payload.username || claim.payload.perslid_key || claim.payload.email, toISODateTimeString(new Date(claim.payload.exp * 1000)));
jwt_warn(claim, txt)
}
}
}
// Onze eigen duration/expiration controleren we ook nog
if (claim.payload.iat + duration < now - skew) {
__DoLog("Token expired. Now is {0}, got {1}, skew {2}".format(toISODateTimeString(new Date(now * 1000), true),
toISODateTimeString(new Date(claim.payload.iat * 1000), true),
__DoLog("Token expired. Now is {0}, got {1}, skew {2}".format(toISODateTimeString(new Date(now * 1000)),
toISODateTimeString(new Date(claim.payload.iat * 1000)),
skew));
return { err: 'Token expired at {0}'.format(toISODateTimeString(new Date((claim.payload.iat + duration) * 1000), true)) };
return { err: 'Token expired at {0}'.format(toISODateTimeString(new Date((claim.payload.iat + duration) * 1000))) };
}
if (claim.payload.iat > now + skew) {
__DoLog("Token not yet active. Now is {0}, got {1}, skew {2}".format(toISODateTimeString(new Date(now * 1000), true),
toISODateTimeString(new Date(claim.payload.iat * 1000), true),
__DoLog("Token not yet active. Now is {0}, got {1}, skew {2}".format(toISODateTimeString(new Date(now * 1000)),
toISODateTimeString(new Date(claim.payload.iat * 1000)),
skew));
return { err: 'Token not yet active' };
}
}
if (decoded_jwt.signature64 == sig64)
if (claim.signature64 == sig64)
return { success: true }
return { err: "Token signature did not verify" };
}
// Only warn once per day (or after application pool recycle)
function jwt_warn(claim, subject)
{
var jwt_warn_name = customerId + "_JWT_WARN_" + claim.payload.jti; // uniek als het goed is
if (!Application(jwt_warn_name))
{
Application.Lock();
Application(jwt_warn_name) = toISODateTimeString(new Date(claim.payload.exp * 1000));
Application.Unlock();
var body = JSON.stringify(claim.payload, null, 4);
__DoLog(subject, "#FF0080")
__DoLog(body);
// Naar iedereen met PRSSYS
var sql = "BEGIN fac.putsystemnotification({0}, 3); END;".format(safe.quoted_sql(subject + "<br><pre>" + body + "</pre>")); // 3=portal+email
Oracle.Execute(sql);
}
}
// Kopie van UTILS\wsf_shared.js
function getBearerToken(prs_key, idp_code, duration)
{
@@ -1517,7 +1554,8 @@ function process_claim_update(claim, idp_data, params)
case 9: persdata["email"] = val; break;
case 10: persdata["phone"] = val; break;
case 11: persdata["mobile"] = val; break;
case 12: persdata["externalid"] = val; break;
case 12: // externalid, geen break
case 13: persdata["externalid"] = val; break;
// de foreigns
case 20: if (val)
persdata["function"] = { name: val }; break; // Kan omdat fields.function.desc_is_unique is gezet

View File

@@ -61,6 +61,7 @@ if (DEBUGMODE)
__Logging = idp_data.loglevel;
__Log("Logging for this IdP ({0}) is forced on".format(idp_data.name), '#f00');
}
shared.registeraction("IDP_Login", { daily: 2, refkey: idp_data.id }); // Per dag tellen voor de statistieken
var svars = ["<pre>"]; // Voor logging

View File

@@ -263,6 +263,10 @@ if ((user_key < 0 || getQParamInt("jwtforce", 0) == 1) && jwt)
+ safe.quoted_sql(agent, 256) + ", "
+ safe.quoted_sql(ip, 64) + ")";
Oracle.Execute(sql);
// Lang geldige tokens registeren we niet: die worden soms (SCIM) duizenden keren vlak achter elkaar gebruikt
// Dan wil ik niet heel veel UPDATE's krijgen
shared.registeraction("IDP_Login", { daily: 2, refkey: idp_data.id }); // Per dag tellen voor de statistieken
}
// Onthouden hoe je bent binnengekomen zodat logout naar logout_url kan leiden

View File

@@ -78,7 +78,9 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
if (!punchwindow)
{
FcltMgr.setTitle(L("lcl_mld_new_bestelling"), {hot: true});
<% if (act_key === -1) { %>
FcltMgr.startEdit(window, {nomessage: true});
<% } %>
}
<% } %>
});
@@ -98,7 +100,7 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
if (params.bes_key > 0)
{
FcltMgr.stopEdit(window);
$("#besFrame")[0].src = "bes_show_bestelling.asp?urole=<%=urole%>&bes_key=" + params.bes_key;
$("#besframe")[0].src = "bes_show_bestelling.asp?urole=<%=urole%>&bes_key=" + params.bes_key;
}
else
window.location.href = "bes_bestelling.asp?verynew=1&urole=<%=urole%>&bes_key=" + params.bes_key;
@@ -111,7 +113,7 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
else if (!params.keepForm)
{
FcltMgr.setTitle(L("lcl_bes_bestelling") + " " + "<%=S("bes_bestelling_prefix")%>" + params.bes_key);
$("#besFrame")[0].src = "bes_show_bestelling.asp?urole=<%=urole%>&bes_key=" + params.bes_key + "&embedded=1";
$("#besframe")[0].src = "bes_show_bestelling.asp?urole=<%=urole%>&bes_key=" + params.bes_key + "&embedded=1";
}
<% } %>
}
@@ -144,16 +146,22 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
{
%>
<script type="text/javascript" >
var disc_url = "bes_select_discipline.asp" + ("<%=correctie%>" == "1" ? "?intern=1" : "");
var disc_url = "../bes/bes_select_discipline.asp" + ("<%=correctie%>" == "1" ? "?intern=1" : "");
FcltMgr.openModalDetail(disc_url, "<%=L("lcl_bes_fac_select_cat")%>",
{ nomessage: true,
callback: function (data)
{
if (!data)
FcltMgr.closeDetail(window, { cancel: true } );
var page="bes_bestelling.asp?urole=<%=urole%><%=transitParam%>&dis_key=" + data.disc_key; // Maak een nieuw
<% if (act_key > 0) { %>
var page = "bes_edit_bestelling.asp";
<% } else { %>
var page = "bes_bestelling.asp";
<% } %>
page += "?urole=<%=urole%><%=transitParam%>&dis_key=" + data.disc_key; // Maak een nieuw
window.location.href = page;
}
},
noClose: <%=(act_key > 0 ? "true" : "false")%>
});
</script>
<%
@@ -231,7 +239,7 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
}
if (page != "")
{
IFRAMER("besFrame", page, { FcltClose: "besClose", title: L("lcl_bes_frame_algemeen")} );
IFRAMER("besframe", page, { FcltClose: "besClose", title: L("lcl_bes_frame_algemeen")} );
}
if (bes_key > -1)
{

View File

@@ -202,8 +202,8 @@ else // nieuwe bestelling. Defaults bepalen
else // fronto
{
bes_bestelling.kostenplaats_key = -1;
bes_bestelling.perslid_key = S("bes_fo_default_user") ? user_key : -1;
bes_bestelling.perslid_key_voor = S("bes_fo_default_user") ? user_key : -1;
bes_bestelling.perslid_key = (S("bes_fo_default_user") & 1) ? user_key : -1;
bes_bestelling.perslid_key_voor = (S("bes_fo_default_user") & 1) ? user_key : -1;
if (psrt_keys.length)
{
var sql = "SELECT sd.prs_bedrijf_key"
@@ -247,6 +247,7 @@ else // nieuwe bestelling. Defaults bepalen
+ ", m.prs_kostenplaats_key"
+ ", sd.ins_srtdiscipline_prefix mld_prefix"
+ ", m.mld_adres_key"
+ ", m.mld_alg_locatie_key"
+ " FROM mld_melding m"
+ ", prs_perslid p"
+ ", mld_stdmelding sm"
@@ -262,8 +263,11 @@ else // nieuwe bestelling. Defaults bepalen
bes_bestelling.mld_prefix = oRs("mld_prefix").value;
bes_bestelling.mld_adres_key = oRs("mld_adres_key").value;
bes_bestelling.perslid_key = oRs("prs_perslid_key").value;
bes_bestelling.perslid_key_voor = oRs("prs_perslid_key").value;
bes_bestelling.alg_locatie_key = oRs("mld_alg_locatie_key").Value || -1;
if (S("bes_fo_default_user") & 2) {
bes_bestelling.perslid_key = S("bes_fo_default_user") ? oRs("prs_perslid_key").value : -1;
bes_bestelling.perslid_key_voor = S("bes_fo_default_user") ? oRs("prs_perslid_key").value : -1;
}
bes_bestelling.kostenplaats_key = oRs("prs_kostenplaats_key").value || -1;
oRs.close();
}
@@ -457,8 +461,7 @@ oRs.Close();
else
buttons.push({title: L("lcl_submit"), icon: "fa-fclt-save", action: "MakeOrder(1)", singlepress: true, id: "btn_bes_submit"});
if (bes_bestelling.fac_activiteit_key == -1)
{
if (bes_key > 0 || bes_bestelling.fac_activiteit_key == -1) {
buttons.push({title: L("lcl_cancel"), icon: "fa-fclt-cancel", action: "bes_cancel()" });
}
@@ -828,6 +831,7 @@ oRs.Close();
{ trid: "deliveryaddress",
label: L("lcl_delivery_address"),
adresKey: bes_bestelling.mld_adres_key,
locKey: bes_bestelling.alg_locatie_key,
emptyOption: "",
filtercode: "A",
autlevel: ALGreadlevel,
@@ -840,6 +844,7 @@ oRs.Close();
+ " , m.mld_adres_naam"
+ " FROM mld_adres m"
+ " WHERE mld_adres_verwijder IS NULL"
+ (bes_bestelling.alg_locatie_key > -1 ? " AND m.alg_locatie_key = " + bes_bestelling.alg_locatie_key : "")
+ filtClause
+ " ORDER BY m.mld_adres_key";
var oRs = Oracle.Execute(sql_ad);

View File

@@ -1780,11 +1780,11 @@ function bes_list (pautfunction, params)
+ " || CHR(160)"
+ " || CASE"
+ " WHEN sk.bes_srtkenmerk_kenmerktype = 'R'"
+ " OR sk.bes_srtkenmerk_kenmerktype = 'r'"
+ " OR sk.bes_srtkenmerk_kenmerktype = 'S'"
+ " THEN"
+ " flx.getdomeinwaarde(sk.fac_kenmerkdomein_key, kbl.bes_kenmerkbestell_waarde)"
+ " WHEN (sk.bes_srtkenmerk_kenmerktype = 'N'"
+ " OR sk.bes_srtkenmerk_kenmerktype = 'B')"
+ " WHEN sk.bes_srtkenmerk_kenmerktype = 'N'"
+ " AND sk.bes_srtkenmerk_lengte = 1"
+ " AND sk.bes_srtkenmerk_nmin = 0"
+ " AND sk.bes_srtkenmerk_nmax = 1"

View File

@@ -31,9 +31,10 @@ FCLTHeader.Requires({plugins:["suggest", "jQuery"],
"./sel_items_tab.js" ] })
// AUTORISATIEPARAMETERS
var urole = getQParamSafe("urole");
var bes_key = getQParamInt("bes_key");
var urole = getQParamSafe("urole");
var bes_key = getQParamInt("bes_key");
/* ??? */
fronto=true;
backo=false;
frontend=false;
@@ -43,6 +44,11 @@ FCLTHeader.Requires({plugins:["suggest", "jQuery"],
var this_bes = bes.func_enabled_bestelling(bes_bestelling);
user.auth_required_or_abort(this_bes.canReadAny);
if (urole == "xx") { // Vanuit geplande taak
var authparamsBESFOF = user.checkAutorisation("WEB_BESFOF", true, bes_bestelling.dis_key);
urole = authparamsBESFOF ? "fo" : "fe";
}
var subjectMail = L("lcl_bes_RFO") + S("bes_bestelling_prefix") + bes_key;
var hasFOBOread = this_bes.canReadFOF || this_bes.canReadBOF;
var urlMail = "../shared/queuemail.asp?pcode=BESMAI&defemail_key=" + bes_bestelling.perslid_key

View File

@@ -301,7 +301,7 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera
if (bes_bestelopdr.levkosten > 0)
{ %>
<tr>
<td align="left" colspan="4"><label><%=L("lcl_bes_tpcosts")%></label></td>
<td align="left" colspan="5"><label><%=L("lcl_bes_tpcosts")%></label></td>
<td align="right">
<span><%=safe.curr(bes_bestelopdr.levkosten)%></span>
</td>

View File

@@ -46,6 +46,8 @@ function opdr_list (pautfunction, params)
// params.urole : the usuals two-letter lowercase string
// params.outputmode : print to 0 = screen, 1 = printer, 2 = excel, etc.
// params.showall : boolean (true | false)
// params.datefrom : date
// params.dateto : date
// params.catalogus_key : key
// params.besgroep_key : key
// params.item_key : key
@@ -78,6 +80,8 @@ function opdr_list (pautfunction, params)
var excel = (outputmode == 2 || outputmode == 6);
var showall = params.showall;
var datefrom = params.datefrom;
var dateto = params.dateto;
var opdr_id = params.opdr_id;
var catalogus_key = params.catalogus_key;
var besgroep_key = params.besgroep_key;
@@ -156,8 +160,8 @@ function opdr_list (pautfunction, params)
<%
// Distinct omdat een bes_bestelopdr over meerdere bes_bestelling_items kan gaan
sql = "SELECT DISTINCT b.bes_bestelopdr_key"
+ " , bes_bestelopdr_datum datum"
+ " , bes_bestelling_retourvan_key"
+ " , b.bes_bestelopdr_datum datum"
+ " , bst.bes_bestelling_retourvan_key"
+ " , be.prs_bedrijf_naam prs_bedrijf_naam"
// straks + ", bes.bestelopdr_tooltip(b.bes_bestelopdr_key) tooltip" // TODO JGL: Dit is een dure tooltip!
+ " , b.bes_bestelopdr_status"
@@ -189,11 +193,11 @@ function opdr_list (pautfunction, params)
+ " || CHR(160)"
+ " || CASE"
+ " WHEN sk.bes_srtkenmerk_kenmerktype = 'R'"
+ " OR sk.bes_srtkenmerk_kenmerktype = 'r'"
+ " OR sk.bes_srtkenmerk_kenmerktype = 'S'"
+ " THEN"
+ " flx.getdomeinwaarde(sk.fac_kenmerkdomein_key, kbl.bes_kenmerkbestell_waarde)"
+ " WHEN (sk.bes_srtkenmerk_kenmerktype = 'N'"
+ " OR sk.bes_srtkenmerk_kenmerktype = 'B')"
+ " WHEN sk.bes_srtkenmerk_kenmerktype = 'N'"
+ " AND sk.bes_srtkenmerk_lengte = 1"
+ " AND sk.bes_srtkenmerk_nmin = 0"
+ " AND sk.bes_srtkenmerk_nmax = 1"
@@ -255,6 +259,23 @@ function opdr_list (pautfunction, params)
}
else // Niet op opdrachtnummer gezocht, maar op andere criteria
{
if (datefrom && dateto)
{
var ora_date1 = datefrom.toSQL(true);
var ora_date2 = dateto.toSQL(true);
sql += " AND b.bes_bestelopdr_datum BETWEEN " + ora_date1 + " AND " + ora_date2;
}
else if (datefrom)
{
var ora_date1 = datefrom.beginToSQL();
sql += " AND b.bes_bestelopdr_datum >= " + ora_date1;
}
else if (dateto)
{
var ora_date2 = dateto.endToSQL();
sql += " AND b.bes_bestelopdr_datum < " + ora_date2;
}
if (requestor_key) // opdracht behorende bij aanvrager van bestelling
sql += " AND p.prs_perslid_key = " + requestor_key;
@@ -344,7 +365,7 @@ function opdr_list (pautfunction, params)
// bes.bestelopdr_tooltip pas helemaal aan de buitenkant voor performance
sql = "SELECT xx.*, bes.bestelopdr_tooltip (xx.bes_bestelopdr_key) tooltip"
+ " FROM (" + sql + ") xx"
+ " ORDER BY bes_bestelopdr_status, prs_bedrijf_naam, bes_bestelopdr_key DESC";
+ " ORDER BY xx.bes_bestelopdr_status, xx.prs_bedrijf_naam, xx.bes_bestelopdr_key DESC";
/**********************************
* Callback functies ResultsetTable

View File

@@ -16,6 +16,7 @@
<!-- #include file="../Shared/disciplineselector.inc" -->
<!-- #include file="../Shared/srtgroepselector.inc" -->
<!-- #include file="../Shared/srtdeelselector.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<%
FCLTHeader.Requires({ plugins:["jQuery", "kenmerk"],
@@ -29,6 +30,8 @@ var backo = (urole == "bo" || urole == "br");
var minfo = (urole == "mi");
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
var date_from = getQParamDate("date_from", null);
var date_to = getQParamDate("date_to", null);
var prs_key = getQParamInt("prs_key", -1); // Requestor_key
var disc = getQParamInt("disc", -1); // catalogus
var srtgroup = getQParamInt("srtgroup", -1); // groep
@@ -159,9 +162,25 @@ oRs.Close();
RWCHECKBOXTR("flag" + flagkey, "fldcheck", (flagkey == 0 ? L("lcl_bestelopdr_flags") : ""), 1, { twocols: true, posthtml: label });
}
}
SEARCH_BLOCK_END();
SEARCH_BLOCK_START();
SEARCH_BLOCK_END();
SEARCH_BLOCK_START();
// Datum van
FCLTcalendar("date_from",
{ label : L("lcl_period_from"),
datum: date_from,
initEmpty: date_from? false : true,
trclass: "primsearch",
volgnr: 1
});
// Datum tot
FCLTcalendar("date_to",
{ label: L("lcl_period_to"),
datum: date_to,
initEmpty: date_to? false : true,
trclass: "primsearch",
volgnr: 2
});
// Catalogus
FCLTdisciplineselector("disc",
"sgDisc",
@@ -217,7 +236,7 @@ oRs.Close();
<td class="label"><label for="opm"><%=L("lcl_bes_item_comment")%></label></td>
<td><input type="text" class="fld wildcard" name="opm" value="<%=safe.htmlattr(opm)%>"></td>
</tr>
<% SEARCH_BLOCK_END();
<% SEARCH_BLOCK_END();
SEARCH_BLOCK_START({wide: true}); %>
<!-- Statuses -->
<tr class="primsearch">
@@ -236,7 +255,7 @@ SEARCH_BLOCK_START({wide: true}); %>
</nobr>
</td>
</tr>
<% SEARCH_BLOCK_END();
<% SEARCH_BLOCK_END();
SIMPLE_BLOCK_START();
var buttons = [{ title: L("lcl_overview_list"), action: "document.forms.u2.submit();", importance: 1, icon: "fa-clipboard-list"}];
if (!frontend)
@@ -257,4 +276,4 @@ SEARCH_BLOCK_START({wide: true}); %>
</div>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -38,6 +38,8 @@ if (opdr_id > 0)
}
else
{ // Alleen als opdr_id (bestelopdracht key) niet opgegeven is, zijn de resterende parameters van belang!
var datefrom = getQParamDate("date_from", null); // Periode van.
var dateto = getQParamDate("date_to", null); // Perdiode tot.
var catalogus_key = getQParamInt("disc", -1); // catalogus
var besgroep_key = getQParamInt("srtgroep", -1); // groep
var item_key = getQParamInt("srtdeel", -1); // item
@@ -53,6 +55,8 @@ else
var adr_key = getQParamInt("adr_key", -1);
var loc_key = getQParamInt("loc_key", -1);
params.datefrom = datefrom;
params.dateto = dateto;
params.catalogus_key = (catalogus_key != -1? catalogus_key : null);
params.besgroep_key = (besgroep_key != -1? besgroep_key : null);
params.item_key = (item_key != -1? item_key : null);
@@ -117,4 +121,4 @@ switch(urole)
}
opdr_list(autfunction, params);
%><% ASPPAGE_END(); %>
%><% ASPPAGE_END(); %>

View File

@@ -644,9 +644,8 @@ function checkInput()
function makeorder_callback(json)
{
iface.button.enable("btn_bes_submit");
if (json.success)
{
FcltMgr.closeDetail(window, { bes_key: json.bes_key, cancel: false });
if (json.success) {
FcltMgr.closeDetail(window, json);
}
}

View File

@@ -4,10 +4,13 @@
$Id$
File: voorraadInfo.asp
Note: Het bestand is unauthenticed aan te roepen (vanuit DynArtikelInfo.asp).
Dat vind ik acceptabel voor de minimale informatie die het oplevert
*/ %>
<%
DOCTYPE_Disable = 1;
var ANONYMOUS_Allowed = 1;
%>
<!-- #include file="../Shared/common.inc" -->

View File

@@ -928,8 +928,108 @@ bez =
if (aantal_gebter != 1)
this.only_prkgebter = -1; // Gebruiker heeft gekozen via Suggest en getFParamInt("gebouwkey" + bznum, "") wordt gebruikt.
return this.only_prkgebter;
}
},
faq_info: function _faq_info(loc_key, alg_key_arr, changed, is_popup, showall)
{
var has = { loc: loc_key && loc_key != -1
, alg: alg_key_arr && alg_key_arr.length && alg_key_arr.length > 0
};
var result = { fixed_faq: []
, popup_faq: false
};
var canFAQUSEread = user.checkAutorisation("WEB_FAQUSE", true);
var canFAQFOFread = user.checkAutorisation("WEB_FAQFOF", true);
if (has.loc || has.alg)
{
var sql_select = " , 1 rank"
+ " , DECODE (og.alg_onroerendgoed_keys,"
+ " NULL, DECODE (af.alg_locatie_key,"
+ " NULL, 'X', 'L'),"
+ " og.alg_type) alg_type "
+ " , fac_faq_displaymode displaymode";
var sql_from = " , alg_algfaq af"
+ " , alg_v_onroerendgoed og";
var plaats_filter_arr = ["af.alg_algfaq_key IS NULL"]; // Voor plaats-scope-loze items: altijd.
if (has.loc)
plaats_filter_arr.push(" (af.alg_locatie_key = " + loc_key + " AND af.alg_onroerendgoed_keys IS NULL)");
if (has.alg)
plaats_filter_arr.push(" (af.alg_onroerendgoed_keys IN (" + alg_key_arr + "))");
var sql_where = ( is_popup
? " AND BITAND(ff.fac_faq_displaymode, 32) <> 0" // Minstens 32 (pop-up BEZ)
: " AND ff.fac_faq_displaymode <> 0" // Minstens iets;
)
+ " AND ff.fac_faq_key = af.fac_faq_key(+)"
+ " AND af.alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)"
+ " AND ( (" + plaats_filter_arr.join(" OR ") + ")"
+ " )";
}
else
{
var sql_select = " , 1 rank"
+ " , 'X' alg_type"
+ " , fac_faq_displaymode displaymode";
var sql_from = "";
var sql_where = ( is_popup
? " AND BITAND(ff.fac_faq_displaymode, 32) <> 0" // Minstens 32 (pop-up BEZ)
: " AND ff.fac_faq_displaymode <> 0" // Minstens iets;
);
}
if ((has.loc || has.alg) && (!is_popup || showall || changed >= 2))
{
var sql_bez = faq.getkennisbank_sql(sql_select, sql_from, sql_where);
var sql = sql_bez
+ " ORDER BY fac_faq_rank DESC NULLS LAST"
+ " , fac_faq_datum DESC"
+ " , fac_faq_question";
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
var displaymode = oRs("displaymode").Value;
// Displaymode +16=Altijd tonen afspraak, +32=Pop-up afspraak.
if ((displaymode & 32) == 32) // Pop-up
{
if ( ((S("faq_kennisbank_popup") & 1) && canFAQUSEread) // Voor FE
|| ((S("faq_kennisbank_popup") & 2) && canFAQFOFread) // Voor FO
)
{
result.popup_faq = true;
}
}
if ((displaymode & (is_popup? 32 : 16)) == (is_popup? 32 : 16))
{
var data = { faq_key: oRs("fac_faq_key").Value
, has_kenm: oRs("aantal_kenm").Value > 0
, question: oRs("fac_faq_question").Value
, answer: oRs("fac_faq_answer").Value
, answer2: oRs("fac_faq_answer2").Value
, displaymode: oRs("displaymode").Value
, faq_type: "faq_X" + oRs("alg_type").Value
};
var fac_url = oRs("fac_faq_url").value;
if (fac_url)
{
var arr = fac_url.split("|");
var hurl = arr[0];
data.hlnk = arr.length>1?arr[1]:hurl;
if (hurl.slice(0,4) == "http") // extern
data.hurl = hurl;
else // in cust subdir
data.hurl = custpath + "/" + hurl;
}
result.fixed_faq.push(data);
}
oRs.MoveNext();
}
oRs.Close();
}
return result;
}
}
%>

View File

@@ -229,8 +229,12 @@ function process_freeprk_info(data, textStatus)
else
FcltMgr.alert("process_freeprk_info: " + textStatus);
if (data.init && typeof onChangeGebouw === "function")
onChangeGebouw();
if (data.init) {
if (typeof onChangeGebouw === "function")
onChangeGebouw();
else if (typeof onChangeLocation === "function")
onChangeLocation();
}
}
// Dit object wordt gevuld zodat we naar deze instellingen kunnen kijken zodra deze parkeerplaats gekozen wordt
@@ -298,11 +302,19 @@ function get_freeprk_info(init)
}
else
{
if (init && typeof onChangeGebouw === "function")
onChangeGebouw();
if (init) {
if (typeof onChangeGebouw === "function")
onChangeGebouw();
else if (typeof onChangeLocation === "function")
onChangeLocation();
}
$("#bezPrkFree").text("");
}
} // Als process_freeprk_info niet word uitgevoerd, moet alsnog onChangeGebouw worden uitgevoerd tijdens initialisatie (init)
else if (init && typeof onChangeGebouw === "function")
onChangeGebouw();
else if (init) {
if (typeof onChangeGebouw === "function")
onChangeGebouw();
else if (typeof onChangeLocation === "function")
onChangeLocation();
}
}

View File

@@ -15,15 +15,8 @@ FCLTHeader.Requires({ plugins:[],
var mld_opdr_key = getQParamInt("mld_opdr_key");
var urole = getQParamSafe("urole");
var sql = "SELECT mld_melding_key"
+ " FROM mld_opdr"
+ " WHERE mld_opdr_key = " + mld_opdr_key;
var oRs = Oracle.Execute(sql);
var mld_key = oRs("mld_melding_key").value;
oRs.Close();
var this_mld = mld.func_enabled_melding(mld_key); // Wat heb ik zoal aan rechten op deze specifieke melding
user.auth_required_or_abort(this_mld.canReadAny);
var this_opdr = mld.func_enabled_opdracht(mld_opdr_key); // faalt eventueel
user.auth_required_or_abort(this_opdr.canReadAny);
var autfunction = ["WEB_BEZUSE"]; // Lopende zaken worden alleen getoond.
var authparams = user.checkAutorisation(autfunction);

View File

@@ -78,7 +78,7 @@ for (i = 0 ; i < bez_key_arr.length; i++)
var loc_key = oRs_A("alg_locatie_key").Value;
var onr_key = oRs_A("alg_onrgoed_keys").Value||-1;
var seq_name = "ALG_LOCATIE_KEY_" + loc_key + "_BADGE"; // Badge nummering per locatie is de default.
if ((S("vis_badgeprint_enable")&8) == 1) //badgenummering per gebouw
if ((S("vis_badgeprint_enable")&8) == 8) //badgenummering per gebouw
{
if (onr_key > 0)
{

View File

@@ -24,12 +24,13 @@
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="./bez.inc" -->
<!-- #include file="../fac/faq.inc" -->
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="../prs/prs.inc" -->
<!-- #include file="./bez_edit_bezoekers.inc" -->
<%
FCLTHeader.Requires({ js: ["./bez_edit_afspraak.js", "jquery.timepicker-table.js", "../bez/bez.js"],
FCLTHeader.Requires({ js: ["./bez_edit_afspraak.js", "jquery.timepicker-table.js", "../bez/bez.js", "../fac/faq.js"],
css: ["timePicker-table.css"] });
var afspr_key = getQParamInt("afspr_key", -1);
@@ -177,6 +178,13 @@ else
var isMldOpdracht = (bez_afspraak.mld_opdr_key > 0);
if (isMldOpdracht)
var mld_opdr = mld.mld_opdr_info(bez_afspraak.mld_opdr_key);
var faq_info = bez.faq_info(bez_afspraak.locatie_key,bez_afspraak.alg_onrg_key,-1,-1);
for (i in faq_info.fixed_faq)
{
faq_info.fixed_faq[i].safe_answer = safe.fclthtml(faq_info.fixed_faq[i].answer);
faq_info.fixed_faq[i].safe_answer2 = safe.fclthtml(faq_info.fixed_faq[i].answer2);
}
}
var titel = "";
if (S("bez_sel_contactpersoon") > 0 && S("bez_sel_internpersoon") == 1)
@@ -193,9 +201,15 @@ else
<script type="text/javascript">
var titel = "<%=safe.jsstring(titel)%>";
var faq_max_results_bez = "<%=S("faq_max_results_bez")%>";
$(function()
{
if (afspr_key > 0)
{
var JSONdataFaq = "<%=safe.jsstring(JSON.stringify(faq_info?faq_info.fixed_faq:null))%>";
show_fixed_faq("bezFaq", -1, JSON.parse(JSONdataFaq), faq_max_results_bez);
}
$('textarea').resize(function () { FcltMgr.resized(window) } );
$('textarea').autogrow();
$("#prktype").on("changed", showRequireAll); // trigger showRequireAll when parking info has changed
@@ -397,8 +411,10 @@ else
gebouwkey: (eindlevel_nr > 2 ? bez_afspraak.gebouw_key : null),
verdiepingkey: (eindlevel_nr > 3 ? bez_afspraak.verdieping_key : null),
ruimtekey: (eindlevel_nr > 4 ? bez_afspraak.ruimte_key : null),
onLocChange: "onChangeLocatie()",
onGebChange: "onChangeGebouw()",
onLocChange: "onChangeLocatie();",
onGebChange: "onChangeGebouw();",
onVerChange: "onChangeVerdieping();",
onRuiChange: "onChangeRuimte();",
escalateOnChUp: true, // Als hoger plaatsveld verandert (wordt ingevuld) als gevolg van lager plaatsveld dan ook onChange acties uitvoeren
startlevel: 2, /*locatie*/
eindlevel: eindlevel_nr,
@@ -443,6 +459,10 @@ else
)
BLOCK_END();
BLOCK_START("bezFaq", L("lcl_faq_kennisbank"), { hidden: true, icon:"fa-book" });
// Hier komen vaste aanwijzingen
BLOCK_END();
BLOCK_START("bezBezoekers", L("lcl_vis_visitors"), { wide: true, nopadding: true, icon: "fa-users" });
%> <tr>
<td>

View File

@@ -64,6 +64,7 @@ function changeLocatieCallback(data) {
var init_act_key = $("#actie option:selected").val();
fill_actie((data[0]?.key || -1), init_act_key);
}
onChangeAlg(2);
onChangeGebouw();
get_freeprk_info();
}
@@ -168,6 +169,7 @@ function process_gebouw_info(data, textStatus)
{
loadDateto();
}
onChangeAlg(3);
}
}
@@ -190,6 +192,16 @@ function onChangeGebouw()
}
}
function onChangeVerdieping()
{
onChangeAlg(4);
}
function onChangeRuimte()
{
onChangeAlg(5);
}
function changeName(p_key, txt)
{ // Change contact/aanvrager name
if ((vis_afspraak_host_uses_keys & 1) == 1)
@@ -632,3 +644,110 @@ function makeContact(rowNr)
{ callback: makeContactSelected,
rowNr: rowNr });
}
function showFaq(faq_key)
{
if (faq_key > 0)
FcltMgr.openDetail("appl/fac/fac_faq.asp?urole=fe&faq_key=" + faq_key, L("lcl_faq_item"), {reuse: true});
}
function onChangeAlg(level)
{
var alg = [];
var loc = -1;
var temp = "";
switch (level) {
case 5: temp = $("#ruimtekey").val(); if (temp && temp != -1) alg.push(temp);
case 4: temp = $("#verdiepingkey").val(); if (temp && temp != -1) alg.push(temp);
case 3: temp = $("#gebouwkey").val(); if (temp && temp != -1) alg.push(temp);
case 2: temp = $("#locatiekey").val(); if (temp && temp != -1) loc = temp;
break;
default: return; // Error
}
if ( (level == 2 && loc && loc > 0)
|| (level > 2 && alg.length && alg.length <= (level - 2))
)
{
$.getJSON( "./get_bez_info_ajax.asp"
, { req_info: "faq_info"
, loc_key: loc
, alg_key_arr: alg.join(",")
, changed: level
}
, callback_faq_info
);
}
else
{
show_fixed_faq("bezFaq", level, {}, faq_max_results_bez);
}
}
function findFilledLevel()
{
var _level = 0;
if (!!$("#locatie").val()) { _level = 2; } // location has a value
if (!!$("#gebouw").val()) { _level = 3; } // building has a value
if (!!$("#verdieping").val()) { _level = 4; } // floor has a value
if (!!$("#ruimte").val()) { _level = 5; } // room has a value
return _level;
}
function levelHasValue(level)
{
switch (level) {
case 5: return $("#ruimtekey").val();
case 4: return $("#verdiepingkey").val();
case 3: return $("#gebouwkey").val();
case 2: return $("#locatiekey").val();
default: return undefined;
}
}
var faq_info_timer;
var cleared = null;
function callback_faq_info(data)
{
if (data.popup_faq) // && !fromkb)
{ // Een vertraging om bij meerdere callbacks achter elkaar alleen de laatste uit te voeren.
if (window.faq_info_timer) {
clearTimeout(window.faq_info_timer);
}
if (data.changed > 1) {
if (!window.cleared || window.cleared == 1) {
cleared += 2; // Plaats
}
}
window.faq_info_timer = setTimeout(callback_faq_info_once.bind(null, data), 1500);
}
else
{
show_fixed_faq("bezFaq", data.changed, data.fixed_faq, faq_max_results_bez);
}
}
function callback_faq_info_once(data)
{
var filledlevel = findFilledLevel();
if (data.changed < 5 || requiredlevel <= filledlevel)
{
var url = "../bez/bez_faq.asp"
+ "?loc_key=" + data.loc_key
+ "&alg_key_arr=" + data.alg_key_arr.join(",")
+ "&changed=" + data.changed;
// Als dit de eerste en enige call naar bez_faq is, dan willen we alle kennisbankitems zien,
// zo niet, dan alleen de items laten zien die gekoppeld zijn aan gewijzigde plaats.
if (!window.cleared || window.cleared == 3) {
url += "&showall=1";
}
FcltMgr.openModalDetail(url, L("lcl_bez_faq_stdmanswers"), { height: 200, width: 700, callback: bez_faq_list_callback } );
}
show_fixed_faq("bezFaq", data.changed, data.fixed_faq, faq_max_results_bez);
window.cleared = null;
}
function bez_faq_list_callback(data)
{
// data.accept zal in praktijk altijd true zijn. Zelf nu dicht.
FcltMgr.closeDetail(window, { cancel: true } );
}

147
APPL/BEZ/bez_faq.asp Normal file
View File

@@ -0,0 +1,147 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: bez_faq.asp
Description: (Modal)dialoog om kennisbankitems aan melding te kunnen koppelen
Parameters: stdm_key
Context: Als net een melding is gekozen komt een popup met faq's
Note: Als je zowel FO als FE rechten hebt zie je alle faq's
voor deze melding
*/
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../bez/bez.inc" -->
<!-- #include file="../fac/faq.inc" -->
<%
FCLTHeader.Requires({ plugins: ["jQuery"],
js: ["../fac/faq.js"] })
var ins_disc_key = getQParamInt("ins_disc_key", -1);
var stdm_key = getQParamInt("stdm_key", -1);
var typeopdr_key = getQParamInt("typeopdr_key", -1);
var loc_key = getQParamInt("loc_key", -1);
var alg_key_arr = getQParamIntArray("alg_key_arr", []);
var changed = getQParamInt("changed", 1);
var showall = getQParamInt("showall", 0);
var authparamsFOF = user.checkAutorisation("WEB_FAQFOF", true); // ziet (ook) FO-items
var authparamsUSE = user.checkAutorisation("WEB_FAQUSE", true); // ziet (ook) FE-items
user.auth_required_or_abort(authparamsUSE || authparamsFOF);
%>
<html>
<head>
<% FCLTHeader.Generate() %>
<script type='text/javascript'>
$(function ()
{
if (faqcount == 0)
FcltMgr.closeDetail(window, { cancel: true });
$(".faqvraag").click(function() {
$(this).siblings().last().toggle();
FcltMgr.resized();
});
});
function showAnswer2(faq_key)
{
var x = $("#"+faq_key)[0];
$(x.children[1]).css("display", "block");
$(x.children[0]).remove();
FcltMgr.resized();
}
function faqSolvedCallback(data, textStatus)
{
FcltMgr.closeDetail(window, { accept: true });
}
function faqSolved(faq_key)
{ // Increment the rank of a FAQ (kennisbankitem)
var data = {faq_key: faq_key};
<% protectRequest.dataToken("data"); %>
$.ajax({ type: "POST",
url: "../fac/faq_increment_rank.asp",
data: data,
success: faqSolvedCallback,
datatype: "json",
async: false
});
}
</script>
</head>
<body class="modal" id="mod_faq">
<% MODAL_START();
MODAL_BLOCK_START("bezFaq", L("lcl_faq_kennisbank"), {icon: "fa-book-open"});%>
<h3 id="faqhead"><%=I("fa-exclamation-circle fa-2x")+"&nbsp;"+L("lcl_faq_mld_1")%></h3>
<div id="faqsubhead"><%=L("lcl_faq_mld_2")%></div>
<ul id="faqanswerlist">
<%
var data = bez.faq_info(loc_key, alg_key_arr, changed, true, showall);
var oRs = data.fixed_faq;
%>
<script>
var faqcount = <%=(oRs.length == 0 ? 0 : 1)%>;
</script>
<%
for (i=0; i<oRs.length; i++)
{
%>
<li>
<div class="faqvraag"><a name="<%=oRs[i].faq_key%>"><%=safe.html(oRs[i].question)%></a></div>
<div class="faqantwoord fclthtml">
<%=safe.fclthtml(oRs[i].answer)%><br/>
<%
if (oRs[i].answer2)
{
%>
<div class="faqanswer2" id="<%=oRs[i].faq_key%>"><a name="<%=oRs[i].faq_key%>" href="javascript:showAnswer2(<%=oRs[i].faq_key%>);"><%=L("lcl_faq_answer2")%></a>
<div class="faqantwoord fclthtml">
<%=safe.fclthtml(oRs[i].answer2)%><br/>
</div>
</div>
<%
}
if (oRs[i].hurl)
{
%> <a href="<%=safe.htmlattr(oRs[i].hurl)%>" target="_new"><%=safe.html(oRs[i].hlnk)%></a><br/>
<% }
else if (oRs[i].has_kenm)
{
%> <div class="faqlink"><a href="javascript:showFaq(<%=oRs[i].faq_key%>)"><%=L("lcl_more")%></a></div><br/>
<% }
%> <div id="faqsolved" onClick="faqSolved(<%=oRs[i].faq_key%>);" class="ref">
<span class="button">
<span title="<%=L("lcl_faq_mld_3")%>"><%=I("fa-check")%></span>
<%=L("lcl_faq_mld_3")%>
</span>
</div>
</div>
</li>
<%
}
%>
</ul>
<div id="faqfoot"><%=L("lcl_faq_mld_4")%></div>
<%
MODAL_BLOCK_END();
var buttons = [{title: L("lcl_faq_mld_5"), icon: "fa-arrow-circle-right", action: "FcltMgr.closeDetail(window, { cancel: true })"}];
SIMPLE_BLOCK_START();
CreateButtons(buttons, {showIcons: true});
SIMPLE_BLOCK_END();
MODAL_END();
%>
</body>
</html>
<% ASPPAGE_END(); %>

View File

@@ -236,9 +236,7 @@ function bez_list(pautfunction, params)
+ " , a.bez_afspraak_eind bez_afspraak_eind")
+ " , " + S("prs_pers_string") + " pers_naam"
+ " , a.bez_afspraak_gastheer gastheer"
+ " , " + (S("vis_afspraak_host_uses_keys") & 1 == 1
? " COALESCE (p2.prs_perslid_telefoonnr, p2.prs_perslid_mobiel)"
: " a.bez_afspraak_telefoonnr") + " gastheer_telf_nr"
+ " , COALESCE(a.bez_afspraak_telefoonnr, p2.prs_perslid_telefoonnr, p2.prs_perslid_mobiel) gastheer_telf_nr"
+ " , COALESCE(p.prs_perslid_telefoonnr, p.prs_perslid_mobiel) telf_nr"
+ " , COALESCE(rr.res_ruimte_groep, a.bez_afspraak_ruimte, l.alg_locatie_omschrijving) ruimte"
+ " , a.bez_afspraak_opmerking"
@@ -376,13 +374,13 @@ function bez_list(pautfunction, params)
+ (anyflex
? " , (SELECT LISTAGG(" + (multiflex?"bez_kenmerk_omschrijving || ':'|| CHR(160) || ":"")
+ " CASE"
+ " WHEN k.bez_kenmerk_kenmerktype = 'R' OR k.bez_kenmerk_kenmerktype = 'S'"
+ " WHEN k.bez_kenmerk_kenmerktype = 'R' OR k.bez_kenmerk_kenmerktype = 'r' OR k.bez_kenmerk_kenmerktype = 'S'"
+ " THEN flx.getdomeinwaarde(k.fac_kenmerkdomein_key, kw.bez_kenmerkwaarde_waarde)"
+ " WHEN (k.bez_kenmerk_kenmerktype = 'N' OR k.bez_kenmerk_kenmerktype = 'B') "
+ " AND k.bez_kenmerk_lengte = 1 "
+ " AND k.bez_kenmerk_nmin = 0 "
+ " AND k.bez_kenmerk_nmax = 1 "
+ " AND (k.bez_kenmerk_dec = 0 OR k.bez_kenmerk_dec IS NULL) "
+ " WHEN k.bez_kenmerk_kenmerktype = 'N'"
+ " AND k.bez_kenmerk_lengte = 1 "
+ " AND k.bez_kenmerk_nmin = 0 "
+ " AND k.bez_kenmerk_nmax = 1 "
+ " AND (k.bez_kenmerk_dec = 0 OR k.bez_kenmerk_dec IS NULL) "
+ " THEN DECODE (kw.bez_kenmerkwaarde_waarde, "
+ " 0, "+safe.qL("lcl_check_0")+", "
+ " 1, "+safe.qL("lcl_check_1")+", "

View File

@@ -20,6 +20,7 @@ var JSON_Result = true;
<!-- #include file="../Shared/common.inc"-->
<!-- #include file="./bez.inc" -->
<!-- #include file="../fac/faq.inc" -->
<%
var req_info = getQParam("req_info");
@@ -71,6 +72,31 @@ switch (req_info)
result = bez.bez_getacties(loc_arr, bld_arr, true).data;
break;
}
case "faq_info":
{
var loc_key = getQParamInt("loc_key", -1);
var alg_key_arr = getQParamIntArray("alg_key_arr", []);
var changed = getQParamInt("changed", 2);
var result = bez.faq_info(loc_key, alg_key_arr, changed);
for (i in result.fixed_faq)
{
result.fixed_faq[i].safe_answer = safe.fclthtml(result.fixed_faq[i].answer, {"faqlink": true});
result.fixed_faq[i].safe_answer2 = safe.fclthtml(result.fixed_faq[i].answer2, {"faqlink": true});
}
result.loc_key = loc_key;
result.alg_key_arr = alg_key_arr;
result.changed = changed;
break;
}
case "alg_algfaq_info":
{
var alg_key = getQParamInt("alg_key", -1);
var loc_key = getQParamInt("loc_key", -1);
var result = faq.alg_algfaq_info(loc_key, alg_key);
break;
}
}
Response.Write(JSON.stringify(result));

View File

@@ -309,18 +309,23 @@ var transitParam = buildTransitParam([]);
+ " , MAX(BGT.getBudgetOpDatum(pb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", " + v_sysdate.endToSQL() + ")) budget_actueel"
+ " , MAX(BGT.getBudgetSoortMutatie(pb.bgt_kostenrubriek_key, pb.prs_kostensoortgrp_key, pb.prs_kostensoort_key, "+ (bgt_inclbtw ? 2 : 0) + ", 'ARW', NULL)) budget_reserve"
+ " , MAX(BGT.getBudgetSoortMutatie(pb.bgt_kostenrubriek_key, pb.prs_kostensoortgrp_key, pb.prs_kostensoort_key, "+ (bgt_inclbtw ? 2 : 0) + ", 'EM', NULL)) budget_mutatie"
+ " FROM (SELECT p.*"
+ " FROM (SELECT pr.*"
+ " , (SELECT b.bgt_budget_key"
+ " FROM bgt_budget b"
+ " WHERE ((p.rcode <> 'R') AND (b.prs_kostensoort_key = p.prs_kostensoort_key))"
+ " OR ((p.rcode = 'R') AND (b.bgt_kostenrubriek_key = p.bgt_kostenrubriek_key))"
+ " WHERE ((pr.rcode <> 'R') AND (b.prs_kostensoort_key = pr.prs_kostensoort_key))"
+ " OR ((pr.rcode = 'R') AND (b.bgt_kostenrubriek_key = pr.bgt_kostenrubriek_key))"
+ " ) bgt_budget_key"
+ " FROM bgt_v_project_full p"
+ " WHERE p.bgt_project_verwijder IS NULL"
+ (bgtproj_key_arr.length > 0 ? " AND p.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ (bgtrubr_key > 0 ? "AND p.bgt_kostenrubriek_key = " + bgtrubr_key : "")
+ (bgtgrp_key > 0 ? " AND p.prs_kostensoortgrp_key = " + bgtgrp_key : "")
+ " AND p.ins_discipline_key = " + bgtdisc_key
+ " FROM bgt_v_project_full pr"
+ " , prs_kostensoortgrp kg"
+ " , prs_kostensoort ks"
+ " WHERE pr.bgt_project_verwijder IS NULL"
+ " AND pr.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
+ " AND pr.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
+ " AND ks.prs_kostensoort_verwijder IS NULL"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ (bgtrubr_key > 0 ? "AND pr.bgt_kostenrubriek_key = " + bgtrubr_key : "")
+ (bgtgrp_key > 0 ? " AND pr.prs_kostensoortgrp_key = " + bgtgrp_key : "")
+ " AND pr.ins_discipline_key = " + bgtdisc_key
+ " ) pb"
sql1 += " GROUP BY pb.kostengroep"
+ ", pb.prs_kostensoort_key"
@@ -352,6 +357,8 @@ var transitParam = buildTransitParam([]);
+ " , bd.budget_reserve"
+ " , bd.budget_mutatie"
+ " FROM bgt_v_project_full pr"
+ " , prs_kostensoortgrp kg"
+ " , prs_kostensoort ks"
+ " , (SELECT sb.prs_kostensoortgrp_key"
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", NULL)) budget_origineel"
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", " + v_sysdate.endToSQL() + ")) budget_actueel"
@@ -365,6 +372,9 @@ var transitParam = buildTransitParam([]);
+ " GROUP BY sb.prs_kostensoortgrp_key"
+ " ) bd"
+ " WHERE pr.prs_kostensoortgrp_key = bd.prs_kostensoortgrp_key"
+ " AND pr.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
+ " AND pr.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
+ " AND ks.prs_kostensoort_verwijder IS NULL"
+ " AND pr.bgt_project_verwijder IS NULL"
+ " UNION "
+ "SELECT pr.project"
@@ -382,6 +392,8 @@ var transitParam = buildTransitParam([]);
+ " , bd.budget_reserve"
+ " , bd.budget_mutatie"
+ " FROM bgt_v_project_full pr"
+ " , prs_kostensoortgrp kg"
+ " , prs_kostensoort ks"
+ " , (SELECT sb.bgt_kostenrubriek_key"
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", NULL)) budget_origineel"
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", " + v_sysdate.endToSQL() + ")) budget_actueel"
@@ -396,6 +408,9 @@ var transitParam = buildTransitParam([]);
+ " GROUP BY sb.bgt_kostenrubriek_key"
+ " ) bd"
+ " WHERE pr.bgt_kostenrubriek_key = bd.bgt_kostenrubriek_key"
+ " AND pr.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
+ " AND pr.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
+ " AND ks.prs_kostensoort_verwijder IS NULL"
+ " AND pr.bgt_project_verwijder IS NULL"
+ " AND pr.prs_kostensoortgrp_key IS NULL"
+ " AND (bd.budget_actueel <> 0 OR bd.budget_reserve <> 0 OR bd.budget_mutatie <> 0)";
@@ -417,6 +432,8 @@ var transitParam = buildTransitParam([]);
+ " , bd.budget_reserve"
+ " , bd.budget_mutatie"
+ " FROM bgt_v_project_full pr"
+ " , prs_kostensoortgrp kg"
+ " , prs_kostensoort ks"
+ " , (SELECT sb.bgt_project_key"
+ " , sb.bgt_kostenrubriek_key"
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, 0, NULL)) budget_origineel"
@@ -431,6 +448,9 @@ var transitParam = buildTransitParam([]);
+ " , sb.bgt_kostenrubriek_key"
+ " ) bd"
+ " WHERE pr.bgt_project_key = bd.bgt_project_key"
+ " AND pr.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
+ " AND pr.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
+ " AND ks.prs_kostensoort_verwijder IS NULL"
+ " AND pr.bgt_project_verwijder IS NULL"
+ " AND pr.bgt_kostenrubriek_key = bd.bgt_kostenrubriek_key";
@@ -452,6 +472,8 @@ var transitParam = buildTransitParam([]);
+ " , MAX(bd.budget_reserve) budget_reserve"
+ " , SUM(bd.budget_mutatie) budget_mutatie"
+ " FROM bgt_v_project_full pr"
+ " , prs_kostensoortgrp kg"
+ " , prs_kostensoort ks"
+ " , (SELECT sb.bgt_project_key"
+ " , sb.bgt_kostenrubriek_key"
+ " , SUM(BGT.getBudgetOpDatum (sb.bgt_budget_key, 1, NULL)) budget_origineel"
@@ -466,6 +488,9 @@ var transitParam = buildTransitParam([]);
+ " , sb.bgt_kostenrubriek_key"
+ " ) bd"
+ " WHERE pr.bgt_kostenrubriek_key = bd.bgt_kostenrubriek_key"
+ " AND pr.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
+ " AND pr.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
+ " AND ks.prs_kostensoort_verwijder IS NULL"
+ " AND pr.bgt_project_verwijder IS NULL"
+ " AND pr.gcode IS NULL"
+ " AND pr.scode IS NULL"
@@ -503,7 +528,12 @@ var transitParam = buildTransitParam([]);
+ " , project"
+ " , subproject"
+ " FROM bgt_v_project_full tp"
+ " , prs_kostensoortgrp kg"
+ " , prs_kostensoort ks"
+ " WHERE tp.ins_discipline_key = " + bgtdisc_key
+ " AND tp.prs_kostensoortgrp_key = kg.prs_kostensoortgrp_key(+)"
+ " AND tp.prs_kostensoort_key = ks.prs_kostensoort_key(+)"
+ " AND ks.prs_kostensoort_verwijder IS NULL"
+ " AND tp.bgt_project_verwijder IS NULL"
+ (bgtproj_key_arr.length > 0 ? " AND tp.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " ) db"

View File

@@ -442,6 +442,7 @@ function labelThema(cHandle, labelProps)
// kleurProps.kleurThema: key in CAD_THEMA
// kleurProps.fnSQL(viewname) levert key en waarde op
// kleurProps.colorSymbol: optional: als true dan wordt het symbool zelf gekleurd ipv de contour
// kleurProps.highlight_arr alleen highlighten als ze hier in voorkomen
function kleurThema(cHandle, kleurProps)
{ // Haal de schema definitie op
var sql = "SELECT cad_thema_view, "
@@ -491,19 +492,24 @@ function kleurThema(cHandle, kleurProps)
rs_r = Oracle.Execute(sql);
while (!rs_r.EOF)
{
var key = rs_r("KEY").Value;
var kleur = parseInt(toHexValue(rs_r("cad_legendawaarde_rgb").value), 16)||0;
if (kleurProps.highlight_arr && kleurProps.highlight_arr.length && key && !inArray(String(key.substr(2)), kleurProps.highlight_arr))
{
kleur = 0xC0C0C0;
}
if (!(rs_r("cad_legendawaarde_value").Value in legenda))
legenda[rs_r("cad_legendawaarde_value").Value] = { kleur: kleur, count: 0, tekst: rs_r("cad_legendawaarde_omschr").Value };
var cnt = null;
if (kleurProps.symbols)
{
var cntS = kleurProps.symbols[rs_r("KEY").Value];
var cntS = kleurProps.symbols[key];
if (cntS) cnt = cntS.s.Contour;
}
else
{
var cnt = cHandle.Contour(rs_r("KEY").Value);
var cnt = cHandle.Contour(key);
}
if (cnt)
{

View File

@@ -1,4 +1,4 @@
<%@ language="javascript"%>
<%@ language="javascript"%>
<% /*
$Revision$
$Id$
@@ -89,10 +89,10 @@ var geb_key = getQParamInt("geb_key", -1);
var disc_key = getQParamInt("disc_key", -1) // De *object* discipline (typisch Bouwkunde)
var restrict2res = getQParamIntArray("restrict2res_disc", []);
var discs = getQParamIntArray("discs", []) // Te tonen disciplines (ondergrond bijvoorbeeld)
var thema_key = getQParamInt("thema_key", 12); // In de core is een default thema met key 12 gedefinieerd (cad_v_thema_srtruimtesensor)
if (thema_key == -1) thema_key=12; // alsnog, de code is nog niet bestand tegen themaloos aanroepen
var thema_key = getQParamInt("thema_key", S("fg_infobordthema_key")); // In de core is een default thema met key <12> gedefinieerd (cad_v_thema_srtruimtesensor)
if (thema_key == -1) thema_key = S("fg_infobordthema_key"); // alsnog, de code is nog niet bestand tegen themaloos aanroepen
var themai_key = getQParamInt("themai", -1);
var label_key = getQParamInt("label_key", 12);// In de core is een default labelthema met key 12 gedefinieerd (cad_v_label_bezetbareruimtes)
var label_key = getQParamInt("label_key", S("fg_infobordlabel_key")); // In de core is een default labelthema met key <12> gedefinieerd (cad_v_label_bezetbareruimtes)
var bordlabel_key = getQParamInt("bordlabel_key", -1);//
var contmode = getQParamInt("contmode", 0); //
@@ -111,7 +111,7 @@ if (geb_key == -1 && floor_key != -1) {
}
var hidenav = getQParamInt("hidenav", 0); // optie: toon geen floornavigator
var fac_usrrap_key = getQParamInt("fac_usrrap_key", 12); // In de core is een default usrrap (res_v_rap_infobordframe) met key 12 gedefinieerd
var fac_usrrap_key = getQParamInt("fac_usrrap_key", S("fg_infobordreport_key")); // In de core is een default usrrap (res_v_rap_infobordframe) met key <12> gedefinieerd
var zoomScale = getQParamFloat("zoomScale", -1);
var zoomDWGX = getQParamFloat("zoomDWGX", null);
@@ -464,7 +464,7 @@ if (thema_key > 0)
+ " GROUP BY ar.alg_verdieping_key, ti.cad_legendawaarde_rgb, ti.cad_legendawaarde_rgb";
}
} else {
var sqlMaxKleur = "/*TODO indien te ondersteunen*/";
var sqlMaxKleur = "/*TODO indien te ondersteunen*/ SELECT NULL alg_verdieping_key, NULL waarde, NULL cad_legendawaarde_rgb, NULL aantal FROM DUAL";
}
// TODO: Query optimalizeren zodat alleen <20><>n record met de hoogste 'waarde' er uit komen?

View File

@@ -151,6 +151,11 @@ function myGeoProcessor(cHandle)
\************************************************************/
function myContourProcessor(cHandle)
{
if (S("fg_planforcecolor") >= 0) // vooralsnog geldt dit dus overal
{
cHandle.forcePlanColor = S("fg_planforcecolor");
}
__Log("Scanning found {0} contours".format(cHandle.ContourCount));
if (cHandle.DwgLimits)
{
@@ -332,6 +337,7 @@ function myContourProcessor(cHandle)
if (themaType>0&&(themaType & 0x18) == 0x00) // Bit 4/5 moet 00 zijn voor contouren
{
kleurThema(cHandle, { kleurThema_key: pThema_key,
highlight_arr: highlight_arr, // dan alleen degene hierin
fnSql:function (viewName)
{ return "SELECT 'R:' || ar." + colKey + " key, waarde"
+ " FROM " + dbTable + " ar, " + viewName + " thema"

View File

@@ -23,37 +23,65 @@ var showall = getQParam("showall", 0) == 1;
var sql = "";
if (floorKey != -1)
{
sql = " SELECT r.alg_ruimte_key, r.alg_ruimte_aanduiding, r.alg_srtruimte_omschrijving,"
+ " r.alg_ruimte_bruto_vloeropp, r.alg_ruimte_omschrijving,"
+ " r.alg_ruimte_opp_alt1, r.alg_ruimte_opp_alt2,"
+ " (SELECT ROUND(100 * ra.prs_ruimteafdeling_bezetting / DECODE(SUM(ra2.prs_ruimteafdeling_bezetting),0,1,SUM(ra2.prs_ruimteafdeling_bezetting)))"
+ " FROM prs_ruimteafdeling ra2"
+ " WHERE ra.alg_ruimte_key = ra2.alg_ruimte_key"
+ " GROUP BY ra.alg_ruimte_key) bezetting,"
+ " (SELECT " + S("prs_dep_string")
+ " FROM prs_v_afdeling d"
+ " WHERE d.prs_afdeling_key = ra.prs_afdeling_key) afdeling"
+ " FROM (SELECT alg_r.alg_ruimte_key alg_ruimte_key,"
+ " alg_r.alg_ruimte_omschrijving alg_ruimte_omschrijving,"
+ lcl.xsqla("alg_s.alg_srtruimte_omschrijving", "alg_s.alg_srtruimte_key")+","
+ " alg_r.alg_ruimte_bruto_vloeropp, alg_r.alg_ruimte_opp_alt1, alg_r.alg_ruimte_opp_alt2,"
+ " alg_g.alg_gebouw_code"
+ " || '-'"
+ " || TO_CHAR (alg_v.alg_verdieping_code)"
+ " || '-'"
+ " || alg_r.alg_ruimte_nr alg_ruimte_aanduiding"
+ " FROM alg_gebouw alg_g,"
+ " alg_verdieping alg_v,"
+ " alg_v_aanwezigruimte alg_r,"
+ " alg_srtruimte alg_s"
+ " WHERE alg_v.alg_verdieping_key = " + floorKey
+ " AND alg_v.alg_verdieping_key = alg_r.alg_verdieping_key"
+ " AND alg_g.alg_gebouw_key = alg_v.alg_gebouw_key"
+ " AND alg_r.alg_ruimte_nr NOT LIKE '\\_%' ESCAPE '\\' " // suppress virtual rooms
+ " AND alg_r.alg_srtruimte_key = alg_s.alg_srtruimte_key(+)) r,"
+ " prs_ruimteafdeling ra"
+ " WHERE ra.alg_ruimte_key(+) = r.alg_ruimte_key"
+ " AND ra.prs_ruimteafdeling_verwijder IS NULL"
sql = "WITH current_ruimteafdeling AS"
+ " (SELECT prs_ruimteafdeling_key"
+ " , alg_ruimte_key"
+ " , prs_afdeling_key"
+ " , prs_ruimteafdeling_bezetting"
+ " , prs_ruimteafdeling_ingangsdatum"
+ " , prs_ruimteafdeling_einddatum"
+ " FROM prs_ruimteafdeling ra"
+ " WHERE ra.prs_ruimteafdeling_verwijder IS NULL"
+ " AND ra.prs_ruimteafdeling_ingangsdatum < SYSDATE"
+ " AND (ra.prs_ruimteafdeling_einddatum > SYSDATE OR ra.prs_ruimteafdeling_einddatum IS NULL)"
+ " )"
+ " , ruimte_perc_som AS"
+ " (SELECT alg_ruimte_key"
+ " , COALESCE(SUM(prs_ruimteafdeling_bezetting), 1) som_bezetting"
+ " FROM current_ruimteafdeling"
+ " GROUP BY alg_ruimte_key"
+ ")"
+ " , ruimte AS"
+ " (SELECT alg_r.alg_ruimte_key alg_ruimte_key"
+ " , alg_r.alg_ruimte_omschrijving alg_ruimte_omschrijving"
+ " , " + lcl.xsqla("alg_s.alg_srtruimte_omschrijving", "alg_s.alg_srtruimte_key")
+ " , alg_r.alg_ruimte_bruto_vloeropp"
+ " , alg_r.alg_ruimte_opp_alt1"
+ " , alg_r.alg_ruimte_opp_alt2"
+ " , alg_g.alg_gebouw_code"
+ " || '-'"
+ " || TO_CHAR (alg_v.alg_verdieping_code)"
+ " || '-'"
+ " || alg_r.alg_ruimte_nr alg_ruimte_aanduiding"
+ " FROM alg_gebouw alg_g"
+ " , alg_verdieping alg_v"
+ " , alg_v_aanwezigruimte alg_r"
+ " , alg_srtruimte alg_s"
+ " WHERE alg_v.alg_verdieping_key = " + floorKey
+ " AND alg_v.alg_verdieping_key = alg_r.alg_verdieping_key"
+ " AND alg_g.alg_gebouw_key = alg_v.alg_gebouw_key"
+ " AND alg_r.alg_ruimte_nr NOT LIKE '\\_%' ESCAPE '\\' " // suppress virtual rooms
+ " AND alg_r.alg_srtruimte_key = alg_s.alg_srtruimte_key(+)"
+ " )"
+ "SELECT cr.prs_ruimteafdeling_key"
+ " , r.alg_ruimte_key"
+ " , r.alg_ruimte_aanduiding"
+ " , r.alg_srtruimte_omschrijving"
+ " , r.alg_ruimte_bruto_vloeropp"
+ " , r.alg_ruimte_omschrijving"
+ " , r.alg_ruimte_opp_alt1"
+ " , r.alg_ruimte_opp_alt2"
+ " , (100 * cr.prs_ruimteafdeling_bezetting / rp.som_bezetting) bezet_perc"
+ " , r.alg_ruimte_bruto_vloeropp * (cr.prs_ruimteafdeling_bezetting / rp.som_bezetting) bezet_vloeropp"
+ " , (SELECT " + S("prs_dep_string")
+ " FROM prs_v_afdeling d"
+ " WHERE d.prs_afdeling_key = cr.prs_afdeling_key"
+ " ) afdeling"
+ " FROM current_ruimteafdeling cr"
+ " , ruimte r"
+ " , ruimte_perc_som rp"
+ " WHERE cr.alg_ruimte_key = rp.alg_ruimte_key(+)"
+ " AND cr.alg_ruimte_key(+) = r.alg_ruimte_key"
+ (highlight_arr.length > 0 && highlight_arr.join(",").indexOf("-1") == -1
? " AND r.alg_ruimte_key IN (" + highlight_arr.join(",") + ")"
: "")
@@ -84,11 +112,11 @@ else
with (summaryParams)
{
// oRs("bezetting").value is null of heeft een waarde van 0 t/m 100
if (oRs("bezetting").value || oRs("bezetting").value == 0)
if (oRs("bezet_perc").value || oRs("bezet_perc").value == 0)
{ // Voor de ruimte is er ten minste 1 bezetting gedefinineerd (prs_ruimteafdeling)
// Totale bezetting per ruimte opgeteld is 100%
// Bezetting is in procenten.
var bezetting = oRs("bezetting").value / 100;
var bezetting = oRs("bezet_perc").value / 100;
}
else
{ // Voor de ruimte is er geen bezetting gedefinineerd (prs_ruimteafdeling)
@@ -155,7 +183,7 @@ else
rst.addColumn(new Column({caption: L("lcl_fg_func_names"), content: "alg_srtruimte_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_descr"), content: "alg_ruimte_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_department"), content: "afdeling"}));
rst.addColumn(new Column({caption: L("lcl_procent"), content: "bezetting", datatype: "float"}));
rst.addColumn(new Column({caption: L("lcl_procent"), content: "bezet_perc", datatype: "float"}));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_bruto_vloeropp"), content: fnOpp, datatype: "float"}));
if (S("fg_contourlayers_alt1") != "" && S("fg_labellayers_alt1") != "")
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_opp_alt1"), content: fnOppAlt1, datatype: "float"}));

35
APPL/CHAT/ChatClose.asp Normal file
View File

@@ -0,0 +1,35 @@
<%@language = "javascript" %>
<%
/*
$Revision$
$Id$
ChatterClose.asp
Bij sluiten van het scherm ChatterAccept moet de channelId van de accepting gebruiker verwijderd worden.
*/
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="./chat.inc" -->
<%
var acceptchannelId = getFParam("channelId");
var chat_queue = JSON.parse(Application(chat_queue_name) || "{}");
if (acceptchannelId in chat_queue.accepting)
{
delete chat_queue.accepting[acceptchannelId];
}
Application.Lock();
Application(chat_queue_name) = JSON.stringify(chat_queue);
Application.UnLock();
result = {};
Response.Write(JSON.stringify(result));
ASPPAGE_END();
%>

View File

@@ -16,16 +16,20 @@ var JSON_Result = true;
<%
var wantchannelId = getQParam("channelId");
var chat_queue = JSON.parse(Application(chat_queue_name) || "{}");
if (wantchannelId in chat_queue.wanting)
{
chat_queue.wanting[wantchannelId].alive = new Date().getTime();
Application.Lock();
Application(chat_queue_name) = JSON.stringify(chat_queue);
Application.UnLock();
result = { };
Application.Lock();
Application(chat_queue_name) = JSON.stringify(chat_queue);
Application.UnLock();
}
var result = {hasChatOnline: 0};
for (var ch in chat_queue.accepting)
{
result.hasChatOnline++;
}
Response.Write(JSON.stringify(result));

View File

@@ -25,6 +25,11 @@ var chat_queue = JSON.parse(Application(chat_queue_name) || "{}");
if (!chat_queue.accepting)
chat_queue.accepting = {};
for (var ch in chat_queue.accepting)
{ // Verwijder achtergebleven channels van deze gebruiker.
if (chat_queue.accepting[ch].prs_key == user_key)
delete chat_queue.accepting[ch];
}
chat_queue.accepting[acceptchannelId] = { prs_key: user_key, since: new Date() };
Application(chat_queue_name) = JSON.stringify(chat_queue);
@@ -39,6 +44,7 @@ Application.UnLock();
FcltMgr.startEdit(window); // maakt hem hot
var acceptchannelId = "<%=acceptchannelId%>";
var dis_key = <%=dis_key%>;
function accept_chat(x, y)
{
var wantId = $(this).data("wantid");
@@ -48,6 +54,7 @@ Application.UnLock();
FcltMgr.openDetail( "appl/chat/Chatter.asp?chatsendid=" + wantId + "&prs_key=" + prs_key + "&message=" + escape(message) + "&accept=1&naam=" + naam, L("lcl_chatter_incoming").format(naam));
view_queue(); // op de achtergrond blijven refreshen
}
async function show_queue(data)
{
//$("#chatqueue").html("<xmp>" + JSON.stringify(data, null, 4) + "</xmp>");
@@ -106,6 +113,19 @@ Application.UnLock();
FcltMgr.resized();
notify.wait(window.acceptchannelId, null, view_queue, { alwaysafter: 10 });
}
function onCloseHot()
{
var data = { channelId: "<%=acceptchannelId%>" };
<% protectRequest.dataToken("data"); %>
jQuery.ajaxSetup({async: false}); // Anders faalt o.a. bij IE9 de $.post bij afsluiten
$.post( "ChatClose.asp"
, data
, FcltCallback
, "json"
);
}
function view_queue()
{
$.getJSON( "./ChatQueueGet.asp" + (dis_key > 0 ? "?dis_key=" + dis_key : ""), show_queue);

View File

@@ -23,7 +23,6 @@ var ins_discipline_omschrijving = get_disc_name(dis_key);
// TODO: als er geen chat_queue.accepting zijn dat direct melden?
Application.Lock();
var chat_queue = JSON.parse(Application(chat_queue_name) || "{}");
Application.UnLock();
%>
<html>
@@ -38,6 +37,7 @@ Application.UnLock();
FcltMgr.startEdit(window); // maakt hem hot
}
var hasChatOnline = 0;
var wantchannelId = "<%=wantchannelId%>";
var startMessage;
var timerId;
@@ -115,9 +115,15 @@ Application.UnLock();
Response.Write("\nnotify.signal('{0}');".format(acceptchannelId));
}
%>
function sendQueueAlive()
function sendQueueAlive(init)
{
$.post("ChatQueueAlive.asp?channelId=" + wantchannelId);
$.getJSON( "ChatQueueAlive.asp?channelId=" + wantchannelId
, function(data)
{ // Kijk opnieuw of er nog medewerkers aanwezig zijn om de chat te beantwoorden.
hasChatOnline = data.hasChatOnline;
handleChatOnline(init);
}
);
}
function handleEnter(event)
{
@@ -137,11 +143,32 @@ Application.UnLock();
$(this).hide();
$("span.spinnerbutton").show();
}
function handleChatOnline(init)
{
if (hasChatOnline > 0)
{
if (init)
{
$("#chatmsg").text("<%=L("lcl_chat_initialmsg")%>");
$("span.spinnerbutton, span.cancelbutton").hide();
$("#initialmsg").autogrow().focus().on("keydown", handleEnter);
}
else
{
$("#chatmsg").text("<%=L("lcl_chat_waiting")%>");
}
}
else
{
$("#chatmsg").text("<%=L("lcl_chat_no_listeners")%>");
$("div.text-wrapper").hide();
}
FcltMgr.resize();
}
$(function () {
$("span.spinnerbutton, span.cancelbutton").hide();
$("#initialmsg").autogrow().focus().on("keydown", handleEnter);
});
sendQueueAlive(true);
});
</script>
</head>
@@ -151,7 +178,7 @@ Application.UnLock();
<%BLOCK_START("chat", L("lcl_chatter_outgoing").format(ins_discipline_omschrijving), { icon: "fa-user-headset", center: true });%>
<div class="chatdisclaimer"><%=L("lcl_chat_disclaimer").format(ins_discipline_omschrijving)%></div>
<div class="chatinitialmsg"><%=L("lcl_chat_initialmsg")%></div>
<div class="chatinitialmsg" id="chatmsg"></div>
<div class="text-wrapper">
<textarea id="initialmsg" class="fldtxt" placeholder='<%=L("lcl_chat_initialmessage")%>'></textarea>
<span class="sendbutton" onclick="chat_ask()" title="<%=L("lcl_chat_waiting").format(wantchannelId)%>">

View File

@@ -893,6 +893,10 @@ cnt = { setcontractstatus:
+ " FROM cnt_termijn"
+ " WHERE cnt_termijn_key = cc.cnt_contract_rappeltermijn) rappeltermijn_oms"
+ " , cnt.cnt_getRappeldatum(cc.cnt_contract_key) rappeldatum"
+ " , cc.cnt_contract_verleng_termijn"
+ " , (SELECT " + lcl.xsqla('cnt_termijn_omschrijving', 'cnt_termijn_key')
+ " FROM cnt_termijn "
+ " WHERE cnt_termijn_key = cc.cnt_contract_verleng_termijn) verlengtermijn_oms"
+ " , cc.cnt_prs_bedrijf_key"
+ " , (SELECT prs_bedrijf_naam"
+ " FROM prs_bedrijf"
@@ -941,6 +945,7 @@ cnt = { setcontractstatus:
+ " , dp.cnt_disc_params_leverancier"
+ " , dp.cnt_disc_params_uitvoerende"
+ " , dp.cnt_disc_params_huurder"
+ " , dp.cnt_disc_params_opties"
+ " , cc.cnt_contract_mantel_key"
+ " , mc.cnt_contract_nummer_intern mantelcontractnummer"
+ " , mc.cnt_contract_omschrijving mantelomschrijving"
@@ -998,6 +1003,8 @@ cnt = { setcontractstatus:
rappeltermijn: oRs("cnt_contract_rappeltermijn").Value,
rappeltermijn_oms: oRs("rappeltermijn_oms").Value,
rappeldatum: new Date(oRs("rappeldatum").Value),
verlengtermijn: oRs("cnt_contract_verleng_termijn").Value,
verlengtermijn_oms: oRs("verlengtermijn_oms").Value,
bedrijf_key: oRs("cnt_prs_bedrijf_key").Value,
bedrijf_naam: oRs("bedrijf_naam").Value,
perslid_key: oRs("cnt_prs_perslid_key").Value,
@@ -1031,6 +1038,7 @@ cnt = { setcontractstatus:
mantelomschrijving: oRs("mantelomschrijving").Value,
nnScope: oRs("nnScope").Value,
isAbonnement: oRs("bes_disc_params_contract").Value == 1,
magAutomatischVerlengen: oRs("cnt_disc_params_opties").Value == 1,
openfinref: oRs("openfinref").Value > 0
};
oRs.Close()

View File

@@ -53,11 +53,11 @@ user.anything_todo_or_abort(this_cnt.canChangeSrt);
+ " , cnt_kenmerk k_old"
+ " , cnt_kenmerk k_new"
+ " WHERE t.cnt_srtkenmerk_kenmerktype IN ('F', 'E', 'M')"
+ " AND k_old.cnt_srtcontract_key = " + cnt_srt_current_key
+ " AND ((k_old.cnt_srtcontract_key = " + cnt_srt_current_key + " AND k_new.cnt_srtcontract_key = " + cnt_srt_new_key + ")"
+ " OR (k_old.cnt_srtcontract_key IS NULL AND k_new.cnt_srtcontract_key IS NULL))"
+ " AND k_old.cnt_kenmerk_niveau = 'S'"
+ " AND k_old.cnt_kenmerk_verwijder IS NULL"
+ " AND k_old.cnt_srtkenmerk_key = t.cnt_srtkenmerk_key"
+ " AND k_new.cnt_srtcontract_key = " + cnt_srt_new_key
+ " AND k_new.cnt_kenmerk_niveau = 'S'"
+ " AND k_new.cnt_kenmerk_verwijder IS NULL"
+ " AND k_new.cnt_srtkenmerk_key = t.cnt_srtkenmerk_key"
@@ -72,7 +72,7 @@ user.anything_todo_or_abort(this_cnt.canChangeSrt);
+ " WHERE vkc.cnt_kenmerk_key = vk.cnt_kenmerk_key"
+ " AND vk.cnt_srtkenmerk_key = vsk.cnt_srtkenmerk_key"
+ " AND vkc.cnt_contract_key = " + cnt_key
+ " AND vk.cnt_srtcontract_key = " + cnt_srt_current_key
+ " AND (vk.cnt_srtcontract_key = " + cnt_srt_current_key + " OR vk.cnt_srtcontract_key IS NULL)"
+ " AND COALESCE (vk.cnt_kenmerk_omschrijving, vsk.cnt_srtkenmerk_omschrijving)"
+ " = COALESCE (k.cnt_kenmerk_omschrijving, sk.cnt_srtkenmerk_omschrijving)"
+ " AND vk.cnt_srtkenmerk_key = k.cnt_srtkenmerk_key"
@@ -83,7 +83,7 @@ user.anything_todo_or_abort(this_cnt.canChangeSrt);
+ " , " + sql_waarde + " kenmerk_waarde"
+ " FROM cnt_srtkenmerk sk"
+ " , cnt_kenmerk k"
+ " WHERE k.cnt_srtcontract_key = " + cnt_srt_new_key
+ " WHERE (k.cnt_srtcontract_key = " + cnt_srt_new_key + "OR k.cnt_srtcontract_key IS NULL)"
+ " AND k.cnt_kenmerk_niveau = 'S'"
+ " AND k.cnt_kenmerk_verwijder IS NULL"
+ " AND sk.cnt_srtkenmerk_verwijder IS NULL"

View File

@@ -102,6 +102,7 @@ else // nieuw contract of copy
+ " dp.cnt_disc_params_leverancier,"
+ " dp.cnt_disc_params_uitvoerende,"
+ " dp.cnt_disc_params_huurder,"
+ " dp.cnt_disc_params_opties,"
+ lcl.xsqla('cs.ins_discipline_omschrijving','cs.ins_discipline_key')
+ ", (SELECT prs_kostensoort_oms || '-' || " + lcl.xsqla('prs_kostensoort_opmerking', 'prs_kostensoort_key')
+ " FROM prs_kostensoort"
@@ -122,6 +123,7 @@ else // nieuw contract of copy
cnt_info.discipline_leverancier = oRs("cnt_disc_params_leverancier").Value;
cnt_info.discipline_uitvoerende = oRs("cnt_disc_params_uitvoerende").Value;
cnt_info.discipline_huurder = oRs("cnt_disc_params_huurder").Value;
cnt_info.magAutomatischVerlengen = (oRs("cnt_disc_params_opties").Value & 1) == 1;
oRs.close();
}
@@ -136,6 +138,7 @@ else // nieuw contract of copy
{
$('textarea').autogrow();
FcltMgr.resized(window)
onChangeVerlengen();
});
async function cnt_submit()
@@ -334,17 +337,38 @@ else // nieuw contract of copy
readonly: cnt_info.isAbonnement || !this_cnt.canChangeAlg
});
// Heb ik rechten om verlengen aan te passen. Alleen bij bestaande contracten
if (cnt_key > -1 && cnt_info.isAbonnement)
{ // Het is een abonnement contract
sql_verlengen = "SELECT -1,' " + L("lcl_unknown") + "', 1 FROM DUAL"
+ " UNION SELECT " + (cnt_info.verlenging > 1? "3" : "1") + ", " + safe.qL("lcl_Yes") + ", 2 FROM DUAL"
+ " UNION SELECT " + (cnt_info.verlenging > 1? "2" : "0") + ", " + safe.qL("lcl_No") + ", 3 FROM DUAL"
if ((cnt_key > -1 && cnt_info.isAbonnement) || cnt_info.magAutomatischVerlengen)
{ // verlenging: &1 = verlenging nee/ja
// &2 = keuze definitief (zie #23924)
// &4 = automatsch verlengen
sql_verlengen = "SELECT " + (((cnt_info.verlenging & 2) == 2) ? "2" : "0") + ", " + safe.qL("lcl_No") + ", 3 FROM DUAL"
+ ( cnt_info.isAbonnement
? " UNION SELECT -1, " + safe.qL("lcl_unknown") + ", 1 FROM DUAL"
+ " UNION SELECT " + (((cnt_info.verlenging & 2) == 2) ? "3" : "1") + ", " + safe.qL("lcl_Yes") + ", 2 FROM DUAL"
: ""
)
+ ( cnt_info.magAutomatischVerlengen
? " UNION SELECT 5, " + safe.qL("lcl_cnt_prolongation_auto") + ", 4 FROM DUAL"
: ""
)
+ " ORDER BY 3";
FCLTselector("cntverlengen", sql_verlengen,
{ label: L("lcl_cnt_verlengen"),
initKey: cnt_info.verlenging,
readonly: !this_cnt.canVerlengen // Als (cnt_verlenging > 1) dan is canVerlengen false.
});
readonly: !(cnt_info.magAutomatischVerlengen || this_cnt.canVerlengen), // Als (cnt_verlenging & 2 == 2) dan is canVerlengen false.
onChange: "onChangeVerlengen()"
});
if (cnt_info.magAutomatischVerlengen)
{
FCLTselector("cnt_prolongation_period", sql_termijnen,
{ label: L("lcl_cnt_prolongation_period"),
initKey: cnt_info.verlengtermijn,
required: true,
emptyOption: "",
readonly: cnt_info.isAbonnement || !this_cnt.canChangeAlg
});
}
}
BLOCK_END();

View File

@@ -33,3 +33,12 @@ function onChangeDepartment(a_key)
if (typeof sgCompany != "undefined") sgCompany.setValue(-1, ""); // Maak Bedrijf suggestbox leeg.
}
}
function onChangeVerlengen()
{ // regel met verlengtermijn alleen tonen als automatisch verlengen geselecteerd is.
var k = $("#cntverlengen").val();
( (k == 5)
? $("#cnt_prolongation_period").closest("tr").show()
: $("#cnt_prolongation_period").closest("tr").hide()
);
}

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