Files
Facilitor/APPL/MLD/mld_show_opdr.asp
Maykel Geerdink ce2a4f9be9 FSN#33872: Opdracht wordt niet goed aangeboden aan de kostenplaatsgroephouder.
svn path=/Website/trunk/; revision=26708
2015-10-20 12:10:55 +00:00

619 lines
30 KiB
Plaintext

<%@language = "javascript" %>
<%
/* $Revision$
$Id$
File: mld_show_opdr.asp
Description: Detailscherm voor opdrachten
Parameters: opdr_key (REQUIRED)
-
Context:
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/status.inc" -->
<!-- #include file="../Shared/budget.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/contactpersoonselector.inc" -->
<!-- #include file="../Shared/uitvoerendeselector.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/kostenplaatsselector.inc" -->
<!-- #include file="../Shared/kostensoortselector.inc" -->
<!-- #include file="mld_flexkenmerk.inc" -->
<!-- #include file="mld.inc" -->
<!-- #include file="../prs/prs.inc" -->
<%
FCLTHeader.Requires({ plugins:["jQuery"],
js: ["date.js", "./mld.js", "./mld_show_opdr.js", "jQuery-ui.js"]
})
// AUTORISATIEPARAMETERS
var urole = getQParamSafe("urole");
// Om nog even compatible te blijven zodat alles nog even blijft werken. Moet er straks uit, natuurlijk.
var fronto = urole == "fo";
var backo = urole == "bo";
var minfo = urole == "mi";
var frontend = (!fronto & !backo & !minfo);
var opdr_key = getQParamInt("opdr_key");
var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
var hasBOread = this_opdr.canReadBOF || this_opdr.canReadORD;
user.auth_required_or_abort(this_opdr.canReadAny);
// INITIALISATIE MET DE INITIEEL WEER TE GEVEN GEGEVENS
// Haal de opdrachtgegevens op van de opdracht
mld_opdr = mld.mld_opdr_info(opdr_key);
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
var opdr_type_org = mld_opdr.opdr_type; // Huidige en het orgineel zijn hetzelfde. Niet aangepast. Overnemen van ingevulde waarden niet nodig.
var refiat = mld_opdr.opdr_status_refiat > 0;
// Bepaal de budgethouder van de gebruikte/initiele kostenplaats
var sql_budg = "SELECT pf.prs_perslid_key"
+ ", pf.prs_perslid_naam_full"
+ " FROM prs_v_perslid_fullnames_all pf"
+ ", prs_kostenplaats k"
+ " WHERE k.prs_perslid_key = pf.prs_perslid_key"
+ " AND k.prs_kostenplaats_key = " + mld_opdr.kp_key;
oRs = Oracle.Execute( sql_budg);
if (!oRs.eof)
{
budgetholder_key = oRs("prs_perslid_key").Value;
budgetholder_name = oRs("prs_perslid_naam_full").Value;
}
else
{
budgetholder_key = -1;
budgetholder_name = '';
}
oRs.close();
// Get some related mld_melding data
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_ins_discipline_key"
+ " , md.ins_srtdiscipline_key"
+ " , sd.ins_srtdiscipline_prefix"
+ " , 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"
+ " , sd.ins_srtdiscipline_bes"
+ " , m.mld_melding_einddatum"
+ " , m.mld_melding_t_uitvoertijd.eenheid uitvoertijd_eenheid"
+ " FROM mld_melding m"
+ " , alg_v_allonrgoed_gegevens g"
+ " , alg_locatie l"
+ " , mld_stdmelding s"
+ " , mld_discipline md"
+ " , ins_srtdiscipline sd"
+ " WHERE m.mld_melding_key = " + mld_opdr.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.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys(+)";
oRs = Oracle.Execute(sql);
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;
var mld_stdkey = oRs("mld_stdmelding_key").Value;
var disckey = oRs("mld_ins_discipline_key").Value;
var srtdisckey = oRs("ins_srtdiscipline_key").Value;
var prefix = oRs("ins_srtdiscipline_prefix").Value;
var defkp_key = oRs("prs_kostenplaats_key").Value; // de defaultwaarde komt van de melding
var kosten_klant = oRs("mld_kosten_klant").Value;
var def_ordernr = oRs("mld_melding_ordernr").Value; // de defaultwaarde
var onrgoed_key = oRs("mld_alg_onroerendgoed_keys").Value;
var mld_caller_key = oRs("prs_perslid_key").Value;
var srtkp_key = oRs("prs_kostensoort_key").Value;
var mld_einddatum = new Date(oRs("mld_melding_einddatum").Value);
var mld_uitvoertijd_eenheid = oRs("uitvoertijd_eenheid").Value;
oRs.close();
var caller = new Perslid(mld_caller_key);
// Het defaultemailadres bepalen voor de functie opdr_mail():
// Externe uitvoerder: van prs_contactpersoon indien bekend, anders bedrijf_email
// Intern: van de medewerker dus.
var defemail_key = "";
var defemail_type = "P";
sql = " SELECT 1"
+ " , c.prs_contactpersoon_email email "
+ " FROM mld_opdr o"
+ " , prs_contactpersoon c "
+ " WHERE o.prs_contactpersoon_key = c.prs_contactpersoon_key"
+ " AND o.mld_opdr_key = " + opdr_key
+ " AND prs_contactpersoon_email IS NOT NULL "
+ " UNION ALL"
+ " SELECT 2"
+ " , b.prs_bedrijf_email "
+ " FROM mld_opdr o"
+ " , prs_bedrijf b "
+ " WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key"
+ " AND o.mld_opdr_key = " + opdr_key
+ " AND b.prs_bedrijf_email IS NOT NULL "
+ " UNION ALL"
+ " SELECT 3"
+ " , p.prs_perslid_email email "
+ " FROM mld_opdr o"
+ " , prs_perslid p "
+ " WHERE o.mld_uitvoerende_keys = p.prs_perslid_key"
+ " AND o.mld_opdr_key = " + opdr_key
+ " AND p.prs_perslid_email IS NOT NULL "
+ " ORDER BY 1";
sql = " SELECT 1"
+ " , o.prs_contactpersoon_key defemail_key"
+ " , 'C' defemail_type"
+ " FROM mld_opdr o"
+ " , prs_contactpersoon c "
+ " WHERE o.prs_contactpersoon_key = c.prs_contactpersoon_key"
+ " AND o.mld_opdr_key = " + opdr_key
+ " AND prs_contactpersoon_email IS NOT NULL"
+ " UNION ALL"
+ " SELECT 2"
+ " , o.mld_uitvoerende_keys defemail_key"
+ " , 'B' defemail_type"
+ " FROM mld_opdr o"
+ " , prs_bedrijf b "
+ " WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key"
+ " AND o.mld_opdr_key = " + opdr_key
+ " AND b.prs_bedrijf_email IS NOT NULL"
+ " UNION ALL"
+ " SELECT 3"
+ " , o.mld_uitvoerende_keys defemail_key"
+ " , 'P' defemail_type"
+ " FROM mld_opdr o"
+ " , prs_perslid p "
+ " WHERE o.mld_uitvoerende_keys = p.prs_perslid_key"
+ " AND o.mld_opdr_key = " + opdr_key
+ " AND p.prs_perslid_email IS NOT NULL "
+ " ORDER BY 1";
oRs2 = Oracle.Execute(sql);
if (!oRs2.eof)
{
defemail_key = oRs2("defemail_key").Value
defemail_type = oRs2("defemail_type").Value
}
var subjectMail = L("lcl_shared_order") + " " + mld_opdr.mld_key + "/" + mld_opdr.volgnr;
var urlMail = "../shared/queuemail.asp?pcode=ORDMAI&defemail_key=" + defemail_key
+ "&defemail_type=" + defemail_type
+ "&key=" + opdr_key
+ "&subject=" + Server.URLencode(subjectMail)
+ "&mailfrom=" + (hasBOread? 1 : 0);
%>
<html>
<head>
<%
FCLTHeader.Generate();
%>
<script type="text/javascript" >
// Text strings used by mld_show_opdr.js
var urole = "<%=urole%>";
var opdr_key = "<%=opdr_key%>";
var prefix = "<%=prefix%>";
var mld_key = "<%=mld_opdr.mld_key%>";
var volgnr = "<%=mld_opdr.volgnr%>";
var defemail_key = "<%=defemail_key%>";
var defemail_type = "<%=defemail_type%>";
var setting_mld_accept_confirm = <%=S("mld_accept_confirm")? 1 : 0%>;
var mld_opdr_refiat_preference = <%=S("mld_opdr_refiat_preference")? 1 : 0%>;
var kosten_verplicht_afm = <%=mld_opdr.typeopdr_matchtype != 4 && (mld_opdr.typeopdr_kosten_verplicht & 2 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 2))? 1 : 0%> == 1;
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 opdr_kosten = <%=safe.jsfloat(mld_opdr.t_cost)%>;
var refiat = <%=refiat? 1 : 0%> == 1;
jQuery(document).ready(function()
{
FcltMgr.setTitle("<%=L("lcl_opdr_info") + " " +(prefix||"") + mld_opdr.mld_key + "/" + mld_opdr.volgnr%>", {hot:false});
$('textarea').resize(function() { FcltMgr.resized(window) });
$('textarea').autogrow();
});
function opdr_mail()
{
var subject = "<%=safe.jsstring(subjectMail)%>";
var url = "<%=safe.jsstring(protectQS.create(urlMail))%>";
FcltMgr.openModalDetail(url, L("lcl_mld_noti_opdr_email"), { callback: opdrMailCallback });
}
function fin_verkoopfactuur ()
{
var url = "appl/fin/fin_verkoopfactuur.asp?mode=list&fin_verkoopfactuur_refkey=<%=opdr_key%>" + "&fin_verkoopfactuur_xmlnode=opdracht";
FcltMgr.openDetail(url, L("lcl_verkoopfacturen"));
}
function mld_show_goedkeurmodal()
{
params = { width: "auto",
height: "auto",
modal: true,
resizable: false,
position: { my: "center", at: "center", of: window },
title: L("lcl_message"),
closeText: L("lcl_close_window"),
buttons: { "<%=L("lcl_goedkeur")%>" : function () { $("#dmodal").dialog('close'); opdr_goedkeur() },
"<%=L("lcl_cancel")%>" : function () { $("#dmodal").dialog('close'); }
}
}
$('div#dmodal').dialog(params).dialog('open');
}
</script>
</head>
<body id="showbody">
<%
var buttons = [];
if (this_opdr.canChange)
buttons.push({ title: L("lcl_change"), icon: "wijzigen.png", action: "opdr_change('" + this_opdr.canChangeUrole + "')" });
if (this_opdr.canApprove)
buttons.push({ title: L("lcl_approve"), icon: "accept.png", action: "opdr_approve()" });
if (this_opdr.canGoedkeur ||
this_opdr.canGoedkeur2 ||
this_opdr.canGoedkeur3 ||
this_opdr.canGoedkeur4 ||
this_opdr.canGoedkeur5)
buttons.push({ title: L("lcl_goedkeur"), icon: "accept.png", action: "opdr_goedkeur_preference()" });
if (this_opdr.canSend)
buttons.push({ title: L("lcl_setsend"), icon: "setsend.png", action: "opdr_setsend()" });
if (this_opdr.canAccept)
buttons.push({ title: L("lcl_accept"), icon: "accept.png", action: "opdr_accept()" });
if (this_opdr.canReject)
buttons.push({ title: L("lcl_reject"), icon: "reject.png", action: "opdr_reject()" });
if (this_opdr.canCancel)
buttons.push({ title: L("lcl_mld_opdr_cancel_button"), icon: "cancel.png", action: "opdr_cancel()"});
if (this_opdr.canClose)
buttons.push({ title: L("lcl_close"), icon: "close.png", action: "opdr_close()" });
if (this_opdr.canFinish)
buttons.push({ title: L("lcl_opdr_closekosten"), icon: "finish.png", action: "opdr_finish('" + this_opdr.canChangeUrole + "')" });
if (this_opdr.canAcceptOffer)
buttons.push({ title: L("lcl_accept"), icon: "offerteok.png", action: "opdr_accept_offer()" });
if (this_opdr.canRejectOffer)
buttons.push({ title: L("lcl_reject"), icon: "offertenok.png", action: "opdr_reject_offer()" });
if (this_opdr.canCopy)
buttons.push({ title: L("lcl_mld_copy"), icon: "copy.png", action: "opdr_copy()" });
if (this_opdr.canListFactuur)
buttons.push({ title: L("lcl_mld_invoicing"), icon: "invoice.png", action: "opdr_list_invoice()" });
else if (this_opdr.canAddFactuur)
buttons.push({ title: L("lcl_mld_invoicing"), icon: "invoice.png", action: "opdr_add_invoice()" });
buttons.push({ title: L("lcl_print"), icon: "print.png", action: "opdr_print()" });
buttons.push({ title: L("lcl_noti_email"), icon: "email.png", action: "opdr_mail()" });
IFRAMER_HEADER((mld_opdr.act_key > 0? L("lcl_opdr_frame_algemeen_actie") : L("lcl_opdr_frame_algemeen")), buttons);
%>
<div id="show">
<% var buttons_rp = [];
buttons_rp.push({ title: L("lcl_goedkeur"), action: "$('div#dmodal').dialog('close').remove();" });
buttons_rp.push({ title: L("lcl_cancel"), action: "$('div#dmodal').dialog('close').remove();" });
%>
<form name="u2" onSubmit="return false;">
<div id="dmodal" style="display:none">
<div>
<% ROFIELDTR("fld", "", "", {id: "modalsfatext"}); %>
</div>
<% // Als kostenplaats aangeeft dat er geen fiattering moet plaatsvinden, dan vinkje niet tonen.
// Als het bedrag (bij refiat) boven het mandaat uitkomt, dan vinkje niet tonen.
// Bepaling mandaat.
// Bepaling oorspronkelijke (laatste) fiatteur, als die er was.
var pkey = -1;
sql = "SELECT pf.prs_perslid_key"
+ " FROM fac_tracking tr"
+ " , fac_srtnotificatie str"
+ " , prs_v_perslid_fullnames_all pf"
+ " WHERE tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key"
+ " AND tr.prs_perslid_key = pf.prs_perslid_key(+)"
+ " AND (str.fac_srtnotificatie_code = 'ORDFOK'"
+ " AND tr.fac_tracking_refkey = " + opdr_key
+ " AND str.fac_srtnotificatie_xmlnode IN ('opdracht'))"
+ " ORDER BY fac_tracking_datum DESC"
+ " , fac_tracking_key DESC"
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
pkey = oRs("prs_perslid_key").Value;
}
else
{ // Dan waren de opdracht kosten onder het mandaat van mijzelf of de BO-medewerker.
// Als de kostenplaats bij de opdracht overruled is dan wordt altijd tegen het profiel van de BO-medewerker getest.
if (kosten_klant == 1 && defkp_key == mld_opdr.kp_key) //kostenplaats_key)
pkey = mld_caller_key; // Melder/aanvrager van melding
else
pkey = user_key; //getFParamInt("behandelaar"); // BO medewerker? dat is gewoon de user
}
// Afhankelijk van de setting "mld_opdr_refiat_preference" fiatteren.
// Bij herfiattering opnieuw fiatteren {0=(default) fiatteur moet opnieuw fiatteren, 1=goedkeurder kan aangeven of dat moet}
// mld_opdr_refiat_preference = 0: - Herfiatteren als bedrag nu boven GVS limiet is en boven profiel limiet van de laatste fiatteur.
// mld_opdr_refiat_preference = 1: - Goedkeuren met vinkje aan: Altijd herfiatteren als nieuwe opdracht.
// - Goedkeuren met vinkje uit: Niet fiatteren en direct naar volgende status.
// - Indien bedrag boven de profiel limiet komt, dan vinkje niet tonen en fiatteren als nieuwe opdracht (pkey = laatste fiatteur).
if (refiat && S("mld_opdr_refiat_preference") == 1 && mld_opdr.kp_fiat && !budget.exceeds_profiel(mld_opdr.t_cost, pkey, disckey))
{
var mld_info = mld.mld_melding_info(mld_opdr.mld_key);
var approver = mld.getFirstApprover(mld_info, mld_opdr);
// Hoeft er wel gefiatteerd te worden?
if (approver.for_approval)
{ // Er moet gefiatteerd worden.
if (approver.approver_key < 0)
{ // Aan de logging toevoegen.
// Er kan geen fiatteur gevonden worden. Er kan wel goedgekeurd worden maar niet gefiatteerd.
// Na het goedkeuren zal de status in "Ter goedkeuring(10)" blijven hangen.
__Log(L("lcl_bes_exceed_limit"));
}
RWCHECKBOXTR("sendforapproval", "fldcheck", L("lcl_mld_sendfor_approval_to").format(approver.approver_name), 1, {boxfirst: true});
}
} %>
</div>
<%
BLOCK_START("opdrInfo", L("lcl_opdr_info"));
%> <tr>
<td class="label">
<label class="selector"><%=L("lcl_mld_typeopdr")%>:</label>
<% // Ongebruikelijk weliswaar maar: in showmode een 'edit' knopje tonen voor wisselen opdrachttype
// Wisselen zou te veel impact clientside hebben als het in editmode kan.
if (this_opdr.canOpdrTypeChange && S("mld_ord_change_type") == 1)
{
var sql = "SELECT ts.mld_typeopdr_key"
+ " FROM mld_typeopdr_srtdiscipline ts"
+ " WHERE (ins_discipline_key = " + disckey /* en dan doet de srtdiscipline er echt niet meer toe */
+ " OR (ts.ins_srtdiscipline_key = " + srtdisckey + " AND ins_discipline_key IS NULL))"
+ " AND ts.mld_typeopdr_key != " + mld_opdr.opdr_type; // Huidige waarde niet laten zien.
var oRs = Oracle.Execute(sql);
if (!oRs.Eof) // er zijn andere mogelijk
{
%>
<span class="labelextra">
<img class="details" src="../Pictures/wijzigen.png"
title="<%=L("lcl_change")%>"
onclick="mld_edit_typeopdr(this, <%=opdr_key%>)">
</span>
<% }
}
%>
</td>
<td>
<% ROFIELD('fld', null, mld_opdr.opdr_type_omschr); %>
</tr>
<% FCLTuitvoerendeselector("uitvoerende",
"sgUitv",
{ uitvoerendekey: mld_opdr.uitvoerende_key,
label: mld_opdr.srtdiscbes ? L("lcl_bes_Supplier") : L("lcl_ord_company_uit"),
moreinfo: !frontend,
readonly: true
});
// Contactpersoon uitvoerende
FCLTcontactpersoonselector("contactpers",
"sgCntPersUitv",
{ contactpersoonKey: mld_opdr.contactpersuitv_key,
label: L("lcl_contact_pers"),
filtercode: "U",
moreinfo: !frontend,
suppressEmpty: true,
readonly: true
});
params = { suppressEmpty: true };
if (mld_opdr.contract_key && mld_opdr.contract_key>0)
params.infoPointer = { Url: "appl/cnt/cnt_contract.asp?urole=" + urole + "&cnt_key=" + mld_opdr.contract_key,
Title: L("lcl_contract")
};
ROFIELDTR("fld", L("lcl_contract"), mld_opdr.contract_naam, params); // Contract naam
ROTEXTAREATR("fldtxt", L("lcl_mld_opdr_description"), mld_opdr.opdr_omschr, {suppressEmpty: true});
var showtime = (1==1); //mld_uitvoertijd_eenheid == "U";
ROFIELDTR(showtime? "flddatetime" : "flddate",
L("lcl_orderdate"),
showtime? toDateTimeString(mld_opdr.mld_opdr_datumbegin) : toDateString(mld_opdr.mld_opdr_datumbegin)); // Opdracht datum
// Als de eindatum van de opdracht na de einddatum van de melding valt dan addClass toevoegen.
var lclass = (mld_einddatum.getTime() < mld_opdr.mld_opdr_einddatum.getTime()? " opdrgtmld" : "");
var ltitle = (mld_einddatum.getTime() < mld_opdr.mld_opdr_einddatum.getTime()? L("lcl_mld_opdr_afr_na_mld") : "");
ROFIELDTR((showtime? "flddatetime" : "flddate") + lclass,
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}); // Afhandeling
BLOCK_END();
BLOCK_START("opdrMelding", L("lcl_opdr_info") + " " +(prefix||"") + mld_opdr.mld_key + "/" + mld_opdr.volgnr, true);
params = { infoPointer: { Url: "appl/shared/status_info.asp?opdr_key=" + opdr_key + "&urole=" + urole,
Title: L("lcl_status_details") + " " + (prefix||"") + mld_opdr.mld_key + "/" + mld_opdr.volgnr
}
}
ROFIELDTR("fld" + (mld_opdr.opdr_status == 2? " notapproved" : ""), L("lcl_mld_status"), status.getopdrstatustext(mld_opdr.opdr_status), params); // Opdrachtstatus omschrijving
if (mld_opdr.opdr_status == 2)
{ // Opdracht Niet akkoord
ROTEXTAREATR('fldtxt', L("lcl_mld_inf_opmerking_fiat"), mld_opdr.mld_opdr_opmerking_fiat, {suppressEmpty: true}); // Afhandeling, reden niet akkoord
}
var fiat_key = mld_opdr.mld_opdr_fiat_user; // Laatste fiatteur die gefiatteerd heeft
if (mld_opdr.opdr_status == 3) // (nog) ter fiattering
{
// Als de setting "mld_opdr_refiat_preference" is gezet (=1) dan altijd weer de eerste fiatteur (budgethouder (kostenplaatverantwoordelijke)) laten fiatteren.
// Als tijdens de refiat al door de budgethouder (kostenplaatverantwoordelijke) is gefiatteerd dan wel de kostenplaatsgroepverantwoordelijke nemen.
// In dat geval is het approved bedrag hoger dan voor de refiat.
var refiat_is_approvedby_kp = mld_opdr.approved > mld_opdr.approved_refiat;
if (fiat_key && (S("mld_opdr_refiat_preference") == 0 || refiat_is_approvedby_kp))
fiat_key = mld_opdr.fiatteur_kpg_key; // 1e is geweest
else
fiat_key = mld_opdr.fiatteur_kp_key;
}
if (fiat_key)
{
FCLTpersoonselector(
"Fiatteur",
"sgFiatteur",
{ perslidKey: fiat_key,
label: (mld_opdr.opdr_status == 3? L("lcl_mld_toapprove"): L("lcl_mld_approver")),
readonly: true,
moreinfo: !frontend
});
}
var params = { infoPointer: { Url: "appl/mld/mld_melding.asp?urole=" + urole + "&mld_key=" + mld_opdr.mld_key
}
}
ROFIELDTR("fld", L("lcl_opdr_id"), mld_opdr.mld_opdr_id, {suppressEmpty: true}); // Evt. te gebruiken factuurkenmerk
ROFIELDTR("fld", L("lcl_call_number"), (prefix||"") + mld_opdr.mld_key, params); // Melding
FCLTpersoonselector("sgCaller",
"sgCaller",
{ perslidKey: mld_caller_key,
label: L("lcl_caller"),
readonly: true,
moreinfo: true //We stellen: in potentie klikbaar, eventueel leidt dit tot NietGeautoriseerd later.
});
// Telefoon vd melder (AADS#16698). Externe behandelaar hebben niet altijd recht op doorklikken
ROFIELDTR("fld", L("lcl_prs_person_phone"), (caller.prs_perslid_telefoonnr() || caller.prs_perslid_mobiel()));
ROFIELDTR ("fld", L("lcl_complain"), mld_opdr.vakgroep + "/" + stdm); // Melding
// Locatie, gebouw, verdieping, ruimte
// NB: is nu nog van de melding, maar binnenkort van de opdracht zelf
FCLTplaatsselector (-1,
{ locatiekey: loc_key,
gebouwkey: bld_key,
verdiepingkey: flr_key,
ruimtekey: room_key,
moreinfo: (backo || fronto),
readonly: true,
no_table: true,
suppressEmpty: true // unsupported yet
});
BLOCK_END();
mld.generate_relobject_block(mld_opdr.mld_key);
var ttl = L("lcl_opdr_kosten");
if (mld_opdr.typeopdr_matchtype != 3 && mld_opdr.typeopdr_matchtype != 4)
ttl += " " + (mld_opdr.inclBTW? L("lcl_shared_inclBTW") : L("lcl_shared_exclBTW"));
BLOCK_START("opdrKosten", ttl, true);
// Kostenplaats
FCLTkostenplaatsselector("account",
"sgAccount",
user_key,
{ kostenplaatsKey: mld_opdr.kp_key,
readonly: true,
onChange: "changeAccount",
extraParamField: "budgeth",
extracode: "B", // extra informatie is budgethouder (B)
defExtraParam: budgetholder_name,
moreinfo: !frontend,
label: L("lcl_mld_kosten"),
suppressEmpty: true
});
FCLTkostensoortselector( "srtkosten"
, "sgSrtkosten"
, { kostensoortKey: srtkp_key
, readonly: true
, label: L("lcl_charge_type")
, suppressEmpty: true
});
// <!-- VRIJWILLIG VERZOEK FIATTERING -->
// Alleen als het vrijwillig vinkje is ingevuld.
ROCHECKBOXTR("fldmldfiat", L("lcl_mld_appr_req"), mld_opdr.opdr_handfiat, {suppressEmpty: true});
if (S("mld_ord_show_ordernr") == 1) {
ROFIELDTR("fldordernr", L("lcl_mld_inf_Ordernr"), mld_opdr.mld_opdr_ordernr,{suppressEmpty: true});
}
if (mld_opdr.typeopdr_matchtype == 5)
{
// Materiaallijst
sql = "SELECT COUNT(mld_opdr_materiaal_key) aantal"
+ " FROM mld_opdr_materiaal ud"
+ " WHERE mld_opdr_key = " + opdr_key;
oRs = Oracle.Execute(sql);
var mataantal = oRs("aantal").Value;
var params = { type: "button",
html: "title='" + L("lcl_mld_opdr_materials_select") + (mataantal > 0? "' onclick='mld_melding_materiaal()'" : "'"),
opdr_key: opdr_key
}
RWFIELDTR("materiallist_button", "details materiaal", L("lcl_mld_material"), L("lcl_mld_materialen") + "(" + mataantal + ")", params);
}
else
{
var flduren_label = L("lcl_mld_hours");
switch (mld_opdr.typeopdr_matchtype)
{
case 3: {flduren_label = L("lcl_mld_hoursperweek"); break;}
case 6: {flduren_label = L("lcl_mld_hours_to_spent"); break;}
case 7: {flduren_label = L("lcl_mlduren_max"); break;}
}
ROFIELDTR("flduren", flduren_label, safe.curr(mld_opdr.hours), {suppressEmpty: true}); // Uren
if (mld_opdr.typeopdr_matchtype == 6 || mld_opdr.typeopdr_matchtype == 7)
ROFIELDTR("fldgeboekt", L("lcl_mlduren_booked"), safe.curr(mld_opdr.booked), {suppressEmpty: true}); // Geboekte uren
ROFIELDTR("flduurtarief", L("lcl_hour_rate") + " " + S("currency_pref"), safe.curr(mld_opdr.h_rate),{suppressEmpty: true}); // Uurtarief
if (mld_opdr.typeopdr_matchtype != 3)
{
ROFIELDTR("fldmatkosten", L("lcl_mater_cost") + " " + S("currency_pref"), safe.curr(mld_opdr.m_cost), {suppressEmpty: true}); // Materiaal
ROFIELDTR("fldcorrkosten", L("lcl_correct") + " " + S("currency_pref"), safe.curr(mld_opdr.corr_cost), {suppressEmpty: true}); // Correctie
}
}
ROFIELDTR("fldtotkosten", L("lcl_total_cost") + " " + S("currency_pref"), safe.curr(mld_opdr.t_cost), {suppressEmpty: true}); // Totaal
BLOCK_END();
// Flexkenmerken
generateFlexKenmerkBlock({ opdr_key: opdr_key,
opdr_type: mld_opdr.opdr_type,
opdr_type_org: opdr_type_org,
opdr_status: mld_opdr.opdr_status,
showClose: this_opdr.couldClose || this_opdr.canClose || this_opdr.canSeeARFlex,
reado: true,
flexcolumns: S("mld_flexcolumns")
});
%>
</form>
</div> <!-- edit -->
</body>
</html>