DJIN#35660: Rebound: Behandelaar van opdrachten bij "groepswerkwijze" kiezen/zien.

svn path=/Website/trunk/; revision=31297
This commit is contained in:
Maykel Geerdink
2016-11-01 07:42:21 +00:00
parent 7d3b925d35
commit 837f7fcdae
10 changed files with 155 additions and 60 deletions

View File

@@ -1219,18 +1219,18 @@ function model_orders(opdr_key, params)
if (params.mld_opdr.act_key <= 0 && params.mld_opdr.uitvoerende > 0)
{ // RWSN#15010: Bij het opslaan van een nieuwe opdracht GEEN bon tonen/printen als
// de uitvoerende een INTERNE uitvoerende is (S("mld_order_autoprint") == 2).
var sql = "SELECT 'P' pbtype"
var sql = "SELECT 1 intern" // pbtype = 'P'.
+ " FROM prs_perslid p"
+ " WHERE p.prs_perslid_key = " + params.mld_opdr.uitvoerende
+ " UNION "
+ "SELECT 'B' pbtype"
+ "SELECT prs_bedrijf_intern intern" // pbtype = 'B'.
+ " FROM prs_v_aanwezigbedrijf d"
+ " WHERE d.prs_bedrijf_key = " + params.mld_opdr.uitvoerende;
var oRs = Oracle.Execute(sql);
var pbtype = oRs("pbtype").Value;
var intern = oRs("intern").Value == 1;
oRs.Close();
if ((S("mld_order_autoprint") == 2 && pbtype == "B") || (S("mld_order_autoprint") != 2))
if ((S("mld_order_autoprint") == 2 && !intern) || (S("mld_order_autoprint") != 2))
{ // Als S("mld_order_autoprint") == 2 dan geen bon bij prs_perslid (interne uitvoerende)
// parameter autoprint wordt in de functie closeDetail() opgepakt
doneParams.autoprint = true;

View File

@@ -57,7 +57,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
fresult.iamContact = user.isContactpersoon(); // Ben ik een contactpersoon?
fresult.iamBedrijfContact = false; // Aan bedrijf toegekend en ik ben contactpersoon van dat bedrijf?
// Bij het aanmaken van een nieuwe melding is er nog geen bedrijf gekozen. Dan alleen kijken naar de rechten.
if (pfin_key > 0 && ref_info.lev_uit_type == 'B')
if (pfin_key > 0 && !ref_info.lev_uit_intern)
{ // Ik ga er van uit dat je NIET als vervanger van een contactpersoon van een ander bedrijf wordt aangewezen.
fresult.iamBedrijfContact = user.isContactpersoon(ref_info.lev_uit_key); // Ben ik contactpersoon van het uitvoerende bedrijf?
}
@@ -621,6 +621,12 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " (SELECT 'B' pbtype"
+ " FROM prs_bedrijf d"
+ " WHERE d.prs_bedrijf_key = o.mld_uitvoerende_keys)) pbtype"
+ " , COALESCE ((SELECT 1 intern"
+ " FROM prs_perslid p"
+ " WHERE p.prs_perslid_key = o.mld_uitvoerende_keys),"
+ " (SELECT prs_bedrijf_intern intern"
+ " FROM prs_bedrijf d"
+ " WHERE d.prs_bedrijf_key = o.mld_uitvoerende_keys)) intern"
+ " , COALESCE(o.mld_uitvoerende_keys, -1) uitvoerende_key"
+ " , (SELECT b.prs_bedrijf_opmerking"
+ " FROM prs_bedrijf b"
@@ -703,6 +709,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
lev_uit: oRs("uitvoerende").Value,
lev_uit_key: oRs("uitvoerende_key").Value,
lev_uit_type: oRs("pbtype").Value,
lev_uit_intern: oRs("intern").Value == 1,
lev_opm: oRs("lev_opm").Value,
reltype_oms: oRs("reltype_oms").Value,
status: status.getopdrstatustext(oRs("mld_statusopdr_key").Value),
@@ -736,6 +743,9 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " COALESCE((SELECT " + S("prs_pers_string") + " FROM prs_perslid p WHERE p.prs_perslid_key = bo.prs_bedrijf_key),"
+ " '')) uitvoerende"
+ " , 'B' pbtype"
+ " , (SELECT b.prs_bedrijf_intern"
+ " FROM prs_bedrijf b"
+ " WHERE b.prs_bedrijf_key = bo.prs_bedrijf_key) intern"
+ " , COALESCE(bo.prs_bedrijf_key, -1) uitvoerende_key"
+ " , (SELECT b.prs_bedrijf_opmerking"
+ " FROM prs_bedrijf b"
@@ -817,6 +827,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
lev_uit: oRs("uitvoerende").Value,
lev_uit_key: oRs("uitvoerende_key").Value,
lev_uit_type: oRs("pbtype").Value,
lev_uit_intern: oRs("intern").Value == 1,
lev_opm: oRs("lev_opm").Value,
reltype_oms: oRs("reltype_oms").Value,
status: status.getbesopdrstatustext(oRs("bes_bestelopdr_status").Value),
@@ -868,6 +879,15 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
+ " (SELECT 'B' pbtype"
+ " FROM prs_bedrijf d"
+ " WHERE d.prs_bedrijf_key = c.cnt_prs_bedrijf_key)) pbtype"
+ " , COALESCE ((SELECT 1 intern"
+ " FROM prs_afdeling a"
+ " WHERE a.prs_afdeling_key = c.cnt_prs_afdeling_key),"
+ " (SELECT 1 intern"
+ " FROM prs_perslid p"
+ " WHERE p.prs_perslid_key = c.cnt_prs_perslid_key),"
+ " (SELECT prs_bedrijf_intern intern"
+ " FROM prs_bedrijf d"
+ " WHERE d.prs_bedrijf_key = c.cnt_prs_bedrijf_key)) intern"
+ " , COALESCE(c.cnt_prs_bedrijf_key, c.cnt_prs_afdeling_key, c.cnt_prs_perslid_key, -1) uitvoerende_key"
+ " , (SELECT b.prs_bedrijf_opmerking"
+ " FROM prs_bedrijf b"
@@ -925,6 +945,7 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
lev_uit: oRs("uitvoerende").Value,
lev_uit_key: oRs("uitvoerende_key").Value,
lev_uit_type: oRs("pbtype").Value,
lev_uit_intern: oRs("intern").Value == 1,
lev_opm: oRs("lev_opm").Value,
reltype_oms: oRs("reltype_oms").Value,
status: status.getcntstatustext(oRs("cnt_contract_status").Value),

View File

@@ -133,11 +133,12 @@ mld = {setmeldingstatus:
function (opdr_key, uitvoerende)
{
// Is uitvoerende intern of extern?
sql = "SELECT u.type"
sql = "SELECT u.intern"
+ " FROM mld_v_uitvoerende u"
+ " WHERE u.mld_uitvoerende_key = " + uitvoerende
var oRs = Oracle.Execute(sql);
var intern = (oRs("type").Value == "P"); // type "P" (persoon) is intern en type "B" (bedrijf) is extern
// type "P" (persoon) is intern en type "B" (bedrijf) is afhankelijk van "prs_bedrijf_intern" intern of extern.
var intern = (oRs("intern").Value);
oRs.close();
shared.trackaction((intern? "ORDMLI" : "ORDMLE"), opdr_key);
@@ -1888,6 +1889,7 @@ mld = {setmeldingstatus:
+ " , mto.mld_typeopdr_afhandeling"
+ " , mto.mld_typeopdr_kosten_verplicht"
+ " , o.prs_perslid_key mld_opdr_contact_key" // key van de interne contactpersoon
+ " , (SELECT p.prs_perslid_naam_full FROM prs_v_perslid_fullnames_all p WHERE p.prs_perslid_key = o.prs_perslid_key) mld_opdr_contact_naam"
+ " , o.prs_contactpersoon_key"
+ " , o.mld_statusopdr_key"
+ " , o.mld_statusopdr_key_refiat"
@@ -1913,6 +1915,7 @@ mld = {setmeldingstatus:
+ " , sd.ins_srtdiscipline_prefix"
+ " , o.fac_activiteit_key"
+ " , mu.type"
+ " , mu.intern"
+ " , p2.prs_perslid_key fiatteur_kp_key"
+ " , (SELECT kg.prs_perslid_key"
+ " FROM prs_kostenplaats k"
@@ -2009,6 +2012,7 @@ mld = {setmeldingstatus:
typeopdr_afhandeling: oRs("mld_typeopdr_afhandeling").Value, // Afhandeling verplicht bij afmelden opdracht van dit opdrachttype (0=Nee/1=Ja)
typeopdr_kosten_verplicht: oRs("mld_typeopdr_kosten_verplicht").Value || 0, // Opdracht kosten verplicht (bitwise) bij (0 = niet verplicht, 1 = save + 2 = afmelden, 4 = afronden).
contactpers_key: oRs("mld_opdr_contact_key").Value || -1,
contactpers_naam: oRs("mld_opdr_contact_naam").Value,
contactpersuitv_key: oRs("prs_contactpersoon_key").Value,
opdr_status: oRs("mld_statusopdr_key").Value,
opdr_status_refiat: oRs("mld_statusopdr_key_refiat").Value || 0,
@@ -2030,6 +2034,7 @@ mld = {setmeldingstatus:
srtdiscprefix: oRs("ins_srtdiscipline_prefix").Value,
act_key: oRs("fac_activiteit_key").Value || -1,
uitv_type: oRs("type").Value,
uitv_intern: oRs("intern").Value == 1,
corr_cost: corr_cost,
corr_cost_refiat: corr_cost_refiat,
fiatteur_kp_key: oRs("fiatteur_kp_key").Value || -1,
@@ -2119,7 +2124,6 @@ mld = {setmeldingstatus:
period: 0, // Te laat is altijd 0
hours: 0,
uitvoerende_key: uitvoerende_key,
contactpers_key: user_key,
opdr_type_org: -1, // As in/from database
kp_key: -1,
kp_fiat: true,
@@ -2977,6 +2981,7 @@ __Log(result);
+ " WHERE k.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key(+)"
+ " AND k.prs_kostenplaats_key = o.prs_kostenplaats_key) fiatteur_kpg_key"
+ " , mu.type"
+ " , mu.intern"
+ " , o.mld_uitvoerende_keys"
+ " , fac.gettrackinguserkey('ORDFOK', " + pmld_opdr_key + ") fiat_trackinguser_key"
+ " , fac.gettrackingdate('ORDFIA', o.mld_opdr_key) trackdateFIA"
@@ -3034,6 +3039,7 @@ __Log(result);
var fiatteur_kp_key = moRs("fiatteur_kp_key").Value;
var fiatteur_kpg_key = moRs("fiatteur_kpg_key").Value;
var uitv_type = moRs("type").Value;
var uitv_intern = moRs("intern").Value == 1;
var uitv_key = moRs("mld_uitvoerende_keys").Value;
var fiat_trackinguser_key = moRs("fiat_trackinguser_key").Value;
var tracking_present = moRs("fiat_trackinguser_key").Value? true : false;
@@ -3158,7 +3164,7 @@ __Log(result);
// Al ik een contactpersoon ben dan heb ik alleen rechten om mijn eigen opdrachten van mijn eigen bedrijf te zien/wijzigen
mresult.iamContact = mld.iamContact(); // Ben ik een contactpersoon?
mresult.iamBedrijfContact = false; // Aan bedrijf toegekend en ik ben contactpersoon van dat bedrijf? Bijv. vertaaldiensten UWVA
if (uitv_type == 'B')
if (!uitv_intern) // Extern Bedrijf.
{ // Ik ga er van uit dat je NIET als vervanger van een contactpersoon van een ander bedrijf wordt aangewezen.
mresult.iamBedrijfContact = mld.iamContact(uitv_key); // Ben ik contactpersoon van het uitvoerende bedrijf?
}
@@ -3234,11 +3240,12 @@ __Log(result);
// Als ik een interne (decentraal/intern) uitvoerder ben mag ik de externe opdrachten niet zien als mld_typeopdr_afmelden_extern==0.
// De voorwaarde en setting geldt niet als:
// 1) de opdracht toegekend is aan een persoon. Dan mag ik alleen eigen opdrachten zien.
// 2) ik de contactpersoon ben van het uitvoerende externe bedrijf. Dan mag ik alleen opdrachten van mijn eigen bedrijf zien.
// 2) de opdracht toegekend is aan het eigen bedrijf. Opdrachten van het eigen bedrijf mag ik alleen zien.
// 3) ik de contactpersoon ben van het uitvoerende externe bedrijf. Dan mag ik alleen opdrachten van mijn eigen bedrijf zien.
// Let op!!! Deze voorwaarde geldt dus alleen voor de WEB_ORDBO2 rechten.
if (mresult.iamContact)
myBO2Change = myBO2Change && mresult.iamBedrijfContact
else if (myBO2Change && uitv_type == "B" && afmelden_extern < 2 && !mresult.iamBedrijfContact)
else if (myBO2Change && !uitv_intern && afmelden_extern < 2 && !mresult.iamBedrijfContact)
myBO2Change = false;
__Log("myBO2Change: " + myBO2Change);
@@ -3329,7 +3336,8 @@ __Log(result);
(mresult.canWrite("WEB_MLDORD") && user.isCollega(uitv_key))) &&
!is_planned_action;
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond);
mresult.canVeldChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canVeldChange = (mresult.canWrite("WEB_ORDBOF") ||
(mresult.canWrite("WEB_ORDBO2") && myBO2Change));
mresult.canFlexChange = (mresult.canWrite("WEB_ORDBOF") || mresult.canWrite("WEB_ORDBO2"));
mresult.canUitvChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canDatesChange = (mresult.canWrite("WEB_ORDBOF"));
@@ -4057,7 +4065,7 @@ __Log(result);
var sql = "SELECT o.mld_statusopdr_key"
+ " , o.mld_opdr_teverzenden"
+ " , o.mld_uitvoerende_keys"
+ " , mu.type"
+ " , mu.intern"
+ " , o.mld_statusopdr_key_refiat"
+ " FROM mld_opdr o"
+ " , mld_v_uitvoerende mu"
@@ -4065,7 +4073,7 @@ __Log(result);
+ " AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key"
var oRs = Oracle.Execute( sql);
if (oRs("mld_statusopdr_key").Value == 4 // gefiatteeerd
&& oRs("type").Value == 'P' // interne
&& oRs("intern").Value == 1 // interne bedrijven en personen
&& (oRs("mld_opdr_teverzenden").Value || 0) != 1) // Het gaat niet automatisch met putorders
{
var uitvoerende = oRs("mld_uitvoerende_keys").Value;

View File

@@ -317,6 +317,8 @@ oRs.Close();
<script type="text/javascript">
var urole = "<%=urole%>";
var frontend = "<%=frontend%>";
var user_key = <%=user_key%>;
var user_naam = "<%=user.naam()%>";
var opdr_key = <%=opdr_key%>;
var mld_key = <%=mld_key%>;
var prefix = "<%=mld_melding.prefix%>";
@@ -408,6 +410,8 @@ oRs.Close();
"sgUitv",
{ uitvoerendekey: mld_opdr.uitvoerende_key,
label: mld_opdr.srtdiscbes? L("lcl_bes_Supplier") : L("lcl_ord_company_uit"),
extraParamField: "internbedrijf",
extracode: "IB", // extra informatie: is het een intern bedrijf (IB)?
autlevel: authparams.PRSwritelevel,
whenEmpty: mld_opdr.srtdiscbes? L("lcl_select_bedrijf") : null,
locatiekey: mld_melding.loc_key,
@@ -435,7 +439,18 @@ oRs.Close();
moreinfo: !frontend,
readonly: (opdr_key > 0 && !this_opdr.canVeldChange)
});
// Veld mld_typeopdr_contract met codering
%>
<script type="text/javascript">
jQuery(document).ready(function()
{ // Bij bestaande opdrachten contactpersoon verbergen als uitvoerende een persoon of intern bedrijf is (= intern).
<% if (opdr_key > 0 && mld_opdr.uitv_intern)
{ %>
$("#contactpers").closest("tr").hide();
<% } %>
});
</script>
<% // Veld mld_typeopdr_contract met codering
// &0 = geen contract te kiezen bij opdrachten van dit type
// &1 = contract verplicht bij opdrachten van dit type
// &2 = wel contract te kiezen bij opdrachten van dit type (=default)
@@ -531,6 +546,20 @@ oRs.Close();
<%
}
// <!-- (INTERN) BEHANDELAAR -->
FCLTpersoonselector("behandelaar",
"sgPerson",
{ perslidKey: mld_opdr.contactpers_key,
label: L("lcl_mld_behandelaar"),
autlevel: authparams.PRSwritelevel,
moreinfo: true,
filtercode: "OCP",
urlAdd: [{urlParam: "pbtype", field: "pbtype"}],
disc_key: mld_melding.disc,
readonly: (opdr_key > 0 && !this_opdr.canVeldChange),
suppressEmpty: true
});
// OMSCHRIJVING
RWTEXTAREATR("opdr_omschr",
"fldomschr",
@@ -579,20 +608,7 @@ oRs.Close();
</tr>
<% // <!-- (INTERN) BEHANDELAAR -->
FCLTpersoonselector("behandelaar",
"sgPerson",
{ perslidKey: mld_opdr.contactpers_key,
label: L("lcl_mld_behandelaar"),
autlevel: authparams.PRSwritelevel,
moreinfo: true,
filtercode: "OCP",
disc_key: mld_melding.disc,
readonly: (opdr_key > 0 && !this_opdr.canVeldChange),
suppressEmpty: true
});
// TODO: deze invulbaar maken (FSN#30171) [nog overwegen: afhankelijk van de typeopdr-vinkje doen?]
<% // TODO: deze invulbaar maken (FSN#30171) [nog overwegen: afhankelijk van de typeopdr-vinkje doen?]
FCLTcalendar("date_plan",
{ label: L("lcl_opdr_plandate"),
datum: mld_opdr.mld_opdr_plandatum,

View File

@@ -120,8 +120,24 @@ function onChangeUitv(u_key, txt)
{
if (u_key > 0)
{
var pbtype = $("#pbtype").val();
if (pbtype != 'BI')
// setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
// De user hoef ik hier niet te checken of die bestaat (checkExist).
sgPerson.setValue(user_key, user_naam);
else
sgPerson.setValue(-1, "");
// Maak contactpersoon leeg
sgCntPersUitv.setValue(-1, "");
// Verberg contactpersoon indien persoon ('P') of intern bedrijf ('BI'). Alleen tonen voor extern bedrijf ('BE').
if (pbtype == 'BE')
$("#contactpers").closest("tr").show();
else
$("#contactpers").closest("tr").hide();
return;
// Update contract selectbox
updateCnt();

View File

@@ -1064,18 +1064,19 @@ if (initopdrkey > 0 || copyorder_key > 0 || mld_typeopdr_isofferte == 0) // !(op
if (act_key <= 0 && uitvoerende > 0)
{ // RWSN#15010: Bij het opslaan van een nieuwe opdracht GEEN bon tonen/printen als
// de uitvoerende een INTERNE uitvoerende is (S("mld_order_autoprint") == 2).
sql = "SELECT 'P' pbtype"
sql = "SELECT 1 intern" // pbtype = 'P'.
+ " FROM prs_perslid p"
+ " WHERE p.prs_perslid_key = " + uitvoerende
+ " UNION"
+ " SELECT 'B' pbtype"
+ " SELECT prs_bedrijf_intern intern" // pbtype = 'B'.
+ " FROM prs_v_aanwezigbedrijf d"
+ " WHERE d.prs_bedrijf_key = " + uitvoerende;
oRs = Oracle.Execute(sql);
var pbtype = oRs("pbtype").Value;
var intern = oRs("intern").Value == 1;
oRs.Close();
if ((S("mld_order_autoprint") == 2 && pbtype == "B") || (S("mld_order_autoprint") != 2)) // Als S("mld_order_autoprint") == 2 dan geen bon bij prs_perslid (interne uitvoerende)
// Als S("mld_order_autoprint") == 2 dan geen bon bij prs_perslid (interne uitvoerende) en intern bedrijf (prs_bedrijf_intern == 1).
if ((S("mld_order_autoprint") == 2 && !intern) || (S("mld_order_autoprint") != 2))
{
// parameter autoprint wordt in de functie closeDetail() opgepakt
doneParams.autoprint = true;

View File

@@ -435,6 +435,15 @@ var urlMail = "../shared/queuemail.asp?pcode=ORDMAI&defemail_key=" + defemail_ke
Title: L("lcl_contract")
};
ROFIELDTR("fld", L("lcl_contract"), mld_opdr.contract_naam, params); // Contract naam
// (Interne) behandelaar
FCLTpersoonselector("sgInternCntPers",
"sgInternCntPers",
{ perslidKey: mld_opdr.contactpers_key,
label: L("lcl_mld_behandelaar"),
moreinfo: true,
readonly: true,
suppressEmpty: true
});
ROTEXTAREATR("fldtxt", L("lcl_mld_opdr_description"), mld_opdr.opdr_omschr, {suppressEmpty: true, mldlink: true});
var showtime = (1==1); //mld_uitvoertijd_eenheid == "U";
@@ -448,15 +457,6 @@ var urlMail = "../shared/queuemail.asp?pcode=ORDMAI&defemail_key=" + defemail_ke
L("lcl_opdr_enddate"),
showtime? toDateTimeString(mld_opdr.mld_opdr_einddatum) : toDateString(mld_opdr.mld_opdr_einddatum),
{ title: ltitle }); // Einddatum
// (Interne) behandelaar
FCLTpersoonselector("sgInternCntPers",
"sgInternCntPers",
{ perslidKey: mld_opdr.contactpers_key,
label: L("lcl_mld_behandelaar"),
moreinfo: true,
readonly: true,
suppressEmpty: true
});
ROFIELDTR("flddatetime", L("lcl_opdr_plandate"), mld_opdr.mld_opdr_plandatum != null ? toDateTimeString(mld_opdr.mld_opdr_plandatum):null, {suppressEmpty: true}); // Geplande datum
ROTEXTAREATR('fldtxt', L("lcl_mld_inf_Opmerking"), mld_opdr.opdr_opmerking, {suppressEmpty: true, mldlink: true}); // Afhandeling
BLOCK_END();

View File

@@ -15,6 +15,7 @@ var JSON_Result = true;
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="mld.inc" -->
<%
@@ -42,6 +43,24 @@ for (var i = 0; i < ingesloten.length; i++)
{
// Blijkbaar mogen we Accepteren
var mld_opdr = mld.mld_opdr_info(ingesloten[i]);
// Als de behandelaar leeg is en een user van het INTERNE bedrijf meldt de opdracht af, dan de user_key als behandelaar (prs_perslid_key) zetten.
var fields = [];
if (mld_opdr.uitv_type == 'B' && mld_opdr.uitv_intern && mld_opdr.contactpers_key == -1)
fields.push({ dbs: "prs_perslid_key", typ: "key", val: user_key, track: L("lcl_mld_behandelaar"), foreign: "prs_perslid" });
else if (mld_opdr.uitv_type == 'B' && !mld_opdr.uitv_intern && mld_opdr.contactpersuitv_key == null)
fields.push({ dbs: "prs_contactpersoon_key", typ: "key", val: user_key, track: L("lcl_contact_pers"), foreign: "prs_contactpersoon" });
if (fields.length > 0)
{
var mldUpd = buildTrackingUpdate("mld_opdr", "mld_opdr_key = " + ingesloten[i], fields);
if (mldUpd && mldUpd.trackarray.length)
{
Oracle.Execute(mldUpd.sql);
var ins_srtdiscipline_prefix = mld.mld_prefix(mld_opdr.mld_key);
var formattedID = ins_srtdiscipline_prefix + mld_opdr.mld_key + "/" + mld_opdr.volgnr;
mld.trackopdrachtupdate(ingesloten[i], L("lcl_ord_is_ordupdtrack").format(formattedID) + "\n" + mldUpd.trackarray.join("\n"));
}
}
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
// Zetten van de status en afhandelen van de tracking van het fiatteren (approve).

View File

@@ -170,6 +170,11 @@ for (var i = 0; i < ingesloten.length; i++)
else
var opm = opdr_opm;
var fields = [ { dbs: "mld_opdr_opmerking", typ: "varchar", val: opm, track: L("lcl_mld_inf_Opmerking") } ];
// Als de behandelaar leeg is en een user van het INTERNE bedrijf meldt de opdracht af, dan de user_key als behandelaar (prs_perslid_key) zetten.
if (mld_opdr.uitv_type == 'B' && mld_opdr.uitv_intern && mld_opdr.contactpers_key == -1)
fields.push({ dbs: "prs_perslid_key", typ: "key", val: user_key, track: L("lcl_mld_behandelaar"), foreign: "prs_perslid" });
var mldUpd = buildTrackingUpdate("mld_opdr", "mld_opdr_key = " + ingesloten[i], fields);
}

View File

@@ -308,13 +308,12 @@ function opdr_list (params)
sql = "SELECT o.mld_melding_key"
+ " , o.mld_opdr_bedrijfopdr_volgnr"
+ " , o.mld_opdr_einddatum"
+ " , l.alg_locatie_code ||"
+ " (SELECT NVL2(geg.alg_gebouw_code,'-'||geg.alg_gebouw_code,'') ||"
+ " NVL2(geg.alg_verdieping_code,'-'||geg.alg_verdieping_code,'') ||"
+ " NVL2(geg.alg_ruimte_nr,'-'||geg.alg_ruimte_nr,'')||"
+ " NVL2(geg.alg_terreinsector_code,'-'||geg.alg_terreinsector_code,'')"
+ " FROM alg_v_allonrgoed_gegevens geg"
+ " WHERE m.mld_alg_onroerendgoed_keys = geg.alg_onroerendgoed_keys"
+ " , 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"
@@ -615,7 +614,8 @@ function opdr_list (params)
// 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) ik de contactpersoon ben van het uitvoerende externe bedrijf. Opdrachten van eigen bedrijf 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.
@@ -630,10 +630,19 @@ function opdr_list (params)
else
{
sql_extern = " AND (mld_typeopdr_afmelden_extern IN (1, 2)"
+ " OR EXISTS (SELECT 'X' " // Toegekend aan een persoon
+ " OR EXISTS (SELECT 'X'" // Toegekend aan een persoon
+ " FROM prs_perslid"
+ " WHERE prs_perslid_key = o.mld_uitvoerende_keys)"
+ " OR EXISTS (SELECT 'X' " // Ben ik contactpersoon van het uitvoerende externe bedrijf
+ " 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"