Files
Facilitor/APPL/FAC/fac_fiattering_list.asp
2025-12-04 12:57:50 +00:00

744 lines
35 KiB
Plaintext
Raw Blame History

<%@ language = "JavaScript" %>
<%
/*
$Revision$
$Id$
File: fac_fiattering_list.asp
Description: Overzicht fiatteringsverzoeken UNDER CONSTRUCTION voor INSTEMMEN
Parameters:
Context: Vanuit fac_fiattering_search.asp
Requires: WEB_ORDOAP autorisatie
Ik moet fiatteren als:
BES) bes_disc_info.disc_params_fiatflow == 0 && bes_bestelling_status == 2
bes_disc_info.disc_params_fiatflow == 1 && bes_bestelling_status == 4 AND
A1) bes_bestelling_fiat_user IS NULL AND
ik ben NVL(kostenplaatsverantwoordelijke, kostenplaatsgroepverantwoordelijke)
A2) of: bes_bestelling_fiat_user IS NOT NULL AND
ik ben de kostenplaatsgroepverantwoordelijke of
CNT) cnt_contract_status == 3 AND
A1) Ik heb WEB_CNTGO1 rechten AND
cnt_info.kosten > S("cnt_contract_limit1") AND // Zijn de kosten hoger als de limiet
cnt_info.approved <= S("cnt_contract_limit1") // Welke goedkeur? 1, 2 of 3?
A2) Ik heb CNTGO2 rechten AND
cnt_info.kosten > S("cnt_contract_limit2") AND
cnt_info.approved <= S("cnt_contract_limit2")
cnt_info.approved > S("cnt_contract_limit1") // Eerste goedkeuring is geweest
A3) Ik heb CNTGO3 rechten AND
cnt_info.kosten > S("cnt_contract_limit3") AND
cnt_info.approved <= S("cnt_contract_limit3")
cnt_info.approved > S("cnt_contract_limit2") // Tweede goedkeuring is geweest
A4) Ik heb CNTGO4 rechten AND
cnt_info.kosten > S("cnt_contract_limit4") AND
cnt_info.approved <= S("cnt_contract_limit4")
cnt_info.approved > S("cnt_contract_limit3") // Derde goedkeuring is geweest
A5) Ik heb CNTGO5 rechten AND
cnt_info.kosten > S("cnt_contract_limit5") AND
cnt_info.approved <= S("cnt_contract_limit5")
cnt_info.approved > S("cnt_contract_limit4")
MLDIN) Instemmen met melding mld_melding_conceptstatus > 0 en ik ben de instemmer (zie mld.getinstemmer())
MLD) Fiatteren opdracht) mld_statusopdr_key == 3 AND
A1) fac.gettrackinguserkey('ORDFOK', op.mld_opdr_key) IS NULL AND
ik ben NVL(kostenplaatsverantwoordelijke, kostenplaatsgroepverantwoordelijke)
A2) of: fac.gettrackinguserkey('ORDFOK', op.mld_opdr_key) IS NOT NULL AND
ik ben de kostenplaatsgroepverantwoordelijke
Goedkeuren opdracht) mld_statusopdr_key == 10 AND (Eisen GOE t/m GO5) AND (PRS/ALG rechten) AND ...
Accepten Opdracht) mld_statusopdr_key == 6 AND (aantal opdrachten IS NULL OR offerte is later als laatste opdracht)
FIN) Fiatteren) fin_factuur_statuses_key == 2 AND (ik ben budgethouder van de BrOC-kostenplaats (in collegakeylist) OR
ik heb write rechten op de locatie van het afleveradres (in collegakeylist) OR
ik heb write rechten op de plaats van de bijbehorende melding (in collegakeylist) OR
ik ben contracteigenaar (in collegakeylist))
Goedkeuren) fin_factuur_statuses_key == 5 AND prs_perslid_key_goedkeur in Collegakeylist (AND S("fin_enable_goedkeuren") != 0 geldt al omdat anders de status niet "Ter goedkeuring(5)" kan zijn)
RES) Er artikelregels zijn die nog niet gefiatteerd zijn (res_rsv_artikel_approved = 0) AND
De BO status (res_status_bo_key) Nieuw(2) is (COALESCE(res_rsv_ruimte.res_status_bo_key, res_rsv_artikel.res_status_bo_key) = 2) AND
Voor een catalogus geldt: SUM(res.getartikelprijs(res_rsv_artikel.res_rsv_artikel_key)) > res_disc_params.cat_threshold
Ik heb gefiatteerd of afgewezen als er tracking is geweest
BES) gefiateerd: 'BESFIT' (kostenplaatsverantwoordelijke) of 'BESACP'" (kostenplaatsgroepverantwoordelijke)
afgewezen: 'BESREJ'
CNT) gefiateerd: 'CNTFIT'
afgewezen: 'CNTREJ'
MLDIN) ingestemd: 'MLDUPD' // Vlak voor de MLDNEW.
afgewezen: .MLDREJ'
MLD) gefiateerd: 'ORDFOK'
afgewezen: 'ORDREJ'
FIN) gefiateerd: 'FINGOE'
afgewezen bij fiatteren: 'FINFNO'
goedgekeurd: 'FINFOK'
afgewezen bij goedkeuren: 'FINGNO'
RES) gefiateerd: 'RESFOK'
afgewezen: 'RESFNO'
*/
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/status.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../BES/bes.inc" -->
<!-- #include file="../CNT/cnt.inc" -->
<!-- #include file="fac.inc" -->
<!-- #include file="../MLD/mld.inc" -->
<!-- #include file="../FAC/fac_fiattering_list.inc" -->
<!-- #include file="../FIN/fin.inc" -->
<!-- #include file="../RES/res.inc" -->
<%
var prsKeys = "" + user_key;
var outputmode = getQParamInt("outputmode", 0); // 0 = screen, 1 = print, 2 = excel etc
var showall = getQParamInt("showall", 0) == 1;
var getOpen = getQParamInt("open", 0) == 1;
var getClosed = getQParamInt("close", 0) == 1;
var getRejected = getQParamInt("reject", 0) == 1;
var opdrtype_key = getQParamInt("opdrtype_key", -1); // Opdrachttype
var kpgrp_key_arr = getQParamIntArray("kpgrp_key_arr", [-1]); // Kostenplaatsgroep
var dist_key_arr = getQParamKeyArray("districtkey", []); // District
var loc_key_arr = getQParamKeyArray("locatiekey", []); // Locatie
var bld_key_arr = getQParamKeyArray("gebouwkey", []); // Gebouw
var betreft = getQParamArray("betreft", []); // Betreft module BES, CNT, FIN, MLDOF of MLDOP.
var groupby = getQParamSafe("groupby", "");
var groupbymodule = groupby.toLowerCase() === "module";
if (!getOpen && !getClosed && !getRejected)
getOpen = true;
if (dist_key_arr.length > 0)
{
if (loc_key_arr.length == 0)
{ // Geen locatie geselecteerd.
// Zoek alle locaties die bij het gekozen district horen.
sqld = "SELECT alg_locatie_key"
+ " FROM alg_locatie"
+ " WHERE alg_district_key IN (" + dist_key_arr.join(",") + ")"; // geen alg_locatie_verwijder is null??
var oRsd = Oracle.Execute(sqld);
while (!oRsd.eof)
{
loc_key_arr.push(oRsd("alg_locatie_key").value);
oRsd.MoveNext();
}
oRsd.Close();
}
}
var params = { getopen: getOpen
, getclosed: getClosed
, getrejected: getRejected
, opdrtype_key: (opdrtype_key != -1? opdrtype_key : null)
, kpgrp_key_arr: (kpgrp_key_arr.length > 0 && kpgrp_key_arr.join(",").indexOf("-1") == -1? kpgrp_key_arr : null)
, dist_key_arr: (dist_key_arr.length > 0? dist_key_arr : null)
, loc_key_arr: (loc_key_arr.length > 0? loc_key_arr : null)
, bld_key_arr: (bld_key_arr.length > 0? bld_key_arr : null)
, betreft: (betreft.length? betreft : null)
, groupbymodule: groupbymodule
}
FCLTHeader.Requires({ plugins: ["jQuery"], js: ["jquery-ui.js"] });
%>
<html>
<head>
<% FCLTHeader.Generate({outputmode: outputmode}) %>
<script>
var todo_list = { BES: [],
CNT: [],
MLD: [],
MLDIN: [],
GOED: [],
OFFERTE: [],
RES: [],
FIN: [],
FIN2: []
}
function one_done(module)
{
todo_list[module] = [];
var all_done = true;
for (var m in todo_list)
{
if (todo_list[m].length > 0)
all_done = false;
}
if (all_done)
FcltMgr.reload();
}
function one_post(key_param, data, url, module)
{
if (todo_list[module].length == 0)
{
one_done(module);
return;
}
var data = data || {};
data[key_param] = todo_list[module].join(",")
<% protectRequest.dataToken("data"); %>
$.post(url,
data,
function(json, textStatus)
{
one_done(module);
},
"json");
}
function fac_grouped_by_betreft(row)
{
var rowData = JSON.parse(row.getAttribute("ROWDATA"));
var module = rowData.module;
var betreft = "";
switch (module)
{
case "BES":
case "CNT":
case "FIN":
case "RES":
case "MLDIN":
{
betreft = module;
break;
}
case "MLD":
case "GOED":
{
betreft = "MLDOP";
break;
}
case "OFFERTE":
{
betreft = "MLDOF";
break;
}
case "FIN2":
{
betreft = "FIN";
break;
}
default: INTERNAL_ERROR;
}
FcltMgr.openDetail("appl/fac/fac_fiattering_search.asp?betreft=" + betreft, L("lcl_menu_fac_fiattering"));
}
function fac_edit(row)
{
var facData = JSON.parse(row.getAttribute("ROWDATA"));
var item_key = row.getAttribute("ROWKEY");
var module = facData.module;
// We geven urole=fe mee omdat dat de lading het best dekt
switch (module)
{
case "BES":
{
FcltMgr.openDetail("appl/bes/bes_bestelling.asp?urole=fe&bes_key=" + item_key);
break;
}
case "CNT":
{
FcltMgr.openDetail("appl/cnt/cnt_contract.asp?urole=fe&cnt_key=" + item_key, L("lcl_cnt_contract") + " " + item_key);
break;
}
case "MLDIN":
{
FcltMgr.openDetail("appl/mld/mld_melding.asp?mld_key=" + item_key);
break;
}
case "MLD":
case "GOED":
case "OFFERTE":
{
FcltMgr.openDetail("appl/mld/mld_opdr.asp?opdr_key=" + item_key); // Urole zoekt mld_opdr_edit.asp zelf wel uit.
break;
}
case "RES":
{
FcltMgr.openDetail("appl/res/res_reservering.asp?urole=fe&rsv_ruimte_key=" + item_key);
break;
}
case "FIN":
case "FIN2":
{
FcltMgr.openDetail("appl/fin/fin_factuur.asp?fin_key=" + item_key, L("lcl_fin_invoice") + " " + item_key);
break;
}
default: INTERNAL_ERROR;
}
}
// Knop fiatteer gedrukt
function fac_approve(rowArray, isMulti, goedkeuren)
{
function opdrAcceptOfferCallback(json, textStatus)
{
function showVervolgOpdracht(json1, textStatus1)
{
// Automatisch een vervolg uitvoeringsopdracht (opdr_type is mld_typeopdr_typeopdr_key) aanmaken
// Als er een typeopdr_key is gedefinieerd voor de offerte, wordt er automatisch een opdracht aangemaakt. Anders refresh offerte.
if (json.typeopdr_key > 0)
{
var url = "appl/mld/mld_opdr.asp?urole=bo" // Om een opdracht te kunnen kopie<69>ren heb ik altijd "ORDBOF" rechten voor nodig. Dan kan ik ook urole=bo meegeven.
+ "&opdr_key=" + json.opdr_key
+ "&opdr_type=" + json.typeopdr_key
+ "&opdr_copy=1";
FcltMgr.openDetail(url, L("lcl_mld_opdr_uitvoeringopdracht")); // in nieuw tabje
FcltCallbackRefresh(json, textStatus); // van onzelf
}
else
FcltCallbackRefresh(json, textStatus);
}
one_done("OFFERTE");
if (json.success)
{
if (json.afwijsArray && json.afwijsArray.length > 0)
{
var data = { opdr_key: json.afwijsArray.join(","),
opdr_opm: L("lcl_mld_opdr_alternatief")
};
<% protectRequest.dataToken("data"); %>
$.post("../mld/opdr_reject_offer.asp?submit=1",
data,
function(json1, textStatus1)
{
showVervolgOpdracht(json1, textStatus1)
});
}
else
showVervolgOpdracht(json, textStatus);
}
else
FcltCallback(json, textStatus);
}
function off_accept(off_key_array)
{
// Alleen de eerste accepteren. Multi kan niet.
FcltMgr.openModalDetail("../mld/opdr_accept_offer.asp?opdr_key=" + off_key_array[0],
L("lcl_mld_accept"),
{ callback: opdrAcceptOfferCallback });
}
var theData = JSON.parse(rowArray[0].getAttribute("ROWDATA"));
var module = theData.module;
var autoConf = isMulti || module == "OFFERTE" || ((module == "FIN2" || module == "GOED") && goedkeuren);
var moduleBoo = (module == "FIN2" || module == "GOED"); // !moduleBoo == (module != "FIN2" && module != "GOED")
/* if (isMulti || module == "OFFERTE" ||
((module == "FIN2" || module == "GOED") && goedkeuren) ||
((module != "FIN2" && module != "GOED") && confirm(L("lcl_approve") + "?")))
//if (isMulti || module == "OFFERTE" || confirm(L("lcl_approve") + "?")) */
if (autoConf || !moduleBoo) {
FcltMgr.confirm(L("lcl_approve") + "?", { autoconfirm: autoConf }, function() {
todo_list[module] = [];
for (var i = 0; i < rowArray.length; i++)
{
var item_key = rowArray[i].getAttribute("ROWKEY")
theData = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
module = theData.module;
todo_list[module].push(item_key);
}
var data = {};
if (goedkeuren && !(<%=S("mld_opdr_refiat_preference")%> == 0 && isMulti))
{
var fiat = $("#has_sendforapproval").length == 0 || ($("#has_sendforapproval").length && $("#sendforapproval")[0].checked)? 1 : 0;
data.dofiat = fiat;
}
// Parallel opstarten
one_post("bes_key", {}, "../bes/bes_approve.asp", "BES");
one_post("cnt_key", {}, "../cnt/cnt_approve.asp", "CNT");
one_post("opdr_key", {}, "../mld/opdr_approve.asp", "MLD");
one_post("opdr_key", data, "../mld/opdr_goedkeur.asp", "GOED");
one_post("rsv_ruimte_key", {}, "../res/res_fiatteren.asp?", "RES");
one_post("fin_key", {}, "../fin/fin_approve.asp?a=1", "FIN");
one_post("fin_key", {}, "../fin/fin_goedkeur.asp?a=1", "FIN2");
if (todo_list["OFFERTE"].length > 0)
off_accept(todo_list["OFFERTE"]);
});
}
}
// Knop afwijzen gedrukt.
function fac_reject(rowArray, isMulti)
{
function bes_reject(bes_key_array)
{
url = "../bes/bes_reject.asp?bes_key=" + bes_key_array.join(",");
FcltMgr.openModalDetail(url,
L("lcl_bes_reject"),
{ callback: function(json, textStatus)
{
one_done("BES");
var data = { opmerk: json.opmerk }; // Reden ook voor de rest gebruiken.
one_post("opdr_key", data, "../mld/opdr_reject_save.asp", "MLD");
one_post("opdr_key", data, "../mld/opdr_reject_save.asp", "GOED");
one_post("cnt_key", data, "../cnt/cnt_reject_save.asp", "CNT");
one_post("rsv_ruimte_key", data, "../res/res_afwijzen_save.asp?", "RES");
one_post("fin_key", data, "../fin/fin_approve.asp?r=1", "FIN");
one_post("fin_key", data, "../fin/fin_goedkeur.asp?r=1", "FIN2");
one_post("mld_key", data, "../mld/mld_reject.asp", "MLDIN");
}}
);
}
function opdr_reject(opdr_key_array, module)
{
url = "../mld/opdr_reject.asp?opdr_key=" + opdr_key_array.join(",");
FcltMgr.openModalDetail(url,
L("lcl_mld_reject"),
{ callback: function(json, textStatus)
{
one_done(module);
var data = { opmerk: json.opmerk }; // Reden ook voor de rest gebruiken.
if (module != "GOED") // dan moet die nog
one_post("opdr_key", data, "../mld/opdr_reject_save.asp", "GOED");
one_post("cnt_key", data, "../cnt/cnt_reject_save.asp", "CNT");
one_post("rsv_ruimte_key", data, "../res/res_afwijzen_save.asp?", "RES");
one_post("fin_key", data, "../fin/fin_approve.asp?r=1", "FIN");
one_post("fin_key", data, "../fin/fin_goedkeur.asp?r=1", "FIN2");
one_post("mld_key", data, "../mld/mld_reject.asp", "MLDIN");
}}
);
}
function cnt_reject(cnt_key_array)
{
url = "../cnt/cnt_reject.asp?cnt_key=" + cnt_key_array.join(",");
FcltMgr.openModalDetail(url,
L("lcl_cnt_reject"),
{ callback: function(json, textStatus)
{
one_done(module);
var data = { opmerk: json.opmerk }; // Reden ook voor de rest gebruiken.
one_post("rsv_ruimte_key", data, "../res/res_afwijzen_save.asp?", "RES");
one_post("fin_key", data, "../fin/fin_approve.asp?r=1", "FIN");
one_post("fin_key", data, "../fin/fin_goedkeur.asp?r=1", "FIN2");
one_post("mld_key", data, "../mld/mld_reject.asp", "MLDIN");
}}
);
}
function res_reject(rsv_ruimte_key_array)
{
url = "../res/res_afwijzen.asp?rsv_ruimte_key=" + rsv_ruimte_key_array.join(",");
FcltMgr.openModalDetail(url,
L("lcl_res_reject"),
{ callback: function(json, textStatus)
{
one_done(module);
var data = { opmerk: json.opmerk }; // Reden ook voor de rest gebruiken.
one_post("fin_key", data, "../fin/fin_approve.asp?r=1", "FIN");
one_post("fin_key", data, "../fin/fin_goedkeur.asp?r=1", "FIN2");
one_post("mld_key", data, "../mld/mld_reject.asp", "MLDIN");
}}
);
}
function fin_reject(fin_key_array)
{
FcltMgr.confirm(L("lcl_reject") + "?", function() {
var data = { fin_key: fin_key_array.join(",") };
protectRequest.dataToken(data);
$.post("../fin/fin_approve.asp?r=1",
data,
function(json, textStatus)
{
var data = { opmerk: json.opmerk }; // Reden ook voor de rest gebruiken.
one_done(module);
one_post("mld_key", data, "../mld/mld_reject.asp", "MLDIN");
},
"json");
});
}
function mld_reject(mld_key_array, module)
{
url = "../mld/mld_reject.asp?mld_key=" + mld_key_array.join(",");
FcltMgr.openModalDetail(url,
L("lcl_mld_reject"),
{ callback: function(json, textStatus)
{
one_done(module);
if (todo_list["OFFERTE"].length == 0)
FcltCallbackRefresh(json, textStatus);
}}
);
}
function off_reject(off_key_array)
{ // Alleen de eerste afwijzen. Multi kan niet.
FcltMgr.openModalDetail("../mld/opdr_reject_offer.asp?opdr_key=" + off_key_array[0],
L("lcl_mld_reject"),
{ callback: FcltCallbackRefresh });
}
for (var i = 0; i < rowArray.length; i++)
{
var item_key = rowArray[i].getAttribute("ROWKEY")
var theData = JSON.parse(rowArray[i].getAttribute("ROWDATA"));
var module = theData.module;
if (i == 0) // Als er voor de tweede keer gefiatteerd of afgewezen wordt dan de todo lijst weer leeg maken.
todo_list[module] = [];
todo_list[module].push(item_key);
}
// De eerste zal een dialoog tonen met vraag om reden.
// De anderen krijgen allemaal dezelfde reden
if (todo_list["BES"].length > 0)
bes_reject(todo_list["BES"]);
else if (todo_list["MLD"].length > 0)
opdr_reject(todo_list["MLD"], "MLD");
else if (todo_list["GOED"].length > 0)
opdr_reject(todo_list["GOED"], "GOED");
else if (todo_list["CNT"].length > 0)
cnt_reject(todo_list["CNT"]);
else if (todo_list["RES"].length > 0)
res_reject(todo_list["RES"]);
else if (todo_list["FIN"].length > 0)
fin_reject(todo_list["FIN"]);
else if (todo_list["FIN2"].length > 0)
fin_reject(todo_list["FIN2"]);
else if (todo_list["MLDIN"].length > 0)
mld_reject(todo_list["MLDIN"]);
if (todo_list["OFFERTE"].length > 0)
off_reject(todo_list["OFFERTE"]);
}
function mld_instem(rowArray, isMulti)
{
var mldKeyString = getKeyString(rowArray);
FcltMgr.confirm(L("lcl_instem") + "?", { autoconfirm: isMulti }, function() {
var data = { mld_key: mldKeyString };
protectRequest.dataToken(data);
$.post("../mld/mld_instemmen.asp",
data,
FcltCallbackRefresh, // TODO, maar die doet hetzelfde volgens mij?
"json");
});
}
function mld_show_goedkeurmodal(rowArray, isMulti)
{
if (<%=S("mld_opdr_refiat_preference")%> == 0 && isMulti)
fac_approve(rowArray, isMulti, true);
else
{
$("#sendforapproval").prop('checked', true); // Checkbox weer zetten indien die was uitgeschakeld.
params = { width: "auto",
height: "auto",
modal: true,
resizable: false,
position: { my: "center", at: "center", of: window },
title: L("lcl_message"),
buttons: { "<%=safe.jsstring(L("lcl_goedkeur"))%>": function () { $("#dmodal").dialog('close'); fac_approve(rowArray, isMulti, true); },
"<%=safe.jsstring(L("lcl_cancel"))%>" : function () { $("#dmodal").dialog('close'); }
},
create: FcltMgr.fnCreateCloseButton("div#dmodal")
}
$("div#dmodal").dialog(params).dialog("open");
}
}
</script>
</head>
<body id="listbody">
<% var buttons_rp = [];
buttons_rp.push({ title: L("lcl_goedkeur"), action: "$('div#dmodal').dialog('close').remove();", icon: "fa-fclt-save" });
buttons_rp.push({ title: L("lcl_cancel"), action: "$('div#dmodal').dialog('close').remove();", icon: "fa-fclt-cancel" });
%>
<form name="u2" onSubmit="return false;">
<div id="dmodal" style="display:none">
<div>
<% ROFIELDTR("fld", "", L("lcl_goedkeur") + "?", {id: "modalsfatext"}); %>
</div>
<% if (S("mld_opdr_refiat_preference") == 1)
RWCHECKBOXTR("sendforapproval", "fldcheck", L("lcl_mld_sendfor_approval"), 1, {boxfirst: true}); %>
</div>
<%
function fnrowActionEnabler(oRs)
{
//var this_mld = mld.func_enabled_melding(oRs("mld_melding_key").Value);
var openStatus = oRs("fiatstatus").Value == "open";
var module = oRs("module").Value;
var eReject = openStatus && S("fin_enable_afwijzen") == 1; // Afwijzen.
var data = { eReject: eReject };
if (openStatus)
{
switch (module)
{
case "BES":
case "CNT":
case "FIN":
case "MLD":
case "RES": data.eApprove = true; break; // Fiatteren bestelling, contract, factuur, melding opdracht, reservering.
case "FIN2":
case "GOED": data.eGoedkeur = true; break; // Goedkeuren melding opdracht, factuur.
case "OFFERTE": data.eAccept = true; break; // Accepteren melding offerte.
case "MLDIN": data.eInstem = true; break; // Instemmen met melding.
default: INTERNAL_ERROR;
}
}
return data;
}
function allowFiat(oRs)
{ // op basis van de status geef ik aan of fiatteren/afwijzen mogelijk is (-1) of niet (0)
return (oRs("module").Value == "BES"? (oRs("statuskey").Value != 2? -1 : 0) : (oRs("module").Value == "RES"? (oRs("statuskey").Value == 2? -1 : 0) : (oRs("statuskey").Value != 3? -1 : 0)));
}
function prepareTotal(oRs)
{
return safe.curr(oRs("bedrag").Value);
}
function prepareModule(oRs)
{
switch (oRs("module").Value)
{
case "BES": return L("lcl_bes_bestelling"); break;
case "CNT": return L("lcl_cnt_contract"); break;
case "MLD":
case "GOED": return L("lcl_shared_order") + ":&nbsp;" + safe.html(oRs("type").Value); break;
case "OFFERTE": return safe.html(oRs("type").Value); break;
case "RES": return L("lcl_res_reservation"); break;
case "FIN":
case "FIN2": return (oRs("type").Value ? L("lcl_fin_factuur_type") + ":&nbsp;" + safe.html((oRs("type").Value)) :L("lcl_fin_invoice")); break;
case "MLDIN": return L("lcl_mld_concept") + ":&nbsp;" + safe.html(oRs("type").Value); break;
default: INTERNAL_ERROR;
}
}
function fnrowData(oRs)
{
if (groupbymodule) {
var data = { module: oRs("module_code").Value };
} else {
var data = { module: oRs("module").Value,
prefix: oRs("prefix").Value,
aanvraagnummer: oRs("aanvraagnummer").Value };
}
return JSON.stringify(data);
}
function fncolBesNr(oRs)
{ // Eigenlijk wil je een markering bij de parent, niet bij het child TODO
return safe.html((oRs("module").Value == "BES"? S("bes_bestelling_prefix") : "") + (oRs.fields("bes_bestelling_parentkey").Value > 0 ? oRs.fields("bes_bestelling_parentkey").Value + "*" : oRs.fields("aanvraagnummer").Value));
}
function fncolStatus(oRs)
{
switch (oRs.fields("module").Value)
{
case "BES": { return bes.getbesbestellingstatustext(oRs.fields("statuskey").Value); break; }
case "CNT": { return cnt.getcntstatustext(oRs.fields("statuskey").Value); break; }
case "MLD":
case "GOED": { return status.getopdrstatustext(oRs.fields("statuskey").Value); break; }
case "OFFERTE": { return L("lcl_mld_ter_acceptatie"); break; }
case "RES": { var fiatstatus = ""
switch (oRs.fields("fiatstatus").Value)
{
case "open": fiatstatus = L("lcl_res_ter_fiat"); // Resultaat uit de open catering bestellingen query.
break;
case "close": fiatstatus = L("lcl_res_goedgekeurd"); // Resultaat uit de gefiatteerde catering bestellingen query.
break;
case "reject": fiatstatus = L("lcl_res_afgewezen"); // Resultaat uit de afgewezen catering bestellingen query.
break;
}
return fiatstatus;
break;
}
case "FIN":
case "FIN2": { return fin.getfinstatustext(oRs.fields("statuskey").Value); break; }
case "MLDIN": { return mld.getmldstatustext(oRs.fields("statuskey").Value, oRs.fields("extra1").Value); break; }
}
}
function fncolfiatteur(oRs)
{
switch (oRs.fields("module").Value)
{
case "BES":
case "MLD":
case "MLDIN":
case "GOED":
case "OFFERTE":
case "RES":
case "FIN":
case "FIN2": { return oRs.fields("fiatteur").Value; break; }
case "CNT": { switch (oRs.fields("fiatteur").Value)
{
case "0": { return ''; break; } // Kan eigenlijk niet voorkomen.
case "1": { return L("lcl_cnt_approved_upto").format(S("cnt_contract_limit1")); break; }
case "2": { return L("lcl_cnt_approved_upto").format(S("cnt_contract_limit2")); break; }
case "3": { return L("lcl_cnt_approved_upto").format(S("cnt_contract_limit3")); break; }
}
}
}
}
function fncolGebouwTerrein(oRs)
{
if (oRs.fields("gebouw").Value == " " || oRs.fields("gebouw").Value == null)
if (oRs.fields("terrein").Value == " " || oRs.fields("terrein").Value == null)
return "";
else return oRs.fields("terrein").Value;
else return oRs.fields("gebouw").Value;
}
var sql = fiattering_sql(params);
var rst = new ResultsetTable({keyColumn: groupbymodule ? "module_code" : "request_key",
ID: "rfoTable",
sql: sql,
rowData: fnrowData,
rowActionEnabler: groupbymodule ? null : fnrowActionEnabler,
outputmode: outputmode,
filterParams: params,
showAll: showall,
emptySetString: L("lcl_rfo_no_items_to_approve")});
if (groupbymodule) {
rst.addColumn(new Column({ caption: L("lcl_fac_module"), content: "module" }));
rst.addColumn(new Column({ caption: L("lcl_count"), content: "aantal" }));
rst.addAction({action: "fac_grouped_by_betreft", caption: L("lcl_details"), isDefault: true});
} else {
rst.addColumn(new Column({caption: "dummy", content: allowFiat, hidden: true}));
rst.addColumn(new Column({caption: "dummy", content: "module", hidden: true}));
rst.addColumn(new Column({caption: L("lcl_request_key"), content: fncolBesNr}));
rst.addColumn(new Column({caption: L("lcl_date"), content: "datum", datatype: "date"}));
rst.addColumn(new Column({caption: L("lcl_rfo_requestor"), content: "prs_perslid_naam_full", hasActions: true }));
rst.addColumn(new Column({caption: L("lcl_rfo_total_sum"), content: prepareTotal, datatype: "currency"}));
rst.addColumn(new Column({caption: L("lcl_rfo_type"), content: prepareModule}));
rst.addColumn(new Column({caption: L("lcl_handler"), content: "uitvoerende"}));
rst.addColumn(new Column({caption: L("lcl_rfo_category"), content: "categorie"}));
rst.addColumn(new Column({caption: L("lcl_bes_RFO_status"), content: fncolStatus}));
if (user.hasCollegas())
rst.addColumn(new Column({caption: L("lcl_bes_approver"), content: fncolfiatteur}));
rst.addColumn(new Column({caption: L("lcl_location"), content: "locatie"}));
rst.addColumn(new Column({caption: L("lcl_bld_terra"), content: fncolGebouwTerrein, combine: true}));
rst.addColumn(new Column({caption: L("lcl_descr"), content: "omschrijving"}));
rst.addAction({action: "fac_edit", caption: L("lcl_details"), isDefault: true});
rst.addAction({action: "fac_approve", caption: L("lcl_approve"), enabler: "eApprove", multi: true, multiOnce: true});
rst.addAction({action: "mld_show_goedkeurmodal", caption: L("lcl_goedkeur"), enabler: "eGoedkeur", multi: true, multiOnce: true});
rst.addAction({action: "fac_approve", caption: L("lcl_accept"), enabler: "eAccept", multi: true, multiOnce: true});
rst.addAction({action: "fac_reject", caption: L("lcl_reject"), enabler: "eReject", multi: true, multiOnce: true});
rst.addAction({action: "mld_instem", caption: L("lcl_instem"), enabler: "eInstem", multi: true, multiOnce: true});
}
var cnt = rst.processResultset();
%>
</form>
</body>
</html>
<% ASPPAGE_END(); %>