138 Commits

Author SHA1 Message Date
Erik Groener
b393aecd71 RWSN#24937 5.2.2 (22832) vakgroep selecteerbaar als alle meldingen een vervaldatum hebben
svn path=/Website/branches/v5.2.2/; revision=16140
2012-11-29 07:28:43 +00:00
Erik Groener
6a041d52d8 RWSN#24937 5.2.2 (22832) vakgroep selecteerbaar als alle meldingen een vervaldatum hebben
svn path=/Website/branches/v5.2.2/; revision=16113
2012-11-28 08:59:05 +00:00
Jos Groot Lipman
0ef78d6f26 FSN#24874 checkbox kenmerken beter doorgegeven
svn path=/Website/branches/v5.2.2/; revision=16036
2012-11-21 10:32:38 +00:00
Jos Groot Lipman
1fe5bf353a CONN#24922 Multi edit bijlagen kan niet dus mag niet
svn path=/Website/branches/v5.2.2/; revision=16035
2012-11-21 09:58:20 +00:00
Jos Groot Lipman
4ba06ee03c SUTF#24915 Filtercode TRCK werkt helemaal niet meer
svn path=/Website/branches/v5.2.2/; revision=16029
2012-11-20 16:36:13 +00:00
Jos Groot Lipman
da9355c41f FSN#24909 Firefox Compatible slepen
svn path=/Website/branches/v5.2.2/; revision=16001
2012-11-19 11:08:55 +00:00
Erik Groener
f410baaefc FSN#24776 Het toevoegen van plaatjes aan marktplaats werkt niet
svn path=/Website/branches/v5.2.2/; revision=15992
2012-11-16 14:35:25 +00:00
Jos Groot Lipman
4629c01c21 FSN#24874 checkbox kenmerken goed doorgegeven
svn path=/Website/branches/v5.2.2/; revision=15972
2012-11-15 10:19:00 +00:00
Erik Groener
b38971c8c3 FSN#24776 Het toevoegen van plaatjes aan marktplaats werkt niet
svn path=/Website/branches/v5.2.2/; revision=15966
2012-11-15 07:27:02 +00:00
Jos Groot Lipman
bebbdec04e AKZA#24841 Bij nieuwe onderdelen discipline default leeg laten
svn path=/Website/branches/v5.2.2/; revision=15892
2012-11-12 14:21:39 +00:00
Maykel Geerdink
1388820eaa AAIT#22473: FIN: WEB_FINFOF mag correcties doorvoeren en "opnieuw ter akkoord sturen".
svn path=/Website/branches/v5.2.2/; revision=15887
2012-11-12 08:43:00 +00:00
Maykel Geerdink
6e436cc273 AAIT#22473: FIN: WEB_FINFOF mag correcties doorvoeren en "opnieuw ter akkoord sturen".
svn path=/Website/branches/v5.2.2/; revision=15886
2012-11-12 08:33:17 +00:00
Jos Groot Lipman
8570057f26 IVET#24780 Group by error zoeken personen
svn path=/Website/branches/v5.2.2/; revision=15812
2012-11-07 08:20:30 +00:00
Maykel Geerdink
9a2a663442 AANX#24700: Verwijderen dienst bij leverancier niet mogelijk: ajax error.
svn path=/Website/branches/v5.2.2/; revision=15806
2012-11-06 11:06:46 +00:00
Erik Groener
c6da9fef31 AAIT#24571 gastgebruiker zou gewone interface niet moeten kunnen gebruiken; melding "Gegevens zijn opgeslagen" wordt niet op alle mobile's getoond.
svn path=/Website/branches/v5.2.2/; revision=15763
2012-11-01 11:44:41 +00:00
Jos Groot Lipman
a0ee36ae1f UWVA#24233 QR code ook tekstueel tonen zodat over te tikken. Expire op 5 minuten
svn path=/Website/branches/v5.2.2/; revision=15745
2012-10-31 10:43:25 +00:00
Jos Groot Lipman
293abf0700 FSN#24445 Cacbe herladen na upgrade
svn path=/Website/branches/v5.2.2/; revision=15740
2012-10-30 14:39:28 +00:00
Jos Groot Lipman
fb60ef37b2 PRIS#24727 Ook Regio (level 0) ondersteunen
svn path=/Website/branches/v5.2.2/; revision=15736
2012-10-30 10:14:59 +00:00
Jos Groot Lipman
881f2806c7 AAIT#24571 Gastgebruiker feedback geven over opgeslagen melding
svn path=/Website/branches/v5.2.2/; revision=15713
2012-10-25 07:50:04 +00:00
Peter Feij
966cef3aeb AAEN#24636 persoonsafhankelijke flexkenmerkwaarde bij bestelaanvraag
svn path=/Website/branches/v5.2.2/; revision=15711
2012-10-24 15:40:06 +00:00
Jos Groot Lipman
462432c4c1 AALB#24658 Beter aanvrager tonen
svn path=/Website/branches/v5.2.2/; revision=15705
2012-10-24 12:55:05 +00:00
Jos Groot Lipman
f4862643e9 UWVA#24233 Beter Blackberry herkennen
svn path=/Website/branches/v5.2.2/; revision=15702
2012-10-24 10:53:39 +00:00
Jos Groot Lipman
251454836a FSN#24642 Meer oRs.Close()
svn path=/Website/branches/v5.2.2/; revision=15697
2012-10-24 07:23:59 +00:00
Jos Groot Lipman
8130ce684f Slordig, ook al wordt fullscreen.asp niet meer ondersteund en vervalt waarschijnlijk.
svn path=/Website/branches/v5.2.2/; revision=15695
2012-10-23 14:53:10 +00:00
Jos Groot Lipman
150d69b860 RWSN#24617 Licentieklanten met SSO moeten wel kunnen uitloggen
Ook:&sso=0 in url voorkomt SSO

svn path=/Website/branches/v5.2.2/; revision=15694
2012-10-23 14:44:00 +00:00
Jos Groot Lipman
c11d88c9e6 FSN#24644 prodsearch.asp ook voor AABT met prs_perslid_nr in prs_pers_string
svn path=/Website/branches/v5.2.2/; revision=15691
2012-10-23 13:21:43 +00:00
Jos Groot Lipman
5a6a09a9f2 AAIT#24571 Melding.asp ook ins-naam laten zien als ins_key meegegeven.
svn path=/Website/branches/v5.2.2/; revision=15687
2012-10-23 10:34:19 +00:00
Jos Groot Lipman
6c731f33fb AAEN#24633 Redundant verdieping/gebouwkey meegeven ook al stuur je ruimtekey. Anders fout bij autoorder
svn path=/Website/branches/v5.2.2/; revision=15685
2012-10-23 09:35:35 +00:00
Jos Groot Lipman
a3cc512150 FSN#24445 Settings ook goed migreren als gecached
svn path=/Website/branches/v5.2.2/; revision=15683
2012-10-23 08:00:15 +00:00
Jos Groot Lipman
e025da3365 UWVA#24486 alleen leesrechten beter ondersteunen
svn path=/Website/branches/v5.2.2/; revision=15675
2012-10-22 10:07:34 +00:00
Jos Groot Lipman
5ddddb2b4c GESL#24572 Ook MAC (0x0D) regeleindes ondersteunen
svn path=/Website/branches/v5.2.2/; revision=15669
2012-10-17 17:45:43 +00:00
Jos Groot Lipman
3814e45709 AAIT#24517 MLDBOF mag nooit meldingen aanmaken. Daarom testen op MLDUSE
svn path=/Website/branches/v5.2.2/; revision=15664
2012-10-16 10:37:44 +00:00
Jos Groot Lipman
a127d5e783 AAEN#24560 Vervallen waarden bij *item* kenmerken uitfilteren
svn path=/Website/branches/v5.2.2/; revision=15663
2012-10-16 08:30:45 +00:00
Jos Groot Lipman
307ed6399e FSN#24564 Veiligheidslek
svn path=/Website/branches/v5.2.2/; revision=15661
2012-10-16 07:40:43 +00:00
Jos Groot Lipman
3b3401407e FSN#24545 Reguliere expressie karakters escapen
svn path=/Website/branches/v5.2.2/; revision=15660
2012-10-15 15:32:36 +00:00
Jos Groot Lipman
e36de9f0cf AASA#24459 canFinish is wat anders dan offertes goedkeuren
svn path=/Website/branches/v5.2.2/; revision=15641
2012-10-11 14:20:57 +00:00
Peter Koerhuis
766700ec33 AAIT#24491: leverdatum niet tonen (onterecht toegevoegd)
svn path=/Website/branches/v5.2.2/; revision=15637
2012-10-11 13:03:20 +00:00
Peter Koerhuis
8ae75b4e53 AAIT#24491 Bestel kenmerk staat op orderlayout na nieuwe release (label)
svn path=/Website/branches/v5.2.2/; revision=15634
2012-10-11 08:21:32 +00:00
Peter Koerhuis
8431b5f738 AAIT#24491 Bestel kenmerk staat op orderlayout na nieuwe release (label)
svn path=/Website/branches/v5.2.2/; revision=15633
2012-10-11 07:55:15 +00:00
Peter Koerhuis
392a9929e3 AAIT#24491 Bestel kenmerk staat op orderlayout na nieuwe release (label)
svn path=/Website/branches/v5.2.2/; revision=15632
2012-10-11 07:54:54 +00:00
Jos Groot Lipman
93724c0cd2 FSN#24504 Lange teksten (notities) korter notificeren
svn path=/Website/branches/v5.2.2/; revision=15629
2012-10-10 13:31:14 +00:00
Jos Groot Lipman
309cb6c9e8 Ongedefinieerde maar ongebruikte LCL
svn path=/Website/branches/v5.2.2/; revision=15624
2012-10-10 07:09:19 +00:00
Jos Groot Lipman
ed3b89cb73 AAIT#24062 Performance++
svn path=/Website/branches/v5.2.2/; revision=15620
2012-10-09 16:05:36 +00:00
Erik Groener
0117c2943d PNBR#24489 meldingscherm ververst niet in Firefox
svn path=/Website/branches/v5.2.2/; revision=15616
2012-10-09 14:02:36 +00:00
Jos Groot Lipman
fc9a740dd6 PNBR#24376 Vakgroep automatisch vullen kan veel simpeler
Ook: filtercode gewoon VD, nooit VDK (keten)

svn path=/Website/branches/v5.2.2/; revision=15615
2012-10-09 12:33:24 +00:00
Jos Groot Lipman
a9530ea877 PNBR#24376 From trunk: Vakgroep wordt niet automatisch gevuld bij vervolgmelding
svn path=/Website/branches/v5.2.2/; revision=15614
2012-10-09 12:07:32 +00:00
Jos Groot Lipman
f645bb1e8f AAEN#24442 verlegd btw merge vanuit trunk
svn path=/Website/branches/v5.2.2/; revision=15609
2012-10-09 10:41:40 +00:00
Jos Groot Lipman
d1fbb891c4 PNBR#24498 URL in faq leidde naar _blank als geen friendly name
svn path=/Website/branches/v5.2.2/; revision=15607
2012-10-09 10:13:55 +00:00
Jos Groot Lipman
fefcdaa236 FSN#24481 Bijlagenknop parent workflow
svn path=/Website/branches/v5.2.2/; revision=15603
2012-10-08 10:14:59 +00:00
Jos Groot Lipman
ad10fefa75 FSN#24479 Franstalig beter ondersteunen
svn path=/Website/branches/v5.2.2/; revision=15601
2012-10-08 09:33:16 +00:00
Jos Groot Lipman
a2009d63f4 UWVA#24460 Closure compiler stripte te veel
svn path=/Website/branches/v5.2.2/; revision=15584
2012-10-04 13:53:42 +00:00
Jos Groot Lipman
592ff67426 AADS#24093 niet in branch, de nieuwe LCL's komen pas in DB17 mee
svn path=/Website/branches/v5.2.2/; revision=15566
2012-10-03 13:34:11 +00:00
Jos Groot Lipman
c28e2afab6 FSN#24357 Merge r12372 vanuit trunk voor lcl-rootpath
svn path=/Website/branches/v5.2.2/; revision=15563
2012-10-03 10:52:47 +00:00
Erik Groener
b6056771d2 AADS#24093 Sluiten van contracten onder aparte autorisatie
svn path=/Website/branches/v5.2.2/; revision=15539
2012-10-02 12:49:37 +00:00
Jos Groot Lipman
3bc7f024ed UWVA#24354 Performance verbetering door settings te cachen
svn path=/Website/branches/v5.2.2/; revision=15533
2012-10-02 08:53:59 +00:00
Jos Groot Lipman
34190cf4c9 LCL_Disable scheelt 20ms, voor een bestand wat bij UWVA tot 8 keer per seconde wordt aangeroepen is dat significant genoeg voor mij
svn path=/Website/branches/v5.2.2/; revision=15519
2012-10-01 07:21:03 +00:00
Jos Groot Lipman
d4407a8831 UWVA#24354 Performance verbetering door settings te cachen
svn path=/Website/branches/v5.2.2/; revision=15510
2012-09-27 14:22:35 +00:00
Jos Groot Lipman
f2ed5842bc BOFO#24343 resizen via iFrameLoaded werkte niet meer goed, XP+IE8 gaf bij eerste refresh een wit scherm
Door de resize iets eerder te plaatsen is het in mijn VM nu wel goed.

svn path=/Website/branches/v5.2.2/; revision=15509
2012-09-27 13:32:18 +00:00
Erik Groener
a5356a8c27 FSN#24387 Kan geen nieuw persoon toevoegen
svn path=/Website/branches/v5.2.2/; revision=15506
2012-09-27 10:33:39 +00:00
Jos Groot Lipman
372dbf607f UWVA#24383 Tarief bij autoorder correct invullen
svn path=/Website/branches/v5.2.2/; revision=15505
2012-09-27 09:40:50 +00:00
Jos Groot Lipman
c50f26c4bb ARAI#24369 Flexfolders 'moven' fix: __NEW__ wel opruimen
svn path=/Website/branches/v5.2.2/; revision=15504
2012-09-27 07:39:32 +00:00
Jos Groot Lipman
9d469d6e5c UWVA#24375 Performance verbetering door uitvoerende niet meer in de tooltip te tonen
svn path=/Website/branches/v5.2.2/; revision=15502
2012-09-26 15:30:30 +00:00
Jos Groot Lipman
a1f3e9d28a UWVA#24375 Performance verbetering door uitvoerende niet meer in de tooltip te tonen
svn path=/Website/branches/v5.2.2/; revision=15501
2012-09-26 15:25:19 +00:00
Jos Groot Lipman
2492c1992b ARAI#24369 Flexfolders 'moven' (met name bij nieuwe meldingen) maakt 1000-tal folder nu beter aan.
svn path=/Website/branches/v5.2.2/; revision=15500
2012-09-26 13:26:29 +00:00
Jos Groot Lipman
5f2e5ab0c4 SKAF#24367 auto eindtijd alleen bij *nieuwe* reserveringen
svn path=/Website/branches/v5.2.2/; revision=15499
2012-09-26 11:57:52 +00:00
Erik Groener
b2ff6c219d UWVA#24344 managementinfo zoeken op nummer werkt niet meer
svn path=/Website/branches/v5.2.2/; revision=15498
2012-09-26 11:00:03 +00:00
Erik Groener
5a35c9d2b2 UWVA#24347 bijlagen worden niet meegestuurd
svn path=/Website/branches/v5.2.2/; revision=15497
2012-09-26 08:57:49 +00:00
Jos Groot Lipman
489f296484 FSN#24326 Merge from trunk (Column ambiguous)
svn path=/Website/branches/v5.2.2/; revision=15496
2012-09-26 08:47:30 +00:00
Jos Groot Lipman
00f9014cd1 UWVA#24322 Beter parkeerplaatsen
svn path=/Website/branches/v5.2.2/; revision=15493
2012-09-25 15:30:52 +00:00
Jos Groot Lipman
c51f5acaf4 UWVA#24354 Performance verbetering door settings te cachen
svn path=/Website/branches/v5.2.2/; revision=15492
2012-09-25 15:19:56 +00:00
Jos Groot Lipman
d949eaa76d UWVA#24354 Performance verbetering door settings te cachen
svn path=/Website/branches/v5.2.2/; revision=15491
2012-09-25 14:59:51 +00:00
Jos Groot Lipman
d37965ba61 UWVA#24322 Beter parkeerplaatsen
svn path=/Website/branches/v5.2.2/; revision=15490
2012-09-25 11:43:03 +00:00
Jos Groot Lipman
fe086029db FSN#24351 Betere caching toestaan, vooral voor API's
svn path=/Website/branches/v5.2.2/; revision=15489
2012-09-25 10:43:59 +00:00
Erik Groener
4ba7deb895 FSN#24338 Werkplek verplaatsen nog altijd IIS-error
svn path=/Website/branches/v5.2.2/; revision=15488
2012-09-25 09:43:48 +00:00
Jos Groot Lipman
7cd73e8c06 UWVA#24339 Artikelen zoeken op reserveringnummer werkte niet meer voor de fo
svn path=/Website/branches/v5.2.2/; revision=15487
2012-09-25 09:23:29 +00:00
Jos Groot Lipman
27acb1c763 BOFO#24343 resizen via iFrameLoaded werkte niet meer goed
svn path=/Website/branches/v5.2.2/; revision=15486
2012-09-24 15:18:19 +00:00
Jos Groot Lipman
70f1a5a0d8 UWVA#24322 Weer werkend voor parkeerplaatsen die *niet* aan terreinen zijn gekoppeld
Ook: PRSautlevel niet stiekem gebruik voor *alg*-scope

svn path=/Website/branches/v5.2.2/; revision=15485
2012-09-24 09:34:18 +00:00
Jos Groot Lipman
1ccaec43c3 UWVA#24322 Weer werkend voor parkeerplaatsen die *niet* aan terreinen zijn gekoppeld
Ook: PRSautlevel niet stiekem gebruik voor *alg*-scope

svn path=/Website/branches/v5.2.2/; revision=15483
2012-09-24 08:59:21 +00:00
Erik Groener
a43e526451 UWVA#24159 vervolg op inrichten parkeer op afdeling
svn path=/Website/branches/v5.2.2/; revision=12473
2012-09-21 12:44:35 +00:00
Jos Groot Lipman
9804449df5 UWVA#24317 SMS versturen werkte niet meer omdat hij onterecht probeerde proxy te gebruiken
svn path=/Website/branches/v5.2.2/; revision=12471
2012-09-21 08:45:34 +00:00
Jos Groot Lipman
3b71fb8688 Definitieve oplossing moest in trunk, niet in branch
svn path=/Website/branches/v5.2.2/; revision=12466
2012-09-20 13:59:29 +00:00
Maykel Geerdink
f5ca806313 UWVA#23839: BES/CNT: Testbevindingen Abonnementen.
svn path=/Website/branches/v5.2.2/; revision=12462
2012-09-20 13:43:36 +00:00
Maykel Geerdink
6b9f773938 PNBR#24305: Lijst van kennisbankitems toont niet meer dan 100 items.
svn path=/Website/branches/v5.2.2/; revision=12460
2012-09-20 13:23:03 +00:00
Jos Groot Lipman
96420151d3 AKZA#23780 werkplekken via Touchscreen
svn path=/Website/branches/v5.2.2/; revision=12457
2012-09-20 12:34:23 +00:00
Erik Groener
fe80941b2a UWVA#24159 vervolg op inrichten parkeer op afdeling
svn path=/Website/branches/v5.2.2/; revision=12456
2012-09-20 12:25:14 +00:00
Jos Groot Lipman
7842a47687 UWVA#24284 Werklocatie bewerken ook door PRSMAN/USE. Verder autorisatiecontrole toegevoegd.
svn path=/Website/branches/v5.2.2/; revision=12445
2012-09-18 10:01:38 +00:00
Jos Groot Lipman
d20211bb01 FSN#24258 Geen API meegeven op JumpTo's
svn path=/Website/branches/v5.2.2/; revision=12435
2012-09-17 11:34:25 +00:00
Jos Groot Lipman
5d604066b8 AKZA#23780 werkplekken via Touchscreen
svn path=/Website/branches/v5.2.2/; revision=12427
2012-09-13 13:20:20 +00:00
Jos Groot Lipman
d239d4aee0 FSN#24251 Proof of concept in ieder geval geen errors meer.
svn path=/Website/branches/v5.2.2/; revision=12426
2012-09-13 13:19:24 +00:00
Jos Groot Lipman
6f87630851 UWVA#22994 Alleen werklocatie aangeven in Facilitorair interessante gebouwen
svn path=/Website/branches/v5.2.2/; revision=12421
2012-09-13 12:06:39 +00:00
Jos Groot Lipman
2364199005 FSN#24197: Ondersteuning van 19/21% btw tarief verlegd.
svn path=/Website/branches/v5.2.2/; revision=12420
2012-09-13 11:07:31 +00:00
Jos Groot Lipman
ec0417b3a4 AAHU#24257 Safari factuuropslaan gaf error. Ook FireFox compatible gemaakt.
svn path=/Website/branches/v5.2.2/; revision=12418
2012-09-13 09:51:07 +00:00
Jos Groot Lipman
aeda8a811b FSN#24177 AddTimeStamp moet van rooturl capitalization afblijven
svn path=/Website/branches/v5.2.2/; revision=12414
2012-09-13 07:27:35 +00:00
Jos Groot Lipman
2a67e6b128 Merged revision(s) 12400 from Website/trunk/APPL:
AKZA#24066 Terrein Velperweg staat niet meer in Facilitor

svn path=/Website/branches/v5.2.2/; revision=12411
2012-09-12 12:18:48 +00:00
Jos Groot Lipman
0821db15e7 FSN#24253 Ruimtes ook tonen als ze koppelzaal zijn
svn path=/Website/branches/v5.2.2/; revision=12409
2012-09-12 12:04:28 +00:00
Jos Groot Lipman
786c4d725a Merged from trunk: PNBR#24239 Popup om te koppelen werkt niet in Firefox.
svn path=/Website/branches/v5.2.2/; revision=12408
2012-09-12 11:20:07 +00:00
Maarten van der Heide
78d97e6d06 UWVA#24046
svn path=/Website/branches/v5.2.2/; revision=12406
2012-09-12 10:53:12 +00:00
Jos Groot Lipman
bfee6ccaf4 AONL#24140 evt niet altijd gedefinieerd?
svn path=/Website/branches/v5.2.2/; revision=12405
2012-09-12 10:51:25 +00:00
Maykel Geerdink
9e60471ae3 FSN#24197: Ondersteuning van 19/21% btw tarief verlegd.
svn path=/Website/branches/v5.2.2/; revision=12404
2012-09-12 09:49:26 +00:00
Maykel Geerdink
6654ca222f UWVA#23839: BES/CNT: Testbevindingen Abonnementen.
svn path=/Website/branches/v5.2.2/; revision=12393
2012-09-11 11:57:21 +00:00
Maykel Geerdink
caf2fd6713 PNBR#24211: Antwoord van klant levert onverwachte notificatie op.
svn path=/Website/branches/v5.2.2/; revision=12390
2012-09-10 11:18:19 +00:00
Maykel Geerdink
bcd0f77c47 UWVA#23839: BES/CNT: Testbevindingen Abonnementen.
svn path=/Website/branches/v5.2.2/; revision=12389
2012-09-10 08:18:01 +00:00
Maykel Geerdink
201964c079 UWVA#24134: Vinder api: de api van de vinder is niet meer goed in accept.
svn path=/Website/branches/v5.2.2/; revision=12388
2012-09-10 06:58:46 +00:00
Peter Feij
57de9afda8 ARAI#24226 einddatum fout opgeslagen bij readonly (fe) einddatum
svn path=/Website/branches/v5.2.2/; revision=12385
2012-09-07 13:29:56 +00:00
Maykel Geerdink
bd6f04a461 PNBR#24210: Lopende zaken toont vakgroep voor FE.
svn path=/Website/branches/v5.2.2/; revision=12379
2012-09-06 14:24:35 +00:00
Erik Groener
5b49a398b6 CSUN#24203 de bijlage vervalt bij doorsturen melding
svn path=/Website/branches/v5.2.2/; revision=12378
2012-09-06 14:01:50 +00:00
Maykel Geerdink
aa0c0e74c2 UWVA#23653: Vinder: zoeken op telefoonnummers.
svn path=/Website/branches/v5.2.2/; revision=12374
2012-09-06 12:29:16 +00:00
Maykel Geerdink
42a371ee42 UWVA#24214: CNT: Veld Verlengen niet zichtbaar als niet wijzigbaar.
svn path=/Website/branches/v5.2.2/; revision=12373
2012-09-06 11:36:56 +00:00
Maykel Geerdink
c1dee5d817 UWVA#24191: BES: bij bestellen voor een ander wordt verkeerde mandaat getoond.
svn path=/Website/branches/v5.2.2/; revision=12366
2012-09-06 06:30:42 +00:00
Jos Groot Lipman
434b179c78 Iets robuuster scheelt IIS Logfile errors
svn path=/Website/branches/v5.2.2/; revision=12363
2012-09-05 15:08:31 +00:00
Maykel Geerdink
9d31d92404 AADS#24093: Sluiten van contracten onder aparte autorisatie.
svn path=/Website/branches/v5.2.2/; revision=12358
2012-09-05 12:16:00 +00:00
Erik Groener
078a3f5ea3 HPJI#24184 persoonsgegevens: foto's
svn path=/Website/branches/v5.2.2/; revision=12355
2012-09-05 10:13:10 +00:00
Jos Groot Lipman
3698f8a299 FSN#24190 Settings met hoofdletters migratie
svn path=/Website/branches/v5.2.2/; revision=12354
2012-09-05 10:07:19 +00:00
Jos Groot Lipman
57449ab7a0 FSN#24108: Geen dubbele filtering op vervallen nodig
svn path=/Website/branches/v5.2.2/; revision=12353
2012-09-05 09:30:25 +00:00
Jos Groot Lipman
008bef9365 HSUM#24121 backoffice reserveringen kan niet filteren op gebouw
svn path=/Website/branches/v5.2.2/; revision=12349
2012-09-05 08:24:34 +00:00
Maykel Geerdink
937ba649d4 FSN#24108: MLD Keten doorsturen lekt nog een beetje.
svn path=/Website/branches/v5.2.2/; revision=12348
2012-09-05 07:27:26 +00:00
Erik Groener
55f1432cbf HSUM#24121 backoffice reserveringen kan niet filteren op gebouw
svn path=/Website/branches/v5.2.2/; revision=12347
2012-09-05 07:24:20 +00:00
Jos Groot Lipman
bee8e20ce6 FSN#24170 Geavanceerde kenmerken tonen weer
svn path=/Website/branches/v5.2.2/; revision=12346
2012-09-05 07:22:29 +00:00
Jos Groot Lipman
484e4b8387 ARAI#24139: Planbare melding past startdatum aan bij opslaan.
svn path=/Website/branches/v5.2.2/; revision=12345
2012-09-04 14:13:34 +00:00
Erik Groener
1ba19ea3af HSUM#24121 backoffice reserveringen kan niet filteren op gebouw
svn path=/Website/branches/v5.2.2/; revision=12344
2012-09-04 14:03:18 +00:00
Jos Groot Lipman
495dcbaa6d AAIT#24074 Kindmelding koppelen status overnemen bij nieuwe
svn path=/Website/branches/v5.2.2/; revision=12342
2012-09-04 13:56:58 +00:00
Maykel Geerdink
ac48a74b77 ARAI#24139: Planbare melding past startdatum aan bij opslaan.
svn path=/Website/branches/v5.2.2/; revision=12341
2012-09-04 13:41:39 +00:00
Jos Groot Lipman
c628301ce0 FSN#24175 flexkenmerken bij geavanceerd zoeken erg rommelig
svn path=/Website/branches/v5.2.2/; revision=12340
2012-09-04 13:32:35 +00:00
Erik Groener
2647e99df7 FSN#24175 flexkenmerken bij geavanceerd zoeken erg rommelig
svn path=/Website/branches/v5.2.2/; revision=12336
2012-09-04 12:58:19 +00:00
Maykel Geerdink
bd04fd867d UWVA#24134: Vinder api: de api van de vinder is niet meer goed in accept.
svn path=/Website/branches/v5.2.2/; revision=12335
2012-09-04 12:21:31 +00:00
Maykel Geerdink
a3dbd806ca FSN#24125: HOUT: IIS Error opslaan contract.
svn path=/Website/branches/v5.2.2/; revision=12334
2012-09-04 11:24:51 +00:00
Maykel Geerdink
c8d5d4af54 UWVA#23636: SLE: Testbevindingen 'next level' verfijning module sleutelbeheer.
svn path=/Website/branches/v5.2.2/; revision=12332
2012-09-04 09:32:54 +00:00
Maykel Geerdink
a3622a0c80 UWVA#23636: SLE: Testbevindingen 'next level' verfijning module sleutelbeheer.
svn path=/Website/branches/v5.2.2/; revision=12330
2012-09-04 09:14:35 +00:00
Jos Groot Lipman
0f06f6ab6c Niet overdrijven met loggen
svn path=/Website/branches/v5.2.2/; revision=12329
2012-09-04 08:10:41 +00:00
Jos Groot Lipman
0a208d5541 LCL 'leeg' bestaat niet. Wordt overigens effectief helemaal niet gebruikt
svn path=/Website/branches/v5.2.2/; revision=12328
2012-09-04 08:09:30 +00:00
Jos Groot Lipman
821469d06f LCL bestond niet. Wordt overigens effectief helemaal niet gebruikt
svn path=/Website/branches/v5.2.2/; revision=12327
2012-09-04 08:04:13 +00:00
Maykel Geerdink
8a9c390f87 UWVA#23636: SLE: Testbevindingen 'next level' verfijning module sleutelbeheer.
svn path=/Website/branches/v5.2.2/; revision=12324
2012-09-04 06:04:01 +00:00
Jos Groot Lipman
2725f24893 GDFS#24160 Bedrijven verwijderen gaf onterecht geen rechten melding
svn path=/Website/branches/v5.2.2/; revision=12323
2012-09-03 14:12:08 +00:00
Jos Groot Lipman
e2ed17410c FSN#24122 Setting-foutje gaf IIS error nog steeds
svn path=/Website/branches/v5.2.2/; revision=12322
2012-09-03 12:44:44 +00:00
Jos Groot Lipman
de52577fe6 HPJI#24155 De test of je bezoek buiten de tijdgrenzen aanmeldt moet testen tegen de limieten, niet de defaults
svn path=/Website/branches/v5.2.2/; revision=12321
2012-09-03 12:30:20 +00:00
Jos Groot Lipman
9c4b0f9230 Pull 5.2.2 patches vanuit Trunk
svn path=/Website/branches/v5.2.2/; revision=12320
2012-09-03 12:10:35 +00:00
Jos Groot Lipman
6f51911f42 SKAF#24114 Als vaste hoogte dan geen autosize
svn path=/Website/branches/v5.2.2/; revision=12319
2012-09-03 11:58:04 +00:00
Jos Groot Lipman
37ba419356 Versie 5.2.2
svn path=/Website/branches/v5.2.2/; revision=12315
2012-09-03 07:26:45 +00:00
5001 changed files with 242413 additions and 388172 deletions

View File

@@ -20,6 +20,8 @@
RegioInScope etc. zou een beel betere benaming zijn geweest
*/
FCLTHeader.Requires({ lcl: ["ALG"] });
alg = {
// merk op: ALGMAN heeft geen PRS-scope, ALGUSE wel maar die negeren we
checkAutorisation: function (isOptional)
@@ -48,76 +50,35 @@ alg = {
var uALGreadlevel = 9;
var uALGwritelevel = 9;
}
// From now use the highest authorisations (lowest values)
var ALGreadlevel = mALGreadlevel < uALGreadlevel? mALGreadlevel : uALGreadlevel ;
var ALGwritelevel = mALGwritelevel < uALGwritelevel? mALGwritelevel: uALGwritelevel;
var autfunction = "WEB_RUIMAN";
var authparams = user.checkAutorisation(autfunction, true);
if (authparams) {
var rmALGreadlevel = authparams.ALGreadlevel;
var rmALGwritelevel = authparams.ALGwritelevel;
}
else {
var rmALGreadlevel = 9;
var rmALGwritelevel = 9;
}
var autfunction = "WEB_TERMAN";
var authparams = user.checkAutorisation(autfunction, true);
if (authparams) {
var tmALGreadlevel = authparams.ALGreadlevel;
var tmALGwritelevel = authparams.ALGwritelevel;
}
else {
var tmALGreadlevel = 9;
var tmALGwritelevel = 9;
}
return ({ALGreadlevel: ALGreadlevel, ALGwritelevel: ALGwritelevel,
mALGreadlevel: mALGreadlevel, mALGwritelevel: mALGwritelevel,
uALGreadlevel: uALGreadlevel, uALGwritelevel: uALGwritelevel,
rmALGreadlevel: rmALGreadlevel, rmALGwritelevel: rmALGwritelevel,
tmALGreadlevel: tmALGreadlevel, tmALGwritelevel: tmALGwritelevel
uALGreadlevel: uALGreadlevel, uALGwritelevel: uALGwritelevel
});
},
func_enabled: function alg_func_enabled (alg_key, p_onrgoedlvl)
func_enabled: function alg_func_enabled (alg_key, onrgoedlvl)
{
var onrgoedlvl = (p_onrgoedlvl ? p_onrgoedlvl.toUpperCase() : "");
if (alg_key < 0 ||
onrgoedlvl == "G" || onrgoedlvl == "T" || onrgoedlvl == "V" || onrgoedlvl == "R")
{
var rresult = user.func_enabled("ALG",
null, // geen disciplines
alg_key,
null); // nooit prs-scope
null, // geen disciplines
alg_key,
null); // nooit prs-scope
var autfunctionMAN = "WEB_ALGMAN";
var autfunctionUSE = "WEB_ALGUSE";
// Met ALG* bepaal je wat je ziet (Read).
rresult.readman = rresult.canRead (autfunctionMAN);
rresult.readman = rresult.canRead (onrgoedlvl == "T"?"WEB_TERMAN":"WEB_ALGMAN");
rresult.writeman = rresult.canWrite(onrgoedlvl == "T"?"WEB_TERMAN":"WEB_ALGMAN");
if (onrgoedlvl != "T")
rresult.readuse = rresult.canRead (autfunctionUSE);
// Met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
switch (onrgoedlvl)
{
case "T": autfunctionMAN = "WEB_TERMAN";
break;
case "R": autfunctionMAN = "WEB_RUIMAN";
autfunctionUSE = "WEB_RUIUSE";
break;
rresult.readuse = rresult.canRead ("WEB_ALGUSE");
rresult.writeuse = rresult.canWrite("WEB_ALGUSE");
}
rresult.writeman = rresult.canWrite(autfunctionMAN);
if (onrgoedlvl != "T")
rresult.writeuse = rresult.canWrite(autfunctionUSE);
}
else // iets meer werk
{
@@ -281,49 +242,45 @@ alg = {
alg_gebouwinfo: function _alg_gebouw(alg_gebouw_key)
{
var sql = "SELECT g.alg_gebouw_naam"
+ " , g.alg_gebouw_code"
+ " , g.alg_gebouw_omschrijving"
+ " , g.alg_srtgebouw_key"
+ " , g.prs_kostenplaats_key"
+ " , g.mld_adres_key"
+ " , g.alg_gebouw_opmerking"
+ " , g.alg_gebouw_ordernr"
+ " , g.alg_gebouw_bez"
+ " , g.alg_locatie_key"
+ " , k.prs_kostenplaats_module"
+ " , " + S("prs_kpn_string") + " kpstring"
+ " , " + S("prs_pers_string") + " budgethouder"
+ " , p.prs_perslid_key"
+ " , COALESCE(g.alg_gebouw_beginuur, -1) alg_gebouw_beginuur"
+ " , COALESCE(g.alg_gebouw_einduur, -1) alg_gebouw_einduur"
+ " FROM alg_gebouw g"
+ " , prs_kostenplaats k"
+ " , prs_perslid p"
+ " WHERE g.prs_kostenplaats_key = k.prs_kostenplaats_key(+)"
+ " AND k.prs_perslid_key = p.prs_perslid_key(+)"
+ " AND g.alg_gebouw_key = " + alg_gebouw_key;
+ ", g.alg_gebouw_code"
+ ", g.alg_gebouw_omschrijving"
+ ", g.alg_srtgebouw_key"
+ ", g.prs_kostenplaats_key"
+ ", g.mld_adres_key"
+ ", g.alg_gebouw_opmerking"
+ ", g.alg_gebouw_ordernr"
+ ", g.alg_gebouw_bez"
+ ", g.alg_locatie_key"
+ ", k.prs_kostenplaats_module"
+ ", " + S("prs_kpn_string") + " kpstring"
+ ", " + S("prs_pers_string") + " budgethouder"
+ ", p.prs_perslid_key"
+ " FROM alg_gebouw g"
+ ", prs_kostenplaats k"
+ ", prs_perslid p"
+ " WHERE g.prs_kostenplaats_key = k.prs_kostenplaats_key"
+ " AND k.prs_perslid_key = p.prs_perslid_key"
+ " AND g.alg_gebouw_key = " + alg_gebouw_key;
var oRs = Oracle.Execute(sql);
var result = {};
if (!oRs.eof)
{
result = { alg_gebouw_key: alg_gebouw_key,
alg_gebouw_naam: oRs("alg_gebouw_naam").Value,
alg_gebouw_code: oRs("alg_gebouw_code").Value,
alg_gebouw_omschrijving: oRs("alg_gebouw_omschrijving").Value,
alg_srtgebouw_key: oRs("alg_srtgebouw_key").Value,
alg_kostenplaats_key: oRs("prs_kostenplaats_key").Value,
mld_adres_key: oRs("mld_adres_key").Value,
alg_gebouw_opmerking: oRs("alg_gebouw_opmerking").Value,
alg_gebouw_ordernr: oRs("alg_gebouw_ordernr").Value,
alg_gebouw_bez: oRs("alg_gebouw_bez").Value == "1",
alg_locatie_key: oRs("alg_locatie_key").Value,
kostenplaats_omschrijving: oRs("kpstring").Value,
kostenplaats_module: oRs("prs_kostenplaats_module").Value,
kostenplaats_budgethouder_key: oRs("prs_perslid_key").Value,
kostenplaats_budgethouder: oRs("budgethouder").Value,
gebouw_beginuur: oRs("alg_gebouw_beginuur").Value,
gebouw_einduur: oRs("alg_gebouw_einduur").Value
alg_gebouw_naam: oRs("alg_gebouw_naam").value,
alg_gebouw_code: oRs("alg_gebouw_code").value,
alg_gebouw_omschrijving: oRs("alg_gebouw_omschrijving").value,
alg_srtgebouw_key: oRs("alg_srtgebouw_key").value,
alg_kostenplaats_key: oRs("prs_kostenplaats_key").value,
mld_adres_key: oRs("mld_adres_key").value,
alg_gebouw_opmerking: oRs("alg_gebouw_opmerking").value,
alg_gebouw_ordernr: oRs("alg_gebouw_ordernr").value,
alg_gebouw_bez: oRs("alg_gebouw_bez").value == "1",
alg_locatie_key: oRs("alg_locatie_key").value,
kostenplaats_omschrijving: oRs("kpstring").value,
kostenplaats_module: oRs("prs_kostenplaats_module").value,
kostenplaats_budgethouder_key: oRs("prs_perslid_key").value,
kostenplaats_budgethouder: oRs("budgethouder").value
};
}
oRs.Close();
@@ -356,17 +313,17 @@ alg = {
if (!oRs.eof)
{
result = { alg_terreinsector_key: alg_terreinsector_key,
alg_terreinsector_naam: oRs("alg_terreinsector_naam").Value,
alg_terreinsector_code: oRs("alg_terreinsector_code").Value,
alg_terreinsector_omschrijving: oRs("alg_terreinsector_omschrijving").Value,
alg_srtterreinsector_key: oRs("alg_srtterreinsector_key").Value,
alg_kostenplaats_key: oRs("prs_kostenplaats_key").Value,
alg_terreinsector_ordernr: oRs("alg_terreinsector_ordernr").Value,
alg_locatie_key: oRs("alg_locatie_key").Value,
kostenplaats_omschrijving: oRs("kpstring").Value,
kostenplaats_module: oRs("prs_kostenplaats_module").Value,
kostenplaats_budgethouder_key: oRs("prs_perslid_key").Value,
kostenplaats_budgethouder: oRs("budgethouder").Value
alg_terreinsector_naam: oRs("alg_terreinsector_naam").value,
alg_terreinsector_code: oRs("alg_terreinsector_code").value,
alg_terreinsector_omschrijving: oRs("alg_terreinsector_omschrijving").value,
alg_srtterreinsector_key: oRs("alg_srtterreinsector_key").value,
alg_kostenplaats_key: oRs("prs_kostenplaats_key").value,
alg_terreinsector_ordernr: oRs("alg_terreinsector_ordernr").value,
alg_locatie_key: oRs("alg_locatie_key").value,
kostenplaats_omschrijving: oRs("kpstring").value,
kostenplaats_module: oRs("prs_kostenplaats_module").value,
kostenplaats_budgethouder_key: oRs("prs_perslid_key").value,
kostenplaats_budgethouder: oRs("budgethouder").value
};
}
oRs.Close();
@@ -388,34 +345,6 @@ alg = {
aresult.canPRSBOFwrite = aresult.canWrite("WEB_PRSBOF"); // werkplekbeheer
return aresult;
},
calc_algm2: function _calc_algm2(alg_key, lvl)
{
var sql = "SELECT SUM (alg_ruimte_bruto_vloeropp) opp1, "
+ " SUM (alg_ruimte_opp_alt1) opp2, "
+ " SUM (alg_ruimte_opp_alt2) opp3 "
+ " FROM alg_ruimte r, alg_verdieping v "
+ " WHERE v.alg_verdieping_key = r.alg_verdieping_key "
+ " AND r.alg_ruimte_verwijder IS NULL";
if (lvl == "G")
{
sql += " AND alg_gebouw_key = " + alg_key;
}
if (lvl == "V")
{
sql += " AND r.alg_verdieping_key = " + alg_key;
}
var oRs = Oracle.Execute(sql);
var algm2 = { oppbruto: oRs("opp1").Value, oppalt1: oRs("opp2").Value, oppalt2: oRs("opp3").Value }
oRs.Close();
return algm2;
}
}
}
%>

View File

@@ -13,12 +13,11 @@
Note:
*/
var JSON_Result = true;
DOCTYPE_Disable = 1;
%>
<!--#include file="../Shared/common.inc"-->
<!--#include file="../Shared/json2.js" -->
<%
protectRequest.validateToken();
var level = getFParam("level");
var dis_key_arr = getFParamIntArray("key");
@@ -26,10 +25,10 @@ var dis_key_arr = getFParamIntArray("key");
var autfunction = {D : "WEB_ALGMAN",
RE: "WEB_ALGMAN",
L : "WEB_ALGMAN",
T : "WEB_TERMAN", // Met ALG* bepaal je wat je ziet (Read), met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
T : "WEB_ALGMAN",
G : "WEB_ALGMAN",
V : "WEB_ALGMAN",
R : "WEB_RUIMAN", // Met ALG* bepaal je wat je ziet (Read), met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
R : "WEB_ALGMAN",
W : "WEB_PRSBOF",
PW: "WEB_PRSBOF"}[level];
@@ -45,42 +44,36 @@ var table = {D : "ALG_DISTRICT",
W : "PRS_WERKPLEK",
PW: "PRS_PERSLIDWERKPLEK"}[level];
result = { success: true, deleted: true };
result = { success: true };
for (var i = 0; i < dis_key_arr.length; i++)
{
// W en WP hebben geen verwijderveld (meer), die gaan echt weg.
if (level == "W" || level == "PW")
{
// Een WP gooit via de cascade zijn bezetting mee weg.
// Een bezetting verwijderen doet niets extra
// Bij impliciet verwijderen van wp-bezetting dus ook de werkplek weggooien
// die nu (per definitie) leeg wordt. Dit moet eerst, want straks weet
// ik niet meer genoeg
if (level == "PW" && S("prs_werkplek_implicit") == 1)
{
sql = "DELETE FROM prs_werkplek"
+ " WHERE prs_werkplek_key IN "
+ " (SELECT prs_werkplek_key "
+ " FROM prs_perslidwerkplek"
+ " WHERE prs_perslidwerkplek_key IN (" + dis_key_arr[i] + "))"
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
}
// En dit moet ongeacht impliciet of expliciet.
// Alleen bij PW&implicit zal dit niets meer verwijderen vanwege de cascade hiervoor
sql = "DELETE FROM " + table
+ " WHERE " + table + "_key IN (" + dis_key_arr[i] + ")";
}
else
{
sql = "UPDATE " + table
+ " SET " + table + "_VERWIJDER = " + "SYSDATE"
+ " WHERE " + table + "_key IN (" + dis_key_arr[i] + ")";
}
sql = "UPDATE " + table
+ " SET " + table + "_VERWIJDER = " + "SYSDATE"
+ " WHERE " + table + "_key IN (" + dis_key_arr[i] + ")";
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
{
result.message = err.friendlyMsg;
break;
}
// Bij impliciet ook de werkplek weggooien die nu leeg is.
if (result.success && level == "PW" && S("prs_werkplek_implicit") == 1)
{
sql = "UPDATE prs_werkplek"
+ " SET prs_werkplek_verwijder = SYSDATE"
+ " WHERE prs_werkplek_key IN "
+ " (SELECT prs_werkplek_key "
+ " FROM prs_perslidwerkplek"
+ " WHERE prs_perslidwerkplek_key IN (" + dis_key_arr[i] + "))"
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
{
result.message = err.friendlyMsg;
break;
}
}
}
Response.Write(JSON.stringify(result));

View File

@@ -28,9 +28,9 @@ if (dis_key > 0)
+ " FROM alg_district "
+ " WHERE alg_district_key = " + dis_key;
var oRs = Oracle.Execute(sql);
oRs = Oracle.Execute(sql);
var dis_name = oRs("alg_district_omschrijving").value;
oRs.Close()
}
else
{
@@ -42,7 +42,7 @@ else
<head>
<% FCLTHeader.Generate(); %>
<script type="text/javascript" >
FcltMgr.setTitle(L("lcl_district") + " " + "<%=safe.jsstring(dis_name)%>", {hot: false});
FcltMgr.setTitle("<%=L("lcl_district")%> <%=safe.jsstring(dis_name)%> ", {hot: false});
<% if (dis_key == -1) { %>FcltMgr.startEdit(window);<% } %>
function algClose(params)
{
@@ -67,7 +67,7 @@ else
</script>
</head>
<body>
<body id="editbody">
<% if (dis_key == -1)
var page="alg_edit_district.asp"; // Maak een nieuw
else

View File

@@ -9,6 +9,7 @@
Note:
*/ %>
<!-- #include file="../Shared/disCxprs3d.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/getkenmerksql.inc" -->
@@ -56,16 +57,11 @@ function fnrowData(oRs)
{
var disKeyString = getKeyString(rowArray);
if (isMulti || confirm(L("lcl_alg_del_txt_district")))
{
var data = { key: disKeyString,
level: "D"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
{ key: disKeyString,
level: "D" },
FcltCallbackRefresh,
"json");
}
}
</script>
<%
@@ -84,22 +80,13 @@ 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;
}
function fnrowActionEnabler(oRs)
{
var eDelete = false;
if (alg.canWriteDistrict(oRs("alg_district_key").value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
%>
<html>
<head>
@@ -154,7 +141,6 @@ function district_list(pautfunction, params)
rowActionEnabler: fnrowActionEnabler,
flexModule: "ALG",
flexId: "alg_district_key",
flexParams: fnrowFlexParams,
filterParams: params,
outputmode: outputmode,
buttons: addButton

View File

@@ -64,7 +64,7 @@ var authparams = alg.checkAutorisation();
<% BLOCK_END();
var buttons = [ {title: L("lcl_search"), action: "doSubmit()", id: "bSearch" },
{title: L("lcl_obj_advanced"), action: "myModal()", id: "bAdvanced" } ];
CreateButtons(buttons, { entersubmit: true }); %>
CreateButtons(buttons); %>
</form>
</div> <!-- search -->

View File

@@ -83,7 +83,7 @@ if (this_alg.writeman)
else
manRWFIELD = function (a,b,c,d,e) { ROFIELDTR(b,c,d,e) }; // als geen USE of <self> dan zijn er veel readonly
BLOCK_START("algInfo", "&nbsp;");
BLOCK_START("algInfo", "");
FCLTplaatsselector(this_alg.authparams("WEB_ALGMAN").ALGwritelevel, {
districtkey: dis_key,
startlevel: 0, // Regio
@@ -103,7 +103,6 @@ generateFlexKenmerkBlock ({
flexcolumns : S("alg_flexcolumns"),
this_alg : this_alg
});
IFACE.FORM_END();
%>
</form>
<iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>

View File

@@ -7,22 +7,17 @@
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc"-->
<!-- #include file="alg.inc" -->
<% FCLTHeader.Requires({ plugins:["jQuery", "kenmerk"],
js: []
}) %>
<%
var dis_key = getQParamInt( "dis_key" );
var dis_key = getQParamInt( "dis_key" );
var onrgoedlvl = "D";
var this_alg = alg.func_enabled(dis_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.readman || this_alg.readuse);
var fields = [ { dbs: "alg_district_omschrijving", typ: "varchar", frm: "dis_oms" },
{ dbs: "alg_regio_key", typ: "number", frm: "regiokey" }];
var fields = [ { dbs: "alg_district_omschrijving", typ: "varchar", frm: "dis_oms" },
{ dbs: "alg_regio_key", typ: "number", frm: "regiokey" }];
var warning = "";
if (dis_key > 0)

View File

@@ -12,13 +12,12 @@
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!--#include file="../Shared/common.inc" -->
<!--#include file="../Shared/iface.inc" -->
<!--#include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/kostenplaatsselector.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!--#include file="../Shared/plaatsselector.inc" -->
<!--#include file="../Shared/kostenplaatsselector.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<!-- #include file="alg.inc" -->
@@ -33,198 +32,193 @@ user.auth_required_or_abort(this_alg.writeman || (bld_key>0&&this_alg.writeuse))
if (bld_key > 0)
{
var sql = " SELECT *"
+ " FROM alg_gebouw"
+ " WHERE alg_gebouw_key = " + bld_key;
sql = " select * "
+ " FROM ALG_GEBOUW "
+ " WHERE alg_gebouw_key = " + bld_key;
oRs = Oracle.Execute(sql);
if (oRs.Eof)
shared.record_not_found("<!--"+bld_key+"-->");
oRs = Oracle.Execute(sql);
if (oRs.Eof)
shared.record_not_found("<!--"+bld_key+"-->");
var bld_srtkey = oRs("alg_srtgebouw_key").Value;
var bld_naam = oRs("alg_gebouw_naam").Value;
var bld_code = oRs("alg_gebouw_code").Value;
var bld_descr = oRs("alg_gebouw_omschrijving").Value;
var bld_maak = oRs("alg_gebouw_aanmaak").Value;
var bld_email = oRs("alg_gebouw_email").Value;
var bld_teken = oRs("alg_gebouw_getekend").Value;
var bld_opp = oRs("alg_gebouw_bruto_vloeropp").Value;
var bld_omtrek = oRs("alg_gebouw_omtrek").Value;
var bld_inhoud = oRs("alg_gebouw_inhoud").Value;
var bld_opmerk = oRs("alg_gebouw_opmerking").Value;
var mld_adres = oRs("mld_adres_key").Value;
var prs_kstpl = oRs("prs_kostenplaats_key").Value;
var bld_ordrnr = oRs("alg_gebouw_ordernr").Value;
var bld_dwgx = oRs("alg_gebouw_dwgx").Value;
var bld_dwgy = oRs("alg_gebouw_dwgy").Value;
var bld_x = oRs("alg_gebouw_x").Value;
var bld_y = oRs("alg_gebouw_y").Value;
var bld_bez = oRs("alg_gebouw_bez").Value;
var dienstniveau = oRs("mld_dienstniveau_key").Value;
var beginuur = oRs("alg_gebouw_beginuur").Value;
var einduur = oRs("alg_gebouw_einduur").Value;
var werkdagen = oRs("alg_gebouw_werkdagen").Value;
var verantw_key = oRs("prs_perslid_key_verantw").Value;
oRs.Close();
var bld_srtkey = oRs("ALG_SRTGEBOUW_KEY").value;
var bld_naam = oRs("ALG_GEBOUW_NAAM").value;
var bld_code = oRs("ALG_GEBOUW_CODE").value;
var bld_descr = oRs("ALG_GEBOUW_OMSCHRIJVING").value;
var bld_maak = oRs("ALG_GEBOUW_AANMAAK").value;
var bld_teken = oRs("ALG_GEBOUW_GETEKEND").value;
var bld_opp = oRs("ALG_GEBOUW_BRUTO_VLOEROPP").value;
var bld_omtrek = oRs("ALG_GEBOUW_OMTREK").value;
var bld_inhoud = oRs("ALG_GEBOUW_INHOUD").value;
var bld_opmerk = oRs("ALG_GEBOUW_OPMERKING").value;
var mld_adres = oRs("MLD_ADRES_KEY").value;
var prs_kstpl = oRs("PRS_KOSTENPLAATS_KEY").value;
var bld_ordrnr = oRs("ALG_GEBOUW_ORDERNR").value;
var bld_dwgx = oRs("ALG_GEBOUW_DWGX").value;
var bld_dwgy = oRs("ALG_GEBOUW_DWGY").value;
var bld_x = oRs("ALG_GEBOUW_X").value;
var bld_y = oRs("ALG_GEBOUW_Y").value;
var bld_bez = oRs("ALG_GEBOUW_BEZ").value;
var dienstniveau = oRs("mld_dienstniveau_key").value;
var beginuur = oRs("alg_gebouw_beginuur").value;
var einduur = oRs("alg_gebouw_einduur").value;
var werkdagen = oRs("alg_gebouw_werkdagen").value;
oRs.Close();
}
else
var werkdagen = 1;
werkdagen = 1;
%>
<html>
<head>
<head>
<%
FCLTHeader.Generate();
%>
<script>
function alg_submit()
{
document.activeElement.blur(); // trigger laatste onChanges
if (!validateForm("u2"))
return false;
document.forms.u2.submit();
}
function alg_cancel()
{
FcltMgr.closeDetail(window, { cancel: true } );
}
</script>
</head>
<script>
function alg_submit()
{
document.activeElement.blur(); // trigger laatste onChanges
if (!validateForm("u2"))
return false;
document.forms.u2.submit();
}
function alg_cancel()
{
FcltMgr.closeDetail(window, { cancel: true } );
}
</script>
</head>
<body id="editbody">
<body id="editbody">
<%
var buttons = [ {title: L("lcl_submit"), action:"alg_submit()", icon: "opslaan.png" },
{title: L("lcl_cancel"), action:"alg_cancel()", icon: "undo.png" } ];
IFRAMER_HEADER(L("lcl_alg_gebouw_frame"), buttons);
var buttons = [ {title: L("lcl_submit"), action:"alg_submit()", icon: "opslaan.png" },
{title: L("lcl_cancel"), action:"alg_cancel()", icon: "undo.png" } ];
IFRAMER_HEADER(L("lcl_alg_gebouw_frame"), buttons);
%>
<div id="edit">
<form name="u2"
action="alg_edit_gebouw_save.asp?bld_key=<%=bld_key%>"
method="post"
target="hidFrameSubmit"
onSubmit="alg_submit();">
<div id="edit">
<form name="u2"
action="alg_edit_gebouw_save.asp?bld_key=<%=bld_key%>"
method="post"
target="hidFrameSubmit"
onSubmit="alg_submit();">
<%
if (this_alg.writeman)
manRWFIELD = RWFIELDTR;
else
manRWFIELD = function (a,b,c,d,e) { ROFIELDTR(b,c,d,e) }; // als geen USE of <self> dan zijn er veel readonly
if (this_alg.writeman)
manRWFIELD = RWFIELDTR;
else
manRWFIELD = function (a,b,c,d,e) { ROFIELDTR(b,c,d,e) }; // als geen USE of <self> dan zijn er veel readonly
BLOCK_START("algLoc1", "&nbsp;");
FCLTplaatsselector(this_alg.authparams("WEB_ALGMAN").ALGwritelevel,
{ gebouwkey: bld_key,
startlevel: 2, //Locatie
eindlevel: 2, // Locatie
readonly: bld_key > 0,
required: true
});
manRWFIELD("bld_naam", "fld", L("lcl_estate_gebouw_man_name"), bld_naam, {required: true, maxlength: 30});
sql = "SELECT alg_srtgebouw_key, "
+ " "+lcl.xsqla('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')
+ " FROM alg_srtgebouw "
+ " WHERE alg_srtgebouw_verwijder IS NULL "
+ "ORDER BY UPPER("+lcl.xsql('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')+")";
FCLTselector("bld_srtkey",
sql,
{ label: L("lcl_estate_gebouw_srtgebouw"),
BLOCK_START("algLoc1", "");
FCLTplaatsselector(this_alg.authparams("WEB_ALGMAN").ALGwritelevel, {
gebouwkey: bld_key,
startlevel: 2, //Locatie
eindlevel: 2, // Locatie
readonly: bld_key > 0,
required: true });
manRWFIELD("bld_naam", "fld", L("lcl_estate_gebouw_man_name"), bld_naam, {required: true, maxlength: 30});
sql = "SELECT alg_srtgebouw_key, "
+ " "+lcl.xsqla('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')
+ " FROM alg_srtgebouw "
+ " WHERE alg_srtgebouw_verwijder IS NULL "
+ "ORDER BY UPPER("+lcl.xsql('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')+")";
FCLTselector("bld_srtkey", sql,
{ label: L("lcl_estate_gebouw_srtgebouw"),
initKey: bld_srtkey,
emptyOption: "",
readonly: !this_alg.writeman
});
manRWFIELD("bld_code", "fld", L("lcl_estate_gebouw_man_code"), bld_code, {required: true, maxlength: 12});
manRWFIELD("bld_opmerk", "fld", L("lcl_estate_gebouw_man_opmerk"), bld_opmerk, {maxlength: 50});
FCLTkostenplaatsselector( "prs_kstpl",
"prs_kstpl",
user_key,
{ kostenplaatsKey: prs_kstpl,
label: L("lcl_prs_dept_kosten"),
filtercode: "G",
readonly: !this_alg.writeman
});
manRWFIELD("bld_ordrnr", "fld", L("lcl_estate_gebouw_ordernr"), bld_ordrnr, {maxlength: 30});
sql = "SELECT mld_dienstniveau_key"
+ " , " + lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau"
+ " ORDER BY UPPER(" + lcl.xsql("mld_dienstniveau_omschr", "mld_dienstniveau_key") + ")";
FCLTselector("dienstniveau",
sql,
{ label: L("lcl_mld_dienst_niveau"),
initKey: dienstniveau,
emptyOption: "",
readonly: !this_alg.writeuse
});
FCLTpersoonselector("verantw",
"sgVerantw",
{ perslidKey: verantw_key,
label: L("lcl_alg_verantw"),
readonly: !this_alg.writeuse,
autlevel: this_alg.authparams("WEB_ALGMAN") && this_alg.authparams("WEB_ALGMAN").PRSwritelevel
}
);
manRWFIELD("bld_code", "fld", L("lcl_estate_gebouw_man_code"), bld_code, {required: true, maxlength: 12});
manRWFIELD("bld_opmerk", "fld", L("lcl_estate_gebouw_man_opmerk"), bld_opmerk, {maxlength: 50});
FCLTkostenplaatsselector( "prs_kstpl",
"prs_kstpl",
user_key,
{ kostenplaatsKey: prs_kstpl,
label: L("lcl_prs_dept_kosten"),
filtercode: "G",
readonly: !this_alg.writeman
});
manRWFIELD("bld_email", "fld", L("lcl_alg_gebouw_email"), bld_email, {maxlength: 200});
BLOCK_END();
BLOCK_START("algLoc2", "&nbsp;");
if (bld_key > 0)
{
var calcopp = alg.calc_algm2(bld_key, onrgoedlvl);
ROFIELDTR("fld", L("lcl_estate_ruimte_bruto_vloeropp") + L("lcl_estate_calc_vloeropp"), calcopp.oppbruto, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt1") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt1, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt2") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt2, {suppressEmpty: true});
}
manRWFIELD("bld_opp", "fld float", L("lcl_estate_gebouw_man_bruto_vloeropp"), bld_opp, {datatype:"float", maxlength: 15});
manRWFIELD("bld_omtrek", "fld", L("lcl_estate_gebouw_man_omtrek"), bld_omtrek, {maxlength: 15});
manRWFIELD("bld_inhoud", "fld", L("lcl_estate_gebouw_man_inhoud"), bld_inhoud, {maxlength: 15});
sql = "SELECT mld_adres_key"
+ " , mld_adres_naam "
+ " FROM mld_v_afleveradres"
+ " ORDER BY mld_adres_naam ";
FCLTselector("mld_adres",
sql,
{ label: L("lcl_delivery_address"),
initKey: mld_adres,
emptyOption: "",
readonly: !this_alg.writeman
});
manRWFIELD("bld_x", "fld", L("lcl_geoxcoord"), bld_x, {maxlength: 25});
manRWFIELD("bld_y", "fld", L("lcl_geoycoord"), bld_y, {maxlength: 25});
if (this_alg.writeman)
CHECKBOXTR(L("lcl_estate_gebouw_bez"), "fldalgbez", "bld_bez", bld_bez==1)
var times = [];
for (i=0; i<24; i++)
{
sql = " SELECT " + String(i+0/4) + ", '" + String(i) + ":00' FROM DUAL"
+ " UNION ALL SELECT " + String(i+1/4) + ", '" + String(i) + ":15' FROM DUAL"
+ " UNION ALL SELECT " + String(i+2/4) + ", '" + String(i) + ":30' FROM DUAL"
+ " UNION ALL SELECT " + String(i+3/4) + ", '" + String(i) + ":45' FROM DUAL"
times.push(sql);
}
FCLTselector("bld_beginuur", times.join(" UNION ALL "),
{ label: L("lcl_estate_gebouw_beginuur"),
initKey: beginuur,
emptyOption: "",
readonly: !this_alg.writeman
}
);
FCLTselector("bld_einduur", times.join(" UNION ALL "),
{ label: L("lcl_estate_gebouw_einduur"),
initKey: einduur,
emptyOption: "",
readonly: !this_alg.writeman
}
);
if (this_alg.writeman)
CHECKBOXTR(L("lcl_estate_gebouw_werkdagen"), "fldalgwerk", "bld_werkdagen", werkdagen==1)
BLOCK_END();
manRWFIELD("bld_ordrnr", "fld", L("lcl_estate_gebouw_ordernr"), bld_ordrnr, {maxlength: 30});
generateFlexKenmerkBlock ({ onrgoed_key : bld_key,
onrgoed_niveau : onrgoedlvl,
reado : false,
flexcolumns : S("alg_flexcolumns"),
this_alg : this_alg
});
IFACE.FORM_END();
sql = "SELECT mld_dienstniveau_key, "
+ lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau "
+ "ORDER BY UPPER("+lcl.xsql("mld_dienstniveau_omschr", "mld_dienstniveau_key")+")";
FCLTselector("dienstniveau", sql,
{ label: L("lcl_mld_dienst_niveau"),
initKey: dienstniveau,
emptyOption: "",
readonly: !this_alg.writeuse
});
BLOCK_END();
BLOCK_START("algLoc2", "");
manRWFIELD("bld_opp", "fld", L("lcl_estate_gebouw_man_bruto_vloeropp"), bld_opp, {maxlength: 15});
manRWFIELD("bld_omtrek", "fld", L("lcl_estate_gebouw_man_omtrek"), bld_omtrek, {maxlength: 15});
manRWFIELD("bld_inhoud", "fld", L("lcl_estate_gebouw_man_inhoud"), bld_inhoud, {maxlength: 15});
sql ="SELECT mld_adres_key, "
+ " mld_adres_naam "
+ " FROM mld_v_afleveradres "
+ "ORDER BY mld_adres_naam ";
FCLTselector("mld_adres", sql,
{ label: L("lcl_delivery_address"),
initKey: mld_adres,
emptyOption: "",
readonly: !this_alg.writeman
});
manRWFIELD("bld_x", "fld", L("lcl_geoxcoord"), bld_x, {maxlength: 25});
manRWFIELD("bld_y", "fld", L("lcl_geoycoord"), bld_y, {maxlength: 25});
if (this_alg.writeman)
CHECKBOXTR(L("lcl_estate_gebouw_bez"), "fldalgbez", "bld_bez", bld_bez==1)
var times = [];
for (i=0; i<24; i++)
{
sql = " SELECT " + String(i+0/4) + ", '" + String(i) + ":00' FROM DUAL"
+ " UNION ALL SELECT " + String(i+1/4) + ", '" + String(i) + ":15' FROM DUAL"
+ " UNION ALL SELECT " + String(i+2/4) + ", '" + String(i) + ":30' FROM DUAL"
+ " UNION ALL SELECT " + String(i+3/4) + ", '" + String(i) + ":45' FROM DUAL"
times.push(sql);
}
FCLTselector("bld_beginuur", times.join(" UNION ALL "),
{ label: L("lcl_estate_gebouw_beginuur"),
initKey: beginuur,
emptyOption: "",
readonly: !this_alg.writeman
}
);
FCLTselector("bld_einduur", times.join(" UNION ALL "),
{ label: L("lcl_estate_gebouw_einduur"),
initKey: einduur,
emptyOption: "",
readonly: !this_alg.writeman
}
);
if (this_alg.writeman)
CHECKBOXTR(L("lcl_estate_gebouw_werkdagen"), "fldalgwerk", "bld_werkdagen", werkdagen==1)
BLOCK_END();
generateFlexKenmerkBlock ({
onrgoed_key : bld_key,
onrgoed_niveau : onrgoedlvl,
reado : false,
flexcolumns : S("alg_flexcolumns"),
this_alg : this_alg
});
%>
</form>
<iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>
</div>
</body>
</form>
<iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>
</div>
</body>
</html>

View File

@@ -7,9 +7,8 @@
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc"-->
<!-- #include file="alg.inc" -->
<% FCLTHeader.Requires({ plugins:["jQuery"],
js: []
@@ -17,48 +16,31 @@
<%
var bld_key = getQParamInt( "bld_key" );;
var beginuur = getFParamFloat("bld_beginuur", -2);
if (beginuur == -1)
beginuur = "";
var einduur = getFParamFloat("bld_einduur", -2);
if (einduur == -1)
einduur = "";
var onrgoedlvl = "G";
var this_alg = alg.func_enabled(bld_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.writeman || (bld_key>0&&this_alg.writeuse));
var fields = [ { dbs: "alg_locatie_key", typ: "key", frm: "locatiekey" },
{ dbs: "alg_srtgebouw_key", typ: "key", frm: "bld_srtkey" },
{ dbs: "alg_gebouw_naam", typ: "varchar", frm: "bld_naam" },
{ dbs: "alg_gebouw_code", typ: "varchar", frm: "bld_code" },
{ dbs: "alg_gebouw_omschrijving", typ: "varchar", frm: "bld_descr" },
{ dbs: "alg_gebouw_email", typ: "varchar", frm: "bld_email" },
{ dbs: "alg_gebouw_getekend", typ: "date", frm: "bld_teken" },
{ dbs: "alg_gebouw_bruto_vloeropp", typ: "float", frm: "bld_opp" },
{ dbs: "alg_gebouw_omtrek", typ: "number", frm: "bld_omtrek" },
{ dbs: "alg_gebouw_inhoud", typ: "number", frm: "bld_inhoud" },
{ dbs: "alg_gebouw_opmerking", typ: "varchar", frm: "bld_opmerk" },
{ dbs: "mld_adres_key", typ: "key", frm: "mld_adres" },
{ dbs: "prs_kostenplaats_key", typ: "key", frm: "prs_kstpl" },
{ dbs: "mld_dienstniveau_key", typ: "key", frm: "dienstniveau" },
{ dbs: "alg_gebouw_ordernr", typ: "varchar", frm: "bld_ordrnr" },
{ dbs: "alg_gebouw_dwgx", typ: "float", frm: "bld_dwgx" },
{ dbs: "alg_gebouw_dwgy", typ: "float", frm: "bld_dwgy" },
{ dbs: "alg_gebouw_x", typ: "float", frm: "bld_x" },
{ dbs: "alg_gebouw_y", typ: "float", frm: "bld_y" },
{ dbs: "alg_gebouw_bez", typ: "check", frm: "bld_bez" },
{ dbs: "alg_gebouw_werkdagen", typ: "check0", frm: "bld_werkdagen" },
{ dbs: "prs_perslid_key_verantw", typ: "key", frm: "verantw" }];
{ dbs: "ALG_SRTGEBOUW_KEY", typ: "key", frm: "bld_srtkey" },
{ dbs: "ALG_GEBOUW_NAAM", typ: "varchar", frm: "bld_naam" },
{ dbs: "ALG_GEBOUW_CODE", typ: "varchar", frm: "bld_code" },
{ dbs: "ALG_GEBOUW_OMSCHRIJVING", typ: "varchar", frm: "bld_descr" },
{ dbs: "ALG_GEBOUW_GETEKEND", typ: "date", frm: "bld_teken" },
{ dbs: "ALG_GEBOUW_BRUTO_VLOEROPP", typ: "number", frm: "bld_opp" },
{ dbs: "ALG_GEBOUW_OMTREK", typ: "number", frm: "bld_omtrek" },
{ dbs: "ALG_GEBOUW_INHOUD", typ: "number", frm: "bld_inhoud" },
{ dbs: "ALG_GEBOUW_OPMERKING", typ: "varchar", frm: "bld_opmerk" },
{ dbs: "MLD_ADRES_KEY", typ: "key", frm: "mld_adres" },
{ dbs: "PRS_KOSTENPLAATS_KEY", typ: "key", frm: "prs_kstpl" },
{ dbs: "MLD_DIENSTNIVEAU_KEY", typ: "key", frm: "dienstniveau" },
{ dbs: "ALG_GEBOUW_ORDERNR", typ: "varchar", frm: "bld_ordrnr" },
{ dbs: "ALG_GEBOUW_DWGX", typ: "number", frm: "bld_dwgx" },
{ dbs: "ALG_GEBOUW_DWGY", typ: "number", frm: "bld_dwgy" },
{ dbs: "ALG_GEBOUW_X", typ: "number", frm: "bld_x" },
{ dbs: "ALG_GEBOUW_Y", typ: "number", frm: "bld_y" },
{ dbs: "ALG_GEBOUW_BEZ", typ: "check", frm: "bld_bez" },
{ dbs: "alg_gebouw_beginuur", typ: "float", frm: "bld_beginuur" },
{ dbs: "alg_gebouw_einduur", typ: "float", frm: "bld_einduur" },
{ dbs: "ALG_GEBOUW_WERKDAGEN", typ: "check", frm: "bld_werkdagen" }];
if (beginuur != -2)
fields.push({ dbs: "alg_gebouw_beginuur", typ: "float", val: beginuur });
if (einduur != -2)
fields.push({ dbs: "alg_gebouw_einduur", typ: "float", val: einduur });
var warning = "";
if (bld_key > 0)
var warning = "";
if (bld_key > 0)
{
sql = buildUpdate("alg_gebouw", fields)
+ " alg_gebouw_key = " + bld_key;
@@ -67,7 +49,7 @@ user.auth_required_or_abort(this_alg.writeman || (bld_key>0&&this_alg.writeuse))
if (err.friendlyMsg)
warning = err.friendlyMsg;
}
else
else
{
fields.push({ dbs: "alg_gebouw_key", typ: "key", seq: "alg_s_alg_onroerendgoed_keys" });
var regIns = buildInsert("alg_gebouw", fields);

View File

@@ -97,7 +97,7 @@ if (this_alg.writeman)
else
manRWFIELD = function (a,b,c,d,e) { ROFIELDTR(b,c,d,e) }; // als geen USE of <self> dan zijn er veel readonly
BLOCK_START("algLoc1", "&nbsp;");
BLOCK_START("algLoc1", "");
FCLTplaatsselector(this_alg.authparams("WEB_ALGMAN").ALGwritelevel, {
districtkey: dis_key,
locatiekey: loc_key,
@@ -106,9 +106,9 @@ BLOCK_START("algLoc1", "&nbsp;");
readonly: !this_alg.writeman,
required: true });
manRWFIELD("loc_omsch", "fld", L("lcl_estate_locatie_man_descr"), loc_omsch, {required: true, maxlength: 60});
manRWFIELD("loc_omsch", "fld", L("lcl_estate_locatie_man_descr"), loc_omsch, {required: true, maxlength: 30});
manRWFIELD("loc_code", "fld", L("lcl_estate_locatie_man_code"), loc_code, {required: true, maxlength: 10});
manRWFIELD("bez_adres", "fld", L("lcl_prs_address_bezoek_adres"), bez_adres, {maxlength: 50});
manRWFIELD("bez_adres", "fld", L("lcl_prs_address_bezoek_adres"), bez_adres, {maxlength: 35});
manRWFIELD("bez_postc", "fld", L("lcl_prs_address_bezoek_postcode"), bez_postc, {maxlength: 12});
manRWFIELD("bez_plaats", "fld", L("lcl_prs_address_bezoek_plaats"), bez_plaats, {maxlength: 30});
manRWFIELD("bez_land", "fld", L("lcl_prs_address_bezoek_land"), bez_land, {maxlength: 30});
@@ -129,9 +129,9 @@ manRWFIELD("loc_x", "fld", L("lcl_geoxcoord"), loc_x, {maxlengt
manRWFIELD("loc_y", "fld", L("lcl_geoycoord"), loc_y, {maxlength: 25});
BLOCK_END();
BLOCK_START("algLoc2", "&nbsp;");
BLOCK_START("algLoc2", "");
manRWFIELD("pst_adres", "fld", L("lcl_prs_address_post_adres"), pst_adres, {maxlength: 50});
manRWFIELD("pst_adres", "fld", L("lcl_prs_address_post_adres"), pst_adres, {maxlength: 35});
manRWFIELD("pst_postc", "fld", L("lcl_prs_address_post_postcode"), pst_postc, {maxlength: 12});
manRWFIELD("pst_plaats", "fld", L("lcl_prs_address_post_plaats"), pst_plaats, {maxlength: 30});
manRWFIELD("pst_land", "fld", L("lcl_prs_address_post_land"), pst_land, {maxlength: 30});
@@ -148,7 +148,6 @@ generateFlexKenmerkBlock ({
flexcolumns : S("alg_flexcolumns"),
this_alg : this_alg
});
IFACE.FORM_END();
%>
</form>
<iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>

View File

@@ -7,9 +7,8 @@
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc"-->
<!-- #include file="alg.inc" -->
<% FCLTHeader.Requires({ plugins:["jQuery"],
js: []
@@ -17,10 +16,6 @@
<%
var loc_key = getQParamInt( "loc_key" );
var onrgoedlvl = "L";
var this_alg = alg.func_enabled(loc_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.writeman || (loc_key>0&&this_alg.writeuse));
var fields = [ { dbs: "alg_district_key", typ: "number", frm: "districtkey" },
{ dbs: "alg_locatie_code", typ: "varchar", frm: "loc_code" },
{ dbs: "alg_locatie_omschrijving", typ: "varchar", frm: "loc_omsch" },

View File

@@ -12,78 +12,79 @@
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!--#include file="../Shared/common.inc" -->
<!--#include file="../Shared/iface.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<!-- #include file="../API2/api2.inc" -->
<!-- #include file="../API2/model_regions.inc" -->
<!-- #include file="alg.inc" -->
<%
FCLTHeader.Requires({plugins:["suggest","jQuery"], js: []})
var regio_key = getQParamInt("regio_key");
var regio_key = getQParamInt("regio_key", -1);
var params = { filter: { id: regio_key,
isNew: (regio_key == -1 ? true : false)
}
};
var regio_array = model_regions.REST_GET(params); // Roep de API2 GET aan
var regio_data = (regio_array[0] ? regio_array[0] : {id: -1}); // GET kan meerdere records opleveren, maar we verwachten hier maar 1.
var this_alg = params.func_enabled; // params bevat nu ook waarden die in API2 zijn bepaald.
var action = (regio_key == -1 ? "I" : "U");
var onrgoedlvl = "RG";
var this_alg = alg.func_enabled(regio_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.writeman || (regio_key>0&&this_alg.writeuse));
if (regio_key > 0)
{
sql = " select * "
+ " FROM alg_regio "
+ " WHERE alg_regio_key = " + regio_key;
oRs = Oracle.Execute(sql);
var reg_oms = oRs("alg_regio_omschrijving").value;
oRs.Close();
}
%>
<html>
<head>
<head>
<%
FCLTHeader.Generate();
FCLTHeader.Generate();
%>
<script>
function alg_submit()
{
if (!validateForm("u2"))
return false;
<script>
function alg_submit()
{
document.activeElement.blur(); // trigger laatste onChanges
if (!validateForm("u2"))
return false;
document.forms.u2.submit();
}
function alg_cancel()
{
FcltMgr.closeDetail(window, { cancel: true } );
}
</script>
</head>
var data = $("[name=u2]").serialize();
<% protectRequest.dataToken("data"); %>
$.post($("form[name=u2]")[0].action,
data,
FcltCallbackClose,
"json");
return true;
}
function alg_cancel()
{
FcltMgr.closeDetail(window, { cancel: true } );
}
</script>
</head>
<body id="editbody">
<body id="editbody">
<%
var buttons = [ {title: L("lcl_submit"), action:"alg_submit()", icon: "opslaan.png" },
{title: L("lcl_cancel"), action:"alg_cancel()", icon: "undo.png" } ];
IFRAMER_HEADER(L("lcl_alg_regio_frame"), buttons);
var buttons = [ {title: L("lcl_submit"), action:"alg_submit()", icon: "opslaan.png" },
{title: L("lcl_cancel"), action:"alg_cancel()", icon: "undo.png" } ];
IFRAMER_HEADER(L("lcl_alg_regio_frame"), buttons);
%>
<div id="edit">
<form name="u2"
action="alg_edit_regio_save.asp?regio_key=<%=regio_data.id%>&action=<%=action%>"
method="post"
onSubmit="return false">
<div id="edit">
<form name="u2"
action="alg_edit_regio_save.asp?regio_key=<%=regio_key%>"
method="post"
target="hidFrameSubmit"
onSubmit="alg_submit();">
<%
if (this_alg.writeman)
manRWFIELD = RWFIELDTR;
else
manRWFIELD = function (a,b,c,d,e) { ROFIELDTR(b,c,d,e) }; // als geen USE dan zijn er veel readonly
if (this_alg.writeman)
manRWFIELD = RWFIELDTR;
else
manRWFIELD = function (a,b,c,d,e) { ROFIELDTR(b,c,d,e) }; // als geen USE dan zijn er veel readonly
BLOCK_START("algInfo", "");
BLOCK_START("algInfo", "&nbsp;");
manRWFIELD("reg_oms", "fld", L("lcl_region"), reg_oms, {required: true, maxlength: 30});
manRWFIELD("reg_oms", "fld", L("lcl_region"), regio_data.name, {required: true, maxlength: 30});
BLOCK_END();
IFACE.FORM_END();
BLOCK_END();
%>
</form>
</div>
</body>
</form>
<iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>
</div>
</body>
</html>

View File

@@ -5,46 +5,53 @@
SUBMIT-form
*/ %>
<%
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../API2/api2.inc" -->
<!-- #include file="../API2/model_regions.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../shared/save2db.inc" -->
<% FCLTHeader.Requires({ plugins:["jQuery"],
js: []
}) %>
<%
protectRequest.validateToken();
var regio_key = getQParamInt( "regio_key" );
var action = getQParam( "action", "" );
var reg_key = getQParamInt( "regio_key" );
var formfields = [ {name: "name", frm: "reg_oms" }];
var params = { filter: { "id": regio_key }};
var jsondata = api2.form2JSONdata(model_regions, params, formfields);
var fields = [ { dbs: "alg_regio_omschrijving", typ: "varchar", frm: "reg_oms" }];
switch (action)
{
case "I":
var regio_array = model_regions.REST_POST(params, jsondata);
regio_key = regio_array.key;
break;
case "U":
if (regio_key > 0)
var regio_array = model_regions.REST_PUT(params, jsondata, params.filter.id);
break;
case "D":
if (regio_key > 0)
var regio_array = model_regions.REST_DELETE(params, params.filter.id);
break;
default :
var regio_array = {warning: L("lcl_cnt_Del_Fails_Auth")};
}
var warning = regio_array.warning;
var warning = "";
if (reg_key > 0)
{
sql = buildUpdate("alg_regio", fields)
+ " alg_regio_key = " + reg_key;
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
}
else
{
fields.push({ dbs: "alg_regio_key", typ: "key", seq: "alg_s_alg_regio_key" });
var regIns = buildInsert("alg_regio", fields);
var reg_key = regIns.sequences["alg_regio_key"];
var result = { regio_key: regio_key,
warning: warning,
keepForm: !!warning,
success: true };
Response.Write(JSON.stringify(result));
%>
sql = regIns.sql;
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
}
%>
<html>
<head>
<% FCLTHeader.Generate() %>
<script>
$(document).ready(function () {
FcltMgr.closeDetail(window, { regio_key: <%=reg_key%>,
warning: "<%=safe.jsstring(warning)%>",
keepForm: <%=warning?"true":"false"%>
});
} );
</script>
</head>
<body>
</body>
</html>

View File

@@ -11,18 +11,16 @@
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!--#include file="../Shared/common.inc" -->
<!--#include file="../Shared/iface.inc" -->
<!--#include file="../Shared/selector.inc" -->
<!--#include file="../Shared/plaatsselector.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<!-- #include file="../API2/api2.inc" -->
<!-- #include file="../API2/model_rooms.inc" -->
<!-- #include file="alg.inc" -->
<%
FCLTHeader.Requires({plugins:["suggest","jQuery", "kenmerk"],
js: []})
FCLTHeader.Requires({plugins:["suggest","jQuery", "kenmerk"], js: []})
var room_key = getQParamInt("room_key", -1);
var loc_key = getQParamInt("loc_key", -1);
@@ -30,202 +28,182 @@ var geb_key = getQParamInt("geb_key", -1);
var ver_key = getQParamInt("ver_key", -1);
var cad_ruimte_nr = getQParam("cad_ruimte_nr", ""); // default nummer
var onrgoedlvl = "R";
var this_alg = alg.func_enabled(room_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.writeman || (room_key>0&&this_alg.writeuse));
var room_params = { filter: { id: room_key,
scope: "fe",
isNew: (room_key == -1 ? true : false)
},
include: ["cadcontours"]
};
var room_exists = false;
if (room_key > 0)
if (room_key > 0)
{
var rooms = new model_rooms(room_key, room_params); // Roep de API2 GET aan
var room_data = rooms.data;
room_exists = true;
// Voorkom ellende met alg_ruimte_key ambigue gedefinieerd
sqlSync = "SELECT sync.alg_ruimte_key cad_ar_key, c.cad_imp_contour_opp, "
+ " c.cad_imp_contour_opp_alt1, c.cad_imp_contour_opp_alt2 "
+ " FROM "+S("fg_syncruimteview")+" sync, cad_imp_contour c, cad_tekening t, alg_ruimte ar "
+ " WHERE sync.cadlabel = c.cad_imp_contour_nr "
+ " AND t.cad_tekening_key = c.cad_tekening_key "
+ " AND t.alg_verdieping_key = sync.alg_verdieping_key "
+ " AND sync.alg_ruimte_key = ar.alg_ruimte_key";
sql = "SELECT "
+ " g.alg_ruimte_key"
+ ", g.alg_ruimte_nr"
+ ", g.alg_ruimte_omschrijving"
+ ", g.alg_verdieping_key"
+ ", g.alg_srtruimte_key"
+ ", g.alg_ruimte_bruto_vloeropp"
+ ", g.alg_ruimte_opp_alt1"
+ ", g.alg_ruimte_opp_alt2"
+ ", g.alg_ruimte_omtrek"
+ ", g.alg_ruimte_inhoud"
+ ", g.alg_ruimte_opmerking"
+ ", sync.cad_imp_contour_opp"
+ ", sync.cad_imp_contour_opp_alt1"
+ ", sync.cad_imp_contour_opp_alt2"
+ ", mld_dienstniveau_key"
+ " FROM alg_ruimte g, ("+sqlSync+") sync"
+ " WHERE sync.cad_ar_key (+)= g.alg_ruimte_key"
+ " AND alg_ruimte_key = " + room_key;
oRs = Oracle.Execute(sql);
var room_srt = oRs("ALG_SRTRUIMTE_KEY").value;
var room_nr = oRs("ALG_RUIMTE_NR").value;
var room_oms = oRs("ALG_RUIMTE_OMSCHRIJVING").value;
var room_opp = oRs("ALG_RUIMTE_BRUTO_VLOEROPP").value;
var room_omt = oRs("ALG_RUIMTE_OMTREK").value;
var room_inh = oRs("ALG_RUIMTE_INHOUD").value;
var room_opm = oRs("ALG_RUIMTE_OPMERKING").value;
var room_oppa1 = oRs("ALG_RUIMTE_OPP_ALT1").value;
var room_oppa2 = oRs("ALG_RUIMTE_OPP_ALT2").value;
var contour_opp = oRs("cad_imp_contour_opp").value;
var contour_opp1 = oRs("cad_imp_contour_opp_alt1").value;
var contour_opp2 = oRs("cad_imp_contour_opp_alt2").value;
var dienstniveau = oRs("mld_dienstniveau_key").value;
oRs.Close();
}
else
{
var rooms = new model_rooms(-1, room_params); // Roep de API2 GET aan
var room_data = { id: -1, cadcontours: [] };
}
var this_alg = room_params.func_enabled; // room_params bevat nu ook waarden die in API2 zijn bepaald.
var room_deleted = room_exists && !!room_data.deleted;
var room_action = (room_exists ? "U" : "I");
if (!room_data.cadcontours.length)
room_data.cadcontours = [{}];
if (!room_exists)
{
if (cad_ruimte_nr != "")
room_data.name = "[" + cad_ruimte_nr + "]";
room_nr = "[" + cad_ruimte_nr + "]";
}
%>
<html>
<head>
<head>
<%
FCLTHeader.Generate();
FCLTHeader.Generate();
%>
<script>
function alg_submit()
{
document.activeElement.blur(); // trigger laatste onChanges
if (!validateForm("u2"))
return false;
<script>
function alg_submit()
{
document.activeElement.blur(); // trigger laatste onChanges
var data = $("[name=u2]").serialize();
<% protectRequest.dataToken("data"); %>
$.post($("form[name=u2]")[0].action,
data,
FcltCallbackClose,
"json");
return true;
}
function alg_cancel()
{
FcltMgr.closeDetail(window, { cancel: true } );
}
</script>
</head>
if (!validateForm("u2"))
return false;
<body id="editbody">
document.forms.u2.submit();
}
function alg_cancel()
{
FcltMgr.closeDetail(window, { cancel: true } );
}
</script>
</head>
<body id="editbody">
<%
var buttons = [ {title: L("lcl_submit"), action:"alg_submit()", icon: "opslaan.png" },
{title: L("lcl_cancel"), action:"alg_cancel()", icon: "undo.png" } ];
IFRAMER_HEADER(L("lcl_alg_ruimte_frame"), buttons);
var buttons = [ {title: L("lcl_submit"), action:"alg_submit()", icon: "opslaan.png" },
{title: L("lcl_cancel"), action:"alg_cancel()", icon: "undo.png" } ];
IFRAMER_HEADER(L("lcl_alg_ruimte_frame"), buttons);
%>
<div id="edit">
<form name="u2"
action="alg_edit_ruimte_save.asp?room_key=<%=room_data.id%>"
method="post"
onSubmit="return false">
<input type="hidden" id="room_action" name="room_action" value="<%=room_action%>">
<div id="edit">
<form name="u2" action="alg_edit_ruimte_save.asp?room_key=<%=room_key%>"
method="post"
target="hidFrameSubmit"
onSubmit="alg_submit();">
<%
if (this_alg.writeman)
manRWFIELD = RWFIELDTR;
else
manRWFIELD = function (a,b,c,d,e) { ROFIELDTR(b,c,d,e) }; // als geen USE of <self> dan zijn er veel readonly
if (this_alg.writeman)
manRWFIELD = RWFIELDTR;
else
manRWFIELD = function (a,b,c,d,e) { ROFIELDTR(b,c,d,e) }; // als geen USE of <self> dan zijn er veel readonly
if (this_alg.writeuse && S("alg_ruimtenr_aut_use")==1) // dan mag USE er ook een paar
useRWFIELD = RWFIELDTR;
else
useRWFIELD = manRWFIELD
if (this_alg.writeuse && S("alg_ruimtenr_aut_use")==1) // dan mag USE er ook een paar
useRWFIELD = RWFIELDTR;
else
useRWFIELD = manRWFIELD
BLOCK_START("algLoc1", "&nbsp;");
BLOCK_START("algLoc1", "");
FCLTplaatsselector( this_alg.authparams("WEB_RUIMAN").ALGwritelevel,
{ locatiekey: loc_key,
gebouwkey: geb_key,
verdiepingkey: ver_key,
ruimtekey: room_key,
startlevel: 2, //Locatie
eindlevel: 4, //verdieping
moreinfo: true,
readonly: (room_key > 0),
required: true
});
FCLTplaatsselector(this_alg.authparams("WEB_ALGMAN").ALGwritelevel, {
locatiekey: loc_key,
gebouwkey: geb_key,
verdiepingkey: ver_key,
ruimtekey: room_key,
startlevel: 2, //Locatie
eindlevel: 4, //verdieping
moreinfo: true,
readonly: (room_key > 0),
required: true });
// alguse mag deze twee ook als S("alg_ruimtenr_aut_use")==1
useRWFIELD("room_nr", "fldshort", L("lcl_estate_ruimte_man_nr"), room_data.name, {required: true, maxlength: 10});
useRWFIELD("room_oms", "fld", L("lcl_estate_ruimte_man_descr"), room_data.description, {maxlength: 30});
// alguse mag deze twee ook als S("alg_ruimtenr_aut_use")==1
useRWFIELD("room_nr", "fldshort", L("lcl_estate_ruimte_man_nr"), room_nr, {required: true, maxlength: 10});
useRWFIELD("room_oms", "fld", L("lcl_estate_ruimte_man_descr"), room_oms, {maxlength: 30});
sql = "SELECT alg_srtruimte_key"
+ " , " + lcl.xsqla("alg_srtruimte_omschrijving", "alg_srtruimte_key")
+ " FROM alg_v_aanwezigsrtruimte"
+ " ORDER BY UPPER("+lcl.xsql("alg_srtruimte_omschrijving", "alg_srtruimte_key")+")";
FCLTselector( "room_srt",
sql,
{ label: L("lcl_estate_ruimte_man_sort"),
initKey: (room_data.roomtype ? room_data.roomtype.id : -1),
emptyOption: "",
readonly: !this_alg.writeman
});
sql = "SELECT alg_srtruimte_key, "
+ lcl.xsqla("alg_srtruimte_omschrijving", "alg_srtruimte_key")
+ " FROM alg_v_aanwezigsrtruimte "
+ "ORDER BY UPPER("+lcl.xsql("alg_srtruimte_omschrijving", "alg_srtruimte_key")+")";
sql = "SELECT mld_dienstniveau_key"
+ " , " + lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau"
+ " ORDER BY UPPER("+lcl.xsql("mld_dienstniveau_omschr", "mld_dienstniveau_key")+")";
FCLTselector( "dienstniveau",
sql,
{ label: L("lcl_mld_dienst_niveau"),
initKey: (room_data.servicelevel ? room_data.servicelevel.id : -1),
emptyOption: "",
readonly: !this_alg.writeuse
});
FCLTselector("room_srt", sql,
{ label: L("lcl_estate_ruimte_man_sort"),
initKey: room_srt,
emptyOption: "",
readonly: !this_alg.writeman
});
BLOCK_END();
BLOCK_START("algLoc2", "&nbsp;");
sql = "SELECT mld_dienstniveau_key, "
+ lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau "
+ "ORDER BY UPPER("+lcl.xsql("mld_dienstniveau_omschr", "mld_dienstniveau_key")+")";
manRWFIELD("room_opp", "fldshort", L("lcl_estate_ruimte_bruto_vloeropp"), room_data.grossarea, {maxlength: 10, datatype: "float"});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_getekendopp"), room_data.cadcontours[0].cadarea);
if (S("fg_contourlayers_alt1")!="" && S("fg_labellayers_alt1")!="") {
manRWFIELD("room_oppa1", "fldshort", L("lcl_estate_ruimte_opp_alt1"), room_data.area1, {maxlength: 10, datatype: "float"});
ROFIELDTR("fldshort", L("lcl_fg_tek_room_opp_g_alt1"), room_data.cadcontours[0].cadalt1);
}
if (S("fg_contourlayers_alt2")!="" && S("fg_labellayers_alt2")!="") {
manRWFIELD("room_oppa2", "fldshort", L("lcl_estate_ruimte_opp_alt2"), room_data.area2, {maxlength: 10, datatype: "float"});
ROFIELDTR("fldshort", L("lcl_fg_tek_room_opp_g_alt2"), room_data.cadcontours[0].cadalt2);
}
manRWFIELD("room_omt", "fldshort", L("lcl_estate_ruimte_man_omtrek"), room_data.perimeter, {maxlength: 10, datatype: "float"});
manRWFIELD("room_inh", "fldshort", L("lcl_estate_ruimte_man_inhoud"), room_data.volume, {maxlength: 13, datatype: "float"});
manRWFIELD("room_opm", "fld", L("lcl_estate_ruimte_man_opmerk"), room_data.remark, {maxlength: 50});
FCLTselector("dienstniveau", sql,
{ label: L("lcl_mld_dienst_niveau"),
initKey: dienstniveau,
emptyOption: "",
readonly: !this_alg.writeuse
});
var times = [];
for (i=0; i<24; i++)
{
sql = " SELECT " + String(i+0/4) + ", '" + String(i) + ":00' FROM DUAL"
+ " UNION ALL SELECT " + String(i+1/4) + ", '" + String(i) + ":15' FROM DUAL"
+ " UNION ALL SELECT " + String(i+2/4) + ", '" + String(i) + ":30' FROM DUAL"
+ " UNION ALL SELECT " + String(i+3/4) + ", '" + String(i) + ":45' FROM DUAL"
times.push(sql);
}
FCLTselector( "room_beginuur",
times.join(" UNION ALL "),
{ label: L("lcl_estate_gebouw_beginuur"),
initKey: room_data.openfrom,
emptyOption: "",
readonly: !this_alg.writeman
}
);
FCLTselector( "room_einduur",
times.join(" UNION ALL "),
{ label: L("lcl_estate_gebouw_einduur"),
initKey: room_data.opento,
emptyOption: "",
readonly: !this_alg.writeman
}
);
sql = " SELECT null, " + safe.quoted_sql(L("lcl_alg_ruimte_volgens_gebouw")) + " FROM DUAL"
+ " UNION ALL SELECT 0, " + safe.quoted_sql(L("lcl_No")) + " FROM DUAL"
+ " UNION ALL SELECT 1, " + safe.quoted_sql(L("lcl_Yes")) + " FROM DUAL";
FCLTselector( "room_werkdagen",
sql,
{ label: L("lcl_estate_gebouw_werkdagen"),
initKey: room_data.workdays,
readonly: !this_alg.writeman
}
);
BLOCK_END();
BLOCK_START("algLoc2", "");
BLOCK_END();
manRWFIELD("room_opp", "fldshort", L("lcl_estate_ruimte_bruto_vloeropp"), room_opp, {maxlength: 10, datatype: "float"});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_getekendopp"), contour_opp);
if (S("fg_contourlayers_alt1")!="" && S("fg_labellayers_alt1")!="") {
manRWFIELD("room_oppa1", "fldshort", L("lcl_estate_ruimte_opp_alt1"), room_oppa1, {maxlength: 10, datatype: "float"});
ROFIELDTR("fldshort", L("lcl_fg_tek_room_opp_g_alt1"), contour_opp1);
}
if (S("fg_contourlayers_alt2")!="" && S("fg_labellayers_alt2")!="") {
manRWFIELD("room_oppa2", "fldshort", L("lcl_estate_ruimte_opp_alt2"), room_oppa2, {maxlength: 10, datatype: "float"});
ROFIELDTR("fldshort", L("lcl_fg_tek_room_opp_g_alt2"), contour_opp2);
}
manRWFIELD("room_omt", "fldshort", L("lcl_estate_ruimte_man_omtrek"), room_omt, {maxlength: 10, datatype: "float"});
manRWFIELD("room_inh", "fldshort", L("lcl_estate_ruimte_man_inhoud"), room_inh, {maxlength: 13, datatype: "float"});
manRWFIELD("room_opm", "fld", L("lcl_estate_ruimte_man_opmerk"), room_opm, {maxlength: 50});
generateFlexKenmerkBlock ({
onrgoed_key : room_key,
onrgoed_niveau : rooms.defaults.onrgoedlvl,
reado : false,
flexcolumns : S("alg_flexcolumns"),
this_alg : this_alg
});
BLOCK_END();
IFACE.FORM_END();
generateFlexKenmerkBlock ({
onrgoed_key : room_key,
onrgoed_niveau : onrgoedlvl,
reado : false,
flexcolumns : S("alg_flexcolumns"),
this_alg : this_alg
});
%>
</form>
</div>
</body>
</form>
<iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>
</div>
</body>
</html>

View File

@@ -6,67 +6,108 @@
File: alg_edit_ruimte_save.asp
*/ %>
<%
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../API2/api2.inc" -->
<!-- #include file="../API2/model_rooms.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc"-->
<% FCLTHeader.Requires({ plugins:["jQuery"],
js: []
}) %>
<%
protectRequest.validateToken();
var room_key = getQParamInt( "room_key" );
var room_action = getFParam( "room_action", "" );
var room_key = getQParamInt( "room_key" );
var isNew = (room_key < 0);
var formfields = [ { name: "name", frm: "room_nr" },
{ name: "roomtype", frm: "room_srt" },
{ name: "floor", frm: "verdiepingkey" },
{ name: "description", frm: "room_oms" },
{ name: "grossarea", frm: "room_opp" },
{ name: "perimeter", frm: "room_omt" },
{ name: "remark", frm: "room_opm" },
{ name: "volume", frm: "room_inh" },
{ name: "area1", frm: "room_oppa1" },
{ name: "area2", frm: "room_oppa2" },
{ name: "servicelevel", frm: "dienstniveau" },
{ name: "workdays", frm: "room_werkdagen" },
{ name: "openfrom", frm: "room_beginuur" },
{ name: "opento", frm: "room_einduur" }
];
var params = { filter: { id: room_key,
scope: "fe"
},
properties: { extraserie: false,
nameprefix: "k"
}
};
var rooms = new model_rooms();
var jsondata = api2.form2JSONdata(rooms, params, formfields);
jsondata.properties = flexkenmerken2jsondata(params.properties);
var fields = [ { dbs: "ALG_VERDIEPING_KEY", typ: "key", frm: "verdiepingkey" },
{ dbs: "ALG_SRTRUIMTE_KEY", typ: "key", frm: "room_srt", track: L("lcl_estate_ruimte_man_sort") , foreign: "alg_srtruimte" },
{ dbs: "ALG_RUIMTE_NR", typ: "varchar", frm: "room_nr", track: L("lcl_estate_ruimte_man_nr") },
{ dbs: "ALG_RUIMTE_ACADKEY", typ: "varchar", frm: "room_ackey" },
{ dbs: "ALG_RUIMTE_OMSCHRIJVING", typ: "varchar", frm: "room_oms", track: L("lcl_estate_ruimte_man_descr") },
{ dbs: "ALG_RUIMTE_GETEKEND", typ: "date", frm: "room_tek" },
{ dbs: "ALG_RUIMTE_BRUTO_VLOEROPP", typ: "float", frm: "room_opp", track: L("lcl_estate_ruimte_bruto_vloeropp") },
{ dbs: "ALG_RUIMTE_OMTREK", typ: "float", frm: "room_omt", track: L("lcl_estate_ruimte_man_omtrek") },
{ dbs: "ALG_RUIMTE_INHOUD", typ: "float", frm: "room_inh", track: L("lcl_estate_ruimte_man_inhoud") },
{ dbs: "ALG_RUIMTE_OPMERKING", typ: "varchar", frm: "room_opm", track: L("lcl_estate_ruimte_man_opmerk") },
{ dbs: "ALG_RUIMTE_VLOER_OMSCHRIJVING", typ: "varchar", frm: "room_flrom" },
{ dbs: "ALG_RUIMTE_OPP_GEVELGLAS", typ: "float", frm: "room_gegl" },
{ dbs: "ALG_RUIMTE_OPP_SEPARATIEGLAS", typ: "float", frm: "room_segl" },
{ dbs: "ALG_RUIMTE_OPP_GEVELBEKLEDING", typ: "float", frm: "room_gebe" },
{ dbs: "ALG_RUIMTE_OPP_ALT1", typ: "float", frm: "room_oppa1", track: L("lcl_estate_ruimte_opp_alt1") },
{ dbs: "ALG_RUIMTE_OPP_ALT2", typ: "float", frm: "room_oppa2", track: L("lcl_estate_ruimte_opp_alt2") },
{ dbs: "MLD_DIENSTNIVEAU_KEY", typ: "key", frm: "dienstniveau", track: L("lcl_mld_dienst_niveau"), foreign: "mld_dienstniveau" }
];
var warning="";
if (room_key > 0)
{
algUpd = buildTrackingUpdate("alg_ruimte", "alg_ruimte_key = " + room_key, fields);
var err = Oracle.Execute(algUpd.sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
}
else
{
fields.push({ dbs: "alg_ruimte_key", typ: "key", seq: "alg_s_alg_onroerendgoed_keys" });
var regIns = buildInsert("alg_ruimte", fields);
var room_key = regIns.sequences["alg_ruimte_key"];
switch (room_action)
{
case "I":
var room_array = rooms.REST_POST(params, jsondata);
room_key = room_array.key;
break;
case "U":
var room_array = rooms.REST_PUT(params, jsondata, params.filter.id);
break;
case "D":
var room_array = rooms.REST_DELETE(params, params.filter.id);
break;
default :
var room_array = {warning: L("lcl_cnt_Del_Fails_Auth")};
}
var warning = room_array.warning;
sql = regIns.sql;
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
}
if (!warning)
{
currentKenmerkenSQL = " SELECT k.alg_kenmerk_key,"
+ " ok.alg_onrgoedkenmerk_waarde"
+ " FROM alg_onrgoedkenmerk ok,"
+ " alg_kenmerk k "
+ " WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key "
+ " AND alg_onrgoedkenmerk_verwijder IS NULL "
+ " AND alg_onrgoed_niveau = 'R' "
+ " AND alg_onrgoed_key = " + room_key;
var result = { room_key: room_key,
warning: warning,
keepForm: !!warning,
success: true };
Response.Write(JSON.stringify(result));
allKenmerkenSQL = " SELECT "+lcl.xsql('k.alg_kenmerk_omschrijving','k.alg_kenmerk_key')+" kenmerk_omschrijving, "
+ " alg_kenmerk_key srtkenmerk_key"
+ " FROM alg_kenmerk k"
+ " WHERE k.alg_kenmerk_verwijder IS NULL"
+ " AND k.alg_kenmerk_niveau = 'R'"
+ " AND k.alg_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */
var flextrack =
saveFlexKenmerken(room_key, { kenmerkTable: "alg_onrgoedkenmerk",
kenmerkParentKey : "alg_onrgoed_key",
kenmerkWaarde: "alg_onrgoedkenmerk_waarde",
kenmerkKey: "alg_kenmerk_key",
currentKenmerkenSQL: currentKenmerkenSQL,
allKenmerkenSQL: allKenmerkenSQL,
kenmerkOmschrijving: "alg_kenmerk_omschrijving",
kenmerkSoortKey: "alg_kenmerk_key",
requestQF: Request.Form,
isNew: isNew, flexPath: "ALG/R",
tracking: true,
moduleName: "ALG_ONRGOED_NIVEAU",
moduleVal: "R",
module: "ALG"
}
)
if (!isNew && (algUpd.trackarray.length || flextrack.length))
shared.trackaction("ALGRUP", room_key, algUpd.trackarray.concat(flextrack).join("\n"));
}
%>
<html>
<head>
<% FCLTHeader.Generate() %>
<script>
$(document).ready(function () {
FcltMgr.closeDetail(window, { room_key: <%=room_key%>,
warning: "<%=safe.jsstring(warning)%>",
keepForm: <%=warning?"true":"false"%>
});
} );
</script>
</head>
<body>
</body>
</html>

View File

@@ -128,7 +128,6 @@ if (srtruimte_lg_key > -1)
RWFIELDTR("prijs5", "fldalgprijs", L("lcl_alg_alg_tariefD"), safe.editablefloat(prijs5, 5), {maxlength: 17, datatype: "float"});
BLOCK_END();
IFACE.FORM_END();
%>
</form>
<iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>

View File

@@ -12,16 +12,12 @@
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="alg.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<% FCLTHeader.Requires({ plugins:["jQuery"],
js: []
}) %>
<%
var autfunction = 'WEB_ALGMAN';
var authparams = user.checkAutorisation(autfunction)
var srtruimte_lg_key = getQParamInt("srtruimte_lg_key", -1);
var srtruimte_key = getFParamInt("srtruimte", -1);
var loc_key = getFParamInt("locatiekey", -1);
@@ -68,7 +64,7 @@ __Log("srtruimte_lg_key = " + srtruimte_lg_key);
{
sql = buildUpdate("alg_srtruimte_locatiegebouw", fields)
+ " alg_srtruimte_lg_key = " + srtruimte_lg_key;
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
@@ -78,7 +74,7 @@ __Log("srtruimte_lg_key = " + srtruimte_lg_key);
fields.push({ dbs: "alg_srtruimte_lg_key", typ: "key", seq: "alg_s_alg_srtruimte_lg_key" });
var regIns = buildInsert("alg_srtruimte_locatiegebouw", fields);
var srtruimte_lg_key = regIns.sequences["alg_srtruimte_lg_key"];
sql = regIns.sql;
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)

View File

@@ -157,7 +157,6 @@ generateFlexKenmerkBlock ({
this_alg : this_alg
});
IFACE.FORM_END();
%>
</form>
<iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>

View File

@@ -7,19 +7,14 @@
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc"-->
<!-- #include file="alg.inc" -->
<% FCLTHeader.Requires({ plugins:["jQuery"],
js: []
}) %>
<%
var ter_key = getQParamInt( "ter_key" );
var onrgoedlvl = "T";
var this_alg = alg.func_enabled(ter_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.writeman || (ter_key>0&&this_alg.writeuse));
var ter_key = getQParamInt( "ter_key" );
var fields = [ { dbs: "alg_locatie_key", typ: "key", frm: "locatiekey", track: true /* afzonderlijke tracking, wel oldjsval */ },
{ dbs: "ALG_TERREINSECTOR_OMSCHRIJVING", typ: "varchar", frm: "ter_oms" },

View File

@@ -85,7 +85,7 @@ if (this_alg.writeman)
else
manRWFIELD = function (a,b,c,d,e) { ROFIELDTR(b,c,d,e) }; // als geen USE of <self> dan zijn er veel readonly
BLOCK_START("algLoc1", "&nbsp;");
BLOCK_START("algLoc1", "");
FCLTplaatsselector(this_alg.authparams("WEB_ALGMAN").ALGwritelevel, {
locatiekey: loc_key,
gebouwkey: bld_key,
@@ -113,25 +113,14 @@ BLOCK_START("algLoc1", "&nbsp;");
BLOCK_END();
BLOCK_START("algLoc2", "&nbsp;");
if (flr_key > 0)
{
var calcopp = alg.calc_algm2(flr_key, onrgoedlvl);
ROFIELDTR("fld", L("lcl_estate_ruimte_bruto_vloeropp") + L("lcl_estate_calc_vloeropp"), calcopp.oppbruto, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt1") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt1, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt2") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt2, {suppressEmpty: true});
}
BLOCK_END();
generateFlexKenmerkBlock ({
onrgoed_key : flr_key,
onrgoed_key : bld_key,
onrgoed_niveau : onrgoedlvl,
reado : false,
flexcolumns : S("alg_flexcolumns"),
this_alg : this_alg
});
IFACE.FORM_END();
%>
</form>
<iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>

View File

@@ -7,19 +7,14 @@
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc"-->
<!-- #include file="alg.inc" -->
<% FCLTHeader.Requires({ plugins:["jQuery"],
js: []
}) %>
<%
var flr_key = getQParamInt( "flr_key" );
var onrgoedlvl = "V";
var this_alg = alg.func_enabled(flr_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.writeman || (flr_key>0&&this_alg.writeuse));
var flr_key = getQParamInt( "flr_key" );
var fields = [ { dbs: "alg_verdieping_omschrijving", typ: "varchar", frm: "flr_omschr" },
{ dbs: "alg_verdieping_volgnr", typ: "number", frm: "flr_volgnr" },

View File

@@ -27,9 +27,6 @@ FCLTHeader.Requires({plugins:["jQuery"], js: []})
var authparams = alg.checkAutorisation();
var canAdd = (authparams.ALGwritelevel < 9); // TODO: fijner, ik denk 3. Ik moet voor deze locatie, dit district of deze regio schrijfrechten hebben.
readonly = !canAdd;
if (wp_key > 0)
{
sql = " select * "
@@ -49,10 +46,6 @@ if (wp_key > 0)
oRs.Close();
}
else if (S("prs_werkplek_implicit") == 1)
{
wp_type = 1; // Bij impliciet altijd flex
}
%>
<html>
@@ -78,6 +71,44 @@ else if (S("prs_werkplek_implicit") == 1)
alert("TODO: Next nog niet ondersteund")
}
function enableArea()
{
if( event.srcElement.id != 'fix0' ) {
document.getElementById("wp_opp").disabled = false;
} else {
document.getElementById("wp_opp").disabled = true;
document.getElementById("wp_opp").value = "";
document.getElementById("areah").value = 'null';
}
}
function isGoodNumber(str, checkInteger)
{
var anum=/(^\d+$)|(^\d+\.\d*$)|(^\d*\.\d+$)/
if ( checkInteger ) {
anum=/(^\d+$)/
}
return anum.test(str);
}
function checkArea()
{
if( document.getElementById("area").value != ""
&& !isGoodNumber(document.getElementById("area").value, false )
&& parseInt(document.getElementById("wp_opp").value,10) > 0
&& parseInt(document.getElementById("wp_opp").value,10) < 999999.99) {
alert(L("lcl_estate_wp_bad_area"));
return false;
}
if( document.getElementById("wp_opp").value != "" ) {
document.getElementById("areah").value = document.getElementById("area").value;
} else {
document.getElementById("areah").value = 'null';
}
return true;
}
function process_host_info(data)
{
$("#wp_volgnr").val(data.volgnr);
@@ -121,8 +152,7 @@ BLOCK_START("algInfo", "");
onRuiChange: "onChangeRoom(key)",
startlevel: 2, // Regio
eindlevel: 5, // District
readonlylevel: 2, // Locatie niet readonly
filtercode: "INCVR",
readonly: (wp_key > 0),
required: true });
RWFIELDTR("wp_volgnr", "fldshort", L("lcl_estate_wp_seq"), wp_volgnr, {required: true,
@@ -151,12 +181,10 @@ BLOCK_START("algInfo", "");
+ " UNION SELECT 1, " + safe.quoted_sql(L("lcl_wptype_1")) + " FROM DUAL";
FCLTselector("wp_type", sql,
{ label: L("lcl_wptype"),
initKey: wp_type,
readonly: S("prs_werkplek_implicit") == 1
initKey: wp_type
});
BLOCK_END();
IFACE.FORM_END();
%>
</form>
<iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>

View File

@@ -8,9 +8,7 @@
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/WPFunctions.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="alg.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<% FCLTHeader.Requires({ plugins:["jQuery"] }); %>
<%
@@ -18,18 +16,13 @@ var wp_key = getQParamInt( "wp_key" );
var virtueel = (getFParamInt("has_wp_virt", 0) == 1) && (Request.Form("wp_virt").count == 1); // virtueel
// Bij impliciet altijd flex
var wp_type = (S("prs_werkplek_implicit") == 1)?1:getFParamInt("wp_type");
var authparams = alg.checkAutorisation();
var fields = [// { dbs: "PRS_WERKPLEK_MODULE", typ: "varchar", frm: "" },
{ dbs: "PRS_WERKPLEK_VOLGNR", typ: "number", frm: "wp_volgnr" },
{ dbs: "PRS_WERKPLEK_OMSCHRIJVING", typ: "varchar", frm: "wp_oms" },
{ dbs: "PRS_WERKPLEK_VASTOPP", typ: "number", frm: "wp_vstopp_v" },
{ dbs: "PRS_WERKPLEK_OPP", typ: "number", frm: "wp_opp" },
{ dbs: "PRS_WERKPLEK_VIRTUEEL", typ: "number", val: (virtueel? 1 : 0) },
{ dbs: "PRS_WERKPLEK_TYPE", typ: "number", val: wp_type },
{ dbs: "PRS_WERKPLEK_TYPE", typ: "number", frm: "wp_type" },
{ dbs: "PRS_ALG_RUIMTE_KEY", typ: "key", frm: "ruimtekey" } /*,
{ dbs: "PRS_WERKPLEK_GETEKEND", typ: "date", frm: "" },
{ dbs: "PRS_WERKPLEK_DWGX", typ: "number", frm: "" },
@@ -46,22 +39,7 @@ if (wp_key > 0)
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
// Is de ruimte aangepast?
var room_key_new = getFParamInt("ruimtekey");
var sql = "SELECT prs_alg_ruimte_key"
+ " FROM prs_werkplek"
+ " WHERE prs_werkplek_key = " + wp_key;
var oRs = Oracle.Execute(sql);
var room_key_old = oRs("prs_alg_ruimte_key").Value;
oRs.Close();
if (room_key_old != room_key_new)
{ // Werkplek verplaatsen
wp_key = WPMove_PRS_WERKPLEK(wp_key, room_key_new);
}
warning = err.friendlyMsg;
}
else
{

View File

@@ -20,18 +20,10 @@
<%
function generateFlexKenmerkBlock(params)
{
if (!params.fnpre) // Mobile geeft die zelf mee
if (!params.fnpre) // Mobile geeft die zelf eme
{
if (params.advanced) // Simpel houden
{
params.fnpre = function () { Response.Write('<table id="flextable" cellpadding="0" cellspacing="0">'); };
params.fnpost = function () { Response.Write('</table>'); };
}
else
{
params.fnpre = function () { BLOCK_START("algFlex"+(S("alg_flexcolumns")!=1?"2":""), L("lcl_alg_flexblok")); }
params.fnpost = BLOCK_END;
}
params.fnpre = function () { BLOCK_START("algFlex"+(S("alg_flexcolumns")!=1?"2":""), L("lcl_alg_flexblok")); }
params.fnpost = BLOCK_END;
}
var onrgoed_key = params.onrgoed_key; // Onroerendgoed key
var onrgoed_niveau = params.onrgoed_niveau; // Onroerendgoed niveau
@@ -49,6 +41,18 @@ function generateFlexKenmerkBlock(params)
return true;
}
function isInvisible(volgnummer)
{
if (volgnummer<100 && !params.this_alg.readman )
return true; // Invisible
if (volgnummer>100 && !params.this_alg.readuse)
return true; // Invisible
return false;
}
var sql = "SELECT k.alg_kenmerk_key kenmerk_key, "
+ lcl.xsql('k.alg_kenmerk_omschrijving', 'k.alg_kenmerk_key') +" kenmerk_omschrijving, "
+ " k.alg_kenmerk_kenmerktype kenmerk_kenmerktype, "
@@ -71,7 +75,6 @@ function generateFlexKenmerkBlock(params)
+ lcl.xsql('k.alg_kenmerk_hint', 'k.alg_kenmerk_key') +" kenmerk_hint, "
+ lcl.xsql('k.alg_kenmerk_default', 'k.alg_kenmerk_key') +" kenmerk_default, "
+ " k.alg_kenmerk_verplicht kenmerk_verplicht, "
+ " k.alg_kenmerk_groep kenmerk_groep, "
+ " NULL otherpath, "
+ " k.alg_kenmerk_toonbaar kenmerk_toonbaar,"
+ " k.alg_kenmerk_uniek kenmerk_uniek,"
@@ -79,8 +82,6 @@ function generateFlexKenmerkBlock(params)
+ " FROM alg_kenmerk k "
+ " WHERE k.alg_kenmerk_niveau = " + safe.quoted_sql(onrgoed_niveau)
+ " AND k.alg_kenmerk_verwijder IS NULL "
+ (!params.this_alg.readman? " AND alg_kenmerk_volgnr >= 100":"")
+ (!params.this_alg.readuse? " AND alg_kenmerk_volgnr <= 100":"")
+ "ORDER BY k.alg_kenmerk_volgnr, "
+ lcl.xsql('k.alg_kenmerk_omschrijving', 'k.alg_kenmerk_key');
@@ -92,12 +93,13 @@ function generateFlexKenmerkBlock(params)
{ flexcolumns: (!advanced ? flexcolumns : 1), // advanced is een popup. Dan passen twee kolommen slecht
kenmerk_search: advanced,
fnIsReadonly: isReadonly,
fnIsInvisible: isInvisible,
hideVervallen: onrgoed_key<0,
fnpre: params.fnpre,
fnpost: params.fnpost,
mobile: params.mobile,
parentKey: onrgoed_key,
kenmerk_module: onrgoed_niveau }
parentKey: onrgoed_key } //?????
);
}
%>

View File

@@ -23,21 +23,18 @@ var bld_key = getQParamInt("key", -1);
if (bld_key > 0)
{
sql = " select alg_gebouw_code, alg_locatie_key "
sql = " select alg_gebouw_code "
+ " FROM alg_gebouw "
+ " WHERE alg_gebouw_key = " + bld_key;
oRs = Oracle.Execute(sql);
var bld_name = " " + oRs("alg_gebouw_code").value;
var loc_key = oRs("alg_locatie_key").value;
}
else
{
var bld_name = "";
var loc_key = -1;
var bld_name = ""
}
%>
<html>
@@ -69,7 +66,7 @@ else
</script>
</head>
<body>
<body id="editbody">
<% if (bld_key == -1)
var page="alg_edit_gebouw.asp"; // Maak een nieuw
else
@@ -79,22 +76,6 @@ else
IFRAMER("algFrame", page, { title: L("lcl_alg_gebouw_frame"),
initHeight: "450px",
FcltClose: "algClose" } );
if (bld_key > -1)
{
var authparamsCNTUSE = user.checkAutorisation("WEB_CNTUSE", true);
var authparamsCNTMAN = user.checkAutorisation("WEB_CNTMAN", true);
var curole = "bo";
if (!authparamsCNTMAN && authparamsCNTUSE)
curole = "fe";
if (authparamsCNTMAN || authparamsCNTUSE)
{
var page1="../cnt/cnt_search_list.asp?embedded=1&tiny=1&collapsed=1&urole=" + curole + "&ffutu=1&fact=1&frap=1&fopz=1&sact=1&loc_key="+ loc_key + "&bld_key=" + bld_key
IFRAMER("cntFrame", page1, { initHide: true } );
}
}
%>
</body>
</html>

View File

@@ -9,6 +9,7 @@
Note:
*/ %>
<!-- #include file="../Shared/disCxprs3d.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/getkenmerksql.inc" -->
@@ -56,16 +57,11 @@ function doDelete(rowArray, isMulti)
{
var bldKeyString = getKeyString(rowArray);
if (isMulti || confirm(L("lcl_alg_del_txt_gebouw")))
{
var data = { key: bldKeyString,
level: "G"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
{ key: bldKeyString,
level: "G" },
FcltCallbackRefresh,
"json");
}
}
</script>
<%
@@ -87,25 +83,15 @@ function gebouw_list(pautfunction, params)
var dis_key = params.dis_key;
var loc_key = params.loc_key;
var bld_key = params.bld_key;
var srtgebouw_key = params.srtgebouw_key;
var verantw_key = params.verantw_key;
var bld_func = params.bld_func;
function fnrowActionEnabler(oRs)
{
var eDelete = false;
if (alg.canWriteGebouw(oRs("alg_gebouw_key").value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
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 fnrowActionEnabler(oRs)
{
var eDelete = false;
if (alg.canWriteGebouw(oRs("alg_gebouw_key").value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
%>
<html>
@@ -114,62 +100,70 @@ function gebouw_list(pautfunction, params)
</head>
<body id="listbody">
<%
var sqln = "SELECT g.alg_gebouw_key"
+ " , g.alg_locatie_key"
+ " , g.alg_locatie_key"
+ " , g.alg_srtgebouw_key"
+ " , l.alg_locatie_omschrijving"
+ " , " + lcl.xsqla('s.alg_srtgebouw_omschrijving', 's.alg_srtgebouw_key')
+ " , g.alg_gebouw_code"
+ " , g.alg_gebouw_naam"
+ " , g.alg_gebouw_opmerking"
+ " , g.alg_gebouw_bruto_vloeropp"
+ " , g.alg_gebouw_omtrek"
+ " , g.alg_gebouw_inhoud"
+ " , g.alg_gebouw_x"
+ " , g.alg_gebouw_y"
+ " FROM alg_v_aanweziggebouw g"
+ " , alg_locatie l"
+ " , alg_srtgebouw s"
+ " WHERE l.alg_locatie_key(+) = g.alg_locatie_key"
+ " AND s.alg_srtgebouw_key(+) = g.alg_srtgebouw_key"
+ " AND g.alg_gebouw_verwijder IS NULL";
var sqln = "SELECT g.alg_gebouw_key, "
+ " g.alg_locatie_key, "
+ " g.alg_locatie_key, "
+ " g.alg_srtgebouw_key, "
+ " l.alg_locatie_omschrijving, "
+ lcl.xsqla('s.alg_srtgebouw_omschrijving', 's.alg_srtgebouw_key')+", "
+ " g.alg_gebouw_code, "
+ " g.alg_gebouw_naam, "
+ " g.alg_gebouw_opmerking, "
+ " g.alg_gebouw_bruto_vloeropp, "
+ " g.alg_gebouw_omtrek, "
+ " g.alg_gebouw_inhoud "
+ " FROM alg_v_aanweziggebouw g, "
+ " alg_locatie l, "
+ " alg_srtgebouw s "
+ " WHERE l.alg_locatie_key(+) = g.alg_locatie_key "
+ " AND s.alg_srtgebouw_key(+) = g.alg_srtgebouw_key "
+ " AND g.alg_gebouw_verwijder IS NULL ";
if ( authparams.ALGreadlevel > -1 )
{ // Er is een scope-beperking van kracht
sqln += " AND g.alg_gebouw_key IN (SELECT alg_gebouw_key FROM fac_v_my_buildings "
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + authparams.ALGreadlevel + ")";
}
{ // Er is een scope-beperking van kracht
sqln += " AND g.alg_gebouw_key IN "
+ "(SELECT alg_gebouw_key FROM fac_v_my_buildings "
+ "WHERE prs_perslid_key="+user_key
+ " AND niveau=" + authparams.ALGreadlevel + ")";
}
sqln += getKenmerkSql("ALG", "g.alg_gebouw_key");
sqln += getKenmerkSql("ALG", "g.alg_gebouw_key");
if (bld_key)
if (bld_key)
{
sqln += " AND g.alg_gebouw_key = " + bld_key;
else if (loc_key)
}
else if (loc_key)
{
sqln += " AND g.alg_locatie_key = " + loc_key;
else if (dis_key)
}
else if (dis_key)
{
sqln += " AND l.alg_district_key = " + dis_key;
else if (reg_key)
}
else if (reg_key)
{
sqln += " AND l.alg_district_key IN (SELECT alg_district_key FROM alg_district WHERE alg_regio_key = " + reg_key+")";
}
if (srtgebouw_key)
sqln += " AND g.alg_srtgebouw_key = " + srtgebouw_key;
if (bld_func)
{
sqln += " AND g.alg_srtgebouw_key = " + bld_func;
}
if (verantw_key)
sqln += " AND g.prs_perslid_key_verantw = " + verantw_key;
sqln += " ORDER BY l.alg_locatie_upper ASC, "
sqln += " ORDER BY l.alg_locatie_upper ASC, "
+ " g.alg_gebouw_upper ASC ";
var addurl = "appl/alg/alg_gebouw.asp";
if (canAdd)
{
addButton = [{ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "')" }]
}
if (canAdd)
{
addButton = [{ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "')" }]
}
// addurl += buildTransitParam(["loc_key", "bld_key", "flo_key", "room_key"], params) // TODO: welke allemaal?
// addurl += buildTransitParam(["loc_key", "bld_key", "flo_key", "room_key"], params) // TODO: welke allemaal?
var rst = new ResultsetTable({ sql:sqln,
keyColumn: "alg_gebouw_key",
@@ -180,7 +174,6 @@ function gebouw_list(pautfunction, params)
rowActionEnabler: fnrowActionEnabler,
flexModule: "ALG",
flexId: "alg_gebouw_key",
flexParams: fnrowFlexParams,
filterParams: params,
outputmode: outputmode,
buttons: addButton
@@ -188,30 +181,27 @@ function gebouw_list(pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_descr"), content: "alg_locatie_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_code"), content: "alg_gebouw_code"}));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_name"), content: "alg_gebouw_naam" }));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_name"), content: "alg_gebouw_naam", hasActions: true}));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_srtgebouw"), content: "alg_srtgebouw_omschrijving"}));
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_estate_gebouw_man_bruto_vloeropp"), content: "alg_gebouw_bruto_vloeropp"}));
if (outputmode != 0)
{
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_opmerk"), content: "alg_gebouw_opmerking"}));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_omtrek"), content: "alg_gebouw_omtrek"}));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_inhoud"), content: "alg_gebouw_inhoud"}));
rst.addColumn(new Column({caption: L("lcl_geoxcoord"), content: "alg_gebouw_x"}));
rst.addColumn(new Column({caption: L("lcl_geoycoord"), content: "alg_gebouw_y"}));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_opmerk"), content: "alg_gebouw_opmerking"}));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_omtrek"), content: "alg_gebouw_omtrek"}));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_inhoud"), content: "alg_gebouw_inhoud"}));
}
rst.addAction({ action: "gebouwEdit", caption: L("lcl_edit"), isDefault: true});
rst.addAction({ action: "doDelete", caption: L("lcl_delete"), enabler: "eDelete", single:!noref, multi: true, multiOnce: true});
if (!noref)
{
rst.addAction({ action: "gotoDetails", caption: L("lcl_goto_verdieping_list")});
rst.addAction({ action: "gotoParent", caption: L("lcl_goto_locatie_list")});
if (!noref) {
rst.addAction({ action: "gotoDetails", caption: L("lcl_goto_verdieping_list")});
rst.addAction({ action: "gotoParent", caption: L("lcl_goto_locatie_list")});
}
var cnt = rst.processResultset();
%>
</body>
</html>
<%
} %>
<%}%>

View File

@@ -7,7 +7,6 @@
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="alg.inc" -->
@@ -16,11 +15,9 @@ FCLTHeader.Requires({ plugins:["jQuery", "kenmerk"] });
var locatie_key = getQParamInt("locatie_key", -1); // Locatie
var gebouw_key = getQParamInt("gebouw_key", -1); // Gebouw
var srtgebouw_key = getQParamInt("gebouw_func", -1); // Gebouwfunctie
var verantw_key = getQParamInt("verantw", -1); // Gebouw verantwoordelijke
var gebouw_func = getQParamInt("gebouw_func", -1); // Gebouwfunctie
var autosearch = getQParamInt("autosearch", 0) == 1;
var authparams = alg.checkAutorisation();
var this_alg = alg.func_enabled(gebouw_key);
%>
<html>
@@ -48,62 +45,50 @@ var this_alg = alg.func_enabled(gebouw_key);
</head>
<body id="searchbody">
<div id="search">
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
<form name="u2" target="workFrame" action="alg_gebouw_search_list.asp" method="get">
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
<tr>
<td class="searchkolom1">
<table><!-- x rijen, 2 kolommen: label + veld -->
<tr>
<td class="searchkolom1">
<table><!-- x rijen, 2 kolommen: label + veld -->
<% <!-- Locatie, gebouw en verdieping -->
FCLTplaatsselector(authparams.ALGreadlevel, {
locatiekey: locatie_key,
gebouwkey: gebouw_key,
startlevel: 2, // locatie
eindlevel: 3, // gebouw
whenEmpty: L("lcl_search_generic")
});
<% <!-- Locatie, gebouw en verdieping -->
FCLTplaatsselector(authparams.ALGreadlevel, {
locatiekey: locatie_key,
gebouwkey: gebouw_key,
startlevel: 2, // locatie
eindlevel: 3, // gebouw
whenEmpty: L("lcl_search_generic")
});
%>
</table>
</td><!-- end column 1 -->
</table>
</td><!-- end column 1 -->
<td class="searchkolom2">
<table><!-- x rijen, 2 kolommen: label + veld -->
<!-- Zoektekst -->
<% sql = "SELECT alg_srtgebouw_key"
+ ", "+lcl.xsqla('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')
+ " FROM alg_srtgebouw"
+ " WHERE alg_srtgebouw_verwijder IS NULL"
+ " ORDER BY UPPER("+lcl.xsql('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')+")";
FCLTselector("srt",
sql,
{ initKey: srtgebouw_key,
label: L("lcl_estate_gebouw_srtgebouw"),
trclass: "primsearch",
emptyOption: ""
});
%>
<!-- Gebouw verantwoordelijke -->
<% // Dit veld is alleen zichtbaar indien er minimaal <20><>n gebouwverantwoordelijke geconfigureerd is (suppressNoValues).
FCLTpersoonselector("verantw",
"sgVerantw",
{ perslidKey: verantw_key,
label: L("lcl_alg_bld_verantw"),
filtercode: "GV", // Gebouw Verantwoordelijke
trclass: "primsearch",
suppressNoValues: true,
whenEmpty: L("lcl_search_generic") // want filter
});
%>
</table>
</td><!-- end column 1 -->
</tr>
<% BLOCK_END();
var buttons = [ {title: L("lcl_search"), action: "doSubmit()", id: "bSearch" },
{title: L("lcl_obj_advanced"), action: "myModal()", id: "bAdvanced" } ];
CreateButtons(buttons, { entersubmit: true });
<td class="searchkolom2">
<table><!-- x rijen, 2 kolommen: label + veld -->
<% // <!-- Zoektekst -->
sql = "SELECT alg_srtgebouw_key"
+ ", "+lcl.xsqla('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')
+ " FROM alg_srtgebouw"
+ " WHERE alg_srtgebouw_verwijder IS NULL"
+ " ORDER BY UPPER("+lcl.xsql('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')+")";
FCLTselector("srt",
sql,
{ initKey: gebouw_func,
label: L("lcl_estate_gebouw_srtgebouw"),
trclass: "primsearch",
emptyOption: ""
});
%>
</table>
</td><!-- end column 1 -->
</tr>
</form>
<% BLOCK_END();
var buttons = [ {title: L("lcl_search"), action: "doSubmit()", id: "bSearch" },
{title: L("lcl_obj_advanced"), action: "myModal()", id: "bAdvanced" } ];
CreateButtons(buttons);
%>
</div> <!-- search -->
<div id="result">

View File

@@ -26,14 +26,12 @@ var reg_key = getQParamInt("regiokey", -1); // Regio
var dis_key = getQParamInt("districtkey", -1); // District
var loc_key = getQParamInt("locatiekey", -1); // Locatie
var bld_key = getQParamInt("gebouwkey", -1); // Gebouw
var srtgebouw_key = getQParamInt("srt", -1); // Gebouwfunctie
var verantw_key = getQParamInt("verantw", -1); // Gebouw verantwoordelijke
var bld_func = getQParamInt("srt", -1);
gebouw_list ( "*",
{ outputmode: outputmode,
showall: showall,
srtgebouw_key: (srtgebouw_key != -1? srtgebouw_key: null),
verantw_key: (verantw_key != -1? verantw_key: null),
bld_func: (bld_func != -1? bld_func: null),
reg_key: (reg_key != -1? reg_key : null),
dis_key: (dis_key != -1? dis_key : null),
loc_key: (loc_key != -1? loc_key : null),

View File

@@ -65,7 +65,7 @@ else
}
</script>
</head>
<body>
<body id="editbody">
<%
if (loc_key == -1)
var page="alg_edit_locatie.asp"; // Maak een nieuw
@@ -76,22 +76,6 @@ else
IFRAMER("algFrame", page, { title: L("lcl_alg_locatie_frame"),
initHeight: "450px",
FcltClose: "algClose" } );
if (loc_key > -1)
{
var authparamsCNTUSE = user.checkAutorisation("WEB_CNTUSE", true);
var authparamsCNTMAN = user.checkAutorisation("WEB_CNTMAN", true);
var curole = "bo";
if (!authparamsCNTMAN && authparamsCNTUSE)
curole = "fe";
if (authparamsCNTMAN || authparamsCNTUSE)
{
var page1="../cnt/cnt_search_list.asp?embedded=1&tiny=1&collapsed=1&urole=" + curole + "&ffutu=1&fact=1&frap=1&fopz=1&sact=1&loc_key=" + loc_key
IFRAMER("cntFrame", page1, { initHeight: "450px" } );
}
}
%>
</body>
</html>

View File

@@ -64,16 +64,11 @@ function fnrowData(oRs)
{
var locKeyString = getKeyString(rowArray);
if (isMulti || confirm(L("lcl_alg_del_txt_locatie")))
{
var data = { key: locKeyString,
level: "L"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
{ key: locKeyString,
level: "L" },
FcltCallbackRefresh,
"json");
}
}
</script>
<%
@@ -101,15 +96,6 @@ function locatie_list(pautfunction, params)
eDelete = true;
return ({eDelete: eDelete})
}
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>
@@ -131,9 +117,7 @@ function locatie_list(pautfunction, params)
+ " l.alg_locatie_land, "
+ " l.alg_locatie_post_land, "
+ " l.alg_locatie_verantw, "
+ " l.alg_locatie_verantw_tel, "
+ " l.alg_locatie_x, "
+ " l.alg_locatie_y "
+ " l.alg_locatie_verantw_tel "
+ " FROM alg_v_aanweziglocatie l, "
+ " alg_district d "
+ " WHERE d.alg_district_key(+) = l.alg_district_key "
@@ -182,14 +166,13 @@ function locatie_list(pautfunction, params)
outputmode: outputmode,
flexModule: "ALG",
flexId: "alg_locatie_key",
flexParams: fnrowFlexParams,
filterParams: params,
buttons: addButton
});
rst.addColumn(new Column({caption: L("lcl_estate_district_man_descr"), content: "alg_district_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_code"), content: "alg_locatie_code"}));
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_descr"), content: "alg_locatie_omschrijving" }));
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_descr"), content: "alg_locatie_omschrijving", hasActions:true}));
rst.addColumn(new Column({caption: L("lcl_prs_address_bezoek_adres"), content: "alg_locatie_adres"}));
rst.addColumn(new Column({caption: L("lcl_prs_address_bezoek_postcode"), content: "alg_locatie_postcode"}));
rst.addColumn(new Column({caption: L("lcl_prs_address_bezoek_plaats"), content: "alg_locatie_plaats"}));
@@ -202,8 +185,7 @@ function locatie_list(pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_prs_address_post_plaats"), content: "alg_locatie_post_plaats"}));
rst.addColumn(new Column({caption: L("lcl_prs_address_post_land"), content: "alg_locatie_post_land"}));
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_verantw"), content: "alg_locatie_verantw"}));
rst.addColumn(new Column({caption: L("lcl_geoxcoord"), content: "alg_locatie_x"}));
rst.addColumn(new Column({caption: L("lcl_geoycoord"), content: "alg_locatie_y"}));
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_verantw_tel"), content: "alg_locatie_verantw_tel"}));
}

View File

@@ -43,8 +43,8 @@ var authparams = alg.checkAutorisation();
</head>
<body id="searchbody">
<div id="search">
<form name="u2" target="workFrame" action="alg_locatie_search_list.asp" method="get">
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
<form name="u2" target="workFrame" action="alg_locatie_search_list.asp" method="get">
<tr>
<td class="searchkolom1">
<table><!-- x rijen, 2 kolommen: label + veld -->
@@ -63,13 +63,13 @@ var authparams = alg.checkAutorisation();
<td class="searchkolom2">
</td><!-- end column 1 -->
</tr>
</form>
<% BLOCK_END();
var buttons = [ {title: L("lcl_search"), action: "doSubmit()", id: "bSearch" },
{title: L("lcl_obj_advanced"), action: "myModal()", id: "bAdvanced" } ];
CreateButtons(buttons, { entersubmit: true });
CreateButtons(buttons);
%>
</form>
</div> <!-- search -->
<div id="result">

View File

@@ -40,13 +40,17 @@ var reg_key = getQParamInt("key", -1);
if (!params.keepForm)
window.location.href = "alg_regio.asp?verynew=1&key=" + params.regio_key;
<% } else { /* Bestaande regio bewerkt, switch naar show-mode */ %>
if (params.close)
{
FcltMgr.closeDetail(window, { close: true})
}
if (!params.keepForm)
$("#algFrame")[0].src = "alg_show_regio.asp?regio_key=<%=reg_key%>";
<% } %>
}
</script>
</head>
<body>
<body id="editbody">
<% if (reg_key == -1)
var page="alg_edit_regio.asp"; // Maak een nieuw
else

View File

@@ -9,26 +9,24 @@
Note:
*/ %>
<!-- #include file="../Shared/disCxprs3d.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../shared/data_recordset.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/getkenmerksql.inc" -->
<!-- #include file="../API2/api2.inc" -->
<!-- #include file="../API2/model_regions.inc" -->
<!-- #include file="alg.inc" -->
<%
FCLTHeader.Requires({ plugins:["jQuery"] });
function fnrowData(oRs)
{
var detail_key = oRs.Fields("id").Value;
var key = oRs.Fields("id").Value;
var oms = oRs.Fields("name").Value;
var detail_key = oRs("alg_regio_key").value;
var key = oRs("alg_regio_key").value;
var oms = oRs("alg_regio_omschrijving").value;
var data = {detail_key: detail_key, key: key, oms: oms};
var data = {detail_key: detail_key, key: key, oms: oms};
return JSON.stringify(data);
return JSON.stringify(data);
}
%>
@@ -54,16 +52,11 @@ function fnrowData(oRs)
{
var regKeyString = getKeyString(rowArray);
if (isMulti || confirm(L("lcl_alg_del_txt_regio")))
{
var data = { key: regKeyString,
level: "RE"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
FcltCallbackRefresh,
"json");
}
$.post("alg_delete.asp",
{ key: regKeyString,
level: "RE" },
FcltCallbackRefresh,
"json");
}
</script>
<%
@@ -77,13 +70,14 @@ function regio_list(pautfunction, params)
// Voor resulttable de globalen zetten; zou ng anders moeten.
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
var showall = params.showall;
var reg_key = params.reg_key;
var showall = params.showall;
var reg_key = params.reg_key;
function fnrowActionEnabler(oRs)
{
var eDelete = false;
if (alg.canWriteRegio(oRs.Fields("id").Value, authparams.mALGwritelevel))
if (alg.canWriteRegio(oRs("alg_regio_key").value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
@@ -94,25 +88,34 @@ function regio_list(pautfunction, params)
</head>
<body id="listbody">
<%
// Ophalen regio`s
var regio_key = getQParamInt("regiokey");
var filter = {};
if (regio_key > -1)
var filter = {id: regio_key};
var params = { filter: filter }; // Alle regio`s ophalen, behalve de verwijderde.
var regio_array = model_regions.REST_GET(params); // Roep de API2 GET aan
//
var sqln = "SELECT r.alg_regio_key, "
+ " r.alg_regio_omschrijving "
+ " FROM alg_regio r "
+ " WHERE r.alg_regio_verwijder IS NULL ";
var addurl = "appl/alg/alg_regio.asp";
// addurl += buildTransitParam(["loc_key", "bld_key", "flo_key", "room_key"], params) // TODO: welke allemaal?
if (canAdd)
{
addButton = [{ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "')" }]
if (authparams.ALGreadlevel > -1)
{ // Er is een scope-beperking van kracht
sqln += " AND r.alg_regio_key IN "
+ "(SELECT alg_regio_key FROM fac_v_my_regions "
+ "WHERE prs_perslid_key="+user_key
+ " AND niveau=" + authparams.ALGreadlevel + ")";
}
var rst = new ResultsetTable({ dataset: regio_array,
keyColumn: "id",
if (reg_key)
{
sqln += " AND r.alg_regio_key = " + reg_key;
}
var addurl = "appl/alg/alg_regio.asp";
// addurl += buildTransitParam(["loc_key", "bld_key", "flo_key", "room_key"], params) // TODO: welke allemaal?
if (canAdd)
{
addButton = [{ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "')" }]
}
var rst = new ResultsetTable({sql:sqln,
keyColumn: "alg_regio_key",
ID: "algtable",
showAll: showall,
rowData: fnrowData,
@@ -120,10 +123,10 @@ function regio_list(pautfunction, params)
outputmode: outputmode,
filterParams: params,
buttons: addButton
});
});
rst.addColumn(new Column({caption: L("lcl_estate_regio_descr"), content: "name"}));
rst.addColumn(new Column({caption: L("lcl_estate_regio_descr"), content: "alg_regio_omschrijving"}));
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

@@ -50,11 +50,11 @@ var authparams = alg.checkAutorisation();
</tr>
<% BLOCK_END(); %>
</form>
<%
var buttons = [{title: L("lcl_search"), action: "document.forms.u2.submit();", id: "bSearch" }];
CreateButtons(buttons, { entersubmit: true });
CreateButtons(buttons);
%>
</form>
</div> <!-- search -->
<div id="result">

View File

@@ -58,7 +58,7 @@ else
addString = (loc_key > 0? "&loc_key=" + loc_key : "")
+ (geb_key > 0? "&geb_key=" + geb_key : "")
+ (ver_key > 0? "&ver_key=" + ver_key : "")
+ (cad_ruimte_nr?"&cad_ruimte_nr="+safe.url(cad_ruimte_nr):"");
+ (cad_ruimte_nr?"&cad_ruimte_nr="+cad_ruimte_nr:"");
}
}
%>
@@ -84,6 +84,10 @@ else
if (!params.keepForm)
window.location.href = "alg_ruimte.asp?verynew=1&key=" + params.room_key;
<% } else { /* Bestaande ruimte bewerkt, switch naar show-mode */ %>
if (params.close)
{
FcltMgr.closeDetail(window, { close: true})
}
if (!params.keepForm)
$("#algFrame")[0].src = "alg_show_ruimte.asp?room_key=<%=room_key%>";
@@ -91,7 +95,7 @@ else
}
</script>
</head>
<body>
<body id="editbody">
<%
if (room_key == -1)
var page="alg_edit_ruimte.asp?room_key=" + room_key + addString; // Maak een nieuw
@@ -109,14 +113,6 @@ else
var page3 ="../prs/prs_afdeling_search_list.asp?tiny=1&room_key=" + room_key;// Alle afdelingen van alle niveau's (1 en hoger) laten zien dus afd_niveau=nr niet meegegeven
IFRAMER("wpFrame", page3, { initHeight: "450px" } );
var authparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);
var insman_read = authparamsINSMAN;
if (insman_read)
{
var page4="../INS/ins_list.asp?embedded=1&tiny=1&ruimtekey=" + room_key
IFRAMER("insdeel", page4, { initHeight: "450px" } );
}
}
%>
</body>

View File

@@ -22,8 +22,7 @@ function ruimte_list(pautfunction, params)
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
var addButton = [];
var authparams = alg.checkAutorisation();
// Met ALG* bepaal je wat je ziet (Read), met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
var canAdd = (authparams.rmALGwritelevel < 9);
var canAdd = (authparams.mALGwritelevel < 9);
// Voor resulttable de globalen zetten; zou ng anders moeten.
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
@@ -48,21 +47,21 @@ function ruimte_list(pautfunction, params)
function gotoDetails(row)
{
var algData = eval('(' + row.getAttribute("ROWDATA") + ')');
var url = "appl/alg/alg_werkplek_search.asp?ruimte_key="+algData.detail_key+"&autosearch="+autosearch;
var url = "appl/ALG/alg_werkplek_search.asp?ruimte_key="+algData.detail_key+"&autosearch="+autosearch;
FcltMgr.openDetail(url, "<%=L("lcl_workspace")%>");
}
function gotoParent(row)
{
var algData = eval('(' + row.getAttribute("ROWDATA") + ')');
var url = "appl/alg/alg_verdieping_search.asp?verdieping_key="+algData.parent_key+"&autosearch="+autosearch;
var url = "appl/ALG/alg_verdieping_search.asp?verdieping_key="+algData.parent_key+"&autosearch="+autosearch;
FcltMgr.openDetail(url, "<%=L("lcl_floor")%>");
}
function ruimteEdit(row)
{
var algData = eval('(' + row.getAttribute("ROWDATA") + ')');
var url = "appl/alg/alg_ruimte.asp?mode=viewUpdate&key="+algData.key;
var url = "appl/ALG/alg_ruimte.asp?mode=viewUpdate&key="+algData.key;
FcltMgr.openDetail(url, "<%=L("lcl_room")%>" + ' ' + algData.oms);
}
@@ -81,16 +80,11 @@ function ruimte_list(pautfunction, params)
$(row).addClass('dirty');
var room_key = row.getAttribute("ROWKEY");
if (isMulti || confirm(L("lcl_alg_del_txt_ruimte")))
{
var data = { key: room_key,
level: "R"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
{ key: room_key,
level: "R" },
FcltCallbackRefresh,
"json");
}
}
</script>
</head>
@@ -174,10 +168,10 @@ function ruimte_list(pautfunction, params)
function fnrowData(oRs)
{
var parent_key = oRs("alg_verdieping_key").Value;
var detail_key = oRs("alg_ruimte_key").Value;
var key = oRs("alg_ruimte_key").Value;
var oms = oRs("alg_ruimte_omschrijving").Value;
var parent_key = oRs("alg_verdieping_key").value;
var detail_key = oRs("alg_ruimte_key").value;
var key = oRs("alg_ruimte_key").value;
var oms = oRs("alg_ruimte_omschrijving").value;
var data = {parent_key:parent_key, detail_key:detail_key, key:key, oms:oms};
return JSON.stringify(data);
@@ -187,26 +181,17 @@ function ruimte_list(pautfunction, params)
// Voor performance bekijken we de rechten per verdieping. In de praktijk nauwkeurig genoeg
function fnrowActionEnabler(oRs)
{
if (!floorCache[oRs("alg_verdieping_key").Value])
if (!floorCache[oRs("alg_verdieping_key").value])
{
floorCache[oRs("alg_verdieping_key").Value] =
floorCache[oRs("alg_verdieping_key").value] =
{
eDelete: alg.canWriteVerdieping(oRs("alg_verdieping_key").Value, authparams.rmALGwritelevel),
eDelete: alg.canWriteVerdieping(oRs("alg_verdieping_key").value, authparams.mALGwritelevel),
// Bezetting moet per regel en is afhankelijk van WEB_PRSBOF (werkplekbeheer)
eBezetting: alg.func_enabled_ruimte(oRs("alg_verdieping_key").Value).canPRSBOFwrite
eBezetting: alg.func_enabled_ruimte(oRs("alg_verdieping_key").value).canPRSBOFwrite
}
}
return (floorCache[oRs("alg_verdieping_key").Value]);
}
function fnrowFlexParams(oRs)
{
var room_key = oRs("alg_ruimte_key").Value;
var this_alg = alg.func_enabled(room_key, "R");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
return (floorCache[oRs("alg_verdieping_key").value]);
}
var addurl = "appl/alg/alg_ruimte.asp?a=1";
@@ -227,18 +212,16 @@ function ruimte_list(pautfunction, params)
outputmode: outputmode,
flexModule: "ALG",
flexId: "alg_ruimte_key",
flexParams: fnrowFlexParams,
filterParams: params,
buttons: addButton
});
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_descr"), content: "alg_locatie_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_descr"), content: "alg_gebouw_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_estate_verdieping_man_descr"), content: "alg_verdieping_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_man_nr"), content: "alg_ruimte_nr"}));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_man_descr"), content: "alg_ruimte_omschrijving" }));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_man_descr"), content: "alg_ruimte_omschrijving", hasActions: true}));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_man_sort"), content: "alg_srtruimte_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_bruto_vloeropp"), content: "alg_ruimte_bruto_vloeropp", datatype: "float", decimals: 2 }));

View File

@@ -49,8 +49,8 @@ var authparams = alg.checkAutorisation();
</head>
<body id="searchbody">
<div id="search">
<form name="u2" target="workFrame" action="alg_ruimte_search_list.asp" method="get">
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
<form name="u2" target="workFrame" action="alg_ruimte_search_list.asp" method="get">
<tr>
<td class="searchkolom1">
<table><!-- x rijen, 2 kolommen: label + veld -->
@@ -63,7 +63,6 @@ var authparams = alg.checkAutorisation();
ruimtekey: ruimte_key,
startlevel: 2, // locatie
eindlevel: 5, // ruimte
filtercode: "INCVR",
whenEmpty: L("lcl_search_generic") // want filter
});
@@ -99,13 +98,13 @@ var authparams = alg.checkAutorisation();
%> </table>
</td><!-- end column 1 -->
</tr>
</form>
<% BLOCK_END();
var buttons = [ {title: L("lcl_search"), action: "doSubmit()", id: "bSearch" },
{title: L("lcl_obj_advanced"), action: "myModal()", id: "bAdvanced" } ];
CreateButtons(buttons, { entersubmit: true });
CreateButtons(buttons);
%>
</form>
</div> <!-- search -->
<div id="result">

View File

@@ -29,8 +29,6 @@ var ruimte_key_arr = getQParamIntArray("ruimte_keys");
var submitting = getQParamInt("submit", 0) == 1;
if (submitting)
{
protectRequest.validateToken();
FCLTHeader.Generate();
var nrRows = getFParamInt("nrRows", 0);
@@ -188,7 +186,6 @@ else
var buttons = [ {title: L("lcl_add"), icon: "submit.png", action: "alg_add('"+ safe.displayfloat(tot_oppervlak, 2) +"')" },
{title: L("lcl_submit"), icon: "undo.png", action: "alg_submit()" } ];
CreateButtons(buttons);
IFACE.FORM_END();
%>
</form>
</div>

View File

@@ -112,9 +112,9 @@ function alg_add(oppervlak)
if ($("#afdeling_key").val() > 0)
{
var exist = false;
$("#afdbezettingtable tr").each(function(i, value)
$("tr[value]").each(function(i, value)
{
if (this.myData && $("#afdeling_key").val() == this.myData.afd_key)
if ($("#afdeling_key").val() == $(value)[0].myData.afd_key)
exist = true;
});
if (!exist)
@@ -127,17 +127,28 @@ function alg_add(oppervlak)
}
}
function isGoodNumber(str, checkInteger)
{
var anum = /^(-?\d{1,6}[.,]?|-?\d{0,6}[.,]\d{1,2})$/
if (checkInteger)
{
anum = /^(-?\d{1,6}[.,]?)$/
}
return (str.match(anum)&&true);
}
function changeOppervlak(prowIndex)
{
var bereken = true;
if (!isGoodNumber($("#bezopp"+prowIndex).val(), false,false,8,2))
if (!isGoodNumber($("#bezopp"+prowIndex).val(), false))
{
bereken = false;
alert(L("lcl_alg_bezetting_ongeldig"));
$("#bezopp"+prowIndex).select();
$("#bezopp"+prowIndex).focus();
}
if (bereken && (!isGoodNumber($("#totaalopp"+prowIndex).val(), false,false,8,2)))
if (bereken && (!isGoodNumber($("#totaalopp"+prowIndex).val(), false)))
$("#totaalopp"+prowIndex).val($("#bezopp"+prowIndex).val());
if (bereken)
@@ -155,7 +166,7 @@ function changeOppervlak(prowIndex)
function changeBezetting(prowIndex)
{
if (!isGoodNumber($("#bez"+prowIndex).val(), false,false,8,2) || parseFloat($("#bez"+prowIndex).val().replace(',', '.')) > 100)
if (!isGoodNumber($("#bez"+prowIndex).val(), false) || parseFloat($("#bez"+prowIndex).val().replace(',', '.')) > 100)
{
alert(L("lcl_alg_bezetting_ongeldig"));
$("#bez"+prowIndex).select();
@@ -166,7 +177,7 @@ function changeBezetting(prowIndex)
if (!multiRuimte)
{
var oppPerc = parseFloat($("#bez" +prowIndex).val().replace(',', '.'));
if (isGoodNumber($("#totaalopp"+prowIndex).val(), false,false,8,2))
if (isGoodNumber($("#totaalopp"+prowIndex).val(), false))
{
var oppBruto = parseFloat($("#totaalopp"+prowIndex).val().replace(',', '.'));
var oppBezet = num2currEditable( ((oppPerc * oppBruto) / 100) );

View File

@@ -51,7 +51,7 @@ FCLTHeader.Requires({plugins:["suggest","jQuery"], js: ["jQuery-ui.js"]})
</script>
</head>
<body class="modal" id="mod_ruimtefunctie">
<body id="editbody">
<%
var page="alg_edit_ruimtefunctie.asp?srtruimte_lg_key=" + srtruimte_lg_key; // Edit
//if (srtruimte_lg_key == -1)
@@ -59,7 +59,7 @@ FCLTHeader.Requires({plugins:["suggest","jQuery"], js: ["jQuery-ui.js"]})
//else
// var page="alg_show_ruimtefunctie.asp?srtruimte_lg_key=" + srtruimte_lg_key ;
IFRAMER("algrfFrame", page, { title: L("lcl_prs_dienst_frame"),
IFRAMER("prsFrame", page, { title: L("lcl_prs_dienst_frame"),
initHeight: "450px",
FcltClose: "algClose" } );
%>

View File

@@ -6,19 +6,18 @@
File: alg_ruimtefunctie_delete.asp
Description: Verwijderen ruimtefunctie locatie/gebouw relatie
Parameters:
Parameters:
key Strin van ruimtefunctie locatie/gebouw keys (required)
Context: Vanuit show-schermen en of vanuit overzichten
Result: JSON object
Note:
*/
var JSON_Result = true;
DOCTYPE_Disable = 1;
%>
<!--#include file="../Shared/common.inc"-->
<!--#include file="../Shared/json2.js" -->
<%
protectRequest.validateToken();
var autfunction = "WEB_ALGMAN";

View File

@@ -48,7 +48,7 @@ function ruimtefunctie_list(pautfunction, params)
var subject = "<%=L("lcl_estate_ruimte_man_sort")%>" + ' ' + algData.oms;
var url = "alg_ruimtefunctie.asp?srtruimte_lg_key=" + srtruimte_lg_key;
FcltMgr.openModalDetail(url, subject, { width: 650, callback: FcltMgr.reload });
FcltMgr.openModalDetail(url, subject, { width: 700, callback: FcltMgr.reload });
}
function ruimtefunctie_delete(row, isMulti)
@@ -56,15 +56,10 @@ function ruimtefunctie_list(pautfunction, params)
$(row).addClass('dirty');
var srtruimte_lg_key = row.getAttribute("ROWKEY");
if (isMulti || confirm(L("lcl_alg_del_txt_ruimtefunctie")))
{
var data = { key: srtruimte_lg_key
};
<% protectRequest.dataToken("data"); %>
$.post("alg_ruimtefunctie_delete.asp",
data,
{ key: srtruimte_lg_key },
FcltCallbackRefresh,
"json");
}
}
</script>
</head>

View File

@@ -81,7 +81,7 @@ var authparams = alg.checkAutorisation();
{title: L("lcl_menu_alg_ruimte"), action: "doSubmit('R')"},
{title: L("lcl_menu_alg_terreinsector"), action: "doSubmit('T')"}
];
CreateButtons(buttons, { entersubmit: true });
CreateButtons(buttons);
%></div> <!-- search -->
<div id="result">

View File

@@ -48,16 +48,11 @@ oRs.Close();
function dis_delete()
{
if (confirm(L("lcl_alg_del_txt_district")))
{
var data = { key: <%=dis_key%>,
level: "D"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
FcltCallbackClose,
"json");
}
$.post("alg_delete.asp",
{ key: <%=dis_key%>,
level: "D" },
FcltCallbackClose,
"json");
}
</script>
</head>
@@ -81,7 +76,7 @@ oRs.Close();
}
%>
<form name=u2 onSubmit="return false;">
<% BLOCK_START("algInfo", "&nbsp;");
<% BLOCK_START("algInfo", "");
FCLTplaatsselector(-1,
{ regiokey: reg_key,
districtkey: dis_key,

View File

@@ -16,7 +16,6 @@
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<!-- #include file="alg.inc" -->
@@ -33,31 +32,29 @@ var sql = " SELECT * "
+ " FROM alg_gebouw "
+ " WHERE alg_gebouw_key = " + bld_key;
var oRs = Oracle.Execute(sql);
var bld_srtkey = oRs("alg_srtgebouw_key").Value;
var bld_naam = oRs("alg_gebouw_naam").Value;
var bld_code = oRs("alg_gebouw_code").Value;
var bld_descr = oRs("alg_gebouw_omschrijving").Value;
var bld_maak = oRs("alg_gebouw_aanmaak").Value;
var bld_email = oRs("alg_gebouw_email").Value;
var bld_teken = oRs("alg_gebouw_getekend").Value;
var bld_opp = oRs("alg_gebouw_bruto_vloeropp").Value;
var bld_omtrek = oRs("alg_gebouw_omtrek").Value;
var bld_inhoud = oRs("alg_gebouw_inhoud").Value;
var bld_opmerk = oRs("alg_gebouw_opmerking").Value;
var mld_adres = oRs("mld_adres_key").Value;
var prs_kstpl = oRs("prs_kostenplaats_key").Value;
var bld_ordrnr = oRs("alg_gebouw_ordernr").Value;
var bld_dwgx = oRs("alg_gebouw_dwgx").Value;
var bld_dwgy = oRs("alg_gebouw_dwgy").Value;
var bld_x = oRs("alg_gebouw_x").Value;
var bld_y = oRs("alg_gebouw_y").Value;
var bld_bez = oRs("alg_gebouw_bez").Value;
var bld_deleted = oRs("alg_gebouw_verwijder").Value != null;
var dienstniveau = oRs("mld_dienstniveau_key").Value;
var beginuur = oRs("alg_gebouw_beginuur").Value;
var einduur = oRs("alg_gebouw_einduur").Value;
var werkdagen = oRs("alg_gebouw_werkdagen").Value;
var verantw = oRs("prs_perslid_key_verantw").Value;
var bld_srtkey = oRs("alg_srtgebouw_key").value;
var bld_naam = oRs("alg_gebouw_naam").value;
var bld_code = oRs("alg_gebouw_code").value;
var bld_descr = oRs("alg_gebouw_omschrijving").value;
var bld_maak = oRs("alg_gebouw_aanmaak").value;
var bld_teken = oRs("alg_gebouw_getekend").value;
var bld_opp = oRs("alg_gebouw_bruto_vloeropp").value;
var bld_omtrek = oRs("alg_gebouw_omtrek").value;
var bld_inhoud = oRs("alg_gebouw_inhoud").value;
var bld_opmerk = oRs("alg_gebouw_opmerking").value;
var mld_adres = oRs("mld_adres_key").value;
var prs_kstpl = oRs("prs_kostenplaats_key").value;
var bld_ordrnr = oRs("alg_gebouw_ordernr").value;
var bld_dwgx = oRs("alg_gebouw_dwgx").value;
var bld_dwgy = oRs("alg_gebouw_dwgy").value;
var bld_x = oRs("alg_gebouw_x").value;
var bld_y = oRs("alg_gebouw_y").value;
var bld_bez = oRs("alg_gebouw_bez").value;
var bld_deleted = oRs("alg_gebouw_verwijder").value != null;
var dienstniveau = oRs("mld_dienstniveau_key").value;
var beginuur = oRs("alg_gebouw_beginuur").value;
var einduur = oRs("alg_gebouw_einduur").value;
var werkdagen = oRs("alg_gebouw_werkdagen").value;
oRs.Close();
%>
@@ -74,36 +71,18 @@ oRs.Close();
{
if (confirm(L("lcl_alg_del_txt_gebouw")))
{
var data = { key: <%=bld_key%>,
level: "G"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
{ key: <%=bld_key%>,
level: "G" },
FcltCallbackClose,
"json");
}
}
<% if (S("alg_fg_remote_maps") != "" && bld_x && bld_y) { %>
function openMaps(bldKey)
{
fwnd = window.open('../cad/ShowGoogleMap.asp?bld_key=' + bldKey, 'FGShow',
"width=640, height=480, directories=no, location=no, menubar=no,"
+ "resizable=yes, status=no, titlebar=yes, toolbar=no");
fwnd.focus()
return;
}
<% } %>
</script>
</head>
<body id="showbody">
<% var buttons = [];
if (S("alg_fg_remote_maps") != "" && bld_x && bld_y) {
buttons.push({title: L("lcl_maps"), action:"openMaps("+bld_key+")", icon: "map.png" });
}
if (!bld_deleted)
{
if (this_alg.writeman || this_alg.writeuse)
@@ -122,95 +101,87 @@ oRs.Close();
%>
<div id="show">
<form name=u2 onSubmit="return false;">
<% BLOCK_START("algLoc1", "&nbsp;");
<% BLOCK_START("algLoc1", "");
FCLTplaatsselector(-1,
{ gebouwkey: bld_key,
startlevel: 2, //Locatie
eindlevel: 3, // Gebouw
readonly: true
});
sql = "SELECT alg_srtgebouw_key"
+ " , " + lcl.xsqla('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')
+ " FROM alg_srtgebouw"
+ " WHERE alg_srtgebouw_verwijder IS NULL"
+ " ORDER BY alg_srtgebouw_upper"
FCLTselector("bld_srtkey",
sql,
readonly: true });
sql = "SELECT alg_srtgebouw_key, "
+ " "+lcl.xsqla('alg_srtgebouw_omschrijving', 'alg_srtgebouw_key')
+ " FROM alg_srtgebouw "
+ " WHERE alg_srtgebouw_verwijder IS NULL "
+ "ORDER BY alg_srtgebouw_upper "
FCLTselector("bld_srtkey", sql,
{ label: L("lcl_estate_gebouw_srtgebouw"),
initKey: bld_srtkey,
emptyOption: "",
readonly: true
});
readonly: true });
ROFIELDTR("fld", L("lcl_estate_gebouw_man_code"), bld_code, {suppressEmpty:true});
ROFIELDTR("fld", L("lcl_estate_gebouw_man_opmerk"), bld_opmerk, {suppressEmpty:true});
sql = "SELECT prs_kostenplaats_key"
+ " , k.prs_kostenplaats_nr || ' ' || k.prs_kostenplaats_omschrijving"
+ " FROM prs_kostenplaats k"
+ " WHERE k.prs_kostenplaats_module = 'ALG'"
+ " ORDER BY prs_kostenplaats_upper";
FCLTselector("prs_kstpl",
sql,
{ label: L("lcl_prs_dept_kosten"),
initKey: prs_kstpl,
emptyOption: "",
readonly: true
});
sql = "SELECT prs_kostenplaats_key, "
+ " k.prs_kostenplaats_nr || ' ' || k.prs_kostenplaats_omschrijving "
+ " FROM prs_kostenplaats k "
+ " WHERE k.prs_kostenplaats_module = 'ALG' "
+ "ORDER BY prs_kostenplaats_upper ";
FCLTselector("prs_kstpl", sql,
{ label: L("lcl_prs_dept_kosten"),
initKey: prs_kstpl,
emptyOption: "",
readonly: true });
ROFIELDTR("fld", L("lcl_estate_gebouw_ordernr"), bld_ordrnr, {suppressEmpty:true});
if (dienstniveau)
{
sql = "SELECT mld_dienstniveau_key"
+ " , " + lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau"
+ " WHERE mld_dienstniveau_key = " + dienstniveau;
oRs = Oracle.Execute(sql);
ROFIELDTR("fld", L("lcl_mld_dienst_niveau"), oRs("mld_dienstniveau_omschr").value);
oRs.Close();
sql = "SELECT mld_dienstniveau_key, "
+ lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau "
+ " WHERE mld_dienstniveau_key = " + dienstniveau;
oRs = Oracle.Execute(sql);
ROFIELDTR("fld", L("lcl_mld_dienst_niveau"), oRs("mld_dienstniveau_omschr").value);
oRs.Close();
}
FCLTpersoonselector("verantw",
"sgVerantw",
{ perslidKey: verantw,
label: L("lcl_alg_verantw"),
readonly: true,
suppressEmpty: true,
moreinfo: this_alg.readman
});
AFIELDTR('fldmailto details', L("lcl_alg_gebouw_email"), "mailto:" + bld_email, bld_email, { suppressEmpty: true });
BLOCK_END();
BLOCK_START("algLoc2", "&nbsp;");
var calcopp = alg.calc_algm2(bld_key, onrgoedlvl);
ROFIELDTR("fld", L("lcl_estate_ruimte_bruto_vloeropp") + L("lcl_estate_calc_vloeropp"), calcopp.oppbruto, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt1") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt1, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt2") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt2, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_gebouw_man_bruto_vloeropp"), bld_opp, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_gebouw_man_omtrek"), bld_omtrek, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_gebouw_man_inhoud"), bld_inhoud, {suppressEmpty: true});
sql = "SELECT mld_adres_key"
+ " , mld_adres_naam"
+ " FROM mld_v_afleveradres"
+ " ORDER BY mld_adres_naam";
FCLTselector("del_address",
sql,
{ label: L("lcl_delivery_address"),
initKey: mld_adres,
emptyOption: "",
readonly: true
});
BLOCK_START("algLoc2", "");
ROFIELDTR("fld", L("lcl_estate_gebouw_man_bruto_vloeropp"), bld_opp, {suppressEmpty:true});
ROFIELDTR("fld", L("lcl_estate_gebouw_man_omtrek"), bld_omtrek, {suppressEmpty:true});
ROFIELDTR("fld", L("lcl_estate_gebouw_man_inhoud"), bld_inhoud, {suppressEmpty:true});
sql ="SELECT mld_adres_key, "
+ " mld_adres_naam "
+ " FROM mld_v_afleveradres "
+ "ORDER BY mld_adres_naam ";
FCLTselector("del_address", sql,
{ label: L("lcl_delivery_address"),
initKey: mld_adres,
emptyOption: "",
readonly: true
}
);
ROFIELDTR("fld", L("lcl_geoxcoord"), bld_x, {suppressEmpty:true});
ROFIELDTR("fld", L("lcl_geoycoord"), bld_y, {suppressEmpty:true});
ROCHECKBOXTR("fldalgbez", L("lcl_estate_gebouw_bez"), bld_bez==1);
ROFIELDTR("fld", L("lcl_estate_gebouw_beginuur"), toTimeString(beginuur), {suppressEmpty:true} );
ROFIELDTR("fld", L("lcl_estate_gebouw_einduur"), toTimeString(einduur), {suppressEmpty:true} );
if (beginuur >= 0 && einduur > 0)
{
var dd = new Date();
var hh = Math.floor(beginuur);
var mm = (beginuur*60) % 60;
dd.setHours(hh,mm,0,0);
ROFIELDTR("fld", L("lcl_estate_gebouw_beginuur"), toTimeString(dd), {suppressEmpty:true});
var hh = Math.floor(einduur);
var mm = (beginuur*60) % 60;
dd.setHours(hh,mm,0,0);
ROFIELDTR("fld", L("lcl_estate_gebouw_einduur"), toTimeString(dd), {suppressEmpty:true});
}
ROCHECKBOXTR("fldalgwerk", L("lcl_estate_gebouw_werkdagen"), werkdagen==1);
BLOCK_END();
generateFlexKenmerkBlock ({ onrgoed_key : bld_key,
onrgoed_niveau : onrgoedlvl,
reado : true,
flexcolumns : S("alg_flexcolumns"),
this_alg : this_alg
});
onrgoed_niveau : onrgoedlvl,
reado : true,
flexcolumns : S("alg_flexcolumns"),
this_alg : this_alg });
%>
</form>
</div>

View File

@@ -60,7 +60,7 @@ oRs.Close();
function alg_showphotos()
{
FcltMgr.openDetail("appl/shared/show_foto.asp?urole=bo&loc_key=<%=loc_key%>", "<%=L("lcl_photos")%>");
FcltMgr.openDetail("appl/shared/show_foto.asp?urole=bo&root_path=<%=custpath%>/location_images/&loc_key=<%=loc_key%>", "<%=L("lcl_photos")%>");
}
function loc_change()
@@ -71,42 +71,24 @@ oRs.Close();
function loc_delete()
{
if (confirm(L("lcl_alg_del_txt_locatie")))
{
var data = { key: <%=loc_key%>,
level: "L"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
FcltCallbackClose,
"json");
if (confirm(L("lcl_alg_del_txt_locatie")))
{
$.post("alg_delete.asp",
{ key: <%=loc_key%>,
level: "L" },
FcltCallbackClose,
"json");
}
}
<% if (S("alg_fg_remote_maps") != "" && loc_x && loc_y) { %>
function openMaps(locKey)
{
fwnd = window.open('../cad/ShowGoogleMap.asp?loc_key=' + locKey, 'FGShow',
"width=640, height=480, directories=no, location=no, menubar=no,"
+ "resizable=yes, status=no, titlebar=yes, toolbar=no");
fwnd.focus()
return;
}
<% } %>
</script>
</head>
<body id="showbody">
<% var buttons = [];
buttons.push({title: L("lcl_photos"), icon: "camera.png", action: "alg_showphotos()"});
if (S("alg_fg_remote_maps") != "" && loc_x && loc_y) {
buttons.push({title: L("lcl_maps"), action:"openMaps("+loc_key+")", icon: "map.png" });
}
if (!loc_deleted)
{
if (this_alg.writeman || this_alg.writeuse)
if (this_alg.writeman || this_alg.writeman)
buttons.push({title: L("lcl_change"), action: "loc_change()", icon: "wijzigen.png"});
if (this_alg.writeman) // ALGMAN nodig
buttons.push({title: L("lcl_delete"), action: "loc_delete()", icon: "delete.png"});
@@ -121,7 +103,7 @@ oRs.Close();
}
%>
<form name=u2 onSubmit="return false;">
<% BLOCK_START("algLoc1", "&nbsp;");
<% BLOCK_START("algLoc1", "");
FCLTplaatsselector(-1,
{ locatiekey: loc_key,
startlevel: 1, //District
@@ -147,7 +129,7 @@ oRs.Close();
ROFIELDTR("fld", L("lcl_geoycoord"), loc_y, {suppressEmpty: true});
BLOCK_END();
BLOCK_START("algLoc2", "&nbsp;");
BLOCK_START("algLoc2", "");
ROFIELDTR("fld", L("lcl_prs_address_post_adres"), pst_adres, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_prs_address_post_postcode"), pst_postc, {suppressEmpty: true});
@@ -155,7 +137,7 @@ oRs.Close();
ROFIELDTR("fld", L("lcl_prs_address_post_land"), pst_land, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_locatie_man_verantw"), loc_vw, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_locatie_man_verantw_tel"), loc_vwtel, {suppressEmpty: true});
AFIELDTR('fldmailto details', L("lcl_noti_email"), "mailto:" + loc_mail, loc_mail, { suppressEmpty: true });
ROFIELDTR("fld", L("lcl_noti_email"), loc_mail, {suppressEmpty: true});
BLOCK_END();

View File

@@ -18,23 +18,22 @@
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<!-- #include file="../API2/api2.inc" -->
<!-- #include file="../API2/model_regions.inc" -->
<!-- #include file="alg.inc" -->
<%
FCLTHeader.Requires({plugins:["jQuery"], js: []})
var regio_key = getQParamInt("regio_key");
var onrgoedlvl = "RG";
var this_alg = alg.func_enabled(regio_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.readman || this_alg.readuse);
var regio_params = { filter: { id: regio_key
, show_deleted: true // Ook indien verwijderd ophalen.
}};
var regio_array = model_regions.REST_GET(regio_params); // Roep de API2 GET aan
var regio_data = (regio_array[0] ? regio_array[0] : {id: -1}); // GET kan meerdere records opleveren, maar we verwachten hier maar 1.
var this_alg = regio_params.func_enabled; // regio_params bevat nu ook waarden die in API2 zijn bepaald.
var regio_exists = (regio_array.length ? true : false);
var regio_deleted = regio_exists && !!regio_data.deleted;
var sql = "SELECT *"
+ " FROM alg_regio"
+ " WHERE alg_regio_key = " + regio_key;
var oRs = Oracle.Execute(sql);
var reg_deleted = oRs("alg_regio_verwijder").value != null;
oRs.Close();
%>
<html>
@@ -44,19 +43,18 @@ var regio_deleted = regio_exists && !!regio_data.deleted;
function reg_change()
{
if (FcltMgr.startEdit(window))
window.location.href = "alg_edit_regio.asp?regio_key=<%=regio_data.id%>&embedded=1"
window.location.href = "alg_edit_regio.asp?regio_key=<%=regio_key%>&embedded=1"
}
function reg_delete()
{
if (confirm(L("lcl_alg_del_txt_regio")))
{
var data = { action: "D" };
<% protectRequest.dataToken("data"); %>
$.post($("form[name=u2]")[0].action,
data,
FcltCallbackClose,
"json");
$.post("alg_delete.asp",
{ key: <%=regio_key%>,
level: "RE" },
FcltCallbackClose,
"json");
}
}
</script>
@@ -64,9 +62,9 @@ var regio_deleted = regio_exists && !!regio_data.deleted;
<body id="showbody">
<% var buttons = [];
if (!regio_deleted)
if (!reg_deleted)
{
if (this_alg.writeman || this_alg.writeuse)
if (this_alg.writeman || this_alg.writeman)
buttons.push({title: L("lcl_change"), action:"reg_change()", icon: "wijzigen.png" });
if (this_alg.writeman) // ALGMAN nodig
buttons.push({title: L("lcl_delete"), action:"reg_delete()", icon: "delete.png" });
@@ -75,17 +73,15 @@ var regio_deleted = regio_exists && !!regio_data.deleted;
IFRAMER_HEADER(L("lcl_alg_regio_frame"), buttons);
%>
<div id="show">
<% if (regio_deleted)
<% if (reg_deleted == 1)
{
%> <div class="alg_deleted"><%=L("lcl_record_is_deleted")%></div><%
}
%>
<form name=u2
action="alg_edit_regio_save.asp?regio_key=<%=regio_data.id%>"
onSubmit="return false">
<% BLOCK_START("algInfo", "&nbsp;");
<form name=u2 onSubmit="return false;">
<% BLOCK_START("algInfo", "");
FCLTplaatsselector(-1,
{ regiokey: regio_data.id,
{ regiokey: regio_key,
startlevel: 0, // Regio
eindlevel: 0, // Regio
readonly: true });

View File

@@ -16,59 +16,92 @@
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<!-- #include file="../API2/api2.inc" -->
<!-- #include file="../API2/model_rooms.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="alg.inc" -->
<%
FCLTHeader.Requires({ plugins:["jQuery"],
js: [] })
var room_key = getQParamInt("room_key");
var room_params = { filter: { id: room_key
, scope: "fe"
, show_deleted: true // Ook indien verwijderd ophalen.
},
include: ["cadcontours"]
};
var rooms = new model_rooms(room_key, room_params);
var room_data = rooms.data
var this_alg = room_params.func_enabled; // room_params bevat nu ook waarden die in API2 zijn bepaald.
var room_deleted = !!room_data.deleted;
if (!room_data.cadcontours.length)
room_data.cadcontours = [{}];
var room_key = getQParamInt("room_key");
var onrgoedlvl = "R";
var this_alg = alg.func_enabled(room_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.readman || this_alg.readuse);
// Voorkom ellende met alg_ruimte_key ambigue gedefinieerd
var sqlSync = "SELECT sync.alg_ruimte_key cad_ar_key"
+ " , c.cad_imp_contour_opp"
+ " , c.cad_imp_contour_opp_alt1"
+ " , c.cad_imp_contour_opp_alt2"
+ " FROM " + S("fg_syncruimteview") + " sync"
+ " , cad_imp_contour c"
+ " , cad_tekening t"
+ " , alg_ruimte ar "
+ " WHERE sync.cadlabel = c.cad_imp_contour_nr"
+ " AND t.cad_tekening_key = c.cad_tekening_key"
+ " AND t.alg_verdieping_key = sync.alg_verdieping_key"
+ " AND sync.alg_ruimte_key = ar.alg_ruimte_key";
var sql = "SELECT g.alg_ruimte_key"
+ " , g.alg_ruimte_nr"
+ " , g.alg_ruimte_omschrijving"
+ " , g.alg_srtruimte_key"
+ " , g.alg_ruimte_bruto_vloeropp"
+ " , g.alg_ruimte_opp_alt1"
+ " , g.alg_ruimte_opp_alt2"
+ " , g.alg_ruimte_omtrek"
+ " , g.alg_ruimte_inhoud"
+ " , g.alg_ruimte_opmerking"
+ " , g.alg_ruimte_verwijder"
+ " , sync.cad_imp_contour_opp"
+ " , sync.cad_imp_contour_opp_alt1"
+ " , sync.cad_imp_contour_opp_alt2"
+ " , mld_dienstniveau_key"
+ " FROM alg_ruimte g"
+ " , (" + sqlSync + ") sync"
+ " WHERE sync.cad_ar_key (+)= g.alg_ruimte_key"
+ " AND alg_ruimte_key = " + room_key;
var oRs = Oracle.Execute(sql);
var room_srt = oRs("alg_srtruimte_key").value;
var room_nr = oRs("alg_ruimte_nr").value;
var room_oms = oRs("alg_ruimte_omschrijving").value;
var room_opp = oRs("alg_ruimte_bruto_vloeropp").value;
var room_omt = oRs("alg_ruimte_omtrek").value;
var room_inh = oRs("alg_ruimte_inhoud").value;
var room_opm = oRs("alg_ruimte_opmerking").value;
var room_oppa1 = oRs("alg_ruimte_opp_alt1").value;
var room_oppa2 = oRs("alg_ruimte_opp_alt2").value;
var room_deleted = oRs("alg_ruimte_verwijder").value != null;
var contour_opp = oRs("cad_imp_contour_opp").value;
var contour_opp1 = oRs("cad_imp_contour_opp_alt1").value;
var contour_opp2 = oRs("cad_imp_contour_opp_alt2").value;
var dienstniveau = oRs("mld_dienstniveau_key").value;
oRs.Close();
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<script type="text/javascript" >
function room_change()
{
if (FcltMgr.startEdit(window))
window.location.href = "alg_edit_ruimte.asp?room_key=<%=room_key%>"
}
function room_delete()
{
if (confirm(L("lcl_alg_del_txt_ruimte")))
{
var data = { room_action: "D" };
<% protectRequest.dataToken("data"); %>
$.post($("form[name=u2]")[0].action,
data,
FcltCallbackClose,
"json");
}
}
function openFG()
{
var url = '../cad/ShowRoom.asp?rKey=' + <%=room_key%>;
FcltMgr.openModalDetail(url, { titel: L("lcl_prs_wp_fgraph" ) + ": <%=safe.jsstring(room_data.name) %>"});
}
function room_change()
{
if (FcltMgr.startEdit(window))
window.location.href = "alg_edit_ruimte.asp?room_key=<%=room_key%>"
}
function room_delete()
{
if (confirm(L("lcl_alg_del_txt_ruimte")))
{
$.post("alg_delete.asp",
{ key: <%=room_key%>,
level: "R" },
FcltCallbackClose,
"json");
}
}
function openFG()
{
var url = '../cad/ShowRoom.asp?rKey=' + <%=room_key%>;
FcltMgr.openModalDetail(url, { titel: L("lcl_prs_wp_fgraph" ) + ": <%=safe.jsstring(room_nr) %>"});
}
</script>
</head>
@@ -82,78 +115,84 @@ if (!room_data.cadcontours.length)
var xfunc = user.func_enabled2("CAD", { isOptional: true });
if (xfunc && xfunc.canRead("WEB_CADUSE"))
buttons.push({title: L("lcl_prs_wp_fgraph"), action:"openFG()", icon: "zone.png" });
if (this_alg.writeman) // RUIMAN nodig
if (this_alg.writeman) // ALGMAN nodig
buttons.push({title: L("lcl_delete"), action:"room_delete()", icon: "delete.png" });
}
IFRAMER_HEADER(L("lcl_alg_ruimte_frame"), buttons);
%>
<div id="show">
<%
if (room_deleted)
<% if (room_deleted)
{
%> <div class="alg_deleted"><%=L("lcl_record_is_deleted")%></div><%
}
%>
<form name=u2
action="alg_edit_ruimte_save.asp?room_key=<%=room_data.id%>"
onSubmit="return false">
<form name=u2 onSubmit="return false;">
<%
BLOCK_START("algLoc1", "&nbsp;");
BLOCK_START("algLoc1", "");
FCLTplaatsselector(-1, {
ruimtekey: room_key,
startlevel: 2, //Locatie
eindlevel: 4, //Verdieping
moreinfo: true,
readonly: true });
FCLTplaatsselector(-1, {
ruimtekey: room_key,
startlevel: 2, //Locatie
eindlevel: 4, //Verdieping
moreinfo: true,
readonly: true });
var params = { infoPointer: { Url: "appl/shared/status_info.asp?room_key=" + room_key + "&urole=bo",
Title: L("lcl_status_details") + " " + room_data.name
}
}
var params = { infoPointer: { Url: "appl/shared/status_info.asp?room_key=" + room_key + "&urole=bo",
Title: L("lcl_status_details") + " " + room_nr
}
}
ROFIELDTR("fldshort", L("lcl_estate_ruimte_man_nr"), room_data.name, params);
ROFIELDTR("fld", L("lcl_estate_ruimte_man_descr"), room_data.description);
ROFIELDTR("fld", L("lcl_estate_ruimte_man_sort"), (room_data.roomtype ? room_data.roomtype.name : ""), {suppressEmpty:true});
ROFIELDTR("fld", L("lcl_mld_dienst_niveau"), (room_data.servicelevel ? room_data.servicelevel.name : ""), {suppressEmpty:true});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_man_nr"), room_nr, params);
ROFIELDTR("fld", L("lcl_estate_ruimte_man_descr"), room_oms);
if (room_srt)
{
sql = "SELECT alg_srtruimte_key, "
+ lcl.xsqla("alg_srtruimte_omschrijving", "alg_srtruimte_key")
+ " FROM alg_srtruimte "
+ " WHERE alg_srtruimte_key="+room_srt ;
oRs = Oracle.Execute(sql);
ROFIELDTR("fld", L("lcl_estate_ruimte_man_sort"), oRs("alg_srtruimte_omschrijving").value);
oRs.Close();
}
if (dienstniveau)
{
sql = "SELECT mld_dienstniveau_key, "
+ lcl.xsqla("mld_dienstniveau_omschr", "mld_dienstniveau_key")
+ " FROM mld_dienstniveau "
+ " WHERE mld_dienstniveau_key = " + dienstniveau;
oRs = Oracle.Execute(sql);
ROFIELDTR("fld", L("lcl_mld_dienst_niveau"), oRs("mld_dienstniveau_omschr").value);
oRs.Close();
}
BLOCK_END();
BLOCK_START("algLoc2", "&nbsp;");
BLOCK_START("algLoc2", "");
ROFIELDTR("fldshort", L("lcl_estate_ruimte_bruto_vloeropp"), room_data.grossarea, {suppressEmpty:true});
if (room_data.grossarea != room_data.cadcontours[0].cadarea)
ROFIELDTR("fldshort", L("lcl_estate_ruimte_getekendopp"), room_data.cadcontours[0].cadarea, {suppressEmpty:true});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_opp_alt1"), room_data.area1, {suppressEmpty:true});
if (room_data.area1 != room_data.cadcontours[0].cadalt1)
ROFIELDTR("fldshort", L("lcl_fg_tek_room_opp_g_alt1"), room_data.cadcontours[0].cadalt1, {suppressEmpty:true});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_opp_alt2"), room_data.area2, {suppressEmpty:true});
if (room_data.area2 != room_data.cadcontours[0].cadalt2)
ROFIELDTR("fldshort", L("lcl_fg_tek_room_opp_g_alt2"), room_data.cadcontours[0].cadalt2, {suppressEmpty:true});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_man_omtrek"), room_data.perimeter, {suppressEmpty:true});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_man_inhoud"), room_data.volume, {suppressEmpty:true});
ROFIELDTR("fld", L("lcl_estate_ruimte_man_opmerk"), room_data.remark, {suppressEmpty:true});
ROFIELDTR("fld", L("lcl_estate_gebouw_beginuur"), toTimeString(room_data.openfrom), {suppressEmpty:true});
ROFIELDTR("fld", L("lcl_estate_gebouw_einduur"), toTimeString(room_data.opento), {suppressEmpty:true});
switch (room_data.workdays)
{
case 0: werkdagentekst = L("lcl_No"); break;
case 1: werkdagentekst = L("lcl_Yes"); break;
default: werkdagentekst = L("lcl_alg_ruimte_volgens_gebouw");
}
ROFIELDTR("fld", L("lcl_estate_gebouw_werkdagen"), werkdagentekst);
ROFIELDTR("fldshort", L("lcl_estate_ruimte_bruto_vloeropp"), room_opp, {suppressEmpty:true});
if (room_opp != contour_opp)
ROFIELDTR("fldshort", L("lcl_estate_ruimte_getekendopp"), contour_opp, {suppressEmpty:true});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_opp_alt1"), room_oppa1, {suppressEmpty:true});
if (room_oppa1 != contour_opp1)
ROFIELDTR("fldshort", L("lcl_fg_tek_room_opp_g_alt1"), contour_opp1, {suppressEmpty:true});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_opp_alt2"), room_oppa2, {suppressEmpty:true});
if (room_oppa2 != contour_opp2)
ROFIELDTR("fldshort", L("lcl_fg_tek_room_opp_g_alt2"), contour_opp2, {suppressEmpty:true});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_man_omtrek"), room_omt, {suppressEmpty:true});
ROFIELDTR("fldshort", L("lcl_estate_ruimte_man_inhoud"), room_inh, {suppressEmpty:true});
ROFIELDTR("fld", L("lcl_estate_ruimte_man_opmerk"), room_opm, {suppressEmpty:true});
BLOCK_END();
generateFlexKenmerkBlock ({
onrgoed_key : room_key,
onrgoed_niveau : rooms.defaults.onrgoedlvl,
reado : true,
flexcolumns : S("alg_flexcolumns"),
this_alg : this_alg
});
onrgoed_key : room_key,
onrgoed_niveau : onrgoedlvl,
reado : true,
flexcolumns : S("alg_flexcolumns"),
this_alg : this_alg
});
%>
</form>
</div>

View File

@@ -25,7 +25,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"],
var ter_key = getQParamInt("ter_key");
var onrgoedlvl = "T";
var this_alg = alg.func_enabled(ter_key, onrgoedlvl);
var this_alg = alg.func_enabled(loc_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.readman || this_alg.readuse);
var sql = "SELECT ts.alg_locatie_key"
@@ -89,15 +89,12 @@ oRs.Close();
{
if (confirm(L("lcl_alg_del_txt_terreinsector")))
{
var data = { key: <%=ter_key%>,
level: "T"
};
<% protectRequest.dataToken("data"); %>
var ter_key = <%=ter_key%>
$.post("alg_delete.asp",
data,
FcltCallbackClose,
"json");
var ter_key = <%=ter_key%>
$.post("alg_delete.asp",
{ key: <%=ter_key%>,
level: "T" },
FcltCallbackClose,
"json");
}
}
</script>
@@ -131,14 +128,14 @@ oRs.Close();
readonly: true
});
ROFIELDTR("fld", L("lcl_estate_terreinsector_man_sort"), ter_sroms, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_terreinsector_man_sort"), ter_sroms);
ROFIELDTR("fld", L("lcl_estate_terreinsector_man_code"), ter_code);
ROFIELDTR("fld", L("lcl_estate_terreinsector_man_name"), ter_naam);
ROFIELDTR("fld", L("lcl_prs_dept_kosten"), prs_kstpl, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_prs_dept_kosten"), prs_kstpl);
ROFIELDTR("fld", L("lcl_dep_name_level2"), prs_afd);
ROFIELDTR("fld", L("lcl_estate_terreinsector_ordernr"), ter_ordnr, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_terreinsector_man_oppervlak"), ter_opp, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_terreinsector_man_omtrek"), ter_omt, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_terreinsector_ordernr"), ter_ordnr);
ROFIELDTR("fld", L("lcl_estate_terreinsector_man_oppervlak"), ter_opp);
ROFIELDTR("fld", L("lcl_estate_terreinsector_man_omtrek"), ter_omt);
BLOCK_END();

View File

@@ -54,12 +54,9 @@ oRs.Close();
{
if (confirm(L("lcl_alg_del_txt_verdieping")))
{
var data = { key: <%=flr_key%>,
level: "V"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
{ key: <%=flr_key%>,
level: "V" },
FcltCallbackClose,
"json");
}
@@ -86,7 +83,7 @@ oRs.Close();
}
%>
<form name=u2 onSubmit="return false;">
<% BLOCK_START("algLoc1", "&nbsp;");
<% BLOCK_START("algLoc1", "");
FCLTplaatsselector(-1, {
verdiepingkey: flr_key,
startlevel: 2, //locatie
@@ -104,14 +101,7 @@ oRs.Close();
oRs = Oracle.Execute(sql);
ROFIELDTR("fld", L("lcl_mld_dienst_niveau"), oRs("mld_dienstniveau_omschr").value);
oRs.Close();
}
BLOCK_END();
BLOCK_START("algLoc2", "&nbsp;");
var calcopp = alg.calc_algm2(flr_key, onrgoedlvl);
ROFIELDTR("fld", L("lcl_estate_ruimte_bruto_vloeropp") + L("lcl_estate_calc_vloeropp"), calcopp.oppbruto, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt1") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt1, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_estate_ruimte_opp_alt2") + L("lcl_estate_calc_vloeropp"), calcopp.oppalt2, {suppressEmpty: true});
}
BLOCK_END();
generateFlexKenmerkBlock ({

View File

@@ -40,6 +40,7 @@ var wp_opp = oRs("prs_werkplek_opp").value;
var wp_vstopp = oRs("prs_werkplek_vastopp").value;
var wp_virt = oRs("prs_werkplek_virtueel").value;
var room_key = oRs("prs_alg_ruimte_key").value;
var wp_deleted = oRs("prs_werkplek_verwijder").value != null;
var wp_type = oRs("PRS_WERKPLEK_TYPE").value;
oRs.Close();
@@ -59,30 +60,33 @@ var wp_typ_str = (wp_type == 1 ? L("lcl_wptype_1") : L("lcl_wptype_0"));
{
var wp_key = <%=wp_key%>;
if (confirm(L("lcl_alg_del_txt_werkplek")))
{
var data = { key: <%=wp_key%>,
level: "W"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
FcltCallbackClose,
"json");
}
$.post("alg_delete.asp",
{ key: <%=wp_key%>,
level: "W" },
FcltCallbackClose,
"json");
}
</script>
</head>
<body id="showbody">
<% var buttons = [];
if (alg.canWriteRuimte(room_key, authparams.rmALGwritelevel)) // ALGUSE schrijfrechten nodig
if (!wp_deleted)
{
var buttons = [ {title: L("lcl_change"), action:"wp_change()", icon: "wijzigen.png" },
{title: L("lcl_delete"), action:"wp_delete()", icon: "delete.png" } ];
if (alg.canWriteRuimte(room_key, authparams.uALGwritelevel)) // ALGUSE schrijfrechten nodig
{
var buttons = [ {title: L("lcl_change"), action:"wp_change()", icon: "wijzigen.png" },
{title: L("lcl_delete"), action:"wp_delete()", icon: "delete.png" } ];
}
}
IFRAMER_HEADER(L("lcl_alg_wp_frame"), buttons);
%>
<div id="show">
<% if (wp_deleted == 1)
{
%> <div class="prs_deleted"><%=L("lcl_record_is_deleted")%></div><%
}
%>
<form name=u2 onSubmit="return false;">
<% BLOCK_START("algInfo", "");
FCLTplaatsselector(authparams.ALGreadlevel,
@@ -107,9 +111,12 @@ var wp_typ_str = (wp_type == 1 ? L("lcl_wptype_1") : L("lcl_wptype_0"));
</td>
</tr>
<% ROFIELDTR("fld", L("lcl_estate_wp_area"), wp_opp, {suppressEmpty:true});
if (wp_virt==1)
CHECKBOXTR(L("lcl_estate_wp_virt"), "fldalgbez", "wp_virt", wp_virt, { suppressEmpty:true, html: " disabled" });
ROFIELDTR("wp_type", L("lcl_wptype"), wp_typ_str);
%>
<tr>
<td class="label"><label><%=L("lcl_estate_wp_virt")%>:</label></td>
<td><input class="fldalgbez" type="checkbox" id="wp_virt" name="wp_virt" value="<%=wp_virt%>" <%= wp_virt==1 ? " checked " : "" %>disabled></td>
</tr>
<% ROFIELDTR("wp_type", L("lcl_wptype"), wp_typ_str);
%>
</table>
<% BLOCK_END();

View File

@@ -1,335 +0,0 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: alg_srtruimte.asp
Description: Wijzigen van srtruimte gegevens
Parameters:
Context:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/disciplineselector.inc" -->
<!-- #include file="../Shared/stdmeldingselector.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<%
FCLTHeader.Requires({js: ["jquery-ui.js"]});
var srtruimte_key = getQParamInt("alg_srtruimte_key", -1); // default is nieuwe
var mode = getQParam("mode", "show");
if (srtruimte_key == -1 && mode == "show")
mode = "new";
var authparams = user.checkAutorisation("WEB_ALGMSU");
var srtr_info = {};
if (srtruimte_key > 0)
{ // bestaande ruimtesoort
var sql = "SELECT r.alg_srtruimte_key"
+ " , r.alg_srtruimte_omschrijving"
+ " , r.alg_srtruimte_prijs"
+ " , r.alg_srtruimte_prijs2"
+ " , r.alg_srtruimte_prijs3"
+ " , r.alg_srtruimte_prijs4"
+ " , r.alg_srtruimte_prijs5"
+ " , r.alg_srtruimte_code"
+ " , r.prs_bevat_werkplek"
+ " , r.prs_verhuurbaar"
+ " , r.alg_srtruimte_t_uitvoertijd.tijdsduur uitvoertijd_t"
+ " , r.alg_srtruimte_t_uitvoertijd.eenheid uitvoertijd_e"
+ " , r.alg_srtruimte_verwijder"
+ " FROM alg_srtruimte r"
+ " WHERE alg_srtruimte_key = " + srtruimte_key;
oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
var srtr_info = { alg_srtruimte_omschrijving: oRs("alg_srtruimte_omschrijving").Value,
alg_srtruimte_prijs: oRs("alg_srtruimte_prijs").Value,
alg_srtruimte_prijs2: oRs("alg_srtruimte_prijs2").Value,
alg_srtruimte_prijs3: oRs("alg_srtruimte_prijs3").Value,
alg_srtruimte_prijs4: oRs("alg_srtruimte_prijs4").Value,
alg_srtruimte_prijs5: oRs("alg_srtruimte_prijs5").Value,
alg_srtruimte_code: oRs("alg_srtruimte_code").Value,
prs_bevat_werkplek: oRs("prs_bevat_werkplek").Value,
prs_verhuurbaar: oRs("prs_verhuurbaar").Value,
tijd_uitvoertijd: oRs("uitvoertijd_t").Value,
eenh_uitvoertijd: oRs("uitvoertijd_e").Value
};
var srtruimte_deleted = oRs("alg_srtruimte_verwijder").value != null;
}
oRs.close();
}
else
{ // nieuwe ruimtesoort
var srtr_info = { alg_srtruimte_omschrijving: "",
alg_srtruimte_code: "",
tijd_uitvoertijd: null,
eenh_uitvoertijd: null
};
}
%>
<html>
<head>
<%
FCLTHeader.Generate();
if (mode == "save")
{
var fields = [ { dbs: "alg_srtruimte_omschrijving", typ: "varchar", frm: "omschrijving" },
{ dbs: "alg_srtruimte_prijs", typ: "float", frm: "prijs" },
{ dbs: "alg_srtruimte_prijs2", typ: "float", frm: "prijs2" },
{ dbs: "alg_srtruimte_prijs3", typ: "float", frm: "prijs3" },
{ dbs: "alg_srtruimte_prijs4", typ: "float", frm: "prijs4" },
{ dbs: "alg_srtruimte_prijs5", typ: "float", frm: "prijs5" },
{ dbs: "alg_srtruimte_code", typ: "varchar", frm: "code" },
{ dbs: "prs_bevat_werkplek", typ: "check", frm: "bevatwerkplek" },
{ dbs: "prs_verhuurbaar", typ: "check", frm: "verhuurbaar" }
];
// Checken of het eenheden selectveld met dagen/uren bij "Uitvoertijd" niet readonly was en wel is meegegeven.
// Als dit eenheden selectieveld readonly was dan is er geen waarde voor uitvoertijd ingevuld en moeten beide waarden null worden.
fields = shared.add_time_field(fields, "alg_srtruimte_t_uitvoertijd", "uitvoertijd", "dayshours_urg");
// Update, delete of insert uitvoeren.
if (srtruimte_key > 0)
{
var sql = buildUpdate("alg_srtruimte", fields)
+ " alg_srtruimte_key = " + srtruimte_key;
var err = Oracle.Execute(sql, true);
}
else
{
fields.push( { dbs: "alg_srtruimte_key", typ: "key", seq: "alg_s_alg_srtruimte_key" } );
var algIns = buildInsert("alg_srtruimte", fields);
var alg_srtruimte_key = algIns.sequences["alg_srtruimte_key"];
var err = Oracle.Execute(algIns.sql, true);
srtruimte_key = alg_srtruimte_key;
}
if (err.friendlyMsg)
{
%>
<script>
alert("<%=safe.jsstring(err.friendlyMsg)%>");
</script>
<%
}
else
{
%>
<script>
$(document).ready(function () {parent.window.location.href="alg_srtruimte.asp?mode=show&alg_srtruimte_key=<%=srtruimte_key%>";} );
</script>
<%
}
Response.End;
}
else if (srtruimte_key > 0 && mode == "delete")
{
var sql = "UPDATE alg_srtruimte"
+ " SET alg_srtruimte_verwijder = SYSDATE"
+ " WHERE alg_srtruimte_verwijder IS NULL"
+ " AND alg_srtruimte_key = " + srtruimte_key;
var err = Oracle.Execute(sql, true);
%>
<script>
$(document).ready(function () {
FcltMgr.closeDetail(window, { alg_srtruimte_key: <%=srtruimte_key%>,
warning: "<%=safe.jsstring(err.friendlyMsg)%>",
keepForm: <%=err.friendlyMsg? "true" : "false"%>
});
} );
</script>
<%
Response.End;
}
%>
<script type="text/javascript" >
function alg_submit()
{
$("#verhuurbaar").prop("disabled", false); // Weer enabled zodat waarde ook gesubmit wordt.
if (!validateForm("u2"))
return false;
document.forms.u2.submit();
}
function alg_edit()
{
window.location.href = "alg_srtruimte.asp?mode=edit&alg_srtruimte_key=<%=srtruimte_key%>";
}
function alg_delete()
{
if (confirm("<%=safe.jsstring(L("lcl_R_U_sure"))%>"))
window.location.href = "alg_srtruimte.asp?mode=delete&alg_srtruimte_key=<%=srtruimte_key%>";
}
function alg_cancel()
{
if (<%=srtruimte_key%> > 0)
{
window.location.href = "alg_srtruimte.asp?mode=show&alg_srtruimte_key=<%=srtruimte_key%>";
}
else
{
FcltMgr.closeDetail(window, { cancel: true });
}
}
function alg_close(params)
{
<% if (srtruimte_key == -1)
{
%>
if (params.cancel)
{
FcltMgr.closeDetail(window, params);
return true;
}
<% }
else
{ // Bestaand ruimtesoort bewerkt, switch naar show-mode
%>
if (params.close)
{
FcltMgr.closeDetail(window, { close: true})
}
<% }
%>
if (!params.keepForm)
window.location.href = "alg_srtruimte.asp?mode=show&alg_srtruimte_key=" + params.srtruimte_key;
}
function onChangeBevatWerkplek()
{
// Als bevat_werkplek is aangevinkt, moet verhuurbaar ook aangevinkt worden (constraint ALG_C_PRS_WERKPLEK_VERHUURBAAR)
if ($("#bevatwerkplek").is(":checked"))
{
$("#verhuurbaar").prop("checked", "checked");
$("#verhuurbaar").prop("disabled", true);
}
else
{
$("#verhuurbaar").prop("disabled", false);
}
}
function onChangeUitvoertijd()
{
if (isNaN(parseFloat($("#uitvoertijd").val())))
$("#dayshours_urg").prop("disabled", true);
else
$("#dayshours_urg").prop("disabled", false);
}
jQuery(document).ready(function()
{
$('textarea').resize(function () { FcltMgr.resized(window) } );
$('textarea').autogrow();
});
</script>
</head>
<body id="<%=((mode == "show")? "showbody" : "editbody")%>">
<%
var buttons = [];
if (!srtruimte_deleted)
{
if (mode == "show")
{
buttons.push( {title: L("lcl_change"), action:"alg_edit()", icon: "wijzigen.png" } );
buttons.push( {title: L("lcl_delete"), action:"alg_delete()", icon: "delete.png" } );
}
else
{
buttons.push( {title: L("lcl_submit"), action:"alg_submit()", icon: "opslaan.png" } );
buttons.push( {title: L("lcl_cancel"), action:"alg_cancel()", icon: "undo.png" } );
}
}
IFRAMER_HEADER(L("lcl_alg_srtruimte_details"), buttons);
if (mode == "show")
{
myFIELD = function (a, b, c, d, e) { ROFIELDTR(b, c, d, e) };
myTEXTAREA = function (a, b, c, d, e) { ROTEXTAREATR(b, c, d, e) };
myCHECKBOX = function (a, b, c, d, e) { ROCHECKBOXTR(b, c, d, e) };
}
else
{
myFIELD = RWFIELDTR;
myTEXTAREA = RWTEXTAREATR;
myCHECKBOX = RWCHECKBOXTR;
}
if (srtruimte_deleted)
{
%> <div class="alg_deleted"><%=L("lcl_record_is_deleted")%></div><%
}
%>
<div id="show">
<form name="u2"
action="alg_srtruimte.asp?mode=save&alg_srtruimte_key=<%=srtruimte_key%>"
method="post"
target="hidFrameSubmit"
onSubmit="alg_submit()">
<%
BLOCK_START("algInfo", safe.html(L("lcl_general_properties")));
ROFIELDTR( "fld", L("lcl_key"), srtruimte_key);
myFIELD("omschrijving", "fld", L("lcl_descr"), srtr_info.alg_srtruimte_omschrijving, { translate: {fld: "mld_afmeldtekst_naam", key: srtruimte_key} });
myFIELD("prijs", "fld", L("lcl_alg_alg_tarief")+" (m2)", safe.editablefloat(srtr_info.alg_srtruimte_prijs), {datatype: "float", suppressEmpty: true} );
myFIELD("prijs2", "fld", L("lcl_alg_alg_tariefA")+" (m2)", safe.editablefloat(srtr_info.alg_srtruimte_prijs2), {datatype: "float", suppressEmpty: true} );
myFIELD("prijs3", "fld", L("lcl_alg_alg_tariefB")+" (m2)", safe.editablefloat(srtr_info.alg_srtruimte_prijs3), {datatype: "float", suppressEmpty: true} );
myFIELD("prijs4", "fld", L("lcl_alg_alg_tariefC")+" (m2)", safe.editablefloat(srtr_info.alg_srtruimte_prijs4), {datatype: "float", suppressEmpty: true} );
myFIELD("prijs5", "fld", L("lcl_alg_alg_tariefD")+" (m2)", safe.editablefloat(srtr_info.alg_srtruimte_prijs5), {datatype: "float", suppressEmpty: true} );
myFIELD("code", "fld", L("lcl_alg_srtruimte_code"), srtr_info.alg_srtruimte_code);
myCHECKBOX("bevatwerkplek", "fldcheck", L("lcl_prs_has_workplace"), srtr_info.prs_bevat_werkplek, {html: "onChange='onChangeBevatWerkplek();'"});
myCHECKBOX("verhuurbaar", "fldcheck", L("lcl_prs_rentable"), srtr_info.prs_verhuurbaar);
sql = "SELECT 'U', " + safe.quoted_sql(L("lcl_mld_hours")) + " FROM DUAL"
+ " UNION "
+ "SELECT 'D', " + safe.quoted_sql(L("lcl_mld_days")) + " FROM DUAL"
+ " ORDER BY 2";
var selectparams = { fieldName: "dayshours_urg",
sql: sql,
params: { id: "dayshours_urg",
initKey: srtr_info.eenh_uitvoertijd,
readonly: (mode == "show"),
disable: !srtr_info.tijd_uitvoertijd
}
}
myFIELD("uitvoertijd", "fldalg_uitvtijd", L("lcl_mld_stduitvoertijd"), srtr_info.tijd_uitvoertijd? Math.round(srtr_info.tijd_uitvoertijd * 100) / 100 : ""
, {maxlength: 4, datatype: "float", html: "onChange='onChangeUitvoertijd();'", suppressEmpty: true, selector: selectparams});
BLOCK_END();
IFACE.FORM_END();
if (srtruimte_key > -1 && (user.checkAutorisation("WEB_MLDMGT", true)))
{ // 2. De overruling van de SLA (acceptatietijd en uitvoertijd)
page = "../mld/mld_stdmsrtruimte_search_list.asp?embedded=1&srtruimte_key=" + srtruimte_key;
IFRAMER("mldstdmsrtruimte", page, { refreshOnClose: true, initHide: false } );
}
%>
</form>
</div>
<iframe src="../Shared/empty.html"
name="hidFrameSubmit"
FcltClose="alg_close"
style="display:none"></iframe>
</body>
</html>

View File

@@ -1,83 +0,0 @@
<%@ LANGUAGE = JavaScript %>
<% /*
$Revision$
$Id$
File: alg_srtruimte_search.asp
Description: Zoekscherm ruimtesoort
Parameters:
Context:
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<%
FCLTHeader.Requires({ plugins:["jQuery"]});
var autosearch = getQParamInt("autosearch", 0) == 1;
var authparams = user.checkAutorisation("WEB_ALGMSU");
%>
<html>
<head>
<%
FCLTHeader.Generate();
%>
<script type="text/javascript">
function doSubmit()
{
document.forms.u2.submit();
}
$(document).ready(function()
{
<% if (autosearch) { %> document.forms.u2.submit();<%}%>
});
</script>
</head>
<body id="searchbody">
<div id="search">
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
<form name="u2" target="workFrame" action="alg_srtruimte_search_list.asp" method="get">
<tr>
<td class="searchkolom1">
<table><!-- x rijen, 2 kolommen: label + veld -->
<tr class="primsearch">
<td class="label"><label for="searchtext"><%=L("lcl_descr")%>:</label></td>
<td><input type="text" class="fldsrch wildcard" name="searchtext" id="searchtext"></td>
</tr>
</table>
</td><!-- end column 1 -->
<td class="searchkolom2">
<table><!-- x rijen, 2 kolommen: label + veld -->
<%
%>
</table>
</td><!-- end column 2 -->
</tr>
<% BLOCK_END();
var buttons = [ {title: L("lcl_search"), action: "doSubmit()", id: "bSearch" } ];
CreateButtons(buttons, { entersubmit: true});
%>
</form>
</div> <!-- search -->
<div id="result">
<iframe width="100%" height="100%"
src="../Shared/empty.asp"
name="workFrame" id="workFrame"
onload="FcltMgr.iframeLoaded(this)"
frameborder="0" scrolling="no">
</iframe>
</div>
</body>
</html>

View File

@@ -1,114 +0,0 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: alg_srtruimte_search_list.asp
Description: Vangt de parameters van alg_srtruimte_search op en verwerkt die tot een lijst
Parameters:
Context: Vanuit alg_srtruimte_search.asp
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<%
var searchtext = getQParam("searchtext", null);
//var fkdmodule = getQParamSafe("fkdmodule", -1);
var outputmode = getQParamInt("outputmode", 0); // 0 = screen, 1 = print, 2 = excel etc
var showall = getQParamInt("showall", 0) == 1;
var authparams = user.checkAutorisation("WEB_ALGMSU");
%>
<html>
<head>
<%
FCLTHeader.Generate({outputmode: outputmode});
%>
<script>
function fkd_edit(row)
{
var srtruimte_key = row.getAttribute("ROWKEY");
var url = "appl/alg/alg_srtruimte.asp?alg_srtruimte_key="+srtruimte_key;
FcltMgr.openDetail(url, "<%=L("lcl_alg_srtruimte_details")%>", {callback: FcltMgr.reload } );
}
</script>
</head>
<body>
<%
var sql = "SELECT sr.alg_srtruimte_key"
+ " , sr.alg_srtruimte_omschrijving"
+ " , sr.alg_srtruimte_prijs"
+ " , sr.alg_srtruimte_prijs2"
+ " , sr.alg_srtruimte_prijs3"
+ " , sr.alg_srtruimte_prijs4"
+ " , sr.alg_srtruimte_prijs5"
+ " , sr.alg_srtruimte_code"
+ " , CASE WHEN sr.prs_bevat_werkplek = 1"
+ " THEN " + safe.quoted_sql(L("lcl_yes"))
+ " ELSE " + safe.quoted_sql(L("lcl_no"))
+ " END bevat_werkplek"
+ " , CASE WHEN sr.prs_verhuurbaar = 1"
+ " THEN " + safe.quoted_sql(L("lcl_yes"))
+ " ELSE " + safe.quoted_sql(L("lcl_no"))
+ " END verhuurbaar"
+ " , sr.alg_srtruimte_t_uitvoertijd.tijdsduur tijdsduur"
+ " , sr.alg_srtruimte_t_uitvoertijd.eenheid eenheid"
+ " FROM alg_srtruimte sr"
+ " WHERE sr.alg_srtruimte_verwijder IS NULL"
+ (searchtext
? " AND sr.alg_srtruimte_upper LIKE " + safe.quoted_sql_wild("%" + searchtext + "%")
: ""
)
+ " ORDER BY sr.alg_srtruimte_omschrijving";
function fnUitvoertijdKolom(oRs)
{
var tmp = "";
if (oRs("tijdsduur").Value)
tmp = oRs("tijdsduur").Value + " " + (oRs("eenheid").Value == "U" ? L("lcl_mld_hours") : L("lcl_mld_days"))
return tmp;
}
buttons = {};
//if (canAdd)
{
var addurl = "appl/alg/alg_srtruimte.asp?mode=edit";
buttons = [{ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "', {callback: FcltMgr.reload })" }]
}
var rst = new ResultsetTable({ sql: sql,
keyColumn: "alg_srtruimte_key",
ID: "algsrtruimtetable",
showAll: showall,
outputmode: outputmode,
title: L("lcl_menu_alg_ruimtefuncties"),
buttons: buttons
});
rst.addColumn(new Column({caption: "Key", content: "alg_srtruimte_key"}));
rst.addColumn(new Column({caption: L("lcl_descr"), content: "alg_srtruimte_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_alg_alg_tarief"), content: "alg_srtruimte_prijs", datatype: "currency"}));
rst.addColumn(new Column({caption: L("lcl_alg_alg_tariefA"), content: "alg_srtruimte_prijs2", datatype: "currency"}));
rst.addColumn(new Column({caption: L("lcl_alg_alg_tariefB"), content: "alg_srtruimte_prijs3", datatype: "currency"}));
rst.addColumn(new Column({caption: L("lcl_alg_alg_tariefC"), content: "alg_srtruimte_prijs4", datatype: "currency"}));
rst.addColumn(new Column({caption: L("lcl_alg_alg_tariefD"), content: "alg_srtruimte_prijs5", datatype: "currency"}));
rst.addColumn(new Column({caption: L("lcl_alg_srtruimte_code"), content: "alg_srtruimte_code"}));
rst.addColumn(new Column({caption: L("lcl_prs_has_workplace"), content: "bevat_werkplek"}));
rst.addColumn(new Column({caption: L("lcl_prs_rentable"), content: "verhuurbaar"}));
rst.addColumn(new Column({caption: L("lcl_mld_stduitvoertijd"), content: fnUitvoertijdKolom}));
rst.addAction({ action: "fkd_edit", caption: L("lcl_edit"), isDefault: true});
var cnt = rst.processResultset();
%>
</body>
</html>

View File

@@ -71,7 +71,7 @@ else
</script>
</head>
<body>
<body id="editbody">
<% if (ter_key == -1)
var page = "alg_edit_terreinsector.asp"; // Maak een nieuw
else

View File

@@ -20,9 +20,9 @@ FCLTHeader.Requires({ plugins:["jQuery"] });
function fnrowData(oRs)
{
var parent_key = oRs("alg_locatie_key").Value;
var key = oRs("alg_terreinsector_key").Value;
var oms = oRs("alg_terreinsector_omschrijving").Value;
var parent_key = oRs("alg_locatie_key").value;
var key = oRs("alg_terreinsector_key").value;
var oms = oRs("alg_terreinsector_omschrijving").value;
var data = {parent_key: parent_key, key: key, oms: oms};
@@ -51,16 +51,11 @@ function fnrowData(oRs)
{
var terKeyString = getKeyString(rowArray);
if (isMulti || confirm(L("lcl_alg_del_txt_terreinsector")))
{
var data = { key: terKeyString,
level: "T"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
FcltCallbackRefresh,
"json");
}
$.post("alg_delete.asp",
{ key: terKeyString,
level: "T" },
FcltCallbackRefresh,
"json");
}
</script>
<%
@@ -70,8 +65,7 @@ function terrein_list(pautfunction, params)
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
var addButton = [];
var authparams = alg.checkAutorisation();
// Met ALG* bepaal je wat je ziet (Read), met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
var canAdd = (authparams.tmALGwritelevel < 9); //wat moet het zijn voor terriensector
var canAdd = (authparams.mALGwritelevel < 9); //wat moet het zijn voor terriensector
// Voor resulttable de globalen zetten; zou ng anders moeten.
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
@@ -83,22 +77,13 @@ function terrein_list(pautfunction, params)
var ter_code = params.ter_code;
var ter_func = params.ter_func;
function fnrowActionEnabler(oRs) // klopt dit voor terreinsector?
{
var eDelete = false;
if (alg.canWriteLocatie(oRs("alg_locatie_key").Value, authparams.tmALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
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 fnrowActionEnabler(oRs) // klopt dit voor terreinsector?
{
var eDelete = false;
if (alg.canWriteLocatie(oRs("alg_locatie_key").value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
%>
<html>
@@ -168,7 +153,6 @@ function terrein_list(pautfunction, params)
outputmode: outputmode,
flexModule: "ALG",
flexId: "alg_terreinsector_key",
flexParams: fnrowFlexParams,
filterParams: params,
buttons: addButton
});

View File

@@ -89,7 +89,7 @@ var authparams = alg.checkAutorisation();
<%
var buttons = [ {title: L("lcl_search"), action: "doSubmit()", id: "bSearch" },
{title: L("lcl_obj_advanced"), action: "myModal()", id:"bAdvanced" } ];
CreateButtons(buttons, { entersubmit: true });
CreateButtons(buttons);
%>
</form>
</div> <!-- search -->

View File

@@ -75,7 +75,7 @@ else
</script>
</head>
<body>
<body id="editbody">
<% if (flr_key == -1)
var page="alg_edit_verdieping.asp"; // Maak een nieuw
else

View File

@@ -9,6 +9,7 @@
Note:
*/ %>
<!-- #include file="../Shared/disCxprs3d.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/getkenmerksql.inc" -->
@@ -56,16 +57,11 @@ function fnrowData(oRs)
{
var flrKeyString = getKeyString(rowArray);
if (isMulti || confirm(L("lcl_alg_del_txt_verdieping")))
{
var data = { key: flrKeyString,
level: "V"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
FcltCallbackRefresh,
"json");
}
$.post("alg_delete.asp",
{ key: flrKeyString,
level: "V" },
FcltCallbackRefresh,
"json");
}
</script>
@@ -89,21 +85,12 @@ function verdiepingen_list(pautfunction, params)
var lvl_key = params.lvl_key;
function fnrowActionEnabler(oRs)
{
var eDelete = false;
if (alg.canWriteVerdieping(oRs("alg_verdieping_key").value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
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;
}
{
var eDelete = false;
if (alg.canWriteVerdieping(oRs("alg_verdieping_key").value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
%>
<html>
@@ -172,7 +159,6 @@ function verdiepingen_list(pautfunction, params)
outputmode: outputmode,
flexModule: "ALG",
flexId: "alg_verdieping_key",
flexParams: fnrowFlexParams,
filterParams: params,
rowData: fnrowData,
rowActionEnabler: fnrowActionEnabler,
@@ -182,7 +168,7 @@ function verdiepingen_list(pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_estate_locatie_man_descr"), content: "alg_locatie_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_estate_gebouw_man_descr"), content: "alg_gebouw_omschrijving"}));
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" }));
rst.addColumn(new Column({caption: L("lcl_estate_verdieping_man_descr"), content: "alg_verdieping_omschrijving", hasActions: true}));
rst.addAction({ action: "verdiepingEdit", caption: L("lcl_edit"), isDefault: true});
rst.addAction({ action: "doDelete", caption: L("lcl_delete"), enabler: "eDelete", single: !noref, multi: true, multiOnce: true});

View File

@@ -46,8 +46,8 @@ var authparams = alg.checkAutorisation();
<body id="searchbody">
<div id="search">
<form name="u2" target="workFrame" action="alg_verdieping_search_list.asp" method="get">
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
<form name="u2" target="workFrame" action="alg_verdieping_search_list.asp" method="get">
<td valign=top>
<table>
<% // <!-- Locatie, gebouw en verdieping -->
@@ -64,13 +64,13 @@ var authparams = alg.checkAutorisation();
</td>
</tr>
</table>
</form>
<% BLOCK_END();
var buttons = [ {title: L("lcl_search"), action: "doSubmit();", id: "bSearch" },
{title: L("lcl_obj_advanced"), action: "myModal()", id: "bAdvanced" } ];
CreateButtons(buttons, { entersubmit: true });
CreateButtons(buttons);
%>
</form>
</div> <!-- search -->
<div id="result">

View File

@@ -25,9 +25,7 @@ FCLTHeader.Requires({ plugins:["jQuery"],
var key = oRs("prs_werkplek_key").value;
var oms = oRs("prs_werkplek_omschrijving").value;
var data = {parent_key:parent_key, key:key, oms:oms,
wp_type: oRs("prs_werkplek_type").Value
};
var data = {parent_key:parent_key, key:key, oms:oms};
return JSON.stringify(data);
}
@@ -41,22 +39,11 @@ FCLTHeader.Requires({ plugins:["jQuery"],
var url = "appl/ALG/alg_ruimte_search.asp?ruimte_key="+algData.parent_key+"&autosearch="+autosearch;
FcltMgr.openDetail(url, "<%=L("lcl_room")%>");
}
function werkplekEdit(row)
function werkplekEdit(row)
{
var algData = eval('(' + row.getAttribute("ROWDATA") + ')');
<% if (S("prs_werkplek_implicit") == 1) { %>
if (algData.wp_type == 0) // Een vaste. Bewerk de bezetting van de ene persoon erop
{
var url = "../prs/prs_edit_perslidwerkplek.asp?wp_key=" + algData.key;
FcltMgr.openModalDetail(url, "<%=L("lcl_change")%>", {callback: refreshall });
}
else
<% } %>
{
var url = "appl/ALG/alg_wp.asp?mode=viewUpdate&key="+algData.key;
FcltMgr.openDetail(url, "<%=L("lcl_workspace")%>" + ' ' + algData.oms);
}
var url = "appl/ALG/alg_wp.asp?mode=viewUpdate&key="+algData.key;
FcltMgr.openDetail(url, "<%=L("lcl_workspace")%>" + ' ' + algData.oms);
}
function refreshall(data)
@@ -69,16 +56,11 @@ FCLTHeader.Requires({ plugins:["jQuery"],
{
var wpKeyString = getKeyString(rowArray);
if (isMulti || confirm(L("lcl_alg_del_txt_werkplek")))
{
var data = { key: wpKeyString,
level: "W"
};
<% protectRequest.dataToken("data"); %>
$.post("alg_delete.asp",
data,
FcltCallbackRefresh,
"json");
}
$.post("alg_delete.asp",
{ key: wpKeyString,
level: "W" },
FcltCallbackRefresh,
"json");
}
function doAddWP(room_key) // als impliciet==0
@@ -93,6 +75,12 @@ FCLTHeader.Requires({ plugins:["jQuery"],
FcltMgr.openModalDetail(addurl, "<%=L("lcl_add")%>", {callback: refreshall });
}
function doEditWPBezeting(row) // als impliciet==1
{
var algData = eval('(' + row.getAttribute("ROWDATA") + ')');
var url = "../prs/prs_edit_perslidwerkplek.asp?wp_key=" + algData.key;
FcltMgr.openModalDetail(url, "<%=L("lcl_add")%>", {callback: refreshall });
}
</script>
<%
@@ -101,7 +89,7 @@ function werkplek_list(pautfunction, params)
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
var buttons = [];
var authparams = alg.checkAutorisation();
var canAdd = (authparams.rmALGwritelevel < 6); // TODO: fijner, ik denk 3. Ik moet voor deze locatie, dit district of deze regio schrijfrechten hebben
var canAdd = (authparams.mALGwritelevel < 6); // TODO: fijner, ik denk 3. Ik moet voor deze locatie, dit district of deze regio schrijfrechten hebben
// Voor resulttable de globalen zetten; zou ng anders moeten.
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
@@ -117,7 +105,7 @@ function werkplek_list(pautfunction, params)
function fnrowActionEnabler(oRs)
{
var eDelete = false;
if (alg.canWriteRuimte(oRs("alg_ruimte_key").value, authparams.rmALGwritelevel))
if (alg.canWriteRuimte(oRs("alg_ruimte_key").value, authparams.mALGwritelevel))
eDelete = true;
return ({eDelete: eDelete})
}
@@ -156,7 +144,6 @@ function werkplek_list(pautfunction, params)
+ " p.prs_werkplek_opp, "
+ " p.prs_perslidwerkplek_bezetting, "
+ " p.prs_afd_perslid_naam, "
+ " w.prs_werkplek_type, "
+ " w.prs_werkplek_virtueel "
+ " FROM prs_v_perslidwerkplek_gegevens p, "
+ " alg_locatie l, "
@@ -211,32 +198,9 @@ function werkplek_list(pautfunction, params)
if (canAdd)
{
buttons.push({ icon: "page_refresh.png", title: L("lcl_refresh"), action: "FcltMgr.reload()" });
if (S("prs_werkplek_implicit") == 1)
{
buttons.push({ icon: "plus.png", title: L("lcl_add")+ " " + L("lcl_occupation"), action: "doAddWPBezeting("+room_key+")"});
buttons.push({ icon: "plus.png", title: L("lcl_add") + " " + L("lcl_prs_workplace"), action: "doAddWP("+room_key+")"});
}
else // Altijd werkplek knop
buttons.push({ icon: "plus.png", title: L("lcl_add"), action: "doAddWP("+room_key+")"});
buttons.push({ icon: "plus.png", title: L("lcl_add"), action: S("prs_werkplek_implicit") == 1?"doAddWPBezeting("+room_key+")":"doAddWP("+room_key+")"});
}
function fnWPType(oRs)
{
switch (oRs("prs_werkplek_type").Value)
{
case 0: return L("lcl_wptype_0");
case 1: return L("lcl_wptype_1") + (S("prs_werkplek_implicit")==1?" "+safe.html(oRs("prs_werkplek_omschrijving")):""); // Impliciet flex de code erachter
};
}
function fnBezetting(oRs)
{
switch (oRs("prs_werkplek_type").Value)
{
case 0: return oRs("prs_perslidwerkplek_bezetting");
case 1: return "";
};
}
var rst = new ResultsetTable({sql:sqln,
keyColumn: "prs_werkplek_key",
ID: "algtable",
@@ -246,21 +210,19 @@ function werkplek_list(pautfunction, params)
noPrint: tiny,
outputmode: outputmode,
filterParams: params,
title: L("lcl_workplace") + "/" + L("lcl_prs_werkplekbezetting"),
title: L("lcl_workplace"),
buttons: buttons
});
rst.addColumn(new Column({caption: L("lcl_room"), content: "Samengesteld", nowrap: true}));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_man_descr"), content: "alg_ruimte_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_estate_wp_seq"), content: "prs_werkplek_volgnr"}));
if (S("prs_werkplek_implicit")==0)
{
rst.addColumn(new Column({caption: L("lcl_workplace"), content: "prs_werkplek_omschrijving" }));
rst.addColumn(new Column({caption: L("lcl_workplace"), content: "prs_werkplek_omschrijving", hasActions: true}));
rst.addColumn(new Column({caption: L("lcl_estate_wp_fixed"), content: "decode_vastopp"}));
rst.addColumn(new Column({caption: L("lcl_estate_wp_area"), content: prepareArea}));
}
rst.addColumn(new Column({caption: L("lcl_wptype"), content: fnWPType}));
rst.addColumn(new Column({caption: L("lcl_occupation")+" (%)", content: fnBezetting }));
rst.addColumn(new Column({caption: L("lcl_occupation")+" (%)", content: "prs_perslidwerkplek_bezetting"}));
rst.addColumn(new Column({caption: L("lcl_name"), content: "prs_afd_perslid_naam"}));
function prepareArea(oRs)
@@ -274,7 +236,7 @@ function werkplek_list(pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_estate_wp_virt"), content: "prs_werkplek_virtueel"}));
}
rst.addAction({ action: "werkplekEdit", caption: L("lcl_edit"), isDefault: true});
rst.addAction({ action: S("prs_werkplek_implicit") == 1?"doEditWPBezeting":"werkplekEdit", caption: L("lcl_edit"), isDefault: true});
rst.addAction({ action: "doDelete", caption: L("lcl_delete"), enabler: "eDelete", single: !tiny, multi: !tiny, multiOnce: true});
if (!tiny)
rst.addAction({ action: "gotoParent", caption: L("lcl_goto_ruimte_list")});

View File

@@ -39,8 +39,8 @@ var authparams = alg.checkAutorisation();
</head>
<body id="searchbody">
<div id="search">
<form name="u2" target="workFrame" action="alg_werkplek_search_list.asp" method="get">
<% BLOCK_START("searchtable", L("lcl_filterblok"));%>
<form name="u2" target="workFrame" action="alg_werkplek_search_list.asp" method="get">
<tr>
<td class="searchkolom1">
<table><!-- x rijen, 2 kolommen: label + veld -->
@@ -69,12 +69,12 @@ var authparams = alg.checkAutorisation();
</table>
</td><!-- end column 1 -->
</tr>
</form>
<% BLOCK_END();
var buttons = [ {title: L("lcl_search"), action: "document.forms.u2.submit();", id: "bSearch" } ];
CreateButtons(buttons, { entersubmit: true });
CreateButtons(buttons);
%>
</form>
</div> <!-- search -->
<div id="result">

View File

@@ -57,14 +57,14 @@ if (wp_key > 0)
{
FcltMgr.closeDetail(window, { close: true})
}
if (!params.keepForm && !params.deleted)
if (!params.keepForm)
$("#algFrame")[0].src = "alg_show_wp.asp?wp_key=<%=wp_key%>";
<% } %>
}
</script>
</head>
<body>
<body id="editbody">
<% if (wp_key == -1)
var page="alg_edit_wp.asp"; // Maak een nieuw
else
@@ -76,11 +76,8 @@ if (wp_key > 0)
FcltClose: "algClose" } );
if (wp_key > -1)
{
var page2 ="../prs/prs_perslidwerkplek_search_list.asp?embedded=1&wp_key=" + wp_key;
var page2 ="../prs/prs_perslidwerkplek_search_list.asp?embedded=1&wp_key=" + wp_key
IFRAMER("algFrame", page2, { initHeight: "450px" } );
var page3 ="../ins/ins_search_list.asp?urole=bo&tiny=1&werkplekkey=" + wp_key;
IFRAMER("algFrame", page3, { initHeight: "450px" } );
}
%>
</body>

View File

@@ -15,7 +15,7 @@
*/ %>
<%
var JSON_Result = true;
DOCTYPE_Disable = 1;
%>
<!-- #include file="../Shared/common.inc"-->

View File

@@ -11,7 +11,7 @@
*/ %>
<%
var JSON_Result = true;
DOCTYPE_Disable = 1;
%>
<!--#include file="../Shared/common.inc"-->
<!--#include file="../Shared/json2.js" -->
@@ -20,7 +20,7 @@ var JSON_Result = true;
var room_key = getQParamInt("room_key");
var sql = "SELECT COALESCE(MAX (prs_werkplek_volgnr),0) newvolg"
+ " FROM prs_werkplek"
+ " FROM prs_v_aanwezigwerkplek"
+ " WHERE prs_alg_ruimte_key = " + room_key
var oRs = Oracle.Execute(sql);
var result = { volgnr: oRs("newvolg").Value+1 };

View File

@@ -22,7 +22,6 @@ var DOCTYPE_Disable = true;
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="alg.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<%
@@ -31,7 +30,6 @@ generateFlexKenmerkBlock ({ urole: getQParamSafe("urole"),
onrgoed_niveau: getQParam("onrgoed_niveau", ""), // Onroerendgoed niveau
reado: getQParam("reado", 0) == 1, // Readonly
flexcolumns : getQParamInt("advanced", 0) == 1?1:S("alg_flexcolumns"),
this_alg : alg.func_enabled(-1, getQParam("onrgoed_niveau", "")),
advanced: getQParam("advanced", 0) == 1 // Geavanceerd
});
%>

View File

@@ -14,14 +14,14 @@ DOCTYPE_Disable = 1;
LCL_Disable = 1;
ANONYMOUS_Allowed = 1;
FCLTEXPIRES = 8*60; // geen database interactie tenslotte
NO_ADDHEADER = 1; // common.inc voert wat globale acties hierdoor niet meer uit
var EXPIRED_PASSWORD_OK = true; // performance
%>
<!-- #include file="../Shared/common.inc"-->
<!-- #include file="../api/api.inc" -->
<%
var API = new API_func(); // controleert vanzelf
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY); // controleert vanzelf
__Log("Transferring to: " + API.apidata.file);
//__DoLog("Transferring to: " + API.apidata.file);
Server.Transfer(API.apidata.file);
%>

View File

@@ -3,140 +3,51 @@
$Id$
File: api.inc
Description: Functies voor API's
Description:
Parameters:
Context:
Notes:
*/
function API_func()
{
this.APIname = getQParam("API");
var sql = "SELECT *"
+ " FROM fac_api"
+ " WHERE fac_api_name = " + safe.quoted_sql(this.APIname);
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
%>
<%
function API_func(APIname, APIKEY)
{
this.error("Invalid API: " + this.APIname);
oRs.Close();
Response.End;
}
this.APIname = APIname;
this.APIKEY = APIKEY;
if (user_key < 0)
{
this.APIKEY = getQParam("APIKEY", "");
if (!this.APIKEY && S("basic_auth_realm"))
var sql = "SELECT *"
+ " FROM fac_api"
+ " WHERE fac_api_name = " + safe.quoted_sql(APIname);
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
{
Response.Write("Unknown API: " + APIname);
Response.End;
}
else if (oRs("fac_api_apikey").Value != APIKEY)
{
Response.Write("Invalid APIKEY for: " + APIname);
Response.End;
};
this.apidata =
{
Response.Status = "401 Unauthorized";
Response.AddHeader("WWW-Authenticate", "Basic realm=\"" + S("basic_auth_realm") + "\"");
Response.End;
APIname: APIname,
APIKEY: APIKEY,
file: oRs("fac_api_filepath").Value,
// niet meer gebruikt. API=machine2machine is nooit session
// no_session: oRs("fac_api_no_session").Value,
prs_perslid_key: oRs("prs_perslid_key").Value,
loglevel: oRs("fac_api_loglevel").Value,
usrrap_key: oRs("fac_usrrap_key").Value,
stylesheet: oRs("fac_api_stylesheet").Value,
import_app_key: oRs("fac_import_app_key").Value,
options: eval("("+oRs("fac_api_options_json").Value+")"),
viewmapping: eval("("+oRs("fac_api_viewmapping_json").Value+")")
}
else
{
var sql2 = "SELECT prs_perslid_key, prs_perslid_naam"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_apikey = " + safe.quoted_sql(this.APIKEY)
+ " AND prs_perslid_verwijder IS NULL"; // Eigenlijk zou de trigger APIKEY moeten wissen bij verwijderen
var oRs2 = Oracle.Execute(sql2);
if (oRs2.Eof)
{
this.error("Invalid APIKEY: " + this.APIKEY);
oRs2.Close();
Response.End;
};
__Log("API User is: " + oRs2("prs_perslid_naam"));
user_key = oRs2("prs_perslid_key").Value;
oRs2.Close();
}
}
oRs.Close();
this.apidata =
{
APIname: this.APIname,
APIKEY: this.APIKEY,
file: oRs("fac_api_filepath").Value,
prs_perslid_key: user_key,
loglevel: oRs("fac_api_loglevel").Value,
usrrap_key: oRs("fac_usrrap_key").Value,
stylesheet: oRs("fac_api_stylesheet").Value,
import_app_key: oRs("fac_import_app_key").Value
};
try
{
this.apidata.options = eval("("+oRs("fac_api_options_json").Value+")");
// We doen niets met eventuele prs_perslid_key; dat doet loginTry.asp maar voor ons
}
catch (e)
{
__DoLog(e);
this.error("Invalid api 'options': " + e.description);
}
try
{
this.apidata.viewmapping = eval("("+oRs("fac_api_viewmapping_json").Value+")");
}
catch (e)
{
this.error("Invalid api 'viewmapping': " + e.description);
}
oRs.Close();
// Wij doen niets met eventuele prs_perslid_key; dat doet loginTry.asp maar voor ons
}
API_func.prototype.error = function (msg)
{
if (JSON_Result && JSON) // Merk op dat 'invalid APIKEY' al door /default.asp
{ // is onderschept en dus niet hier komt.
Response.Write(JSON.stringify({ success: false, message: msg }));
}
else
{
Response.Status = "500 Internal server error"; // 500_error.asp blijkt hier niet op in te grijpen
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");
}
Response.End;
}
// LET OP: Verwacht wordt dat de JSON-code in de body utf-8 encoded is, niet windows-1252!
// (in de praktijk moet je *moeite* doen om windows-1252 te krijgen dus dit is handiger)
function RequestJSON()
{
var jvraag;
if(Request.TotalBytes > 0)
{
var lngBytesCount = Request.TotalBytes;
jvraag = BytesToStr(Request.BinaryRead(lngBytesCount));
}
__Log("Vraag: " + jvraag);
try
{
var vraag = myJSON.parse(jvraag);
}
catch (e)
{
__DoLog("eval faalt met: {0}<br>{1}".format(e.description, jvraag), "ffff00");
return null;
}
return vraag;
}
function BytesToStr(bytes)
{
var stream = Server.CreateObject("ADODB.STREAM");
stream.type = 1;
stream.open;
stream.write(bytes);
stream.position = 0;
stream.type = 2; // Text
stream.charset = "utf-8";
var sOut = stream.readtext();
stream.close;
return sOut;
}
%>

View File

@@ -4,79 +4,53 @@
$Id$
File: api_SOAP.asp
Description: API om een SOAP-achtige service te bieden
Parameters:
Context:
Notes: Zie UWVA/KASPRS voor voorbeeld gebruik
TODO: Parameters uit Request-SOAP bericht ook via een XLS er uit vogelen
Description: API om een SOAP-achtige service te bieden gebaseerd op een bestaande view.
Dat is informatie in XML op te leveren (of een ander formaat dat je via een XSL
kunt bewerkstelligen) uit een view en bepaalde toegestande filters.
Wat de API kan en doet (view, filters, limiet) moet in fac_api gedefinieerd zijn,
geidentificeerd door de apiname.
Parameters: apiname, apikey
Context: Door een remote systeem (geen persoon) om info uit FACILITOR te halen aan te roepen
Notes: De readrechten van de user die met de meegegeven apikey wordt geidentificeerd
gehanteerd worden. TODO!
Het is Oracle die in eerste instantie de XML fabriceert.
BELANGRIJK:
De bedoeling is dat de DE M2M SOAP/Machine manier is om info uit FACILITOR te krijgen.
De enige manier.
Dit mechanisme is dus zo generiek mogelijk, en er worden zoveel mogelijk conventies gehanteerd
Iedere aanpassing of gewenste customisation moet kunnen ZONDER dit mechanisme aan te passen en
ZONDER een ander mechanisme te gebruiken. Om een dergelijke service te kunnen gebruiken moet:
- een view bestaan (gebruik bij voorkeur een bestaande voorgedefinieerde MOD_V_API_XXX view)
- een definitierecord (API) in fac_api bestaan/worden toegevoegd die per request aan die views linkt
- een user (met APIKEY) de juiste rechten krijgen
Vervolgens kan de service worden aangeroepen met API en APIKEY, en bevat de geposte XML
de criteria. Een resulterende XML met een Response is het resultaat, alsmede een HTTP-statuscode
waarbij 200 Ok is.
Status: Autorisatie tegen de API_KEY-user checken
*/
var logall=0; // handig met testen
DOCTYPE_Disable = 1;
LCL_Disable = 1
THIS_FILE = "appl/api/api_soap.asp";
// Session("logging")=1;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/xml_converter.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../api/api.inc" -->
<%
Session.Codepage = 65001;
Response.Charset = 'utf-8';
Session.Abandon(); // Voor de zekerheid
try
{
var API = new API_func(); // Valideert ook
function XML2TEMP(xml, postfix)
{
if (!logall) return;
var in_file = Server.MapPath("./temp") + "/" + customerId + "_" + APIname + "_" + postfix + "_";
var jsDate = new Date();
var s = jsDate.getFullYear() + padout(jsDate.getMonth() + 1) + padout(jsDate.getDate())
+ padout(jsDate.getHours()) + padout(jsDate.getMinutes()) + padout(jsDate.getSeconds())
in_file = in_file + s + ".xml";
//Response.Write(in_file);Response.End;
var asJSON = getQParam("json","0")!="0";
var fs = Server.CreateObject("Scripting.FileSystemObject");
var ts = fs.CreateTextFile(in_file, true);
ts.WriteLine (xml);
ts.Close();
}
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.4.0");
xmlReq.load(Request);
if (API.apidata.loglevel) __Log2File(xmlReq.xml, API.APIname + "_IN");
if (xmlReq.documentElement.firstChild.prefix)
var soapns = xmlReq.documentElement.firstChild.prefix + ":";
else
var soapns = "";
var body = xmlReq.getElementsByTagName(soapns+"Body");
if (!body.length) {
throw("Invalid request: No XML body");
}
var GetReq = body[0].firstChild.baseName;
// req heeft vorm GetXXX, met XXX is de req van de definitie in fac_api
var req = GetReq.substring(3);
XML2TEMP(xmlReq.xml, "IN");
var body = xmlReq.getElementsByTagName("soap:Body");
var req = body[0].firstChild.nodeName;
var requestData = null;
// de apidata.viewmapping is een JSON string met (voorbeeld)
// {"req": "Reserveringen",
// "node": "reservering",
// "view": "res_v_api_reserveringen",
// "filter":{"locatiecode":"locatiecode", "catalogus": "catalogus", "begindatumtijd": {"colName": "van", "operand":"GT", "datatype": "date"}, "einddatumtijd": {"colName": "tot", "operand":"LT", "datatype": "date"}},
// "limit":75}
for (i=0; i < API.apidata.viewmapping.length; i++)
{
if (API.apidata.viewmapping[i].req == req)
@@ -84,190 +58,21 @@ try
requestData = API.apidata.viewmapping[i];
}
}
if (requestData == null) {
API.error("Invalid request: " + GetReq);
}
var viewname = requestData.view;
var resnodename = requestData.node;
var autfunction = requestData.autfunction; // optioneel
if (!autfunction)
{
autfunction =
{"regio": "WEB_ALGUSE",
"district": "WEB_ALGUSE",
"locatie": "WEB_ALGUSE",
"gebouw": "WEB_ALGUSE",
"verdieping": "WEB_ALGUSE",
"ruimte": "WEB_ALGUSE",
"bestelling": "WEB_BESUSE",
"bestelopdracht": "WEB_BESUSE",
"afspraak": "WEB_BEZUSE",
"contract": "WEB_CNTUSE",
"factuur": "WEB_FINUSE",
"deel": "WEB_INSUSE",
"melding": "WEB_MLDUSE",
"opdracht": "WEB_MLDUSE",
"afdeling": "WEB_PRSUSE",
"persoon": "WEB_PRSUSE",
"reservering": "WEB_RESUSE",
"voorziening": "WEB_RESUSE"}[resnodename];
}
viewname = requestData.view;
// Nu filters zoeken
var wheres = [];
var filters = body[0].firstChild.childNodes;
for (i=0; i < filters.length; i++)
{
var filterName = filters[i].baseName;
var found = false;
for (xx in requestData.filter) // kennen we dit filter?
var filterName = filters[i].nodeName;
for (xx in requestData.filter) // kennen we deze filter?
{
if (filterName == xx)
{
var found = true;
var wildtext = filters[i].text;
var colHash = requestData.filter[xx];
if (typeof colHash == "string") // backwards compatible
{
colHash = { colName: colHash,
datatype: "string",
operand : "LIKE"
};
wildtext += "%";
}
else
{
// heeft colHash de volgende structuur
/*
res_datum: { colName: "res_rsv_ruimte_van",
datatype: "date",
operand: "LT"
}
*/
}
var criterium = safe.quoted_sql(filters[i].text);
switch(colHash.datatype)
{
case "string" :
criterium = safe.quoted_sql_upper(filters[i].text);
break;
case "date" :
// Er zijn regels over datums
// http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html#isoformats
// We willen natuurlijk dat het datatype in de view gewoon datum is
// en dan moeten we van de string van het criterium volgens conventie een date maken
// TODO: Oracle vindt dat standaard Date niet DateTime is...
// Voor filtering is dit perfect zo, maar de presentatie in de XML moet ..?
// TOCH TODO: wel of geen seconden??!?
criterium = "TO_DATE("+safe.quoted_sql(filters[i].text)+", 'yyyy-mm-dd\"T\"hh24:mi:ss')";
break;
}
switch(colHash.operand)
{
case "EQ":
wheres.push("UPPER("+colHash.colName + ") = " + criterium)
break;
case "LIKE":
// altijd case-insensitive vind ik oke, maar de wildcard zou IMO in het filter moeten worden meegegeven.
wheres.push("UPPER("+colHash.colName + ") LIKE " + safe.quoted_sql_wild(wildtext))
break;
case "LT":
wheres.push(""+colHash.colName + " < " + criterium)
break;
case "GT":
wheres.push(""+colHash.colName + " > " + criterium)
break;
case "LTE":
wheres.push(""+colHash.colName + " <= " + criterium)
break;
case "GTE":
wheres.push(""+colHash.colName + " >= " + criterium)
break;
}
wheres.push("UPPER("+requestData.filter[xx] + ") LIKE " + safe.quoted_sql_wild(filters[i].text + "%"))
}
}
if (!found && (filterName.match(/\_KEY$/i) || filterName.toUpperCase() == "KEY") // fallback: op _KEY velden mag je automatisch filteren met EQ
&& parseInt(filters[i].text, 10))
{
var sql = "SELECT data_type"
+ " , data_length"
+ " , data_precision"
+ " , data_scale"
+ " FROM user_tab_columns"
+ " WHERE table_name = " + safe.quoted_sql_upper(viewname)
+ " AND column_name = " + safe.quoted_sql_upper(filterName);
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
wheres.push(filterName + " = " + parseInt(filters[i].text, 10))
}
oRs.Close();
}
}
// Bu: 3D scope toepassen
// Check for our special 3D column names
var has3D = {};
var any3D = false;
sql = "SELECT UPPER(column_name) column_name"
+ " FROM user_tab_columns"
+ " WHERE table_name = " + safe.quoted_sql_upper(viewname)
+ " AND UPPER(column_name) LIKE 'FCLT_3D_%'";
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
any3D = true;
has3D[oRs("column_name").Value] = true;
oRs.MoveNext();
}
oRs.Close();
if (any3D)
{
if (!autfunction)
API.error("3d yet autfunction undefined"); // Strict genomen niet nodig voor FCLT_3D_USER_KEY
var authparams = user.checkAutorisation(autfunction);
// TODO: Onderstaande code gaan delen met fac_usrrap.inc?
if (has3D["FCLT_3D_DISCIPLINE_KEY"])
{
wheres.push(" FCLT_3D_DISCIPLINE_KEY IN"
+ " (SELECT ins_discipline_key FROM fac_v_webgebruiker "
+ " WHERE fac_functie_key = " + authparams.autfunctionkey
+ " AND prs_perslid_key="+user_key + ")");
}
if (has3D["FCLT_3D_LOCATIE_KEY"] && authparams.ALGreadlevel > -1)
{
wheres.push(" FCLT_3D_LOCATIE_KEY IN"
+ " (SELECT alg_locatie_key FROM fac_v_my_locations "
+ " WHERE niveau ="+authparams.ALGreadlevel
+ " AND prs_perslid_key="+user_key+")");
}
if (has3D["FCLT_3D_GEBOUW_KEY"] && authparams.ALGreadlevel > -1)
{
wheres.push(" FCLT_3D_GEBOUW_KEY IN"
+ " (SELECT alg_gebouw_key FROM fac_v_my_buildings "
+ " WHERE niveau ="+authparams.ALGreadlevel
+ " AND prs_perslid_key="+user_key+")");
}
if (has3D["FCLT_3D_AFDELING_KEY"] && authparams.PRSreadlevel > 0)
{
wheres.push(" FCLT_3D_AFDELING_KEY IN"
+ " (SELECT prs_afdeling_key FROM prs_v_afdeling_familie a"
+ " WHERE a.prs_afdeling_elder_key IN"
+ " (SELECT aa.prs_afdeling_elder_key"
+ " FROM prs_v_afdeling_familie aa"
+ " WHERE aa.prs_afdeling_key = " + user.prs_afdeling_key()
+ " AND aa.niveau = " + authparams.PRSreadlevel + "))");
}
if (has3D["FCLT_3D_USER_KEY"] )
{
wheres.push(" FCLT_3D_USER_KEY = " + user_key);
}
}
if (requestData.limit)
@@ -277,92 +82,30 @@ try
if (wheres.length)
where = "WHERE " + wheres.join(" AND ");
var resultnode = GetReq+'Response'; // Dit is volgens onze eigen conventie zo
var stylesheet = API.apidata.stylesheet;
var mode = req;
var key = -1;
var xtrakey = -1;
var sql_params = safe.quoted_sql(viewname) + ", "
+ key + " , "
+ safe.quoted_sql(customerId) + ", "
+ "'$AspSession$', "
+ xtrakey + ", "
+ safe.quoted_sql(where)
+ ", " + safe.quoted_sql(resultnode)
+ ", " + safe.quoted_sql(resnodename);
if (String(Oracle.RealConnection.Properties("Provider Name")).match(/OraOLEDB/i))
{
var sql = "SELECT xml.make_view_xml2(" + sql_params + ") xml_blob FROM dual";
var oRs = Oracle.Execute(sql);
var xml_content = oRs("xml_blob").Value;
oRs.Close();
__Log("XML blob is {0} karakters.".format(xml_content.length));
}
else // MSDAORA kan niet rechtstreeks BLOB's ophalen
{
sql = "BEGIN xml.make_view_xml(" + sql_params + "); END;";
Oracle.Execute(sql);
var xml_content = get_fac_xml('$AspSession$');
var stylesheet = API.apidata.stylesheet;
sql = "BEGIN xml.make_view_xml(" + safe.quoted_sql(viewname) + ", " + key + " , "
+ safe.quoted_sql(customerId) + ", " + safe.quoted_sql(Session.SessionId)
+ ", " + xtrakey + ", " + safe.quoted_sql(where) + "); END;";
Oracle.Execute(sql);
sql = "SELECT fac_xml_xml FROM fac_xml WHERE fac_session_id = " + safe.quoted_sql(Session.SessionId) + " ORDER BY fac_xml_volgnr";
oRs = Oracle.Execute( sql);
var xml_content = "";
while (!oRs.eof) {
xml_content = xml_content + oRs(0).value;
oRs.moveNext();
}
__Log("XML is " + xml_content.length + " karakters");
if (API.apidata.loglevel) __Log2File(xml_content, API.APIname + "_DATA");
XML2TEMP(xml_content, "DATA");
if (asJSON)
Response.ContentType = "application/json";
else
Response.ContentType = "text/xml";
//stylesheet = GetStylesheet(pcompany);
var srtnotificatie = "";
Response.AddHeader("Access-Control-Allow-Origin", "*"); // Opdat FireFox cross-domain toestaat
Response.ContentType = "text/xml";
STR2Stream(xml_content,stylesheet, Response, mode, srtnotificatie);
// Als er geen afwijkende xsl is gedefinieerd dan leveren we gewoon generiek de rapport_data node
// op van het resultaat,dus maar zonder de metadata, dus alleen de facilitor/[resultnode]/
if (stylesheet == null)
{
var xmldoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
xmldoc.async = false;
xmldoc.loadXML(xml_content);
if (xmldoc.parseError.errorCode != 0)
{
var myErr = xmldoc.parseError;
throw("Error in xmlfile: " + myErr.reason);
}
else
{
var resultdoc = xmldoc.getElementsByTagName(resultnode)[0];
if (resultdoc)
{
if (asJSON)
{
var antwoord = JSON.stringify(xmlToJson(resultdoc),null, getQParam("pretty","0")=="1"?2:0);
}
else
var antwoord = resultdoc.xml;
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var eTag = '"' + oCrypto.hex_sha1(antwoord).toLowerCase() + '"';
Response.AddHeader("ETag", eTag);
if (Request.ServerVariables("HTTP_IF_NONE_MATCH") == eTag)
{ // We hebben een match!
Response.Clear();
Response.Status = "304 Not modified";
Response.End;
}
if (API.apidata.loglevel) __Log2File(antwoord, API.APIname + "_OUT");
Response.write(antwoord);
}
}
}
else
{
// die req-parameter is waarschijnlijk vrij zinloos
var params = { mode: req };
if (API.apidata.loglevel)
params.log_postfix = API.APIname + "_OUT";
STR2Stream(xml_content, stylesheet, Response, params);
}
}
catch (e)
{
API.error(typeof e == "string"? e : e.description);
}
Session.Abandon(); // Voor de zekerheid
%>

View File

@@ -1,142 +0,0 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: api_SOAP.asp
Description: API om een SOAP-achtige service te bieden
Parameters:
Context:
Notes: Zie UWVA/KASPRS voor voorbeeld gebruik
TODO: Parameters uit Request-SOAP bericht ook via een XSL er uit vogelen
*/
DOCTYPE_Disable = 1;
THIS_FILE = "appl/api/api_soap.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/xml_converter.inc" -->
<!-- #include file="../api/api.inc" -->
<%
var API = new API_func();
Session.Codepage = 65001;
Response.Charset = 'utf-8';
// Zet de loglevel in de API op 1 om de xml te loggen naar de TEMP folder
function XML2TEMP(xml, postfix)
{
if (!API.apidata.loglevel) return;
var in_file = Server.MapPath("./temp") + "/" + customerId + "_" + API.APIname + "_" + postfix + "_";
var jsDate = new Date();
var s = String(jsDate.getFullYear()) + padout(jsDate.getMonth() + 1) + padout(jsDate.getDate())
+ padout(jsDate.getHours()) + padout(jsDate.getMinutes()) + padout(jsDate.getSeconds())
in_file = in_file + s + ".xml";
//Response.Write(in_file);Response.End;
var fs = Server.CreateObject("Scripting.FileSystemObject");
var ts = fs.CreateTextFile(in_file, true, -1); // -1 voor de Unicode
ts.WriteLine (xml); // Anders hier Invalid procedure call or argument
ts.Close();
}
Session("logging") = API.apidata.loglevel||0;
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
xmlReq.load(Request);
XML2TEMP(xmlReq.xml, "IN");
var xmlnode = xmlReq.getElementsByTagName("xmlnode")[0].text;
var beginTag = xmlReq.getElementsByTagName("begindatumtijd")[0].text;
var eindTag = xmlReq.getElementsByTagName("einddatumtijd")[0].text;
//var ekey = xmlReq.getElementsByTagName("key")[0].text;
__Log("xmlnode: " + xmlnode);
__Log("From: " + beginTag);
__Log("To: " + eindTag);
var key = -1;
var xtrakey = -1;
var stylesheet = API.apidata.stylesheet;
var srtnotificatie = "";
// TODO: View configureerbaar maken
var whichSQL = "SELECT DISTINCT fac_srtnotificatie_xmlnode xmlnode, fac_tracking_refkey "
+ " FROM fac_tracking ft, fac_srtnotificatie fs "
+ " WHERE ft.fac_srtnotificatie_key = fs.fac_srtnotificatie_key "
+ " AND fs.fac_srtnotificatie_xmlnode = " + safe.quoted_sql(xmlnode)
+ " AND fac_tracking_datum BETWEEN TO_DATE("+safe.quoted_sql(beginTag)+", 'YYYY-MM-DD HH24:MI:SS')"
+ " AND TO_DATE("+safe.quoted_sql(eindTag)+", 'YYYY-MM-DD HH24:MI:SS')"
// UWVA sneller + " AND fac_tracking_key >= 11376454"
+ " GROUP BY fac_srtnotificatie_xmlnode, fac_tracking_refkey";
// whichSQL = "SELECT * FROM (" + whichSQL + ") WHERE ROWNUM < 5";
var oRsW = Oracle.Execute(whichSQL);
var xml_nodes_arr = [];
var xml_nodes_dom = new ActiveXObject("MSXML2.DOMDocument.6.0");
var FCLTElement = xml_nodes_dom.createElement("facilitor");
var headerDone = false;
where = "";
while (!oRsW.Eof)
{
var xml_content = make_xml({ xmlnode: oRsW("xmlnode").Value,
key: oRsW("fac_tracking_refkey").Value,
xtrakey: xtrakey,
where: where
});
// Loggen van de individuele XMLNODE's
// XML2TEMP(xml_content, "XML_" + oRsW("xmlnode").Value + "_" + oRsW("fac_tracking_refkey").Value);
__Log("XML '" + oRsW("xmlnode").Value + "' voor key " + oRsW("fac_tracking_refkey").Value + " is " + xml_content.length + " karakters");
xml_nodes_arr.push(xml_content); // E<>n node
var xmldoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
xmldoc.async = false;
xmldoc.loadXML(xml_content);
xmldoc.setProperty("SelectionLanguage", "XPath");
if (!headerDone)
{
node = xmlReq.selectSingleNode("facilitor/getinfo");
//var FCLTElement = xml_nodes_dom.createElement("begintimestamp");
var sql = "SELECT (TO_DATE("+safe.quoted_sql(beginTag)+", 'YYYY-MM-DD HH24:MI:SS')"
+ " - TO_DATE ('01-01-1970', 'DD-MM-YYYY')) * 86400 FROM DUAL"
var ts = Oracle.Execute(sql);
var tNode = xml_nodes_dom.createTextNode(ts(0).value);
bnode = xml_nodes_dom.createElement("begintimestamp");
bnode.appendChild(tNode)
node.appendChild(bnode);
FCLTElement.appendChild(node);
sql = "SELECT (TO_DATE("+safe.quoted_sql(eindTag)+", 'YYYY-MM-DD HH24:MI:SS')"
+ " - TO_DATE ('01-01-1970', 'DD-MM-YYYY')) * 86400 FROM DUAL"
ts = Oracle.Execute(sql);
tNode = xml_nodes_dom.createTextNode(ts(0).value);
bnode = xml_nodes_dom.createElement("eindtimestamp");
bnode.appendChild(tNode)
node.appendChild(bnode);
FCLTElement.appendChild(node);
node = xmldoc.selectSingleNode("facilitor/header");
FCLTElement.appendChild(node);
node = xmldoc.selectSingleNode("facilitor/lcl"); // TODO: Eigenlijk wil je deze mergen over alle xmlNodes heen
FCLTElement.appendChild(node);
headerDone = true;
}
node = xmldoc.selectSingleNode("facilitor/" + oRsW("xmlnode").Value);
FCLTElement.appendChild(node);
oRsW.moveNext();
}
oRsW.Close();
xml_nodes_dom.appendChild(FCLTElement);
XML2TEMP(xml_nodes_dom.xml, "DATAXML");
Response.ContentType = "text/xml";
mode = xmlnode; // is dit logisch? PF: volgens mij helemaal niet
STR2Stream(xml_nodes_dom.xml, stylesheet, Response, mode, srtnotificatie);
Session.Abandon(); // Voor de zekerheid
%>

View File

@@ -23,5 +23,7 @@
Session.Codepage = 65001;
Response.Charset = 'utf-8';
var API = new API_func();
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
%>

View File

@@ -16,7 +16,7 @@
Notes:
*/
DOCTYPE_Disable = 1;
THIS_FILE = "appl/api/api_besordsoap.asp";
THIS_FILE = "appl/api/api_mldsoap.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/xml_converter.inc" -->
@@ -28,29 +28,17 @@
Session.Codepage = 65001;
Response.Charset = 'utf-8';
var API = new API_func();
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
var tsql = "-"; // Voor tijdelijke statement(s)
var sql = "-"; // De uiteindelijke update-sql
var resultcode = -1; /* Zolang deze -1 is, is het nog goed. Uiteindelijk eindigt het met 0 (als goed). */
var resulttekst = "";
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
if (API.apidata.stylesheet)
{
var iXsl = Server.CreateObject("MSXML2.DOMDocument.6.0");
if( ! iXsl.load(Server.MapPath(API.apidata.stylesheet)) )
{
API.error("Could not load XSL " + API.apidata.stylesheet + "\n" + iXsl.parseError.reason);
}
var inputXML = Server.CreateObject("MSXML2.DOMDocument.6.0");
inputXML.load(Request);
inputXML.transformNodeToObject(iXsl, xmlReq);
}
else
xmlReq.load(Request);
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.4.0");
xmlReq.load(Request);
if (API.apidata.loglevel) __Log2File(xmlReq.xml, API.APIname + "_TUSSEN");
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.4.0");
xmlResp.appendChild(xmlResp.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""))
// The response
@@ -59,7 +47,7 @@
var now = new Date();
var nowtxt = now.getFullYear()+'-'+padout(now.getMonth()+1) +'-'+padout(now.getDate()) +' '
+padout(now.getHours()) +':'+padout(now.getMinutes())+':'+padout(now.getSeconds());
var elmHeader = xmlResp.createElement("header");
var FCLTHeader = xmlResp.createElement("header");
var headerinfo = {
// file: String(Request.ServerVariables("SCRIPT_NAME")).toLowerCase(),
datum: nowtxt,
@@ -71,9 +59,22 @@
{
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(headerinfo[param]));
elmHeader.appendChild(FCLTdata);
FCLTHeader.appendChild(FCLTdata);
}
FCLTElement.appendChild(elmHeader);
FCLTElement.appendChild(FCLTHeader);
function XMLval(xml, tag)
{
if (!xml)
return null;
var xx = xml.getElementsByTagName(tag);
if (!xx || !xx.length)
return null;
xx = xx[0].childNodes
if (!xx || !xx.length)
return null;
return xx[0].nodeValue;
}
// Hier zou het echte werk moeten gebeuren nav. xmlReq
// en FCLTElement moeten we uitbreiden met antwoorden.
@@ -100,41 +101,34 @@
var bes_key = parseInt(idarr[0], 10);
var opdrvolgnr = parseInt(idarr[1], 10);
if (isNaN (bes_key) || isNaN (opdrvolgnr))
{
resultcode = 2;
resulttekst = "Invalid ID (key="+ opdrid +")";
}
else if (opdraction != "update")
{
resultcode = 2;
resulttekst = "Invalid action (type="+ opdraction +")";
}
else
{
if (isNaN (bes_key) || isNaN (opdrvolgnr)) {
resultcode = 2;
resulttekst = "Invalid ID (key="+ opdrid +")";
} else if (opdraction != "update") {
resultcode = 2;
resulttekst = "Invalid action (type="+ opdraction +")";
} else {
tsql = "SELECT bes_bestelopdr_key, prs_bedrijf_key, bes_bestelopdr_status "
+ " FROM bes_bestelopdr"
+ " WHERE bes_bestelopdr_id="+ safe.quoted_sql(opdrid);
var oRs = Oracle.Execute(tsql);
if (!oRs.eof)
{
if (!oRs.eof) {
opdr_key = oRs("bes_bestelopdr_key").value;
lev_key = oRs("prs_bedrijf_key").value;
curstatus = oRs("bes_bestelopdr_status").value;
}
if (opdr_key == -1)
{
if (opdr_key == -1) {
resultcode = 3;
resulttekst = "Unknown order";
}
else
{ // Hier heb ik een geldige bes_bestelling_key + bes_bestelopdr_key.
// Bericht bevat statuswijziging of artikellijst; nooit beide!
if (opdrstatus != null)
{ // Hier is dus een status meegegeven; evt. artikellijst wordt genegeerd!
switch (opdrstatus)
{
} else {
// Hier heb ik een geldige bes_bestelling_key + bes_bestelopdr_key.
// Bericht bevat statuswijziging of artikellijst met "geleverde" aantallen;
// in principe nooit beide!
if (opdrstatus != null) // Statuswijziging; evt. artikellijst wordt genegeerd!
{
// Er is dus wel een status meegegeven.
switch (opdrstatus) {
case 'BES2CO':
case 'BES2RE':
var opdropm_kolom = "BES_BESTELOPDR_OPMERKING";
@@ -143,29 +137,22 @@
tsql = "SELECT prs_bedrijf_order_confirm "
+ " FROM prs_bedrijf"
+ " WHERE prs_bedrijf_key="+ lev_key;
oRs = Oracle.Execute(tsql);
if (oRs("prs_bedrijf_order_confirm").value == 1)
{
var oRs = Oracle.Execute(tsql);
if (oRs("prs_bedrijf_order_confirm").value == 1) {
if (curstatus == 5) { // Ter bevestiging
if (opdrstatus == 'BES2CO')
{
if (opdrstatus == 'BES2CO') {
tsql = "BEGIN BES.acceptopdracht(" + opdr_key + ", " + user_key +", ''); END;";
Oracle.Execute(tsql);
}
else
{
} else {
tsql = "BEGIN BES.rejectopdracht(" + opdr_key + ", " + user_key +", ''); END;";
Oracle.Execute(tsql);
}
}
else
{
} else {
resultcode = 5;
resulttekst = "Invalid status change";
}
}
else
{
} else {
resultcode = 4;
resulttekst = "Remote confirmation not enabled";
}
@@ -180,17 +167,16 @@
+ " AND bi.bes_srtdeel_key=sd.bes_srtdeel_key"
+ " AND sd.bes_srtgroep_key=sg.bes_srtgroep_key"
+ " AND sg.ins_discipline_key=dp.bes_ins_discipline_key";
oRs = Oracle.Execute(tsql);
if (oRs("bes_disc_params_remoteconfirm").value == 1)
{
if (curstatus == 4 )
{ // In bestelling
var oRs = Oracle.Execute(tsql);
if (oRs("bes_disc_params_remoteconfirm").value == 1) {
if (curstatus == 4 ) { // In bestelling
// Zeg dat alles geleverd is wat besteld is.
tsql = "UPDATE bes_bestelopdr_item "
+ " SET bes_bestelopdr_item_aantalontv=bes_bestelopdr_item_aantal"
+ " , bes_bestelopdr_item_ontvangen=SYSDATE"
+ " WHERE bes_bestelopdr_key="+ opdr_key;
Oracle.Execute(tsql);
var oRs = Oracle.Execute(tsql);
bes.updatebestelopdrstatus(opdr_key, user_key);
// Sluit alle aanvraagregels af die nu geheel geleverd zijn.
@@ -205,17 +191,13 @@
+ " AND bi.bes_bestelopdr_item_key=boi.bes_bestelopdr_item_key"
+ " AND boi.bes_bestelopdr_key="+ opdr_key
+ " AND boi.bes_bestelopdr_item_aantal=boi.bes_bestelopdr_item_aantalontv)";
Oracle.Execute(tsql);
var oRs = Oracle.Execute(tsql);
bes.updatebestellingstatus (bes_key, user_key);
}
else
{
} else {
resultcode = 5;
resulttekst = "Invalid status change";
}
}
else
{
} else {
resultcode = 4;
resulttekst = "Remote delivery not enabled";
}
@@ -224,162 +206,108 @@
resultcode = 2;
resulttekst = "Invalid status";
} // switch
}
else
{ // Hier is dus een artikellijst meegegeven (prijswijzigingen, aantallen en/of alleen opmerking)!
} else { // Artikellijst met "geleverde" aantallen (of alleen opmerking).
var artikelen = opdrachten[i].getElementsByTagName("artikel");
if (artikelen.length > 0)
{ // Loop door artikelen.
if (curstatus == 4 )
{ // In bestelling; alleen in deze toestand mogen - via API - artikelen worden bijgewerkt!
var opdropm_kolom = "BES_BESTELOPDR_DELIVERY_OPMERK";
if (artikelen.length > 0) { // Loop door artikelen.
var opdropm_kolom = "BES_BESTELOPDR_DELIVERY_OPMERK";
for (i=0; i < artikelen.length && resultcode == -1; i++)
{ // Lees per node weer de tags en waarden.
var artikelnr = artikelen[i].getAttribute("nummer");
var newprijs = XMLval(artikelen[i], "prijs");
var newprijsval = parseFloat(XMLval(artikelen[i], "prijs"));
var newink = XMLval(artikelen[i], "inkprijs");
var newinkval = parseFloat(XMLval(artikelen[i], "inkprijs"));
var newbruto = XMLval(artikelen[i], "brutoprijs");
var newbrutoval = parseFloat(XMLval(artikelen[i], "brutoprijs"));
var newontv = XMLval(artikelen[i], "aantalontv");
var newontvval = parseInt(XMLval(artikelen[i], "aantalontv"), 10);
// Check of vinkje bij catalogus registratie van levering toestaat.
tsql = "SELECT MAX(dp.bes_disc_params_remoteconfirm) bes_disc_params_remoteconfirm "
+ " FROM bes_bestelling_item bi, bes_srtdeel sd, bes_srtgroep sg, bes_disc_params dp"
+ " WHERE bi.bes_bestelling_key="+ bes_key
+ " AND bi.bes_srtdeel_key=sd.bes_srtdeel_key"
+ " AND sd.bes_srtgroep_key=sg.bes_srtgroep_key"
+ " AND sg.ins_discipline_key=dp.bes_ins_discipline_key";
var oRs = Oracle.Execute(tsql);
// Bepaal item-keys plus huidige aantallen besteld/geleverd voor artikel.
tsql = "SELECT bi.bes_bestelling_item_key, bi.bes_bestelopdr_item_key, "
+ " boi.bes_bestelopdr_item_aantal curaant, "
+ " COALESCE(boi.bes_bestelopdr_item_aantalontv, 0) curontv "
+ " FROM bes_bestelopdr_item boi, bes_bestelling_item bi, bes_srtdeel sd"
+ " WHERE boi.bes_bestelopdr_key="+ opdr_key
+ " AND boi.bes_bestelopdr_item_key=bi.bes_bestelopdr_item_key"
+ " AND bi.bes_srtdeel_key=sd.bes_srtdeel_key"
+ " AND sd.bes_srtdeel_nr="+ safe.quoted_sql(artikelnr);
oRs = Oracle.Execute(tsql);
if (!oRs.eof)
{
var bi_key = oRs("bes_bestelling_item_key").value;
var boi_key = oRs("bes_bestelopdr_item_key").value;
var curaant = oRs("curaant").value;
var curontv = oRs("curontv").value;
if (oRs("bes_disc_params_remoteconfirm").value == 1) {
if (curstatus == 4 ) { // In bestelling
for (i=0; i < artikelen.length; i++)
{
// Lees per node weer de tags en waarden.
var artikelnr = artikelen[i].getAttribute("nummer");
var newontv = parseInt(XMLval(artikelen[i], "aantalontv"), 10);
if ((newprijs && (isNaN (newprijsval) || newprijsval < 0)) ||
(newink && (isNaN (newinkval) || newinkval < 0)) ||
(newbruto && (isNaN (newbrutoval) || newbrutoval < 0)))
{
resultcode = 8;
resulttekst = "Invalid price(s)";
}
else if (newprijs || newink || newbruto)
{ // Werk de eventuele prijzen bij; zover meegegeven zijn die geldig.
// In de bestelaanvraag!
tsql = "UPDATE bes_bestelling_item "
+ " SET bes_srtdeel_key=bes_srtdeel_key"
+ (newprijs ? ", bes_bestelling_item_prijs="+ newprijsval : "")
+ (newink ? ", bes_bestelling_item_inkprijs="+ newinkval : "")
+ (newbruto ? ", bes_bestelling_item_brutoprijs="+ newbrutoval : "")
+ " WHERE bes_bestelling_item_key="+ bi_key;
Oracle.Execute(tsql);
shared.trackaction("BESUPD", bes_key, L("lcl_bes_is_besupdtrackprice").format(S("bes_bestelling_prefix") + bes_key, safe.curr(newprijsval)));
// Bepaal huidige aantallen besteld/geleverd voor artikel.
tsql = "SELECT boi.bes_bestelopdr_item_aantal curaant, COALESCE(boi.bes_bestelopdr_item_aantalontv, 0) curontv "
+ " FROM bes_bestelopdr_item boi, bes_bestelling_item bi, bes_srtdeel sd"
+ " WHERE boi.bes_bestelopdr_key="+ opdr_key
+ " AND boi.bes_bestelopdr_item_key=bi.bes_bestelopdr_item_key"
+ " AND bi.bes_srtdeel_key=sd.bes_srtdeel_key"
+ " AND sd.bes_srtdeel_nr="+ safe.quoted_sql(artikelnr);
var oRs = Oracle.Execute(tsql);
if (!oRs.eof) {
var curaant = oRs("curaant").value;
var curontv = oRs("curontv").value;
// En de bestelopdracht!
tsql = "UPDATE bes_bestelopdr_item "
+ " SET bes_bestelopdr_item_posnr=bes_bestelopdr_item_posnr"
+ (newprijs ? ", bes_bestelopdr_item_prijs="+ newprijsval : "")
+ (newink ? ", bes_bestelopdr_item_inkprijs="+ newinkval : "")
+ (newbruto ? ", bes_bestelopdr_item_brutoprijs="+ newbrutoval : "")
+ " WHERE bes_bestelopdr_item_key="+ boi_key;
Oracle.Execute(tsql);
shared.trackaction("BES2UP", opdr_key, L("lcl_bes_is_bes2uptrackprice").format(S("bes_bestelopdr_prefix") + opdrid, safe.curr(newprijsval)));
}
if (newontv && resultcode == -1)
{ // Nieuw aantal ontvangen en nog steeds geen fouten.
// Check of vinkje bij catalogus registratie van levering toestaat.
tsql = "SELECT MAX(dp.bes_disc_params_remoteconfirm) bes_disc_params_remoteconfirm "
+ " FROM bes_bestelling_item bi, bes_srtdeel sd, bes_srtgroep sg, bes_disc_params dp"
+ " WHERE bi.bes_bestelling_key="+ bes_key
+ " AND bi.bes_srtdeel_key=sd.bes_srtdeel_key"
+ " AND sd.bes_srtgroep_key=sg.bes_srtgroep_key"
+ " AND sg.ins_discipline_key=dp.bes_ins_discipline_key";
oRs = Oracle.Execute(tsql);
if (oRs("bes_disc_params_remoteconfirm").value == 1)
{ // Correcties of (deel)registratie retouren met negatieve <aantalontv> niet toegestaan; wel via BES2AF!
if (isNaN (newontvval) || newontvval < 0 || (curontv + newontvval) > curaant)
{
resultcode = 8;
resulttekst = "Invalid delivery count";
}
else
{ // Werk het geleverde aantal bij.
tsql = "UPDATE bes_bestelopdr_item "
+ " SET bes_bestelopdr_item_ontvangen=SYSDATE"
+ " , bes_bestelopdr_item_aantalontv=COALESCE(bes_bestelopdr_item_aantalontv,0)+"+ newontvval
+ " WHERE bes_bestelopdr_item_key="+ boi_key;
Oracle.Execute(tsql);
bes.updatebestelopdrstatus(opdr_key, user_key);
}
}
else
{
resultcode = 4;
resulttekst = "Remote delivery not enabled";
}
}
}
else
{
resultcode = 7;
resulttekst = "Unknown article number";
if (!isNaN (newontv) && (curontv + newontv) <= curaant) {
// Werk het geleverde aantal bij.
tsql = "UPDATE bes_bestelopdr_item boi "
+ " SET boi.bes_bestelopdr_item_aantalontv=COALESCE(boi.bes_bestelopdr_item_aantalontv, 0)+"+ newontv
+ " , bes_bestelopdr_item_ontvangen=SYSDATE"
+ " WHERE boi.bes_bestelopdr_key="+ opdr_key
+ " AND COALESCE(boi.bes_bestelopdr_item_aantalontv, 0)+"+ newontv + ">0"
+ " AND EXISTS"
+ " (SELECT 1 FROM bes_bestelling_item bi, bes_srtdeel sd "
+ " WHERE bi.bes_bestelopdr_item_key=boi.bes_bestelopdr_item_key"
+ " AND bi.bes_srtdeel_key=sd.bes_srtdeel_key"
+ " AND sd.bes_srtdeel_nr="+ safe.quoted_sql(artikelnr) +")";
var oRs = Oracle.Execute(tsql);
bes.updatebestelopdrstatus(opdr_key, user_key);
} else {
resultcode = 7;
resulttekst = "Invalid delivery count";
}
} else {
resultcode = 6;
resulttekst = "Unknown article number";
}
}
// Sluit alle aanvraagregels af die - mogelijk - nu geheel geleverd zijn.
tsql = "UPDATE bes_bestelling_item "
+ " SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal"
+ " WHERE bes_bestelling_item_key IN"
+ " (SELECT bi.bes_bestelling_item_key "
+ " FROM bes_bestelling b, bes_bestelling_item bi, bes_bestelopdr_item boi"
+ " WHERE b.bes_bestelling_key="+ bes_key
+ " AND b.bes_bestelling_status=5" // Besteld
+ " AND b.bes_bestelling_key=bi.bes_bestelling_key"
+ " AND bi.bes_bestelopdr_item_key=boi.bes_bestelopdr_item_key"
+ " AND boi.bes_bestelopdr_key="+ opdr_key
+ " AND boi.bes_bestelopdr_item_aantal=boi.bes_bestelopdr_item_aantalontv)";
var oRs = Oracle.Execute(tsql);
bes.updatebestellingstatus (bes_key, user_key);
} else {
resultcode = 5;
resulttekst = "Invalid delivery timing";
}
// Sluit alle aanvraagregels af die - mogelijk - nu geheel geleverd zijn.
tsql = "UPDATE bes_bestelling_item "
+ " SET bes_bestelling_item_aantalontv = bes_bestelling_item_aantal"
+ " WHERE bes_bestelling_item_key IN"
+ " (SELECT bi.bes_bestelling_item_key "
+ " FROM bes_bestelling b, bes_bestelling_item bi, bes_bestelopdr_item boi"
+ " WHERE b.bes_bestelling_key="+ bes_key
+ " AND b.bes_bestelling_status=5" // Besteld
+ " AND b.bes_bestelling_key=bi.bes_bestelling_key"
+ " AND bi.bes_bestelopdr_item_key=boi.bes_bestelopdr_item_key"
+ " AND boi.bes_bestelopdr_key="+ opdr_key
+ " AND boi.bes_bestelopdr_item_aantal=boi.bes_bestelopdr_item_aantalontv)";
Oracle.Execute(tsql);
bes.updatebestellingstatus (bes_key, user_key);
}
else
{
resultcode = 6;
resulttekst = "Invalid update timing";
}
}
else
{ // Raar, alleen opmerking, heeft dan vast niets met levering te maken?
} else {
resultcode = 4;
resulttekst = "Remote delivery not enabled";
}
} else {
// Raar, alleen opmerking, heeft dan vast niets met levering te maken?
var opdropm_kolom = "BES_BESTELOPDR_OPMERKING";
}
}
}
// Dit zijn de overige wijzigingen (alleen opmerking), die voeren we alleen uit
// bij geen of een geldige statuswijziging.
if (resultcode == -1)
{ // Nog steeds geen fouten.
if (opdropm != null )
{
if (resultcode == -1) { // Nog steeds geen fouten.
if (opdropm != null ) {
tsql = "UPDATE bes_bestelopdr "
+ " SET "+ opdropm_kolom
+ "=DECODE ("+ opdropm_kolom
+ " , NULL, "+ safe.quoted_sql(opdropm)
+ " , SUBSTR ("+ opdropm_kolom +"||CHR(13)||CHR(10)||"+ safe.quoted_sql(opdropm) +", 1, 4000))"
+ " WHERE bes_bestelopdr_key="+ opdr_key;
Oracle.Execute(tsql);
oRs = Oracle.Execute(tsql);
}
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze bestelopdracht.
}
} // end geldige opdrachtkey
oRs.Close();
} // end geldige opdrid
var binfo = {
@@ -405,14 +333,6 @@
xmlResp.appendChild(FCLTElement);
if (API.apidata.stylesheet)
{
// Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...
STR2Stream(xmlResp.xml, API.apidata.stylesheet, Response, {});
}
else
{
Response.ContentType = "text/xml";
Response.Write(xmlResp.xml)
}
Response.ContentType = "text/xml";
Response.Write(xmlResp.xml)
%>

View File

@@ -1,276 +0,0 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: api_bes_soap.asp
Description: API voor bes-soap berichten (bestelAANVRAGEN)
Interpreteert bericht zodanig dat een bestelaanvraag wordt aangemaakt/aangepast.
Parameters: Een xml
Status: Eerste implementatie in kader FSN#26296 (tbv Corsa/BCT)
Context:
Notes:
*/
DOCTYPE_Disable = 1;
THIS_FILE = "appl/api/api_bessoap.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/xml_converter.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/flexfiles.inc" -->
<!-- #include file="../Shared/upload.inc" -->
<!-- #include file="../api/api.inc" -->
<!-- #include file="../shared/kpl_ksrt_validate.inc" -->
<!-- #include file="../bes/bes.inc" -->
<%
// We sturen het antwoord in UTF-8.
Session.Codepage = 65001;
Response.Charset = 'utf-8';
var API = new API_func();
var tsql = "-"; // Voor tijdelijke statement(s)
var sql = "-"; // De uiteindelijke insert/update-sql
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
if (API.apidata.stylesheet)
{
var iXsl = Server.CreateObject("MSXML2.DOMDocument.6.0");
if( ! iXsl.load(Server.MapPath(API.apidata.stylesheet)) )
{
API.error("Could not load XSL " + API.apidata.stylesheet + "\n" + iXsl.parseError.reason);
}
var inputXML = Server.CreateObject("MSXML2.DOMDocument.6.0");
inputXML.load(Request);
inputXML.transformNodeToObject(iXsl, xmlReq);
}
else
xmlReq.load(Request);
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
xmlResp.appendChild(xmlResp.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""))
// The response.
var FCLTElement = xmlResp.createElement("facilitor");
// The response header.
var now = new Date();
var nowtxt = now.getFullYear()+'-'+padout(now.getMonth()+1) +'-'+padout(now.getDate()) +' '
+padout(now.getHours()) +':'+padout(now.getMinutes())+':'+padout(now.getSeconds());
var FCLTHeader = xmlResp.createElement("header");
var headerinfo = {
// file: String(Request.ServerVariables("SCRIPT_NAME")).toLowerCase(),
datum: nowtxt,
naam: user.naam(),
custId: customerId,
language: user.lang()
}
for (param in headerinfo)
{
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(headerinfo[param]));
FCLTHeader.appendChild(FCLTdata);
}
FCLTElement.appendChild(FCLTHeader);
// Hier zou het echte werk moeten gebeuren nav. xmlReq
// en FCLTElement moeten we uitbreiden met antwoorden.
var detected ="?";
// xmlReq.setProperty("SelectionLanguage", "XPath"); // Weet niet of noodzakelijk
// Dit is de bestellingenloop (mochten er ooit nog anderen gaan volgen).
var bestellingen = xmlReq.getElementsByTagName("bestelling");
for (i=0; i < bestellingen.length; i++)
{
var resultcode = -1; /* Zolang deze -1 is, is het nog goed. Uiteindelijk eindigt het met 0 (als goed). */
var resulttekst = "";
// Lees per node de (optionele) tags en waarden.
var fields = []; // Bij te werken velden.
var besid = bestellingen[i].getAttribute("key"); // Bij type=update/delete
var besaction = bestellingen[i].getAttribute("type").toLowerCase();
var nwStatus = XMLval(bestellingen[i], "status");
if (besid == null) { // Voorkom problemen als key-attribuut ontbreekt!
besid = '';
}
var bestelling_key = parseInt(besid, 10); // En anders bepaald bij insert!
user.checkAutorisation("WEB_BESUSE"); // Dit is nog ongeacht de reservering
if (besaction == 'insert') {
resultcode = 999;
resulttekst = "Insert unsupported";
}
else if (besaction == 'update')
{
if (besid == '') {
resultcode = 2;
resulttekst = "Undefined bestelling (key)";
}
else if (isNaN (bestelling_key)) {
resultcode = 2;
resulttekst = "Invalid bestelling (key) "+besid;
}
else {
tsql = "SELECT bes_bestelling_key"
+ " FROM bes_bestelling"
+ " WHERE bes_bestelling_key="+bestelling_key
+ " AND 1=1"; // Niet verwijderd, ...???
var toRs = Oracle.Execute(tsql);
if (!toRs.eof) {
// Hier heb ik een geldige bes_bestelling_key.
bes_bestelling_key = toRs("bes_bestelling_key").value;
var bes_info = bes.bestelling_info(bes_bestelling_key); // Globale variabele met alle bes_bestelling informatie
var this_bes = bes.func_enabled_bestelling(bes_info); // Wat heb ik zoal aan rechten op deze specifieke reservering
if(!this_bes.canChange) {
resultcode = 9;
resulttekst = "Niet geautoriseerd voor bestelling "+besid;
}
else {
if (nwStatus != null) { // Bij update optioneel
// statusdiagram afdwingen:
// * BESFIT alleen vanuit status 2
// * BESREJ alleen vanuit status 2 en 3
sql = "SELECT bes_bestelling_status"
+ " FROM bes_bestelling"
+ " WHERE bes_bestelling_key="+bestelling_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof) {
curStatus = oRs("bes_bestelling_status").value;
// Feitelijke UPDATE status.
// BESFIT: alleen vanuit status 2
if (nwStatus == "BESFIT") {
if (curStatus == 2) {
bes.setbestellingstatus(bes_bestelling_key, 3); // Gefiatteerd
sql = "SELECT bes_bestelling_status"
+ " FROM bes_bestelling"
+ " WHERE bes_bestelling_key="+bestelling_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof) {
var bes_status = oRs("bes_bestelling_status").value;
if (bes_status == 3) {
resulttekst = "Bestelling "+bes_bestelling_key+" gefiatteerd";
resultcode = 0;
}
else {
resulttekst = "Bestelling "+bes_bestelling_key+" niet gefiatteerd";
resultcode = 308;
}
}
else {
resulttekst = "Fout bij ophalen nieuwe status";
resultcode = 307;
}
}
else if (curStatus == 3) {
resulttekst = "Bestelling "+bes_bestelling_key+" is al gefiatteerd";
resultcode = 306;
}
else {
resulttekst = "Kan niet fiatteren; ongeldige beginstatus";
resultcode = 305;
}
}
// BESREJ: alleen vanuit status 2 en 3
else if (nwStatus == "BESREJ") {
if (curStatus == 2 || curStatus == 3) {
bes.setbestellingstatus(bes_bestelling_key, 1); // Afgewezen
sql = "SELECT bes_bestelling_status"
+ " FROM bes_bestelling"
+ " WHERE bes_bestelling_key="+bestelling_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof) {
var bes_status = oRs("bes_bestelling_status").value;
if (bes_status == 1) {
resulttekst = "Bestelling "+bes_bestelling_key+" afgewezen";
resultcode = 0;
} else {
resulttekst = "Bestelling "+bes_bestelling_key+" niet afgewezen";
resultcode = 108;
}
} else {
resulttekst = "Fout bij ophalen nieuwe status";
resultcode = 107;
}
}
else if (curStatus == 1) {
resulttekst = "Bestelling "+bes_bestelling_key+" is al afgewezen";
resultcode = 106;
}
else {
resulttekst = "Kan niet afwijzen; ongeldige beginstatus";
resultcode = 105;
}
}
else {
resultcode = 3;
resulttekst = "Ongeldige status "+nwStatus;
}
} else {
resultcode = 4;
resulttekst = "Ongedefinieerde huidige status";
}
} // nwStatus != null
if (resultcode == -1) { // nog steeds geen fouten
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze bestelling.
}
}
////////////////////////////////////////////////////////////////////////////////
} else {
resultcode = 5;
resulttekst = "Not updatable bestelling "+besid;
}
toRs.Close();
}
}
else if (besaction == 'delete')
{
resultcode = 999;
resulttekst = "Delete unsupported";
}
else {
resultcode = 2;
resulttekst = "Undefined operation (type)";
}
var binfo = {
returncode: resultcode,
returntekst: resulttekst,
// executed:sql, // debug
datum: nowtxt, // TODO: Beter ook xml-datum???
besid: besid
}
var FCLTBody = xmlResp.createElement("bestelling"); // type=response
FCLTBody.setAttribute('key', besid);
FCLTBody.setAttribute('type', 'response');
for (param in binfo)
{
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(binfo[param]));
FCLTBody.appendChild(FCLTdata);
}
FCLTElement.appendChild(FCLTBody);
} // end for
// Alle bestelling-nodes zijn behandeld.
xmlResp.appendChild(FCLTElement);
//__DoLog("Ik gebruik stylesheet '"+API.apidata.stylesheet+"'");
if (API.apidata.stylesheet)
{
var outputXML = Server.CreateObject("MSXML2.DOMDocument.6.0");
xmlResp.transformNodeToObject(iXsl, outputXML);
Response.ContentType = "text/xml";
Response.Write(outputXML.xml)
}
else
{
Response.ContentType = "text/xml";
Response.Write(xmlResp.xml)
}
%>

View File

@@ -10,283 +10,20 @@
Status:
Context:
Notes:
Onderstaand het voorstel van RWSN/MOOP. Wij doen XML ipv JSON, daar moet getransformeerd worden
(2) Versturen van de bezoekersregistraties
Voor het versturen van de registraties stel ik voor om een HTTP-POST service te maken, deze is bijvoorbeeld te bereiken op ~/visitations
In de request header geef ik de Api Key mee:
Api-Key: 'te_bepalen_door_facilitor'
In de body stel ik voor <20><>n key-value pair mee te geven met de naam jsonData waarin de hele json van de bezoekersregistratie in verwerkt zit:
json_data={
"start":"Fri, 03 Aug 2012 10:09:39 +0200", //begindatum in RFC2822 formaat
"end":"HH:MM",
"host_id":2934, //id van de ingelogde gebruiker
"building_id":4712, //id van gekozen locatie
"visitors":
[
{
"name":"Pietje Puk",
"company":"RUG"
},
{
"name":"Jan Janssen",
"company":"Achmea"
},
{...}
]
}
Bij een juiste verwerking wordt http status code 201 teruggegeven met enkel een succes json:
{
"success":true,
}
Anders een 4xx of 5xx code met daarin een json geformatteerde fout:
{
"success":false,
"errors":
[
{
"description":"start is not a valied RFC2822 format"
},
{
"description":"building_id cannot be null"
},
{...}
]
}
*/
DOCTYPE_Disable = 1;
THIS_FILE = "appl/api/api_bezsoap.asp";
DOCTYPE_Disable = 1;
THIS_FILE = "appl/api/api_bezsoap.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/xml_converter.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../api/api.inc" -->
<%
// We sturen het antwoord in UTF-8.
Session.Codepage = 65001;
Response.Charset = 'utf-8';
// We sturen het antwoord in UTF-8.
Session.Codepage = 65001;
Response.Charset = 'utf-8';
var API = new API_func();
// XML Omzetten naar equivalente JSON
// var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
// xmlReq.load(Request);
// The response.
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
xmlResp.appendChild(xmlResp.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""))
var FCLTElement = xmlResp.createElement("facilitor");
// The response header.
var now = new Date();
var nowtxt = now.getFullYear() + '-' + padout(now.getMonth() + 1) + '-' + padout(now.getDate()) + ' '
+ padout(now.getHours()) + ':' + padout(now.getMinutes()) + ':' + padout(now.getSeconds());
var elmHeader = xmlResp.createElement("header");
var headerinfo = {datum: nowtxt,
naam: user.naam(),
custId: customerId,
language: user.lang()
}
for (param in headerinfo)
{
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(headerinfo[param]));
elmHeader.appendChild(FCLTdata);
}
FCLTElement.appendChild(elmHeader);
// Hier zou het echte werk moeten gebeuren nav. xmlReq
// en FCLTElement moeten we uitbreiden met antwoorden.
//var afspraken = xmlReq.getElementsByTagName("afspraak");
user.checkAutorisation("WEB_BEZUSE"); // Dit is nog ongeacht de bestelling
var resultcode = -1; /* Zolang deze -1 is, is het nog goed. Uiteindelijk eindigt het met 0 (als goed). */
var resulttekst = "";
var json_txt = Request.Form;
var json_data = eval("(" + json_txt + ")");
SaveOneAfspraak(json_data); // The one and only
// TODO: onderstaande code moet een generieke bez.afspraak_create (of afspraak_save) worden
// en ook gebruikt worden door bez_edit_afspraak_save.asp. Zo ver zijn we nog niet...
function SaveOneAfspraak(json_data)
{
var afspr_key;
var bez_actie;
var alg_locatie_key;
var alg_onrg_key;
var date_to;
var date_from = new Date(json_data.start);
if (json_data.start == "undefined" || typeof date_from != "object" || isNaN(date_from))
{
resultcode = 2;
resulttekst = "Undefined aankomst datum";
}
else
{
date_to = date_from;
date_to = new Date(date_from.getTime());
var time_end = json_data.end;
if (json_data.time_end != "undefined" && typeof time_end == "string")
var time_end = time_end.split(":");
date_to.setHours(time_end[0], time_end[1]);
if (time_end.length != 2 || typeof date_to != "object" || isNaN(date_to))
{
resultcode = 2;
resulttekst = "Undefined vertrek tijd";
}
else if (date_to < date_from)
{
resultcode = 2;
resulttekst = "Vertrek tijd voor aankomst tijd";
}
else
{
// Standaard actie voor mobile: Opbellen en op laten halen.
var sql = " SELECT bez_actie_key FROM bez_actie WHERE bez_actie_omschrijving LIKE 'Op laten halen (bellen)'"
var oRs = Oracle.Execute(sql);
bez_actie = oRs("bez_actie_key").Value;
var alg_gebouw_key = json_data.building_id;
if (!alg_gebouw_key || alg_gebouw_key < 0)
{
resultcode = 2;
resulttekst = "Undefined alg_gebouw_key";
}
else if (S("vis_afspraak_onrgoed_uses_keys") == 0)
{
sql = "SELECT SUBSTR (alg_plaatsaanduiding, 1, 30) plaats"
+ " FROM alg_v_plaatsaanduiding_all"
+ " WHERE alg_onroerendgoed_keys = " + alg_gebouw_key
+ " AND alg_onroerendgoed_type <> 'L'";
if (!oRs.eof)
var plaats = oRs("plaats").Value;
else
{
resultcode = 5;
resulttekst = "Building_id not found";
}
}
else
{
sql = "SELECT alg_locatie_key FROM alg_gebouw WHERE alg_gebouw_key = " + alg_gebouw_key;
oRs = Oracle.Execute(sql);
alg_locatie_key = oRs("alg_locatie_key").Value;
if (!alg_locatie_key || alg_locatie_key < 0)
{
resultcode = 2;
resulttekst = "Undefined alg_locatie_key";
}
else
{
var fields = []; // Bij te werken velden.
// Altijd nieuwe afspraak vooralsnog
fields.push({ dbs: "bez_afspraak_key", typ: "key", seq: "bez_s_bez_afspraak_key" });
fields.push({ dbs: "bez_afspraak_opmerking", typ: "varchar", val: "Created by mobile", len: 320 });
// Deze velden altijd opslaan (geen bez_afspraak_telefoonnr)
var fields = [ { dbs: "prs_perslid_key", typ: "key", val: user_key /* invoerder, notrack */ },
{ dbs: "bez_afspraak_datum", typ: "datetime", val: date_from, track: L("lcl_vis_start_date") },
{ dbs: "bez_actie_key", typ: "key", val: bez_actie, track: L("lcl_action"), foreign: "bez_actie" },
{ dbs: "bez_afspraak_eind", typ: "datetime", val: date_to, track: L("lcl_vis_end_date") },
{ dbs: "alg_locatie_key", typ: "key", val: alg_locatie_key, track: true /* afzonderlijke tracking, wel oldjsval */ },
{ dbs: "bez_afspraak_contact_key", typ: "key", val: user_key, track: L("lcl_vis_contactperson"), foreign: "prs_perslid" }
];
if (S("vis_afspraak_host_uses_keys") == 0)
fields.push({ dbs: "bez_afspraak_gastheer", typ: "varchar", val: user.naam(), track: L("lcl_vis_visit") });
else
fields.push({ dbs: "bez_afspraak_host_key", typ: "key", val: user_key, track: L("lcl_vis_visit"), foreign: "prs_perslid" });
if (S("vis_afspraak_onrgoed_uses_keys") == 0)
{
fields.push({ dbs: "bez_afspraak_ruimte", typ: "varchar", val: plaats, track: true /* afzonderlijke tracking, wel oldjsval */ });
}
else
{
alg_onrg_key = alg_gebouw_key; // Building_id is meegegeven
fields.push({ dbs: "alg_onrgoed_keys", typ: "key", val: alg_onrg_key, track: true /* afzonderlijke tracking, wel oldjsval */ });
}
fields.push({ dbs: "bez_afspraak_key", typ: "key", seq: "bez_s_bez_afspraak_key" });
var bezIns = buildInsert("bez_afspraak", fields, { noValidateToken: true });
afspr_key = bezIns.sequences["bez_afspraak_key"];
Oracle.Execute(bezIns.sql);
for (var i = 0; i < json_data.visitors.length; i++)
{
var visitor_data = json_data.visitors[i];
var naam = visitor_data.name;
var bedrijf = visitor_data.company;
// Geen prs_contactpersoon_key, prs_perslid_key en bez_bezoekers_pasnr
var bezfields = [ { dbs: "bez_afspraak_key", typ: "key", val: afspr_key },
{ dbs: "bez_afspraak_naam", typ: "varchar", val: naam, track: L("lcl_vis_name"), len: 30 },
{ dbs: "bez_afspraak_bedrijf", typ: "varchar", val: bedrijf, track: L("lcl_vis_company") + (S("bez_sel_internpersoon") == 1? "/" + L("lcl_department") : ""), len: 60 }
];
bezfields.push({ dbs: "bez_bezoekers_key", typ: "key", seq: "bez_s_bez_bezoekers_key" });
// Niet door BO aangemeld. Niet direct 'in' boeken.
var bezIns = buildInsert("bez_bezoekers", bezfields, { noValidateToken: true });
var bez_key = bezIns.sequences["bez_bezoekers_key"];
Oracle.Execute(bezIns.sql);
//var bezUpd = {trackarray: [L("lcl_bez_is_bezadd") + ": " + naam + "/" + bedrijf]};
}
shared.trackaction("BEZMUT", afspr_key);
}
}
}
}
if (resultcode == -1) // nog steeds geen fouten
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze reservering.
var ainfo = {returncode: resultcode,
returntekst: resulttekst,
// executed:sql, // debug
user_key: user_key,
afspr_key: afspr_key,
bez_afspraak_datum: date_from, // TODO: Beter ook xml-datum???
bez_afspraak_eind: date_to,
bez_actie_key: bez_actie,
alg_locatie_key: alg_locatie_key,
alg_onrgoed_keys: alg_onrg_key
}
if (S("vis_afspraak_host_uses_keys") == 0)
ainfo.gastheer = user.naam();
else
ainfo.host_key = user_key;
var FCLTBody = xmlResp.createElement("afspraak"); // type=response
FCLTBody.setAttribute('key', afspr_key);
FCLTBody.setAttribute('type', 'response');
for (param in ainfo)
{
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(ainfo[param]));
FCLTBody.appendChild(FCLTdata);
}
FCLTElement.appendChild(FCLTBody);
}
xmlResp.appendChild(FCLTElement);
Response.ContentType = "text/xml";
Response.Write(xmlResp.xml)
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
%>

View File

@@ -25,15 +25,17 @@
Session.Codepage = 65001;
Response.Charset = 'utf-8';
var API = new API_func();
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
var tsql = "-"; // Voor tijdelijke statement(s)
var sql = "-"; // De uiteindelijke insert/update-sql
var resultcode = -1; /* Zolang deze -1 is, is het nog goed. Uiteindelijk eindigt het met 0 (als goed). */
var resulttekst = "";
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.4.0");
xmlReq.load(Request);
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.4.0");
xmlResp.appendChild(xmlResp.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""))
// The response.
@@ -42,7 +44,7 @@
var now = new Date();
var nowtxt = now.getFullYear()+'-'+padout(now.getMonth()+1) +'-'+padout(now.getDate()) +' '
+padout(now.getHours()) +':'+padout(now.getMinutes())+':'+padout(now.getSeconds());
var elmHeader = xmlResp.createElement("header");
var FCLTHeader = xmlResp.createElement("header");
var headerinfo = {
// file: String(Request.ServerVariables("SCRIPT_NAME")).toLowerCase(),
datum: nowtxt,
@@ -54,9 +56,32 @@
{
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(headerinfo[param]));
elmHeader.appendChild(FCLTdata);
FCLTHeader.appendChild(FCLTdata);
}
FCLTElement.appendChild(FCLTHeader);
// Luie oplossing: Oracle kan dit simpeler dan JavaScript.
function XMLtoJsDate(xmlDate)
{
var sql = "SELECT TO_DATE("+safe.quoted_sql(xmlDate)+", 'YYYY-MM-DD HH24:MI:SS') FROM DUAL";
var oRs = Oracle.Execute(sql);
var dt = new Date(oRs(0).Value);
oRs.Close();
return dt;
}
function XMLval(xml, tag)
{
if (!xml)
return null;
var xx = xml.getElementsByTagName(tag);
if (!xx || !xx.length)
return null;
xx = xx[0].childNodes
if (!xx || !xx.length)
return null;
return xx[0].nodeValue;
}
FCLTElement.appendChild(elmHeader);
// Hier zou het echte werk moeten gebeuren nav. xmlReq
// en FCLTElement moeten we uitbreiden met antwoorden.
@@ -127,7 +152,7 @@
if (resultcode == -1) { // Nog steeds geen fouten.
if (fields.length > 0) {
// Construct/uitvoeren update.
var cntUpd = buildTrackingUpdate("cnt_contract", "cnt_contract_key = " + cnt_key, fields, { noValidateToken: true });
var cntUpd = buildTrackingUpdate("cnt_contract", "cnt_contract_key = " + cnt_key, fields);
oRs = Oracle.Execute(cntUpd.sql);
// Tot slot nog de tracking toevoegen.

View File

@@ -21,7 +21,9 @@
<!-- #include file="../api/api.inc" -->
<%
var API = new API_func();
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
var usrrap_key = API.apidata.usrrap_key;
//var viewname = API.apidata.viewname;

View File

@@ -23,5 +23,7 @@
Session.Codepage = 65001;
Response.Charset = 'utf-8';
var API = new API_func();
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
%>

View File

@@ -1,35 +0,0 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: api_flex.asp
Description: API voor opvragen van flexfiles
Parameters: Een xml
Status:
Context: (alleen) door Putorders
Notes: Zie flexfiles.inc/flexProps2 voor ondersteunde coderingen
*/
JSON_Result = true;
THIS_FILE = "appl/api/api_flex.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/flexfiles.inc" -->
<!-- #include file="../api/api.inc" -->
<%
var API = new API_func();
// TODO checkAuthorization("WEB_PUOxxx") ?
var flexcode = getQParam("flexcode");
var props = flexProps2(flexcode);
__Log(props);
Response.Write(JSON.stringify(props));
Response.End;
%>

View File

@@ -16,52 +16,39 @@
%>
<!-- #include file="../../appl/Shared/common.inc" -->
<!-- #include file="../../appl/api/api.inc" -->
<!-- #include file="../../appl/shared/FlexFiles.inc" -->
<script language="javascript" src="../imp/imp_shared.js" runat="server"></script>
<%
// We sturen het antwoord in UTF-8.
Session.Codepage = 65001;
Response.Charset = 'utf-8';
var API = new API_func();
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
var import_app_key = API.apidata.options['import_app_key'];
var bytes = Request.TotalBytes;
if (bytes == 0)
{
__DoLog("api_gen_import empty body posted", "#ffff00");
Response.Write("Error: no data posted for API import");
Response.End; // Grof maar anders AiAi, dat is nog erger
}
fileStream = Server.CreateObject("ADODB.Stream");
fileStream.Type = 1; // adTypeBinary eerst nog
fileStream.Open();
fileStream.Write(Request.BinaryRead(bytes));
fileStream.Write(Request.BinaryRead(Request.TotalBytes));
if (API.apidata.loglevel & 1)
fileStream.SaveToFile(Server.MapPath(rooturl + "/temp/") + "/" + customerId + "_" + API.APIname + ".tmp", 2); // 2=create
fileStream.SaveToFile(Server.MapPath(rooturl + "/temp/") + "/" + customerId + "_" + APIname + ".tmp", 2); // 2=create
var res = impReadStream(fileStream, import_app_key,
{ fac_home: Server.MapPath(rooturl + "/") + "/",
filepathname: "API " + API.APIname,
customerId: customerId,
keep_old: 300, // Parallelle import 300 seconden ondersteunen
user_key: user_key,
keep_backup: true // mits fac_import_app_folder gezet
});
var import_key = res.import_key;
filepathname: "API " + APIname,
customerId: customerId});
if (res.success)
{
var warn = L("lcl_imp_read_lines") + res.read_lines;
var res = impProcessStream(res.import_key, { customerId: customerId,
user_key: user_key });
var res = impProcessStream(res.import_key, { customerId: customerId });
}
else
var warn = res.warning;
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.4.0");
xmlResp.appendChild(xmlResp.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""));
// The response
@@ -70,44 +57,7 @@
var elementResult = xmlResp.createElement("result");
var elementResultText = xmlResp.createTextNode(warn);
elementResult.appendChild(elementResultText);
var elementDetails = xmlResp.createElement("details");
var sql = "SELECT imp_log_status,"
+ " imp_log_omschrijving,"
+ " imp_log_hint"
+ " FROM imp_log"
+ " WHERE fac_import_key ="+ import_key
+ " AND imp_log_status <> 'I'";
var oRs = Oracle.Execute(sql);
while (!oRs.Eof)
{
var elementDetail = xmlResp.createElement("detail");
var elementStatus = xmlResp.createElement("status");
var elementStatusText = xmlResp.createTextNode(oRs("imp_log_status").Value);
elementStatus.appendChild(elementStatusText);
elementDetail.appendChild(elementStatus);
if (oRs("imp_log_omschrijving").Value != null )
{
var elementOms = xmlResp.createElement("omschrijving");
var elementOmsText = xmlResp.createTextNode(oRs("imp_log_omschrijving").Value);
elementOms.appendChild(elementOmsText);
elementDetail.appendChild(elementOms);
}
if (oRs("imp_log_hint").Value != null )
{
var elementHint = xmlResp.createElement("hint");
var elementHintText = xmlResp.createTextNode(oRs("imp_log_hint").Value);
elementHint.appendChild(elementHintText);
elementDetail.appendChild(elementHint);
}
elementDetails.appendChild(elementDetail);
oRs.moveNext();
}
oRs.Close();
FCLTElement.appendChild(elementResult);
FCLTElement.appendChild(elementDetails);
xmlResp.appendChild(FCLTElement);
Response.ContentType = "text/xml";

View File

@@ -1,213 +0,0 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: api_hmail.asp
Description: API voor opvangen van hMailserver e-mails
Parameters: Een xml
Status:
Context: 1-op-1 met \UTILS\mail_receive\EventHandlers.js
Notes: Deze API krijgen we XML binnen, en geven JSON terug.
Dat was het eenvoudigst
*/
JSON_Result = true;
THIS_FILE = "appl/api/api_hmail.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/xml_converter.inc" -->
<!-- #include file="../Shared/flexfiles.inc" -->
<!-- #include file="../Shared/upload.inc" -->
<!-- #include file="../api/api.inc" -->
<%
var API = new API_func();
function abortRejectMail(tekst, maillog)
{
var result = { success: false,
message: tekst,
maillog: maillog||tekst
}
__Log(result.maillog); // komt altijd ook in hmail log
Response.Write(JSON.stringify(result));
Response.End;
}
function stripHtml(html)
{
// verwijder html-tags
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,":");
return html;
}
// puur intern gebruik dus geen stylesheet conversie nodig
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
xmlReq.load(Request);
if (xmlReq.parseError.errorCode != 0)
{
abortRejectMail("Error " + xmlReq.parseError.reason);
}
if (API.apidata.loglevel)
__Log2File(xmlReq.xml, API.APIname + "_IN");
var Subject = XMLval(xmlReq, "subject");
var fromAddr = XMLval(xmlReq, "from");
var toAddr = XMLval(xmlReq, "to");
var htmlBody = XMLval(xmlReq, "htmlbody");
var Body = XMLval(xmlReq, "body");
__Log("Subject: " + Subject);
__Log("From: " + fromAddr);
__Log("To: " + toAddr);
__Log("htmlBody: " + htmlBody);
__Log("body: " + Body);
var mailuser = toAddr.split("@")[0];
sql = "SELECT fac_email_setting_action,"
+ " fac_email_setting_expire,"
+ " fac_email_setting_from,"
+ " fac_email_setting_attachpath"
+ " FROM fac_email_setting"
+ " WHERE upper(fac_email_setting_user) = upper("+safe.quoted_sql(mailuser)+")";
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
{
abortRejectMail(L("lcl_fac_hmail_unknown_user"), "E-mail user niet ontvankelijk: " + mailuser);
}
__Log("E-mail user ontvankelijk: " + mailuser);
if (oRs("fac_email_setting_expire").Value != null)
{
var expire = new Date(oRs("fac_email_setting_expire").Value);
if (expire.getTime() < (new Date).getTime())
{
abortRejectMail(L("lcl_fac_hmail_expired"), "Te laat, moest voor: " + expire);
}
}
var shouldFrom = oRs("fac_email_setting_from").Value;
if (shouldFrom)
{
if (String(shouldFrom).toUpperCase() != String(fromAddr).toUpperCase())
{
abortRejectMail(L("lcl_fac_hmail_wrong_sender"), "Foute afzender. Verwacht: " + shouldFrom + ", kreeg: " + fromAddr);
}
}
var action = oRs("fac_email_setting_action").Value; // Package aanroep
var path = oRs("fac_email_setting_attachpath").Value;
oRs.Close();
var result = { success: true, path: path, attachments: [] };
var psession_id = Session.SessionID;
// verwijder entries in de FAC_RESULT table zodat de action nieuwe resultaten kan schrijven
var sql = "DELETE fac_result WHERE fac_result_sessionid = " + safe.quoted_sql(psession_id);
Oracle.Execute(sql);
if (action) // Bijv "fac.processemail" of "uwva.closeorder-sample"
{
if (!Body || Body == "") // Voorkeur voor plaintekst
{
var v_body = L("lcl_fac_hmail_empty_body") + stripHtml(htmlBody);
}
else
{
var v_body = Body;
}
sql = "BEGIN " + action + " (" + safe.quoted_sql(fromAddr) + ","
+ safe.quoted_sql(toAddr) + ","
+ safe.quoted_sql(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(psession_id) + ","
+ user_key + ");"
+ "END;";
Oracle.Execute(sql);
sql = "SELECT fac_result_waarde"
+ " FROM fac_result"
+ " WHERE fac_result_naam = 'errormsg'"
+ " AND fac_result_sessionid = " + safe.quoted_sql(psession_id);
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
abortRejectMail(oRs("fac_result_waarde").Value);
}
oRs.Close();
sql = "SELECT fac_result_waarde"
+ " FROM fac_result"
+ " WHERE fac_result_naam = 'kenmerkpath'"
+ " AND fac_result_sessionid = " + safe.quoted_sql(psession_id);
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
result.path = result.path + oRs("fac_result_waarde").Value;
}
oRs.Close();
// Nog iets specifieks terug te melden voor de logging?
sql = "SELECT fac_result_waarde"
+ " FROM fac_result"
+ " WHERE fac_result_naam = 'maillog'"
+ " AND fac_result_sessionid = " + safe.quoted_sql(psession_id);
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
result.maillog = oRs("fac_result_waarde").Value;
}
else
result.maillog = "E-mail afgehandeld via: " + action;
oRs.Close();
}
else
result.maillog = "Verder geen e-mail action gedefinieerd";
// opruimen
var sql = "DELETE fac_result WHERE fac_result_sessionid = " + safe.quoted_sql(psession_id);
Oracle.Execute(sql);
if (result.path)
{
var Attachments = xmlReq.getElementsByTagName("attachment");
for (i=0; i < Attachments.length; i++)
{
var safefilename = safe.filename(XMLval(Attachments[i], "filename"));
var attsize = parseInt(XMLval(Attachments[i], "size"), 10);
if (safefilename == 'tmpl_logo.gif')
{ // Waarschijnlijk een FACILITOR bon gereply'd
__Log("Bijlage {0} genegeerd.".format(safefilename));
}
else if (attsize < S("flex_min_size"))
{
__Log("Bijlage {0} genegeerd, te klein met {1} bytes.".format(safefilename, attsize));
}
else if (!new RegExp(S("flexallowedext"), "ig").test(safefilename))
{
// TODO: Misschien ook terugkoppelen aan zender?
__DoLog("Onbekende extensie e-mail bijlage: {0} ({1} bytes). Bestand is niet opgeslagen.".format(safefilename, attsize));
}
else
{
__Log('{0} bijlage ({1} bytes) mag naar {2}'.format(safefilename, attsize, result.path));
CreateFullPath(result.path); // Hoeft hMailserver dat niet meer te doen. Eist wel dat hMail op 'onze' webserver draait
result.attachments.push ({ sequence: i,
safefilename: result.path + safefilename
})
}
}
}
Response.Write(JSON.stringify(result));
Response.End;
%>

View File

@@ -7,269 +7,23 @@
Description: API voor INS-soap berichten
Parameters: Een xml
Status: Opzet. Vereist bevestiging van SOAP-aanroepers en dan afmaken
Status:
Context:
Notes:
Wat is het idee momenteel? Deze service is vooralsnog voor sensoren.
De bedoeling is dat een sensor (een ins_deel) bij het relevant veranderen van de status
een aanroep doet, met in essentie
- id (key en/of omschrijving)
- (nieuwe) waarde => alfanumeriek
- (nieuwe) status => INSOUT/INSINN
- optioneel: tijdstip
De waarde wordt in ins_deel_state opgeslagen. Dat is het, maar daarop wordt elders
indien de sensor in een reserveerbare ruimte zit gekeken of er een reservering
bezig is/zou moeten zijn, en dan wordt daarop geacteerd, in de hoek van
noshow en zo.
Het meegegeven tijdstip kan worden gebruikt ipv sysdate om vertragingen te corrigeren..
*/
DOCTYPE_Disable = 1;
THIS_FILE = "appl/api/api_inssoap.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/xml_converter.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../api/api.inc" -->
<%
// We sturen het antwoord in UTF-8.
Session.Codepage = 65001;
Response.Charset = 'utf-8';
var API = new API_func();
var asJSON = getQParam("json","0")!="0";
var tsql = "-"; // Voor tijdelijke statement(s)
var sql = "-"; // De uiteindelijke insert/update-sql
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
if (API.apidata.stylesheet)
{
var iXsl = Server.CreateObject("MSXML2.DOMDocument.6.0");
if( ! iXsl.load(Server.MapPath(API.apidata.stylesheet)) )
{
API.error("Could not load XSL " + API.apidata.stylesheet + "\n" + iXsl.parseError.reason);
}
var inputXML = Server.CreateObject("MSXML2.DOMDocument.6.0");
inputXML.load(Request);
inputXML.transformNodeToObject(iXsl, xmlReq);
}
else
xmlReq.load(Request);
if (API.apidata.loglevel) __Log2File(xmlReq.xml, API.APIname + "_TUSSEN");
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
xmlResp.appendChild(xmlResp.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""))
// The response.
var FCLTElement = xmlResp.createElement("facilitor");
// The response header.
var now = new Date();
var nowtxt = now.getFullYear()+'-'+padout(now.getMonth()+1) +'-'+padout(now.getDate()) +' '
+padout(now.getHours()) +':'+padout(now.getMinutes())+':'+padout(now.getSeconds());
var elmHeader = xmlResp.createElement("header");
var headerinfo = {
// file: String(Request.ServerVariables("SCRIPT_NAME")).toLowerCase(),
datum: nowtxt,
naam: user.naam(),
custId: customerId,
language: user.lang()
}
for (param in headerinfo)
{
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(headerinfo[param]));
elmHeader.appendChild(FCLTdata);
}
//FCLTElement.appendChild(elmHeader);
// Hier zou het echte werk moeten gebeuren nav. xmlReq
// en FCLTElement moeten we uitbreiden met antwoorden.
var detected ="?";
// Dit is de objecteenloop (mochten er ooit nog anderen gaan volgen).
var delen = xmlReq.getElementsByTagName("deel");
for (i=0; i < delen.length; i++)
{
var resultcode = -1; /* Zolang deze -1 is, is het nog goed. Uiteindelijk eindigt het met 0 (als goed). */
var resulttekst = "";
// Lees per node de (optionele) tags en waarden.
var fields = []; // Bij te werken velden.
var deel_key = delen[i].getAttribute("key"); // Bij type=update/delete
var insaction = delen[i].getAttribute("type").toLowerCase();
var deel_omschrijving = XMLval(delen[i], "omschrijving"); // soort van foreign ID
var tijd = XMLval(delen[i], "tijd");
var waarde = XMLval(delen[i], "waarde");
var outinn = XMLval(delen[i], "status");
if (deel_key == null) { // Voorkom problemen als key-attribuut ontbreekt!
deel_key = '';
}
user.checkAutorisation("WEB_INSUSE");
if (insaction == 'update') // of specifiek signal?
{
if (deel_key == '' && deel_omschrijving == '') {
resultcode = 2;
resulttekst = "Undefined object (key/omschrijving)";
}
else {
// Waar hoort-ie bij?
tsql = "SELECT MAX(ins_deel_key) deel_key, MAX(ins_deel_omschrijving) deel_oms, MAX(ins_deel_state) cur_state, MAX(ins_alg_ruimte_key_org) org_place, COUNT (*) aantal"
+ " FROM ins_deel"
+ " WHERE ins_deel_verwijder IS NULL"
+ (deel_key
? " AND ins_deel_key=" + safe.quoted_sql(deel_key)
: "")
+ (deel_omschrijving
? " AND ins_deel_upper = " + safe.quoted_sql(deel_omschrijving.toUpperCase())
: "");
var oRs = Oracle.Execute(tsql);
var aantal = oRs("aantal").value;
if (aantal == 0) {
resultcode = 2;
resulttekst = "Invalid object (key/omschrijving)";
}
else if (aantal > 1) {
resultcode = 3;
resulttekst = "Object cannot be identified uniquely";
}
else {
// Hier heb ik een geldige deel_key.
deel_key = oRs("deel_key").value;
var deel_oms = oRs("deel_oms").value;
var cur_state = oRs("cur_state").value;
var org_place = oRs("org_place").value;
//var old_statedate = new Date(oRs("deel_statedate").Value);
//var this_res = res.func_enabled(rsv_ruimte_key); // Wat heb ik zoal aan rechten op dit object
//user.auth_required_or_abort(this_res.canChange);
// Meegegeven meetdatumtijd of anders now als laatste teken van leven!
//if (tijd != null) { // Bij update optioneel
// try {
// var new_statedate = XMLtoJsDate(tijd);
// }
// catch (e) {
// // Verkeerde datum-formaat, dan now gebruiken!
// __DoLog("Formaat ontvangen XML-datum incorrect: "+tijd, "#00FF00");
// new_statedate = now;
// }
//} else {
// var new_statedate = now;
//}
if (waarde) {
// Alleen bij wijziging!
if (waarde != cur_state) {
// te kiezen: moet de datum altijd aangepast worden (als laatste teken van leven) of
// juist niet (als recentste moment van verandering)
// veilig kan zijn dit met een waarde in het bericht te sturen, maar ik wil wel graag
// dat wij een beste default gekozen hebben: wat is logisch?
sql = "UPDATE ins_deel"
+ " SET ins_deel_state=" + safe.quoted_sql(waarde)
+ " , ins_deel_statedate=SYSDATE" // TODO: de meegegeven meetdatumtijd nemen
+ " WHERE ins_deel_key=" + deel_key;
Oracle.Execute(sql);
// FSN#28896: state-changes worden automatisch getrackt in ins_deel_state_history; geen updtracking meer
//shared.trackaction("INSUPD", deel_key, L("lcl_deel_state")+" "+safe.quoted_sql(waarde));
}
}
else { // outinn != ''
// Er zou dus een status moet zijn meegegeven.
switch (outinn) {
case 'INSOUT':
// Alleen bij wijziging; object was ingenomen en wordt uitgegeven!
if (!org_place) {
sql = "UPDATE ins_deel "
+ " SET ins_alg_ruimte_key_org=ins_alg_ruimte_key"
+ " , ins_alg_ruimte_type_org=ins_alg_ruimte_type"
+ " , ins_alg_ruimte_key=" + user_key
+ " , ins_alg_ruimte_type='P'"
+ " WHERE ins_deel_key=" + deel_key;
Oracle.Execute(sql);
// Object [Fiets 1] is uitgegeven aan [Pseudo-user tbv. XXX-API]
shared.trackaction("INSOUT", deel_key, L("lcl_obj_is_uitgegeven_to").format(user.naam(), deel_oms));
}
break;
case 'INSINN':
// Alleen bij wijziging; object was uitgegeven en wordt ingenomen!
if (org_place) {
sql = "UPDATE ins_deel "
+ " SET ins_alg_ruimte_key=ins_alg_ruimte_key_org"
+ " , ins_alg_ruimte_type=ins_alg_ruimte_type_org"
+ " , ins_alg_ruimte_key_org=NULL"
+ " , ins_alg_ruimte_type_org=NULL"
+ " WHERE ins_deel_key=" + deel_key;
Oracle.Execute(sql);
// Object is ingenomen
shared.trackaction("INSINN", deel_key, L("lcl_obj_is_ingenomen"));
}
break;
default:
resultcode = 4;
resulttekst = "Invalid waarde/status";
} // switch
}
if (resultcode == -1) { // nog steeds geen fouten
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor dit object.
}
} // if aantal
oRs.Close();
} // if deel_key
}
else {
resultcode = 2;
resulttekst = "Undefined operation (type)";
} // if insaction
var binfo = {
returncode: resultcode,
returntekst: resulttekst,
// executed:sql, // debug
datum: nowtxt, // TODO: Beter ook xml-datum??? Of de teruggequeriede datumtijd?
deel_key: deel_key
}
var FCLTBody = xmlResp.createElement("deel"); // type=response
FCLTBody.setAttribute('key', deel_key);
FCLTBody.setAttribute('type', 'response');
for (param in binfo)
{
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(binfo[param]));
FCLTBody.appendChild(FCLTdata);
}
FCLTElement.appendChild(FCLTBody);
} // end for
// Alle deel-nodes zijn behandeld.
xmlResp.appendChild(FCLTElement);
if (API.apidata.loglevel) __Log2File(xmlResp.xml, API.APIname + "_TUSSEN_OUT");
if (API.apidata.stylesheet)
{
// Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...
STR2Stream(xmlResp.xml, API.apidata.stylesheet, Response, {});
}
else
{
if (asJSON)
Response.ContentType = "application/json";
else
Response.ContentType = "text/xml";
if (asJSON)
var antwoord = JSON.stringify(xmlToJson(xmlResp), null, getQParam("pretty","0")=="1"?2:0);
else
var antwoord = xmlResp.xml;
Response.Write(antwoord);
}
%>
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
%>

View File

@@ -5,7 +5,7 @@
File: api_mld_soap.asp
Description: API voor mld-soap berichten
Interpreteert melding-bericht zodanig dat een melding wordt
Interpreteert melding-bericht zodanig dat een melding wordt
aangemaakt.
Parameters: Een xml
@@ -19,472 +19,233 @@
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/xml_converter.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/flexfiles.inc" -->
<!-- #include file="../Shared/upload.inc" -->
<!-- #include file="../api/api.inc" -->
<!-- #include file="../mld/mld.inc" -->
<%
// We sturen het antwoord in UTF-8.
Session.Codepage = 65001;
Response.Charset = 'utf-8';
// We sturen het antwoord in UTF-8.
Session.Codepage = 65001;
Response.Charset = 'utf-8';
var API = new API_func();
var tsql = "-"; // Voor tijdelijke statement(s)
var sql = "-"; // De uiteindelijke insert/update-sql
var resultcode = -1; /* Zolang deze -1 is, is het nog goed. Uiteindelijk eindigt het met 0 (als goed). */
var resulttekst = "";
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
if (API.apidata.stylesheet)
{
var iXsl = Server.CreateObject("MSXML2.DOMDocument.6.0");
if( ! iXsl.load(Server.MapPath(API.apidata.stylesheet)) )
{
API.error("Could not load XSL " + API.apidata.stylesheet + "\n" + iXsl.parseError.reason);
}
var inputXML = Server.CreateObject("MSXML2.DOMDocument.6.0");
inputXML.load(Request);
inputXML.transformNodeToObject(iXsl, xmlReq);
}
else
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
var tsql = "-"; // Voor tijdelijke statement(s)
var sql = "-"; // De uiteindelijke insert/update-sql
var resultcode = -1; /* Zolang deze -1 is, is het nog goed. Uiteindelijk eindigt het met 0 (als goed). */
var resulttekst = "";
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.4.0");
xmlReq.load(Request);
if (API.apidata.loglevel) __Log2File(xmlReq.xml, API.APIname + "_IN");
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.4.0");
xmlResp.appendChild(xmlResp.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""))
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
xmlResp.appendChild(xmlResp.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""))
// The response.
var FCLTElement = xmlResp.createElement("facilitor");
// The response header.
var now = new Date();
var nowtxt = now.getFullYear()+'-'+padout(now.getMonth()+1) +'-'+padout(now.getDate()) +' '
+padout(now.getHours()) +':'+padout(now.getMinutes())+':'+padout(now.getSeconds());
var elmHeader = xmlResp.createElement("header");
var headerinfo = {
// file: String(Request.ServerVariables("SCRIPT_NAME")).toLowerCase(),
datum: nowtxt,
naam: user.naam(),
custId: customerId,
language: user.lang()
}
for (param in headerinfo)
{
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(headerinfo[param]));
elmHeader.appendChild(FCLTdata);
}
FCLTElement.appendChild(elmHeader);
// Hier zou het echte werk moeten gebeuren nav. xmlReq
// en FCLTElement moeten we uitbreiden met antwoorden.
var detected ="?";
//xmlReq.setProperty("SelectionLanguage", "XPath"); // Weet niet of noodzakelijk
// Dit is de meldingenloop (mochten er ooit nog anderen gaan volgen).
var meldingen = xmlReq.getElementsByTagName("melding");
for (i = 0; i < meldingen.length; i++)
{
resultcode = -1;
// Lees per node de (optionele) tags en waarden.
var fields = []; // Bij te werken velden.
var ext_id = meldingen[i].getAttribute("key");
var meldaction = meldingen[i].getAttribute("type").toLowerCase();
var melddatum = XMLval(meldingen[i], "datum");
var einddatum = XMLval(meldingen[i], "einddatum");
//var melderemail = XMLval(meldingen[i], "melder"); // Unsupported yet
var stdmld_key = parseInt(XMLval(meldingen[i], "stdmelding"), 10); // Numeriek
var stdmld_sla = -1; // Normale uitvoertijd (prio door melder nog unsupported)
//var meldprio = XMLval(meldingen[i], "prioriteit"); // Unsupported yet
//var meldobj_id = XMLval(meldingen[i], "object"); // Unsupported yet
var voor_email = XMLval(meldingen[i], "voor_email"); // NEW
var voor_login = XMLval(meldingen[i], "voor_login"); // NEW
var meldloc = XMLval(meldingen[i], "locatiecode");
var meldgeb = XMLval(meldingen[i], "gebouwcode");
var meldver = XMLval(meldingen[i], "verdiepingcode");
var meldrnr = XMLval(meldingen[i], "ruimtecode");
var locatie_key = -1; // Bepaald op basis van meldloc
var plaats_key = -1; // Bepaald op basis van meldgeb/meldver/meldrnr
var meld_oms = XMLval(meldingen[i], "omschrijving");
//var mldkenmerken = (meldingen[i].getElementsByTagName("kenmerk"))[0].childNodes[0].nodeValue; // Unsupported yet
var mldkenmerken = meldingen[i].getElementsByTagName("kenmerk");
var mld_key = -1; // Bepaald na insert
user.checkAutorisation("WEB_MLDUSE"); // Dit is nog ongeacht de melding
if (meldaction == "unknown")
{
// Kijk of er een melding bestaat met dit externe nummer.
// Ben je bang dat het nummer vaker voorkomt dan kun je deze prefixen in de xsl
tsql = "SELECT MIN(mld_melding_key), COUNT(*) aantal"
+ " FROM mld_melding"
+ " WHERE mld_melding_externnr ="+ safe.quoted_sql(ext_id);
var oRs = Oracle.Execute(tsql);
if (oRs("aantal").value == 1)
{
mld_key = oRs("mld_melding_key").value
meldaction = "update";
}
else
{
meldaction = "insert";
}
}
if (ext_id == null)
{
resultcode = 1;
resulttekst = "Undefined external ID (key)";
}
else if (meldaction == 'update')
{
resultcode = 0;
// verder nog even kijken wat we willen doen.
// in ieder geval de omschrijving aanpassen
fields.push({ dbs: "mld_melding_omschrijving", typ: "varchar", val: meld_oms, track: L("lcl_mld_inf_Omschrijving"), len: 4000 });
var mldUpd = buildTrackingUpdate("mld_melding", "mld_melding_key = " + mld_key, fields, { noValidateToken: true });
Oracle.Execute(mldUpd.sql);
}
else if (meldaction != 'insert')
{
resultcode = 2;
resulttekst = "Undefined operation (type)";
}
else
{
var voor_key = -1;
var perslid_key = -1;
if (voor_login != null)
// The response.
var FCLTElement = xmlResp.createElement("facilitor");
// The response header.
var now = new Date();
var nowtxt = now.getFullYear()+'-'+padout(now.getMonth()+1) +'-'+padout(now.getDate()) +' '
+padout(now.getHours()) +':'+padout(now.getMinutes())+':'+padout(now.getSeconds());
var FCLTHeader = xmlResp.createElement("header");
var headerinfo = {
// file: String(Request.ServerVariables("SCRIPT_NAME")).toLowerCase(),
datum: nowtxt,
naam: user.naam(),
custId: customerId,
language: user.lang()
}
for (param in headerinfo)
{
// Zoek de voorkey op aan de hand van het emailadres
tsql = "SELECT prs_perslid_key "
+ " FROM prs_v_aanwezigperslid "
+ " WHERE prs_perslid_oslogin = UPPER(" + safe.quoted_sql(voor_login) + ")";
var oRs = Oracle.Execute(tsql);
if (!oRs.eof)
{
voor_key = oRs("prs_perslid_key").value;
}
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(headerinfo[param]));
FCLTHeader.appendChild(FCLTdata);
}
if (voor_email != null && voor_key == -1)
FCLTElement.appendChild(FCLTHeader);
// Luie oplossing: Oracle kan dit simpeler dan JavaScript.
function XMLtoJsDate(xmlDate)
{
// Zoek de voorkey op aan de hand van het emailadres
tsql = "SELECT prs_perslid_key "
+ " FROM prs_v_aanwezigperslid "
+ " WHERE UPPER(prs_perslid_email) = UPPER(" + safe.quoted_sql(voor_email) + ")";
var oRs = Oracle.Execute(tsql);
if (!oRs.eof)
{
voor_key = oRs("prs_perslid_key").value;
}
var sql = "SELECT TO_DATE("+safe.quoted_sql(xmlDate)+", 'YYYY-MM-DD HH24:MI:SS') FROM DUAL";
var oRs = Oracle.Execute(sql);
var dt = new Date(oRs(0).Value);
oRs.Close();
return dt;
}
if (voor_key == -1)
function XMLval(xml, tag)
{
voor_key = user_key;
perslid_key = user_key;
if (!xml)
return null;
var xx = xml.getElementsByTagName(tag);
if (!xx || !xx.length)
return null;
xx = xx[0].childNodes
if (!xx || !xx.length)
return null;
return xx[0].nodeValue;
}
else
// Hier zou het echte werk moeten gebeuren nav. xmlReq
// en FCLTElement moeten we uitbreiden met antwoorden.
var detected ="?";
// xmlReq.setProperty("SelectionLanguage", "XPath"); // Weet niet of noodzakelijk
// Dit is de meldingenloop (mochten er ooit nog anderen gaan volgen).
var meldingen = xmlReq.getElementsByTagName("melding");
for (i=0; i < meldingen.length; i++)
{
if (S("mld_allow_for_others") == 1)
{
perslid_key = user_key;
}
else
{
perslid_key = voor_key;
}
}
tsql = "SELECT sm.mld_stdmelding_t_uitvoertijd.tijdsduur tijdsduur"
+ " , sm.mld_stdmelding_t_uitvoertijd.eenheid eenheid"
+ " FROM mld_stdmelding sm"
+ " WHERE sm.mld_stdmelding_key = " + stdmld_key
+ " AND sm.mld_stdmelding_verwijder IS NULL";
var oRs = Oracle.Execute(tsql);
if (oRs.eof)
{
resultcode = 3;
resulttekst = "Undefined stdmelding";
}
else
{ // Hier heb ik een geldige mld_stdmelding_key.
stdmld_sla_tijdsduur = oRs("tijdsduur").value;
stdmld_sla_eenheid = oRs("eenheid").value;
// Lees per node de (optionele) tags en waarden.
var fields = []; // Bij te werken velden.
var ext_id = meldingen[i].getAttribute("key");
var meldaction = meldingen[i].getAttribute("type").toLowerCase();
var melddatum = XMLval(meldingen[i], "datum");
//var melderemail = XMLval(meldingen[i], "melder"); // Unsupported yet
var stdmld_key = parseInt(XMLval(meldingen[i], "stdmelding"), 10); // Numeriek
var stdmld_sla = -1; // Normale uitvoertijd (prio door melder nog unsupported)
//var meldprio = XMLval(meldingen[i], "prioriteit"); // Unsupported yet
//var meldobj_id = XMLval(meldingen[i], "object"); // Unsupported yet
var meldloc = XMLval(meldingen[i], "locatiecode");
var meldgeb = XMLval(meldingen[i], "gebouwcode");
var meldver = XMLval(meldingen[i], "verdiepingcode");
var meldrnr = XMLval(meldingen[i], "ruimtecode");
var locatie_key = -1; // Bepaald op basis van meldloc
var plaats_key = -1; // Bepaald op basis van meldgeb/meldver/meldrnr
var meld_oms = XMLval(meldingen[i], "omschrijving");
//var meldkenmerken = (meldingen[i].getElementsByTagName("kenmerk"))[0].childNodes[0].nodeValue; // Unsupported yet
var mld_key = -1; // Bepaald na insert
fields.push({ dbs: "mld_stdmelding_key", typ: "key", val: stdmld_key });
fields.push({ dbs: "mld_melding_t_uitvoertijd.tijdsduur", typ: "number", val: stdmld_sla_tijdsduur, obj: "MLD_T_UITVOERTIJD" });
fields.push({ dbs: "mld_melding_t_uitvoertijd.eenheid", typ: "varchar", val: stdmld_sla_eenheid, obj: "MLD_T_UITVOERTIJD" });
if (melddatum != null)
{
try
{
var meldaanmaakdate = XMLtoJsDate(melddatum);
fields.push({ dbs: "mld_melding_datum", typ: "datetime", val: meldaanmaakdate });
}
catch (e)
{ // Verkeerde datum-formaat, volgens spec. dan now gebruiken!
__DoLog("Formaat ontvangen XML-datum incorrect: "+ melddatum, "#00FF00");
meldaanmaakdate = now;
fields.push({ dbs: "mld_melding_datum", typ: "datetime", val: meldaanmaakdate });
}
}
else
{
fields.push({ dbs: "mld_melding_datum", typ: "datetime", val: now });
}
// De einddatum is de meegegeven einddatum, maar als die niet wordt meegegeven is het
// gewoon enddate_std en dat regelt de trigger wel, dus DAN MOET IK HEM NIET MEEGEVEN
if (einddatum != null)
{
try
{
var meldeinddate = XMLtoJsDate(einddatum);
if (meldeinddate > meldaanmaakdate)
{
fields.push({ dbs: "mld_melding_einddatum", typ: "datetime", val: meldeinddate });
}
else
{
// Ontvangen XML-einddatum voor begindatum, dan later volgens SLA zetten!
__DoLog("Ontvangen XML-einddatum voor begindatum: "+ einddatum, "#00FF00");
}
}
catch (e)
{
// Verkeerde datum-formaat, dan later volgens SLA zetten!
__DoLog("Formaat ontvangen XML-einddatum incorrect: "+ einddatum, "#00FF00");
}
}
user.checkAutorisation("WEB_MLDUSE"); // Dit is nog ongeacht de melding
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)
{
locatie_key = oRs("alg_locatie_key").value;
fields.push({ dbs: "mld_alg_locatie_key", typ: "key", val: locatie_key });
tsql = "SELECT alg_gebouw_key "
+ " FROM alg_v_aanweziggebouw"
+ " WHERE alg_locatie_key ="+ locatie_key
+ " AND alg_gebouw_code="+ safe.quoted_sql(meldgeb);
var oRs = Oracle.Execute(tsql);
if (!oRs.eof)
{
plaats_key = oRs("alg_gebouw_key").value;
tsql = "SELECT alg_verdieping_key "
+ " FROM alg_v_aanwezigverdieping"
+ " WHERE alg_gebouw_key ="+ plaats_key
+ " AND alg_verdieping_code="+ safe.quoted_sql(meldver);
var oRs = Oracle.Execute(tsql);
if (!oRs.eof)
{
plaats_key = oRs("alg_verdieping_key").value;
tsql = "SELECT alg_ruimte_key "
+ " FROM alg_v_aanwezigruimte"
+ " WHERE alg_verdieping_key ="+ plaats_key
+ " AND alg_ruimte_nr="+ safe.quoted_sql(meldrnr);
if (ext_id == null) {
resultcode = 1;
resulttekst = "Undefined external ID (key)";
} else if (meldaction != 'insert') {
resultcode = 2;
resulttekst = "Undefined operation (type)";
} else {
tsql = "SELECT mld_stdmelding_uitvoertijd "
+ " FROM mld_stdmelding"
+ " WHERE mld_stdmelding_key="+ stdmld_key
+ " AND mld_stdmelding_verwijder IS NULL";
var oRs = Oracle.Execute(tsql);
if (!oRs.eof) {
plaats_key = oRs("alg_ruimte_key").value;
}
}
}
if (oRs.eof) {
resultcode = 3;
resulttekst = "Undefined stdmelding";
} else {
// Hier heb ik een geldige mld_stdmelding_key.
stdmld_sla = oRs("mld_stdmelding_uitvoertijd").value;
if (plaats_key != -1)
{
fields.push({ dbs: "mld_alg_onroerendgoed_keys", typ: "key", val: plaats_key });
}
}
fields = fields.concat(
[ { dbs: "mld_melding_key", typ: "key", seq: "mld_s_mld_melding_key" },
{ dbs: "mld_melding_module", typ: "varchar", val: "MLD" },
{ dbs: "mld_meldbron_key", typ: "key", val: 6 }, // system
{ dbs: "mld_melding_omschrijving", typ: "varchar", val: meld_oms, len: 4000 },
{ dbs: "prs_kostenplaats_key", typ: "key", val: user.afdeling().prs_kostenplaats_key() },
{ dbs: "prs_perslid_key", typ: "key", val: perslid_key },
{ dbs: "prs_perslid_key_voor", typ: "key", val: voor_key },
{ dbs: "mld_melding_spoed", typ: "key", val: 3 }, // default (frontend) = 3
{ dbs: "mld_melding_externnr", typ: "varchar", val: ext_id, len: 30 }
]);
// We weten wat te inserten, nu nog uitvoeren; rechten voldoende afgedekt via MLDUSE-check hierboven?
if (resultcode == -1)
{ // nog steeds geen fouten
var mldIns = buildInsert("mld_melding", fields, { noValidateToken: true });
mld_key = mldIns.sequences["mld_melding_key"];
sql = mldIns.sql;
oRs = Oracle.Execute(sql);
// Zetten van de status op ingevoerd en afhandelen van de tracking.
mld.setmeldingstatus(mld_key, 2); // Zorgt ook voor tracking & daarmee notificatie.
// Eventuele (gewijzigde) objecten zijn nu ook opgeslagen. Nu kan de definitieve mld_melding.mld_melding_einddatum_std bepaald en gezet worden.
//mld.updatestdeinddatum(mld_key); // Unsupported yet. So update of mld_melding_einddatum_std not needed yet.
// De kenmerken.
for (j=0; j < mldkenmerken.length; j++)
{
var kenmerk_naam = mldkenmerken[j].getAttribute("naam");
if (mldkenmerken[j].childNodes.length > 0)
var kenmerk_waarde = mldkenmerken[j].childNodes[0].nodeValue;
else
var kenmerk_waarde = "";
//Response.Write(kenmerk_naam);
//Response.Write(kenmerk_waarde);
// Zoek het kenmerk op naam terug
ksql = "SELECT k.mld_kenmerk_key, sk.mld_srtkenmerk_kenmerktype, sk.mld_srtkenmerk_lengte "
+ " FROM mld_kenmerk k"
+ " , mld_srtkenmerk sk"
+ " , mld_stdmelding s"
+ " , mld_discipline d"
+ " WHERE s.mld_ins_discipline_key = d.ins_discipline_key"
+ " AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key "
+ " AND k.mld_kenmerk_verwijder IS NULL "
+ " AND sk.mld_srtkenmerk_upper = " + safe.quoted_sql_upper(kenmerk_naam)
+ " AND s.mld_ins_discipline_key = d.ins_discipline_key"
+ " AND s.mld_stdmelding_key = " + stdmld_key
+ " AND ((k.mld_stdmelding_key = s.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S')"
+ " OR (k.mld_stdmelding_key = s.mld_ins_discipline_key AND k.mld_kenmerk_niveau = 'D')"
+ " OR (k.mld_stdmelding_key = d.ins_srtdiscipline_key AND k.mld_kenmerk_niveau = 'T'))";
var oRs = Oracle.Execute(ksql);
if (!oRs.eof)
{
var kenmerk_key = oRs("mld_kenmerk_key").value;
var kenmerk_type = oRs("mld_srtkenmerk_kenmerktype").value;
var kenmerk_lengte = oRs("mld_srtkenmerk_lengte").value;
ksql = "SELECT km.mld_kenmerkmelding_key "
+ " FROM mld_kenmerkmelding km "
+ " WHERE km.mld_melding_key = " + mld_key
+ " AND km.mld_kenmerk_key = " + kenmerk_key;
var oRs = Oracle.Execute(ksql);
switch (kenmerk_type)
{
case 'C':
{
// we ondersteunen alleen nog maar karakter velden.
if (!oRs.eof)
{
var kenmerkmelding_key = oRs("mld_kenmerkmelding_key").value;
ksql = "UPDATE mld_kenmerkmelding"
+ " SET mld_kenmerkmelding_waarde = " + safe.quoted_sql(kenmerk_waarde)
+ " WHERE mld_kenmerkmelding_key = " + kenmerkmelding_key;
}
else
{
ksql = "INSERT INTO mld_kenmerkmelding (mld_kenmerk_key, mld_melding_key, mld_kenmerkmelding_waarde) "
+ "VALUES (" + kenmerk_key + ", " + mld_key + ", " + safe.quoted_sql(kenmerk_waarde) + ")";
}
Oracle.Execute(ksql);
break;
}
case 'N':
{
// we ondersteunen alleen nog maar karakter velden.
if (!oRs.eof)
{
var kenmerkmelding_key = oRs("mld_kenmerkmelding_key").value;
ksql = "UPDATE mld_kenmerkmelding"
+ " SET mld_kenmerkmelding_waarde = " + safe.quoted_sql(kenmerk_waarde)
+ " WHERE mld_kenmerkmelding_key = " + kenmerkmelding_key;
}
else
{
ksql = "INSERT INTO mld_kenmerkmelding (mld_kenmerk_key, mld_melding_key, mld_kenmerkmelding_waarde) "
+ "VALUES (" + kenmerk_key + ", " + mld_key + ", " + safe.quoted_sql(kenmerk_waarde) + ")";
}
Oracle.Execute(ksql);
break;
}
case "M": // Folder met bijlagen
{
//Response.Write(kenmerk_naam);
var bijlagen = mldkenmerken[j].getElementsByTagName("bijlage");
var bi;
for (bi = 0; bi < bijlagen.length; bi++)
{
var Attachment = XMLval(bijlagen[bi], "attachment");
var Name = XMLval(bijlagen[bi], "name");
var Size = XMLval(bijlagen[bi], "size");
//Response.Write("Name: " + Name + " size: " + Size);
if (Attachment && Name && Size)
{
var SafeName = safe.filename(Name);
var params = flexProps("MLD", mld_key, String(kenmerk_key), "M");
if (!params.isAllowedName(SafeName))
{
__DoLog("Unsafe SOAP file '{0}' ignored.".format(SafeName), "#FFFF00");
fields.push({ dbs: "mld_stdmelding_key", typ: "key", val: stdmld_key });
fields.push({ dbs: "mld_melding_uitvoertijd", typ: "number", val: stdmld_sla });
if (melddatum != null) {
try {
var meldaanmaakdate = XMLtoJsDate(melddatum);
fields.push({ dbs: "mld_melding_datum", typ: "datetime", val: meldaanmaakdate });
}
else
{
__Log("Start saving: " + params.AttachPath + SafeName);
CreateFullPath(params.AttachPath);
encodedString2File(params.AttachPath + SafeName, Attachment, "bin.hex");
__Log("Done saving: " + params.AttachPath + SafeName);
}
}
catch (e) {
__DoLog("Formaat ontvangen XML-datum incorrect: "+ melddatum, "#00FF00");
// Verkeerde datum-formaat, volgens spec. dan now gebruiken!
fields.push({ dbs: "mld_melding_datum", typ: "datetime", val: now });
}
} else {
fields.push({ dbs: "mld_melding_datum", typ: "datetime", val: now });
}
}
}
oRs.Close();
}
}
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?
// Klantspecifieke check functie (hookfunction) voor de invoer
var pResult = new HookResult();
if (!custfunc.mld_postsave(mld_key, pResult))
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) {
locatie_key = oRs("alg_locatie_key").value;
fields.push({ dbs: "mld_alg_locatie_key", typ: "key", val: locatie_key });
tsql = "SELECT alg_gebouw_key "
+ " FROM alg_v_aanweziggebouw"
+ " WHERE alg_locatie_key ="+ locatie_key
+ " AND alg_gebouw_code="+ safe.quoted_sql(meldgeb);
var oRs = Oracle.Execute(tsql);
if (!oRs.eof) {
plaats_key = oRs("alg_gebouw_key").value;
tsql = "SELECT alg_verdieping_key "
+ " FROM alg_v_aanwezigverdieping"
+ " WHERE alg_gebouw_key ="+ plaats_key
+ " AND alg_verdieping_code="+ safe.quoted_sql(meldver);
var oRs = Oracle.Execute(tsql);
if (!oRs.eof) {
plaats_key = oRs("alg_verdieping_key").value;
tsql = "SELECT alg_ruimte_key "
+ " FROM alg_v_aanwezigruimte"
+ " WHERE alg_verdieping_key ="+ plaats_key
+ " AND alg_ruimte_nr="+ safe.quoted_sql(meldrnr);
var oRs = Oracle.Execute(tsql);
if (!oRs.eof) {
plaats_key = oRs("alg_ruimte_key").value;
}
}
}
if (plaats_key != -1) {
fields.push({ dbs: "mld_alg_onroerendgoed_keys", typ: "key", val: plaats_key });
}
}
fields = fields.concat(
[ { dbs: "mld_melding_key", typ: "key", seq: "mld_s_mld_melding_key" },
{ dbs: "mld_melding_module", typ: "varchar", val: "MLD" },
{ dbs: "mld_meldbron_key", typ: "key", val: 6 }, // system
{ dbs: "mld_melding_omschrijving", typ: "varchar", val: meld_oms, len: 4000 },
{ dbs: "prs_kostenplaats_key", typ: "key", val: user.afdeling().prs_kostenplaats_key() },
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
{ dbs: "prs_perslid_key_voor", typ: "key", val: user_key },
{ dbs: "mld_melding_spoed", typ: "key", val: 3 }, // default (frontend) = 3
{ dbs: "mld_melding_externnr", typ: "varchar", val: ext_id, len: 30 }
]);
// We weten wat te inserten, nu nog uitvoeren; rechten voldoende afgedekt via MLDUSE-check hierboven?
if (resultcode == -1) { // nog steeds geen fouten
var mldIns = buildInsert("mld_melding", fields);
mld_key = mldIns.sequences["mld_melding_key"];
sql = mldIns.sql;
oRs = Oracle.Execute(sql);
mld.freezeFields(mld_key); // dat kan nu
// Zetten van de status op ingevoerd en afhandelen van de tracking.
mld.setmeldingstatus(mld_key, 2); // Zorgt ook voor tracking & daarmee notificatie.
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?
}
} // end geldige stdmld_key
} // end geldige ext_id
var binfo = {
returncode: resultcode,
returntekst: resulttekst,
// executed:sql, // debug
datum: nowtxt,
meldingnr: mld_key
}
var FCLTBody = xmlResp.createElement("melding"); // type=response
FCLTBody.setAttribute('key', ext_id);
FCLTBody.setAttribute('type', 'response');
for (param in binfo)
{
__DoLog(pResult.errmsg, "#00FF00");
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(binfo[param]));
FCLTBody.appendChild(FCLTdata);
}
}
} // end geldige stdmld_key
} // end geldige ext_id
FCLTElement.appendChild(FCLTBody);
} // end for
// Alle melding-nodes zijn behandeld.
var binfo = {returncode: resultcode,
returntekst: resulttekst,
// executed:sql, // debug
datum: nowtxt,
meldingnr: mld_key
}
xmlResp.appendChild(FCLTElement);
var FCLTBody = xmlResp.createElement("melding"); // type=response
FCLTBody.setAttribute('key', ext_id); // Let op: key van de aanroeper!
FCLTBody.setAttribute('type', 'response');
for (param in binfo)
{
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(binfo[param]));
FCLTBody.appendChild(FCLTdata);
}
FCLTElement.appendChild(FCLTBody);
} // end for
// Alle melding-nodes zijn behandeld.
xmlResp.appendChild(FCLTElement);
if (API.apidata.stylesheet)
{
// Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...
STR2Stream(xmlResp.xml, API.apidata.stylesheet, Response, {});
}
else
{
Response.ContentType = "text/xml";
Response.Write(xmlResp.xml)
}
Response.ContentType = "text/xml";
Response.Write(xmlResp.xml)
%>

File diff suppressed because it is too large Load Diff

View File

@@ -1,170 +0,0 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: api_perslid.asp
Description: API om een perslid te kunnen muteren.
Parameters: apiname, apikey
Context: Door een remote systeem (geen persoon) om info uit FACILITOR te halen aan te roepen
Notes:
Status:
*/
DOCTYPE_Disable = 1;
LCL_Disable = 1
THIS_FILE = "appl/api/api_perslid.asp";
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../api/api.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/save2db.inc"-->
<%
Session.Codepage = 65001;
Response.Charset = 'utf-8';
Session.Abandon(); // Voor de zekerheid
try
{
var API = new API_func(); // Valideert ook
var asJSON = getQParam("json","0")!="0";
var params = RequestJSON();
if (!params)
API.error("Error parsing input JSON");
// FAC_API_OPTIONS_JSON
var urole = "fe"; // Altijd?
var autfunction = urole == "fe"? "WEB_RESUSE" : "WEB_RESFOF";
params.authparams = user.checkAutorisation(autfunction, null, null, true); // pessimistisch
/*
params = {
externId: "AAFM_12345", // Zelf zorgen dat het uniek is in het doel-systeem
voornaam: "Jos",
achternaam: "Groot Lipman",
email: "user@example.com",
telefoon: "053-1234567",
mobiel: "06-12345678"
};
*/
warning = "";
// TODO: Autorisatie
prs_key = -1;
switch (params.request)
{
case "select": // zoekt een persoon op basis van params.externId
var sql = "SELECT prs_perslid_key"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_oslogin = " + safe.quoted_sql("_" + params.externId);
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
prs_key = oRs("prs_perslid_key").Value;
}
oRs.Close();
break;
case "update": // doet desnoods een insert
var fields = [];
if ("voornaam" in params)
fields.push({ dbs: "prs_perslid_voornaam", typ: "varchar", val: params.voornaam });
if ("achternaam" in params)
fields.push({ dbs: "prs_perslid_naam", typ: "varchar", val: params.achternaam });
if ("tussenvoegsel" in params)
fields.push({ dbs: "prs_perslid_tussenvoegsel", typ: "varchar", val: params.tussenvoegsel });
if ("email" in params)
fields.push({ dbs: "prs_perslid_email", typ: "varchar", val: params.email });
if ("geslacht" in params)
fields.push({ dbs: "geslacht", typ: "varchar", val: params.geslacht });
if ("prs_perslid_mobiel" in params)
fields.push({ dbs: "prs_perslid_mobiel", typ: "varchar", val: params.mobiel });
var sql = "SELECT prs_perslid_key"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_oslogin = " + safe.quoted_sql("_" + params.externId);
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
prs_key = oRs("prs_perslid_key").Value;
sql = buildUpdate("prs_perslid", fields, { noValidateToken: true })
+ " prs_perslid_key = " + prs_key;
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
//else
// shared.trackaction("PRSUPD", prs_key);
}
else // Nieuwe
{ /// TODO: Speciale flags?
/// TODO: _default groep (door de trigger) is te veel. Misschien _defaultextern?
fields.push({ dbs: "prs_perslid_key", typ: "key", seq: "prs_s_prs_alluitvoerende_keys" });
fields.push({ dbs: "prs_perslid_oslogin", typ: "varchar", val: "_" + params.externId }); // De underscore voorkomt nagenoeg volledig dat ze ergens in beeld komen
fields.push({ dbs: "prs_afdeling_key", typ: "key", val: user.prs_afdeling_key() }); // Vooralsnog altijd zelfde als de API-user!
fields.push({ dbs: "prs_srtperslid_key", typ: "key", val: user.prs_srtperslid_key() });
fields.push({ dbs: "prs_perslid_ingids", typ: "check", val: 0 });
var prsIns = buildInsert("prs_perslid", fields, { noValidateToken: true });
prs_key = prsIns.sequences["prs_perslid_key"];
var err = Oracle.Execute(prsIns.sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
else
{
shared.trackaction("PRSNEW", prs_key);
// We willen niet in authgroep _default maar in _defaultextern
var sql = "DELETE FROM fac_gebruikersgroep"
+ " WHERE prs_perslid_key = " + prs_key;
Oracle.Execute(sql);
var sql = " INSERT INTO fac_gebruikersgroep"
+ " (fac_groep_key, prs_perslid_key)"
+ " SELECT fac_groep_key, " + prs_key
+ " FROM fac_groep"
+ " WHERE fac_groep_upper = '_DEFAULTEXTERN'";
Oracle.Execute(sql);
}
}
oRs.Close();
break;
default:
API.error("Unknown API request");
}
// We hebben nu een prs_key
Response.ContentType = "application/json";
Response.AddHeader("Access-Control-Allow-Origin", "*"); // Opdat FireFox cross-domain toestaat
var result = { success: true };
if (warning)
result = { succes: false, error: warning };
else
{
result.prs_key = prs_key;
if (prs_key > 0)
{ // plak prs_auth achter een deeplink en deze gebruiker kan daarmee (vandaag) inloggen
result.prs_auth = "userauth=" + prs_key + "&userhmac=" + safe.url(protectHMAC.create(String(prs_key)));
}
}
var antwoord = JSON.stringify(result, null, getQParam("pretty","0")=="1"?2:0);
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var eTag = '"' + oCrypto.hex_sha1(antwoord).toLowerCase() + '"';
Response.AddHeader("ETag", eTag);
if (Request.ServerVariables("HTTP_IF_NONE_MATCH") == eTag)
{ // We hebben een match!
Response.Clear();
Response.Status = "304 Not modified";
Response.End;
}
if (API.apidata.loglevel) __Log2File(antwoord, API.APIname + "_OUT");
Response.write(antwoord);
}
catch (e)
{
API.error(typeof e == "string"? e : "API_error: " + e.description);
}
%>

View File

@@ -0,0 +1,23 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style>
#phonebookdetails * { font-size:9pt; font-family: Verdana, Arial; }
</style>
<script type="text/javascript">
function initPhonebook()
{
var phone = new facilitor.phonebook(document.getElementById("phone_canvas"), { } );
}
</script>
<script type="text/javascript"
src="http://dit03/Facilitor5iwork/?fac_id=XXXX&API=PHONEBOOK&APIKEY=0123456789ABCDEF">
</script>
</head>
<body onload="initPhonebook();">
<div id="phone_canvas"></div>
Andere tekst
</body>
</html>

View File

@@ -23,5 +23,7 @@
Session.Codepage = 65001;
Response.Charset = 'utf-8';
var API = new API_func();
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
%>

View File

@@ -17,7 +17,9 @@
<!-- #include file="../api/api.inc" -->
<%
var API = new API_func();
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
var BOOKMARK = getQParam("BOOKMARK", "");

View File

@@ -9,7 +9,7 @@
aangemaakt.
Parameters: Een xml
Status: Eerste implementatie in kader AAEN#25223 (tbv. TIBCO/Smart Signs)
Status: GEEN
Context:
Notes:
*/
@@ -19,37 +19,24 @@
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/xml_converter.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/flexfiles.inc" -->
<!-- #include file="../Shared/upload.inc" -->
<!-- #include file="../api/api.inc" -->
<!-- #include file="../shared/kpl_ksrt_validate.inc" -->
<!-- #include file="../res/res.inc" -->
<!-- #include file="../mld/mld.inc" -->
<%
// We sturen het antwoord in UTF-8.
Session.Codepage = 65001;
Response.Charset = 'utf-8';
var API = new API_func();
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
var tsql = "-"; // Voor tijdelijke statement(s)
var sql = "-"; // De uiteindelijke insert/update-sql
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.6.0");
if (API.apidata.stylesheet)
{
var iXsl = Server.CreateObject("MSXML2.DOMDocument.6.0");
if( ! iXsl.load(Server.MapPath(API.apidata.stylesheet)) )
{
API.error("Could not load XSL " + API.apidata.stylesheet + "\n" + iXsl.parseError.reason);
}
var inputXML = Server.CreateObject("MSXML2.DOMDocument.6.0");
inputXML.load(Request);
inputXML.transformNodeToObject(iXsl, xmlReq);
}
else
xmlReq.load(Request);
var resultcode = -1; /* Zolang deze -1 is, is het nog goed. Uiteindelijk eindigt het met 0 (als goed). */
var resulttekst = "";
var xmlReq = Server.CreateObject("MSXML2.DOMDocument.4.0");
xmlReq.load(Request);
if (API.apidata.loglevel) __Log2File(xmlReq.xml, API.APIname + "_IN");
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.6.0");
var xmlResp = new ActiveXObject("MSXML2.DOMDocument.4.0");
xmlResp.appendChild(xmlResp.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""))
// The response.
@@ -58,7 +45,7 @@
var now = new Date();
var nowtxt = now.getFullYear()+'-'+padout(now.getMonth()+1) +'-'+padout(now.getDate()) +' '
+padout(now.getHours()) +':'+padout(now.getMinutes())+':'+padout(now.getSeconds());
var elmHeader = xmlResp.createElement("header");
var FCLTHeader = xmlResp.createElement("header");
var headerinfo = {
// file: String(Request.ServerVariables("SCRIPT_NAME")).toLowerCase(),
datum: nowtxt,
@@ -70,363 +57,83 @@
{
var FCLTdata = xmlResp.createElement(param);
FCLTdata.appendChild(xmlResp.createTextNode(headerinfo[param]));
elmHeader.appendChild(FCLTdata);
FCLTHeader.appendChild(FCLTdata);
}
FCLTElement.appendChild(FCLTHeader);
// Luie oplossing: Oracle kan dit simpeler dan JavaScript.
function XMLtoJsDate(xmlDate)
{
var sql = "SELECT TO_DATE("+safe.quoted_sql(xmlDate)+", 'YYYY-MM-DD HH24:MI:SS') FROM DUAL";
var oRs = Oracle.Execute(sql);
var dt = new Date(oRs(0).Value);
oRs.Close();
return dt;
}
function XMLval(xml, tag)
{
if (!xml)
return null;
var xx = xml.getElementsByTagName(tag);
if (!xx || !xx.length)
return null;
xx = xx[0].childNodes
if (!xx || !xx.length)
return null;
return xx[0].nodeValue;
}
FCLTElement.appendChild(elmHeader);
// Hier zou het echte werk moeten gebeuren nav. xmlReq
// en FCLTElement moeten we uitbreiden met antwoorden.
var detected ="?";
// xmlReq.setProperty("SelectionLanguage", "XPath"); // Weet niet of noodzakelijk
// Dit is de reserveringenloop (mochten er ooit nog anderen gaan volgen).
// Dit is de meldingenloop (mochten er ooit nog anderen gaan volgen).
var reserveringen = xmlReq.getElementsByTagName("reservering");
for (i=0; i < reserveringen.length; i++)
{
var resultcode = -1; /* Zolang deze -1 is, is het nog goed. Uiteindelijk eindigt het met 0 (als goed). */
var resulttekst = "";
// Lees per node de (optionele) tags en waarden.
var fields = []; // Bij te werken velden.
var resid = reserveringen[i].getAttribute("key"); // Bij type=update/delete
var resaction = reserveringen[i].getAttribute("type").toLowerCase();
var ruimtekey = parseInt(XMLval(reserveringen[i], "ruimtekey"), 10); // res_ruimte_key
var van = XMLval(reserveringen[i], "van");
var tot = XMLval(reserveringen[i], "tot");
var res_oms = XMLval(reserveringen[i], "omschrijving");
var shown = XMLval(reserveringen[i], "shown");
//var reskenmerken = (reserveringen[i].getElementsByTagName("kenmerk")); // Unsupported yet
var ext_id = reserveringen[i].getAttribute("key");
var meldaction = reserveringen[i].getAttribute("type").toLowerCase();
var melddatum = XMLval(reserveringen[i], "datum");
var stdmld_key = parseInt(XMLval(reserveringen[i], "stdmelding"), 10); // Numeriek
var stdmld_sla = -1; // Normale uitvoertijd (prio door melder nog unsupported)
var meldloc = XMLval(reserveringen[i], "locatiecode");
var meldgeb = XMLval(reserveringen[i], "gebouwcode");
var meldver = XMLval(reserveringen[i], "verdiepingcode");
var meldrnr = XMLval(reserveringen[i], "ruimtecode");
var locatie_key = -1; // Bepaald op basis van meldloc
var plaats_key = -1; // Bepaald op basis van meldgeb/meldver/meldrnr
var meld_oms = XMLval(reserveringen[i], "omschrijving");
//var meldkenmerken = (reserveringen[i].getElementsByTagName("kenmerk"))[0].childNodes[0].nodeValue; // Unsupported yet
var mld_key = -1; // Bepaald na insert
if (resid == null) { // Voorkom problemen als key-attribuut ontbreekt!
resid = '';
}
if (isNaN(ruimtekey) ) { // Voorkom problemen als ruimtekey ontbreekt!
ruimtekey = -1;
}
var idarr = resid.split('/');
var reservering_key = parseInt(idarr[0], 10); // En anders bepaald bij insert!
var rsv_ruimte_volgnr = parseInt(idarr[1], 10); // En anders 1 bij insert!
var rsv_ruimte_key = -1; // Bepalen we later bij insert/update/delete!
user.checkAutorisation("WEB_RESUSE"); // Dit is nog ongeacht de melding
user.checkAutorisation("WEB_RESFOF"); // Dit is nog ongeacht de reservering
if (resaction == 'insert') {
tsql = " SELECT rad.res_discipline_key, rad.res_activiteit_key, rro.res_ruimte_opstel_key,"
+ " COALESCE(rr.res_ruimte_begintijd, " + S("res_t1") + ") begintijd,"
+ " COALESCE(rr.res_ruimte_eindtijd, " + S("res_t2") + ") eindtijd"
+ " FROM res_ruimte_opstelling rro, res_ruimte rr, res_activiteitdiscipline rad,"
+ " (SELECT * FROM res_activiteit ra1"
+ " WHERE NOT EXISTS"
+ " (SELECT 1 FROM res_activiteit ra2"
+ " WHERE COALESCE (ra2.res_activiteit_volgnr, 999 + ra2.res_activiteit_key) <"
+ " COALESCE (ra1.res_activiteit_volgnr, 999 + ra1.res_activiteit_key))) ra"
+ " WHERE rro.res_ruimte_key="+ruimtekey
+ " AND rro.res_ruimte_key = rr.res_ruimte_key"
+ " AND res_ruimte_verwijder IS NULL"
+ " AND rr.res_discipline_key = rad.res_discipline_key"
+ " AND rad.res_activiteit_key = ra.res_activiteit_key"
+ " ORDER BY rro.res_ruimte_opstel_default DESC NULLS LAST"; // die met '1' komt vooraan
var oRs = Oracle.Execute(tsql);
if (oRs.eof) {
resultcode = 3;
resulttekst = "Invalid/undefined ruimtekey";
}
else {
// Hier heb ik een geldige res_ruimte_key en weet ik de discipline, default activiteit en default opstelling!
var disc_key = oRs("res_discipline_key").value;
var act_key = oRs("res_activiteit_key").value;
var opstel_key = oRs("res_ruimte_opstel_key").value;
if (van != null) {
try {
var vandate = XMLtoJsDate(van);
}
catch (e) {
__DoLog("Formaat ontvangen XML-datum incorrect (van): "+van, "#00FF00");
// Datum-formaat niet volgens spec.? Dan exit!
resultcode = 4;
resulttekst = "Invalid date format";
}
}
else {
__DoLog("Geen XML-datum ontvangen (van): ", "#00FF00");
// Geen van-datum, dan exit!
resultcode = 4;
resulttekst = "Missing parameter(s)";
}
if (tot != null) {
try {
var totdate = XMLtoJsDate(tot);
}
catch (e) {
__DoLog("Formaat ontvangen XML-datum incorrect (tot): "+tot, "#00FF00");
// Datum-formaat niet volgens spec.? Dan exit!
resultcode = 4;
resulttekst = "Invalid date format";
}
}
else {
__DoLog("Geen XML-datum ontvangen (tot): ", "#00FF00");
// Geen tot-datum, dan exit!
resultcode = 4;
resulttekst = "Missing parameter(s)";
}
if (res_oms == null) { // Geen/lege omschrijving wordt gezien als ongeplande reservering!
res_oms = "Ongeplande reservering";
}
if (resultcode == -1) { // nog steeds geen fouten
// Check van-dag = tot-dag = vandaag!
if (1==0) {
resultcode = 6;
resulttekst = "Illegal reservering (date)";
}
}
if (resultcode == -1) { // nog steeds geen fouten
// Check van < tot en beide tegen openingstijden ruimte!
var df = vandate.getHours() + vandate.getMinutes()/60;
var dt = totdate.getHours() + totdate.getMinutes()/60;
if (vandate > totdate ||
df < oRs("begintijd").value || df > oRs("eindtijd").value ||
dt < oRs("begintijd").value || dt > oRs("eindtijd").value) {
resultcode = 6;
resulttekst = "Illegal reservering (time)";
}
}
if (resultcode == -1) { // nog steeds geen fouten
// Combinatievalidatie ruimte discipline!
if (!kpl_ksrt_validate(user.afdeling().prs_kostenplaats_key(), null, disc_key)) {
resultcode = 6;
resulttekst = "Illegal reservering (cost)";
}
}
if (resultcode == -1) { // nog steeds geen fouten
// Feitelijke ad-hoc of ongeplande insert! Eerst ook altijd een res_reservering record aanmaken!
var resfields = [ { dbs: "res_reservering_key", typ: "key", seq: "res_s_res_reservering_key" },
{ dbs: "res_reservering_aanmaak", typ: "datetime", val: new Date() }
];
var resIns = buildInsert("res_reservering", resfields, { noValidateToken: true });
reservering_key = resIns.sequences["res_reservering_key"];
Oracle.Execute(resIns.sql);
resid = reservering_key+"/1";
fields.push({ dbs: "res_activiteit_key", typ: "key", val: act_key });
fields.push({ dbs: "res_status_fo_key", typ: "key", val: 2 }); // definitief = 2???
fields.push({ dbs: "res_ruimte_opstel_key", typ: "key", val: opstel_key });
fields.push({ dbs: "res_rsv_ruimte_van", typ: "datetime", val: vandate });
fields.push({ dbs: "res_rsv_ruimte_tot", typ: "datetime", val: totdate });
fields.push({ dbs: "res_rsv_ruimte_bezoekers", typ: "number", val: 1 }); // altijd 1
fields.push({ dbs: "prs_kostenplaats_key", typ: "key", val: user.afdeling().prs_kostenplaats_key() });
fields.push({ dbs: "res_rsv_ruimte_host_key", typ: "key", val: user_key });
fields.push({ dbs: "res_rsv_ruimte_contact_key", typ: "key", val: user_key });
fields.push({ dbs: "res_rsv_ruimte_omschrijving", typ: "varchar", val: res_oms, len: 4000 });
fields = fields.concat(
[ { dbs: "res_rsv_ruimte_key", typ: "key", seq: "res_s_res_rsv_ruimte_key" },
{ dbs: "res_reservering_key", typ: "key", val: reservering_key },
{ dbs: "res_rsv_ruimte_volgnr", typ: "number", val: 1 }, // altijd 1
{ dbs: "res_status_bo_key", typ: "key", val: 2 } // ingevoerd
]);
var resIns = buildInsert("res_rsv_ruimte", fields, { noValidateToken: true });
rsv_ruimte_key = resIns.sequences["res_rsv_ruimte_key"];
sql = "BEGIN "
+ resIns.sql + ";"
+ "res.set_ruimte_dirty (" + rsv_ruimte_key + "); " // Zelf dirty geworden?
+ "END;";
Oracle.Execute(sql);
// RESNEW-tracking toevoegen!
shared.trackaction("RESNEW", rsv_ruimte_key);
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze reservering.
}
oRs.Close();
}
}
else if (resaction == 'update')
{
if (resid == '') {
if (ext_id == null) {
resultcode = 1;
resulttekst = "Undefined external ID (key)";
} else if (meldaction != 'insert') {
resultcode = 2;
resulttekst = "Undefined reservering (key)";
}
else if (isNaN (reservering_key) || isNaN (rsv_ruimte_volgnr)) {
resultcode = 2;
resulttekst = "Invalid reservering (key) "+resid;
}
else {
tsql = "SELECT res_rsv_ruimte_key, res_rsv_ruimte_van, res_rsv_ruimte_tot"
+ " FROM res_v_aanwezigrsv_ruimte"
+ " WHERE res_reservering_key="+reservering_key
+ " AND res_rsv_ruimte_volgnr="+rsv_ruimte_volgnr
+ " AND TRUNC(res_rsv_ruimte_van)>=TRUNC(SYSDATE)" // Alleen vandaag of in de toekomst???
+ " AND 1=1"; // Niet dirty, niet verwijderd, ...???
var oRs = Oracle.Execute(tsql);
if (!oRs.eof) {
// Hier heb ik een geldige res_rsv_ruimte_key.
rsv_ruimte_key = oRs("res_rsv_ruimte_key").value;
resulttekst = "Undefined operation (type)";
} else {
var this_res = res.func_enabled(rsv_ruimte_key); // Wat heb ik zoal aan rechten op deze specifieke reservering
user.auth_required_or_abort(this_res.canChange);
DO OUT THING HERE
if (shown != null) { // Bij update optioneel
// Feitelijke UPDATE shown.
// Verder geen checks (Oracle fout als shown < 0 of shown > 999 niet afvangen???)!
if (S("res_noshow_detailed") == 1) {
sql = "UPDATE res_rsv_ruimte"
+ " SET res_rsv_ruimte_bezoekers_shown="+parseInt(shown, 10)
+ " WHERE res_rsv_ruimte_key="+rsv_ruimte_key
+ " AND 1=1"; // Niet dirty, niet verwijderd, ...???
Oracle.Execute(sql);
}
else {
if (parseInt(shown, 10) == 0) {
sql = "UPDATE res_rsv_ruimte"
+ " SET res_rsv_ruimte_noshow = 1"
+ " WHERE res_rsv_ruimte_key="+rsv_ruimte_key
+ " AND 1=1"; // Niet dirty, niet verwijderd, ...???
Oracle.Execute(sql);
}
}
// RESNOS-tracking toevoegen!
shared.trackaction("RESNOS", rsv_ruimte_key);
}
var oldvan = new Date(oRs("res_rsv_ruimte_van").Value);
var oldtot = new Date(oRs("res_rsv_ruimte_tot").Value);
if (tot != null) { // Bij update optioneel
try {
var totdate = XMLtoJsDate(tot);
}
catch (e) {
__DoLog("Formaat ontvangen XML-datum incorrect (tot): "+tot, "#00FF00");
// Datum-formaat niet volgens spec.? Dan exit!
resultcode = 4;
resulttekst = "Invalid date format";
}
if (resultcode == -1) { // nog steeds geen fouten
// Check van-dag = tot-dag = vandaag!
if (1==0) {
resultcode = 6;
resulttekst = "Illegal update (tot-date)";
}
}
if (resultcode == -1) { // nog steeds geen fouten
// Check oldvan < tot (openingstijden ruimte niet afvangen???)!
if (oldvan > totdate) {
resultcode = 6;
resulttekst = "Illegal update (tot-time)";
}
}
if (resultcode == -1) { // nog steeds geen fouten
// Feitelijke UPDATE tot-tijd (tijd in minuten/seconden niet afvangen???)!
// Meerdaags op dit moment hieronder nog in UPDATE voorkomen.
sql = "UPDATE res_rsv_ruimte"
+ " SET res_rsv_ruimte_tot="+totdate.toSQL(true)
+ " WHERE res_rsv_ruimte_key="+rsv_ruimte_key
+ " AND TRUNC(res_rsv_ruimte_tot)=TRUNC("+totdate.toSQL(true)+")"
+ " AND 1=1"; // Niet dirty, niet verwijderd, niet meerdaags, niet overlappend, ...???
Oracle.Execute(sql);
sql = "BEGIN "
+ "res.set_ruimte_dirty (" + rsv_ruimte_key + "); " // Zelf dirty geworden?
+ "res.set_ruimtes_clean (" + oldvan.toSQL() + "); " // Anderen clean geworden
+ "res.follow_artikel (" + rsv_ruimte_key + ", " + oldvan.toSQL(true) + ", " + oldtot.toSQL(true) + "); " // catering mee verplaatsen
+ "res.follow_deel (" + rsv_ruimte_key + ", " + oldvan.toSQL(true) + ", " + oldtot.toSQL(true) + "); " // objecten mee verplaatsen
+ "res.follow_afspraak (" + rsv_ruimte_key + ", " + S("res_copy_to_bez") + "); " // bezoekers mee verplaatsen
+ "END;";
Oracle.Execute(sql);
// TODO: Nog iets met parkeerplaatsen???
// RESUPD-tracking toevoegen!
shared.trackaction("RESUPD", rsv_ruimte_key);
}
}
if (resultcode == -1) { // nog steeds geen fouten
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze reservering.
}
} else {
resultcode = 5;
resulttekst = "Not updatable reservering "+resid;
}
oRs.Close();
}
}
else if (resaction == 'delete')
{
if (resid == '') {
resultcode = 2;
resulttekst = "Undefined reservering (key)";
}
else if (isNaN (reservering_key) || isNaN (rsv_ruimte_volgnr)) {
resultcode = 2;
resulttekst = "Invalid reservering (key) "+resid;
}
else {
tsql = "SELECT r.res_rsv_ruimte_key"
+ " FROM res_v_aanwezigrsv_ruimte r, fac_tracking t, fac_srtnotificatie sn"
+ " WHERE r.res_reservering_key="+reservering_key
+ " AND r.res_rsv_ruimte_volgnr="+rsv_ruimte_volgnr
+ " AND TRUNC(r.res_rsv_ruimte_van)>=TRUNC(SYSDATE)" // Alleen vandaag of in de toekomst???
+ " AND 1=1" // Niet dirty, niet verwijderd, geen voorzieningen, ...???
+ " AND r.res_rsv_ruimte_key=t.fac_tracking_refkey"
+ " AND t.fac_srtnotificatie_key=sn.fac_srtnotificatie_key"
+ " AND sn.fac_srtnotificatie_code='RESNEW'"
+ " AND t.prs_perslid_key="+user_key;
var oRs = Oracle.Execute(tsql);
if (!oRs.eof) {
// Hier heb ik een geldige res_rsv_ruimte_key die kan/mag worden verwijderd!
rsv_ruimte_key = oRs("res_rsv_ruimte_key").value;
var this_res = res.func_enabled(rsv_ruimte_key); // Wat heb ik zoal aan rechten op deze specifieke reservering
user.auth_required_or_abort(this_res.canDelete);
// Feitelijke delete (voorlopig?) alleen toegestaan voor eerder via API aangemaakte ad-hoc/ongeplande reservering!
sql = "UPDATE res_rsv_ruimte r"
+ " SET r.res_rsv_ruimte_verwijder=SYSDATE"
+ " WHERE r.res_rsv_ruimte_key="+rsv_ruimte_key;
Oracle.Execute(sql);
// TODO: Nog iets met anderen clean geworden???
// RESDEL-tracking toevoegen (zonder opmerking???)!
shared.trackaction("RESDEL", rsv_ruimte_key);
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze reservering.
}
else {
resultcode = 5;
resulttekst = "Not deletable reservering "+resid;
}
oRs.Close();
}
}
else {
resultcode = 2;
resulttekst = "Undefined operation (type)";
}
} // end geldige ext_id
var binfo = {
returncode: resultcode,
returntekst: resulttekst,
// executed:sql, // debug
datum: nowtxt, // TODO: Beter ook xml-datum???
resid: resid
// executed:sql, // debug
datum: nowtxt,
meldingnr: mld_key
}
var FCLTBody = xmlResp.createElement("reservering"); // type=response
FCLTBody.setAttribute('key', resid);
FCLTBody.setAttribute('key', ext_id);
FCLTBody.setAttribute('type', 'response');
for (param in binfo)
{
@@ -437,18 +144,10 @@
FCLTElement.appendChild(FCLTBody);
} // end for
// Alle reservering-nodes zijn behandeld.
// Alle melding-nodes zijn behandeld.
xmlResp.appendChild(FCLTElement);
if (API.apidata.stylesheet)
{
// Niet super efficient dat we eerst naar tekstuele xml gaan maar ach...
STR2Stream(xmlResp.xml, API.apidata.stylesheet, Response, {});
}
else
{
Response.ContentType = "text/xml";
Response.Write(xmlResp.xml)
}
Response.ContentType = "text/xml";
Response.Write(xmlResp.xml)
%>

View File

@@ -1,175 +0,0 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: api_ressoap_info.asp
Description: Planbord achtige informatie achterhalen.
Parameters: apiname, apikey
Context: Door een remote systeem (geen persoon) om info uit FACILITOR te halen aan te roepen
Notes:
*/
JSON_Result = true;
LCL_Disable = 1
THIS_FILE = "appl/api/api_ressoap_info.asp";
// Session("logging")=1;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../api/api.inc" -->
<!-- #include file="../Shared/discxalg3d.inc"-->
<!-- #include file="../fac/prodsearch.inc"-->
<!-- #include file="../res/res.inc" -->
<%
Session.Codepage = 65001;
Response.Charset = 'utf-8';
Session.Abandon(); // Voor de zekerheid
try
{
var API = new API_func(); // Valideert ook
var asJSON = getQParam("json","0")!="0";
var params = RequestJSON();
if (!params)
API.error("Error parsing input JSON");
// FAC_API_OPTIONS_JSON
var urole = "fe"; // Altijd?
var autfunction = urole == "fe"? "WEB_RESUSE" : "WEB_RESFOF";
params.authparams = user.checkAutorisation(autfunction, null, null, true); // pessimistisch
/*
xparams = {id: "tab_room_sched",
res_van: new Date(2013, 11, 3, 08, 00),
res_tot: new Date(2013, 11, 3, 17, 00),
loc: 71, // Alkmaar
bld: -1,
ruimtecat: [],
res_ruimte_key: -1,
rsv_ruimte_key: -1,
vis: 1, // vis,
activiteit_key: 1, // UWVA vergadering
srtact: -1, // niet nodig als activiteit_key?
forSelectRoom: true,
authparams: user.checkAutorisation(autfunction, null, null, true), // pessimistisch
urole: urole
};
*/
var headerinfo = {
// file: String(Request.ServerVariables("SCRIPT_NAME")).toLowerCase(),
// datum: new Date(),
naam: user.naam(),
custId: customerId,
language: user.lang()
}
params.anonymous = true; // erg anoniem
params.get_deepurl = true; // we willen graag een bookmark
if (params.prs_externId && !(params.prs_key > 0))
{
var sql = "SELECT prs_perslid_key"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_oslogin = " + safe.quoted_sql("_" + params.prs_externId);
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
params.prs_key = oRs("prs_perslid_key").Value;
}
oRs.Close()
}
switch (params.request)
{
case "plan_rooms_info":
plan_info = res.plan_rooms_info(params);
set_deep_info(params, plan_info);
break;
case "plan_bezet_info":
plan_info = res.plan_bezet_info(params);
break;
case "prodsearch_rooms_info":
var w_discs = write_discs();
var filter = { s: params.s
, soort: { val: "resruimte", lcl: L("lcl_srch_entiteit") }
, satisfaction: params.satisfaction
, locatieKey: -1
, gebouwKey: -1
, verdiepingKey: -1
};
var inc_queries = ["resruimte"];
var queries = prodsearch_queries(w_discs, filter);
var q_items = { alg_locatie_plaats: params.alg_locatie_plaats };
var sql = prodsearch_sql(filter, queries, w_discs, q_items, inc_queries);
var oRs = Oracle.Execute(sql);
var plan_info = Oracle.rs2hash(oRs);
oRs.Close();
set_deep_info(params, plan_info);
break;
case "user_lopend_info": // Alle lopende reserveringen van params.prs_externId
plan_info = [];
if (params.prs_key > 0)
{
plan_info = res.user_lopend_info(params);
}
break;
default:
API.error("Unknown API request: " + params.request);
}
Response.ContentType = "application/json";
Response.AddHeader("Access-Control-Allow-Origin", "*"); // Opdat FireFox cross-domain toestaat
var result = { header: headerinfo,
success: true
}
result[params.request] = plan_info;
var antwoord = JSON.stringify(result, null, getQParam("pretty","0")=="1"?2:0);
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var eTag = '"' + oCrypto.hex_sha1(antwoord).toLowerCase() + '"';
Response.AddHeader("ETag", eTag);
if (Request.ServerVariables("HTTP_IF_NONE_MATCH") == eTag)
{ // We hebben een match! Effectief besparen wel alleen op dataverkeer, de queries zijn al geweest
Response.Clear();
Response.Status = "304 Not modified";
Response.End;
}
if (API.apidata.loglevel) __Log2File(antwoord, API.APIname + "_OUT");
Response.write(antwoord);
}
catch (e)
{
API.error(typeof e == "string"? e : "API_error: " + e.description);
}
function set_deep_info(params, plan_info)
{
// Bepaal de URL waar user straks op kan klikken
if (params.mobile)
{
var deepurl = HTTP.urlzelf() + "/appl/pda/reservering.asp?fac_id=" + customerId;
}
else
{
var deepurl = HTTP.urlzelf() + "/?fac_id=" + customerId + "&u=reservering";
}
for (var r in plan_info)
{
plan_info[r].deepurl = deepurl;
if (plan_info[r].image)
plan_info[r].image_url = HTTP.urlzelfnoroot() + S("res_image_path") + plan_info[r].image;
else if (plan_info[r].foto) // prodsearch
plan_info[r].image_url = HTTP.urlzelfnoroot() + S("res_image_path") + plan_info[r].foto;
}
}
%>

View File

@@ -11,8 +11,7 @@
Note: LET OP: Alle data is/moet HTML-safe zijn!
*/ %>
<%
var JSON_Result = true;
<% DOCTYPE_Disable = 1;
%>
<!--#include file="../Shared/common.inc"-->
<!--#include file="../Shared/json2.js" -->
@@ -20,7 +19,9 @@ var JSON_Result = true;
<!-- #include file="../api/api.inc" -->
<%
var API = new API_func();
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
var callback = getQParam("callback", null);

View File

@@ -14,14 +14,15 @@
DOCTYPE_Disable = 1;
FCLTEXPIRES = 8*60; // geen database interactie tenslotte
THIS_FILE = "appl/api/phonebook_js.asp";
var EXPIRED_PASSWORD_OK = true; // performance
%>
<!-- #include file="../Shared/common.inc"-->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../api/api.inc" -->
<%
var API = new API_func();
var APIname = getQParam("API");
var APIKEY = getQParam("APIKEY");
var API = new API_func(APIname, APIKEY);
var nojQuery = getQParam("nojQuery", 0)==1;
@@ -64,7 +65,7 @@ function L(p_lcl)
getCSS("appl/api/api.css");
<% if (!nojQuery) { /* kan conflicteren */ %>
getScript("appl/localscripts/<%=_jqueryver%>.min.js");
getScript("appl/localscripts/jquery-1.6.1.min.js");
<% } %>
getScript("appl/shared/suggest/suggest.js");
@@ -106,10 +107,17 @@ function L(p_lcl)
}
%>
window.facilitor.decodehtml = function(encodedStr)
{ // get_phonebook_info.asp heeft ons alles HTML-encoded gegeven maar hier willen we dat niet
// Belgi&#235;.jpg --> Belgi<67>.jpg
var decoded = $("<div/>").html(encodedStr).text();
return decoded;
}
window.facilitor.show_phonebook = function(data, textStatus)
{
// Alle styling moet nog via classes
var closer = "<span onclick='$(\"#phonebookdetails\").hide()' style='float: right; cursor: pointer' title='<%=L("lcl_close_window")%>'>x</span>"
var closer = "<span onclick='$(\"#phonebookdetails\").hide()' style='float: right; cursor: hand' title='<%=L("lcl_close_window")%>'>x</span>"
if (window.facilitor.phonebook_options.detailurl)
{
var jumpto = window.facilitor.phonebook_options.detailurl;
@@ -126,7 +134,7 @@ function L(p_lcl)
var trs = "";
if (window.facilitor.phonebook_options.toonFoto && data.photopath)
{
trs += "<tr><td></td><td></td><td rowspan='50'><img src='<%=sitenoroot%>" + data.photopaththumb.replace(/\'/g,'&#39;').replace(/\"/g,'&quot;') +"'></td></tr>";
trs += "<tr><td></td><td></td><td rowspan='50'><img src='<%=sitenoroot%>" + escape(window.facilitor.decodehtml(data.photopaththumb)) +"'></td></tr>";
}
var fld;
for (fld in window.facilitor.phonebook_options.fields)

View File

@@ -7,7 +7,6 @@
Description: Redirect naar een bookmark url
Parameters: u Bookmark die in de bookmark tabel moet zitten.
Dit moet de eerste parameter zijn als er nog meer komen
k Een integer keywaarde die plat achter de bookmark_query wordt geplakt
-- Optionele parameter(s): die worden allemaal blind
doorgegeven naar het volgende scherm
Context: Vanuit root
@@ -17,150 +16,50 @@
dat is in tegenspraak met het betekenisloos zijn van de u-param
Als je dat wilt moet je maar BOOKMARK's gebruiken
*/
LCL_Disable = 1;
ANONYMOUS_Allowed = 1;
%>
<!-- #include file="../Shared/common.inc"-->
<!-- #include file="../shared/useragent.inc" -->
<%
var u = getQParam("u");
var known_bookmarks =
{
'afspraak': { gui: 'appl/bez/bez_afspraak.asp?afspr_key=', mob: 'appl/pda/afspraak.asp?afs_key=' },
'bestelling': { gui: 'appl/bes/bes_bestelling.asp?bes_key=', mob: 'appl/pda/bestelling.asp?bes_key=' },
'bestelopdr': { gui: 'appl/bes/bes_opdr.asp?ordernr=' },
'contract': { gui: 'appl/cnt/cnt_contract.asp?cnt_key=', mob: 'appl/pda/contract.asp?cnt_key=' },
'deel': { gui: 'appl/ins/ins_deel.asp?ins_key=', mob: 'appl/pda/ins_deel.asp?ins_key=' },
'factuur': { gui: 'appl/fin/fin_factuur.asp?fin_key=', mob: 'appl/pda/factuur.asp?fin_key=' },
'gebouw': { gui: 'appl/alg/alg_gebouw.asp?key=' },
'locatie': { gui: 'appl/alg/alg_locatie.asp?key=' },
'melding': { gui: 'appl/mld/mld_melding.asp?mld_key=', mob: 'appl/pda/melding.asp?mld_key=' },
'message': { gui: 'appl/msg/msg_message.asp?message_key=' },
'opdracht': { gui: 'appl/mld/mld_opdr.asp?opdr_key=', mob: 'appl/pda/order.asp?opdr_key=' },
'perslid': { gui: 'appl/prs/prs_perslid.asp?prs_key=', mob: 'appl/pda/user_info.asp?prs_key=' },
'reservering': { gui: 'appl/res/res_reservering.asp?rsv_ruimte_key=', mob: 'appl/pda/reservering.asp?rsv_ruimte_key=' },
'ruimte': { gui: 'appl/alg/alg_ruimte.asp?key=', mob: 'appl/pda/ruimte.asp?ruimte_key=' },
'verdieping': { gui: 'appl/alg/alg_verdieping.asp?key='},
'xreservering': { gui: 'appl/res/res_reservering.asp?rsv_ruimte_key='}
}
var keyparam = getQParamInt("k", -1);
// For flexiblity reasons: Literal or runtime parameter(s), just pass through...
var rest = String(Request.ServerVariables("QUERY_STRING")); // Request.ServerVariables("QUERY_STRING") is url-encoded,
// dat is hier safer dan Request.QueryString
// Strip eventuele leading &fac_id=XXXX er ook af.
rest = rest.substring(rest.indexOf("u=")).substring(("u="+u).length+1);
rest = rest.substring(("u="+u).length+1);
if (u in known_bookmarks)
var sql = "SELECT fac_bookmark_path,"
+ " fac_bookmark_query,"
+ " prs_perslid_key_auth,"
+ " fac_bookmark_unauth_url"
+ " FROM fac_bookmark"
+ " WHERE fac_bookmark_id = " + safe.quoted_sql(u)
+ " AND (fac_bookmark_expire IS NULL OR fac_bookmark_expire > SYSDATE)";
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
{
checkUserAgent(); // devicebits waren anders mogelijk nog niet gezet
if (device.test(device.isDesktop) || device.test(device.isTouch))
url = known_bookmarks[u].gui;
else
url = known_bookmarks[u].mob || known_bookmarks[u].gui;
url = rooturl + "/" + url + keyparam;
Response.Write("BOOKMARK URL NOT FOUND");
Response.End;
}
var url = oRs("fac_bookmark_path").Value;
if (keyparam > -1)
{
rest = rest.substring(("k="+keyparam).length+1);
}
if (oRs("prs_perslid_key_auth").Value)
{
Session("fallback_user_key") = oRs("prs_perslid_key_auth").Value; // wordt opgepikt door loginTry.asp
}
else
Session("unauth_url") = oRs("fac_bookmark_unauth_url").Value; // wordt opgepikt door common.asp
if (oRs("fac_bookmark_query").Value)
{
url += "?" + oRs("fac_bookmark_query").Value + (rest?"&"+rest:"");
}
else
{
if (rest)
url += "&" + rest;
url += "?" + rest;
}
else
{
var sql = "SELECT fac_bookmark_path,"
+ " fac_bookmark_query,"
+ " prs_perslid_key_auth,"
+ " fac_bookmark_unauth_url,"
+ " fac_bookmark_expire,"
+ " fac_bookmark_refreshtime,"
+ " fac_bookmark_naam"
+ " FROM fac_bookmark"
+ " WHERE fac_bookmark_id = " + safe.quoted_sql(u);
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
{
shared.simpel_page(L("lcl_fac_bookmark_unknown"));
}
if (oRs("fac_bookmark_expire").Value != null)
{
var expire = new Date(oRs("fac_bookmark_expire").Value);
if (expire <= new Date)
{
shared.simpel_page(L("lcl_fac_bookmark_expired"));
}
}
var url = oRs("fac_bookmark_path").Value;
var refresher = oRs("fac_bookmark_refreshtime").Value;
var bookmark_naam = oRs("fac_bookmark_naam").Value;
if (user_key < 0)
{
if (oRs("prs_perslid_key_auth").Value)
{
var falluser_key = oRs("prs_perslid_key_auth").Value;
if (bookmark_naam != 'faclikedeeplink' && new Perslid(falluser_key).checkAutorisation("WEB_PRSSYS", true))
{
INTERNAL_ERROR_FALLBACK_CANNOT_HAVE_PRSSYS;
// fac_like_deep.asp staan we wel toe, die heeft een Session.Abandon();
}
Session("fallback_user_key") = falluser_key; // wordt opgepikt door loginTry.asp
}
else
Session("unauth_url") = oRs("fac_bookmark_unauth_url").Value; // wordt opgepikt door common.asp
}
var params = oRs("fac_bookmark_query").Value;
if (params)
{
if (keyparam > -1)
{
rest = rest.substring(("k="+keyparam).length+1);
params += keyparam;
}
if (rest)
params += "&" + rest;
}
else
{
if (rest)
params = rest;
}
oRs.Close();
if (params)
url = url + "?" + params;
}
// Als de bookmark een refreshrate heeft ingesteld wordt automatisch gerefreshed
// We doen een refresh van de complete bookmark, niet alleen van de pagina waar de
// bookmark naar wijst. Daarmee wordt de fallback_user voor elke refresh opnieuw
// gebruikt en 'overleeft' de refresh een 'session expired'
// Voorkom recursie met norefresh
if (refresher > 0 && getQParamInt("norefresh",0) == 0)
{
theURL = "appl/shared/refresher.asp?url=" + Server.URLencode("/?norefresh=1" + transitQS()) + "&refreshrate=" + refresher;
}
else
var theURL = protectQS.create(url);
var no302 = getQParamInt("no302", 0) == 1;
if (no302)
{
%> <html>
<head>
<title>FACILITOR</title>
<META http-equiv="refresh" content="0;URL=<%=safe.htmlattr(theURL)%>">
</head>
<body bgcolor="#ffffff">
<a href="<%=safe.htmlattr(theURL)%>">Auto redirect</a>
</body>
</html>
<%
}
else
Response.Redirect(theURL);
oRs.Close();
Response.Redirect(protectQS.create(url));
%>

View File

@@ -1,135 +0,0 @@
<%@ language = "JavaScript" %>
<%
/*
$Revision$
$Id$
*/
ANONYMOUS_Allowed = 1;
%>
<!-- #include file="../../Shared/common.inc" -->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script src="jquery-1.11.3.min.js"></script>
<script src="tester.js"></script>
<script src="jquery.iecors.js"></script>
<script>
$(document).ready(function()
{
$(doInit);
$(doBuild);
});
</script>
<style>
pre { font-size: 1.2em;
-moz-tab-size:4;
}
td { vertical-align: top;}
th {border-bottom: 1px solid #666;line-height:20px;}
input[type=button],input[type=submit], button {font-weight: bold;}
</style>
</head>
<body style='background-color:#E5EAF1; font-family: Helvetica; font-size: 0.8em;'>
<form method="post" onsubmit="doSubmit();return false;">
<table>
<th colspan="2">FACILITOR API2 tester - FOR INTERNAL USE ONLY [ <a href="http://facws001/trunk/api2/">API reference</a> ]</th>
<tr><td><label>Format</label></td>
<td><input type='radio' id='format' name='format' value='json' checked='1'>json</input>
<input type='radio' id='format' name='format' value='xml'>xml</input>
<input type='radio' id='format' name='format' value='html'>html (formatted json)</input>
<input type='radio' id='format' name='format' value='api'>api</input>
</td>
</tr>
<tr><td><label>fac_id</label></td>
<td><input id="facid" type="text" style="width:100px" value="">
</td>
</tr>
<tr><td><label>APIKEY</label></td>
<td><input id="apikey" type="text" style="width:250px" value="APIPFO">
</td>
</tr>
<tr><td><label>API2</label></td>
<td><select id="api" style="width:250px">
</select>
</td>
</tr>
<tr><td><label>Website</label></td>
<!-- <td><input id="urlbase" type="text" style="width:250px" value="http://uwva.5iwork/Facilitor5iwork"> -->
<td><input id="urlbase" type="text" style="width:250px" value="<%=safe.htmlattr(HTTP.urlzelf())%>">
</td>
</tr>
<tr><td><label>Scope</label></td>
<td><select id="scope" style="width:50px">
<option></option>
<option>fe</option>
<option>fo</option>
<option>bo</option>
<option>mi</option>
</select>
</td>
</tr>
<tr><td><label>Pretty JSON</label></td>
<td><input id="pretty" type="checkbox" checked='1'>
</td>
</tr>
<tr><td><label>Logging</label></td>
<td><input id="log" type="checkbox" checked='1'></td>
</tr>
<tr><td></td><td><input type="button" onclick="doBuild();" value="Build URL"></td></tr>
<tr><td><label>URL</label></td>
<td><input id="url" type="text" style="width:800px">
<div id="urltest" style="width:800px;color:#888;"></div>
</td>
</tr>
<tr><td><label>Method</label></td>
<td><input type='radio' id='method' name='method' value='GET' checked='1'>GET</input>
<input type='radio' id='method' name='method' value='PUT'>PUT (update)</input>
<input type='radio' id='method' name='method' value='POST'>POST (insert)</input>
<input type='radio' id='method' name='method' value='DELETE'>DELETE</input>
</td>
</tr>
<tr><td><label>Request body</label></td>
<td><textarea id="xml" style="height:200px;width:800px">
{
"appointment": {
"id": 3328303,
"from": "2014-06-20T06:00:00Z",
"to": "2014-06-20T18:00:00Z",
"description": "Een test afspraak",
"action": {
"id": 5,
"name": "Op laten halen (bellen)"
},
"visitors": [
{
"id": 5287608,
"name": "Bezoekernaam",
"company": "Bezoekerbedrijf",
"badge": null,
"in": null,
"out": null
}
]
}
}
</textarea>
</td>
</tr>
<tr><td></td><td><input type="submit" onclick="doSubmit();return false;" value="Submit"></td></tr>
</table>
</form>
<table>
<tr><td>Status:</td><td><span id="Status"></span></td></tr>
<tr><td>StatusText:</td><td><span id="StatusText"></span></td></tr>
<tr><td>Duration:</td><td><span id="Duration"></span></td></tr>
<tr><td>Records:</td><td><span id="Records"></span></td></tr>
<tr><td>Result:<button onclick='$("#xml").val($("#Result").text().replace("\r\n", "\n"))'>^^^</button></td>
<td style='border:1px solid #666;font-size:0.8em;background-color:#fafafa;min-width:800px;'>
<pre id="Result" style="padding:0 8px 0 2px;"></pre>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -1,108 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script src="jquery-1.11.3.min.js"></script>
<script src="tester.js"></script>
<script src="jquery.iecors.js"></script>
<script>
$(document).ready(function()
{
$(doInit);
$(doBuild);
});
</script>
<style>
pre { font-size: 1.2em;
-moz-tab-size:4;
}
td { vertical-align: top;}
th {border-bottom: 1px solid #666;line-height:20px;}
input[type=button],input[type=submit], button {font-weight: bold;}
</style>
</head>
<body style='background-color:#CEE3F6; font-family: Helvetica; font-size: 0.8em;'>
<form method="post" onsubmit="doSubmit();return false;">
<table>
<th colspan="2">FACILITOR API2 Tester</th>
<tr><td><label>Format</label></td>
<td><input type='radio' id='format' name='format' value='json' checked='1'>json</input>
<input type='radio' id='format' name='format' value='xml'>xml</input>
<input type='radio' id='format' name='format' value='html'>html (=formatted json)</input>
</td>
</tr>
<tr><td><label>APIKEY</label></td>
<td><input id="apikey" type="text" style="width:250px" value="APIPFO">
</td>
</tr>
<tr><td><label>API2</label></td>
<td><select id="api" style="width:250px">
</select>
</td>
</tr>
<tr><td><label>Website</label></td>
<!-- <td><input id="urlbase" type="text" style="width:250px" value="http://uwva.5iwork/Facilitor5iwork"> -->
<td><input id="urlbase" type="text" style="width:250px" value="http://sgf12/Facilitor5iwork">
</td>
</tr>
<tr><td><label>Pretty JSON</label></td>
<td><input id="pretty" type="checkbox" checked='1'>
</td>
</tr>
<tr><td><label>Logging</label></td>
<td><input id="log" type="checkbox" checked='1'></td>
</tr>
<tr><td></td><td><input type="button" onclick="doBuild();" value="Build URL"></td></tr>
<tr><td><label>URL</label></td>
<td><input id="url" type="text" style="width:800px">
<div id="urltest" style="width:800px;color:#888;"></div>
</td>
</tr>
<tr><td><label>Method</label></td>
<td><input type='radio' id='method' name='method' value='GET' checked='1'>GET</input>
<input type='radio' id='method' name='method' value='PUT'>PUT (update)</input>
<input type='radio' id='method' name='method' value='POST'>POST (insert)</input>
<input type='radio' id='method' name='method' value='DELETE'>DELETE</input>
</td>
</tr>
<tr><td><label>Request body</label></td>
<td><textarea id="xml" style="height:200px;width:800px">
{
"appointment": {
"id": 3328303,
"from": "2014-06-20T06:00:00Z",
"to": "2014-06-20T18:00:00Z",
"description": "Een test afspraak",
"action": {
"id": 5,
"name": "Op laten halen (bellen)"
},
"visitors": [
{
"id": 5287608,
"name": "Bezoekernaam",
"company": "Bezoekerbedrijf",
"badge": null,
"in": null,
"out": null
}
]
}
}
</textarea>
</td>
</tr>
<tr><td></td><td><input type="submit" onclick="doSubmit();return false;" value="Submit"></td></tr>
</table>
</form>
<table>
<tr><td>Status:</td><td><span id="Status"></span></td></tr>
<tr><td>StatusText:</td><td><span id="StatusText"></span></td></tr>
<tr><td>Duration:</td><td><span id="Duration"></span></td></tr>
<tr><td>Records:</td><td><span id="Records"></span></td></tr>
<tr><td>Result:<button onclick='$("#xml").val($("#Result").text().replace("\r\n", "\n"))'>^^^</button></td>
<td style='border:1px solid #666;font-size:0.8em;background-color:#fafafa;min-width:800px;'><pre id="Result" style="padding:0 8px 0 2px;"></pre></td></tr>
</table>
</body>
</html>

View File

@@ -1,49 +0,0 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: get_apinames.asp
Description: Levert de bestanden in in de aangegeven map staan op de server.
Parameters:
- -
*/
%>
<%
ANONYMOUS_Allowed = 1;
var JSON_Result = true;
%>
<!-- #include file="../../Shared/json2.js" -->
<%
/***** Get webform parameters *****/
//var searchfolder = getQParam("folder", "appl/api2");
// Geen autorisatie check nodig
/***** End get webform parameters *****/
//var fullpath = (Server.MapPath(searchfolder));
var fullpath = Server.MapPath("../");
var api2_names = [];
var objFso = new ActiveXObject("Scripting.FileSystemObject");
var objFiles = objFso.GetFolder(fullpath);
var allFiles = new Enumerator(objFiles.files);
for (; !allFiles.atEnd(); allFiles.moveNext())
{
var attFile = allFiles.item();
var ext = objFso.GetExtensionName(attFile);
if ((attFile.name.indexOf("api_") == 0) && (ext == "asp"))
{
var name = attFile.name.substring(4, attFile.name.indexOf(".asp"))
api2_names.push(name);
}
}
api2_names.sort();
var result = { success: true
, apinames: api2_names
};
Response.Write(JSON.stringify(result));
%>

File diff suppressed because one or more lines are too long

View File

@@ -1,46 +0,0 @@
(function( jQuery ) {
// Create the request object
// (This is still attached to ajaxSettings for backward compatibility)
jQuery.ajaxSettings.xdr = function() {
return (window.XDomainRequest ? new window.XDomainRequest() : null);
};
// Determine support properties
(function( xdr ) {
jQuery.extend( jQuery.support, { iecors: !!xdr });
})( jQuery.ajaxSettings.xdr() );
// Create transport if the browser can provide an xdr
if ( jQuery.support.iecors ) {
jQuery.ajaxTransport(function( s ) {
var callback,
xdr = s.xdr();
return {
send: function( headers, complete ) {
xdr.onload = function() {
var headers = { 'Content-Type': xdr.contentType };
complete(200, 'OK', { text: xdr.responseText }, headers);
};
// Apply custom fields if provided
if ( s.xhrFields ) {
xhr.onerror = s.xhrFields.error;
xhr.ontimeout = s.xhrFields.timeout;
}
xdr.open( s.type, s.url );
// XDR has no method for setting headers O_o
xdr.send( ( s.hasContent && s.data ) || null );
},
abort: function() {
xdr.abort();
}
};
});
}
})( jQuery );

View File

@@ -1,90 +0,0 @@
var tm;
function callbackDone(data, textStatus, jqXHR)
{
// jqXHR.getResponseHeader("ETag")
$("#Status").text(jqXHR.status);
$("#StatusText").text(textStatus);
$("#Duration").text(Math.floor(new Date - tm) + "ms");
var txt = String(jqXHR.responseText);
txt = txt.replace(/\012/ig, "\n\r"); // beter in IE
$("#Result").text(txt);
var objects_count = 1;
if (jqXHR.responseText.indexOf("[") > 0)
{
var objects_name = jqXHR.responseText.substring(5, jqXHR.responseText.indexOf("[")-3);
var objects_count = data[objects_name].length;
}
$("#Records").text(objects_count);
}
function callbackFail(jqXHR, textStatus, errorThrown)
{
// alert("FAIL: " + (typeof errorThrown == "string"?errorThrown:errorThrown.message));
$("#Status").text(jqXHR.status + " " + (typeof errorThrown == "string"?errorThrown:errorThrown.message)).css("background-color", "red");
$("#StatusText").text(textStatus);
var txt = String(jqXHR.responseText);
txt = txt.replace(/\012/ig, "\n\r"); // beter in IE
$("#Result").text(txt);
}
function doSubmit()
{
$("#Status").text("Loading ... ").css("background-color", "");
$("#StatusText").text("");
$("#Records").text("");
$("#Result").text("");
var url = $("#url").val();
var method = $("[name=method]:checked").val();
if (method != "GET")
var data = $("#xml").val();
var apikey = $("#apikey").val();
//jQuery.support.cors = true; // in IE niet al te moeilijk doen over cross-domain.
tm = new Date;
$.ajax(url, { type: method,
data: data,
headers: { "X-FACILITOR-API-Key": apikey }
// dan werkt de header niet dataType: "jsonp"
}
).done(callbackDone).fail(callbackFail);
//http_request.setRequestHeader("Content-Type", "text/xml; charset=utf-8")
}
function doBuild()
{
var urlbase = $("#urlbase").val();
var api = $("#api").val();
var format = $("[name=format]:checked").val();
var pretty = $("#pretty:checked").val() == "on";
var logging= $("#log:checked").val() == "on";
var apikey = $("#apikey").val();
var scope = $("#scope").val();
var facid = $("#facid").val() || "UWVA";
var url = urlbase + "/api2/" + api + "." + format;
url += "?fac_id="+facid;
if (scope)
url += "&scope="+scope;
if (pretty)
url += "&pretty=1";
// url += "?pretty=1";
if (logging)
url += "&logging=1";
$("#url").val(url);
$("#urltest").html(url + (pretty?"&":"?") + "apikey=" + apikey);
}
function doInit()
{
var path = "appl/api2";
$.getJSON("get_apinames.asp?3", process_api_list);
}
function process_api_list(data)
{
$("#api").empty();
$.each( data.apinames
, function (index, value)
{
apiname = data.apinames[index];
$("#api").append("<option value="+ apiname +">" + apiname + "</option>");
}
);
}

View File

@@ -1,173 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="voorb_timepicker.css">
<script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<script type="text/javascript" src="jquery.iecors.js"></script>
<script type="text/javascript" src="voorb_timepicker.js"></script>
<script type="text/javascript" src="voorb_config.js"></script>
<script type="text/javascript" src="voorb.js"></script>
<script type="text/javascript" src="voorb_user_callback.js"></script>
<script>
callbackFunctions.user = callbackFunctions_user;
$(document).ready(function()
{
$("#dag1").datepicker({dateFormat: "dd-mm-yy"});
$("#dag2").datepicker({dateFormat: "dd-mm-yy"});
$("#tijd1").timepicker({ step: 15
, timeFormat: "G:i"
, show2400: true
, minTime: "9:00"
, maxTime: "18:00"
, scrollDefault: "now"
});
$("#tijd2").timepicker({ step: 15
, timeFormat: "G:i"
, show2400: true
, minTime: "9:00"
, maxTime: "18:00"
, scrollDefault: "now"
});
load_optionlist("lokatie", "locations");
$(".datepicker").each(function()
{
$(this).datepicker("setDate", new Date());
});
});
function load_optionlist(listname, apiname, params)
{
var param = params || {};
if (!param.callback_done)
param.callback_done = ["api2.createOptionList", "api2.callbackstatusDone"];
call_optionlist(listname, apiname, param);
}
function lokatieChanged()
{
var params = {};
params.filter = "location=" + $("#lokatie option:selected").val();
params.callback_done = ["api2.createOptionList", "user.b"];
load_optionlist("gebouw", "buildings", params);
}
function doSubmit()
{
function zetDatumTijd(datum, tijd)
{
var dt = datum;
var ti = (tijd ? tijd : new Date());
dt.setHours(ti.getHours());
dt.setMinutes(ti.getMinutes());
return dt;
}
$("#Result").text("Loading ... ").css("background-color", "");
$("#btnSubmit").attr("disabled", true);
// Verzamelen van input data voor submit.
var date1 = zetDatumTijd($("#dag1").datepicker("getDate"), $("#tijd1").timepicker("getTime"));
var date2 = zetDatumTijd($("#dag2").datepicker("getDate"), $("#tijd2").timepicker("getTime"));
var data_visitor = {};
data_visitor = { name: $("#persoon").val()
, company: $("#bedrijf").val()
};
var data_appointment = {};
data_appointment.appointment = { location: $("#lokatie").val()
, building: $("#gebouw").val()
, from: date1
, to: date2
, description: $("#omschrijving").val()
, action: null
, visitors: []
};
data_appointment.appointment.visitors.push(data_visitor);
// API aanroepen om een nieuwe afspraak toe te voegen.
$("#Result").text("Bezig met afspraak te verwerken...");
var params = { apiname: "appointments"
, method: "POST"
, callback_done: ["api2.showAppointmentNr", "api2.callbackstatusDone"]
};
call_api(data_appointment, params);
}
function doClose()
{
$("#omschrijving").val("");
$("#persoon").val("");
$("#bedrijf").val("");
}
</script>
<style>
pre { font-size: 1em;
-moz-tab-size:4;
}
td { vertical-align: top;}
th {border-bottom: 1px solid #666;line-height:20px;}
input[type=button],input[type=submit], button {font-weight: bold;}
</style>
</head>
<body style='background-color:rgb(238,176,102); font-family: Helvetica;'>
<form method="post" onsubmit="doSubmit();return false;">
<table>
<th colspan="2">Meldt een bezoeker aan</th>
<tr>
<td><label>Lokatie</label></td>
<td><select id="lokatie" style="width:250px" onchange="lokatieChanged()"></select></td>
</tr>
<tr>
<td><label>Gebouw</label></td>
<td><select id="gebouw" style="width:250px" onchange="gebouwChanged()"></select></td>
</tr>
<tr>
<td><label>van</label></td>
<td><input type="text" id="dag1" class="datepicker" value="">
<input type="text" id="tijd1" value="" style="width:40px">
</td>
</tr>
<tr>
<td><label>tot</label></td>
<td><input type="text" id="dag2" class="datepicker" value="">
<input type="text" id="tijd2" value="" style="width:40px">
</td>
</tr>
<tr>
<td><label>Omschrijving</label></td>
<td><input id="omschrijving" type="text" style="width:250px" value=""></td>
</tr>
<tr>
<td><label>Persoon</label></td>
<td><input id="persoon" type="text" style="width:250px" value=""></td>
</tr>
<tr>
<td><label>Bedrijf</label></td>
<td><input id="bedrijf" type="text" style="width:250px" value=""></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" id="btnSubmit" onclick="doSubmit();return false;" value="Opslaan">
<input type="button" id="btnClose" onclick="doClose();" value="Annuleren">
</td>
</tr>
</table>
</form>
<br><br>Status <span id="Status"></span>
<br>Melding: <pre id="Result"></pre>
</body>
</html>

View File

@@ -1,156 +0,0 @@
/*
File: voorb.js
*/
var debug = true;
function get_url(apiname, params)
{
// config.js
// var apikey
// var fac_id
// var urlbase
//
var format = "json";
var pretty = true;
var logging = true;
var param = params || {};
var url = urlbase + "/api2/" + apiname + "." + format;
url += "?fac_id=" + fac_id;
if (debug)
{
if (pretty)
url += "&pretty=1";
if (logging)
url += "&logging=1";
}
if (param.filter)
url += "&"+param.filter;
var result = {url: url, apikey: apikey};
result.method = (param.method ? param.method : "GET");
if (param.callback_done || param.callback_fail)
{
result.callback = {};
result.callback.done = (param.callback_done ? param.callback_done : ["api2.callbackstatusdone"]);
result.callback.fail = (param.callback_fail ? param.callback_fail : ["api2.callbackstatusFail"]);
}
return result;
}
function splitFunctionname(fullname)
{
var result = {fnmodule: "api2", fnname: "no_function"};
var x = fullname.split(".");
if (x.length == 2)
{
if (callbackFunctions[x[0]] && callbackFunctions[x[0]][x[1]])
{
result.fnmodule = x[0];
result.fnname = x[1];
}
}
return result;
}
function call_api(io_data, params)
{
var url_data = get_url(params.apiname, params);
tm = new Date;
$.ajax( url_data.url
, { type: url_data.method
, data: JSON.stringify(io_data)
, headers: { "X-FACILITOR-API-Key": url_data.apikey }
}
).done( function (data, textStatus, jqXHR)
{
var statusInfo = {jqXHR: jqXHR, textStatus: textStatus};
for (var i=0; i<url_data.callback.done.length; i++)
{
var splitfunction = splitFunctionname(url_data.callback.done[i]);
callbackFunctions[splitfunction.fnmodule][splitfunction.fnname](data, statusInfo, params);
}
}
)
.fail( function (data, textStatus, jqXHR, errorThrown)
{
var statusInfo = {jqXHR: jqXHR, textStatus: textStatus, errorThrown: errorThrown};
for (var i=0; i<url_data.callback.fail.length; i++)
{
var splitfunction = splitFunctionname(url_data.callback.fail[i]);
callbackFunctions[splitfunction.fnmodule][splitfunction.fnname](data, statusInfo, params);
}
}
);
}
function call_optionlist(listname, apiname, params)
{
var param = params || {};
var data_optionlist = {};
param.optionlist = listname;
param.apiname = apiname;
if (!param.callback_done)
param.callback_done = ["api2.createOptionList", "api2.callbackstatusDone"];
call_api(data_optionlist, param);
}
var callbackFunctions_api =
{ name: "api2",
no_function: function _no_function(data, statusInfo, params)
{
var msg = "Onbekende callback functie";
$("#Status").text(msg);
},
callbackstatusDone: function _callbackstatusDone(data, statusInfo, params)
{
$("#Status").text(statusInfo.jqXHR.status + ": " + statusInfo.textStatus);
$("#btnSubmit").attr("disabled", false);
},
callbackstatusFail: function _callbackstatusFail(data, statusInfo, params)
{
var info = data.responseJSON.error;
$("#Status").text(info.code + ": " + info.message);
$("#Result").text("");
$("#btnSubmit").attr("disabled", false);
},
createOptionList: function _createOptionList(data, statusInfo, params)
{
var listname = params.optionlist;
var apiname = params.apiname;
$("#"+listname).empty();
$.each( data[apiname]
, function (index, value)
{
apirecord = data[apiname][index];
$("#"+listname).append("<option value="+ apirecord.id +">" + apirecord.name + "</option>");
}
);
},
showAppointmentNr: function _showAppointmentNr(data, statusInfo, params)
{
var msg = "Afspraak gemaakt met nummer: "+ data.appointment.id;
$("#Result").text(msg);
$("#btnSubmit").attr("disabled", true);
},
b: function _ennuverder2(data, statusInfo, params)
{
var msg = $("#Status").text();
msg = msg + "andere functie";
$("#Result").text(msg);
}
}
var callbackFunctions = {};
callbackFunctions.api2 = callbackFunctions_api;

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