AAIT#33554: Object aan melding kunnen koppelen via opdracht.
svn path=/Website/trunk/; revision=27487
This commit is contained in:
@@ -136,6 +136,61 @@ mld = {setmeldingstatus:
|
||||
shared.trackaction("MLDAFR", mld_key, ptxt);
|
||||
},
|
||||
|
||||
gettrackobjects:
|
||||
function (mld_key, obj_arr)
|
||||
{ // Objecten tracken die worden verwijderd.
|
||||
sql = "SELECT '' || d.ins_deel_omschrijving || ' (' || s.ins_srtdeel_omschrijving || ')' deel"
|
||||
+ " FROM mld_melding_object mo"
|
||||
+ " , ins_deel d"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " WHERE mo.ins_deel_key = d.ins_deel_key"
|
||||
+ " AND d.ins_srtdeel_key = s.ins_srtdeel_key"
|
||||
+ " AND mo.mld_melding_key = " + mld_key
|
||||
+ " AND d.ins_deel_key NOT IN (" + obj_arr.join(",") + ")";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var first = true;
|
||||
var deleted_objects = "";
|
||||
while(!oRs.eof)
|
||||
{
|
||||
if (first)
|
||||
{
|
||||
deleted_objects = L("lcl_mld_del_obj") + ": ";
|
||||
first = false;
|
||||
}
|
||||
else
|
||||
deleted_objects += ",\n";
|
||||
deleted_objects += oRs("deel").Value;
|
||||
|
||||
oRs.MoveNext();
|
||||
}
|
||||
|
||||
// Objecten tracken die worden toegevoegd.
|
||||
sql = "SELECT '' || d.ins_deel_omschrijving || ' (' || s.ins_srtdeel_omschrijving || ')' deel"
|
||||
+ " FROM ins_deel d"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " WHERE d.ins_srtdeel_key = s.ins_srtdeel_key"
|
||||
+ " AND d.ins_deel_key IN (" + obj_arr.join(",") + ")"
|
||||
+ " AND d.ins_deel_key NOT IN (SELECT mo.ins_deel_key FROM mld_melding_object mo WHERE mo.mld_melding_key = " + mld_key + ")";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
first = true;
|
||||
var added_objects = "";
|
||||
while(!oRs.eof)
|
||||
{
|
||||
if (first)
|
||||
{
|
||||
added_objects = L("lcl_mld_add_obj") + ": ";
|
||||
first = false;
|
||||
}
|
||||
else
|
||||
added_objects += ",\n";
|
||||
added_objects += oRs("deel").Value;
|
||||
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
return (deleted_objects != ""? deleted_objects + "\n" : "") + added_objects;
|
||||
},
|
||||
|
||||
notifyopdrachtgoedkeuren:
|
||||
function (opdr_key)
|
||||
{ // Alle goedkeurders een notificatie (ORD2GO) sturen voor de volgend goedkeuring.
|
||||
@@ -1402,7 +1457,7 @@ mld = {setmeldingstatus:
|
||||
+ " , mld_melding_datum"
|
||||
+ " , s.mld_ins_discipline_key"
|
||||
+ " , m.mld_stdmelding_key"
|
||||
+ " , mld_alg_onroerendgoed_keys"
|
||||
+ " , m.mld_alg_onroerendgoed_keys"
|
||||
+ " , m.mld_melding_t_uitvoertijd.tijdsduur uitvoertijd_tijdsduur"
|
||||
+ " , m.mld_melding_t_uitvoertijd.eenheid uitvoertijd_eenheid"
|
||||
+ " , m.mld_melding_einddatum"
|
||||
@@ -1416,7 +1471,6 @@ mld = {setmeldingstatus:
|
||||
+ " , m.mld_melding_opmerking"
|
||||
+ " , m.prs_perslid_key"
|
||||
+ " , m.prs_perslid_key_voor"
|
||||
+ " , m.mld_alg_onroerendgoed_keys"
|
||||
+ " , m.mld_melding_status"
|
||||
+ " , m.mld_melding_t_respijt.tijdsduur respijt_tijdsduur"
|
||||
+ " , m.mld_melding_t_respijt.eenheid respijt_eenheid"
|
||||
|
||||
@@ -496,28 +496,11 @@ if (savemode)
|
||||
mld.setmeldingstatus(mld_key, 5);
|
||||
}
|
||||
|
||||
if (getFParamInt("has_r_objs",0)==1) // voorkom dat we wissen vanuit mobile-save die helemaal geen listbox heeft
|
||||
{
|
||||
// Objecten
|
||||
sql = " DELETE mld_melding_object"
|
||||
+ " WHERE mld_melding_key = " + mld_key
|
||||
+ (obj_arr.length != 0
|
||||
? " AND ins_deel_key NOT IN (" + obj_arr.join(",") + ")"
|
||||
: "")
|
||||
Oracle.Execute(sql);
|
||||
if (obj_arr.length != 0)
|
||||
{
|
||||
sql = "INSERT INTO mld_melding_object"
|
||||
+ " (mld_melding_key, ins_deel_key)"
|
||||
+ " SELECT " + mld_key
|
||||
+ ", ins_deel_key"
|
||||
+ " FROM ins_v_aanwezigdeel"
|
||||
+ " WHERE ins_deel_key IN (" + obj_arr.join(",") + ")"
|
||||
+ " AND (ins_deel_vervaldatum IS NULL OR ins_deel_vervaldatum > TRUNC(SYSDATE))"
|
||||
+ " AND ins_deel_key NOT IN"
|
||||
+ " (SELECT ins_deel_key FROM mld_v_aanwezigmelding_object WHERE mld_melding_key = " + mld_key + ")";
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
if (getFParamInt("has_r_objs", 0) == 1) // voorkom dat we wissen vanuit mobile-save die helemaal geen listbox heeft
|
||||
{ // Objecten tracken die worden verwijderd of toegevoegd.
|
||||
var objtrack = mld.gettrackobjects(mld_key, obj_arr);
|
||||
if (!isNew)
|
||||
mldUpd.trackarray.push(objtrack);
|
||||
}
|
||||
|
||||
// Eventuele (gewijzigde) objecten zijn nu ook opgeslagen.
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
<!-- #include file="../Shared/uitvoerendeselector.inc" -->
|
||||
<!-- #include file="../Shared/kostenplaatsselector.inc" -->
|
||||
<!-- #include file="../Shared/kostensoortselector.inc" -->
|
||||
<!-- #include file="../Shared/get_objecten_sql.inc" -->
|
||||
<!-- #include file="mld_flexkenmerk.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="mld.inc" -->
|
||||
@@ -146,83 +147,42 @@ if (autfunction == "WEB_ORDBOF" && !(authparams.PRSwritelevel < 9 || authparams.
|
||||
// JGL Het omgekeerde, write op ORDBOF maar read ORDBO2 kwam bij ATCH voor: FSN#17306
|
||||
|
||||
// Haal gerelateerde melding gegevens op
|
||||
sql = "SELECT COALESCE(mld_alg_locatie_key, -1) alg_locatie_key"
|
||||
+ " , COALESCE(g.alg_gebouw_key, -1) alg_gebouw_key"
|
||||
+ " , COALESCE(g.alg_verdieping_key, -1) alg_verdieping_key"
|
||||
+ " , COALESCE(g.alg_ruimte_key, -1) alg_ruimte_key"
|
||||
+ " , m.mld_melding_omschrijving"
|
||||
+ " , " + lcl.xsqla('s.mld_stdmelding_omschrijving', 's.mld_stdmelding_key')
|
||||
+ " , s.mld_stdmelding_key"
|
||||
+ " , s.mld_typeopdr_key"
|
||||
+ " , s.prs_dienst_key"
|
||||
+ " , s.mld_ins_discipline_key"
|
||||
+ " , md.ins_srtdiscipline_key"
|
||||
+ " , md.ins_discipline_kpnverplicht"
|
||||
+ " , l.alg_locatie_key"
|
||||
+ " , m.prs_kostenplaats_key"
|
||||
+ " , COALESCE(s.prs_kostensoort_key, md.prs_kostensoort_key) prs_kostensoort_key"
|
||||
+ " , m.mld_kosten_klant"
|
||||
+ " , m.mld_melding_ordernr"
|
||||
+ " , m.mld_alg_onroerendgoed_keys"
|
||||
+ " , m.prs_perslid_key"
|
||||
+ " , m.mld_melding_datum"
|
||||
+ " , m.mld_melding_einddatum"
|
||||
var mld_melding = mld.mld_melding_info(mld_key); // Globale variabele met alle mld_melding informatie
|
||||
|
||||
sql = "SELECT s.prs_dienst_key"
|
||||
+ " , CASE"
|
||||
+ " WHEN COALESCE (kp.prs_kostenplaats_eind, SYSDATE + 1) > SYSDATE"
|
||||
+ " THEN 1"
|
||||
+ " ELSE 0"
|
||||
+ " END kpgeldig"
|
||||
+ " , m.mld_melding_t_uitvoertijd.eenheid uitvoertijd_eenheid"
|
||||
+ " , sd.ins_srtdiscipline_prefix"
|
||||
+ " , s.alg_onrgoed_obj_niveau"
|
||||
+ " , m.prs_kostenplaats_key"
|
||||
+ " FROM mld_melding m"
|
||||
+ " , alg_v_allonrgoed_gegevens g"
|
||||
+ " , alg_locatie l"
|
||||
+ " , mld_stdmelding s"
|
||||
+ " , mld_discipline md"
|
||||
+ " , prs_kostenplaats kp"
|
||||
+ " , ins_srtdiscipline sd"
|
||||
+ " WHERE m.mld_melding_key = " + mld_key
|
||||
+ " AND s.mld_ins_discipline_key = md.ins_discipline_key"
|
||||
+ " AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key"
|
||||
+ " AND m.mld_stdmelding_key = s.mld_stdmelding_key"
|
||||
+ " AND m.mld_alg_locatie_key = l.alg_locatie_key(+)"
|
||||
+ " AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)"
|
||||
+ " AND m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys(+)";
|
||||
+ " AND m.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)";
|
||||
oRs = Oracle.Execute(sql);
|
||||
var stdm_prs_dienst_key = oRs("prs_dienst_key").Value || -1; // default volgens stdm
|
||||
var defkp_key = oRs("kpgeldig").Value == 1? (oRs("prs_kostenplaats_key").Value || -1) : -1; // de defaultwaarde komt van de melding en moet nog wel geldig zijn.
|
||||
var alg_onrgoed_obj_niveau = oRs("alg_onrgoed_obj_niveau").Value || "";
|
||||
oRs.close();
|
||||
|
||||
var loc_key = oRs("alg_locatie_key").Value;
|
||||
var bld_key = oRs("alg_gebouw_key").Value;
|
||||
var flr_key = oRs("alg_verdieping_key").Value;
|
||||
var room_key = oRs("alg_ruimte_key").Value;
|
||||
var stdm = oRs("mld_stdmelding_omschrijving").Value;
|
||||
if (opdr_key < 0 && !copy) // Nu default omschrijving van de opdracht vullen met flexkenmerken
|
||||
{
|
||||
mld_opdr.opdr_omschr = oRs("mld_melding_omschrijving").Value? oRs("mld_melding_omschrijving").Value : ""; // initieel melding omschrijving overnemen
|
||||
mld_opdr.opdr_omschr = mld_melding.mld_omschr? mld_melding.mld_omschr : ""; // initieel melding omschrijving overnemen
|
||||
if (S("mld_ord_flexsummary") == 1)
|
||||
mld_opdr.opdr_omschr += mld.getFlexSummary(mld_key);
|
||||
}
|
||||
var kosten_klant = oRs("mld_kosten_klant").Value? 1 : 0;
|
||||
var disckey = oRs("mld_ins_discipline_key").Value;
|
||||
var stdm_prs_dienst_key = oRs("prs_dienst_key").Value || -1; // default volgens stdm
|
||||
var defkp_key = oRs("kpgeldig").Value == 1? (oRs("prs_kostenplaats_key").Value || -1) : -1; // de defaultwaarde komt van de melding en moet nog wel geldig zijn.
|
||||
var def_ordernr = oRs("mld_melding_ordernr").Value; // de defaultwaarde
|
||||
var kpnverplicht = (oRs("ins_discipline_kpnverplicht").Value == 1); // Is kostenplaats verplicht
|
||||
var onrgoed_key = oRs("mld_alg_onroerendgoed_keys").Value;
|
||||
var srtkp_key = oRs("prs_kostensoort_key").Value;
|
||||
var mld_startdatum = new Date(oRs("mld_melding_datum").Value);
|
||||
var mld_einddatum = new Date(oRs("mld_melding_einddatum").Value);
|
||||
var mld_caller_key = oRs("prs_perslid_key").Value;
|
||||
var mld_uitvoertijd_eenheid = oRs("uitvoertijd_eenheid").Value;
|
||||
var prefix = oRs("ins_srtdiscipline_prefix").Value;
|
||||
oRs.close();
|
||||
|
||||
if (opdr_key > 0)
|
||||
{ // Voor bestaande melding is wellicht andere dienst dan default gekozen
|
||||
sql = "SELECT prs_dienst_key"
|
||||
+ " FROM prs_bedrijfdienstlocatie"
|
||||
+ " WHERE prs_bedrijf_key = " + mld_opdr.uitvoerende_key
|
||||
+ " AND (alg_locatie_key = " + loc_key + " OR alg_locatie_key IS NULL)"
|
||||
+ " AND (alg_gebouw_key = " + bld_key + " OR alg_gebouw_key IS NULL)"
|
||||
+ " AND (alg_locatie_key = " + mld_melding.loc_key + " OR alg_locatie_key IS NULL)"
|
||||
+ " AND (alg_gebouw_key = " + mld_melding.bld_key + " OR alg_gebouw_key IS NULL)"
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
stdm_prs_dienst_key = oRs("prs_dienst_key").Value;
|
||||
@@ -241,12 +201,12 @@ if (opdr_key < 0)
|
||||
// Voor nieuwe opdrachten is de default Startdatum *vandaag*,
|
||||
// tenzij de meldingdatum in de toekomst ligt, dan is het die datum
|
||||
mld_opdr.mld_opdr_datumbegin = new Date();
|
||||
if (mld_opdr.mld_opdr_datumbegin.midnight() < mld_startdatum.midnight() || S("mld_enforce_orderdates") == 1)
|
||||
mld_opdr.mld_opdr_datumbegin = mld_startdatum;
|
||||
if (mld_opdr.mld_opdr_datumbegin.midnight() < mld_melding.melddatum.midnight() || S("mld_enforce_orderdates") == 1)
|
||||
mld_opdr.mld_opdr_datumbegin = mld_melding.melddatum;
|
||||
|
||||
// Voor nieuwe opdrachten is de default Einddatum gelijk aan de einddatum van de melding
|
||||
// tenzij die in het verleden ligt, dan is het de opdrachtstartdatum
|
||||
mld_opdr.mld_opdr_einddatum = mld_einddatum;
|
||||
mld_opdr.mld_opdr_einddatum = mld_melding.einddatum;
|
||||
if (S("mld_enforce_orderdates") != 1 && mld_opdr.mld_opdr_einddatum.midnight() < mld_opdr.mld_opdr_datumbegin.midnight())
|
||||
mld_opdr.mld_opdr_einddatum = mld_opdr.mld_opdr_datumbegin;
|
||||
}
|
||||
@@ -262,7 +222,7 @@ if (oRs("work_days").Value > 0)
|
||||
mld_opdr.period = oRs("work_days").Value;
|
||||
oRs.close();
|
||||
|
||||
if (opdr_key < 0) mld_opdr.mld_opdr_ordernr = def_ordernr;
|
||||
if (opdr_key < 0) mld_opdr.mld_opdr_ordernr = mld_melding.mld_ordernr;
|
||||
|
||||
// Bepaal de initi<74>le kostenplaats
|
||||
if (!mld_opdr.kp_key || mld_opdr.kp_key == -1) mld_opdr.kp_key = defkp_key; // initialiseer op de mld_melding-kostenplaats
|
||||
@@ -313,11 +273,11 @@ if (mld_opdr.kp_key == -1)
|
||||
oRs.Close();
|
||||
}
|
||||
var autoGebouwKp = false;
|
||||
if (mld_opdr.kp_key == -1 && kosten_klant == 0 && bld_key > 0)
|
||||
if (mld_opdr.kp_key == -1 && mld_melding.mld_kk == 0 && mld_melding.bld_key > 0)
|
||||
{ // Is er een gebouw kostenplaats die ingevuld kan worden.
|
||||
sql = "SELECT COALESCE(prs_kostenplaats_key, -1) prs_kostenplaats_key"
|
||||
+ " FROM alg_gebouw"
|
||||
+ " WHERE alg_gebouw_key = " + bld_key;
|
||||
+ " WHERE alg_gebouw_key = " + mld_melding.bld_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
mld_opdr.kp_key = oRs("prs_kostenplaats_key").Value;
|
||||
autoGebouwKp = true;
|
||||
@@ -345,13 +305,13 @@ oRs.Close();
|
||||
var frontend = "<%=frontend%>";
|
||||
var opdr_key = <%=opdr_key%>;
|
||||
var mld_key = <%=mld_key%>;
|
||||
var prefix = "<%=prefix%>";
|
||||
var prefix = "<%=mld_melding.prefix%>";
|
||||
var volgnr = "<%=mld_opdr.volgnr%>";
|
||||
var cnt_key = <%=cnt_key%>;
|
||||
var act_key = <%=mld_opdr.act_key%>;
|
||||
var kp_key = <%=mld_opdr.kp_key%>;
|
||||
var defkp_key = <%=defkp_key%>;
|
||||
var kpnverplicht = (<%=kpnverplicht? 1 : 0%> == 1);
|
||||
var kpnverplicht = (<%=mld_melding.kpnverplicht? 1 : 0%> == 1);
|
||||
var opdr_status = <%=mld_opdr.opdr_status%>;
|
||||
var typeopdr_matchtype = <%=mld_opdr.typeopdr_matchtype || -1%>; // voor als readonly
|
||||
var typeopdr_offertelimiet = <%=mld_opdr.typeopdr_offertelimiet%>;
|
||||
@@ -362,21 +322,27 @@ oRs.Close();
|
||||
var copy = (<%=copy? 1 : 0%> == 1);
|
||||
var srtdiscbes = <%=mld_opdr.srtdiscbes? 1 : 0%> == 1;
|
||||
var autlevel = <%=authparams.PRSwritelevel%>;
|
||||
var loc_key = <%=loc_key||-1%>;
|
||||
var onrgoed_key = <%=onrgoed_key||-1%>;
|
||||
var bld_key = <%=bld_key||-1%>;
|
||||
var disckey = <%=disckey%>;
|
||||
var loc_key = <%=mld_melding.loc_key || -1%>;
|
||||
var onrgoed_key = <%=mld_melding.place||-1%>;
|
||||
var bld_key = <%=mld_melding.bld_key||-1%>;
|
||||
var flr_key = <%=mld_melding.flr_key || -1%>;
|
||||
var room_key = <%=mld_melding.room_key || -1%>;
|
||||
var disckey = <%=mld_melding.disc%>;
|
||||
var typeopdr_contract = <%=mld_opdr.typeopdr_contract%>;
|
||||
var canDatesChange = (<%=this_opdr.canDatesChange? 1 : 0%> == 1);
|
||||
var canWriteDatumsMld = (<%=this_mld.canWriteDatums? 1 : 0%> == 1);
|
||||
var mld_startdatum = new Date(<%=mld_startdatum.getTime()%>);
|
||||
var mld_einddatum = new Date(<%=mld_einddatum.getTime()%>);
|
||||
var mld_startdatum = new Date(<%=mld_melding.melddatum.getTime()%>);
|
||||
var mld_einddatum = new Date(<%=mld_melding.einddatum.getTime()%>);
|
||||
var mld_opdr_datumbegin = new Date(<%=mld_opdr.mld_opdr_datumbegin.getTime()%>);
|
||||
var mld_opdr_einddatum = new Date(<%=mld_opdr.mld_opdr_einddatum.getTime()%>);
|
||||
var registratiedatum = new Date(<%=registratiedatum.getTime()%>);
|
||||
var kosten_verplicht_afr = <%=mld_opdr.typeopdr_matchtype != 4 && (mld_opdr.typeopdr_kosten_verplicht & 4 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 4))? 1 : 0%> == 1;
|
||||
var nrOpenOpdr = <%=nrOpenOpdr%>;
|
||||
var opdrachtid = "<%=(mld_opdr.srtdiscprefix||"") + mld_key + "/" + mld_opdr.mld_opdr_bedrijfopdr_volgnr%>";
|
||||
var alg_onrgoed_obj_niveau = "<%=alg_onrgoed_obj_niveau%>";
|
||||
var melder_key = <%=mld_melding.melder_key%>;
|
||||
var perslid_key_voor = <%=mld_melding.perslid_key_voor || -1%>;
|
||||
var stdm = <%=mld_melding.stdm%>;
|
||||
|
||||
jQuery(document).ready(function()
|
||||
{
|
||||
@@ -429,10 +395,10 @@ oRs.Close();
|
||||
label: mld_opdr.srtdiscbes? L("lcl_bes_Supplier") : L("lcl_ord_company_uit"),
|
||||
autlevel: authparams.PRSwritelevel,
|
||||
whenEmpty: mld_opdr.srtdiscbes? L("lcl_select_bedrijf") : null,
|
||||
locatiekey: loc_key,
|
||||
onrgoedkey: onrgoed_key,
|
||||
gebouwkey: bld_key,
|
||||
disciplinekey: disckey,
|
||||
locatiekey: mld_melding.loc_key,
|
||||
onrgoedkey: mld_melding.place,
|
||||
gebouwkey: mld_melding.bld_key,
|
||||
disciplinekey: mld_melding.disc,
|
||||
lutype: mld_opdr.srtdiscbes? "L" : "U", // leverancier of uitvoerende
|
||||
urlAdd: [{urlParam: "dienst", field: "dienstfilt"}],
|
||||
onChange: "onChangeUitv",
|
||||
@@ -447,7 +413,7 @@ oRs.Close();
|
||||
{ contactpersoonKey: mld_opdr.contactpersuitv_key,
|
||||
label: L("lcl_contact_pers"),
|
||||
suppressEmpty: true,
|
||||
locatiekey: loc_key,
|
||||
locatiekey: mld_melding.loc_key,
|
||||
filtercode: "U",
|
||||
urlAdd: [{urlParam: "uitv_key", field: "uitvoerende"}],
|
||||
moreinfo: !frontend,
|
||||
@@ -560,8 +526,8 @@ oRs.Close();
|
||||
// Volgorde in tijd: maxPast, minPast, sysdate, minFuture, maxFuture
|
||||
FCLTcalendar("orderdate",
|
||||
{ datum: mld_opdr.mld_opdr_datumbegin,
|
||||
minDate: (S("mld_enforce_orderdates") == 1 ? mld_startdatum : registratiedatum),
|
||||
maxDate: (S("mld_enforce_orderdates") == 1 ? mld_einddatum : null),
|
||||
minDate: (S("mld_enforce_orderdates") == 1 ? mld_melding.melddatum : registratiedatum),
|
||||
maxDate: (S("mld_enforce_orderdates") == 1 ? mld_melding.einddatum : null),
|
||||
label: L("lcl_orderdate"),
|
||||
onChange: "DateChanged()",
|
||||
readonly: (opdr_key > 0 && !this_opdr.canDatesChange),
|
||||
@@ -578,16 +544,16 @@ oRs.Close();
|
||||
<% FCLTcalendar("date_done",
|
||||
{ //label : handmatig want period komt nog
|
||||
datum: mld_opdr.mld_opdr_einddatum,
|
||||
minDate: (S("mld_enforce_orderdates") == 1 ? mld_startdatum : registratiedatum),
|
||||
maxDate: (S("mld_enforce_orderdates") == 1 ? mld_einddatum : null),
|
||||
timeField: mld_uitvoertijd_eenheid == "U",
|
||||
minDate: (S("mld_enforce_orderdates") == 1 ? mld_melding.melddatum : registratiedatum),
|
||||
maxDate: (S("mld_enforce_orderdates") == 1 ? mld_melding.einddatum : null),
|
||||
timeField: mld_melding.uitvoertijd_eenheid == "U",
|
||||
timeStep : 15, // TODO: Is nog wel erg hard. Zie ook mld_edit_opdr.js
|
||||
startTime: 8,
|
||||
endTime : 18,
|
||||
onChange: "DateChanged()",
|
||||
readonly: (opdr_key > 0 && !this_opdr.canDatesChange),
|
||||
volgnr: 2,
|
||||
addClass: (mld_einddatum.getTime() < mld_opdr.mld_opdr_einddatum.getTime()? "expired2" : null), // Als de eindatum van de opdracht na de einddatum van de melding valt dan addClass toevoegen.
|
||||
addClass: (mld_melding.einddatum.getTime() < mld_opdr.mld_opdr_einddatum.getTime()? "expired2" : null), // Als de eindatum van de opdracht na de einddatum van de melding valt dan addClass toevoegen.
|
||||
required: true
|
||||
} );
|
||||
%>
|
||||
@@ -605,7 +571,7 @@ oRs.Close();
|
||||
autlevel: authparams.PRSwritelevel,
|
||||
moreinfo: true,
|
||||
filtercode: "OCP",
|
||||
disc_key: disckey,
|
||||
disc_key: mld_melding.disc,
|
||||
readonly: (opdr_key > 0 && !this_opdr.canVeldChange),
|
||||
suppressEmpty: true
|
||||
});
|
||||
@@ -683,21 +649,21 @@ oRs.Close();
|
||||
// <!-- MELDER -->
|
||||
FCLTpersoonselector("sgCaller",
|
||||
"sgCaller",
|
||||
{ perslidKey: mld_caller_key,
|
||||
{ perslidKey: mld_melding.melder_key,
|
||||
label: L("lcl_caller"),
|
||||
readonly: true,
|
||||
moreinfo: true
|
||||
});
|
||||
|
||||
ROFIELDTR ("fld", L("lcl_complain"), mld_opdr.vakgroep + "/" + stdm); // Melding
|
||||
ROFIELDTR ("fld", L("lcl_complain"), mld_opdr.vakgroep + "/" + mld_melding.mld_stdmelding_omschrijving); // Melding
|
||||
|
||||
// Locatie, gebouw, verdieping, ruimte
|
||||
// NB: is nu nog van de melding, maar binnenkort van de opdracht zelf
|
||||
FCLTplaatsselector (authparams.ALGwritelevel,
|
||||
{ locatiekey: loc_key,
|
||||
gebouwkey: bld_key,
|
||||
verdiepingkey: flr_key,
|
||||
ruimtekey: room_key,
|
||||
{ locatiekey: mld_melding.loc_key,
|
||||
gebouwkey: mld_melding.bld_key,
|
||||
verdiepingkey: mld_melding.flr_key,
|
||||
ruimtekey: mld_melding.room_key,
|
||||
moreinfo: (backo || fronto),
|
||||
readonly: true,
|
||||
suppressEmpty: true,
|
||||
@@ -728,7 +694,7 @@ oRs.Close();
|
||||
filtercode: "AA", // Alleen actieve kostenplaatsen kunnen selecteren "All Active". Huidige waarde als initi<74>le waarde kan bij kostenplaatsen altijd.
|
||||
extraParamField: "budgeth",
|
||||
extracode: "B", // extra informatie is budgethouder (B)
|
||||
required: kpnverplicht || (mld_opdr.typeopdr_kosten == 1 && mld_opdr.typeopdr_matchtype != 4),
|
||||
required: mld_melding.kpnverplicht || (mld_opdr.typeopdr_kosten == 1 && mld_opdr.typeopdr_matchtype != 4),
|
||||
label: L("lcl_mld_kosten"),
|
||||
suppressEmpty: true,
|
||||
checkInit: opdr_key < 0 && autoGebouwKp // Alleen bij nieuwe opdracht checken of kostenplaats wel mag worden ingevuld en als het een gebouw kostenplaats is.
|
||||
@@ -744,7 +710,7 @@ oRs.Close();
|
||||
}
|
||||
FCLTkostensoortselector("srtkosten",
|
||||
"sgSrtkosten",
|
||||
{ kostensoortKey: srtkp_key,
|
||||
{ kostensoortKey: mld_melding.stdm_ksrt_key,
|
||||
readonly: true,
|
||||
label: L("lcl_charge_type"),
|
||||
suppressEmpty: true
|
||||
@@ -757,7 +723,7 @@ oRs.Close();
|
||||
if (opdr_key < 0)
|
||||
{
|
||||
// Alleen bij nieuwe opdrachten en dus ook bij copy.
|
||||
if (kpnverplicht || (mld_opdr.typeopdr_kosten == 1 && mld_opdr.typeopdr_matchtype != 4))
|
||||
if (mld_melding.kpnverplicht || (mld_opdr.typeopdr_kosten == 1 && mld_opdr.typeopdr_matchtype != 4))
|
||||
var html = null;
|
||||
else
|
||||
var html = "onClick='onChangeFiat();'"
|
||||
@@ -924,6 +890,118 @@ oRs.Close();
|
||||
reado: (opdr_key > 0 && !(this_opdr.canFlexChange || this_opdr.canChangeARFlex)),
|
||||
flexcolumns: S("mld_flexcolumns")
|
||||
});
|
||||
|
||||
if (mld_melding.show_ins)
|
||||
{ // Zijn er objecten te tonen?
|
||||
var sql = "SELECT m.ins_deel_key"
|
||||
+ " FROM mld_melding_object m"
|
||||
+ " WHERE m.mld_melding_key = " + mld_key
|
||||
+ " ORDER BY m.ins_deel_key";
|
||||
oRs = Oracle.Execute(sql);
|
||||
var thereAreObjects = !oRs.Eof;
|
||||
oRs.close();
|
||||
|
||||
// Als de objecten knop aanwezig is bij meldingen of er zijn geselecteerde objecten te tonen dan objectenblok tonen.
|
||||
if (this_mld.canPlaatsChange || thereAreObjects)
|
||||
{
|
||||
BLOCK_START("mldIns", L("lcl_gerelateerdeobjecten"));
|
||||
// Als de objecten knop aanwezig is bij meldingen dan hier ook de knop tonen.
|
||||
|
||||
// De object button grijs weergeven als de plaats niet is ingevuld tot en met het alg_onrgoed_obj_niveau niveau.
|
||||
var disableobjects = ((alg_onrgoed_obj_niveau == "L" && mld_melding.loc_key < 0) ||
|
||||
(alg_onrgoed_obj_niveau == "G" && mld_melding.bld_key < 0) ||
|
||||
(alg_onrgoed_obj_niveau == "V" && mld_melding.flr_key < 0) ||
|
||||
(alg_onrgoed_obj_niveau == "R" && mld_melding.room_key < 0) ||
|
||||
(alg_onrgoed_obj_niveau == "A" && mld_melding.melder_key < 0) ||
|
||||
(alg_onrgoed_obj_niveau == ""));
|
||||
|
||||
//$("#r_objs_button").attr('disabled', disableobjects);
|
||||
var alg_key = -1;
|
||||
var aantalobj = 0;
|
||||
if (!disableobjects)
|
||||
{
|
||||
switch(alg_onrgoed_obj_niveau)
|
||||
{
|
||||
case "L": alg_key = mld_melding.loc_key;
|
||||
break;
|
||||
case "G": alg_key = mld_melding.bld_key;
|
||||
break;
|
||||
case "V": alg_key = mld_melding.flr_key;
|
||||
break;
|
||||
case "R": alg_key = mld_melding.room_key;
|
||||
break;
|
||||
case "A": alg_key = mld_melding.melder_key;
|
||||
break;
|
||||
}
|
||||
var prs_key = mld_melding.perslid_key_voor;
|
||||
var sql = get_objecten_sql(alg_key, alg_onrgoed_obj_niveau, prs_key, null, mld_melding.stdm);
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while(!oRs.eof)
|
||||
{
|
||||
aantalobj++;
|
||||
oRs.MoveNext();
|
||||
}
|
||||
}
|
||||
|
||||
if (this_mld.canPlaatsChange)
|
||||
{
|
||||
var params = { datatype: "button",
|
||||
html: "title='" + L("lcl_mld_objects_select") + "' onclick='mld_opdracht_object()'" + (disableobjects? " disabled" : "")
|
||||
}
|
||||
RWFIELDTR("r_objs_button", "button", L("lcl_mld_objects"), L("lcl_mld_objects") + "(" + aantalobj + ")", params);
|
||||
}
|
||||
%>
|
||||
<tr>
|
||||
<td>
|
||||
</td>
|
||||
<td>
|
||||
<%
|
||||
var plaatsaanduiding = (S("prs_wpprefix_objectid") == 1
|
||||
? " CASE"
|
||||
+ " WHEN o.prs_werkplek_omschrijving IS NOT NULL"
|
||||
+ " THEN o.prs_werkplek_omschrijving || ' ' "
|
||||
+ " ELSE ''"
|
||||
+ " END"
|
||||
: "''");
|
||||
sql = "SELECT d.ins_deel_key"
|
||||
+ " , " + plaatsaanduiding + " || ins_deel_omschrijving || ' (' || " + lcl.xsql('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key') + " || ')' deel "
|
||||
+ " , CASE"
|
||||
+ " WHEN d.ins_deel_t_uitvoertijd.eenheid = 'U'"
|
||||
+ " THEN d.ins_deel_t_uitvoertijd.tijdsduur / 24"
|
||||
+ " ELSE d.ins_deel_t_uitvoertijd.tijdsduur"
|
||||
+ " END uitvoertijd" // Uitvoertijd is in dagen.
|
||||
+ " FROM ins_v_aanwezigdeel d"
|
||||
+ " , ins_srtdeel s"
|
||||
+ " , mld_melding_object m"
|
||||
+ " , ins_v_alg_overzicht o"
|
||||
+ " WHERE m.mld_melding_key = " + mld_key
|
||||
+ " AND d.ins_deel_key = m.ins_deel_key"
|
||||
+ " AND d.ins_srtdeel_key = s.ins_srtdeel_key"
|
||||
+ " AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys(+)"
|
||||
+ " AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type(+)"
|
||||
+ " AND d.ins_alg_locatie_key = o.alg_locatie_key(+)"
|
||||
+ " ORDER BY deel";
|
||||
// showObjDetail alleen in show-mode
|
||||
FCLTselector("r_objs",
|
||||
sql,
|
||||
{ label: "", //L("lcl_mld_objects"),
|
||||
multi: true,
|
||||
size: 1,
|
||||
required: mld_melding.srtinst_verplicht,
|
||||
extraParamValue: "uitvoertijd" // uitvoertijd is hier in uren
|
||||
});
|
||||
%> <input type='hidden' name='has_r_objs' value='1'>
|
||||
</td>
|
||||
</tr>
|
||||
<script>
|
||||
$(document).ready(function ()
|
||||
{
|
||||
$('#r_objs').attr("size", ($("#r_objs")[0].options.length == 0? 1 : $("#r_objs")[0].options.length));
|
||||
});
|
||||
</script>
|
||||
<% BLOCK_END();
|
||||
}
|
||||
} // if (mld_melding.show_ins)
|
||||
%>
|
||||
<input type=hidden name="copyorder_key" value="<%=copy?opdr_copy_key:'-1'%>">
|
||||
<input type=hidden name="act_key" value="<%=mld_opdr.act_key%>">
|
||||
|
||||
@@ -260,6 +260,8 @@ function mld_submit(json)
|
||||
if (document.activeElement.tagName != "BODY")
|
||||
document.activeElement.blur(); // trigger laatste onChanges
|
||||
|
||||
$('#r_objs>option').prop("selected", "true"); // Zet selected zodat verplicht ze ziet en zodat waarden worden gesubmit
|
||||
|
||||
// Standaard checks op verplichte velden, datum formaat, numeriek en float formaat, currency formaat.
|
||||
if (!validateForm("u2"))
|
||||
return false;
|
||||
@@ -506,3 +508,65 @@ function mld_melding_uitvoerenden()
|
||||
callback: mld_melding_uitvoerenden_callback
|
||||
});
|
||||
}
|
||||
|
||||
function mld_opdracht_object_callback(data)
|
||||
{
|
||||
// TODO: Moet er niet ook <SELECT> omheen? WERKT DIT
|
||||
$("#r_objs").html(data.obj_html);
|
||||
$("#r_objs").attr("size", ($("#r_objs")[0].options.length == 0? 1 : $("#r_objs")[0].options.length));
|
||||
$("#r_objs > option").removeAttr("selected");
|
||||
FcltMgr.resized(window);
|
||||
var obj_keys = $.map($("#r_objs option") , function(option) { return $(option).val(); }); // Levert array met objecten op.
|
||||
}
|
||||
|
||||
function mld_opdracht_object()
|
||||
{
|
||||
var alg_key = -1;
|
||||
// De stdmelding is ingevuld. alg_onrgoed_niveau is het verplichte ingevulde niveau en alg_onrgoed_niveau heeft dan een geldige waarde
|
||||
// Wellicht is het niveau eronder ook ingevuld!
|
||||
|
||||
var alg_key = -1;
|
||||
var alg_niveau = "";
|
||||
// Objecten opvragen met
|
||||
// 1) Met plaatsgegevens die ingevuld zijn en verplicht. Als een plaats niveau niet verplicht is gaan we hem zelfs negeren (zie ook functie getObjectInfo).
|
||||
// 2) Met afdelinggegevens van de user.
|
||||
if (alg_onrgoed_obj_niveau == 'A' && melder_key > 0)
|
||||
{
|
||||
alg_key = user_afd_key;
|
||||
alg_niveau = "A";
|
||||
}
|
||||
else if (room_key > -1 && alg_onrgoed_obj_niveau == "R")
|
||||
{
|
||||
alg_key = room_key;
|
||||
alg_niveau = "R";
|
||||
}
|
||||
else if (flr_key > -1 && alg_onrgoed_obj_niveau == "V")
|
||||
{
|
||||
alg_key = flr_key;
|
||||
alg_niveau = "V";
|
||||
}
|
||||
else if (bld_key > -1 && alg_onrgoed_obj_niveau == "G")
|
||||
{
|
||||
alg_key = bld_key;
|
||||
alg_niveau = "G";
|
||||
}
|
||||
else // Locatie is altijd verplicht.
|
||||
{
|
||||
alg_key = loc_key;
|
||||
alg_niveau = "L";
|
||||
}
|
||||
|
||||
var url = "../mld/mld_object.asp?mld_key=" + mld_key;
|
||||
url += "&stdm_key="+ stdm;
|
||||
url += "&srtdisc=" + disckey;
|
||||
url += "&person=" + (perslid_key_voor > 0? perslid_key_voor : melder_key);
|
||||
url += "&alg_key=" + alg_key;
|
||||
url += "&alg_niveau=" + alg_niveau;
|
||||
if ($("#r_objs")[0].options.length > 0 && $("#r_objs")[0].options[0].value > 0)
|
||||
var obj_html = $("#r_objs").html(); // huidige objecten
|
||||
else
|
||||
var obj_html = "";
|
||||
|
||||
FcltMgr.openModalDetail(url, L("lcl_mld_objects"), {obj_html:obj_html, callback: mld_opdracht_object_callback});
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,9 @@ var finish = (getFParamInt("finish", 0) == 1);
|
||||
var shiftdate = (getFParamInt("shiftdate", 0) == 1);
|
||||
var msg = getFParam("message", "");
|
||||
|
||||
// Objects...
|
||||
var obj_arr = getFParamIntArray("r_objs", []);
|
||||
|
||||
if (!isNew)
|
||||
{ // Bestaande opdracht
|
||||
var mld_opdr = mld.mld_opdr_info(opdr_key);
|
||||
@@ -808,6 +811,35 @@ for (var u = 0; u < uitvkeyArray.length; u++)
|
||||
}
|
||||
}
|
||||
|
||||
if (getFParamInt("has_r_objs", 0) == 1) // Voorkom dat we wissen vanuit mobile-save die helemaal geen listbox heeft.
|
||||
{
|
||||
var objtrack = mld.gettrackobjects(mld_key, obj_arr);
|
||||
if (!isNew)
|
||||
// Objecten tracken die worden verwijderd of toegevoegd.
|
||||
mldUpd.trackarray.push(objtrack);
|
||||
|
||||
// Objecten
|
||||
sql = " DELETE mld_melding_object"
|
||||
+ " WHERE mld_melding_key = " + mld_key
|
||||
+ (obj_arr.length != 0
|
||||
? " AND ins_deel_key NOT IN (" + obj_arr.join(",") + ")"
|
||||
: "")
|
||||
Oracle.Execute(sql);
|
||||
if (obj_arr.length != 0)
|
||||
{
|
||||
sql = "INSERT INTO mld_melding_object"
|
||||
+ " (mld_melding_key, ins_deel_key)"
|
||||
+ " SELECT " + mld_key
|
||||
+ ", ins_deel_key"
|
||||
+ " FROM ins_v_aanwezigdeel"
|
||||
+ " WHERE ins_deel_key IN (" + obj_arr.join(",") + ")"
|
||||
+ " AND (ins_deel_vervaldatum IS NULL OR ins_deel_vervaldatum > TRUNC(SYSDATE))"
|
||||
+ " AND ins_deel_key NOT IN"
|
||||
+ " (SELECT ins_deel_key FROM mld_v_aanwezigmelding_object WHERE mld_melding_key = " + mld_key + ")";
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
}
|
||||
|
||||
// readonly had voornamelijk betrekking op de vaste velden.
|
||||
// met mldman o.i.d. kan zijn dat alles readonly is behalve bepaalde flexkenmerken
|
||||
// Wijzigbare flexkenmerken altijd opslaan
|
||||
|
||||
Reference in New Issue
Block a user