FCLT#57370 disciplineselector houdt nu ook rekening met een meegegeven disc_key die voorkomt als addfixedoption

svn path=/Website/branches/v2019.1/; revision=42043
This commit is contained in:
2019-04-09 18:14:21 +00:00
parent 79cb5c7e5b
commit 34fcbfdb3c

View File

@@ -72,46 +72,51 @@ function FCLTdisciplineselector(fieldName, objectName, params)
var ldiscName = (device.test(device.supportsPlaceholder) ? "" : lwhenEmpty);
var lextraInit = "";
if (!params.noJustOne || params.required || params.disc_key > 0)
if ("addfixedoption" in params && "key" in params.addfixedoption && params.disc_key == params.addfixedoption.key)
{
var filtClause = getFiltClauseDiscipline(params.filtercode, params);
var extraInf = getExtraInfDiscipline(params.extracode);
ldiscName = params.addfixedoption.txt;
lextraInit = params.addfixedoption.desc;
}
else if (!params.noJustOne || params.required || params.disc_key > 0)
{
var filtClause = getFiltClauseDiscipline(params.filtercode, params);
var extraInf = getExtraInfDiscipline(params.extracode);
sql = "SELECT COUNT(distinct td.ins_discipline_key) aantal"
+ " FROM ins_tab_discipline td"
+ " , ins_srtdiscipline sd"
+ filtClause.from
+ " WHERE ins_discipline_verwijder IS NULL"
+ " AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)" // Alleen bij MLD is de ins_srtdiscipline_key (altijd) ingevuld
+ filtClause.where;
var oRs = Oracle.Execute(sql);
var disc_count = oRs("aantal").value;
oRs.Close();
if (params.disc_key > 0 && disc_count == 0) // Invalid initKey
params.disc_key = -1;
else if (disc_count == 1) // Als er maar één discipline is, dan deze selecteren.
{
sql = "SELECT td.ins_discipline_key, "
+ (params.srtdisc_key > 0
? ""
: "NVL2(sd.ins_srtdiscipline_prefix, sd.ins_srtdiscipline_prefix || '-', '') || ")
+ lcl.xsql('td.ins_discipline_omschrijving', 'td.ins_discipline_key') + " disciplineomschr"
+ extraInf.selectstr
+ " FROM ins_tab_discipline td"
+ ", ins_srtdiscipline sd"
sql = "SELECT COUNT(distinct td.ins_discipline_key) aantal"
+ " FROM ins_tab_discipline td"
+ " , ins_srtdiscipline sd"
+ filtClause.from
+ extraInf.fromstr
+ " WHERE td.ins_discipline_verwijder IS NULL"
+ " WHERE ins_discipline_verwijder IS NULL"
+ " AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)" // Alleen bij MLD is de ins_srtdiscipline_key (altijd) ingevuld
+ filtClause.where
+ extraInf.wherestr;
+ filtClause.where;
var oRs = Oracle.Execute(sql);
ldiscName = oRs("disciplineomschr").value;
lextraInit = oRs("extra").value;
params.disc_key = oRs("ins_discipline_key").value;
if (params.ins_key > 0) // dan ben ik zeker nieuw
params.readonly = true;
}
var disc_count = oRs("aantal").value;
oRs.Close();
if (params.disc_key > 0 && disc_count == 0) // Invalid initKey
params.disc_key = -1;
else if (disc_count == 1) // Als er maar één discipline is, dan deze selecteren.
{
sql = "SELECT td.ins_discipline_key, "
+ (params.srtdisc_key > 0
? ""
: "NVL2(sd.ins_srtdiscipline_prefix, sd.ins_srtdiscipline_prefix || '-', '') || ")
+ lcl.xsql('td.ins_discipline_omschrijving', 'td.ins_discipline_key') + " disciplineomschr"
+ extraInf.selectstr
+ " FROM ins_tab_discipline td"
+ ", ins_srtdiscipline sd"
+ filtClause.from
+ extraInf.fromstr
+ " WHERE td.ins_discipline_verwijder IS NULL"
+ " AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)" // Alleen bij MLD is de ins_srtdiscipline_key (altijd) ingevuld
+ filtClause.where
+ extraInf.wherestr;
var oRs = Oracle.Execute(sql);
ldiscName = oRs("disciplineomschr").value;
lextraInit = oRs("extra").value;
params.disc_key = oRs("ins_discipline_key").value;
if (params.ins_key > 0) // dan ben ik zeker nieuw
params.readonly = true;
}
}
// Bouw de url voor de vakgroep query op