ARAI#38181: Opdracht-uitvoeringsconsole.
svn path=/Website/trunk/; revision=32870
This commit is contained in:
612
APPL/MLD/mld.inc
612
APPL/MLD/mld.inc
@@ -3058,7 +3058,7 @@ mld = {setmeldingstatus:
|
||||
+ " , prs_kostenplaats k"
|
||||
+ " , prs_kostenplaatsgrp kg"
|
||||
+ " , mld_v_uitvoerende mu"
|
||||
+ " WHERE o.mld_melding_key = m.mld_melding_key"
|
||||
+ " WHERE o.mld_melding_key = m.mld_melding_key" // bij bgt-mode: opdracht zonder melding TODO: zo geen errors maar hoe goed zijn de waarden?
|
||||
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key"
|
||||
+ " AND sm.mld_ins_discipline_key = d.ins_discipline_key"
|
||||
+ " AND d.ins_discipline_key = mdp.mld_ins_discipline_key"
|
||||
@@ -4376,6 +4376,616 @@ mld = {setmeldingstatus:
|
||||
+ where
|
||||
+ " ORDER BY mkm.mld_kenmerk_volgnummer DESC";
|
||||
|
||||
return sql;
|
||||
},
|
||||
|
||||
getopdroverzicht_sql:
|
||||
function (pautfunction, params)
|
||||
{ // Lever opdrachten overzicht sql op.
|
||||
var urole = params.urole;
|
||||
var fronto = (urole == "fo");
|
||||
var backo = (urole == "bo");
|
||||
var frontend = (urole == "fe");
|
||||
var bgtmode = (urole == "bgt");
|
||||
|
||||
// Voor resulttable de globalen zetten; zou ng anders moeten.
|
||||
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
|
||||
var print = (outputmode == 1 || outputmode == 5);
|
||||
var excel = (outputmode == 2 || outputmode == 6);
|
||||
var showall = params.showall;
|
||||
|
||||
var mld_key = params.mld_key;
|
||||
var opdr_key = params.opdr_key; // opdracht nummer is voor de gebruiker hetzelfde als mld_key
|
||||
var behandel_key = params.behandel_key;
|
||||
var srtdisc_key = params.srtdisc_key;
|
||||
var searchtekst = params.searchtekst;
|
||||
var reg_key = params.reg_key;
|
||||
var dist_key = params.dist_key;
|
||||
var adr_key = params.adr_key;
|
||||
var loc_key = params.loc_key;
|
||||
var bld_key = params.bld_key;
|
||||
var verantw_key = params.verantw_key;
|
||||
var caller_key = params.caller_key;
|
||||
var org_key = params.org_key;
|
||||
var srtdisc_key = params.srtdisc_key;
|
||||
var disc_key_arr = params.disc_key_arr; // Array met keys (e.g. [3, 4, 5])
|
||||
var meldinggrp_key = params.meldinggrp_key;
|
||||
var behandelgrp_key = params.behandelgrp_key;
|
||||
var stdm_key_arr = params.stdm_key_arr;
|
||||
var kp = params.kp;
|
||||
var handler_key = params.handler_key;
|
||||
var mldstatus_arr = params.mldstatus_arr;
|
||||
var opdrstatus_arr = params.opdrstatus_arr;
|
||||
var chkAcceptEx = params.chkAcceptEx;
|
||||
var chkRunEx = params.chkRunEx;
|
||||
var chkSpoed = params.chkSpoed;
|
||||
var chkAfgerond = params.chkAfgerond;
|
||||
var datefrom = params.datefrom;
|
||||
var dateto = params.dateto;
|
||||
var opdrtype_key = params.opdrtype_key
|
||||
var contract = params.contract
|
||||
var cnt_key = params.cnt_key;
|
||||
var offerte = params.offerte; // Opdrachttype is een offerteaanvraag. Kan -1:don't care, 0:niet, 1:wel zijn.
|
||||
if (params.offertes) // Helaas geeft mld_search_list.asp het meervoud door
|
||||
offerte = 1;
|
||||
// Er kunen twee contract keys meegegeven worden. Een extra contract key die bij contract hoort.
|
||||
// Als cnt_key en contract_key verschillen kun het nooit een resultaat opleveren
|
||||
if (contract > 0)
|
||||
cnt_key = cnt_key + (cnt_key != ""? ", " : "") + contract;
|
||||
var uitvoerder = params.uitvoerder;
|
||||
var planb = params.planb;
|
||||
|
||||
var bes = params.bes;
|
||||
var tiny = params.tiny;
|
||||
var inline = params.inline;
|
||||
var from_mld = params.from_mld;
|
||||
var showstatus = params.showstatus;
|
||||
var showopdrstatus = params.showopdrstatus;
|
||||
var mldopdrstrej = params.mldopdrstrej;
|
||||
var mldopdrstafm = params.mldopdrstafm;
|
||||
var mldopdrstver = params.mldopdrstver;
|
||||
//var justClose = params.justClose;
|
||||
// close_only is vervangen door (pautfunction == "WEB_ORDBO2"): Als je die rechten hebt mag je ook afmelden
|
||||
//var mldstpen = params.mldstpen;
|
||||
//var mldstnew = params.mldstnew;
|
||||
//var mldsting = params.mldsting;
|
||||
//var mldstacc = params.mldstacc;
|
||||
//var mldstuit = params.mldstuit;
|
||||
//var mldstrej = params.mldstrej;
|
||||
//var mldstafm = params.mldstafm;
|
||||
//var mldstver = params.mldstver;
|
||||
//var mldnieto = params.mldnieto;
|
||||
//var mldopdrstrej = params.mldopdrstrej;
|
||||
//var mldopdrstnak = params.mldopdrstnak;
|
||||
//var mldopdrsttfi = params.mldopdrsttfi;
|
||||
//var mldopdrstfia = params.mldopdrstfia;
|
||||
//var mldopdrstuit = params.mldopdrstuit;
|
||||
//var mldopdrstafm = params.mldopdrstafm;
|
||||
//var mldopdrstver = params.mldopdrstver;
|
||||
//var mldopdrstacp = params.mldopdrstacp;
|
||||
//var mldopdrstafr = params.mldopdrstafr;
|
||||
//var mldopdrstgoe = params.mldopdrstgoe;
|
||||
|
||||
//var showstatus = "";
|
||||
//if (mldstpen) showstatus = (showstatus == ""? "" : showstatus + ",") + "0";
|
||||
//if (mldstrej) showstatus = (showstatus == ""? "" : showstatus + ",") + "1";
|
||||
//if (mldstnew) showstatus = (showstatus == ""? "" : showstatus + ",") + "2";
|
||||
//if (mldsting) showstatus = (showstatus == ""? "" : showstatus + ",") + "3";
|
||||
//if (mldstacc) showstatus = (showstatus == ""? "" : showstatus + ",") + "4";
|
||||
//if (mldstafm) showstatus = (showstatus == ""? "" : showstatus + ",") + "5";
|
||||
//if (mldstver) showstatus = (showstatus == ""? "" : showstatus + ",") + "6";
|
||||
//if (mldstuit) showstatus = (showstatus == ""? "" : showstatus + ",") + "7";
|
||||
//if (mldnieto) showstatus = (showstatus == ""? "" : showstatus + ",") + "99";
|
||||
//var from_mld = (showstatus != "");
|
||||
|
||||
//var showopdrstatus = "";
|
||||
//if (mldopdrstrej) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "1";
|
||||
//if (mldopdrstnak) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "2";
|
||||
//if (mldopdrsttfi) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "3"; // Verderop wordt wel bepaald of 'b2' status 3 mag zien
|
||||
//if (mldopdrstfia) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "4";
|
||||
//if (mldopdrstuit) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "5";
|
||||
//if (mldopdrstafm) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "6";
|
||||
//if (mldopdrstver) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "7";
|
||||
//if (mldopdrstacp) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "8";
|
||||
//if (mldopdrstafr) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "9";
|
||||
//if (mldopdrstgoe) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "10"; // Verderop wordt wel bepaald of 'b2' status 10 mag zien
|
||||
|
||||
var groepering_key = params.groepering_key; // Voor maninfo. 2 en 16 ondersteund
|
||||
|
||||
// AUTORISATIES
|
||||
// Autorisatie check is al gedaan in mld_search_list.asp
|
||||
// Dit lijkt me om te kunnen bepalen of ik uberhaupt naar de PRS-autorisatie hoef te kijken
|
||||
var add_prs_restrict = prshasrestrict(pautfunction);
|
||||
|
||||
if (from_mld)
|
||||
{
|
||||
var functiecode = "'WEB_MLDBOF'";
|
||||
for (var i = 0; i < pautfunction.length; i++)
|
||||
{
|
||||
functiecode += "," + safe.quoted_sql(pautfunction[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
var functiecode = safe.quoted_sql(pautfunction);
|
||||
// check if user has a building or lower scope. If so we have to include onroerendgoed view.
|
||||
sql2 = "SELECT fac_groeprechten_key "
|
||||
+ " FROM fac_functie f"
|
||||
+ " , fac_groeprechten gr"
|
||||
+ " , fac_gebruikersgroep gg"
|
||||
+ " WHERE gg.prs_perslid_key = " + user_key
|
||||
+ " AND gr.fac_groep_key = gg.fac_groep_key"
|
||||
+ " AND gr.fac_functie_key = f.fac_functie_key"
|
||||
+ " AND (f.fac_functie_code IN (" + functiecode + "))"
|
||||
+ " AND ( ( gr.fac_gebruiker_alg_level_read < 9 "
|
||||
+ " AND gr.fac_gebruiker_alg_level_read > 2 "
|
||||
+ " ) "
|
||||
+ " OR ( gr.fac_gebruiker_alg_level_write < 9 "
|
||||
+ " AND gr.fac_gebruiker_alg_level_write > 2 "
|
||||
+ " ) "
|
||||
+ " ) ";
|
||||
|
||||
bld_scope = false;
|
||||
oRs2 = Oracle.Execute(sql2);
|
||||
if (!oRs2.eof)
|
||||
{
|
||||
bld_scope = true;
|
||||
}
|
||||
|
||||
sqltrack = (groepering_key == 2 || groepering_key == 16 // Minfo groepering Opdracht(2) en Opdracht + Kosten(16).
|
||||
? ", TO_DATE('01-01-1970', 'DD-MM-YYYY')"
|
||||
: ", (SELECT MAX(t.fac_tracking_datum)"
|
||||
+ " FROM fac_tracking t"
|
||||
+ " , fac_srtnotificatie sn"
|
||||
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
|
||||
+ " AND t.fac_tracking_refkey = o.mld_opdr_key" // opdracht key uit "sql"
|
||||
+ " AND sn.fac_srtnotificatie_xmlnode = 'opdracht')")
|
||||
+ " recentdatum";
|
||||
|
||||
var whereUs = ""; // straks voor de statussen
|
||||
sql = "SELECT o.mld_melding_key"
|
||||
+ " , o.mld_opdr_bedrijfopdr_volgnr"
|
||||
+ " , o.mld_opdr_id"
|
||||
+ " , o.mld_opdr_einddatum"
|
||||
+ " , l.alg_locatie_code "
|
||||
+ " ||(SELECT DECODE(v.alg_plaatsaanduiding, '', ' ('||l.alg_locatie_omschrijving||')',"
|
||||
+ " '-'||v.alg_plaatsaanduiding || DECODE(v.alg_plaatsomschrijving, '','' ,"
|
||||
+ "' (' || v.alg_plaatsomschrijving || ')'))"
|
||||
+ " FROM alg_v_allonrgoed_gegevens v"
|
||||
+ " WHERE m.mld_alg_onroerendgoed_keys = v.alg_onroerendgoed_keys"
|
||||
+ " AND rownum = 1"
|
||||
+ " ) plaatsmelding"
|
||||
+ " , l.alg_locatie_adres"
|
||||
+ (S("mld_print_loc_address") == 2
|
||||
? " , (SELECT geg.alg_gebouw_naam"
|
||||
+ " FROM alg_v_allonrgoed_gegevens geg"
|
||||
+ " WHERE geg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys) alg_gebouw_naam"
|
||||
: "")
|
||||
+ " , di.alg_district_omschrijving"
|
||||
+ " , (SELECT u.naam FROM mld_v_uitvoerende u WHERE U.mld_uitvoerende_key = O.mld_uitvoerende_keys) naam"
|
||||
+ " , o.prs_perslid_key"
|
||||
+ " , (SELECT " + S("prs_pers_string")
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE p.prs_perslid_key = o.prs_perslid_key) behandelaar"
|
||||
+ " , (SELECT " + S("prs_kpn_string")
|
||||
+ " FROM prs_kostenplaats k"
|
||||
+ " WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key) kpstring"
|
||||
+ " , o.mld_opdr_key"
|
||||
+ " , c.cnt_contract_key"
|
||||
+ " , c.cnt_contract_nummer"
|
||||
+ " , c.cnt_contract_nummer_intern"
|
||||
+ " , c.cnt_contract_versie"
|
||||
+ " , o.mld_opdr_datumbegin"
|
||||
+ " , o.mld_opdr_plandatum"
|
||||
+ " , " + lcl.xsqla('t.mld_typeopdr_omschrijving', 't.mld_typeopdr_key')
|
||||
+ " , t.mld_typeopdr_decentraal"
|
||||
+ " , t.mld_typeopdr_afmelden_extern"
|
||||
+ " , sd.ins_srtdiscipline_prefix"
|
||||
+ " , sd.ins_srtdiscipline_omschrijving"
|
||||
+ " , " + lcl.xsqla('std.mld_stdmelding_omschrijving','std.mld_stdmelding_key')
|
||||
+ " , " + S("prs_pers_string")+ " melder"
|
||||
+ " , SYSDATE nu"
|
||||
+ " , o.mld_opdr_kosten"
|
||||
+ (urole == 'mi'
|
||||
? " , COALESCE((SELECT SUM(f.fin_factuur_totaal)"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE f.mld_opdr_key = o.mld_opdr_key "
|
||||
+ " AND f.fin_factuur_statuses_key <> 1"
|
||||
+ " AND f.fin_factuur_verwijder IS NULL), 0) gefactureerd"
|
||||
: "")
|
||||
+ " , o.mld_opdr_uren"
|
||||
+ " , o.mld_opdr_materiaal"
|
||||
+ " , o.mld_opdr_uurloon"
|
||||
+ " , o.mld_opdr_kosten - ((mld_opdr_uren * mld_opdr_uurloon) + mld_opdr_materiaal) correctie"
|
||||
+ " , o.mld_opdr_opmerking"
|
||||
+ " , (SELECT " + S("prs_pers_string")
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE p.prs_perslid_key = m.prs_perslid_key_voor) aanvrager"
|
||||
+ " , COALESCE((SELECT 'B'"
|
||||
+ " FROM prs_bedrijf"
|
||||
+ " WHERE prs_bedrijf_key = o.mld_uitvoerende_keys)"
|
||||
+ " , (SELECT 'P'"
|
||||
+ " FROM prs_perslid"
|
||||
+ " WHERE prs_perslid_key = o.mld_uitvoerende_keys)) B_OF_P"
|
||||
+ " , m.mld_melding_spoed"
|
||||
+ " , m.mld_melding_acceptdatum_std"
|
||||
+ " , m.mld_melding_einddatum_std"
|
||||
+ " , m.mld_melding_status"
|
||||
+ " , m.mld_melding_einddatum"
|
||||
+ " , std.mld_stdmelding_slabewaken"
|
||||
+ " , m.mld_melding_indult"
|
||||
+ " , m.mld_melding_parentkey"
|
||||
+ " , (SELECT COUNT(o1.mld_opdr_key)"
|
||||
+ " FROM mld_opdr o1"
|
||||
+ " WHERE o1.mld_melding_key = m.mld_melding_key) nrOrders"
|
||||
+ " , (SELECT COUNT(o2.mld_statusopdr_key)"
|
||||
+ " FROM mld_opdr o2"
|
||||
+ " WHERE o2.mld_melding_key = m.mld_melding_key"
|
||||
+ " AND o2.mld_statusopdr_key NOT IN (1, 2, 6, 7, 9)) nrActief"
|
||||
+ " , o.mld_opdr_omschrijving"
|
||||
+ " , o.mld_statusopdr_key"
|
||||
+ " , o.mld_opdr_verzonden"
|
||||
+ " , t.mld_typeopdr_key" // Voor flexGroupId
|
||||
+ " , " + lcl.xsqla('md.ins_discipline_omschrijving', 'md.ins_discipline_key')
|
||||
+ " , pfiat.prs_perslid_naam_full fiatteur"
|
||||
+ " , (SELECT COUNT (o.mld_opdr_key)"
|
||||
+ " FROM mld_opdr o "
|
||||
+ " WHERE o.mld_melding_key = mld_melding_key"
|
||||
+ " AND o.fac_activiteit_key IS NOT NULL) opdr_action"
|
||||
+ " , m.fac_activiteit_key mld_action"
|
||||
+ " , t.mld_typeopdr_kosten"
|
||||
+ " , t.mld_typeopdr_isofferte"
|
||||
+ " , t.mld_typeopdr_matchtype"
|
||||
+ " , t.mld_typeopdr_kosten_verplicht"
|
||||
+ " , mdp.mld_disc_params_opdr_kosten"
|
||||
+ sqltrack
|
||||
+ " , m.mld_melding_t_respijt.tijdsduur tijdsduur"
|
||||
+ " , m.mld_melding_t_respijt.eenheid eenheid"
|
||||
+ " , std.mld_stdmelding_key"
|
||||
+ " , (SELECT COUNT(f.fin_factuur_key)"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE f.mld_opdr_key = o.mld_opdr_key"
|
||||
+ " AND f.fin_factuur_verwijder IS NULL) aantal_facturen"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " , cnt_v_aanwezigcontract c"
|
||||
+ " , mld_stdmelding std"
|
||||
+ " , mld_melding m"
|
||||
+ (bld_key || bld_scope || verantw_key
|
||||
? " , alg_v_allonrgoed_gegevens g"
|
||||
: "")
|
||||
+ " , alg_locatie l"
|
||||
+ (verantw_key ? ", alg_gebouw gg" : "")
|
||||
+ " , alg_district di"
|
||||
+ " , mld_discipline md"
|
||||
+ " , mld_disc_params mdp"
|
||||
+ " , ins_srtdiscipline sd"
|
||||
+ ((add_prs_restrict)
|
||||
? " , prs_v_afdeling_boom b"
|
||||
: "")
|
||||
// and more here
|
||||
+ " , mld_typeopdr t"
|
||||
+ " , prs_v_perslid_fullnames_all pfiat"
|
||||
+ " , prs_perslid p" // de melder
|
||||
+ " WHERE o.mld_melding_key = m.mld_melding_key" + (urole == 'bgt' ? '(+)' : '') // dat is nog niet genoeg
|
||||
+ " AND pfiat.prs_perslid_key(+) = prs.getkpverantwoordelijke(o.prs_kostenplaats_key, "+S("prs_approvemethod")+", -1)"
|
||||
+ " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)"
|
||||
+ " AND l.alg_district_key = di.alg_district_key(+)"
|
||||
+ " AND std.mld_ins_discipline_key = md.ins_discipline_key"
|
||||
+ " AND md.ins_discipline_key = mdp.mld_ins_discipline_key"
|
||||
+ " AND o.fac_activiteit_key IS NULL"
|
||||
+ " AND o.cnt_contract_key = c.cnt_contract_key(+)"
|
||||
+ " AND m.mld_stdmelding_key = std.mld_stdmelding_key"
|
||||
+ " AND p.prs_perslid_key = m.prs_perslid_key"
|
||||
+ " AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key"
|
||||
+ " AND o.mld_typeopdr_key = t.mld_typeopdr_key";
|
||||
|
||||
if (add_prs_restrict)
|
||||
sql += " AND p.prs_afdeling_key = b.prs_afdeling_key";
|
||||
|
||||
if (bld_key || bld_scope || verantw_key)
|
||||
sql += " AND m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys(+)";
|
||||
|
||||
if (urole == 'b2')
|
||||
sql += " AND (o.mld_statusopdr_key NOT IN (3, 10) OR o.mld_statusopdr_key_refiat IS NOT NULL)"
|
||||
|
||||
if (frontend && mld_key)
|
||||
sql += " AND t.mld_typeopdr_zichtbaarfe = 1";
|
||||
|
||||
if (mld_key)
|
||||
{
|
||||
sql += " AND o.mld_melding_key = " + mld_key;
|
||||
}
|
||||
else if (opdr_key)
|
||||
{
|
||||
sql += " AND o.mld_melding_key = " + opdr_key; // opdracht nummer is voor de gebruiker hetzelfde als mld_key
|
||||
}
|
||||
else
|
||||
{ //
|
||||
if (offerte >= 0)
|
||||
sql += " AND t.mld_typeopdr_isofferte = " + offerte;
|
||||
|
||||
// --------- De statussen ------
|
||||
// Meldingstatus
|
||||
if (mldstatus_arr && ((mldstatus_arr.length > 1) || (mldstatus_arr != -1)))
|
||||
{
|
||||
mldstatus_arr = mldstatus_arr.join(",");
|
||||
}
|
||||
else
|
||||
{
|
||||
mldstatus_arr = showstatus;
|
||||
}
|
||||
var sql_status = mld.getStatusSql(mldstatus_arr, "m");
|
||||
if (sql_status)
|
||||
sql += " AND" + sql_status;
|
||||
// Opdrachtstatus
|
||||
if (opdrstatus_arr && ((opdrstatus_arr.length > 1) || (opdrstatus_arr != -1)))
|
||||
{
|
||||
sql += " AND o.mld_statusopdr_key IN (" + opdrstatus_arr.join(",") + ")";
|
||||
} else {
|
||||
if (showopdrstatus != "")
|
||||
sql += " AND o.mld_statusopdr_key IN (" + showopdrstatus + ")";
|
||||
}
|
||||
// Spoed
|
||||
if (chkSpoed)
|
||||
sql += " AND m.mld_melding_spoed < 3";
|
||||
// Afgerond
|
||||
if (chkAfgerond)
|
||||
sql += " AND m.mld_melding_afgerond = 1";
|
||||
|
||||
// Actie/door
|
||||
sql += mld.getwhereSrttracking(params);
|
||||
sql += mld.getwherePrstracking(params);
|
||||
//
|
||||
// Overschrijding acceptatietijd
|
||||
if (chkAcceptEx)
|
||||
{
|
||||
whereUs += " WHERE " + mld.getwhere_to_late_accept_sql("us") + " = 1";
|
||||
}
|
||||
// Overschijding doorlooptijd
|
||||
if (chkRunEx)
|
||||
{
|
||||
var whereT = mld.getwhere_to_late_run_sql("us", "us", "O") + " = 1";
|
||||
if (whereUs.length > 0)
|
||||
whereUs += " AND " + whereT;
|
||||
else
|
||||
whereUs = " WHERE " + whereT;
|
||||
}
|
||||
|
||||
if (S("mld_max_history") > 0 && (mldopdrstafm || mldopdrstver)) // was alleen als je in de history keek
|
||||
sql += " AND (o.mld_opdr_datumbegin >= SYSDATE - " + S("mld_max_history") + ")";
|
||||
|
||||
// Hier wordt gezocht in de omschrijving, opmerking en de eventuele (tekst-)kenmerken
|
||||
// Dit is een potentieel en onvermijdelijk dure zoekactie.
|
||||
// Conform meldingen
|
||||
if (searchtekst)
|
||||
sql += " AND (UPPER(mld_opdr_omschrijving) LIKE " + safe.quoted_sql_wild("%" + searchtekst + "%")
|
||||
+ " OR UPPER(mld_opdr_opmerking) LIKE " + safe.quoted_sql_wild("%" + searchtekst + "%")
|
||||
+ " OR UPPER(mld_opdr_id) LIKE " + safe.quoted_sql_wild("%" + searchtekst + "%")
|
||||
+ " OR EXISTS (SELECT mld_opdr_key"
|
||||
+ " FROM mld_kenmerkopdr ko"
|
||||
+ " WHERE ko.mld_opdr_key = o.mld_opdr_key"
|
||||
+ " AND ko.mld_kenmerkopdr_verwijder IS NULL"
|
||||
+ " AND UPPER(ko.mld_kenmerkopdr_waarde) LIKE " + safe.quoted_sql_wild("%" + searchtekst + "%") + "))";
|
||||
|
||||
if (bld_key)
|
||||
sql += " AND (g.alg_gebouw_key = " + bld_key + " OR g.alg_terreinsector_key = " + bld_key + ")";
|
||||
else if (loc_key)
|
||||
sql += " AND m.mld_alg_locatie_key = " + loc_key;
|
||||
else if (dist_key)
|
||||
sql += " AND di.alg_district_key = " + dist_key;
|
||||
else if (reg_key)
|
||||
sql += " AND di.alg_regio_key = " + reg_key;
|
||||
|
||||
if (adr_key)
|
||||
{ // opdrachten van een bepaald afleveradres
|
||||
sql += " AND m.mld_adres_key = " + adr_key;
|
||||
}
|
||||
|
||||
if (kp)
|
||||
sql += " AND o.prs_kostenplaats_key IN"
|
||||
+ " (SELECT k.prs_kostenplaats_key"
|
||||
+ " FROM prs_kostenplaats k"
|
||||
+ " WHERE (UPPER(k.prs_kostenplaats_omschrijving) LIKE " + safe.quoted_sql_wild(kp+"%")
|
||||
+ " OR UPPER(k.prs_kostenplaats_nr) LIKE " + safe.quoted_sql_wild(kp+"%") + "))";
|
||||
|
||||
if (org_key)
|
||||
sql += " AND p.prs_afdeling_key IN"
|
||||
+ " (SELECT a.prs_afdeling_key"
|
||||
+ " FROM prs_v_afdeling_familie a"
|
||||
+ " WHERE a.prs_afdeling_elder_key = " + org_key + ")";
|
||||
|
||||
if (verantw_key)
|
||||
sql += " AND g.alg_gebouw_key = gg.alg_gebouw_key(+)"
|
||||
+ " AND (gg.prs_perslid_key_verantw = " + verantw_key
|
||||
+ " OR gg.prs_perslid_key_verantw2 = " + verantw_key + ")";
|
||||
|
||||
if (caller_key)
|
||||
sql += " AND m.prs_perslid_key = " + caller_key;
|
||||
|
||||
if (behandel_key)
|
||||
sql += " AND o.prs_perslid_key = " + behandel_key;
|
||||
|
||||
if (opdrtype_key)
|
||||
sql += " AND o.mld_typeopdr_key = " + opdrtype_key;
|
||||
|
||||
// Soort melding, productgroep, melding (stdmelding), meldinggroep
|
||||
if (stdm_key_arr || meldinggrp_key)
|
||||
{
|
||||
if (stdm_key_arr)
|
||||
sql += " AND m.mld_stdmelding_key IN (" + stdm_key_arr.join(",") + ")";
|
||||
if (meldinggrp_key)
|
||||
sql += " AND std.mld_stdmeldinggroep_key IN (" + meldinggrp_key + ")";
|
||||
}
|
||||
else if (disc_key_arr)
|
||||
sql += " AND std.mld_ins_discipline_key IN (" + disc_key_arr.join(",") + ")" ;
|
||||
else if (srtdisc_key)
|
||||
sql += " AND sd.ins_srtdiscipline_key IN (" + srtdisc_key + ") ";
|
||||
|
||||
// Behandelgroep
|
||||
if (behandelgrp_key)
|
||||
sql += " AND mdp.mld_behandelgroep_key = " + behandelgrp_key;
|
||||
|
||||
if (cnt_key)
|
||||
sql += " AND o.cnt_contract_key IN (" + cnt_key + ")";
|
||||
|
||||
if (urole == 'b2') // decentraal
|
||||
sql += " AND t.mld_typeopdr_decentraal <> 0";
|
||||
|
||||
if (bes)
|
||||
sql += " AND sd.ins_srtdiscipline_bes = 1";
|
||||
|
||||
if (datefrom)
|
||||
{
|
||||
sql += " AND o.mld_opdr_datumbegin >= " + datefrom.beginToSQL();
|
||||
}
|
||||
if (dateto)
|
||||
{
|
||||
sql += " AND o.mld_opdr_datumbegin < " + dateto.endToSQL();
|
||||
}
|
||||
|
||||
if (offerte >= 0)
|
||||
sql += " AND t.mld_typeopdr_isofferte = " + offerte;
|
||||
}
|
||||
|
||||
// Als ik uitvoerder ben dan mag ik de aan mij toegekende opdrachten zien.
|
||||
if (uitvoerder)
|
||||
{ // Ben ik misschien nog plaatsvervanger
|
||||
var prsKeys = user.collegakeylist();
|
||||
sql += " AND o.mld_uitvoerende_keys IN (" + prsKeys + ")";
|
||||
}
|
||||
|
||||
// Setting mld_typeopdr_afmelden_extern: Afmelder (ORDBO2) mag externe opdrachten (0=Niet zien, 1=Zien, 2=Afmelden)
|
||||
// Als ik een interne (decentraal/intern) uitvoerder ben mag ik de externe opdrachten niet zien als mld_typeopdr_afmelden_extern==0.
|
||||
// De voorwaarde geldt niet als
|
||||
// 1) de opdracht toegekend is aan een persoon. Eigen opdrachten mag ik altijd zien.
|
||||
// 2) de opdracht toegekend is aan het eigen bedrijf. Opdrachten van het eigen bedrijf mag ik altijd zien.
|
||||
// 3) ik de contactpersoon ben van het uitvoerende externe bedrijf. Opdrachten van eigen bedrijf mag ik altijd zien.
|
||||
// Let op!!! Deze voorwaarde geldt dus alleen voor de WEB_ORDBO2 rechten.
|
||||
var exhandler = mld.iamContact(); // Later nodig voor bepaling eClose.
|
||||
|
||||
if (exhandler) // Dan mag ik *echt* alleen opdrachten toegekend aan mijn bedrijf zien
|
||||
{ // De andere helft van deze if is dan niet genoeg en bovendien *extreem* traag (FSN#29867)
|
||||
var sql_extern = " AND EXISTS (SELECT 'X' " // Ben ik contactpersoon van het uitvoerende externe bedrijf
|
||||
+ " FROM prs_contactpersoon"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND prs_contactpersoon_verwijder IS NULL"
|
||||
+ " AND prs_bedrijf_key = o.mld_uitvoerende_keys)";
|
||||
}
|
||||
else
|
||||
{
|
||||
var sql_extern = " AND (mld_typeopdr_afmelden_extern IN (1, 2)"
|
||||
+ " OR EXISTS (SELECT 'X'" // Toegekend aan een persoon
|
||||
+ " FROM prs_perslid"
|
||||
+ " WHERE prs_perslid_key = o.mld_uitvoerende_keys)"
|
||||
+ " OR EXISTS (SELECT 'X'" // Toegekend aan het EIGEN interne bedrijf
|
||||
+ " FROM prs_bedrijf b"
|
||||
+ " , prs_perslid p"
|
||||
+ " , prs_v_afdeling a"
|
||||
+ " WHERE b.prs_bedrijf_key = a.prs_bedrijf_key"
|
||||
+ " AND p.prs_afdeling_key = a.prs_afdeling_key"
|
||||
+ " AND b.prs_bedrijf_intern = 1"
|
||||
+ " AND b.prs_bedrijf_key = o.mld_uitvoerende_keys"
|
||||
+ " AND p.prs_perslid_key = " + user_key + ")"
|
||||
+ " OR EXISTS (SELECT 'X'" // Ben ik contactpersoon van het uitvoerende externe bedrijf
|
||||
+ " FROM prs_contactpersoon"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND prs_contactpersoon_verwijder IS NULL"
|
||||
+ " AND prs_bedrijf_key = o.mld_uitvoerende_keys)"
|
||||
+ " )";
|
||||
}
|
||||
|
||||
// Hier zijn nu alle meegegeven condities verwerkt, dat is:
|
||||
// Ofwel het nummer, ofwel de andere criteria.
|
||||
// We weten echter ook dat uitvoerende kan worden gehanteerd als een soort autorisatie
|
||||
// dus moeten we die ook checken, zelfs als er een nummer werd opgegeven.
|
||||
// De 3D autorisatie komt daar nog eens overheen.
|
||||
if (handler_key)
|
||||
sql = sql + " AND o.mld_uitvoerende_keys = " + handler_key;
|
||||
|
||||
// Als er multicompany-achtige relatiebeperkingen gelden, dan moet dat ook hier worden afgedwongen
|
||||
var lsql = "SELECT '' FROM prs_bedrijf_bedrijf pbb "
|
||||
+ " WHERE prs_bedrijf_key1 = " + user.afdeling().prs_bedrijf_key()
|
||||
+ " OR prs_bedrijf_key2 = "+ user.afdeling().prs_bedrijf_key();
|
||||
var loRs = Oracle.Execute(lsql);
|
||||
if (!loRs.eof)
|
||||
{
|
||||
sql += " AND o.mld_uitvoerende_keys IN (SELECT prs_bedrijf_key2 FROM prs_bedrijf_bedrijf WHERE prs_bedrijf_key1 = "+ user.afdeling().prs_bedrijf_key()
|
||||
+ " UNION SELECT prs_bedrijf_key1 FROM prs_bedrijf_bedrijf WHERE prs_bedrijf_key2 = "+ user.afdeling().prs_bedrijf_key() + ")";
|
||||
}
|
||||
|
||||
|
||||
sql += getKenmerkSql("OPD", "o.mld_opdr_key");
|
||||
|
||||
var sqlA = sql;
|
||||
if (from_mld)
|
||||
{ // Dan moeten we het opdracht overzicht tonen voor het meldingen backoffice overzicht "Afhandelen Meldingen".
|
||||
// Dan wil ik alleen die opdrachten zien van de meldingen waar ik rechten voor heb. Dan moet ik WEB_MLDBOF rechten hebben voor de meldingen
|
||||
// apply 3D authorization to the locations and to the organisations (both ALG and PRS)
|
||||
sqlA = discx3d (sql,
|
||||
"md.ins_discipline_key",
|
||||
"di.alg_regio_key",
|
||||
"l.alg_district_key",
|
||||
"l.alg_locatie_key",
|
||||
"g.alg_gebouw_key",
|
||||
"g.alg_verdieping_key",
|
||||
"g.alg_ruimte_key",
|
||||
"b.prs_bedrijf_key",
|
||||
"b.prs_afdeling_key",
|
||||
"WEB_MLDBOF",
|
||||
(!mld_key && disc_key_arr ? disc_key_arr.join(",") : ""),
|
||||
2);
|
||||
}
|
||||
// Indien sqlA uit meerdere delen (UNION ALL) bestaat dan al deze delen combineren met de pautfunction rechten.
|
||||
sqlA = sqlA.split("UNION ALL");
|
||||
|
||||
if (typeof pautfunction != "object" || !(pautfunction instanceof Array))
|
||||
// Maak van de String een Array
|
||||
pautfunction = [pautfunction];
|
||||
|
||||
var sqlAB = "";
|
||||
for (var jj = 0; jj < sqlA.length; jj++)
|
||||
{
|
||||
// pautfunction is nu altijd een Array met webfuncties
|
||||
for (var ii = 0; ii < pautfunction.length; ii++)
|
||||
{
|
||||
// Voorwaarde sql_extern t.b.v. setting mld_typeopdr_afmelden_extern alleen toevoegen voor WEB_ORDBO2 rechten.
|
||||
var sql3d = sqlA[jj] + (pautfunction[ii] == "WEB_ORDBO2"? sql_extern : "");
|
||||
// apply 3D authorization to the locations and to the organisations (both ALG and PRS)
|
||||
// if "disc == 0" or disc is not defined then disc should be ""
|
||||
// otherwise de 3d authorization adds a "AND (1=0)" line to the query and you will have never a result
|
||||
sqlB = (ii > 0? sqlB + " UNION " : "") + discx3d (sql3d,
|
||||
"md.ins_discipline_key",
|
||||
"di.alg_regio_key",
|
||||
"l.alg_district_key",
|
||||
"l.alg_locatie_key",
|
||||
"g.alg_gebouw_key",
|
||||
"g.alg_verdieping_key",
|
||||
"g.alg_ruimte_key",
|
||||
"b.prs_bedrijf_key",
|
||||
"b.prs_afdeling_key",
|
||||
pautfunction[ii],
|
||||
(!(mld_key || opdr_key) && disc_key_arr ? disc_key_arr.join(",") : ""),
|
||||
(add_prs_restrict ? 2 : 0)
|
||||
);
|
||||
}
|
||||
sqlAB = sqlAB + (jj > 0? " UNION " : "") + sqlB;
|
||||
}
|
||||
|
||||
if (pautfunction.length > 1)
|
||||
{ // We hebben dan rechten van meerdere autorisatie functies. Daardoor kan door discx3d() " UNION ALL " gebruikt worden om verschillende SELECT aan elkaar te plakken.
|
||||
// In dat geval krijgen we dan dubbele resultataten.
|
||||
// We moeten daarom deze UNION ALL's vervangen door UNION's.
|
||||
sqlAB = sqlAB.replace(/UNION ALL/g, "UNION");
|
||||
}
|
||||
|
||||
// Voeg laatste tracking datum toe
|
||||
sql = "SELECT * FROM (" + sqlAB + ") us"
|
||||
+ whereUs
|
||||
+ " ORDER BY" // ins_discipline_omschrijving is hier al vertaald
|
||||
+ (planb? " behandelaar," : "")
|
||||
+ (excel? " UPPER(ins_discipline_omschrijving), mld_typeopdr_key," : "") // Flexkenmerken verschillen per opdrachttype (mld_typeopdr_key)
|
||||
+ " mld_opdr_einddatum, mld_opdr_bedrijfopdr_volgnr";
|
||||
|
||||
|
||||
return sql;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
FCLTHeader.Requires({ plugins:["jQuery"],
|
||||
js: ["./opdr_list.js", "./mld.js", "jquery-ui.js"]});
|
||||
|
||||
function opdr_list (params)
|
||||
function opdr_list(params)
|
||||
{
|
||||
// VALIDATE AND PREPARE
|
||||
// Als een parameter niet gedefinieerd of null is, dan doet-ie niks
|
||||
@@ -37,42 +37,11 @@ function opdr_list (params)
|
||||
// params.urole : the usuals two-letter lowercase string
|
||||
// params.print : true | false
|
||||
// params.excel : true | false
|
||||
// params.org_key : key
|
||||
// params.reg_key : key
|
||||
// params.dist_key : key
|
||||
// params.loc_key : key
|
||||
// params.behandel_key : key
|
||||
// params.bld_key : key
|
||||
// params.handler_key : key
|
||||
// params.opdrtype_key : key
|
||||
// params.cnt_key : key
|
||||
// params.caller_key : key
|
||||
// params.srtdisc_key : key
|
||||
// params.disc_key_arr : Array met keys (e.g. [3, 4, 5])
|
||||
// params.stdm_key_arr : Array met keys (e.g. [3, 4, 5])
|
||||
// params.searchtekst : wildcard string
|
||||
// params.opdrtype_key : key
|
||||
// params.bes : true | false
|
||||
// params.offerte(s) : -1, 0 or 1
|
||||
// params.offerte(s) : -1, 0 or 1
|
||||
|
||||
// Statuses:
|
||||
// params.mldstpen = 1 (0): true | false
|
||||
// params.mldstrej = 1 (1): true | false
|
||||
// params.mldstnew = 1 (2): true | false
|
||||
// params.mldsting = 1 (3): true | false
|
||||
// params.mldstacc = 1 (4): true | false
|
||||
// params.mldstuit = 1 (7): true | false
|
||||
// params.mldstafm = 1 (5): true | false
|
||||
// params.mldstver = 1 (6): true | false
|
||||
// params.mldnieto = 1 (99): true | false (substatus van 4)
|
||||
// Opdrachtstatussen:
|
||||
// params.opdrstuit:
|
||||
// params.opdrstafm:
|
||||
// params.opdrstver:
|
||||
|
||||
// afdel =
|
||||
// kp = kostenplaats (wildcard)
|
||||
//
|
||||
// if a parameters has a value of -1, then it is assumed not to be set and to be ignored.
|
||||
|
||||
/// Deze functie toont de opdrachten, en kan op diverse manieren gebruikt worden:
|
||||
@@ -112,39 +81,8 @@ function opdr_list (params)
|
||||
var showall = params.showall;
|
||||
|
||||
var mld_key = params.mld_key;
|
||||
var opdr_key = params.opdr_key; // opdracht nummer is voor de gebruiker hetzelfde als mld_key
|
||||
var behandel_key = params.behandel_key;
|
||||
var srtdisc_key = params.srtdisc_key;
|
||||
var searchtekst = params.searchtekst;
|
||||
var reg_key = params.reg_key;
|
||||
var dist_key = params.dist_key;
|
||||
var adr_key = params.adr_key;
|
||||
var loc_key = params.loc_key;
|
||||
var bld_key = params.bld_key;
|
||||
var verantw_key = params.verantw_key;
|
||||
var caller_key = params.caller_key;
|
||||
var org_key = params.org_key;
|
||||
var srtdisc_key = params.srtdisc_key;
|
||||
var disc_key_arr = params.disc_key_arr; // Array met keys (e.g. [3, 4, 5])
|
||||
var meldinggrp_key = params.meldinggrp_key;
|
||||
var behandelgrp_key = params.behandelgrp_key;
|
||||
var stdm_key_arr = params.stdm_key_arr;
|
||||
var kp = params.kp;
|
||||
var handler_key = params.handler_key;
|
||||
var mldstatus_arr = params.mldstatus_arr;
|
||||
var opdrstatus_arr = params.opdrstatus_arr;
|
||||
var chkAcceptEx = params.chkAcceptEx;
|
||||
var chkRunEx = params.chkRunEx;
|
||||
var chkSpoed = params.chkSpoed;
|
||||
var chkAfgerond = params.chkAfgerond;
|
||||
var datefrom = params.datefrom;
|
||||
var dateto = params.dateto;
|
||||
var opdrtype_key = params.opdrtype_key
|
||||
var contract = params.contract
|
||||
var cnt_key = params.cnt_key;
|
||||
var offerte = params.offerte; // Opdrachttype is een offerteaanvraag. Kan -1:don't care, 0:niet, 1:wel zijn.
|
||||
if (params.offertes) // Helaas geeft mld_search_list.asp het meervoud door
|
||||
offerte = 1;
|
||||
// Er kunen twee contract keys meegegeven worden. Een extra contract key die bij contract hoort.
|
||||
// Als cnt_key en contract_key verschillen kun het nooit een resultaat opleveren
|
||||
if (contract > 0)
|
||||
@@ -155,6 +93,7 @@ function opdr_list (params)
|
||||
var inline = params.inline;
|
||||
//var justClose = params.justClose;
|
||||
// close_only is vervangen door (pautfunction == "WEB_ORDBO2"): Als je die rechten hebt mag je ook afmelden
|
||||
|
||||
var mldstpen = params.mldstpen;
|
||||
var mldstnew = params.mldstnew;
|
||||
var mldsting = params.mldsting;
|
||||
@@ -186,6 +125,8 @@ function opdr_list (params)
|
||||
if (mldstuit) showstatus = (showstatus == ""? "" : showstatus + ",") + "7";
|
||||
if (mldnieto) showstatus = (showstatus == ""? "" : showstatus + ",") + "99";
|
||||
var from_mld = (showstatus != "");
|
||||
params.showstatus = showstatus;
|
||||
params.from_mld = from_mld;
|
||||
|
||||
var showopdrstatus = "";
|
||||
if (mldopdrstrej) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "1";
|
||||
@@ -198,10 +139,14 @@ function opdr_list (params)
|
||||
if (mldopdrstacp) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "8";
|
||||
if (mldopdrstafr) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "9";
|
||||
if (mldopdrstgoe) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "10"; // Verderop wordt wel bepaald of 'b2' status 10 mag zien
|
||||
params.showopdrstatus = showopdrstatus;
|
||||
params.mldopdrstrej = mldopdrstrej;
|
||||
params.mldopdrstafm = mldopdrstafm;
|
||||
params.mldopdrstver = mldopdrstver;
|
||||
|
||||
var groepering_key = params.groepering_key; // Voor maninfo. 2 en 16 ondersteund
|
||||
|
||||
var uitvoerder = false;
|
||||
params.uitvoerder = false;
|
||||
if (frontend)
|
||||
{
|
||||
// Dan zijn het alleen opdrachten van *mijn* meldingen waarop ik MLDUSE-read rechten heb
|
||||
@@ -213,7 +158,7 @@ function opdr_list (params)
|
||||
else
|
||||
{
|
||||
var pautfunction = "WEB_MLDORD";
|
||||
uitvoerder = true;
|
||||
params.uitvoerder = true;
|
||||
}
|
||||
}
|
||||
else if (from_mld)
|
||||
@@ -228,11 +173,6 @@ function opdr_list (params)
|
||||
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
|
||||
var authparams = user.checkAutorisation(pautfunction);
|
||||
|
||||
// AUTORISATIES
|
||||
// Autorisatie check is al gedaan in mld_search_list.asp
|
||||
// Dit lijkt me om te kunnen bepalen of ik uberhaupt naar de PRS-autorisatie hoef te kijken
|
||||
var add_prs_restrict = prshasrestrict(pautfunction);
|
||||
|
||||
if (mld_key)
|
||||
{ // Bestaat de gezochte melding?
|
||||
var sql = "SELECT '1' FROM mld_melding WHERE mld_melding_key = " + mld_key;
|
||||
@@ -247,7 +187,6 @@ function opdr_list (params)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
@@ -266,492 +205,7 @@ function opdr_list (params)
|
||||
<%
|
||||
var prefix = ';-)'; // even if no result it must have a value
|
||||
|
||||
|
||||
if (from_mld)
|
||||
{
|
||||
var functiecode = "'WEB_MLDBOF'";
|
||||
for (var i = 0; i < pautfunction.length; i++)
|
||||
{
|
||||
functiecode += "," + safe.quoted_sql(pautfunction[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
var functiecode = safe.quoted_sql(pautfunction);
|
||||
// check if user has a building or lower scope. If so we have to include onroerendgoed view.
|
||||
sql2 = "SELECT fac_groeprechten_key "
|
||||
+ " FROM fac_functie f"
|
||||
+ " , fac_groeprechten gr"
|
||||
+ " , fac_gebruikersgroep gg"
|
||||
+ " WHERE gg.prs_perslid_key = " + user_key
|
||||
+ " AND gr.fac_groep_key = gg.fac_groep_key"
|
||||
+ " AND gr.fac_functie_key = f.fac_functie_key"
|
||||
+ " AND (f.fac_functie_code IN (" + functiecode + "))"
|
||||
+ " AND ( ( gr.fac_gebruiker_alg_level_read < 9 "
|
||||
+ " AND gr.fac_gebruiker_alg_level_read > 2 "
|
||||
+ " ) "
|
||||
+ " OR ( gr.fac_gebruiker_alg_level_write < 9 "
|
||||
+ " AND gr.fac_gebruiker_alg_level_write > 2 "
|
||||
+ " ) "
|
||||
+ " ) ";
|
||||
|
||||
bld_scope = false;
|
||||
oRs2 = Oracle.Execute(sql2);
|
||||
if (!oRs2.eof)
|
||||
{
|
||||
bld_scope = true;
|
||||
}
|
||||
|
||||
sqltrack = (groepering_key == 2 || groepering_key == 16 // Minfo groepering Opdracht(2) en Opdracht + Kosten(16).
|
||||
? ", TO_DATE('01-01-1970', 'DD-MM-YYYY')"
|
||||
: ", (SELECT MAX(t.fac_tracking_datum)"
|
||||
+ " FROM fac_tracking t"
|
||||
+ " , fac_srtnotificatie sn"
|
||||
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
|
||||
+ " AND t.fac_tracking_refkey = o.mld_opdr_key" // opdracht key uit "sql"
|
||||
+ " AND sn.fac_srtnotificatie_xmlnode = 'opdracht')")
|
||||
+ " recentdatum";
|
||||
|
||||
var whereUs = ""; // straks voor de statussen
|
||||
sql = "SELECT o.mld_melding_key"
|
||||
+ " , o.mld_opdr_bedrijfopdr_volgnr"
|
||||
+ " , o.mld_opdr_id"
|
||||
+ " , o.mld_opdr_einddatum"
|
||||
+ " , l.alg_locatie_code "
|
||||
+ " ||(SELECT DECODE(v.alg_plaatsaanduiding, '', ' ('||l.alg_locatie_omschrijving||')',"
|
||||
+ " '-'||v.alg_plaatsaanduiding || DECODE(v.alg_plaatsomschrijving, '','' ,"
|
||||
+ "' (' || v.alg_plaatsomschrijving || ')'))"
|
||||
+ " FROM alg_v_allonrgoed_gegevens v"
|
||||
+ " WHERE m.mld_alg_onroerendgoed_keys = v.alg_onroerendgoed_keys"
|
||||
+ " AND rownum = 1"
|
||||
+ " ) plaatsmelding"
|
||||
+ " , l.alg_locatie_adres"
|
||||
+ (S("mld_print_loc_address") == 2
|
||||
? " , (SELECT geg.alg_gebouw_naam"
|
||||
+ " FROM alg_v_allonrgoed_gegevens geg"
|
||||
+ " WHERE geg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys) alg_gebouw_naam"
|
||||
: "")
|
||||
+ " , di.alg_district_omschrijving"
|
||||
+ " , (SELECT u.naam FROM mld_v_uitvoerende u WHERE U.mld_uitvoerende_key = O.mld_uitvoerende_keys) naam"
|
||||
+ " , (SELECT " + S("prs_pers_string")
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE p.prs_perslid_key = o.prs_perslid_key) behandelaar"
|
||||
+ " , (SELECT " + S("prs_kpn_string")
|
||||
+ " FROM prs_kostenplaats k"
|
||||
+ " WHERE k.prs_kostenplaats_key = o.prs_kostenplaats_key) kpstring"
|
||||
+ " , o.mld_opdr_key"
|
||||
+ " , c.cnt_contract_key"
|
||||
+ " , c.cnt_contract_nummer"
|
||||
+ " , c.cnt_contract_nummer_intern"
|
||||
+ " , c.cnt_contract_versie"
|
||||
+ " , o.mld_opdr_datumbegin"
|
||||
+ " , o.mld_opdr_plandatum"
|
||||
+ " , " + lcl.xsqla('t.mld_typeopdr_omschrijving', 't.mld_typeopdr_key')
|
||||
+ " , t.mld_typeopdr_decentraal"
|
||||
+ " , t.mld_typeopdr_afmelden_extern"
|
||||
+ " , sd.ins_srtdiscipline_prefix"
|
||||
+ " , sd.ins_srtdiscipline_omschrijving"
|
||||
+ " , " + lcl.xsqla('std.mld_stdmelding_omschrijving','std.mld_stdmelding_key')
|
||||
+ " , " + S("prs_pers_string")+ " melder"
|
||||
+ " , SYSDATE nu"
|
||||
+ " , o.mld_opdr_kosten"
|
||||
+ (urole == 'mi'
|
||||
? " , COALESCE((SELECT SUM(f.fin_factuur_totaal)"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE f.mld_opdr_key = o.mld_opdr_key "
|
||||
+ " AND f.fin_factuur_statuses_key <> 1"
|
||||
+ " AND f.fin_factuur_verwijder IS NULL), 0) gefactureerd"
|
||||
: "")
|
||||
+ " , o.mld_opdr_uren"
|
||||
+ " , o.mld_opdr_materiaal"
|
||||
+ " , o.mld_opdr_uurloon"
|
||||
+ " , o.mld_opdr_kosten - ((mld_opdr_uren * mld_opdr_uurloon) + mld_opdr_materiaal) correctie"
|
||||
+ " , o.mld_opdr_opmerking"
|
||||
+ " , (SELECT " + S("prs_pers_string")
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE p.prs_perslid_key = m.prs_perslid_key_voor) aanvrager"
|
||||
+ " , COALESCE((SELECT 'B'"
|
||||
+ " FROM prs_bedrijf"
|
||||
+ " WHERE prs_bedrijf_key = o.mld_uitvoerende_keys)"
|
||||
+ " , (SELECT 'P'"
|
||||
+ " FROM prs_perslid"
|
||||
+ " WHERE prs_perslid_key = o.mld_uitvoerende_keys)) B_OF_P"
|
||||
+ " , m.mld_melding_spoed"
|
||||
+ " , m.mld_melding_acceptdatum_std"
|
||||
+ " , m.mld_melding_einddatum_std"
|
||||
+ " , m.mld_melding_status"
|
||||
+ " , m.mld_melding_einddatum"
|
||||
+ " , std.mld_stdmelding_slabewaken"
|
||||
+ " , m.mld_melding_indult"
|
||||
+ " , m.mld_melding_parentkey"
|
||||
+ " , (SELECT COUNT(o1.mld_opdr_key)"
|
||||
+ " FROM mld_opdr o1"
|
||||
+ " WHERE o1.mld_melding_key = m.mld_melding_key) nrOrders"
|
||||
+ " , (SELECT COUNT(o2.mld_statusopdr_key)"
|
||||
+ " FROM mld_opdr o2"
|
||||
+ " WHERE o2.mld_melding_key = m.mld_melding_key"
|
||||
+ " AND o2.mld_statusopdr_key NOT IN (1, 2, 6, 7, 9)) nrActief"
|
||||
+ " , o.mld_opdr_omschrijving"
|
||||
+ " , o.mld_statusopdr_key"
|
||||
+ " , o.mld_opdr_verzonden"
|
||||
+ " , t.mld_typeopdr_key" // Voor flexGroupId
|
||||
+ " , " + lcl.xsqla('md.ins_discipline_omschrijving', 'md.ins_discipline_key')
|
||||
+ " , pfiat.prs_perslid_naam_full fiatteur"
|
||||
+ " , (SELECT COUNT (o.mld_opdr_key)"
|
||||
+ " FROM mld_opdr o "
|
||||
+ " WHERE o.mld_melding_key = mld_melding_key"
|
||||
+ " AND o.fac_activiteit_key IS NOT NULL) opdr_action"
|
||||
+ " , m.fac_activiteit_key mld_action"
|
||||
+ " , t.mld_typeopdr_kosten"
|
||||
+ " , t.mld_typeopdr_isofferte"
|
||||
+ " , t.mld_typeopdr_matchtype"
|
||||
+ " , t.mld_typeopdr_kosten_verplicht"
|
||||
+ " , mdp.mld_disc_params_opdr_kosten"
|
||||
+ sqltrack
|
||||
+ " , m.mld_melding_t_respijt.tijdsduur tijdsduur"
|
||||
+ " , m.mld_melding_t_respijt.eenheid eenheid"
|
||||
+ " , std.mld_stdmelding_key"
|
||||
+ " , (SELECT COUNT(f.fin_factuur_key)"
|
||||
+ " FROM fin_factuur f"
|
||||
+ " WHERE f.mld_opdr_key = o.mld_opdr_key"
|
||||
+ " AND f.fin_factuur_verwijder IS NULL) aantal_facturen"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " , cnt_v_aanwezigcontract c"
|
||||
+ " , mld_stdmelding std"
|
||||
+ " , mld_melding m"
|
||||
+ (bld_key || bld_scope || verantw_key
|
||||
? " , alg_v_allonrgoed_gegevens g"
|
||||
: "")
|
||||
+ " , alg_locatie l"
|
||||
+ (verantw_key ? ", alg_gebouw gg" : "")
|
||||
+ " , alg_district di"
|
||||
+ " , mld_discipline md"
|
||||
+ " , mld_disc_params mdp"
|
||||
+ " , ins_srtdiscipline sd"
|
||||
+ ((add_prs_restrict)
|
||||
? " , prs_v_afdeling_boom b"
|
||||
: "")
|
||||
// and more here
|
||||
+ " , mld_typeopdr t"
|
||||
+ " , prs_v_perslid_fullnames_all pfiat"
|
||||
+ " , prs_perslid p" // de melder
|
||||
+ " WHERE o.mld_melding_key = m.mld_melding_key" // + (urole == 'bgt' ? '(+)' : '') // dat is nog niet genoeg
|
||||
+ " AND pfiat.prs_perslid_key(+) = prs.getkpverantwoordelijke(o.prs_kostenplaats_key, "+S("prs_approvemethod")+", -1)"
|
||||
+ " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)"
|
||||
+ " AND l.alg_district_key = di.alg_district_key(+)"
|
||||
+ " AND std.mld_ins_discipline_key = md.ins_discipline_key"
|
||||
+ " AND md.ins_discipline_key = mdp.mld_ins_discipline_key"
|
||||
+ " AND o.fac_activiteit_key IS NULL"
|
||||
+ " AND o.cnt_contract_key = c.cnt_contract_key(+)"
|
||||
+ " AND m.mld_stdmelding_key = std.mld_stdmelding_key"
|
||||
+ " AND p.prs_perslid_key = m.prs_perslid_key"
|
||||
+ " AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key"
|
||||
+ " AND o.mld_typeopdr_key = t.mld_typeopdr_key";
|
||||
|
||||
if (add_prs_restrict)
|
||||
sql += " AND p.prs_afdeling_key = b.prs_afdeling_key";
|
||||
|
||||
if (bld_key || bld_scope || verantw_key)
|
||||
sql += " AND m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys(+)";
|
||||
|
||||
if (urole == 'b2')
|
||||
sql += " AND (o.mld_statusopdr_key NOT IN (3, 10) OR o.mld_statusopdr_key_refiat IS NOT NULL)"
|
||||
|
||||
if (frontend && params.mld_key)
|
||||
sql += " AND t.mld_typeopdr_zichtbaarfe = 1";
|
||||
|
||||
if (mld_key)
|
||||
{
|
||||
sql += " AND o.mld_melding_key = " + mld_key;
|
||||
}
|
||||
else if (opdr_key)
|
||||
{
|
||||
sql += " AND o.mld_melding_key = " + opdr_key; // opdracht nummer is voor de gebruiker hetzelfde als mld_key
|
||||
}
|
||||
else
|
||||
{ //
|
||||
if (offerte >= 0)
|
||||
sql += " AND t.mld_typeopdr_isofferte = " + offerte;
|
||||
|
||||
// --------- De statussen ------
|
||||
// Meldingstatus
|
||||
if (mldstatus_arr && ((mldstatus_arr.length > 1) || (mldstatus_arr != -1)))
|
||||
{
|
||||
mldstatus_arr = mldstatus_arr.join(",");
|
||||
}
|
||||
else
|
||||
{
|
||||
mldstatus_arr = showstatus;
|
||||
}
|
||||
var sql_status = mld.getStatusSql(mldstatus_arr, "m");
|
||||
if (sql_status)
|
||||
sql += " AND" + sql_status;
|
||||
// Opdrachtstatus
|
||||
if (opdrstatus_arr && ((opdrstatus_arr.length > 1) || (opdrstatus_arr != -1)))
|
||||
{
|
||||
sql += " AND o.mld_statusopdr_key IN (" + opdrstatus_arr.join(",") + ")";
|
||||
} else {
|
||||
if (showopdrstatus != "")
|
||||
sql += " AND o.mld_statusopdr_key IN (" + showopdrstatus + ")";
|
||||
}
|
||||
// Spoed
|
||||
if (chkSpoed)
|
||||
sql += " AND m.mld_melding_spoed < 3";
|
||||
// Afgerond
|
||||
if (chkAfgerond)
|
||||
sql += " AND m.mld_melding_afgerond = 1";
|
||||
|
||||
// Actie/door
|
||||
sql += mld.getwhereSrttracking(params);
|
||||
sql += mld.getwherePrstracking(params);
|
||||
//
|
||||
// Overschrijding acceptatietijd
|
||||
if (chkAcceptEx)
|
||||
{
|
||||
whereUs += " WHERE " + mld.getwhere_to_late_accept_sql("us") + " = 1";
|
||||
}
|
||||
// Overschijding doorlooptijd
|
||||
if (chkRunEx)
|
||||
{
|
||||
whereT = mld.getwhere_to_late_run_sql("us", "us", "O") + " = 1";
|
||||
if (whereUs.length > 0)
|
||||
whereUs += " AND " + whereT;
|
||||
else
|
||||
whereUs = " WHERE " + whereT;
|
||||
}
|
||||
|
||||
if (S("mld_max_history") > 0 && (mldopdrstafm || mldopdrstver)) // was alleen als je in de history keek
|
||||
sql += " AND (o.mld_opdr_datumbegin >= SYSDATE - " + S("mld_max_history") + ")";
|
||||
|
||||
// Hier wordt gezocht in de omschrijving, opmerking en de eventuele (tekst-)kenmerken
|
||||
// Dit is een potentieel en onvermijdelijk dure zoekactie.
|
||||
// Conform meldingen
|
||||
if (searchtekst)
|
||||
sql += " AND (UPPER(mld_opdr_omschrijving) LIKE " + safe.quoted_sql_wild("%" + searchtekst + "%")
|
||||
+ " OR UPPER(mld_opdr_opmerking) LIKE " + safe.quoted_sql_wild("%" + searchtekst + "%")
|
||||
+ " OR UPPER(mld_opdr_id) LIKE " + safe.quoted_sql_wild("%" + searchtekst + "%")
|
||||
+ " OR EXISTS (SELECT mld_opdr_key"
|
||||
+ " FROM mld_kenmerkopdr ko"
|
||||
+ " WHERE ko.mld_opdr_key = o.mld_opdr_key"
|
||||
+ " AND ko.mld_kenmerkopdr_verwijder IS NULL"
|
||||
+ " AND UPPER(ko.mld_kenmerkopdr_waarde) LIKE " + safe.quoted_sql_wild("%" + searchtekst + "%") + "))";
|
||||
|
||||
if (bld_key)
|
||||
sql += " AND (g.alg_gebouw_key = " + bld_key + " OR g.alg_terreinsector_key = " + bld_key + ")";
|
||||
else if (loc_key)
|
||||
sql += " AND m.mld_alg_locatie_key = " + loc_key;
|
||||
else if (dist_key)
|
||||
sql += " AND di.alg_district_key = " + dist_key;
|
||||
else if (reg_key)
|
||||
sql += " AND di.alg_regio_key = " + reg_key;
|
||||
|
||||
if (adr_key)
|
||||
{ // opdrachten van een bepaald afleveradres
|
||||
sql += " AND m.mld_adres_key = " + adr_key;
|
||||
}
|
||||
|
||||
if (kp)
|
||||
sql += " AND o.prs_kostenplaats_key IN"
|
||||
+ " (SELECT k.prs_kostenplaats_key"
|
||||
+ " FROM prs_kostenplaats k"
|
||||
+ " WHERE (UPPER(k.prs_kostenplaats_omschrijving) LIKE " + safe.quoted_sql_wild(kp+"%")
|
||||
+ " OR UPPER(k.prs_kostenplaats_nr) LIKE " + safe.quoted_sql_wild(kp+"%") + "))";
|
||||
|
||||
if (org_key)
|
||||
sql += " AND p.prs_afdeling_key IN"
|
||||
+ " (SELECT a.prs_afdeling_key"
|
||||
+ " FROM prs_v_afdeling_familie a"
|
||||
+ " WHERE a.prs_afdeling_elder_key = " + org_key + ")";
|
||||
|
||||
if (verantw_key)
|
||||
sql += " AND g.alg_gebouw_key = gg.alg_gebouw_key(+)"
|
||||
+ " AND (gg.prs_perslid_key_verantw = " + verantw_key
|
||||
+ " OR gg.prs_perslid_key_verantw2 = " + verantw_key + ")";
|
||||
|
||||
if (caller_key)
|
||||
sql += " AND m.prs_perslid_key = " + caller_key;
|
||||
|
||||
if (behandel_key)
|
||||
sql += " AND o.prs_perslid_key = " + behandel_key;
|
||||
|
||||
if (opdrtype_key)
|
||||
sql += " AND o.mld_typeopdr_key = " + opdrtype_key;
|
||||
|
||||
// Soort melding, productgroep, melding (stdmelding), meldinggroep
|
||||
if (stdm_key_arr || meldinggrp_key)
|
||||
{
|
||||
if (stdm_key_arr)
|
||||
sql += " AND m.mld_stdmelding_key IN (" + stdm_key_arr.join(",") + ")";
|
||||
if (meldinggrp_key)
|
||||
sql += " AND std.mld_stdmeldinggroep_key IN (" + meldinggrp_key + ")";
|
||||
}
|
||||
else if (disc_key_arr)
|
||||
sql += " AND std.mld_ins_discipline_key IN (" + disc_key_arr.join(",") + ")" ;
|
||||
else if (srtdisc_key)
|
||||
sql += " AND sd.ins_srtdiscipline_key IN (" + srtdisc_key + ") ";
|
||||
|
||||
// Behandelgroep
|
||||
if (behandelgrp_key)
|
||||
sql += " AND mdp.mld_behandelgroep_key = " + behandelgrp_key;
|
||||
|
||||
if (cnt_key)
|
||||
sql += " AND o.cnt_contract_key IN (" + cnt_key + ")";
|
||||
|
||||
if (urole == 'b2') // decentraal
|
||||
sql += " AND t.mld_typeopdr_decentraal <> 0";
|
||||
|
||||
if (bes)
|
||||
sql += " AND sd.ins_srtdiscipline_bes = 1";
|
||||
|
||||
if (datefrom)
|
||||
{
|
||||
sql += " AND o.mld_opdr_datumbegin >= " + datefrom.beginToSQL();
|
||||
}
|
||||
if (dateto)
|
||||
{
|
||||
sql += " AND o.mld_opdr_datumbegin < " + dateto.endToSQL();
|
||||
}
|
||||
|
||||
if (offerte >= 0)
|
||||
sql += " AND t.mld_typeopdr_isofferte = " + offerte;
|
||||
}
|
||||
|
||||
// Als ik uitvoerder ben dan mag ik de aan mij toegekende opdrachten zien.
|
||||
if (uitvoerder)
|
||||
{ // Ben ik misschien nog plaatsvervanger
|
||||
var prsKeys = user.collegakeylist();
|
||||
sql += " AND o.mld_uitvoerende_keys IN (" + prsKeys + ")";
|
||||
}
|
||||
|
||||
// Setting mld_typeopdr_afmelden_extern: Afmelder (ORDBO2) mag externe opdrachten (0=Niet zien, 1=Zien, 2=Afmelden)
|
||||
// Als ik een interne (decentraal/intern) uitvoerder ben mag ik de externe opdrachten niet zien als mld_typeopdr_afmelden_extern==0.
|
||||
// De voorwaarde geldt niet als
|
||||
// 1) de opdracht toegekend is aan een persoon. Eigen opdrachten mag ik altijd zien.
|
||||
// 2) de opdracht toegekend is aan het eigen bedrijf. Opdrachten van het eigen bedrijf mag ik altijd zien.
|
||||
// 3) ik de contactpersoon ben van het uitvoerende externe bedrijf. Opdrachten van eigen bedrijf mag ik altijd zien.
|
||||
// Let op!!! Deze voorwaarde geldt dus alleen voor de WEB_ORDBO2 rechten.
|
||||
var exhandler = mld.iamContact(); // Later nodig voor bepaling eClose.
|
||||
|
||||
if (exhandler) // Dan mag ik *echt* alleen opdrachten toegekend aan mijn bedrijf zien
|
||||
{ // De andere helft van deze if is dan niet genoeg en bovendien *extreem* traag (FSN#29867)
|
||||
sql_extern = " AND EXISTS (SELECT 'X' " // Ben ik contactpersoon van het uitvoerende externe bedrijf
|
||||
+ " FROM prs_contactpersoon"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND prs_contactpersoon_verwijder IS NULL"
|
||||
+ " AND prs_bedrijf_key = o.mld_uitvoerende_keys)";
|
||||
}
|
||||
else
|
||||
{
|
||||
sql_extern = " AND (mld_typeopdr_afmelden_extern IN (1, 2)"
|
||||
+ " OR EXISTS (SELECT 'X'" // Toegekend aan een persoon
|
||||
+ " FROM prs_perslid"
|
||||
+ " WHERE prs_perslid_key = o.mld_uitvoerende_keys)"
|
||||
+ " OR EXISTS (SELECT 'X'" // Toegekend aan het EIGEN interne bedrijf
|
||||
+ " FROM prs_bedrijf b"
|
||||
+ " , prs_perslid p"
|
||||
+ " , prs_v_afdeling a"
|
||||
+ " WHERE b.prs_bedrijf_key = a.prs_bedrijf_key"
|
||||
+ " AND p.prs_afdeling_key = a.prs_afdeling_key"
|
||||
+ " AND b.prs_bedrijf_intern = 1"
|
||||
+ " AND b.prs_bedrijf_key = o.mld_uitvoerende_keys"
|
||||
+ " AND p.prs_perslid_key = " + user_key + ")"
|
||||
+ " OR EXISTS (SELECT 'X'" // Ben ik contactpersoon van het uitvoerende externe bedrijf
|
||||
+ " FROM prs_contactpersoon"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND prs_contactpersoon_verwijder IS NULL"
|
||||
+ " AND prs_bedrijf_key = o.mld_uitvoerende_keys)"
|
||||
+ " )";
|
||||
}
|
||||
|
||||
// Hier zijn nu alle meegegeven condities verwerkt, dat is:
|
||||
// Ofwel het nummer, ofwel de andere criteria.
|
||||
// We weten echter ook dat uitvoerende kan worden gehanteerd als een soort autorisatie
|
||||
// dus moeten we die ook checken, zelfs als er een nummer werd opgegeven.
|
||||
// De 3D autorisatie komt daar nog eens overheen.
|
||||
if (handler_key)
|
||||
sql = sql + " AND o.mld_uitvoerende_keys = " + handler_key;
|
||||
|
||||
// Als er multicompany-achtige relatiebeperkingen gelden, dan moet dat ook hier worden afgedwongen
|
||||
var lsql = "SELECT '' FROM prs_bedrijf_bedrijf pbb "
|
||||
+ " WHERE prs_bedrijf_key1 = " + user.afdeling().prs_bedrijf_key()
|
||||
+ " OR prs_bedrijf_key2 = "+ user.afdeling().prs_bedrijf_key();
|
||||
var loRs = Oracle.Execute(lsql);
|
||||
if (!loRs.eof)
|
||||
{
|
||||
sql += " AND o.mld_uitvoerende_keys IN (SELECT prs_bedrijf_key2 FROM prs_bedrijf_bedrijf WHERE prs_bedrijf_key1 = "+ user.afdeling().prs_bedrijf_key()
|
||||
+ " UNION SELECT prs_bedrijf_key1 FROM prs_bedrijf_bedrijf WHERE prs_bedrijf_key2 = "+ user.afdeling().prs_bedrijf_key() + ")";
|
||||
}
|
||||
|
||||
|
||||
sql += getKenmerkSql("OPD", "o.mld_opdr_key");
|
||||
|
||||
var sqlA = sql;
|
||||
if (from_mld)
|
||||
{ // Dan moeten we het opdracht overzicht tonen voor het meldingen backoffice overzicht "Afhandelen Meldingen".
|
||||
// Dan wil ik alleen die opdrachten zien van de meldingen waar ik rechten voor heb. Dan moet ik WEB_MLDBOF rechten hebben voor de meldingen
|
||||
// apply 3D authorization to the locations and to the organisations (both ALG and PRS)
|
||||
sqlA = discx3d (sql,
|
||||
"md.ins_discipline_key",
|
||||
"di.alg_regio_key",
|
||||
"l.alg_district_key",
|
||||
"l.alg_locatie_key",
|
||||
"g.alg_gebouw_key",
|
||||
"g.alg_verdieping_key",
|
||||
"g.alg_ruimte_key",
|
||||
"b.prs_bedrijf_key",
|
||||
"b.prs_afdeling_key",
|
||||
"WEB_MLDBOF",
|
||||
(!mld_key && disc_key_arr ? disc_key_arr.join(",") : ""),
|
||||
2);
|
||||
}
|
||||
// Indien sqlA uit meerdere delen (UNION ALL) bestaat dan al deze delen combineren met de pautfunction rechten.
|
||||
sqlA = sqlA.split("UNION ALL");
|
||||
|
||||
if (typeof pautfunction != "object" || !(pautfunction instanceof Array))
|
||||
// Maak van de String een Array
|
||||
pautfunction = [pautfunction];
|
||||
|
||||
var sqlAB = "";
|
||||
for (var jj = 0; jj < sqlA.length; jj++)
|
||||
{
|
||||
// pautfunction is nu altijd een Array met webfuncties
|
||||
for (var ii = 0; ii < pautfunction.length; ii++)
|
||||
{
|
||||
// Voorwaarde sql_extern t.b.v. setting mld_typeopdr_afmelden_extern alleen toevoegen voor WEB_ORDBO2 rechten.
|
||||
var sql3d = sqlA[jj] + (pautfunction[ii] == "WEB_ORDBO2"? sql_extern : "");
|
||||
// apply 3D authorization to the locations and to the organisations (both ALG and PRS)
|
||||
// if "disc == 0" or disc is not defined then disc should be ""
|
||||
// otherwise de 3d authorization adds a "AND (1=0)" line to the query and you will have never a result
|
||||
sqlB = (ii > 0? sqlB + " UNION " : "") + discx3d (sql3d,
|
||||
"md.ins_discipline_key",
|
||||
"di.alg_regio_key",
|
||||
"l.alg_district_key",
|
||||
"l.alg_locatie_key",
|
||||
"g.alg_gebouw_key",
|
||||
"g.alg_verdieping_key",
|
||||
"g.alg_ruimte_key",
|
||||
"b.prs_bedrijf_key",
|
||||
"b.prs_afdeling_key",
|
||||
pautfunction[ii],
|
||||
(!(mld_key || opdr_key) && disc_key_arr ? disc_key_arr.join(",") : ""),
|
||||
(add_prs_restrict ? 2 : 0)
|
||||
);
|
||||
}
|
||||
sqlAB = sqlAB + (jj > 0? " UNION " : "") + sqlB;
|
||||
}
|
||||
|
||||
if (pautfunction.length > 1)
|
||||
{ // We hebben dan rechten van meerdere autorisatie functies. Daardoor kan door discx3d() " UNION ALL " gebruikt worden om verschillende SELECT aan elkaar te plakken.
|
||||
// In dat geval krijgen we dan dubbele resultataten.
|
||||
// We moeten daarom deze UNION ALL's vervangen door UNION's.
|
||||
sqlAB = sqlAB.replace(/UNION ALL/g, "UNION");
|
||||
}
|
||||
|
||||
// Voeg laatste tracking datum toe
|
||||
sql = "SELECT * FROM (" + sqlAB + ") us"
|
||||
+ whereUs
|
||||
+ " ORDER BY" // ins_discipline_omschrijving is hier al vertaald
|
||||
+ (excel? " UPPER(ins_discipline_omschrijving), mld_typeopdr_key," : "") // Flexkenmerken verschillen per opdrachttype (mld_typeopdr_key)
|
||||
+ " mld_opdr_einddatum, mld_opdr_bedrijfopdr_volgnr";
|
||||
var sql = mld.getopdroverzicht_sql(pautfunction, params);
|
||||
|
||||
var status_oms = new Array();
|
||||
var status_cnt = new Array();
|
||||
|
||||
497
APPL/MLD/opdr_plan.inc
Normal file
497
APPL/MLD/opdr_plan.inc
Normal file
@@ -0,0 +1,497 @@
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: opdr_plan.inc
|
||||
Description: Definieert de serverside functie opdr_plan() die een planbord van opdrachten toont die
|
||||
voldoen aan de gegeven parameters/criteria.
|
||||
Zoals altijd wordt hierbij wel autorisatie betrokken,
|
||||
maar verder geen contextafhankelijke zaken; dat behoort de aanroeper te doen.
|
||||
Parameters:
|
||||
Context: vanuit opdr_search_list.asp
|
||||
Note:
|
||||
*/ %>
|
||||
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../Shared/discx3d.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="../mld/mld.inc" -->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({plugins: ["jQuery"],
|
||||
js: ["./opdr_plan.js",
|
||||
"./mld.js",
|
||||
"jquery-ui.js"] //, // Voor slepen
|
||||
//css: ["../mld/opdr.css"]
|
||||
});
|
||||
|
||||
// Om planbord kaarten in een kaartenbak te groeperen.
|
||||
var __cardboxactive__ = false;
|
||||
function CARDBOX_START(id, params)
|
||||
{
|
||||
params = params || {};
|
||||
if (__cardboxactive__) ERROR_NESTED_BLOCK_START_DETECTED;
|
||||
__cardboxactive__ = true;
|
||||
%><!-- CARDBOX_START <%=id%> -->
|
||||
<div id="<%=id%>" class="fcltcardbox <%=params.cardclass? params.cardclass : ""%>" <%=params.hidden? ' style="display:none"' : ''%>><%
|
||||
}
|
||||
function CARDBOX_END()
|
||||
{
|
||||
if (!__cardboxactive__) ERROR_BLOCK_END_WITHOUT_BLOCKSTART;
|
||||
__cardboxactive__ = false;
|
||||
%></div>
|
||||
<!-- CARDBOX_END --><%
|
||||
}
|
||||
|
||||
// Om velden in een planbord kaart te groeperen.
|
||||
var __cardactive__ = false;
|
||||
function CARD_START(id, params)
|
||||
{
|
||||
params = params || {};
|
||||
if (__cardactive__) ERROR_NESTED_BLOCK_START_DETECTED;
|
||||
__cardactive__ = true;
|
||||
%><!-- CARD_START <%=id%> -->
|
||||
<div id="<%=id%>" class="fcltcard <%=params.cardclass? params.cardclass : ""%>" <%=params.hidden? ' style="display:none"' : ''%>>
|
||||
<table class="fcltcardtab" width="100%"><%
|
||||
}
|
||||
function CARD_END()
|
||||
{
|
||||
if (!__cardactive__) ERROR_BLOCK_END_WITHOUT_BLOCKSTART;
|
||||
__cardactive__ = false;
|
||||
%> </table>
|
||||
</div>
|
||||
<!-- CARD_END --><%
|
||||
}
|
||||
|
||||
function opdr_plan(params)
|
||||
{
|
||||
__Log("opdr_plan");
|
||||
var urole = params.urole;
|
||||
var fronto = (urole == "fo");
|
||||
var backo = (urole == "bo");
|
||||
var frontend = (urole == "fe");
|
||||
var bgtmode = (urole == "bgt");
|
||||
|
||||
// Voor resulttable de globalen zetten; zou ng anders moeten.
|
||||
var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
|
||||
var print = (outputmode == 1 || outputmode == 5);
|
||||
var excel = (outputmode == 2 || outputmode == 6);
|
||||
var showall = params.showall;
|
||||
|
||||
var mld_key = params.mld_key;
|
||||
//var contract = params.contract
|
||||
//var cnt_key = params.cnt_key;
|
||||
//// Er kunen twee contract keys meegegeven worden. Een extra contract key die bij contract hoort.
|
||||
//// Als cnt_key en contract_key verschillen kun het nooit een resultaat opleveren
|
||||
//if (contract > 0)
|
||||
// cnt_key = cnt_key + (cnt_key != ""? ", " : "") + contract;
|
||||
|
||||
//var bes = params.bes;
|
||||
//var tiny = params.tiny;
|
||||
//var inline = params.inline;
|
||||
//var justClose = params.justClose;
|
||||
// close_only is vervangen door (pautfunction == "WEB_ORDBO2"): Als je die rechten hebt mag je ook afmelden
|
||||
//var mldopdrstrej = params.mldopdrstrej;
|
||||
//var mldopdrstafm = params.mldopdrstafm;
|
||||
//var mldopdrstver = params.mldopdrstver;
|
||||
|
||||
var mldstpen = params.mldstpen;
|
||||
var mldstnew = params.mldstnew;
|
||||
var mldsting = params.mldsting;
|
||||
var mldstacc = params.mldstacc;
|
||||
var mldstuit = params.mldstuit;
|
||||
var mldstrej = params.mldstrej;
|
||||
var mldstafm = params.mldstafm;
|
||||
var mldstver = params.mldstver;
|
||||
var mldnieto = params.mldnieto;
|
||||
var mldopdrstrej = params.mldopdrstrej;
|
||||
var mldopdrstnak = params.mldopdrstnak;
|
||||
var mldopdrsttfi = params.mldopdrsttfi;
|
||||
var mldopdrstfia = params.mldopdrstfia;
|
||||
var mldopdrstuit = params.mldopdrstuit;
|
||||
var mldopdrstafm = params.mldopdrstafm;
|
||||
var mldopdrstver = params.mldopdrstver;
|
||||
var mldopdrstacp = params.mldopdrstacp;
|
||||
var mldopdrstafr = params.mldopdrstafr;
|
||||
var mldopdrstgoe = params.mldopdrstgoe;
|
||||
|
||||
var showstatus = "";
|
||||
if (mldstpen) showstatus = (showstatus == ""? "" : showstatus + ",") + "0";
|
||||
if (mldstrej) showstatus = (showstatus == ""? "" : showstatus + ",") + "1";
|
||||
if (mldstnew) showstatus = (showstatus == ""? "" : showstatus + ",") + "2";
|
||||
if (mldsting) showstatus = (showstatus == ""? "" : showstatus + ",") + "3";
|
||||
if (mldstacc) showstatus = (showstatus == ""? "" : showstatus + ",") + "4";
|
||||
if (mldstafm) showstatus = (showstatus == ""? "" : showstatus + ",") + "5";
|
||||
if (mldstver) showstatus = (showstatus == ""? "" : showstatus + ",") + "6";
|
||||
if (mldstuit) showstatus = (showstatus == ""? "" : showstatus + ",") + "7";
|
||||
if (mldnieto) showstatus = (showstatus == ""? "" : showstatus + ",") + "99";
|
||||
var from_mld = (showstatus != "");
|
||||
params.showstatus = showstatus;
|
||||
params.from_mld = from_mld;
|
||||
|
||||
var showopdrstatus = "";
|
||||
if (mldopdrstrej) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "1";
|
||||
if (mldopdrstnak) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "2";
|
||||
if (mldopdrsttfi) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "3"; // Verderop wordt wel bepaald of 'b2' status 3 mag zien
|
||||
if (mldopdrstfia) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "4";
|
||||
if (mldopdrstuit) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "5";
|
||||
if (mldopdrstafm) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "6";
|
||||
if (mldopdrstver) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "7";
|
||||
if (mldopdrstacp) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "8";
|
||||
if (mldopdrstafr) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "9";
|
||||
if (mldopdrstgoe) showopdrstatus = (showopdrstatus == ""? "" : showopdrstatus + ",") + "10"; // Verderop wordt wel bepaald of 'b2' status 10 mag zien
|
||||
params.showopdrstatus = showopdrstatus;
|
||||
params.mldopdrstrej = mldopdrstrej;
|
||||
params.mldopdrstafm = mldopdrstafm;
|
||||
params.mldopdrstver = mldopdrstver;
|
||||
|
||||
//var groepering_key = params.groepering_key; // Voor maninfo. 2 en 16 ondersteund
|
||||
|
||||
params.uitvoerder = false;
|
||||
if (frontend)
|
||||
{
|
||||
// Dan zijn het alleen opdrachten van *mijn* meldingen waarop ik MLDUSE-read rechten heb
|
||||
// en van het type waarbij mld_typeopdr_zichtbaarfe = 1 als ik een mld_key heb
|
||||
// Omdat uitsluitend vanuit subframe van mld_melding wordt aangeroepen in deze mode veronderstellen we dat geregeld.
|
||||
// OF het zijn de opdrachten waarvan ik uitvoerende ben (MLDORD)
|
||||
if (params.mld_key)
|
||||
var pautfunction = "WEB_MLDUSE";
|
||||
else
|
||||
{
|
||||
var pautfunction = "WEB_MLDORD";
|
||||
params.uitvoerder = true;
|
||||
}
|
||||
}
|
||||
else if (from_mld)
|
||||
var pautfunction = ["WEB_ORDBO2","WEB_ORDBOF"];
|
||||
else if (urole == 'b2')
|
||||
var pautfunction = "WEB_ORDBO2";
|
||||
else if (urole == 'bgt')
|
||||
var pautfunction = "WEB_BGTORD";
|
||||
else
|
||||
var pautfunction = "WEB_ORDBOF";
|
||||
|
||||
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
|
||||
var authparams = user.checkAutorisation(pautfunction);
|
||||
|
||||
if (mld_key)
|
||||
{ // Bestaat de gezochte melding?
|
||||
var sql = "SELECT '1' FROM mld_melding WHERE mld_melding_key = " + mld_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{ // Melding bestaat. Dan kan de info opgevraagd worden.
|
||||
var mld_melding = mld.mld_melding_info(mld_key);
|
||||
lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
|
||||
// Moet hier eigenlijk niet ook gecontroleerd worden of ik de opdrachten van deze melding wel mag zien?
|
||||
// var this_mld = mld.func_enabled_melding(mld_key, {verynew: verynew}); // Wat heb ik zoal aan rechten op deze specifieke melding
|
||||
// var hasFOBOread = this_mld.canFOread || this_mld.canBOread;
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate({ outputmode: params.outputmode }); %>
|
||||
<style>
|
||||
.fcltcardbox {
|
||||
position: relative;
|
||||
width: 200px;
|
||||
/*height: 300px;*/
|
||||
padding: 0px;
|
||||
background: #EFEFEF;
|
||||
-webkit-border-radius: 10px;
|
||||
-moz-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
border: #EFEFEF solid 10px;
|
||||
float: left;
|
||||
margin-left: 5px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.fcltcardboxhead {
|
||||
background-color: #EFEFEF;
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
height: 25px;
|
||||
}
|
||||
.fcltcard {
|
||||
position: relative;
|
||||
width: 200px;
|
||||
/*height: 300px;*/
|
||||
background-color: #FFFFFF;
|
||||
background: #FFFFFF;
|
||||
border: #FFFFFF solid 0px;
|
||||
float: left;
|
||||
color: #000000;
|
||||
/*margin-left: 5px;*/
|
||||
margin-top: 5px;
|
||||
}
|
||||
html {
|
||||
background-color: #D9F4FF;
|
||||
}
|
||||
.cardbeheerder {
|
||||
background-color: #559CB9;
|
||||
}
|
||||
.cardmoving {
|
||||
background-color: #DAA520;
|
||||
}
|
||||
.cardmoved {
|
||||
background-color: #AEE9FF;
|
||||
}
|
||||
.ui-sortable-helper {
|
||||
background-color: #FFDC23;
|
||||
}
|
||||
div.selected {
|
||||
background-color: #DAA520;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
function sort(pkey)
|
||||
{
|
||||
var sortableList = $("#cardboxbeh" + pkey);
|
||||
var listitems = $("div", sortableList);
|
||||
|
||||
listitems.sort(function (a, b)
|
||||
{
|
||||
return ($(a).text().toUpperCase() > $(b).text().toUpperCase()) ? 1 : -1;
|
||||
});
|
||||
sortableList.append(listitems);
|
||||
}
|
||||
|
||||
|
||||
//$(document).ready(function()
|
||||
// {
|
||||
//var selected;
|
||||
//var selectedCurrent;
|
||||
//var received = false;
|
||||
//var selectedArray = [];
|
||||
//$("div.cardbox").on('mousedown',
|
||||
// 'div.cardbeheerder',
|
||||
// function (e)
|
||||
// {
|
||||
// alert("mousdown");
|
||||
// $('.ui-sortable div.cardbeheerder').not($(this).parent().find('div.cardbeheerder')).removeClass('selected');
|
||||
// if (selectedCurrent != undefined && selectedCurrent.text() != $(this).text() && !selectedCurrent.next('div.cardbeheerder').hasClass('pholder') &&
|
||||
// selectedCurrent.hasClass('selected') && ($(this).hasClass('selected') || (e.ctrlKey || e.metaKey)))
|
||||
// {
|
||||
// selectedCurrent.after(selectedCurrent.clone().removeClass('selected').addClass('pholder').hide());
|
||||
// }
|
||||
// if (e.ctrlKey || e.metaKey)
|
||||
// {
|
||||
// if($(this).next('div.cardbeheerder').hasClass('pholder'))
|
||||
// $(this).next('div.cardbeheerder').remove();
|
||||
// else
|
||||
// $(this).after($(this).clone().addClass('pholder').hide());
|
||||
// $(this).toggleClass("selected");
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// //selectedArray = [];
|
||||
// //selectedArray.push($(this));
|
||||
// }
|
||||
// selectedCurrent = $(this);
|
||||
// selected = $(this).clone().removeClass('selected');
|
||||
// if(selectedCurrent.next('div.cardbeheerder').hasClass('pholder'))
|
||||
// selectedCurrent.next('div.cardbeheerder').remove();
|
||||
// });
|
||||
//
|
||||
//$("div.cardbox").on('mouseup',
|
||||
// 'div.cardbeheerder',
|
||||
// function (e)
|
||||
// {
|
||||
// alert("mouseup");
|
||||
// if (e.ctrlKey || e.metaKey)
|
||||
// {
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// $('.selected').not($(this)).each(function()
|
||||
// {
|
||||
// if($(this).next('div.cardbeheerder').hasClass('pholder'))
|
||||
// $(this).next('div.cardbeheerder').remove();
|
||||
// });
|
||||
// $(this).addClass("selected").siblings().removeClass('selected');
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
|
||||
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body id="planbody">
|
||||
<%
|
||||
var buttons = [];
|
||||
buttons.push({ icon: "legenda.png", title: L("lcl_res_legenda"), action: 'openLegenda()' });
|
||||
buttons.push({ icon: "print.png", title: L("lcl_print_table"), action: 'opdr_print()' });
|
||||
|
||||
IFRAMER_HEADER(L("lcl_opdr_plan_uitv"), buttons);
|
||||
%>
|
||||
<div id="planbodylist">
|
||||
<%
|
||||
var sql = mld.getopdroverzicht_sql(pautfunction, params);
|
||||
oRs = Oracle.Execute(sql);
|
||||
var oldprs_key = -1
|
||||
while (!oRs.eof)
|
||||
{
|
||||
var prs_key = oRs("prs_perslid_key").Value || -1;
|
||||
var opdr_key = oRs("mld_opdr_key").Value;
|
||||
var behandelaar = oRs("behandelaar").Value;
|
||||
|
||||
if (prs_key != oldprs_key)
|
||||
{
|
||||
CARDBOX_START("cardboxbeh" + prs_key, {cardclass: "cardbox cbsortable"});
|
||||
%> <script type="text/javascript">
|
||||
$(function() {
|
||||
$("#cardboxbeh<%=prs_key%>").sortable({
|
||||
items: '.sortable',
|
||||
connectWith: ".cardbox",
|
||||
helper: "clone",
|
||||
opacity: 0.7,
|
||||
cursor: "move",
|
||||
//delay: 150, //Needed to prevent accidental drag when trying to select
|
||||
//revert: 0,
|
||||
//helper: function (e, item)
|
||||
// {
|
||||
// //Basically, if you grab an unhighlighted item to drag, it will deselect (unhighlight) everything else
|
||||
// if (!item.hasClass('selected'))
|
||||
// {
|
||||
// item.addClass('selected').siblings().removeClass('selected');
|
||||
// }
|
||||
//
|
||||
// //////////////////////////////////////////////////////////////////////
|
||||
// //HERE'S HOW TO PASS THE SELECTED ITEMS TO THE `stop()` FUNCTION:
|
||||
//
|
||||
// // Clone the selected items into an array
|
||||
// var elements = item.parent().children('.selected').clone();
|
||||
//
|
||||
// // Add a property to `item` called 'multidrag` that contains the
|
||||
// // selected items, then remove the selected items from the source list
|
||||
// item.data('multidrag', elements).siblings('.selected').remove();
|
||||
//
|
||||
// // Now the selected items exist in memory, attached to the `item`,
|
||||
// // so we can access them later when we get to the `stop()` callback
|
||||
//
|
||||
// //Create the helper
|
||||
// var helper = $('<div/>');
|
||||
// return helper.append(elements);
|
||||
// },
|
||||
start: function (e, ui)
|
||||
{
|
||||
ui.item.addClass("cardmoving");
|
||||
ui.item.show();
|
||||
},
|
||||
stop: function (e, ui)
|
||||
{
|
||||
ui.item.removeClass("cardmoving");
|
||||
sort(<%=prs_key%>);
|
||||
},
|
||||
receive: function (e, ui)
|
||||
{
|
||||
ui.item.addClass("cardmoved");
|
||||
sort(<%=prs_key%>);
|
||||
},
|
||||
create: function (event, ui)
|
||||
{
|
||||
sort(<%=prs_key%>);
|
||||
}
|
||||
//start: function (e, ui)
|
||||
// {
|
||||
// ui.item.after(selected);
|
||||
// $('.pholder').show();
|
||||
// },
|
||||
//stop: function (e, ui)
|
||||
// {
|
||||
// //Now we access those items that we stored in `item`s data!
|
||||
// if (!received)
|
||||
// {
|
||||
// selected.remove();
|
||||
// $('.pholder').remove();
|
||||
// }
|
||||
// els
|
||||
// {
|
||||
// received = false;
|
||||
// $('.pholder').removeClass('pholder');
|
||||
// }
|
||||
// var elements = ui.item.data('multidrag');
|
||||
//
|
||||
// //`elements` now contains the originally selected items from the source list (the dragged items)!!
|
||||
//
|
||||
// //Finally I insert the selected items after the `item`, then remove the `item`, since
|
||||
// // item is a duplicate of one of the selected items.
|
||||
// ui.item.after(elements).remove();
|
||||
// $('.selected').removeClass('selected');
|
||||
// $('.ui-sortable').not(ui.sender)
|
||||
// .each(function()
|
||||
// {
|
||||
// $(this).find('div.cardbeheerder')
|
||||
// .each(function()
|
||||
// {
|
||||
// if($(this).parent().find('div.cardbeheerder:contains("'+$(this).text()+'")').length > 1)
|
||||
// $(this).remove();
|
||||
// });
|
||||
// });
|
||||
// },
|
||||
//receive: function (e, ui)
|
||||
// {
|
||||
// received = true;
|
||||
// },
|
||||
});
|
||||
//$("#cardboxbeh<%=prs_key%>").sortable("disable");
|
||||
});
|
||||
</script>
|
||||
|
||||
<% CARD_START("cardbeh" + prs_key, {cardclass: "cardbeheerder"});
|
||||
if (prs_key > 0)
|
||||
{
|
||||
var thisUser = new Perslid(prs_key); // geeft ook handige informatie
|
||||
%> <tr><td><span class="readonly fldnaam"><%=safe.html(behandelaar)%></span></td></tr>
|
||||
<tr><td><span class="readonly fldnaam"><%=safe.html(thisUser.afdeling().naam())%></span></td></tr>
|
||||
<% }
|
||||
else
|
||||
{
|
||||
%> <tr><td><span class="readonly fldnaam"><%="LCL Niet toegekend"%></span></td></tr>
|
||||
<% }
|
||||
CARD_END();
|
||||
}
|
||||
|
||||
var uitvoerende = oRs("naam").Value;
|
||||
var opdracht = oRs("ins_srtdiscipline_prefix").Value + oRs("mld_opdr_key").Value + "/" + oRs("mld_opdr_bedrijfopdr_volgnr").Value;
|
||||
CARD_START("opdrcard" + opdr_key, {cardclass: "sortable"});
|
||||
%> <tr><td><span class="readonly fldnaam"><%=safe.html(opdracht)%></span></td></tr>
|
||||
<tr><td><span class="readonly fldnaam"><%=safe.html(uitvoerende)%></span></td></tr>
|
||||
<% CARD_END();
|
||||
|
||||
//Response.write("<tr><td class='profile'><img id='photo' class='profile' src='" + thisUser.photoinfo().photopaththumb + "'></td></tr>");
|
||||
oldprs_key = prs_key;
|
||||
oRs.MoveNext();
|
||||
if (oRs.eof || (oRs("prs_perslid_key").Value || -1) != oldprs_key)
|
||||
CARDBOX_END();
|
||||
}
|
||||
|
||||
%>
|
||||
|
||||
</div>
|
||||
<!-- LEGENDA -->
|
||||
<script type="text/javascript">
|
||||
function openLegenda()
|
||||
{
|
||||
params = { width: 170,
|
||||
resizable: false,
|
||||
position: {my: "right top", at: "right top+30"},
|
||||
title: "<%=L("lcl_res_legenda")%>"
|
||||
}
|
||||
$('div#legenda').dialog(params).dialog('open');
|
||||
}
|
||||
</script>
|
||||
<div id="legenda" style="display:none; line-height: 30px;">
|
||||
<table id="planbordlegenda">
|
||||
<tr><td class="res_definitief"><%= L("lcl_def") %></td></tr>
|
||||
<tr><td class="res_optie"><%= L("lcl_optie") %></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
@@ -142,27 +142,30 @@ oRs.close();
|
||||
<% FCLTHeader.Generate(); %>
|
||||
|
||||
<script type="text/javascript">
|
||||
function doSubmit()
|
||||
function doSubmit(mode) // 0=lijst, 1=planbord
|
||||
{
|
||||
<% if (xd.enabled()) { %>
|
||||
if ($("#xd").is(":checked"))
|
||||
<% if (xd.enabled())
|
||||
{ %>
|
||||
if ($("#xd").is(":checked"))
|
||||
{
|
||||
$("form[name=u2]").attr("action", "opdr_search_list_xd.asp");
|
||||
} else {
|
||||
$("form[name=u2]").attr("action", "opdr_search_list.asp");
|
||||
}
|
||||
<% } %>
|
||||
$("#planb").val(mode);
|
||||
doSubmitWithKenmerken();
|
||||
}
|
||||
<% if (xd.enabled())
|
||||
{ %>
|
||||
function xdclicked()
|
||||
{
|
||||
$("form[name=u2]").attr("action", "opdr_search_list_xd.asp");
|
||||
} else {
|
||||
$("form[name=u2]").attr("action", "opdr_search_list.asp");
|
||||
var doxd = document.getElementById("xd").checked;
|
||||
$(".noxd").toggle(!doxd);
|
||||
$(".onlyxd").toggle(doxd);
|
||||
iface_toggleSecondarySearchblock(false); // altijd uitschakelen
|
||||
}
|
||||
<% } %>
|
||||
doSubmitWithKenmerken();
|
||||
}
|
||||
<% if (xd.enabled()) { %>
|
||||
function xdclicked()
|
||||
{
|
||||
var doxd = document.getElementById("xd").checked;
|
||||
$(".noxd").toggle(!doxd);
|
||||
$(".onlyxd").toggle(doxd);
|
||||
iface_toggleSecondarySearchblock(false); // altijd uitschakelen
|
||||
}
|
||||
<% } %>
|
||||
<% } %>
|
||||
function myModal()
|
||||
{
|
||||
if ($('#opdrtype').val() == -1)
|
||||
@@ -181,7 +184,7 @@ oRs.close();
|
||||
<%
|
||||
if (autosearch)
|
||||
{
|
||||
%> $(document).ready(doSubmit);
|
||||
%> $(document).ready(doSubmit(0));
|
||||
<% } %>
|
||||
</script>
|
||||
</head>
|
||||
@@ -196,6 +199,7 @@ oRs.close();
|
||||
<input type="hidden" name="user_key" value="<%=user_key%>">
|
||||
<input type="hidden" name="bes" value="<%=bes? 1 : 0%>">
|
||||
<input type="hidden" name="offerte" id="offerte" value="<%=offerte%>">
|
||||
<input type="hidden" name="planb" id="planb" value="0">
|
||||
<table><!-- x rijen, 2 kolommen: label + veld -->
|
||||
<%
|
||||
if (xd.enabled())
|
||||
@@ -656,10 +660,13 @@ oRs.close();
|
||||
</td>
|
||||
</tr>
|
||||
<% BLOCK_END();
|
||||
var buttons = [{ title: L("lcl_search"), action: "doSubmit();"}];
|
||||
if (!bgtmode) {
|
||||
buttons.push ( {title: L("lcl_shared_more"), action:"iface_toggleSecondarySearchblock()", id : "btnMoreLess", xclass: "noxd" } );
|
||||
buttons.push({ title: L("lcl_obj_advanced"), action: "myModal()", xclass: "noxd"});
|
||||
var buttons = [{ title: L("lcl_search"), action: "doSubmit(0);"}];
|
||||
if (!xd.enabled())
|
||||
buttons.push ( { title: L("lcl_planboard"), action: "doSubmit(1);"} );
|
||||
if (!bgtmode)
|
||||
{
|
||||
buttons.push ( {title: L("lcl_shared_more"), action:"iface_toggleSecondarySearchblock()", id : "btnMoreLess", xclass: "noxd" } );
|
||||
buttons.push({ title: L("lcl_obj_advanced"), action: "myModal()", xclass: "noxd"});
|
||||
}
|
||||
CreateButtons(buttons, { entersubmit: true });
|
||||
%>
|
||||
@@ -671,7 +678,7 @@ oRs.close();
|
||||
src="../Shared/empty.asp"
|
||||
name="workFrame" id="workFrame"
|
||||
onload="FcltMgr.iframeLoaded(this)"
|
||||
frameborder="0" scrolling="no">
|
||||
frameborder="0" scrolling="yes">
|
||||
</iframe>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="opdr_list.inc" -->
|
||||
<!-- #include file="opdr_plan.inc" -->
|
||||
|
||||
<%
|
||||
// Zie opdr_list.inc voor uitleg
|
||||
@@ -56,7 +57,7 @@ var behandelgrp_key = getQParamInt("behandelgrp_key", -1); // Behandelgroep
|
||||
var offerte = getQParamInt("offerte", -1); // Opdrachttype is een offerteaanvraag. Kan -1:don't care, 0:niet, 1:wel zijn.
|
||||
var searchtekst = getQParam("searchtekst", ""); // Zoektekst
|
||||
var verantw_key = getQParamInt("verantw", -1); // Gebouw verantwoordelijke
|
||||
|
||||
var planb = getQParamInt("planb", 1) == 1; // Op planbord button geklikt.
|
||||
|
||||
if (opdrtype > 0)
|
||||
lcl.set_dialect(opdrtype, "MLD_TYPEOPDR_KEY");
|
||||
@@ -92,42 +93,46 @@ var status10 = st_opdrNew;
|
||||
var date_to = getQParamDate("date_to", null);
|
||||
var date_from = getQParamDate("date_from", null);
|
||||
|
||||
opdr_list ( { urole : urole,
|
||||
opdr_key: opdr_key,
|
||||
outputmode: outputmode,
|
||||
showall: showall,
|
||||
caller_key: (sName_key != -1 ? sName_key : null),
|
||||
reg_key: (regiokey != -1 ? regiokey : null),
|
||||
dist_key: (districtkey != -1 ? districtkey : null),
|
||||
adr_key: (adr_key != -1 ? adr_key : null),
|
||||
loc_key: (locatiekey != -1 ? locatiekey : null),
|
||||
bld_key: (gebouwkey != -1 ? gebouwkey : null),
|
||||
verantw_key: (verantw_key != -1 ? verantw_key : null),
|
||||
behandel_key: (behandel_key != -1 ? behandel_key : null),
|
||||
contract: (contract != -1 ? contract : null),
|
||||
cnt_key: (cntnr != -1 ? cntnr : null),
|
||||
searchtekst: (searchtekst != "" ? searchtekst : null),
|
||||
handler_key: (handler != -1 ? handler : null),
|
||||
dateto: date_to,
|
||||
datefrom: date_from,
|
||||
opdrtype_key: (opdrtype != -1 ? opdrtype : null),
|
||||
srtdisc_key : (srtdisc_key != -1 ? srtdisc_key : null),
|
||||
disc_key_arr : (disc_key_str.length > 0 && disc_key_str.join(",").indexOf("-1") == -1? disc_key_str : null),
|
||||
stdm_key_arr : (stdm_key_str.length > 0 && stdm_key_str.join(",").indexOf("-1") == -1? stdm_key_str : null),
|
||||
meldinggrp_key: (meldinggrp_key != -1 ? meldinggrp_key : null),
|
||||
behandelgrp_key: (behandelgrp_key != -1 ? behandelgrp_key : null),
|
||||
bes: bes,
|
||||
offerte: offerte,
|
||||
mldopdrstrej: status1,
|
||||
mldopdrstnak: status2,
|
||||
mldopdrsttfi: status3,
|
||||
mldopdrstfia: status4,
|
||||
mldopdrstuit: status5,
|
||||
mldopdrstafm: status6,
|
||||
mldopdrstver: status7,
|
||||
mldopdrstacp: status8,
|
||||
mldopdrstafr: status9,
|
||||
mldopdrstgoe: status10
|
||||
}
|
||||
);
|
||||
var params = { urole : urole,
|
||||
opdr_key: opdr_key,
|
||||
outputmode: outputmode,
|
||||
showall: showall,
|
||||
caller_key: (sName_key != -1 ? sName_key : null),
|
||||
reg_key: (regiokey != -1 ? regiokey : null),
|
||||
dist_key: (districtkey != -1 ? districtkey : null),
|
||||
adr_key: (adr_key != -1 ? adr_key : null),
|
||||
loc_key: (locatiekey != -1 ? locatiekey : null),
|
||||
bld_key: (gebouwkey != -1 ? gebouwkey : null),
|
||||
verantw_key: (verantw_key != -1 ? verantw_key : null),
|
||||
behandel_key: (behandel_key != -1 ? behandel_key : null),
|
||||
contract: (contract != -1 ? contract : null),
|
||||
cnt_key: (cntnr != -1 ? cntnr : null),
|
||||
searchtekst: (searchtekst != "" ? searchtekst : null),
|
||||
handler_key: (handler != -1 ? handler : null),
|
||||
dateto: date_to,
|
||||
datefrom: date_from,
|
||||
opdrtype_key: (opdrtype != -1 ? opdrtype : null),
|
||||
srtdisc_key : (srtdisc_key != -1 ? srtdisc_key : null),
|
||||
disc_key_arr : (disc_key_str.length > 0 && disc_key_str.join(",").indexOf("-1") == -1? disc_key_str : null),
|
||||
stdm_key_arr : (stdm_key_str.length > 0 && stdm_key_str.join(",").indexOf("-1") == -1? stdm_key_str : null),
|
||||
meldinggrp_key: (meldinggrp_key != -1 ? meldinggrp_key : null),
|
||||
behandelgrp_key: (behandelgrp_key != -1 ? behandelgrp_key : null),
|
||||
bes: bes,
|
||||
offerte: offerte,
|
||||
planb: planb,
|
||||
mldopdrstrej: status1,
|
||||
mldopdrstnak: status2,
|
||||
mldopdrsttfi: status3,
|
||||
mldopdrstfia: status4,
|
||||
mldopdrstuit: status5,
|
||||
mldopdrstafm: status6,
|
||||
mldopdrstver: status7,
|
||||
mldopdrstacp: status8,
|
||||
mldopdrstafr: status9,
|
||||
mldopdrstgoe: status10
|
||||
};
|
||||
if (planb)
|
||||
opdr_plan (params);
|
||||
else
|
||||
opdr_list (params);
|
||||
%>
|
||||
Reference in New Issue
Block a user