DJIN#35660: Rebound: Behandelaar van opdrachten bij "groepswerkwijze" kiezen/zien.
svn path=/Website/trunk/; revision=31297
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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?
|
||||
}
|
||||
@@ -615,12 +615,18 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
|
||||
sql = "SELECT COALESCE((SELECT b.prs_bedrijf_naam FROM prs_bedrijf b WHERE b.prs_bedrijf_key = o.mld_uitvoerende_keys),"
|
||||
+ " COALESCE((SELECT " + S("prs_pers_string") + " FROM prs_perslid p WHERE p.prs_perslid_key = o.mld_uitvoerende_keys),"
|
||||
+ " '')) uitvoerende"
|
||||
+ " , COALESCE ((SELECT 'P' pbtype"
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE p.prs_perslid_key = o.mld_uitvoerende_keys),"
|
||||
+ " (SELECT 'B' pbtype"
|
||||
+ " FROM prs_bedrijf d"
|
||||
+ " WHERE d.prs_bedrijf_key = o.mld_uitvoerende_keys)) pbtype"
|
||||
+ " , COALESCE ((SELECT 'P' pbtype"
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE p.prs_perslid_key = o.mld_uitvoerende_keys),"
|
||||
+ " (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),
|
||||
@@ -862,12 +873,21 @@ fin = { func_enabled_factuur: // Wat mag ik zoal op deze specifieke factuur?
|
||||
+ " , COALESCE ((SELECT 'A' pbtype"
|
||||
+ " FROM prs_afdeling a"
|
||||
+ " WHERE a.prs_afdeling_key = c.cnt_prs_afdeling_key),"
|
||||
+ " (SELECT 'P' pbtype"
|
||||
+ " (SELECT 'P' pbtype"
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE p.prs_perslid_key = c.cnt_prs_perslid_key),"
|
||||
+ " (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),
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -169,7 +169,12 @@ 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") } ];
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user