Files
Facilitor/APPL/FAC/job_list.inc
Jos Groot Lipman 630b7fb8ee FSN#22875 Settings naar de database 1e voorbereiding
svn path=/Website/trunk/; revision=6155
2012-04-16 15:36:41 +00:00

334 lines
16 KiB
HTML

<% /*
$Revision$
$Id$
File: job_list.inc
Description:
Parameters:
Context:
Note:
*/ %>
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<%
FCLTHeader.Requires({ plugins:["jQuery"],
js: ["./job_list.js"]
})
function fnrowData(oRs)
{
var job_key = oRs("fac_activiteit_key").value;
var data = {job_key: job_key};
return JSON.stringify(data);
}
%>
<script type="text/javascript">
var autosearch = 1; // automatisch laden van resultaat op search pagina
</script>
<%
function job_list(pautfunction, params)
{
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
var addButton = [];
authparams = user.checkAutorisation("WEB_MLDBOF", true);
var MLDBOF_read = authparams && (authparams.PRSreadlevel < 9 || authparams.ALGreadlevel < 9);
var MLDBOF_write = authparams && (authparams.PRSwritelevel < 9 || authparams.ALGwritelevel < 9);
authparams = user.checkAutorisation("WEB_MLDFOF", true);
var MLDFOF_read = authparams && (authparams.PRSreadlevel < 9 || authparams.ALGreadlevel < 9);
var MLDFOF_write = authparams && (authparams.PRSwritelevel < 9 || authparams.ALGwritelevel < 9);
authparams = user.checkAutorisation("WEB_BESFOF", true);
var BESFOF_read = authparams && (authparams.PRSreadlevel < 9 || authparams.ALGreadlevel < 9);
var BESFOF_write = authparams && (authparams.PRSwritelevel < 9 || authparams.ALGwritelevel < 9);
if (!(MLDFOF_read || MLDFOF_write || BESFOF_read || BESFOF_write || MLDBOF_read || MLDBOF_write))
{
shared.simpel_page(L("lcl_no_auth"));
}
// 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 act_key = params.act_key
var prs_prskey = params.prs_prskey
var rtype = params.rtype
var cat = params.cat
var prod = params.prod
var stat = params.stat
function fnrowActionEnabler(oRs)
{
/* var eDelete = false;
if (alg.canWriteRuimte(oRs("alg_ruimte_key").value, authparams.mALGwritelevel)) */
eDelete = true;
return ({eDelete: eDelete})
}
%>
<html>
<head>
<% FCLTHeader.Generate({outputmode:outputmode}) %>
</head>
<body id="listbody">
<% // is distinct echt vereist? dan zeggen waarom: ik denk omdat afdeling_boom ervoor zorgt dat een persoon
// meerdere keren in het resultaat komt, en de distinct dus nodig is.
var sqln = "SELECT fa.fac_activiteit_key, "
+ " TO_CHAR (fa.fac_activiteit_eerste, 'DD-MM-YYYY') "
+ " fac_activiteit_eerste, "
+ " TO_CHAR (fa.fac_activiteit_laatste, 'DD-MM-YYYY HH24:MI') "
+ " fac_activiteit_laatste, "
+ " fa.days, "
+ " TO_CHAR (fa.fac_activiteit_einde, 'DD-MM-YYYY') fac_activiteit_einde, "
+ " fa.aanvrager, "
+ " fa.fac_activiteit_xmlnode, "
+ " NVL ("+ lcl.xsql('vp.ins_discipline_omschrijving','vp.ins_discipline_key') +", '') ins_discipline_omschrijving, "
+ " fa.stat_omschrijving, "
+ " fa.fac_activiteit_aantal, "
+ " vp.rkey, "
+ " vp.rtable, "
+ " vp.read_write, "
+ " fac_activiteit_omschrijving "
var activiteit_sql = "(SELECT fac_activiteit_key" // 0 (id)
+ " ,fac_activiteit_eerste" // 1 (Eerste keer)
+ " ,fac_activiteit_laatste" // 2 (Laatste keer)
+ " ,TRUNC(fac_activiteit_interval/24,0) days" // 3 (Periode)
+ " ,fac_activiteit_einddatum fac_activiteit_einde" // 4 (Eind)
+ " ,"+S("prs_pers_string")+" aanvrager " // 5 (Aanvrager)
+ " ,fac_activiteit_xmlnode " // 6 (Type)
+ " ,'Product' type_omschrijving " // 7 (Product)
+ " ,stat.stat_omschrijving " // 8 (Status oms)
+ " ,stat.stat_key " // 9 (Status key)
+ " ,'' " // 10 (Free)
+ " ,'' " // 11 (Free)
+ " ,p.prs_afdeling_key " // 12 (Afdeling key)
+ " ,fac_activiteit_aantal" // 13 (Aantal keer)
+ " ,p.prs_perslid_key"
+ " ,fac_activiteit_omschrijving"
+ " FROM FAC_ACTIVITEIT act "
+ " ,(SELECT 1 stat_key, '"+L("lcl_job_stat_1_inactief")+"' stat_omschrijving "
+ " FROM dual "
+ " UNION ALL "
+ " SELECT 2, '"+L("lcl_job_stat_2_actief")+"' "
+ " FROM dual "
+ " UNION ALL "
+ " SELECT 3, '"+L("lcl_job_stat_3_1xoverslaan")+"' "
+ " FROM dual) stat "
+ " ,prs_perslid p "
+ " WHERE act.fac_activiteit_verwijder IS NULL "
+ " AND act.fac_activiteit_status_key = stat.stat_key(+) "
+ " AND act.prs_perslid_key = p.prs_perslid_key) ";
var no_vakgroep_product_sql = " SELECT fa.fac_activiteit_key "
+ " , -1 rkey "
+ " , -1 ins_discipline_key "
+ " , '' ins_discipline_omschrijving "
+ " , 0 rtable "
+ " , read_write "
+ "FROM FAC_ACTIVITEIT fa, "
+ "( SELECT fac_activiteit_key "
+ " , -1 rkey "
+ " , -1 "
+ " , '' "
+ " , 0 rtable "
+ " , 0 read_write "
+ " FROM BES_BESTELLING WHERE FAC_ACTIVITEIT_KEY IS NOT NULL "
+ " UNION ALL "
+ " SELECT fac_activiteit_key "
+ " , -1 rkey "
+ " , -1 "
+ " , '' "
+ " , 0 rtable "
+ " , 0 read_write "
+ " FROM MLD_MELDING WHERE FAC_ACTIVITEIT_KEY IS NOT NULL "
+ " UNION ALL "
+ " SELECT fac_activiteit_key "
+ " , -1 rkey "
+ " , -1 "
+ " , '' "
+ " , 0 rtable "
+ " , 0 read_write "
+ " FROM MLD_OPDR WHERE FAC_ACTIVITEIT_KEY IS NOT NULL "
+ " GROUP BY FAC_ACTIVITEIT_KEY) fa2 "
+ " WHERE fa.fac_activiteit_key = fa2.fac_activiteit_key(+) "
+ " AND fa2.fac_activiteit_key IS NULL ";
// rooster_table:
// 0 = nothing
// 1 = bes_bestelling
// 2 = mld_melding
// 3 = mld_opdr
var vakgroep_product_sql = "("+no_vakgroep_product_sql;
// Product
sql_prod_aut = "(SELECT m1.ins_discipline_key, "+ lcl.xsqla('m1.ins_discipline_omschrijving','m1.ins_discipline_key')
+ " FROM BES_v_aanwezigdiscipline m1 "
+ " WHERE m1.ins_discipline_key IN ( "
+ "SELECT ins_discipline_key FROM fac_v_my_disciplines "
+ "WHERE fac_functie_code ='"+"WEB_BESFOF"+"' "
+ "AND prs_perslid_key="+user_key+" "
+ ") "
+ " ORDER BY 2) ";
if (BESFOF_read && ((rtype == 1) || (rtype == -1)))
{
vakgroep_product_sql = vakgroep_product_sql
+ " UNION ALL "
+ " SELECT bes.fac_activiteit_key "
+ " , bes.bes_bestelling_key rkey "
+ " , dis.ins_discipline_key "
+ " , "+ lcl.xsqla('dis.ins_discipline_omschrijving','dis.ins_discipline_key')
+ " , 1 rtable "
+ " ,"+(BESFOF_write?"1":"0")+" read_write "
+ " FROM BES_BESTELLING_ITEM bi "
+ " , BES_BESTELLING bes "
+ " , bes_srtDEEL sd "
+ " , bes_srtGROEP sg "
+ " , INS_TAB_DISCIPLINE dis "
+ " ,"+sql_prod_aut+" dis_aut "
+ " WHERE bes.fac_activiteit_key IS NOT NULL "
+ " AND bes.bes_bestelling_key = bi.bes_bestelling_key "
+ " AND bi.bes_srtdeel_key = sd.bes_srtdeel_key "
+ " AND sd.bes_srtgroep_key = sg.bes_srtgroep_key "
+ " AND sg.ins_discipline_key = dis.ins_discipline_key "
+ " AND sg.ins_discipline_key = dis_aut.ins_discipline_key "
+ " GROUP BY bes.fac_activiteit_key, bes.bes_bestelling_key, dis.ins_discipline_key, "+ lcl.xsql('dis.ins_discipline_omschrijving','dis.ins_discipline_key');
}
// Categorie
var sql_dis_aut = ""
+ "(SELECT m1.ins_discipline_key, "+ lcl.xsqla('m1.ins_discipline_omschrijving','m1.ins_discipline_key')
+ " FROM mld_v_aanwezigdiscipline m1 "
+ " WHERE EXISTS (SELECT 'x' "
+ "FROM mld_stdmelding ms "
+ "WHERE M1.ins_discipline_key = ms.mld_ins_discipline_key) "
+ " AND m1.ins_discipline_key IN ( "
+ "SELECT ins_discipline_key FROM fac_v_my_disciplines "
+ "WHERE fac_functie_code in ('WEB_MLDFOF','WEB_OPDBOF') "
+ "AND prs_perslid_key="+user_key+" "
+ ") "
+ " ORDER BY 2) ";
if (MLDFOF_read && ((rtype == 2) || (rtype == -1)))
{
vakgroep_product_sql = vakgroep_product_sql
+ " UNION ALL "
+ " SELECT m.fac_activiteit_key "
+ " , m.mld_melding_key rkey "
+ " , dis.ins_discipline_key "
+ " , "+ lcl.xsqla('dis.ins_discipline_omschrijving','dis.ins_discipline_key')
+ " , 2 rtable "
+ " ,"+(MLDFOF_write?"1":"0")+" read_write "
+ " FROM mld_melding m "
+ " , mld_stdmelding sm"
+ " , ins_tab_discipline dis "
+ " ," + sql_dis_aut + " dis_aut "
+ " WHERE m.fac_activiteit_key IS NOT NULL "
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND sm.mld_ins_discipline_key = dis.ins_discipline_key "
+ " AND sm.mld_ins_discipline_key = dis_aut.ins_discipline_key "
+ " GROUP BY m.fac_activiteit_key, m.mld_melding_key, dis.ins_discipline_key, "+ lcl.xsql('dis.ins_discipline_omschrijving','dis.ins_discipline_key');
}
if (MLDBOF_read && ((rtype == 3) || (rtype == -1)))
{
vakgroep_product_sql = vakgroep_product_sql
+ " UNION ALL "
+ " SELECT o.fac_activiteit_key "
+ " , o.mld_opdr_key rkey "
+ " , dis.ins_discipline_key "
+ " , "+ lcl.xsqla('dis.ins_discipline_omschrijving','dis.ins_discipline_key')
+ " , 3 rtable "
+ " ,"+(MLDBOF_write?"1":"0")+" read_write "
+ " FROM mld_melding r "
+ " , mld_stdmelding sm"
+ " , ins_tab_discipline dis "
+ " , mld_opdr o "
+ " , "+sql_dis_aut+" dis_aut "
+ " WHERE o.fac_activiteit_key IS NOT NULL "
+ " AND r.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND r.mld_melding_key = o.mld_melding_key "
+ " AND sm.mld_ins_discipline_key = dis.ins_discipline_key "
+ " AND sm.mld_ins_discipline_key = dis_aut.ins_discipline_key "
+ " GROUP BY o.fac_activiteit_key, o.mld_opdr_key, dis.ins_discipline_key, "+ lcl.xsql('dis.ins_discipline_omschrijving','dis.ins_discipline_key');
}
sqln += " FROM " + activiteit_sql + " FA, "
+ " "+vakgroep_product_sql+ ") VP "
+ " WHERE fa.fac_activiteit_key = vp.fac_activiteit_key "
if (rtype > -1) {
sqln += " AND vp.rtable = " + rtype
}
if (prs_prskey > -1) {
sqln += " AND fa.prs_perslid_key = " + prs_prskey;
}
if (act_key > -1) {
sqln += " AND fa.fac_activiteit_key = " + act_key
}
if (cat > -1) {
sqln += " AND vp.ins_discipline_key = " + cat
}
if (prod > -1) {
sqln += " AND vp.ins_discipline_key = " + prod
}
if (stat > -1) {
sqln += " AND fa.stat_key = " + stat
}
sqln += " ORDER BY fa.fac_activiteit_key DESC ";
var addurl = "appl/fac/job.asp";
if (MLDFOF_write)
{
addButton = [{ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "')" }]
}
var rst = new ResultsetTable({ sql: sqln,
keyColumn: "fac_activiteit_key",
ID: "workTable",
outputmode: outputmode,
showAll: showall,
rowData: fnrowData,
rowActionEnabler: fnrowActionEnabler,
EmptySetString: "Geen berichten weer te geven",
buttons: addButton
});
rst.addColumn(new Column({caption: L("lcl_job_nr"), content: "fac_activiteit_key"}));
rst.addColumn(new Column({caption: L("lcl_descr"), content: "fac_activiteit_omschrijving", hasActions: true}));
rst.addColumn(new Column({caption: L("lcl_job_status"), content: "stat_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_job_firstdate"), content: "fac_activiteit_eerste"}));
rst.addColumn(new Column({caption: L("lcl_job_n_times"), content: "fac_activiteit_aantal", Align: "center"}));
rst.addColumn(new Column({caption: L("lcl_job_period"), content: "days", Align: "center"}));
rst.addColumn(new Column({caption: L("lcl_job_end"), content: "fac_activiteit_einde"}));
rst.addColumn(new Column({caption: L("lcl_job_requestor"), content: "aanvrager"}));
rst.addColumn(new Column({caption: L("lcl_job_category")+'/'+L("lcl_job_product"), content: "ins_discipline_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_job_lastdate"), content: "fac_activiteit_laatste"}));
rst.addAction({ action: "jobEdit", caption: L("lcl_details"), isDefault: true});
rst.addAction({ action: "jobDelete", caption: L("lcl_delete"), multi: true, single: false});
var cnt = rst.processResultset();
%>
</body>
</html>
<%}%>