FCLT#54582: Graag bij de taak en de taakafwijking aangeven welke leverancier de uitvoerder i.

svn path=/Website/branches/v2018.2/; revision=41074
This commit is contained in:
Maykel Geerdink
2019-02-20 14:00:10 +00:00
parent 4838b95eb9
commit 9e7c8269e0
7 changed files with 103 additions and 37 deletions

View File

@@ -2093,7 +2093,7 @@ ins = {checkAutLevel:
? " AND i.ins_alg_ruimte_key_org IS NULL"
: "");
if (loc_key|| bld_key)
if (loc_key || bld_key)
{
sqlOwner_from += ", (SELECT alg_ruimte_key"
+ " FROM alg_v_allonroerendgoed"
@@ -2347,6 +2347,34 @@ ins = {checkAutLevel:
sqlPosition += " AND i.ins_alg_ruimte_key = -1"; // geen terreinen bij fgraph => geen objecten om te laten zien
}
if (backo2 && !terr_key)
{
// Als backo2 dan wel de juiste plaatsen waar het bedrijf de scope op heeft.
// 1) Scope op gebouwen.
// 2) Scope op locaties.
// 3) Scope op alle gebouwen en locaties (als er geen enkel gebouw en locatie is geselecteerd bij de dienstlocatiegegevens).
sqlPosition += " AND (o.alg_gebouw_key IN (SELECT bdl.alg_gebouw_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_dienst_key = ispn.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + "))"
+ " OR i.ins_alg_locatie_key IN (SELECT bdl.alg_locatie_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_dienst_key = ispn.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + "))"
+ " OR (SELECT COUNT(bdl.prs_bedrijfdienstlocatie_key)"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_dienst_key = ispn.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " AND bdl.alg_locatie_key IS NULL"
+ " AND bdl.alg_gebouw_key IS NULL) = 1)"
}
if (ins_key_arr)
{
sqlPosition += " AND i.ins_deel_key IN (" + ins_key_arr.join(",") + ")";
@@ -2711,6 +2739,16 @@ ins = {checkAutLevel:
sql += " AND x.prs_dienst_key = " + dienst_key;
}
if (backo2)
{
sql += " AND x.prs_dienst_key IN (SELECT DISTINCT bdl.prs_dienst_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_dienst_key = x.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + "))";
}
if (cnt_bedrijf_key > 0)
{
if (backo2)

View File

@@ -369,9 +369,9 @@ var authparams = user.checkAutorisation(autfunction);
+ " , prs_dienst d"
+ " WHERE bdl.prs_dienst_key = d.prs_dienst_key"
+ " AND d.prs_dienst_key = isc.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")))"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")))"
: "")
+ " ORDER BY 2";
FCLTselector("ctr_discipline",
@@ -401,9 +401,9 @@ var authparams = user.checkAutorisation(autfunction);
+ " , prs_dienst d"
+ " WHERE bdl.prs_dienst_key = d.prs_dienst_key"
+ " AND d.prs_dienst_key = isc.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + "))"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + "))"
: "")
+ " ORDER BY UPPER("+lcl.xsql('ins_srtcontrole_omschrijving', 'ins_srtcontrole_key')+")";
FCLTselector("sel_srtcontrole",
@@ -425,9 +425,9 @@ var authparams = user.checkAutorisation(autfunction);
+ " , prs_dienst d"
+ " WHERE bdl.prs_dienst_key = d.prs_dienst_key"
+ " AND d.prs_dienst_key = isc.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + "))"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + "))"
: "")
+ " AND xcp.ins_scenario_key(+) = 1"
+ " AND COALESCE (xcp.ins_srtcontroledl_xcp_groep, isc.ins_srtcontrole_groep) IS NOT NULL"
@@ -449,9 +449,9 @@ var authparams = user.checkAutorisation(autfunction);
+ " , prs_dienst d"
+ " WHERE bdl.prs_dienst_key = d.prs_dienst_key"
+ " AND d.prs_dienst_key = pd.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + "))"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + "))"
: "")
+ " ORDER BY UPPER(" + lcl.xsql("pd.prs_dienst_omschrijving", "pd.prs_dienst_key") + ")";

View File

