svn path=/Website/trunk/; revision=22

This commit is contained in:
Peter Feij
2009-10-23 10:53:08 +00:00
parent ca9f2e9b81
commit ec230b73b1
8 changed files with 638 additions and 7 deletions

218
APPL/ALG/alg.inc Normal file
View File

@@ -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 <uPRSreadlevel ?mPRSreadlevel :uPRSreadlevel ;
PRSwritelevel = mPRSwritelevel<uPRSwritelevel?mPRSwritelevel:uPRSwritelevel;
ALGreadlevel = mALGreadlevel <uALGreadlevel ?mALGreadlevel :uALGreadlevel ;
ALGwritelevel = mALGwritelevel<uALGwritelevel?mALGwritelevel:uALGwritelevel;
if (mPRSreadlevel <uPRSreadlevel ) autfunction_read = "WEB_ALGMAN"
else autfunction_read = "WEB_ALGUSE";
if (mPRSwritelevel<uPRSwritelevel) autfunction_write = "WEB_ALGMAN"
else autfunction_write = "WEB_ALGUSE";
// Warning in logfile
// PRS-warning is iets lastiger omdat ALGMAN helemaal niets met PRS heeft
if ((mALGreadlevel != uALGreadlevel) || (mALGwritelevel != uALGwritelevel))
__Log("<font color=red>Waarschuwing: ALGMAN en ALGUSE levels verschillen."+
" Maximum rechten worden genomen.</font>")
// 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);
}
}
}
%>

View File

@@ -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;
%>
<!--#include file="../../cust/install.inc"-->
<!--#include file="../Shared/json2.js" -->
<%
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));
%>

View File

@@ -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.
*/ %>
<!-- #include file="../../cust/install.inc" -->
@@ -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),

0
APPL/PRS/.gitignore vendored
View File

View File

@@ -0,0 +1,103 @@
<%@language = "javascript" %>
<%
/* $Revision: 1 $
$Modtime: 19-10-09 10:31 $
File:
Status:
Description:
Parameters:
Context:
Note:
*/ %>
<!--#include file="../../cust/install.inc" -->
<!--#include file="../Shared/iface.inc" -->
<!--#include file="../Shared/persoonselector.inc" -->
<!-- #include file="alg_flexkenmerk.inc" -->
<!--#include file="../Shared/json2.js" -->
<!-- #include file="alg.inc" -->
<%
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();
}
%>
<html>
<head>
<%
FCLTHeader.Generate();
%>
<script>
function alg_submit()
{
document.activeElement.blur(); // trigger laatste onChanges
document.forms.u2.submit();
}
function alg_cancel()
{
FcltMgr.closeDetail(window);
}
</script>
</head>
<body id="editbody">
<div id="edit">
<form name="u2"
action="prs_edit_perslidwerkplek_save.asp?wps_key=<%=wps_key%>&wp_key=<%=wp_key%>"
method="post"
onSubmit="alg_submit();">
<%
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
}); %>
<tr>
<td class="label"><label><%=lcl_occupation%>:</label></td>
<td><input class="fldbld" type="text" id="wp_bez" name="wp_bez" value="<%=wp_bez%>"></td>
</tr>
</table>
<%
BLOCK_END();
%>
</form>
</div>
</body>
</html>

View File

@@ -0,0 +1,53 @@
<%@language = "javascript" %>
<% /*
$Revision: 1 $
$Modtime: 14-10-09 16:36 $
SUBMIT-form
*/ %>
<!-- #include file="../../cust/install.inc" -->
<!-- #include file="../Shared/escape.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<% 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?
<html>
<head>
<% FCLTHeader.Generate() %>
<script>
$(document).ready(function () { FcltMgr.closeDetail(window, { refresh: true }); } );
</script>
</head>
<body>
</body>
</html>

View File

@@ -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:
*/
%>
<!-- #include file="../Shared/escape.inc" -->
<!-- #include file="../Shared/disCxprs3d.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/getvalues.inc" -->
<!-- #include file="alg.inc" -->
<%
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);
}
%>
<script type="text/javascript">
function refreshall(data)
{
if (data.refresh)
//window.location.href = "prs_perslidwerkplek_search_list.asp?wp_key="<%=wp_key%>;
window.location.reload();
}
var lcl_row_delete_failed1 = "<%=lcl_row_delete_failed1%>";
var lcl_row_delete_failed2 = "<%=lcl_row_delete_failed2%>";
var autosearch = 1;
function bezettingEdit(row)
{
var algData = eval('(' + row.ROWDATA + ')');
//var url = "prs_edit_perslidwerkplek.asp?wps_key="+algData.key;
FcltMgr.openModalDetail("prs_edit_perslidwerkplek.asp?wps_key="+algData.key, "test", {callback: refreshall});
}
function doDelete(row, isMulti)
{
$(row).addClass('dirty');
var wps_key = row.ROWKEY;
if (isMulti || confirm("TODO: Werkplekbezetting vrijgeven?"))
$.post("alg_delete.asp",
{ key: wps_key,
table: dtable,
multi: (isMulti? 1 : 0) },
FcltCallback);
}
function DeleteFailed(result)
{
if (result == 1 ) {
alert(lcl_row_delete_failed1);
} else if ( result == 2 ) {
alert(lcl_row_delete_failed2);
}
}
function Deleted()
{
algtable.deleteSelectedRows();
}
</script>
<%
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})
}
%>
<html>
<head>
<% FCLTHeader.Generate({outputmode:outputmode}) %>
</head>
<body id="listbody">
<%
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();
%>
<iframe src="../Shared/empty.asp" id=hiddenFrame name=hiddenFrame style="display:none"></iframe>
</body>
</html>
<%}%>

View File

@@ -0,0 +1,38 @@
<%@language = "javascript" %>
<% /*
$Revision: 1 $
$Modtime: 14-10-09 12:44 $
File:
Description:
Parameters:
Context:
Note:
*/ %>
<% Response.Expires = 0; %>
<!-- #include file="../../cust/install.inc" -->
<!-- #include file="../Shared/date_sql.inc" -->
<!-- #include file="prs_perslidwerkplek_list.inc" -->
<%
// 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)
}
);
%>