FSN#35185: Mantelcontract verwijzing naar zichzelf is oneindige recursie.

svn path=/Website/trunk/; revision=28026
This commit is contained in:
Maykel Geerdink
2016-02-03 13:47:35 +00:00
parent ef13b5378a
commit 1cab334fc1

View File

@@ -183,32 +183,44 @@ else // nieuw contract
ROFIELDTR("fld", L("lcl_cnt_srttype"), cnt_info.discipline_omschrijving, {readonly: !this_cnt.canChangeAlg});
RWFIELDTR("cnt_cntomst", "fld", L("lcl_cnt_descr"), cnt_info.omschrijving, {required: true, maxlength: 30, readonly: cnt_info.isAbonnement || !this_cnt.canChangeAlg});
RWFIELDTR("cnt_cntnr", "fld", L("lcl_cnt_contractnr"), cnt_info.nummer, {maxlength: 30, readonly: cnt_info.isAbonnement || !this_cnt.canChangeAlg});
sql_mantels = "SELECT cnt_contract_key"
+ " , cnt_contract_nummer_intern || '-' || cnt_contract_omschrijving"
+ " FROM cnt_v_aanwezigcontract c"
+ " , cnt_disc_params dp"
+ " , cnt_discipline d"
+ " WHERE dp.cnt_srtcontract_type=6 " // mastercontracts
+ " AND c.ins_discipline_key = dp.cnt_ins_discipline_key"
+ " AND d.ins_discipline_key = dp.cnt_ins_discipline_key"
+ " AND d.ins_discipline_verwijder IS NULL"
+ " AND d.ins_discipline_key IN"
+ " (SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker g"
+ " , fac_functie f"
+ " WHERE g.fac_functie_key = f.fac_functie_key"
+ " AND f.fac_functie_code = 'WEB_CNTMAN'"
+ " AND (g.fac_gebruiker_alg_level_read < 9 AND g.fac_gebruiker_prs_level_read < 9)" // prs en alg read rechten
+ " AND g.prs_perslid_key = " + user_key + ")"
+ " ORDER BY 2";
// Mantel contracten mogen niet zelf onder een ander contract vallen.
// Bij mantel contracten selectbox met mantel contracten niet tonen.
var sql = "SELECT dp.cnt_srtcontract_type"
+ " FROM cnt_contract c"
+ " , cnt_disc_params dp"
+ " WHERE c.ins_discipline_key = dp.cnt_ins_discipline_key"
+ " AND cnt_contract_key = " + cnt_key;
var oRs = Oracle.Execute(sql);
if (oRs("cnt_srtcontract_type").Value != 6)
{ // Geen Mantel/Master contract. Dan kan selectbox getoond worden.
sql_mantels = "SELECT cnt_contract_key"
+ " , cnt_contract_nummer_intern || '-' || cnt_contract_omschrijving"
+ " FROM cnt_v_aanwezigcontract c"
+ " , cnt_disc_params dp"
+ " , cnt_discipline d"
+ " WHERE dp.cnt_srtcontract_type=6 " // mastercontracts
+ " AND c.ins_discipline_key = dp.cnt_ins_discipline_key"
+ " AND d.ins_discipline_key = dp.cnt_ins_discipline_key"
+ " AND d.ins_discipline_verwijder IS NULL"
+ " AND d.ins_discipline_key IN"
+ " (SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker g"
+ " , fac_functie f"
+ " WHERE g.fac_functie_key = f.fac_functie_key"
+ " AND f.fac_functie_code = 'WEB_CNTMAN'"
+ " AND (g.fac_gebruiker_alg_level_read < 9 AND g.fac_gebruiker_prs_level_read < 9)" // prs en alg read rechten
+ " AND g.prs_perslid_key = " + user_key + ")"
+ " ORDER BY 2";
FCLTselector("cnt_macntkey", sql_mantels,
{ label: L("lcl_cnt_mantel"),
initKey: cnt_info.mantel_key,
emptyOption: "",
readonly: cnt_info.isAbonnement || !this_cnt.canChangeAlg,
suppressEmpty: true
});
FCLTselector("cnt_macntkey", sql_mantels,
{ label: L("lcl_cnt_mantel"),
initKey: cnt_info.mantel_key,
emptyOption: "",
readonly: cnt_info.isAbonnement || !this_cnt.canChangeAlg,
suppressEmpty: true
});
}
oRs.close();
RWTEXTAREATR("cnt_cntdoc", "fldtxt", L("lcl_cnt_document"), cnt_info.document, {readonly: cnt_info.isAbonnement || !this_cnt.canChangeAlg});
FCLTafdelingselector("cnt_owner",
"cnt_owner",