SUTF#26060: Afdelings-catalogus-budget.

svn path=/Website/trunk/; revision=17565
This commit is contained in:
Maykel Geerdink
2013-04-11 08:46:49 +00:00
parent 4423481883
commit 9587b510ad
4 changed files with 59 additions and 28 deletions

View File

@@ -118,7 +118,7 @@ if (kpndisc_key > -1)
, "sgDisc"
, { label: L("lcl_bes_discipline")
, disc_key: kpn_disc
, module: "BES"
, module: "BES,MLD" // Alleen de disciplines van BES en MLD tonen
, perslidKey: user_key
, autfunctionKey: -1 // alles is toegestaan! authparams.autfunctionkey,
, srtdisc_key: null // alles mag

View File

@@ -81,11 +81,18 @@ var addurl = "appl/prs/kpn_edit_kpncat.asp?kpn_key=" + kpn_key;
}
var sql = "SELECT p.prs_kostenplaatsdisc_key"
+ ", p.ins_discipline_key"
+ ", (SELECT "+lcl.xsqla('md.ins_discipline_omschrijving','md.ins_discipline_key')
+ " FROM ins_tab_discipline md"
+ " WHERE md.ins_discipline_key = p.ins_discipline_key) categorie"
+ ", p.prs_kostenplaatsdisc_limiet"
+ " , p.ins_discipline_key"
+ " , (SELECT CASE"
+ " WHEN sd.ins_srtdiscipline_prefix IS NULL"
+ " THEN ''"
+ " ELSE sd.ins_srtdiscipline_prefix || '-'"
+ " END || "
+ lcl.xsqla('md.ins_discipline_omschrijving', 'md.ins_discipline_key')
+ " FROM ins_tab_discipline md"
+ " , ins_srtdiscipline sd"
+ " WHERE md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)"
+ " AND md.ins_discipline_key = p.ins_discipline_key) categorie"
+ " , p.prs_kostenplaatsdisc_limiet"
+ " FROM prs_kostenplaatsdisc p"
+ " WHERE p.prs_kostenplaats_key = " + kpn_key
+ " ORDER BY categorie";

View File

@@ -38,36 +38,51 @@ var extracode = getQParam("extracode", "");
var perslidKey = getQParamInt("perslidKey"); // Voor wie is de melding
var filtcode = getQParam("filtcode", "");
function getSql(chars, params, extracode)
{
var filtClause = getFiltClauseDiscipline(filtcode, params);
var extraInf = getExtraInfDiscipline(extracode);
return "SELECT DISTINCT td.ins_discipline_key"
+ ", CASE "
+ " WHEN sd.ins_srtdiscipline_prefix IS NULL"
+ " THEN ''"
+ " ELSE sd.ins_srtdiscipline_prefix || '-'"
+ " END || " + lcl.xsql('td.ins_discipline_omschrijving', 'td.ins_discipline_key') + " discipline"
+ ", " + lcl.xsqla('sd.ins_srtdiscipline_omschrijving', 'sd.ins_srtdiscipline_key')
+ extraInf
+ " FROM ins_tab_discipline td"
+ ", ins_srtdiscipline sd"
+ filtClause.from
+ " WHERE td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)" // Alleen bij MLD is de ins_srtdiscipline_key (altijd) ingevuld
+ " AND td.ins_discipline_verwijder IS NULL"
+ " AND (UPPER(sd.ins_srtdiscipline_prefix || '-' || " + lcl.xsql('td.ins_discipline_omschrijving', 'td.ins_discipline_key') +") LIKE " + safe.quoted_sql_wild("%" + chars + "%")
+ " OR UPPER(" + lcl.xsql('sd.ins_srtdiscipline_omschrijving', 'sd.ins_srtdiscipline_key') + ") LIKE " + safe.quoted_sql_wild("%" + chars + "%") +")"
+ filtClause.where;
}
var chars = chars.replace(/\*/g,"%");
var mod = module.split(",");
var params = { autfunctionKey: autfunctionKey,
autRW: autRW,
module: module,
srtdisc_key: srtdisc_key,
disc_key: disc_key,
ins_key: ins_key,
perslidKey: perslidKey };
var filtClause = getFiltClauseDiscipline(filtcode, params);
var extraInf = getExtraInfDiscipline(extracode);
sql = "SELECT DISTINCT td.ins_discipline_key"
+ ", CASE "
+ " WHEN sd.ins_srtdiscipline_prefix IS NULL"
+ " THEN ''"
+ " ELSE sd.ins_srtdiscipline_prefix || '-'"
+ " END || " + lcl.xsql('td.ins_discipline_omschrijving', 'td.ins_discipline_key') + " discipline"
+ ", " + lcl.xsqla('sd.ins_srtdiscipline_omschrijving', 'sd.ins_srtdiscipline_key')
+ extraInf
+ " FROM ins_tab_discipline td"
+ ", ins_srtdiscipline sd"
+ filtClause.from
+ " WHERE td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)" // Alleen bij MLD is de ins_srtdiscipline_key (altijd) ingevuld
+ " AND td.ins_discipline_verwijder IS NULL"
+ " AND (UPPER(sd.ins_srtdiscipline_prefix || '-' || " + lcl.xsql('td.ins_discipline_omschrijving', 'td.ins_discipline_key') +") LIKE " + safe.quoted_sql_wild("%" + chars + "%")
+ " OR UPPER(" + lcl.xsql('sd.ins_srtdiscipline_omschrijving', 'sd.ins_srtdiscipline_key') + ") LIKE " + safe.quoted_sql_wild("%" + chars + "%") +")"
+ filtClause.where
+ " ORDER BY discipline";
var sql = "";
if (mod.length == 0)
sql = getSql(chars, params, extracode);
else
{
for (var i = 0; i < mod.length; i++)
{
params.module = mod[i];
sql += (sql != ""? " UNION " : "") + getSql(chars, params, extracode);
}
}
sql += " ORDER BY discipline";
WriteResult(sql, bAll, "discipline", "ins_discipline_key", "ins_srtdiscipline_omschrijving", "extra");
%>

View File

@@ -15,7 +15,16 @@
function getFiltClauseDiscipline(pfiltcode, params)
{
var lfiltClause = {from: "", where: ""};
if (params.module == "INS")
if (params.module == "BES")
{
lfiltClause.from = ", bes_srtgroep sg"
+ ", bes_srtdeel bsd";
lfiltClause.where = " AND td.ins_discipline_key = sg.ins_discipline_key"
+ " AND sg.bes_srtgroep_key = bsd.bes_srtgroep_key"
+ " AND td.ins_discipline_module = 'BES'"
+ " AND bsd.bes_srtdeel_verwijder IS NULL";
}
else if (params.module == "INS")
{
lfiltClause.from = ", ins_srtgroep sg";
lfiltClause.where = " AND sg.ins_discipline_key = td.ins_discipline_key"