619 lines
30 KiB
Plaintext
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>
|