From ec230b73b12d450635484b888967943bd35c65b7 Mon Sep 17 00:00:00 2001 From: Peter Feij Date: Fri, 23 Oct 2009 10:53:08 +0000 Subject: [PATCH] svn path=/Website/trunk/; revision=22 --- APPL/ALG/alg.inc | 218 +++++++++++++++++++ APPL/ALG/get_volgnr_ajax.asp | 30 +++ APPL/FIN/fin_search_list.asp | 16 +- APPL/PRS/.gitignore | 0 APPL/PRS/prs_edit_perslidwerkplek.asp | 103 +++++++++ APPL/PRS/prs_edit_perslidwerkplek_save.asp | 53 +++++ APPL/PRS/prs_perslidwerkplek_list.inc | 187 ++++++++++++++++ APPL/PRS/prs_perslidwerkplek_search_list.asp | 38 ++++ 8 files changed, 638 insertions(+), 7 deletions(-) create mode 100644 APPL/ALG/alg.inc create mode 100644 APPL/ALG/get_volgnr_ajax.asp delete mode 100644 APPL/PRS/.gitignore create mode 100644 APPL/PRS/prs_edit_perslidwerkplek.asp create mode 100644 APPL/PRS/prs_edit_perslidwerkplek_save.asp create mode 100644 APPL/PRS/prs_perslidwerkplek_list.inc create mode 100644 APPL/PRS/prs_perslidwerkplek_search_list.asp diff --git a/APPL/ALG/alg.inc b/APPL/ALG/alg.inc new file mode 100644 index 0000000000..c2b98589f7 --- /dev/null +++ b/APPL/ALG/alg.inc @@ -0,0 +1,218 @@ +<% /* + + $Revision: 1 $ + $Modtime: 23-10-09 13:00 $ + + File: alg.inc + Status: + Description: defines usefull functions (both serverside and clientside) + Globals defined: + Context: + Note: + */ + +alg = { + checkAutorisation: function (isOptional) { + var edit_man = (1==0); + var edit_man_read = (1==1); + var edit_use = (1==0); + var edit_use_read = (1==1); + + var autfunction = "WEB_ALGMAN"; + var authparams = user.checkAutorisation(autfunction, true); + var mPRSreadlevel = authparams.PRSreadlevel; + var mPRSwritelevel = authparams.PRSwritelevel; + var mALGreadlevel = authparams.ALGreadlevel; + var mALGwritelevel = authparams.ALGwritelevel; + + if (mPRSreadlevel<9 || mPRSwritelevel<9) edit_man = (1==1); + if (mALGreadlevel>=9) var edit_man_read = (1==0); + + var autfunction = "WEB_ALGUSE"; + var authparams = user.checkAutorisation(autfunction, isOptional); + var uPRSreadlevel = authparams.PRSreadlevel; + var uPRSwritelevel = authparams.PRSwritelevel; + var uALGreadlevel = authparams.ALGreadlevel; + var uALGwritelevel = authparams.ALGwritelevel; + if (uPRSreadlevel<9 || uPRSwritelevel<9) edit_use = (1==1); + if (uALGreadlevel>=9) var edit_use_read = (1==0); + + // From now use the highest authorisations (lowest values) + + PRSreadlevel = mPRSreadlevel Waarschuwing: ALGMAN en ALGUSE levels verschillen."+ + " Maximum rechten worden genomen.") + // iom Jos: meer teruggeven? + return ({PRSreadlevel: PRSreadlevel, PRSwritelevel: PRSwritelevel, + ALGreadlevel: ALGreadlevel, ALGwritelevel: ALGwritelevel, + mPRSreadlevel: mPRSreadlevel, mPRSwritelevel: mPRSwritelevel, + mALGreadlevel: mALGreadlevel, mALGwritelevel: mALGwritelevel, + uPRSreadlevel: uPRSreadlevel, uPRSwritelevel: uPRSwritelevel, + uALGreadlevel: uALGreadlevel, uALGwritelevel: uALGwritelevel + }); + }, + + wpCheckAutorisation: function (isOptional) { + var edit_man = (1==0); + var edit_man_read = (1==1); + var edit_use = (1==0); + var edit_use_read = (1==1); + + var autfunction = "WEB_PRSBOF"; + var authparams = user.checkAutorisation(autfunction, true); + var mPRSreadlevel = authparams.PRSreadlevel; + var mPRSwritelevel = authparams.PRSwritelevel; + var mALGreadlevel = authparams.ALGreadlevel; + var mALGwritelevel = authparams.ALGwritelevel; + + if (mPRSreadlevel<9 || mPRSwritelevel<9) edit_man = (1==1); + if (mALGreadlevel>=9) var edit_man_read = (1==0); + + PRSreadlevel = mPRSreadlevel; + PRSwritelevel = mPRSwritelevel; + ALGreadlevel = mALGreadlevel; + ALGwritelevel = mALGwritelevel; + + autfunction_read = "WEB_PRSBOF" + autfunction_write = "WEB_PRSBOF"; + + // Warning in logfile + // PRS-warning is iets lastiger omdat ALGMAN helemaal niets met PRS heeft + return ({PRSreadlevel: PRSreadlevel, PRSwritelevel: PRSwritelevel, + ALGreadlevel: ALGreadlevel, ALGwritelevel: ALGwritelevel, + mPRSreadlevel: mPRSreadlevel, mPRSwritelevel: mPRSwritelevel, + mALGreadlevel: mALGreadlevel, mALGwritelevel: mALGwritelevel + }); + }, + + + canWriteRegio: function (pregio_key, pniveau) { + + if (pniveau <= -1) + { + return true; + } + else + { + var sql = "SELECT alg_regio_key FROM fac_v_my_regions " + + "WHERE prs_perslid_key="+user_key + + " AND alg_regio_key = " + pregio_key + + " AND niveau = " + pniveau; + + var oRs = Oracle.Execute(sql); + + return (!oRs.eof); + } + }, + + canWriteDistrict: function (pdistrict_key, pniveau) { + + if (pniveau <= -1) + { + return true; + } + else + { + var sql = "SELECT alg_district_key FROM fac_v_my_districts " + + "WHERE prs_perslid_key="+user_key + + " AND alg_district_key = " + pdistrict_key + + " AND niveau = " + pniveau; + + + var oRs = Oracle.Execute(sql); + + return (!oRs.eof); + } + }, + + canWriteLocatie: function (plocatie_key, pniveau) { + + if (pniveau <= -1) + { + return true; + } + else + { + var sql = "SELECT alg_locatie_key FROM fac_v_my_locations " + + "WHERE prs_perslid_key="+user_key + + " AND alg_locatiet_key = " + plocatie_key + + " AND niveau = " + pniveau; + + var oRs = Oracle.Execute(sql); + + return (!oRs.eof); + } + }, + + canWriteGebouw: function (pgebouw_key, pniveau) { + + if (pniveau <= -1) + { + return true; + } + + else + { + var sql = "SELECT alg_gebouw_key FROM fac_v_my_buildings " + + "WHERE prs_perslid_key="+user_key + + " AND alg_gebouw_key = " + pgebouw_key + + " AND niveau = " + pniveau; + + var oRs = Oracle.Execute(sql); + + return (!oRs.eof); + } + }, + + canWriteVerdieping: function (pverdieping_key, pniveau) { + + if (pniveau <= -1) + { + return true; + } + + else + { + var sql = "SELECT alg_verdieping_key FROM fac_v_my_floors " + + "WHERE prs_perslid_key="+user_key + + " AND alg_verdieping_key = " + pverdieping_key + + " AND niveau = " + pniveau; + + var oRs = Oracle.Execute(sql); + + return (!oRs.eof); + } + }, + + canWriteRuimte: function (pruimte_key, pniveau) { + + if (pniveau <= -1) + { + return true; + } + else + { + var sql = "SELECT alg_vruimte_key FROM fac_v_my_rooms " + + "WHERE prs_perslid_key="+user_key + + " AND alg_ruimte_key = " + pruimte_key; + + " AND niveau = " + pniveau + + var oRs = Oracle.Execute(sql); + + return (!oRs.eof); + } + } +} +%> \ No newline at end of file diff --git a/APPL/ALG/get_volgnr_ajax.asp b/APPL/ALG/get_volgnr_ajax.asp new file mode 100644 index 0000000000..efaeee788a --- /dev/null +++ b/APPL/ALG/get_volgnr_ajax.asp @@ -0,0 +1,30 @@ +<%@ language="javascript"%> +<% /* + $Revision: 1 $ + $Modtime: 23-10-09 13:02 $ + + File: get_volgnr_ajax.asp + Description: Bepaal het eerstvolgende vrije volgnr + Parameters: room_key van de gekozen alg_ruimte_key + Context: alg_edit_wp.asp + Note: + +*/ %> +<% + DOCTYPE_Disable = 1; +%> + + +<% + + var room_key = getQParamInt("room_key"); + + var sql = "SELECT COALESCE(MAX (prs_werkplek_volgnr),0) newvolg" + + " FROM prs_v_aanwezigwerkplek" + + " WHERE prs_alg_ruimte_key = " + room_key + var oRs = Oracle.Execute(sql); + var result = { volgnr: oRs("newvolg").Value+1 }; + oRs.Close() + + Response.Write(JSON.stringify(result)); +%> \ No newline at end of file diff --git a/APPL/FIN/fin_search_list.asp b/APPL/FIN/fin_search_list.asp index d780c3f6fd..074664432a 100644 --- a/APPL/FIN/fin_search_list.asp +++ b/APPL/FIN/fin_search_list.asp @@ -1,15 +1,15 @@ <%@language = "javascript" %> <% /* - $Revision: 1 $ - $Modtime: 3-09-09 15:38 $ + $Revision: 2 $ + $Modtime: 23-10-09 12:42 $ File: fin_search_list.asp Status: 80% Description: Vangt de parameters van fin_search op en verwerkt die in een aanroep van fin_list - Parameters: urole - Alle zoek-criteria van fin_search.asp + Parameters: Alle zoek-criteria van fin_search.asp Context: Vanuit fin_search.asp - Note: + Note: finnum is een factuurnummer (voor wildcard zoeken) + eerder werden finnum en fin_key door elkaar gegooid, wat natuurlijk fout is. */ %> @@ -31,7 +31,8 @@ var showall = getQParam("showall", "0") == "1"; var findate = getQParam("findate", null); findate = (findate? new Date(parseInt(findate, 10)) : null); // als findate == "" dan wordt findate ook null -var fin_key = getQParamInt("finnum", null); // Factuurnummer +var fin_key = getQParamInt("fin_key", -1); // Factuurkey +var finnum = getQParam("finnum", -1); // Factuurnummer var fin_type = getQParam("fintype", -1); // Factuurtype (mld_opdr_key, cnt_contract_key of bes_bestelopdr_key) var opdrnr = getQParam("opdrnr", ""); // Opdrachtnummer var finstatus = getQParamInt("finstatus", -1); // Factuurstatus @@ -42,7 +43,8 @@ var handler_key = getQParam("handler", -1); // Uitvoerende fin_list ( { outputmode: outputmode, showall: showall, findate: findate, - fin_key: fin_key, + fin_key: (fin_key != -1 ? fin_key : null), + finnum: (finnum != -1 ? finnum : null), fin_type: (fin_type != -1? fin_type : null), opdrnr: (opdrnr != ""? opdrnr : null), finstatus: (finstatus != -1? finstatus : null), diff --git a/APPL/PRS/.gitignore b/APPL/PRS/.gitignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/APPL/PRS/prs_edit_perslidwerkplek.asp b/APPL/PRS/prs_edit_perslidwerkplek.asp new file mode 100644 index 0000000000..ff657d9048 --- /dev/null +++ b/APPL/PRS/prs_edit_perslidwerkplek.asp @@ -0,0 +1,103 @@ +<%@language = "javascript" %> +<% +/* $Revision: 1 $ + $Modtime: 19-10-09 10:31 $ + + File: + Status: + Description: + Parameters: + + + Context: + Note: + +*/ %> + + + + + + + + +<% +FCLTHeader.Requires({plugins:["jQuery"], js: []}) + + var wps_key = getQParamInt("wps_key", -1); + var wp_key = getQParamInt("wp_key", -1); + + var authparams = alg.wpCheckAutorisation(); + var read = false; + +if (wps_key > 0) +{ + read = true; + lcl_prs_perslidwerkplek_frame = "Wijzigen bezetting"; + + sql = "SELECT prs_perslid_key, " + + " prs_perslidwerkplek_bezetting, " + + " prs_werkplek_key " + + " FROM prs_perslidwerkplek " + + " WHERE prs_perslidwerkplek_key = " + wps_key; + + oRsMes = Oracle.Execute(sql); + + var wp_key = oRsMes("prs_werkplek_key").value; + var wp_prs = oRsMes("prs_perslid_key").value; + var wp_bez = oRsMes("prs_perslidwerkplek_bezetting").value; + + oRsMes.Close(); +} +%> + + +<% + FCLTHeader.Generate(); +%> + + + + +
+
+<% + var buttons = [ {title: lcl_submit, action:"alg_submit()", icon: "opslaan.png"}, + {title: lcl_cancel, action:"alg_cancel()", icon: "undo.png" } ]; +IFRAMER_HEADER(lcl_prs_perslidwerkplek_frame, buttons); + +BLOCK_START("wpInfo", ""); + FCLTpersoonselector("wp_prs", // requestor + "wp_prs", + { label: lcl_person, + perslidKey: wp_prs, + filtercode: "", + whenEmpty: lcl_search_generic, // want filter + readonly: read + }); %> + + + + + +<% +BLOCK_END(); +%> +
+
+ + diff --git a/APPL/PRS/prs_edit_perslidwerkplek_save.asp b/APPL/PRS/prs_edit_perslidwerkplek_save.asp new file mode 100644 index 0000000000..c208aa4da7 --- /dev/null +++ b/APPL/PRS/prs_edit_perslidwerkplek_save.asp @@ -0,0 +1,53 @@ +<%@language = "javascript" %> +<% /* + $Revision: 1 $ + $Modtime: 14-10-09 16:36 $ + + SUBMIT-form +*/ %> + + + + + + +<% FCLTHeader.Requires({ plugins:["jQuery"], + js: [] + }) %> +<% + var wps_key = getQParamInt("wps_key"); + var wp_key = getQParamInt("wp_key"); + __Log(wp_key + " <--------------------------------- !!") + + var fields = [ { dbs: "prs_werkplek_key", typ: "key", val: wp_key }, + { dbs: "prs_perslid_key", typ: "key", frm: "wp_prs" }, + { dbs: "prs_perslidwerkplek_bezetting", typ: "number", frm: "wp_bez" }]; + +if (wps_key > 0) + { + sql = buildUpdate("prs_perslidwerkplek", fields) + + " prs_perslidwerkplek_key = " + wps_key; + + oRs = Oracle.Execute(sql); + } +else + { + fields.push({ dbs: "prs_perslidwerkplek_key", typ: "key", seq: "prs_s_prs_perslidwerkplek_key" }); + var regIns = buildInsert("prs_perslidwerkplek", fields); + var wps_key = regIns.sequences["prs_perslidwerkplek_key"]; + + sql = regIns.sql; + oRs = Oracle.Execute( sql ); + } + %> +// TODO: checkboxen ook saven? Jos? + + + <% FCLTHeader.Generate() %> + + + + + diff --git a/APPL/PRS/prs_perslidwerkplek_list.inc b/APPL/PRS/prs_perslidwerkplek_list.inc new file mode 100644 index 0000000000..b1436f28b0 --- /dev/null +++ b/APPL/PRS/prs_perslidwerkplek_list.inc @@ -0,0 +1,187 @@ +<% /* + $Revision: 1 $ + $Modtime: 23-10-09 13:03 $ + + File: alg_werkplek_list.inc + Description: Show an overview of werkplek items in list-form, + which meets with the given requirements + Parameters: + Context: Search action from alg_werkplek_search_list.asp form + Note: +*/ +%> + + + + + + + +<% +FCLTHeader.Requires({ plugins:["jQuery"], + js: ["jQuery-ui.js"] + }) + + function fnrowData(oRs) + { + var key = oRs("prs_perslidwerkplek_key").value; + + var data = {key:key}; + return JSON.stringify(data); + } +%> + +<% +function perslidwerkplek_list(pautfunction, params) +{ + // De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden + // var addButton = []; + var authparams = alg.wpCheckAutorisation(); + 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. + var showall = params.showall; + + var wp_key = params.wp_key; + + function fnrowActionEnabler(oRs) + { + eDelete = true; + return ({eDelete: eDelete}) + } + +%> + + + <% FCLTHeader.Generate({outputmode:outputmode}) %> + + +<% + var sqln = "SELECT pw.prs_perslidwerkplek_key, " + + " prs_werkplek_omschrijving, " + + " pw.prs_perslid_key, " + + " pw.prs_perslidwerkplek_bezetting, " + + " w.prs_werkplek_key, " + + " w.prs_alg_ruimte_key, " + + " p.prs_perslid_naam " + + " || DECODE (NVL (p.prs_perslid_voorletters, ''), " + + " '', '', " + + " ', ' || p.prs_perslid_voorletters " + + " ) " + + " || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''), " + + " '', '', " + + " ' ' || p.prs_perslid_tussenvoegsel " + + " ) " + + " || DECODE (NVL (p.prs_perslid_voornaam, ''), " + + " '', '', " + + " ' (' || p.prs_perslid_voornaam || ')' " + + " ) samengesteld, " + + " d.prs_afdeling_key, " + + " TO_NUMBER (NULL), " + + " d.prs_bedrijf_key, " + + " prs_perslid_dienstverband " + + " FROM prs_werkplek w, " + + " prs_perslidwerkplek pw, " + + " prs_v_aanwezigperslid p, " + + " prs_v_aanwezigafdeling d " + + " WHERE w.prs_werkplek_key = pw.prs_werkplek_key " + + " AND pw.prs_perslid_key = p.prs_perslid_key " + + " AND p.prs_afdeling_key = d.prs_afdeling_key " + + " AND prs_perslidwerkplek_verwijder IS NULL " + + " AND pw.prs_perslid_key IS NOT NULL " + + " AND prs_werkplek_verwijder IS NULL " + + " AND w.prs_werkplek_key = " + wp_key + + "ORDER BY samengesteld "; + +// TODO: Is dit correct, is onderstaand commentaar nog steeds van toepassing +// Determine if we can edit this workplace +// Even if this is true, there may still be existing occupations's (by persons of other departments) +// we are not allowed to edit. We leave this as a leak: +// When you can edit any existing WP for a room, you can edit them for all persons! + if ( authparams.ALGreadlevel > -1 ) + { // Er is een scope-beperking van kracht + sqln += " AND w.alg_ruimte_key IN " + + "(SELECT alg_ruimte_key FROM fac_v_my_rooms " + + "WHERE prs_perslid_key="+user_key + + " AND niveau=" + authparams.ALGreadlevel + ")"; + } + + var addurl = "prs_edit_perslidwerkplek.asp?wp_key=" + wp_key; + + if (canAdd) + { + } + + var rst = new ResultsetTable({sql:sqln, + keyColumn: "prs_perslidwerkplek_key", + ID: "algtable", + showAll: showall, + rowData: fnrowData, + // rowActionEnabler: fnrowActionEnabler, + outputmode: outputmode, + filterParams: params, + title: lcl_occupation, + buttons: [{ icon: "plus.png", title: lcl_add, action: "FcltMgr.openModalDetail('" + addurl + "', '" + lcl_add + "')" }] + }); + + rst.addColumn(new Column({caption: lcl_prs_name, content: "samengesteld", hasActions: true})); + rst.addColumn(new Column({caption: lcl_occupation_perc, content: "prs_perslidwerkplek_bezetting"})); + + rst.addAction({ action: "bezettingEdit", caption: lcl_edit, isDefault: true}); + rst.addAction({ action: "doDelete", caption: lcl_delete, multi: true}); + + var cnt = rst.processResultset(); +%> + + + +<%}%> + diff --git a/APPL/PRS/prs_perslidwerkplek_search_list.asp b/APPL/PRS/prs_perslidwerkplek_search_list.asp new file mode 100644 index 0000000000..4c2d704416 --- /dev/null +++ b/APPL/PRS/prs_perslidwerkplek_search_list.asp @@ -0,0 +1,38 @@ +<%@language = "javascript" %> +<% /* + $Revision: 1 $ + $Modtime: 14-10-09 12:44 $ + + File: + Description: + Parameters: + Context: + Note: +*/ %> + +<% Response.Expires = 0; %> + + + + + +<% +// FORM parameters: de waarde indien aanwezig, anders null +// Vaak is een lege selectie ook een -1, dus dan is-ie wel aanwezig, maar hoeft niet +// als filter te worden toegepast. Dan is null dus gelijk aan -1, qua betekenis, +// Vandaar dat een default van -1 ipv null ook mag +// In eerste instantie identificeren we elk veld gewoon 1-op-1. + +var outputmode = getQParamInt("outputmode", 0); // 0 = screen, 1 = print, 2 = excel etc +var showall = getQParam("showall", "0") == "1"; + +var wp_key = getQParamInt("wp_key", -1); // ruimte + + +perslidwerkplek_list ( "*", + { outputmode: outputmode, + showall: showall, + wp_key: (wp_key != -1? wp_key : null) + } + ); +%> \ No newline at end of file