@@ -29,9 +29,9 @@ function getFiltClauseBedrijf(pfiltcode, params)
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " , prs_dienst d"
+ " WHERE bdl.prs_dienst_key = d.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ ")";
break;
case 'C': lfiltClause = " AND b.prs_bedrijf_key IN (SELECT cnt_prs_bedrijf_key FROM cnt_contract)";

View File

@@ -80,9 +80,9 @@ function getFiltClauseDiscipline(pfiltcode, params)
+ " , prs_dienst d"
+ " WHERE bdl.prs_dienst_key = d.prs_dienst_key"
+ " AND d.prs_dienst_key = isc.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")))"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")))"
: "");
break;
case "FE": lfiltClause.where += " AND sm.mld_stdmelding_notfrontend = 0"

View File

@@ -31,22 +31,36 @@ var not_reserveerbare_ruimte = " AND NOT EXISTS "
// Bedrijfdienstlocatie afhankelijkheid voor gebouw gedeelte.
function getBdlGebouwNiveau()
{
// Is er een dienst die de scope heeft voor alle gebouwen en locaties. Dit is het geval als er geen locaties of gebouwen zijn ingevuld.
// Dan geen bedrijfdienstlocatie scope beperking op gebouw niveau.
var sql = "SELECT bdl.prs_bedrijfdienstlocatie_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " AND bdl.alg_locatie_key IS NULL"
+ " AND bdl.alg_gebouw_key IS NULL"
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
return ""; // Geen bedrijfdienstlocatie scope beperking op gebouw en locatie.
oRs.Close();
var bdl_gebouw_niveau = " AND EXISTS (SELECT bdl.alg_locatie_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " , prs_dienst dd"
+ " WHERE bdl.prs_dienst_key = dd.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " AND bdl.alg_locatie_key = g.alg_locatie_key"
+ " UNION"
+ " SELECT bdl.alg_gebouw_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " , prs_dienst dd"
+ " WHERE bdl.prs_dienst_key = dd.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " AND bdl.alg_gebouw_key = g.alg_gebouw_key)";
return bdl_gebouw_niveau
}
@@ -83,14 +97,28 @@ function getBdlLocatieNiveau(tableref)
break;
}
// Is er een dienst die de scope heeft voor alle gebouwen en locaties. Dit is het geval als er geen locaties of gebouwen zijn ingevuld.
// Dan geen bedrijfdienstlocatie scope beperking op locatie niveau.
var sql = "SELECT bdl.prs_bedrijfdienstlocatie_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " AND bdl.alg_locatie_key IS NULL"
+ " AND bdl.alg_gebouw_key IS NULL"
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
return ""; // Geen bedrijfdienstlocatie scope beperking op gebouw en locatie.
oRs.Close();
var bdl_locatie_niveau = " AND EXISTS (SELECT bdl.alg_locatie_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " , prs_dienst dd"
+ extra_from
+ " WHERE bdl.prs_dienst_key = dd.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ extra_where1
+ " UNION"
+ " SELECT ag.alg_locatie_key"
@@ -100,9 +128,9 @@ function getBdlLocatieNiveau(tableref)
+ extra_from
+ " WHERE bdl.prs_dienst_key = dd.prs_dienst_key"
+ " AND bdl.alg_gebouw_key = ag.alg_gebouw_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")"
+ extra_where2
+ ")";
return bdl_locatie_niveau

View File

@@ -60,9 +60,9 @@ function getFiltClauseSrtdeel(pfiltcode, params)
+ " , prs_dienst d"
+ " WHERE bdl.prs_dienst_key = d.prs_dienst_key"
+ " AND d.prs_dienst_key = isc.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")))";
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")))";
break;
}
}

View File

@@ -66,9 +66,9 @@ function getFiltClauseSrtgroep(pfiltcode, params) // pfiltcode not used yet
+ " , prs_dienst d"
+ " WHERE bdl.prs_dienst_key = d.prs_dienst_key"
+ " AND d.prs_dienst_key = isc.prs_dienst_key"
+ " AND bdl.prs_bedrijf_key = (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")))";
+ " AND bdl.prs_bedrijf_key IN (SELECT cp.prs_bedrijf_key"
+ " FROM prs_contactpersoon cp"
+ " WHERE cp.prs_perslid_key = " + user_key + ")))";
break;
}
}