Merge 2017.3 Gold D patches

svn path=/Website/trunk/; revision=38053
This commit is contained in:
Jos Groot Lipman
2018-06-01 15:53:28 +00:00
57 changed files with 1734 additions and 407 deletions

View File

@@ -1264,7 +1264,10 @@ api2 = {
lastkey = key;
if (!model.primary)
{
data.push(record);
if (to_skip > 0)
to_skip --;
else
data.push(record);
record = {};
total_count ++;
}
@@ -1274,7 +1277,10 @@ api2 = {
if (lastkey && data.length < limit)
{
total_count ++;
data.push(record);
if (to_skip > 0)
to_skip --;
else
data.push(record);
}
if ("merged_model" in model) // de disc_params truc
{

View File

@@ -92,11 +92,44 @@ function model_bez_kenmerk(params)
"dbs": "bez_kenmerk_systeem",
"label": L("mgt_srtkenmerk_systeem_adv"),
"typ": "number",
"LOV": L("mgt_kenmerk_systeemLOV"),
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 15,
"radios": [
{
"name": "ksystem",
"label": L("mgt_kenmerk_systeem"),
"mask": 1,
"defaultvalue": 1
},
{
"name": "overview",
"label": L("mgt_kenmerk_systeem_overview"),
"mask": 2,
"defaultvalue": 1
},
{
"name": "conf",
"label": L("mgt_kenmerk_systeem_conf"),
"mask": 4,
"defaultvalue": 1
},
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 1
}
]
}
],
"defaultvalue": 0,
"required": true
},
"length": {
"length": {
"dbs": "bez_kenmerk_lengte",
"label": L("mgt_srtkenmerk_lengte"),
"typ": "number"

View File

@@ -91,6 +91,14 @@ function model_bgt_budget()
"iscurrency": true,
"total": true
},
"vatoriginal": {
"dbs": "bgt_budget_btwbedrag_origineel",
"sql": "(BGT.getBudgetOpDatum(bgt_budget.bgt_budget_key, 1, NULL))",
"label": L("bgt_budget_origineel")+" "+L("lcl_fin_btwtabelwaarde_oms"),
"typ": "float",
"iscurrency": true,
"total": true
},
"amountmutation": {
"dbs": "bgt_budget_bedrag_mutatie",
"sql": "(BGT.getBudgetSoortMutatie(NULL, NULL, bgt_budget.prs_kostensoort_key, 0, 'EM', NULL))",
@@ -237,6 +245,42 @@ function model_bgt_budget()
{ // Zoek bij wijzigen van kostenplaats de kostenplaatsgrp_key op
}
this.hook_pre_delete = function(params, key)
{
var key_arr = getFParamIntArray("id");
var sql_c = "SELECT COUNT(*) aantal"
+ " FROM mld_opdr"
+ " WHERE prs_kostensoort_key IN"
+ " (SELECT prs_kostensoort_key"
+ " FROM bgt_budget"
+ " WHERE bgt_budget_key IN (" + key_arr.join(",") + ")"
+ " )";
var oRs_c = Oracle.Execute(sql_c);
var nr_mld_opdr = oRs_c("aantal").Value;
oRs_c.Close();
if (nr_mld_opdr > 0)
{
// abort_with_warning(L("bgt_budget_delete_val1").format(L("lcl_fin_contracten"))); // De geselecteerde budgetten hebben contracten. Verwijder deze eerst.
abort_with_warning("De geselecteerde budgetten hebben contracten. Verwijder deze eerst.");
}
var sql_m = "SELECT COUNT(*) aantal"
+ " FROM bgt_budgetmutatie"
+ " WHERE bgt_budget_key_naar IN (" + key_arr.join(",") + ")"
+ " OR bgt_budget_key_van IN (" + key_arr.join(",") + ")";
var oRs_m = Oracle.Execute(sql_m);
var nr_mutatie = oRs_m("aantal").Value;
oRs_m.Close();
if (nr_mutatie > 0)
{
// abort_with_warning(L("bgt_budget_delete_val1").format(L("bgt_budget_mutaties"))); // De geselecteerde budgetten hebben mutaties. Verwijder deze eerst.
abort_with_warning("De geselecteerde budgetten hebben mutaties. Verwijder deze eerst.");
}
// Er zijn geen contracten of budgetmutaties bij de geselecteerde budget(ten) bekend.
// Verwijderen is geen probleem meer.
}
var v_budgetdiscipline = getQParamInt("budgetdiscipline", -1);
if (v_budgetdiscipline == -1)
{

View File

@@ -260,6 +260,12 @@ function model_fin_factuur()
// Bij klonen van een factuur met een vast factuurnr blijft deze ongewijzigd.
obj.invoice = invoice;
}
var v_company = obj.company.id;
%>
<script type="text/javascript">
<% if (v_company) { %> var company = "<%=v_company%>"; <% } %>
</script>
<%
}
else
{

View File

@@ -291,6 +291,25 @@ function model_mld_opdr()
btw_data.btw_val = oRs("fin_btwtabelwaarde_perc").Value || "0";
}
oRs.Close();
/*
#TWYN#53173
De bestaande knop "Kopi<70>ren" is komen te vervallen. Daarvoor in de plaats zijn twee nieuwe knoppen toegevoegd: "Nieuwe opdracht" en "nieuwe subopdracht".
Bij een nieuwe subopdracht is het opdrachtnummer gelijk aan die van de opdracht van waaruit gekopieerd wordt en is niet te wijzigen. Het volgnummer staat standaard op volgnr(max+1).
if (obj._is_clone == 2)) // nieuw subcontract: bepaal hoogste volgnummer bij dit contract, en vul deze alvast in.
{
var sql = "SELECT COALESCE(MAX(s.mld_opdr_bedrijfopdr_volgnr), 0) + 1 volgnr"
+ " FROM mld_opdr s"
+ " WHERE s.mld_opdr_ordernr ="
+ " (SELECT m.mld_opdr_ordernr"
+ " FROM mld_opdr m"
+ " WHERE m. mld_opdr_key = " + mld_opdr_id
+ " )";
var oRs = Oracle.Execute(sql);
obj.sequence = oRs("volgnr").Value;
oRs.Close();
}
*/
}
%>
@@ -314,6 +333,11 @@ function model_mld_opdr()
var v_costtype = (typeof obj.costtype == "object" ? obj.costtype.id : obj.costtype);
checkAanwezigBudget(v_costtype);
/*
TWYN#53173 : waarschijnlijk pas met 2018.1
obj._is_clone=1 --> nieuwe (hoofd) opdracht
obj._is_clone=2 --> nieuwe sub-opdracht
*/
if (isclone) // Bij kopie van opdracht geen nieuw nummer genereren.
{
var v_project_key = (typeof obj.budgetproject == "object" ? obj.budgetproject.id : obj.budgetproject);

View File

@@ -61,8 +61,41 @@ function model_mld_srtkenmerk(params)
"dbs": "mld_srtkenmerk_systeem",
"label": L("mgt_srtkenmerk_systeem_adv"),
"typ": "number",
"LOV": L("mgt_srtkenmerk_systeemLOV"),
"defaultvalue": 0,
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 15,
"radios": [
{
"name": "ksystem",
"label": L("mgt_kenmerk_systeem"),
"mask": 1,
"defaultvalue": 1
},
{
"name": "overview",
"label": L("mgt_kenmerk_systeem_overview"),
"mask": 2,
"defaultvalue": 1
},
{
"name": "conf",
"label": L("mgt_kenmerk_systeem_conf"),
"mask": 4,
"defaultvalue": 1
},
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 1
}
]
}
],
"defaultvalue": 0,
"required": true
},
"length": {

View File

@@ -97,7 +97,41 @@ function model_prs_kenmerk(niveau, params)
"system": {
"dbs": "prs_kenmerk_systeem",
"label": L("mgt_srtkenmerk_systeem"),
"typ": "check"
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 15,
"radios": [
{
"name": "ksystem",
"label": L("mgt_kenmerk_systeem"),
"mask": 1,
"defaultvalue": 1
},
{
"name": "overview",
"label": L("mgt_kenmerk_systeem_overview"),
"mask": 2,
"defaultvalue": 1
},
{
"name": "conf",
"label": L("mgt_kenmerk_systeem_conf"),
"mask": 4,
"defaultvalue": 1
},
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 1
}
]
}
]
},
"length": {
"dbs": "prs_kenmerk_lengte",

View File

@@ -540,7 +540,12 @@ function report_GET(params)
order.push(i+1)
sql += " ORDER BY " + order.join(", ");
var maxcnt = params.filter.showall==1?S("qp_maxrows2"): (params.filter.ismobile?S("qp_maxrows_mobile"):S("qp_maxrows"));
if (params.filter.limit > 0)
maxcnt = parseInt(params.filter.limit, 10);
else
var maxcnt = params.filter.showall==1?S("qp_maxrows2"): (params.filter.ismobile?S("qp_maxrows_mobile"):S("qp_maxrows"));
if (params.filter.offset > 0)
maxcnt += parseInt(params.filter.offset, 10);
if (params.filter.scf_pivot == 1)
{
if (params.columns.length < 2)

View File

@@ -60,7 +60,41 @@ function model_res_srtkenmerk(params)
"dbs": "res_srtkenmerk_lengte",
"label": L("mgt_srtkenmerk_lengte"),
"typ": "number",
"multiedit": true
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 15,
"radios": [
{
"name": "ksystem",
"label": L("mgt_kenmerk_systeem"),
"mask": 1,
"defaultvalue": 1
},
{
"name": "overview",
"label": L("mgt_kenmerk_systeem_overview"),
"mask": 2,
"defaultvalue": 1
},
{
"name": "conf",
"label": L("mgt_kenmerk_systeem_conf"),
"mask": 4,
"defaultvalue": 1
},
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 1
}
]
}
],
"multiedit": true
},
"decimals": {
"dbs": "res_srtkenmerk_dec",

View File

@@ -188,7 +188,17 @@ user.auth_required_or_abort(this_bestelopdr.canReadAny || this_bestelling.isVera
Title: L("lcl_status_details") + " " + S("bes_bestelopdr_prefix") + bes_bestelopdr.bestelopdr_id
}
}
ROFIELDTR("fld", L("lcl_bes_Bes_status"), bes_bestelopdr.statustxt, params);
var statustxt = bes_bestelopdr.statustxt;
var aantal = 0;
var aantalontv = 0;
for (var i = 0; i < bes_bestelopdr.artikel_arr.length; i++)
{
aantal = aantal + bes_bestelopdr.artikel_arr[i].aantal;
aantalontv = aantalontv + bes_bestelopdr.artikel_arr[i].aantalontv;
}
if (bes_bestelopdr.status == 4 && aantalontv > 0 && aantalontv < aantal)
statustxt += "\n" + "Deels geleverd"; // TODO in 2018.1 harde tekst vervangen door lcl_bes_ord_deelsgeleverd.
ROFIELDTR("fld", L("lcl_bes_Bes_status"), statustxt, params);
ROFIELDTR("fld", L("lcl_bes_Bes_Owner"), bes_bestelopdr.prs_perslid_naam);
if (bes_bestelling.perslid_key_voor > 0 && bes_bestelling.perslid_key_voor != bes_bestelopdr.perslid_key)
{

View File

@@ -4,6 +4,7 @@ $(function ()
});
var kostensoort_btw = 0;
var last_account_key = -1;
function init_budget()
{
@@ -19,6 +20,7 @@ function init_budget()
$("#amount").change( change_amount );
$("#vat").change( change_vat );
$("#account").change( change_account );
$("input#contingency").change( change_contingency );
// budgetdiscipline en budgetproject kunnen ook als gekozen filter worden meegegeven
@@ -128,8 +130,9 @@ function change_rubriek()
function change_groep()
{
var groep_key = $("#costtypegroup").val();
var is_reserve = !(groep_key > 0); // Als het budget een kostensoortgroep heeft dan is het geen reserve.
fill_rubriekselector("S", groep_key);
use_contingency(false);
use_contingency(is_reserve); // als groep weer leeg is gemaakt mag het budget wel weer reserve zijn/
fill_opdrachtselector("OP", groep_key);
}
@@ -213,6 +216,17 @@ function change_account()
// Vul de prs_kostenplaatsgrp_key
var costgrp_key = $("#account option:selected").attr("par_key");
$("#costgroup").val(costgrp_key);
var account_key = $("#account").val();
if (account_key > 0)
last_account_key = account_key;
}
function change_contingency()
{
var is_reserve = $("input#contingency").prop('checked');
$("#account").val( is_reserve ? -1 : last_account_key);
$("#account").prop("disabled", is_reserve);
}
function fill_opdrachtselector(niveau, parent_key, init_key)
@@ -252,6 +266,7 @@ function fill_plaatsselector(niveau, parent_key, init_key)
function use_contingency(contingency_mode)
{
// is reservebudget, kan aangezet worden als alleen kostenrubriek is gekozen.
if (contingency_mode)
{
$("input#contingency").prop("disabled", false );
@@ -261,6 +276,7 @@ function use_contingency(contingency_mode)
$("input#contingency").prop('checked', false);
$("input#contingency").prop("disabled", true );
}
change_contingency();
}
function process_info(data)
@@ -313,7 +329,10 @@ function process_info(data)
}
if (sel_key > -1)
{
select.val(sel_key);
if (data.niveau == "KP")
last_account_key = sel_key;
}
//$("input#contingency").prop("disabled", true );
}

View File

@@ -174,6 +174,8 @@ var transitParam = buildTransitParam([]);
+ " f.fin_factuur_key,"
+ " f.fin_factuur_datum factuurdatum,"
+ " f.fin_factuur_totaal gefactureerd,"
+ " f.fin_factuur_totaal_btw gefactureerd_btw,"
+ " f.fin_factuur_advies adviesdatum,"
+ " bgt_project_omschrijving deelproject,"
+ " ins_discipline_omschrijving project"
+ " FROM mld_opdr o,"
@@ -304,8 +306,8 @@ var transitParam = buildTransitParam([]);
+ " , p.scode sortcode"
+ " , MAX(BGT.getBudgetOpDatum(b.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", NULL)) budget_origineel"
+ " , MAX(BGT.getBudgetOpDatum(b.bgt_budget_key, "+ (bgt_inclbtw ? 2 : 0) + ", SYSDATE)) budget_actueel"
+ " , MAX(BGT.getBudgetSoortMutatie(NULL, NULL, p.prs_kostensoort_key, "+ (bgt_inclbtw ? 2 : 0) + ", 'AR', NULL)) budget_reserve"
+ " , MAX(BGT.getBudgetSoortMutatie(NULL, NULL, p.prs_kostensoort_key, "+ (bgt_inclbtw ? 2 : 0) + ", 'EM', NULL)) budget_mutatie"
+ " , MAX(BGT.getBudgetSoortMutatie(p.bgt_kostenrubriek_key, p.prs_kostensoortgrp_key, p.prs_kostensoort_key, "+ (bgt_inclbtw ? 2 : 0) + ", 'AR', NULL)) budget_reserve"
+ " , MAX(BGT.getBudgetSoortMutatie(p.bgt_kostenrubriek_key, p.prs_kostensoortgrp_key, p.prs_kostensoort_key, "+ (bgt_inclbtw ? 2 : 0) + ", 'EM', NULL)) budget_mutatie"
+ " FROM bgt_v_project_full p"
+ " , bgt_budget b"
+ " WHERE ( (p.prs_kostensoort_key = b.prs_kostensoort_key)"
@@ -858,6 +860,25 @@ var transitParam = buildTransitParam([]);
}
// KOLOM GEFACTUREERD
function invoiceLink(p_outputmode, p_groupby, p_oRs, p_val)
{
var v = p_val;
if (p_outputmode != 3)
{
if (p_groupby < 4 && p_oRs("prs_kostensoort_key").Value)
{
v = "<span class='details' onclick='FcltMgr.stopPropagation(event); naarfacturen({0}, {1}, {2}, this)'>" + v +"</span>";
if (p_groupby==3)
v = (v).format(p_oRs("prs_kostensoort_key").Value, null, null);
if (p_groupby==2)
v = (v).format(null, p_oRs("mld_opdr_key").Value, null);
if (p_groupby==1)
v = (v).format(null, null, p_oRs("fin_factuur_key").Value);
}
}
return v;
}
function invoicesShow(oRs)
{
var v = safe.curr(Math.round(oRs("gefactureerd").Value), true);
@@ -865,28 +886,47 @@ var transitParam = buildTransitParam([]);
var show_empty = false;
if (show_empty || v != 0)
{
if (outputmode != 3)
{
if (groupby < 4 && oRs("prs_kostensoort_key").Value)
{
v = "<span class='details' onclick='FcltMgr.stopPropagation(event); naarfacturen({0}, {1}, {2}, this)'>" + v +"</span>";
if (groupby==3)
v = (v).format(oRs("prs_kostensoort_key").Value, null, null);
if (groupby==2)
v = (v).format(null, oRs("mld_opdr_key").Value, null);
if (groupby==1)
v = (v).format(null, null, oRs("fin_factuur_key").Value);
}
}
return v;
v = invoiceLink(outputmode, groupby, oRs, v);
return v;
}
}
function invoicesAmount(oRs)
{
var v = Math.round(oRs("gefactureerd").Value);
return v;
var v = Math.round(oRs("gefactureerd").Value);
return v;
}
// KOLOM GEFACTUREERD BTW
function invoicesVatShow(oRs)
{
var v = safe.curr(Math.round(oRs("gefactureerd_btw").Value), true);
var show_empty = false;
if (show_empty || v != 0)
{
v = invoiceLink(outputmode, groupby, oRs, v);
return v;
}
}
function invoicesVatAmount(oRs)
{
var v = Math.round(oRs("gefactureerd_btw").Value);
return v;
}
function invoicesIncShow(oRs)
{
var v = safe.curr(Math.round(oRs("gefactureerd").Value + oRs("gefactureerd_btw").Value), true);
var show_empty = false;
if (show_empty || v != 0)
{
v = invoiceLink(outputmode, groupby, oRs, v);
return v;
}
}
function invoicesIncAmount(oRs)
{
var v = Math.round(oRs("gefactureerd").Value + oRs("gefactureerd_btw").Value);
return v;
}
// KOLOM TE FACTUREREN
function invoicestogoShow(oRs)
{
@@ -1010,9 +1050,18 @@ var transitParam = buildTransitParam([]);
if (groupby != 1)
{
rst.addColumn(new Column({caption: L("bgt_opdrachten"), content: ordersShow, fnAmount: ordersAmount, datatype: "currency", total: true }));
}
if (groupby > 2)
{
rst.addColumn(new Column({caption: L("bgt_opdrachtentogo"), content: orderstogoShow, fnAmount: orderstogoAmount, datatype: "currency", total: true }));
}
rst.addColumn(new Column({caption: L("bgt_facturen"), content: invoicesShow, fnAmount: invoicesAmount, datatype: "currency", total: true }));
if (groupby == 1)
{
rst.addColumn(new Column({caption: L("lcl_fin_btwsum"), content: invoicesVatShow, fnAmount: invoicesVatAmount, datatype: "currency", total: true }));
rst.addColumn(new Column({caption: L("lcl_fin_total_sum"), content: invoicesIncShow, fnAmount: invoicesIncAmount, datatype: "currency", total: true }));
rst.addColumn(new Column({caption: L("lcl_fin_adviesdatum"), content: "adviesdatum"}));
}
if (groupby != 1)
rst.addColumn(new Column({caption: L("bgt_facturentogo"), content: invoicestogoShow, fnAmount: invoicestogoAmount, datatype: "currency", total: true }));
@@ -1048,20 +1097,11 @@ var transitParam = buildTransitParam([]);
rst.addColumn(new Column({caption: L("bgt_opdrachtentogo"), content: rs_contracteren}));
rst.addColumn(new Column({caption: L("bgt_facturentogo"), content: rs_factureren}));
}
rst.addColumn(new Column({caption: L("bgt_facturen"), content: "gefactureerd"}));
if (groupby != 1) // denk ik
{
rst.addColumn(new Column({caption: L("bgt_opdrachten"), content: "gecontracteerd"}));
rst.addColumn(new Column({caption: L("bgt_opdrachtentogo"), content: "tecontracteren"}));
rst.addColumn(new Column({caption: L("bgt_facturentogo"), content: "tefactureren"}));
}
//
rst.addColumn(new Column({caption: L("bgt_facturen"), content: rs_facturen}));
if (groupby != 1) // denk ik
{
rst.addColumn(new Column({caption: L("bgt_opdrachten"), content: rs_contracten}));
rst.addColumn(new Column({caption: L("bgt_opdrachtentogo"), content: rs_contracteren}));
rst.addColumn(new Column({caption: L("bgt_facturentogo"), content: rs_factureren}));
}
}

View File

@@ -22,12 +22,12 @@ function object_merge(){
function bgt_budgetdiscipline_foreign(p_checkauth)
{
var tbl = "(SELECT d.ins_discipline_key"
+ ", p.bgt_disc_params_code ||' - '|| d.ins_discipline_omschrijving oms"
+ " FROM ins_tab_discipline d"
+ " , bgt_disc_params p"
+ " WHERE d.ins_discipline_key = p.bgt_ins_discipline_key"
+ " AND d.ins_discipline_module = 'BGT'"
+ " AND d.ins_discipline_verwijder IS NULL";
+ " , d.ins_discipline_omschrijving oms"
+ " FROM ins_tab_discipline d"
+ " , bgt_disc_params p"
+ " WHERE d.ins_discipline_key = p.bgt_ins_discipline_key"
+ " AND d.ins_discipline_module = 'BGT'"
+ " AND d.ins_discipline_verwijder IS NULL";
if (p_checkauth)
{
tbl += ""
@@ -41,7 +41,8 @@ function bgt_budgetdiscipline_foreign(p_checkauth)
var foreign = {
"tbl": tbl,
"key": "ins_discipline_key",
"desc": "oms"
"desc": "oms",
"order": "oms"
};
return foreign;

View File

@@ -21,7 +21,7 @@ function init_factuur()
{ // rechtstreeks vanuit fin_factuur
var v_budgetdiscipline = (typeof $("#budgetdiscipline").val() == "undefined" ? -1 : $("#budgetdiscipline").val() );
var v_budgetproject = (typeof $("#budgetproject").val() == "undefined" ? -1 : $("#budgetproject").val() );
var v_company = (typeof $("#company").val() == "undefined" ? -1 : $("#company").val() );
var v_company = (typeof $("#company").val() == "undefined" ? (typeof company == "undefined" ? -1 : company) : $("#company").val() );
var v_order = (typeof $("#order").val() == "undefined" ? -1 : $("#order").val() );
}
else

View File

@@ -241,7 +241,7 @@ switch (req_info)
case "D":
{
sql = "SELECT d.ins_discipline_key sel_key"
+ " , p.bgt_disc_params_code ||' '||d.ins_discipline_omschrijving sel_oms"
+ " , d.ins_discipline_omschrijving sel_oms"
+ " , d.ins_discipline_btw btw_inc"
+ " , NULL btw_val"
+ " , NULL grp_key"
@@ -257,9 +257,9 @@ switch (req_info)
+ " (SELECT ins_discipline_key FROM fac_v_webgebruiker"
+ " WHERE prs_perslid_key = " + user_key
+ " AND (fac_gebruiker_prs_level_read<9 OR fac_gebruiker_alg_level_read<9))";
order = " ORDER BY ins_discipline_volgnr"
+ " , p.bgt_disc_params_code"
+ " , p.bgt_disc_params_code ||' - '||d.ins_discipline_omschrijving";
order = " ORDER BY NVL(ins_discipline_volgnr, 0)"
+ " , d.ins_discipline_omschrijving";
break;
}
case "P":
@@ -277,7 +277,7 @@ switch (req_info)
+ " FROM bgt_project p"
+ " WHERE p.bgt_project_verwijder IS NULL"
+ " AND p.ins_discipline_key = " + parent_key;
order = " ORDER BY p.bgt_project_volgnr"
order = " ORDER BY NVL(p.bgt_project_volgnr, 0)"
+ " , p.bgt_project_code"
+ " , p.bgt_project_code ||' - '|| p.bgt_project_omschrijving";
break;

View File

@@ -82,6 +82,24 @@ scaffolding(this_model,
"reference"
]
},
/*
// TWYN#53173 Ook kunnen kopieren van een opdracht (nieuw opdrachtnummer genereren, en volgnr=0)
"show": {
"no_clone": true,
"buttons": [
{
"title": "Nieuwe opdracht", //L("lcl_opdr_new_opdr"),
"action": "scf_clone()",
"icon": "clone.png"
},
{
"title": "Nieuwe subopdracht", //L("lcl_opdr_new_subopdr"),
"action": "scf_clone(2)", // Let op: de betekenis van hoofd- en subopdracht zijn nu omgedraaid!
"icon": "copy.png"
}
]
},
*/
"edit": {
"requires": {
"js": ["../bgt/bgt_budget.js"]

118
APPL/FAC/fac_anonymize.asp Normal file
View File

@@ -0,0 +1,118 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: fac_anonymize.asp
Description: Het anonimiseren van modules.
Parameters: moduleArray
Note:
*/ %>
<%
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<%
protectRequest.validateToken();
var moduleArray = getFParamArray("moduleString");
var autfunction = "WEB_PRSSYS";
var authparams = user.checkAutorisation(autfunction);
var anonymize_period = S("anonymize_period");
var startdatum = getFParamDate("startdatum"); // Periode van
var einddatum = getFParamDate("einddatum"); // Perdiode tot
var result = { key: moduleArray.join(","), success: true };
var last_einddatum = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - anonymize_period);
if (einddatum > last_einddatum)
einddatum = last_einddatum;
var anodatetime = new Date();
// Eerst PRS anonimiseren. De andere modules hebben allemaal referenties naar PRS.
// Bijvoorbeeld het veld bez_afspraak_gastheer die door trigger automatisch weer wordt gevuld met tekstnaam van host.
var sql;
var anosql = "BEGIN"
// Persoon als eerste i.v.m. tekstovername van gastheer bij afspraken.
if (inArray("PRS", moduleArray))
{ // Anonimiseer procedure voor PRS aanroepen.
anosql += " ano.anonymizeprs(" + startdatum.beginToSQL() + ", " + einddatum.endToSQL() + ");";
}
if (inArray("BES", moduleArray))
{ // Anonimiseer procedure voor PRS aanroepen.
anosql += " ano.anonymizebes(" + startdatum.beginToSQL() + ", " + einddatum.endToSQL() + ");";
}
if (inArray("BEZ", moduleArray))
{ // Anonimiseer procedure voor BEZ aanroepen.
anosql += " ano.anonymizebez(" + startdatum.beginToSQL() + ", " + einddatum.endToSQL() + ");";
}
if (inArray("MLD", moduleArray))
{ // Anonimiseer procedure voor PRS aanroepen.
anosql += " ano.anonymizemld(" + startdatum.beginToSQL() + ", " + einddatum.endToSQL() + ");";
}
anosql += " END;";
Oracle.Execute(anosql);
var messageArray = [];
if (inArray("BES", moduleArray))
{ // Bepalen hoeveel bestellingen zijn geanonimiseerd.
sql = "SELECT COUNT(ft.fac_tracking_key) aantalbes"
+ " FROM fac_tracking ft"
+ " WHERE ft.fac_tracking_datum >= " + anodatetime.toSQL(true, true)
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = ('BESANO'))";
oRs = Oracle.Execute(sql);
messageArray.push(oRs("aantalbes").Value + " " + L("lcl_bes_bestellingen"));
oRs.Close();
}
if (inArray("BEZ", moduleArray))
{ // Bepalen hoeveel afspraken zijn geanonimiseerd.
sql = "SELECT COUNT(ft.fac_tracking_key) aantalbez"
+ " FROM fac_tracking ft"
+ " WHERE ft.fac_tracking_datum >= " + anodatetime.toSQL(true, true)
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = ('BEZANO'))";
oRs = Oracle.Execute(sql);
messageArray.push(oRs("aantalbez").Value + " " + L("lcl_bez_appointments"));
oRs.Close();
}
if (inArray("MLD", moduleArray))
{ // Bepalen hoeveel bestellingen zijn geanonimiseerd.
sql = "SELECT COUNT(ft.fac_tracking_key) aantalmld"
+ " FROM fac_tracking ft"
+ " WHERE ft.fac_tracking_datum >= " + anodatetime.toSQL(true, true)
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = ('MLDANO'))";
oRs = Oracle.Execute(sql);
messageArray.push(oRs("aantalmld").Value + " " + L("lcl_mld_meldingen"));
oRs.Close();
}
if (inArray("PRS", moduleArray))
{ // Bepalen hoeveel afspraken zijn geanonimiseerd.
sql = "SELECT COUNT(ft.fac_tracking_key) aantalprs"
+ " FROM fac_tracking ft"
+ " WHERE ft.fac_tracking_datum >= " + anodatetime.toSQL(true, true)
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = ('PRSANO'))";
oRs = Oracle.Execute(sql);
messageArray.push(oRs("aantalprs").Value + " " + L("lcl_prs_persons"));
oRs.Close();
}
result.message = L("lcl_fac_following_anonymized") + ":\n" + messageArray.join("\n");
Response.Write(JSON.stringify(result));
%>

View File

@@ -0,0 +1,179 @@
<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: fac_anonimize_list.asp
Description: Toont van elke module het aantal te anonimeren records.
Parameters: module: filtert het resultaat (BEZ, PRS etc)
Context:
Requires: WEB_PRSSYS autorisatie
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="fac.inc" -->
<%
var showall = getQParamInt("showall", 0) == 1;
var outputmode = getQParamInt("outputmode", 0);
var startdatum = new Date(1); // Periode van (Startdatum is dan 1970. Bij doorgeven verwacht getFParamDate "startdatum > 0", daarom 1)
var einddatum = getQParamDate("einddatum"); // Perdiode tot
var autfunction = "WEB_PRSSYS";
var authparams = user.checkAutorisation(autfunction);
FCLTHeader.Requires({ plugins: ["jQuery"] })
%>
<html>
<head>
<% FCLTHeader.Generate({outputmode: outputmode}) %>
</head>
<body id="listbody">
<script type="text/javascript">
function mld_anonymize(rowArray, isMulti)
{
var pmoduleString = getKeyString(rowArray);
FcltMgr.confirm(L("lcl_shared_doaction1").format(L("mgt_kenmerk_systeem_ano")),
{ autoconfirm: isMulti },
function() {
var data = { moduleString: pmoduleString,
startdatum: <%= startdatum.getTime() %>,
einddatum: <%= einddatum.getTime() %> };
protectRequest.dataToken(data);
$.post("../fac/fac_anonymize.asp",
data,
FcltCallbackRefresh,
"json");
}
);
}
</script>
<%
var sql;
var sqln = [];
// Tijdelijk uitschakelen van het anonimiseren van BES i.v.m. trage onderstaande query die ook in de ANO package wordt gebruikt.
//sql = "SELECT 'BES' module"
// + " , " + safe.quoted_sql(L("lcl_bes_bestellingen")) + " onderdeel"
// + " , COUNT(b.bes_bestelling_key) aantal"
// + " FROM bes_bestelling b"
// + " WHERE (SELECT MAX(ft.fac_tracking_datum)"
// + " FROM fac_tracking ft"
// + " WHERE ft.fac_tracking_refkey = b.bes_bestelling_key"
// + " AND ft.fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key"
// + " FROM fac_srtnotificatie"
// + " WHERE fac_srtnotificatie_xmlnode = 'bestelling'"
// + " AND fac_srtnotificatie_code != 'BESANO')) BETWEEN " + startdatum.beginToSQL() + " AND " + einddatum.endToSQL()
// + " AND b.bes_bestelling_status IN (1, 6, 7, 8)"
// + " AND NOT EXISTS (SELECT ft.fac_tracking_key"
// + " FROM fac_tracking ft"
// + " WHERE ft.fac_tracking_refkey = b.bes_bestelling_key"
// + " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
// + " FROM fac_srtnotificatie"
// + " WHERE fac_srtnotificatie_code = 'BESANO'))";
//sqln.push(sql);
sql = "SELECT 'BEZ' module"
+ " , " + safe.quoted_sql(L("lcl_bez_appointments")) + " onderdeel"
+ " , COUNT(bez_afspraak_key) aantal"
+ " FROM bez_afspraak"
+ " WHERE bez_afspraak_datum BETWEEN " + startdatum.beginToSQL() + " AND " + einddatum.endToSQL()
+ " AND NOT EXISTS"
+ " (SELECT ft.fac_tracking_key"
+ " FROM fac_tracking ft"
+ " WHERE ft.fac_tracking_refkey = bez_afspraak_key"
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = 'BEZANO'))";
sqln.push(sql);
// Tijdelijk uitschakelen van het anonimiseren van MLD i.v.m. trage onderstaande query die ook in de ANO package wordt gebruikt.
//sql = "SELECT 'MLD' module"
// + " , " + safe.quoted_sql(L("lcl_mld_meldingen")) + " onderdeel"
// + " , COUNT(m.mld_melding_key) aantal"
// + " FROM mld_melding m"
// + " WHERE (SELECT MAX(ft.fac_tracking_datum)"
// + " FROM fac_tracking ft"
// + " WHERE ft.fac_tracking_refkey = m.mld_melding_key"
// + " AND ft.fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key"
// + " FROM fac_srtnotificatie"
// + " WHERE fac_srtnotificatie_xmlnode = 'melding'"
// + " AND fac_srtnotificatie_code != 'MLDANO')) BETWEEN " + startdatum.beginToSQL() + " AND " + einddatum.endToSQL()
// + " AND m.mld_melding_status IN (1, 6)"
// + " AND NOT EXISTS (SELECT ft.fac_tracking_key"
// + " FROM fac_tracking ft"
// + " WHERE ft.fac_tracking_refkey = m.mld_melding_key"
// + " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
// + " FROM fac_srtnotificatie"
// + " WHERE fac_srtnotificatie_code = 'MLDANO'))";
//sqln.push(sql);
sql = "SELECT 'PRS' module"
+ " , " + safe.quoted_sql(L("lcl_prs_persons")) + " onderdeel"
+ " , COUNT(p.prs_perslid_key) aantal"
+ " FROM prs_perslid p"
+ " WHERE p.prs_perslid_verwijder IS NOT NULL"
+ " AND p.prs_perslid_verwijder BETWEEN " + startdatum.beginToSQL() + " AND " + einddatum.endToSQL()
+ " AND NOT EXISTS (SELECT ft.fac_tracking_key"
+ " FROM fac_tracking ft"
+ " WHERE ft.fac_tracking_refkey = p.prs_perslid_key"
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = 'PRSANO'))";
sqln.push(sql);
var currentWeekDay = new Date().getDay();
var lessDays = currentWeekDay == 0 ? 6 : currentWeekDay - 1;
var startdatumweek = new Date(new Date().getTime() - (1000 * 60 * 60 * 24 * lessDays));
sql = "SELECT module"
+ " , onderdeel"
+ " , aantal"
+ " , (SELECT COUNT(ft.fac_tracking_key)"
+ " FROM fac_tracking ft"
+ " WHERE ft.fac_tracking_datum BETWEEN " + startdatumweek.beginToSQL() + " AND " + new Date().endToSQL()
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = (module || 'ANO'))) anonimized_thisweek"
+ " , (SELECT COUNT(ft.fac_tracking_key)"
+ " FROM fac_tracking ft"
+ " WHERE ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = (module || 'ANO'))) anonimized_total"
+ " FROM (" + sqln.join(" UNION ") + ")";
function fncolaantal(oRs)
{
return oRs("aantal").Value != null? oRs("aantal").Value : 0;
}
var rst = new ResultsetTable({ sql: sql,
keyColumn: "module",
ID: "memorizetable",
title : "Anonimiseren",
showAll: showall,
outputmode: outputmode
});
rst.addColumn(new Column({caption: L("lcl_fac_module"), content: "module"}));
rst.addColumn(new Column({caption: L("lcl_fac_component"), content: "onderdeel"}));
rst.addColumn(new Column({caption: L("lcl_fac_toanonymize"), content: fncolaantal, datatype: "number"}));
rst.addColumn(new Column({caption: L("lcl_fac_anonymized"), content: "anonimized_total", datatype: "number"}));
rst.addColumn(new Column({caption: L("lcl_fac_thisweek"), content: "anonimized_thisweek", datatype: "number"}));
rst.addAction({action: "mld_anonymize", caption: L("mgt_kenmerk_systeem_ano"), multi: true, multiOnce: true});
var cnt = rst.processResultset();
%>
</body>
</html>

View File

@@ -0,0 +1,123 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: fac_anonimize.asp
Description: Anonimiseringscherm
Parameters:
Context: Via URL (alleen prssys)
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<%
FCLTHeader.Requires({plugins:["jQuery"], js: []});
var autfunction = "WEB_PRSSYS";
var authparams = user.checkAutorisation(autfunction);
var module = getQParam("module", "");
var anonymize_period = S("anonymize_period");
%>
<html>
<head>
<%
FCLTHeader.Generate() %>
<script type="text/javascript">
var anysearch = false;
function doSubmit()
{
if (!validateForm("u2"))
return false;
document.forms.u2.submit();
}
</script>
</head>
<body id="searchbody">
<div id="search">
<form name="u2" method="get" action="fac_anonymize_list.asp" target="workFrame">
<%
BLOCK_START("searchtable", L("lcl_filterblok"));
%>
<tr>
<td class="searchkolom1">
<table><!-- x rijen, 2 kolommen: label + veld -->
<!-- module -->
<%
// Startdatum bepalen door van de nog niet geanonimiseerde personen, de persoon te nemen met de laagste verwijder datum.
sql = "SELECT MIN(sd.startdatum) minstartdatum"
+ " FROM (SELECT CASE"
+ " WHEN MIN(bez_afspraak_datum) > TO_DATE('01-01-2000 00:00', 'DD-MM-YYYY HH24:MI')"
+ " THEN MIN(bez_afspraak_datum)"
+ " ELSE TO_DATE('01-01-2000 00:00', 'DD-MM-YYYY HH24:MI')"
+ " END startdatum"
+ " FROM bez_afspraak"
+ " WHERE bez_afspraak_datum < TRUNC(SYSDATE - " + anonymize_period + ")"
+ " AND NOT EXISTS"
+ " (SELECT ft.fac_tracking_key"
+ " FROM fac_tracking ft"
+ " WHERE ft.fac_tracking_refkey = bez_afspraak_key"
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = 'BEZANO'))"
+ " UNION"
+ " SELECT CASE"
+ " WHEN MIN(p.prs_perslid_verwijder) > TO_DATE('01-01-2000 00:00', 'DD-MM-YYYY HH24:MI')"
+ " THEN MIN(p.prs_perslid_verwijder)"
+ " ELSE TO_DATE('01-01-2000 00:00', 'DD-MM-YYYY HH24:MI')"
+ " END startdatum"
+ " FROM prs_perslid p"
+ " WHERE p.prs_perslid_verwijder IS NOT NULL"
+ " AND p.prs_perslid_verwijder < SYSDATE - " + anonymize_period
+ " AND NOT EXISTS"
+ " (SELECT ft.fac_tracking_key"
+ " FROM fac_tracking ft"
+ " WHERE ft.fac_tracking_refkey = p.prs_perslid_key"
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
+ " FROM fac_srtnotificatie"
+ " WHERE fac_srtnotificatie_code = 'PRSANO'))"
+ " ) sd"
oRs = Oracle.Execute(sql);
var startdatum = new Date(oRs("minstartdatum").Value);
var einddatum = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - anonymize_period);
// <!-- Datum tot -->
FCLTcalendar("einddatum",
{ label: L("lcl_period_to"),
datum: einddatum,
maxDate: einddatum,
trclass: "primsearch",
required: true,
volgnr: 2,
opmerk: L("lcl_fac_atleast_anoperiod").format(anonymize_period)
});
%>
</table>
</td>
<!-- Second column -->
<td>
<div id="anointotext1"><%=L("lcl_fac_ano_intotext1")%></div>
<div id="anointotext2"><%=L("lcl_fac_ano_intotext2")%></div>
</td>
</tr>
<% BLOCK_END();
var buttons = [ {title: L("lcl_search"), action: "doSubmit()" } ];
CreateButtons(buttons, { entersubmit: true});
%>
</form>
</div> <!-- search -->
<div id="result">
<iframe width="100%" height="100%" src="../Shared/empty.asp"
name="workFrame" id="workFrame" onload='FcltMgr.iframeLoaded(this)'
frameborder="0" scrolling="no"></iframe>
</div>
</body>
</html>

View File

@@ -106,6 +106,18 @@ if (tobeapproved > 0)
}
}
oRs = Oracle.Execute(sql);
var pResult = new HookResult();
for (f = 0 ; f < ingesloten.length; f++)
{
// Klantspecifieke check functie (hookfunction) voor de invoer
if (!custfunc.fin_postsave(ingesloten[f].factuur_key, pResult))
{
abort_with_warning(pResult.errmsg);
}
}
result.success = true;
}

View File

@@ -305,6 +305,13 @@ if (!isNew) // update nog tracken
// Autofiatteer de factuur als dat zo ingesteld is
sql = "BEGIN fin.autoapprovefactuur(" + fin_key + "); END;";
Oracle.Execute(sql);
// Klantspecifieke check functie (hookfunction) voor de invoer
var pResult = new HookResult();
if (!custfunc.fin_postsave(fin_key, pResult))
{
abort_with_warning(pResult.errmsg);
}
%>
<html>

View File

@@ -89,6 +89,17 @@ if (tobevalidated > 0)
}
}
oRs = Oracle.Execute(sql);
var pResult = new HookResult();
for (f = 0 ; f < ingesloten.length; f++)
{
// Klantspecifieke check functie (hookfunction) voor de invoer
if (!custfunc.fin_postsave(ingesloten[f], pResult))
{
abort_with_warning(pResult.errmsg);
}
}
result.success = true;
}

View File

@@ -98,7 +98,7 @@ for (var cid in xd.SecundaryDomains) {
if (sumbelow) url += "&end_total="+safe.url(sumbelow);
if (fin_bron_key!=-1) url += "&invoicesource="+safe.url(fin_bron_key);
if (fin_type!=-1) url += "&referencetype="+safe.url(fin_type);
if (goedkeurdertekst) url += "&goedkeur=~" + safe.url(goedkeurdertekst);
if (goedkeurdertekst) url += "&validater=~" + safe.url(goedkeurdertekst);
// if (fin_actual) url += ??
// if (fin_deleted) url += ??

View File

@@ -25,6 +25,7 @@ var ICONS = {
"camera.png" : "fa-camera",
"cancel.png" : "fa-times",
"cartx2.png" : "fa-cart-plus",
"clone.png" : "fa-clone",
"close.png" : "fa-flag-checkered",
"cnt_inactive.png" : "fa-lock",
"contract.png" : "fa-book",

View File

@@ -1265,13 +1265,14 @@ ins = {checkAutLevel:
: (inspSoon || (!inspSoon && !inspBusy && !inspClosed)
? " SELECT 1 rn" // inspecties die nog nooit zijn uitgevoerd/ingepland. Er is nog geen ins_deelsrtcontrole regel aanwezig en dus ook geen plandatum/respijtdatum.
+ " , di.ins_deel_key"
+ " , fac.nextcyclusdate(di.ins_deel_aanmaak"
+ " , di.ins_srtcontrole_mode"
+ " , di.ins_srtcontrole_eenheid"
+ " , di.ins_srtcontrole_periode"
+ " , di.ins_srtcontrole_bits"
+ " , 1"
+ " , di.ctr_ismjob) inspectie_next"
+ " , COALESCE(di.ins_srtcontroledl_xcp_startdat"
+ " , fac.nextcyclusdate(di.ins_deel_aanmaak"
+ " , di.ins_srtcontrole_mode"
+ " , di.ins_srtcontrole_eenheid"
+ " , di.ins_srtcontrole_periode"
+ " , di.ins_srtcontrole_bits"
+ " , 1"
+ " , di.ctr_ismjob)) inspectie_next"
+ " , di.ins_srtcontroledl_xcp_startdat"
+ " , CASE WHEN " + lastinspect + " IS NULL THEN 1 ELSE 0 END nonext"
+ " , di.ins_srtcontrole_eenheid inspectie_eenheid"
@@ -1318,13 +1319,14 @@ ins = {checkAutLevel:
+ " , di.ins_deel_key"
+ " , CASE"
+ " WHEN " + lastinspect + " IS NULL" // Inspectie die voor het eerst is ingepland(0) of gestart(2) maar nog geen uitgevoerde/afgemelde(6) inspectie heeft.
+ " THEN fac.nextcyclusdate(di.ins_deel_aanmaak" // Dan registratiedatum + planning
+ " , di.ins_srtcontrole_mode"
+ " , di.ins_srtcontrole_eenheid"
+ " , di.ins_srtcontrole_periode"
+ " , di.ins_srtcontrole_bits"
+ " , 1"
+ " , di.ctr_ismjob) "
+ " THEN COALESCE(di.ins_srtcontroledl_xcp_startdat"
+ " , fac.nextcyclusdate(di.ins_deel_aanmaak" // Dan registratiedatum + planning
+ " , di.ins_srtcontrole_mode"
+ " , di.ins_srtcontrole_eenheid"
+ " , di.ins_srtcontrole_periode"
+ " , di.ins_srtcontrole_bits"
+ " , 1"
+ " , di.ctr_ismjob))"
+ " WHEN idsc.ins_deelsrtcontrole_status IN (0, 2)"
+ " THEN ins_deelsrtcontrole_datum_org" // In status 0 en 2 wordt de volgende inspectie in ins_deelsrtcontrole_datum_org direct opgeslagen.
+ " ELSE"
@@ -3350,7 +3352,7 @@ ins = {checkAutLevel:
// Bulkactie accorderen (freeze) of voltooien/afronden (finish).
// Ik moet nog de juiste insert waarden ophalen voor alle objecten die de sql oplevert.
if (niveau >= 1 && niveau <= 6 && (freeze || finish))
if (niveau >= 1 && niveau <= 7 && (freeze || finish))
{ // Accorderen (Freeze) of Voltooien/Afronden (Finish).
if (freeze)
{

View File

@@ -61,7 +61,7 @@ if (freeze && groupby < 8)
var mjbXcped = getFParamInt("mjbXcped", 0) == 1; // Aangepast.
// Start building the query to fetch all objects satisfying
var mjbparams = { niveau: groupby, // Het niveau (betekenis) van de keys (district(1), gebouw(2), discipline(3), groep(4), objectsoort(5), object(6))
var mjbparams = { niveau: groupby, // Het niveau (betekenis) van de keys (district(1), locatie(2), gebouw(3), discipline(4), groep(5), objectsoort(6), object(7))
keys: ins_key_arr,
scenario: 1,
fulldetails: true,

View File

@@ -51,7 +51,8 @@ if (S("bgt_enabled"))
"columns": [
"costtypegroup",
"name",
"altcode"
"altcode",
"vat"
]
};
model_params.edit = {

View File

@@ -7,6 +7,7 @@
Description: Kies een stdmelding voor een nieuwe melding
Parameters: // impliciet mld_key=-1 voor nieuwe melding
// stdm_key bepalen we hier. Als je die hebt spring je maar rechtstreeks naar melding.asp
stdm_keys lijst met komma gescheiden stdmelding keys
ins_key
ruimte_key
-
@@ -31,6 +32,7 @@ var mld_key = getQParamInt("mld_key", -1); // -1 betekent nieuwe
var qrc = getQParamInt("qrc", 0) != 0;
var action = getQParam("action", "");
var urole = getQParamSafe("urole", "");
var stdm_keys = getQParamIntArray("stdm_keys", []);
if (urole == "")
{
@@ -149,6 +151,7 @@ if (srtdisc_key > 0)
var filt_params = { disc_key: disc_key
, srtdisc_key: srtdisc_key
, stdmelding_keys: stdm_keys
, ins_key: ins_key
, loc_key: user.alg_locatie_key({withcurrent:true})
, bld_key: user.alg_gebouw_key({withcurrent:true})

View File

@@ -51,6 +51,14 @@ if (typeof DOCTYPE_Disable == "undefined")
<!-- #include file="locale.inc" -->
<!-- #include file="hookfunctions.inc" -->
<!-- #include file="shared.inc" -->
<%
// Nu hebben we customerId. Wel doen voor m_connections.inc
// zodat we tijdens database migratie ook offline kunnen zetten
if (Request.QueryString("forceonline").Count > 0)
Session("forceonline") = true;
tryOffline(rooturl + "/cust/");
tryOffline(custpath + "/"); // deze is sterker
%>
<!-- #include file="logger.inc" -->
<!-- #include file="m_connections.inc" -->
<!-- #include file="putorders.inc" -->
@@ -185,11 +193,6 @@ function tryOffline(path)
}
}
if (Request.QueryString("forceonline").Count > 0)
Session("forceonline") = true;
tryOffline(rooturl + "/cust/");
tryOffline(custpath + "/"); // deze is sterker
// ip-restrictie controle
var ips = S("sys_ip_restrict");
if (ips)

View File

@@ -118,7 +118,8 @@ var shared = {
{
Response.Clear();
Response.Write("<html class='simpel_page'><head>");
FCLTHeader.Generate();
if (typeof FCLTHeader != "undefined")
FCLTHeader.Generate();
Response.Write("</head>");
shared.simpel_body(bodyhtml);
}
@@ -1881,6 +1882,8 @@ IP =
bits = parseInt(subnet.split("/")[1], 10);
subnet = subnet.split("/")[0];
}
if (bits == 0) // extra omdat IPmask(0) een overflow geeft
return true;
var mask = IP.IPmask(bits);
var long_subnet = IP.IPnumber(subnet);

View File

@@ -38,6 +38,8 @@ function getFiltClauseDiscipline(pfiltcode, params)
if (params.module == "MLD") lfiltClause.from = ", mld_stdmelding sm";
lfiltClause.where = " AND td.ins_discipline_module = 'MLD'"
// Standaard alleen vakgroepen tonen met stdmeldingen.
+ (params.stdmelding_keys && params.stdmelding_keys.length
? " AND sm.mld_stdmelding_key IN (" + params.stdmelding_keys.join(",") + ")":"")
+ (params.module == "MLD"
? " AND td.ins_discipline_key = sm.mld_ins_discipline_key"
+ " AND sm.mld_stdmelding_verwijder IS NULL"

View File

@@ -46,8 +46,11 @@ function getFiltClauseStdmelding(pfiltcode, params, init)
{
lfiltClause.where += " AND sm.mld_stdmelding_key = " + params.stdmelding_key
}
else
if (params.disc_key && params.disc_key != -1) // parent gegeven
else if (params.stdmelding_keys && params.stdmelding_keys.length)
{
lfiltClause.where += " AND sm.mld_stdmelding_key IN (" + params.stdmelding_keys.join(",") + ")"
}
else if (params.disc_key && params.disc_key != -1) // parent gegeven
{
lfiltClause.where += " AND di.ins_discipline_key = " + params.disc_key;
}

View File

@@ -126,6 +126,10 @@ function FCLTcalendar (fieldID, params)
if (params.label)
{
if (params.opmerk)
{ %>
&nbsp;<%=safe.html(params.opmerk)%>
<% }
if (params.mobile)
{ %>
</div>

View File

@@ -3084,6 +3084,22 @@ div#lcldialect .label
width: auto;
}
div#anointotext1 {
font-size: 2em;
color: #ff5050;
margin: 4px;
padding: 5px 1px 5px 1px;
font-weight: bold;
}
div#anointotext2 {
font-size: 1.5em;
color: #000000;
margin: 4px;
padding: 5px 1px 5px 1px;
font-weight: bold;
}
#itemfilter
{
width: 218px;

View File

@@ -283,6 +283,24 @@ custfunc.mld_postsave =
return result;
};
custfunc.fin_postsave =
function (fin_factuur, presult)
{
var result = true;
var hook = custfunc.gethook();
if (hook)
{
__DoLog('before in hook');
if ('fin_postsave' in hook) {
__DoLog('in hook');
result = hook.fin_postsave(fin_factuur, presult);
}
hook = null; // zorg dat de GC het object kan opruimen.
}
return result;
};
// Called for API_PHONEBOOK
custfunc.API_PHONEBOOK =
function (prs_key, data)

View File

@@ -133,6 +133,7 @@ var status = {
case "MLDAFR" : tekst = L("lcl_mld_is_mldafr") ; break;
case "MLDVER" : tekst = L("lcl_mld_is_mldver") ; break;
case "MLDNOT" : tekst = L("lcl_mld_is_mldnot") ; break;
case "MLDANO" : tekst = L("lcl_fac_is_ano") ; break;
case "RESNEW" : tekst = L("lcl_res_is_resnew") ; break;
case "RESOPT" : tekst = L("lcl_res_is_resopt") ; break;
@@ -168,6 +169,7 @@ var status = {
case "ORDAFR" : tekst = L("lcl_ord_is_ordafr") ; break;
case "ORDGOE" : tekst = L("lcl_ord_is_ordgoe") ; break;
case "ORDGNO" : tekst = L("lcl_ord_is_ordgno") ; break;
case "ORDANO" : tekst = L("lcl_fac_is_ano") ; break;
case "ORDOOK" : tekst = L("lcl_ord_is_ordook") ; break;
case "ORDONO" : tekst = L("lcl_ord_is_ordono") ; break;
@@ -177,6 +179,7 @@ var status = {
case "BEZDON" : tekst = L("lcl_bez_is_bezdon") ; break;
case "BEZOUT" : tekst = L("lcl_bez_is_bezout") ; break;
case "BEZBAD" : tekst = L("lcl_bez_is_bezbad") ; break;
case "BEZANO" : tekst = L("lcl_fac_is_ano") ; break;
case "BESNEW" : tekst = L("lcl_bes_is_besnew") ; break;
case "BESACP" : tekst = L("lcl_bes_is_besacp") ; break;
@@ -190,6 +193,7 @@ var status = {
case "BESUPD" : tekst = L("lcl_bes_is_besupd") ; break;
case "BESVER" : tekst = L("lcl_bes_is_besver") ; break;
case "BESCAN" : tekst = L("lcl_bes_is_bescan") ; break;
case "BESANO" : tekst = L("lcl_fac_is_ano") ; break;
case "BES2NE" : tekst = L("lcl_bes_is_bes2ne") ; break;
case "BES2AF" : tekst = L("lcl_bes_is_bes2af") ; break;
@@ -201,6 +205,7 @@ var status = {
case "BES2CA" : tekst = L("lcl_bes_is_bes2ca") ; break;
case "BES2CO" : tekst = L("lcl_bes_is_bes2co") ; break;
case "BES2UP" : tekst = L("lcl_bes_is_bes2up") ; break;
case "BES2AN" : tekst = L("lcl_fac_is_ano") ; break;
case "INSNEW" : tekst = L("lcl_ins_is_insnew") ; break;
case "INSUPD" : tekst = L("lcl_ins_is_insupd") ; break;
@@ -239,6 +244,7 @@ var status = {
case "PRSDEL" : tekst = L("lcl_prs_is_prsdel") ; break;
case "PRSKPU" : tekst = L("lcl_prs_is_prskpu") ; break;
case "PRSLOG" : tekst = L("lcl_prs_is_prslog") ; break;
case "PRSANO" : tekst = L("lcl_fac_is_ano") ; break;
case "ALGCAD" : tekst = L("lcl_alg_is_algcad") ; break;
case "ALGRNE" : tekst = L("lcl_alg_is_algrne") ; break;

View File

View File

@@ -0,0 +1,3 @@
::Met api user voor printen to pdf van de dagrapportage'
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
phantomjs --ssl-protocol=tlsv1 rasterize.js "https://arai.facilitor.nl/?u=Zz3GJIal25-amS_1&APIKEY=J54aY3UadfeI203K30BXV4632J" Dagrapportage%mydate%.pdf A4

Binary file not shown.

View File

@@ -0,0 +1,32 @@
var page = require('webpage').create(),
system = require('system'),
address, output, size;
if (system.args.length < 3 || system.args.length > 5) {
console.log('Usage: rasterize.js URL filename [paperwidth*paperheight|paperformat] [zoom]');
console.log(' paper (pdf output) examples: "5in*7.5in", "10cm*20cm", "A4", "Letter"');
phantom.exit(1);
} else {
address = system.args[1];
output = system.args[2];
page.viewportSize = { width: 600, height: 600 };
if (system.args.length > 3 && system.args[2].substr(-4) === ".pdf") {
size = system.args[3].split('*');
page.paperSize = size.length === 2 ? { width: size[0], height: size[1], margin: '0px' }
: { format: system.args[3], orientation: 'landscape', margin: '1cm' };
}
if (system.args.length > 4) {
page.zoomFactor = system.args[4];
}
page.open(address, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit();
} else {
window.setTimeout(function () {
page.render(output);
phantom.exit();
}, 2000);
}
});
}

View File

@@ -0,0 +1,31 @@
REM GEN_EXPORT_DAGRAPPORTAGE
REM
REM ARAI
REM
REM Exporteert de dagrapportage als PDF.
REM Het aangemaakte PDF-bestand wordt gemaild naar de afgesproken persoon.
REM
REM Context : roep deze file aan indien nodig, of schedule deze
REM Vereist : de randvoorwaarde voor het gebruik van gen_export
REM
REM $Revision$
REM $Id$
REM
REM (c) 2015 Facilitor B.V.
REM
REM ================================================== cleanup
copy .\PDF\*.pdf .\PDF\Backup
del .\PDF\*.pdf
REM ================================================== create pdf
cd PDF
CALL genereer1_dagrap.bat
cd ..
REM ================================================== mail
if not exist ".\PDF\*.pdf" goto einde
cscript sendmail.vbs
:einde

View File

@@ -0,0 +1,18 @@
Dim fso, folder, files
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("d:\Apps\Facilitor\Fplace5i\CUST\ARAI\export\PDF")
Set files = folder.Files
For each folderIdx In files
If InStrRev(folderIdx.Name, ".pdf") > 0 Then
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "no_reply@rai.facilitor.nl"
objEmail.To = "r.stoker@facilitor.nl;c.overmars@rai.nl"
objEmail.Subject = "Facilitor: Dagrapportage"
objEmail.Textbody = "Deze email is automatisch verzonden en bevat een PDF van de laatste dagrapportage."
objEmail.AddAttachment "d:\Apps\Facilitor\Fplace5i\CUST\ARAI\export\PDF\" + folderIdx.Name
objEmail.Send
End If
Next

View File

@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxml="urn:schemas-microsoft-com:xslt">
<xsl:import href="../../../appl/shared/default.xsl"/>
<xsl:variable name="Rev">
<!-- Revision van deze cust.xsl -->
<xsl:value-of select="substring(translate('$Revision$', '$ ', ''), 10)"/>
</xsl:variable>
<xsl:template match="melding" mode="full">
<xsl:choose>
<xsl:when test="$srtnotificatiecode = 'CUST02'"><xsl:apply-templates select="." mode="mld_sms"/></xsl:when>
@@ -1107,7 +1105,6 @@ Amsterdam RAI
<xsl:comment>---- Overige RAPPORTEN ---- </xsl:comment>
<xsl:comment>---- Overige RAPPORTEN ---- </xsl:comment>
<xsl:if test="@view = 'arai_v_rap_temp_per_ruimte'">
<table border="0" width="100%" cellpadding="2">
<tr>

View File

@@ -139,6 +139,380 @@
</style>
</xsl:template>
<xsl:template name="prijsEx">
<xsl:param name="prijsInc" select="0"/>
<xsl:param name="btw" select="0"/>
<xsl:choose>
<xsl:when test="$prijsInc='NaN'">0</xsl:when>
<xsl:when test="$btw!='NaN' and //res_artikel/btw!=''"><xsl:value-of select="$prijsInc * ((100 + $btw) div 100 )"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$prijsInc"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="sumProducts">
<xsl:param name="pList"/>
<xsl:param name="pResult" select="0"/>
<xsl:choose>
<xsl:when test="$pList">
<xsl:variable name="vHead" select="$pList[1]"/>
<xsl:variable name="vPrice">
<xsl:call-template name="prijsEx">
<xsl:with-param name="prijsInc" select="$vHead/prijs"/>
<xsl:with-param name="btw" select="$vHead/res_artikel/btw"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="sumProducts">
<xsl:with-param name="pList" select="$pList[position()>1]"/>
<xsl:with-param name="pResult" select="$pResult + $vPrice"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$pResult"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="reservering" mode="include">
<!--style>.pagebreak {page-break-after:always;}</style-->
<table border="0" width="100%" style="border-collapse:collapse;" cellpadding="2" cellspacing="0">
<xsl:choose>
<xsl:when test="$srtnotificatiecode='RESDEL' and verwijder">
<tr><td height="20px"/></tr>
<tr><td style="font-size:14pt;color:red;padding-top:20px;padding-bottom:20px;"><xsl:value-of select="//lcl/RES/annulering"/></td></tr>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
<!-- Bevestiging reservering -->
<!-- Ook tonen voor verwijderde reserveringen -->
<!-- De algemene gegevens van de deelreservering met het laagste volgnummer worden gebruikt als referentie gegevens! -->
<xsl:variable name="min_volgnr">
<xsl:value-of select="//facilitor/reservering/rsv_ruimte/volgnr[not(.&gt;//facilitor/reservering/rsv_ruimte/volgnr)]"/>
</xsl:variable>
<tr>
<td colspan="4" style="font-size:14pt;padding-top:20px;padding-bottom:20px;">
<xsl:choose>
<xsl:when test="@content='complete'"><xsl:value-of select="//lcl/RES/reservering"/>&#xA0;<xsl:value-of select="key"/></xsl:when>
<xsl:otherwise><xsl:value-of select="//lcl/RES/deelreservering"/>&#xA0;<xsl:value-of select="key"/>/<xsl:value-of select="$min_volgnr"/></xsl:otherwise>
</xsl:choose>
<xsl:if test="string(rsv_ruimte[volgnr=$min_volgnr]/omschrijving)!=''"> - <xsl:value-of select="rsv_ruimte[volgnr=$min_volgnr]/omschrijving"/></xsl:if>
</td>
</tr>
<tr><td colspan="4"><u><b>Contactgegevens:</b></u></td></tr>
<tr>
<td width="18%"><xsl:value-of select="//lcl/FAC/aanvrager"/>:</td>
<td width="32%"><xsl:value-of select="rsv_ruimte[volgnr=$min_volgnr]/contact_user/naam_full"/></td>
<td width="18%"><xsl:value-of select="//lcl/FAC/afdeling"/>:</td>
<td><xsl:value-of select="rsv_ruimte[volgnr=$min_volgnr]/contact_user/afdeling/omschrijving"/></td>
</tr>
<tr>
<td><xsl:value-of select="//lcl/FAC/telefoon"/>:</td>
<td><xsl:value-of select="rsv_ruimte[volgnr=$min_volgnr]/contact_user/telefoonnr"/></td>
<xsl:if test="string(rsv_ruimte[volgnr=$min_volgnr]/contact_user/werkplek/plaats/regio/district/locatie/omschrijving)!=''">
<td><xsl:value-of select="//lcl/FAC/locatie"/>:</td>
<td><xsl:value-of select="rsv_ruimte[volgnr=$min_volgnr]/contact_user/werkplek/plaats/regio/district/locatie/omschrijving"/></td>
</xsl:if>
</tr>
<tr>
<td><xsl:value-of select="//lcl/FAC/e-mail"/>:</td>
<td><xsl:value-of select="rsv_ruimte[volgnr=$min_volgnr]/contact_user/email"/></td>
</tr>
<!--xsl:if test="rsv_ruimte[volgnr=$min_volgnr]/contact_user/key!=ingevoerd_user/key">
<tr>
<td><xsl:value-of select="//lcl/RES/behandeld_door"/>:</td>
<td><xsl:value-of select="ingevoerd_user/naam_friendly"/></td>
</tr>
</xsl:if-->
<xsl:if test="$srtnotificatiecode='RESDEL'">
<tr>
<td><xsl:value-of select="//lcl/RES/begintijd"/>:</td>
<td><xsl:value-of select="rsv_ruimte/van/datum"/>&#xA0;<xsl:value-of select="rsv_ruimte/van/tijd"/></td>
</tr>
<tr><td colspan="4"><br/><xsl:value-of select="//lcl/RES/reservering_vervallen"/></td></tr>
</xsl:if>
<xsl:if test="$srtnotificatiecode!='RESDEL'">
<tr><td height="10px"/></tr>
<xsl:if test="substring(//locatie/omschrijving, 1, 3)='BBS'">
<tr><td colspan="4"><br/>LET OP: Bewaar dit formulier ter controle. Het reserveringsnummer vindt u terug op de nota.</td></tr>
<tr><td height="10px"/></tr>
</xsl:if>
<tr>
<td colspan="4">
<table border="0" width="100%" style="border-collapse:collapse;" cellpadding="2" cellspacing="0">
<!-- rsv_ruimte -->
<xsl:for-each select="rsv_ruimte">
<xsl:sort select="van/timestamp"/>
<xsl:sort select="volgnr"/>
<xsl:call-template name="rsv_ruimte"><xsl:with-param name="min_volgnr" select="$min_volgnr"/></xsl:call-template>
</xsl:for-each>
<!-- totaal reservering -->
<xsl:if test="@content='complete'">
<tr>
<td colspan="5"><br/><xsl:value-of select="//lcl/RES/totaalprijs_reservering"/>:</td>
<td colspan="2" style="text-align:right;"><br/>
<xsl:call-template name="europrijs">
<xsl:with-param name="prijs" select="sum(rsv_ruimte/prijs[string(number(.))!='NaN'])+sum(rsv_ruimte/rsv_deel/prijs[string(number(.))!='NaN'])+sum(rsv_ruimte/rsv_artikel/prijs[string(number(.))!='NaN'])"/>
</xsl:call-template>
</td>
</tr>
</xsl:if>
</table>
</td>
</tr>
</xsl:if>
</table>
</xsl:template>
<xsl:template match="reservering" mode="full">
<xsl:choose>
<xsl:when test="$mode='summary'"></xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$srtnotificatiecode='OUTLOOK' or $mode='ics'">
<xsl:apply-templates select="." mode="outlook"/>
</xsl:when>
<xsl:otherwise>
<html>
<xsl:comment>================================ RESERVERINGEN ==============================</xsl:comment>
<xsl:comment>FACILITOR default XSL template for reservering</xsl:comment>
<xsl:call-template name="htmlhead"/>
<xsl:element name="body">
<xsl:if test="$mode!='email'"><xsl:attribute name="onload">window.print();</xsl:attribute></xsl:if>
<xsl:call-template name="pageheader"/>
<xsl:choose>
<xsl:when test="$srtnotificatiecode = 'RESKTO'">
<xsl:apply-templates select="." mode="kto"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="include"/>
</xsl:otherwise>
</xsl:choose>
<!--xsl:call-template name="pagefooter"/-->
</xsl:element>
</html>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="rsv_ruimte">
<xsl:param name="min_volgnr"/>
<tr>
<xsl:choose>
<xsl:when test="res_ruimte!=''">
<td colspan="7"><br/><u><b>
<xsl:if test="dirtlevel!='0'"><span class="fatal"><xsl:value-of select="//lcl/RES/ongeldig"/></span>&#xA0;</xsl:if>
<xsl:value-of select="van/datum"/>&#xA0;
<xsl:value-of select="//lcl/RES/deelreservering"/>&#xA0;<xsl:value-of select="../key"/>/<xsl:value-of select="volgnr"/>&#xA0;
(<xsl:value-of select="res_activiteit/omschrijving"/>)&#xA0;
<xsl:value-of select="res_ruimte/plaats/regio/district/locatie/omschrijving"/></b></u>
</td>
</xsl:when>
<!-- "roomservice" -->
<xsl:otherwise>
<td colspan="7"><br/><u><b>
<xsl:if test="dirtlevel!='0'"><span class="fatal"><xsl:value-of select="//lcl/RES/ongeldig"/></span>&#xA0;</xsl:if>
<xsl:value-of select="van/datum"/><xsl:if test="string(van/datum)!=string(tot/datum)"> - <xsl:value-of select="tot/datum"/></xsl:if>&#xA0;
<xsl:value-of select="//lcl/RES/deelreservering"/>&#xA0;<xsl:value-of select="../key"/>/<xsl:value-of select="volgnr"/>&#xA0;
<xsl:value-of select="plaats/plaatsaanduiding"/></b></u>
</td>
</xsl:otherwise>
</xsl:choose>
</tr>
<xsl:if test="string(omschrijving)!=string(//reservering/rsv_ruimte[volgnr=$min_volgnr]/omschrijving)">
<tr>
<td class="label"><xsl:value-of select="//lcl/FAC/omschrijving"/>:</td>
<td class="value" colspan="6"><xsl:value-of select="omschrijving"/></td>
</tr>
</xsl:if>
<xsl:if test="string(contact_user/naam_full)!=string(//reservering/rsv_ruimte[volgnr=$min_volgnr]/contact_user/naam_full)">
<tr>
<td class="label"><xsl:value-of select="//lcl/FAC/aanvrager"/>:</td>
<td class="value" colspan="6"><xsl:value-of select="contact_user/naam_full"/>/ <xsl:value-of select="contact_user/werkplek/plaats/regio/district/locatie/omschrijving"/></td>
</tr>
</xsl:if>
<tr>
<td class="label"><xsl:value-of select="//lcl/RES/status"/>:</td>
<td class="value" colspan="6"><xsl:value-of select="status_fo"/></td>
</tr>
<tr>
<td class="label"><xsl:value-of select="//lcl/RES/gastheer_vrouw"/>:</td>
<td class="value" colspan="6"><xsl:value-of select="host_user/naam_full"/></td>
</tr>
<tr>
<td class="label"><xsl:value-of select="//lcl/FAC/kostenplaats"/>:</td>
<td class="value" colspan="6"><xsl:value-of select="kostenplaats/nr"/>&#xA0;<xsl:value-of select="kostenplaats/omschrijving"/></td>
</tr>
<xsl:if test="opmerking!=''">
<tr>
<td class="label"> <xsl:value-of select="//lcl/FAC/opmerking"/>:</td>
<td class="value" colspan="6"><xsl:call-template name="linebreaks"><xsl:with-param name="string" select="opmerking"/></xsl:call-template></td>
</tr>
</xsl:if>
<tr><td colspan="7"><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text></td></tr>
<tr><td colspan="7" style="border-top:1px solid #000;"/></tr>
<tr>
<th class="resth" width="18%" style="text-align:left"><xsl:value-of select="//lcl/FAC/omschrijving"/></th>
<th class="resth" width="10%" style="text-align:left"><xsl:value-of select="//lcl/RES/aantal"/></th>
<th class="resth" width="11%" style="text-align:right"><xsl:value-of select="//lcl/RES/begintijd"/></th>
<th class="resth" width="12%" style="text-align:right"><xsl:value-of select="//lcl/RES/eindtijd"/></th>
<th class="resth" width="12%" style="text-align:center"><xsl:value-of select="//lcl/RES/opstelling"/></th>
<th class="resth" width="10%" style="text-align:center">BTW</th>
<th class="resth" width="12%" style="text-align:right"><xsl:value-of select="//lcl/RES/prijs"/></th>
</tr>
<xsl:if test="res_ruimte!=''">
<tr>
<td width="20%" class="resresult" style="text-align:left;"><xsl:if test="dirtlevel!='0'"><span class="fatal"><xsl:value-of select="//lcl/RES/ongeldig"/></span>&#xA0;</xsl:if>
<xsl:value-of select="res_ruimte/nr"/>
<br/>(max. <xsl:value-of select="res_ruimte/bezoekers"/>&#xA0;<xsl:value-of select="//lcl/FAC/personen"/>)
</td>
<td width="12%" class="resresult" style="text-align:left">
<xsl:value-of select="bezoekers"/>&#xA0;<xsl:value-of select="//lcl/FAC/personen"/>
</td>
<td width="12%" class="resresult" style="text-align:right">
<xsl:value-of select="van/tijd"/>
</td>
<td width="12%" class="resresult" style="text-align:right">
<xsl:value-of select="tot/tijd"/>
</td>
<td width="14%" class="resresult" style="text-align:center">
<xsl:value-of select="res_ruimte/opstelling"/>
</td>
<td width="14%" style="text-align:center"><xsl:choose><xsl:when test="res_ruimte/groep!=''"><xsl:value-of select="res_ruimte/groep"/>%</xsl:when><xsl:otherwise></xsl:otherwise></xsl:choose></td>
<td width="15%" class="resresult" style="text-align:right">
<xsl:choose>
<xsl:when test="kenmerk[@key='181']='Sociaal'">
<!--xsl:call-template name="europrijs"><xsl:with-param name="prijs" select="prijs"/></xsl:call-template-->
<xsl:choose>
<xsl:when test="res_ruimte/groep='6'"><xsl:call-template name="europrijs"><xsl:with-param name="prijs" select="prijs * 1.06"/></xsl:call-template></xsl:when>
<xsl:otherwise><xsl:call-template name="europrijs"><xsl:with-param name="prijs" select="prijs * 1.21"/></xsl:call-template></xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<!--xsl:call-template name="europrijs"><xsl:with-param name="prijs" select="(tot/timestamp - van/timestamp) div 3600 * number (res_ruimte/prijs_dag)"/></xsl:call-template-->
<xsl:choose>
<xsl:when test="res_ruimte/groep='6'"><xsl:call-template name="europrijs"><xsl:with-param name="prijs" select="(tot/timestamp - van/timestamp) div 3600 * number (res_ruimte/prijs_dag) * 1.06"/></xsl:call-template></xsl:when>
<xsl:otherwise><xsl:call-template name="europrijs"><xsl:with-param name="prijs" select="(tot/timestamp - van/timestamp) div 3600 * number (res_ruimte/prijs_dag) * 1.21"/></xsl:call-template></xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:if>
<!-- rsv_deel-lijst gesorteerd op van-tijd -->
<xsl:for-each select="rsv_deel">
<xsl:sort select="van/tijd"/>
<tr>
<td class="resresult"><xsl:if test="dirtlevel!='0'"><span class="fatal"><xsl:value-of select="//lcl/RES/ongeldig"/></span>&#xA0;</xsl:if><xsl:value-of select="res_deel/omschrijving"/></td>
<td class="resresult"><xsl:value-of select="aantal"/></td>
<td class="resresult" style="text-align:right"><xsl:value-of select="van/tijd"/></td>
<td class="resresult" style="text-align:right"><xsl:value-of select="tot/tijd"/></td>
<td></td>
<td width="14%" style="text-align:center">21%</td>
<td class="resresult" style="text-align:right">
<xsl:call-template name="europrijs"><xsl:with-param name="prijs" select="prijs * 1.21"/></xsl:call-template>
</td>
</tr>
</xsl:for-each>
<!-- rsv_artikel-lijst gesorteerd op van-tijd -->
<xsl:for-each select="rsv_artikel">
<xsl:sort select="levering/tijd"/>
<tr>
<td class="resresult" ><xsl:value-of select="res_artikel/omschrijving"/></td>
<td class="resresult"><xsl:value-of select="aantal"/></td>
<td class="resresult" style="text-align:right"><xsl:value-of select="levering/tijd"/></td>
<td></td>
<td></td>
<td class="resresult" style="text-align:center"><xsl:choose><xsl:when test="res_artikel/btw!=''"><xsl:value-of select="res_artikel/btw"/>%</xsl:when><xsl:otherwise></xsl:otherwise></xsl:choose></td>
<td class="resresult" style="text-align:right">
<!--xsl:call-template name="europrijs"><xsl:with-param name="prijs" select="prijs"/></xsl:call-template-->
<xsl:choose>
<xsl:when test="res_artikel/btw='21'"><xsl:call-template name="europrijs"><xsl:with-param name="prijs" select="prijs * 1.21"/></xsl:call-template></xsl:when>
<xsl:otherwise><xsl:call-template name="europrijs"><xsl:with-param name="prijs" select="prijs * 1.06"/></xsl:call-template></xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:for-each>
<!-- Totaalprijs berekenen op basis van tijdelijke lijst! -->
<xsl:variable name="tmpprijslist">
<xsl:for-each select="//rsv_ruimte">
<item>
<prijs>
<xsl:choose>
<xsl:when test="kenmerk[@key='181']='Sociaal'"><xsl:value-of select="prijs"/></xsl:when>
<xsl:otherwise><xsl:value-of select="(tot/timestamp - van/timestamp) div 3600 * number (res_ruimte/prijs_dag)"/></xsl:otherwise>
</xsl:choose>
</prijs>
<btw>
<xsl:choose>
<xsl:when test="res_ruimte/groep!=''"><xsl:value-of select="res_ruimte/groep"/>
</xsl:when><xsl:otherwise>21</xsl:otherwise>
</xsl:choose>
</btw>
</item>
</xsl:for-each>
<xsl:for-each select="//rsv_deel">
<item>
<prijs><xsl:value-of select="prijs"/></prijs>
<btw>21</btw>
</item>
</xsl:for-each>
<xsl:for-each select="//rsv_artikel">
<item>
<prijs><xsl:value-of select="prijs"/></prijs>
<btw>
<xsl:choose>
<xsl:when test="res_artikel/btw!=''"><xsl:value-of select="res_artikel/btw"/></xsl:when>
<xsl:otherwise>6</xsl:otherwise>
</xsl:choose>
</btw>
</item>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="totaal_excl_btw" select="sum(msxml:node-set($tmpprijslist)/item/prijs)"/>
<xsl:variable name="totaal_btw_laag" select="sum(msxml:node-set($tmpprijslist)/item[btw='6']/prijs)*0.06"/>
<xsl:variable name="totaal_btw_hoog" select="sum(msxml:node-set($tmpprijslist)/item[btw='21']/prijs)*0.21"/>
<!-- totaal per deelreservering -->
<!--tr><td colspan="7" style="border-top:1px solid #000;"><xsl:value-of select="msxml:node-set($tmpprijslist)"/></td></tr-->
<tr><td colspan="7" style="border-top:1px solid #000;"/></tr>
<tr>
<td class="tekst" colspan="4"></td>
<td class="tekst" colspan="3" style="text-align:right;"><b>
<xsl:call-template name="europrijs"><xsl:with-param name="prijs" select="$totaal_excl_btw+$totaal_btw_laag+$totaal_btw_hoog"/></xsl:call-template></b>
</td>
</tr>
<!-- afspraak-lijst gesorteerd op naam -->
<xsl:for-each select="afspraak/bezoeker">
<xsl:sort select="naam"/>
<xsl:if test="position()=1">
<tr><td colspan="7" class="tekst"><br/><u><xsl:value-of select="//lcl/BEZ/bezoekers"/></u></td></tr>
<tr>
<th colspan="2" style="text-align:left;"><xsl:value-of select="//lcl/FAC/naam"/></th>
<th colspan="2" style="text-align:left;"><xsl:value-of select="//lcl/FAC/bedrijf"/></th>
<th colspan="3" style="text-align:left;">Parkeerplaats</th>
</tr>
</xsl:if>
<tr>
<td colspan="2" class="result"><xsl:value-of select="naam"/></td>
<td colspan="2" class="result"><xsl:value-of select="bedrijf"/></td>
<td colspan="3" class="result"><xsl:value-of select="deel/omschrijving"/></td>
</tr>
</xsl:for-each>
<!-- kenmerk-lijst gesorteerd op volgnummer (en gevuld) -->
<xsl:for-each select="kenmerk[@type!='L' and @type!='l' and @type!='Q' and count(@xmlnode)=0]">
<xsl:sort select="@volgnummer" data-type="number"/>
<xsl:if test="position()=1">
<tr><td colspan="7"><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text></td></tr>
</xsl:if>
<xsl:if test=".!=''">
<tr>
<td class="label"><xsl:value-of select="@naam"/>:</td>
<td colspan="6" class="value"><xsl:value-of select="."/></td>
</tr>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template name="fac_liketab">
<table width="99%" style="border-collapse:collapse;border:0px solid #000;">
<!--tr height="20px"><td colspan="4"><hr/></td></tr-->

View File

@@ -43,7 +43,7 @@
<xsl:element name="a"><xsl:attribute name="href">https://<xsl:value-of select="$FacilitorRoot"/>?<xsl:value-of select="../bookmarks/melding"/><xsl:value-of select="key"/>&amp;urole=fe</xsl:attribute>deze link</xsl:element>
om de melding te openen.
<br/><br/>
U kunt hierop reageren door een nieuwe notitie toe te voegen door op het groene <b>"+"</b> symbool te klikken aan de rechterkant op de notitiebalk.
U kunt hierop reageren door in de melding een nieuwe notitie toe te voegen
</td>
</tr>
<tr height="20px">

View File

@@ -6,48 +6,22 @@
<xsl:value-of select="substring(translate('$Revision$', '$ ', ''), 10)"/>
</xsl:variable>
<xsl:template match="melding" mode="full">
<xsl:choose>
<xsl:when test="$mode='summary'"></xsl:when>
<xsl:otherwise>
<html>
<xsl:comment>================================ MELDINGEN ==============================</xsl:comment>
<xsl:comment>FACILITOR default XSL template for melding</xsl:comment>
<xsl:call-template name="htmlhead"/>
<xsl:element name="body">
<xsl:if test="$mode!='email'">
<xsl:attribute name="onload">window.print();</xsl:attribute>
</xsl:if>
<xsl:call-template name="pageheader"/>
<xsl:choose>
<xsl:when test="$srtnotificatiecode = 'MLDKTO'">
<xsl:apply-templates select="." mode="kto"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="include"/>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="pagefooter"/>
</xsl:element>
</html>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:variable name="Xsrtnotificatiecode">MLDAFM</xsl:variable>
<xsl:template match="melding" mode="include">
<table border="0" width="100%" cellpadding="2">
<tr>
<td colspan="3"/>
<td style="text-align:right"><xsl:element name="img">
<xsl:attribute name="width">140px</xsl:attribute>
<xsl:attribute name="src">../../appl/shared/barcode.asp?text=<xsl:value-of select="discipline/srtdiscipline/prefix"/><xsl:value-of select="key"/>&amp;height=50&amp;narrow=1&amp;wide=3</xsl:attribute>
</xsl:element>
</td>
</tr>
<tr>
<td colspan="4" style="text-align:right">
<xsl:element name="img">
<xsl:attribute name="width">140px</xsl:attribute>
<xsl:attribute name="src">../../appl/shared/barcode.asp?text=<xsl:value-of select="discipline/srtdiscipline/prefix"/><xsl:value-of select="key"/>&amp;height=50&amp;narrow=1&amp;wide=3</xsl:attribute>
</xsl:element>
</td>
</tr>
<xsl:if test="not(//opdracht/extra_key) and extra_key">
<xsl:variable name="mx_key"><xsl:value-of select="extra_key"/></xsl:variable>
<tr>
<td align="right" valign="top" style="padding-top:10px;">
<td style="padding-top:10px;">
<b><xsl:value-of select="//lcl/FAC/bericht"/>:</b>
</td>
<td colspan="3" style="padding-top:10px;">
@@ -57,9 +31,7 @@
</td>
</tr>
<tr>
<td colspan="4" style="padding-bottom:20px;">
<hr/>
</td>
<td colspan="4" style="padding-bottom:20px;"><hr/></td>
</tr>
</xsl:if>
<xsl:choose>
@@ -69,283 +41,205 @@
<!--==============================================-->
<!-- DEFAULT BON -->
<!--==============================================-->
<!--121=FM Facilities Management = oud?-->
<xsl:when test="discipline/srtdiscipline/key=121">
<tr height="30px">
<td colspan="3"/>
<tr height="30px"><td colspan="4"/></tr>
<tr><td colspan="4">Statusmelding Facilities <xsl:value-of select="discipline/omschrijving"/></td></tr>
<tr height="20px"><td colspan="4"/></tr>
<tr>
<td width="16%"><b>Status:</b></td>
<td colspan="3"><b><xsl:value-of select="status"/></b></td>
</tr>
<tr height="20px"><td colspan="4"/></tr>
<tr>
<td><b>Nummer:</b></td>
<td colspan="3"><xsl:value-of select="discipline/srtdiscipline/prefix"/><xsl:value-of select="key"/></td>
</tr>
<tr>
<td colspan="3">Statusmelding Facilities <xsl:value-of select="discipline/omschrijving"/></td>
</tr>
<tr height="20px">
<td colspan="3"/>
<td><b>Startdatum:</b></td>
<td colspan="3"><xsl:value-of select="gemeld/datum"/></td>
</tr>
<tr>
<td align="right" width="16%"><b>Status:</b></td>
<td align="left"><b><xsl:value-of select="status"/></b></td>
</tr>
<tr height="20px">
<td colspan="3"/>
<td><b>Behandelaar:</b></td>
<td colspan="3"><xsl:value-of select="behandelaar/naam_full"/></td>
</tr>
<tr>
<td align="right" width="16%"><b>Nummer:</b></td>
<td align="left"><xsl:value-of select="discipline/srtdiscipline/prefix"/><xsl:value-of select="key"/></td>
<td><b>Betreft:</b></td>
<td colspan="3"><xsl:value-of select="stdmelding/omschrijving"/></td>
</tr>
<tr height="20px"><td colspan="4"/></tr>
<tr>
<td align="right" width="16%"><b>Startdatum:</b></td>
<td align="left"><xsl:value-of select="gemeld/datum"/></td>
<td><b>Aanvrager:</b></td>
<td colspan="3"><xsl:value-of select="voor/naam_full"/></td>
</tr>
<tr>
<td align="right" width="16%"><b>Behandelaar:</b></td>
<td align="left"><xsl:value-of select="behandelaar/naam_full"/></td>
</tr>
<tr>
<td align="right" width="16%"><b>Betreft:</b></td>
<td align="left"><xsl:value-of select="stdmelding/omschrijving"/></td>
</tr>
<tr height="20px">
<td colspan="3"/>
</tr>
<tr>
<td align="right" width="16%"><b>Aanvrager:</b></td>
<td align="left"><xsl:value-of select="voor/naam_full"/></td>
</tr>
<xsl:if test="onderwerp != ''">
<xsl:if test="onderwerp!=''">
<tr>
<td align="right" width="16%"><b>Onderwerp:</b></td>
<td align="left"><xsl:value-of select="onderwerp"/></td>
<td><b>Onderwerp:</b></td>
<td colspan="3"><xsl:value-of select="onderwerp"/></td>
</tr>
</xsl:if>
<tr>
<td align="right" width="16%"><b>Omschrijving:</b></td>
<td align="left">
<xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="omschrijving"/>
</xsl:call-template>
</td>
</tr>
<tr height="20px">
<td colspan="3"/>
<td><b>Omschrijving:</b></td>
<td colspan="3"><xsl:call-template name="linebreaks"><xsl:with-param name="string" select="omschrijving"/></xsl:call-template></td>
</tr>
<tr height="20px"><td colspan="4"/></tr>
<xsl:if test="opmerking!=''">
<tr>
<td align="right" width="16%"><b>Afhandeling:</b></td>
<td align="left">
<xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="opmerking"/>
</xsl:call-template>
</td>
<td><b>Afhandeling:</b></td>
<td colspan="3"><xsl:call-template name="linebreaks"><xsl:with-param name="string" select="opmerking"/></xsl:call-template></td>
</tr>
</xsl:if>
<tr height="20px">
<td colspan="3"/>
</tr>
<xsl:if test="$srtnotificatiecode='MLDMAI'">
<tr>
<td colspan="3">
**********************************************************************<br/>
This communication is sent to you from Houthoff Buruma Coöperatief U.A. This e-mail and its contents
are for the use of the addressee only and may be confidential or privileged. Unauthorised use, disclosure or
copying is strictly prohibited. If you are not the addressee, please notify us immediately. Houthoff Buruma
is the trade name of Houthoff Buruma Coöperatief U.A., a Dutch law firm based in Amsterdam and registered
in the Amsterdam Chamber of Commerce as no. 34216182. Houthoff Burumas General Terms and
Conditions are available on request and at <a href="http://www.houthoff.com.">www.houthoff.com</a> Applying to all work performed, our General
Terms and Conditions state that our liability is limited, that Dutch law applies and that the Hague Court
has exclusive jurisdiction. Whenever we use the word "partner" in our communications, it means “partner”
as defined in our General Terms and Conditions.<br/>
<tr height="20px"><td colspan="4"/></tr>
<xsl:if test="$srtnotificatiecode='MLDMAI'">
<tr>
<td colspan="4">
**********************************************************************
<br/>This communication is sent to you from Houthoff Buruma Coöperatief U.A.
This e-mail and its contents are for the use of the addressee only and may be confidential or privileged.
Unauthorised use, disclosure or copying is strictly prohibited.
If you are not the addressee, please notify us immediately.
Houthoff Buruma is the trade name of Houthoff Buruma Coöperatief U.A., a Dutch law firm based in Amsterdam and registered in the Amsterdam Chamber of Commerce as no. 34216182.
Houthoff Burumas General Terms and Conditions are available on request and at <a href="http://www.houthoff.com.">www.houthoff.com</a>
Applying to all work performed, our General Terms and Conditions state that our liability is limited, that Dutch law applies and that the Hague Court has exclusive jurisdiction.
Whenever we use the word "partner" in our communications, it means “partner” as defined in our General Terms and Conditions.<br/>
**********************************************************************
</td>
</tr>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<tr height="30px">
<td colspan="3"/>
</tr>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$srtnotificatiecode='MLDACP'">
<tr height="30px"><td colspan="4"/></tr>
<tr>
<td colspan="4">
<xsl:value-of select="discipline/srtdiscipline/prefix"/><xsl:value-of select="key"/>&#xA0;<xsl:value-of select="onderwerp"/>
<br/><br/>Beste <xsl:value-of select="voor/naam_friendly"/>,
<br/><br/>Uw melding is geregistreerd in het ticket-systeem en zal zo spoedig mogelijk worden afgehandeld.
<br/><br/>Met vriendelijke groet,
<br/><br/><xsl:value-of select="behandelaar/naam_friendly"/>
</td>
</tr>
</xsl:when>
<xsl:when test="$srtnotificatiecode='MLDAFM'">
<tr height="30px"><td colspan="4"/></tr>
<tr>
<td colspan="4">
<xsl:value-of select="discipline/srtdiscipline/prefix"/><xsl:value-of select="key"/>&#xA0;<xsl:value-of select="onderwerp"/>
<br/><br/>Beste <xsl:value-of select="voor/naam_friendly"/>,
<br/><br/>Je melding is afgehandeld. <xsl:call-template name="linebreaks"><xsl:with-param name="string" select="opmerking"/></xsl:call-template>
<br/><br/>Mocht je nog vragen of opmerkingen hebben, neem dan contact op met de IT-helpdesk (6400)
<br/><br/>Met vriendelijke groet,
<br/><br/><xsl:for-each select="tracking/track[@code='MLDAFM']">
<xsl:sort select="datum/timestamp" order="ascending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="user/naam_friendly"/>
</xsl:if>
</xsl:for-each>
</td>
</tr>
</xsl:when>
<xsl:otherwise>
<tr height="30px"><td colspan="4"/></tr>
<tr>
<td align="left">
<td colspan="4">
<b>Facilities&#xA0;
<xsl:value-of select="voor/werkplek/plaats/regio/district/locatie/code"/>&#xA0;
<xsl:if test="voor/werkplek/plaats/regio/district/locatie/omschrijving!=''">(<xsl:value-of select="voor/werkplek/plaats/regio/district/locatie/omschrijving"/>)</xsl:if>
</b>
<xsl:if test="voor/werkplek/plaats/regio/district/locatie/omschrijving!=''">(<xsl:value-of select="voor/werkplek/plaats/regio/district/locatie/omschrijving"/>)</xsl:if></b>
</td>
</tr>
<tr height="10px"><td colspan="4"/></tr>
<tr>
<td/>
</tr>
<tr>
<td align="right" width="16%">
<b>Bonnummer:</b>
</td>
<td align="left">
<td width="16%"><b>Bonnummer:</b></td>
<td colspan="3">
<xsl:element name="a">
<xsl:attribute name="href">https://<xsl:value-of select="$FacilitorRoot"/>?<xsl:value-of select="../bookmarks/melding"/><xsl:value-of select="key"/>
</xsl:attribute><b><xsl:value-of select="discipline/srtdiscipline/prefix"/><xsl:value-of select="key"/></b>
<xsl:attribute name="href">https://<xsl:value-of select="$FacilitorRoot"/>?<xsl:value-of select="../bookmarks/melding"/><xsl:value-of select="key"/></xsl:attribute><b><xsl:value-of select="discipline/srtdiscipline/prefix"/><xsl:value-of select="key"/></b>
</xsl:element>
</td>
</tr>
<tr>
<td align="right" width="16%">
<b>Datum:</b>
</td>
<td align="left">
<b><xsl:value-of select="gemeld/datum"/>&#xA0;
<xsl:value-of select="gemeld/tijd"/></b>
</td>
<td><b>Datum:</b></td>
<td colspan="3"><b><xsl:value-of select="gemeld/datum"/>&#xA0;<xsl:value-of select="gemeld/tijd"/></b></td>
</tr>
<tr>
<td/>
<td><b>Behandelaar:</b></td>
<td colspan="3"><xsl:value-of select="behandelaar/naam_full"/></td>
</tr>
<tr height="10px"><td colspan="4"/></tr>
<tr><td colspan="4"><hr/></td></tr>
<tr height="10px"><td colspan="4"/></tr>
<tr>
<td><b>Melding van:</b></td>
<td colspan="3"><b><xsl:value-of select="voor/naam_full"/></b></td>
</tr>
<tr>
<td align="right" width="16%">
<b>Behandelaar:</b>
</td>
<td align="left">
<xsl:value-of select="behandelaar/naam_full"/>
</td>
</tr>
<tr>
<td colspan="4">
<hr/>
</td>
</tr>
<tr height="20px">
<td colspan="3"/>
</tr>
<tr>
<td align="left">
<b>Melding van:</b>
</td>
<td align="left">
<b><xsl:value-of select="voor/naam_full"/></b>
</td>
</tr>
<tr>
<td align="left">
<b>Ruimte:</b>
</td>
<td align="left">
<td><b>Ruimte:</b></td>
<td colspan="3">
<xsl:value-of select="plaats/regio/district/locatie/gebouw/verdieping/ruimte/nr"/>&#xA0;
<xsl:if test="plaats/regio/district/locatie/gebouw/verdieping/ruimte/omschrijving!=''">(<xsl:value-of select="plaats/regio/district/locatie/gebouw/verdieping/ruimte/omschrijving"/>)</xsl:if>
</td>
</tr>
<tr>
<td align="right" width="16%">
<b>Telefoon:</b>
</td>
<td align="left" width="34%">
<xsl:if test="voor/telefoonnr=''">-</xsl:if>
<xsl:value-of select="voor/telefoonnr"/>
</td>
</tr>
<tr>
<td/>
<td><b>Telefoon:</b></td>
<td colspan="3"><xsl:if test="voor/telefoonnr=''">-</xsl:if><xsl:value-of select="voor/telefoonnr"/></td>
</tr>
<tr height="20px"><td colspan="4"/></tr>
<tr>
<td><b>Vakgroep:</b></td>
<td colspan="3"><xsl:if test="discipline/omschrijving=''">-</xsl:if><xsl:value-of select="discipline/omschrijving"/></td>
</tr>
<tr>
<td/>
</tr>
<tr>
<td align="left">
<b>Vakgroep:</b>
</td>
<td align="left">
<xsl:if test="discipline/omschrijving=''">-</xsl:if>
<xsl:value-of select="discipline/omschrijving"/>
</td>
</tr>
<tr>
<td align="right">
<b>Melding:</b>
</td>
<td align="left">
<xsl:if test="stdmelding/omschrijving=''">-</xsl:if>
<xsl:value-of select="stdmelding/omschrijving"/>
</td>
<td><b>Melding:</b></td>
<td colspan="3"><xsl:if test="stdmelding/omschrijving=''">-</xsl:if><xsl:value-of select="stdmelding/omschrijving"/></td>
</tr>
<xsl:if test="count(deel)&gt;0">
<xsl:for-each select="deel">
<xsl:sort select="omschrijving"/>
<tr>
<xsl:choose>
<xsl:when test="position()=1">
<td align="right" valign="top">
<b>Betreft:</b>
</td>
</xsl:when>
<xsl:otherwise>
<td/>
</xsl:otherwise>
<xsl:when test="position()=1"><td><b>Betreft:</b></td></xsl:when>
<xsl:otherwise><td/></xsl:otherwise>
</xsl:choose>
<td align="left" valign="top">
<xsl:value-of select="omschrijving"/>
</td>
<td colspan="2" valign="top">
<xsl:comment>NADER TE DEFINIEREN</xsl:comment>
</td>
<td colspan="3"><xsl:value-of select="omschrijving"/></td>
</tr>
</xsl:for-each>
</xsl:if>
<tr height="30px">
<td colspan="3"/>
</tr>
<tr height="20px"><td colspan="4"/></tr>
<tr>
<td align="right">
<b>Uiterlijk gereed/geleverd:</b>
</td>
<td align="left">
<xsl:value-of select="uitvoertijd"/><xsl:choose><xsl:when test="uitvoertijd[@eenheid='U']">&#160;<xsl:value-of select="//lcl/MLD/uren"/></xsl:when><xsl:otherwise>&#160;<xsl:value-of select="//lcl/FAC/dagen"/></xsl:otherwise></xsl:choose>&#xA0;(<xsl:value-of select="datum_gepland/datum"/>)</td>
<td><b>Uiterlijk gereed/geleverd:</b></td>
<td colspan="3"><xsl:value-of select="uitvoertijd"/><xsl:choose><xsl:when test="uitvoertijd[@eenheid='U']">&#160;<xsl:value-of select="//lcl/MLD/uren"/></xsl:when><xsl:otherwise>&#160;<xsl:value-of select="//lcl/FAC/dagen"/></xsl:otherwise></xsl:choose>&#xA0;(<xsl:value-of select="datum_gepland/datum"/>)</td>
</tr>
<tr height="20px">
<td colspan="3"/>
</tr>
<xsl:if test="onderwerp != ''">
<tr height="20px"><td colspan="4"/></tr>
<xsl:if test="onderwerp!=''">
<tr>
<td align="right" width="16%"><b>Onderwerp:</b></td>
<td align="left"><xsl:value-of select="onderwerp"/></td>
<td><b>Onderwerp:</b></td>
<td colspan="3"><xsl:value-of select="onderwerp"/></td>
</tr>
<tr height="10px">
<td colspan="3"/>
</tr>
<tr height="10px"><td colspan="4"/></tr>
</xsl:if>
<tr>
<td align="left" colspan="3">
<xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="omschrijving"/>
</xsl:call-template>
<td colspan="4">
<xsl:call-template name="linebreaks"><xsl:with-param name="string" select="omschrijving"/></xsl:call-template>
</td>
</tr>
<tr height="20px">
<td colspan="3"/>
</tr>
<xsl:for-each select="kenmerk[@type!='L' and @type!='Q']">
<tr height="10px"><td colspan="4"/></tr>
<xsl:for-each select="kenmerk[@type!='L' and @type!='l' and @type!='Q' and count(@xmlnode)=0]">
<xsl:sort select="@volgnummer" data-type="number"/>
<xsl:if test=".!=''">
<tr>
<td align="right">
<b>
<xsl:value-of select="@naam"/>:</b>
</td>
<td colspan="3">
<xsl:value-of select="."/>
</td>
<td><b><xsl:value-of select="@naam"/>:</b></td>
<td colspan="3"><xsl:value-of select="."/></td>
</tr>
</xsl:if>
</xsl:for-each>
<td>
<xsl:if test="behandelwijze=2 and not(/facilitor/opdracht)">
<xsl:if test="behandelwijze=2 and not(/facilitor/opdracht)">
<tr height="10px"><td colspan="4"/></tr>
<xsl:for-each select="notes/note[flag=1]">
<xsl:sort select="aanmaak/timestamp" order="ascending"/>
<xsl:sort select="aanmaak/timestamp" order="ascending"/>
<tr>
<xsl:choose>
<xsl:when test="position() = 1">
<td align="right" valign="top">
<b><xsl:value-of select="//lcl/MLD/behandeling"/>:</b>
</td>
</xsl:when>
<xsl:otherwise>
<td/>
</xsl:otherwise>
<xsl:when test="position()=1"><td><b><xsl:value-of select="//lcl/MLD/behandeling"/>:</b></td></xsl:when>
<xsl:otherwise><td/></xsl:otherwise>
</xsl:choose>
<td colspan="3">
<span class="mldbeh"><xsl:value-of select="aanmaak/datum"/>&#xA0;<xsl:value-of select="aanmaak/tijd"/>&#xA0;-&#xA0;<xsl:value-of select="noteur/naam_friendly"/></span>&#xA0;
@@ -355,16 +249,43 @@ as defined in our General Terms and Conditions.<br/>
</td>
</tr>
</xsl:for-each>
</xsl:if>
</td>
<td colspan="4">
<hr/>
</td>
</xsl:if>
<tr><td colspan="4"><hr/></td></tr>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</table>
</xsl:template>
<xsl:template match="melding" mode="full">
<xsl:choose>
<xsl:when test="$mode='summary'"></xsl:when>
<xsl:otherwise>
<html>
<xsl:comment>================================ MELDINGEN ==============================</xsl:comment>
<xsl:comment>FACILITOR default XSL template for melding</xsl:comment>
<xsl:call-template name="htmlhead"/>
<xsl:element name="body">
<xsl:if test="$mode!='email'">
<xsl:attribute name="onload">window.print();</xsl:attribute>
</xsl:if>
<xsl:call-template name="pageheader"/>
<xsl:choose>
<xsl:when test="$srtnotificatiecode = 'MLDKTO'">
<xsl:apply-templates select="." mode="kto"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="include"/>
</xsl:otherwise>
</xsl:choose>
<!--xsl:call-template name="pagefooter"/-->
</xsl:element>
</html>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="opdracht" mode="include">
<style>
td.subcaption {
@@ -1403,8 +1324,9 @@ This communication is sent to you from Houthoff Buruma Coöperatief U.A. This e-
<xsl:template match="rapport">
<style>th {
border: 1px solid #808080;
}</style>
border: 1px solid #808080;
}
</style>
<xsl:if test="@view='HOUT_V_RAP_PRJ_OVZ'">
<table width="100%" class="rstable" cellpadding="0" cellspacing="0">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -326,10 +326,12 @@
</td>
</tr>
<tr>
<td colspan="4">
<xsl:element name="img">
<xsl:attribute name="src">
../../appl/CAD/mySlnk2IMG.asp?mode=0
<xsl:attribute name="frc">M=CAD
&amp;labelPos=2
&amp;vKey=<xsl:value-of select="regio/district/locatie/gebouw/verdieping/key"/>
&amp;scenario_key=0&amp;paperWidth=170&amp;paperHeight=170&amp;forPrint=1
&amp;discs=101

View File

@@ -24,8 +24,8 @@
<DeliveryParty>
<Name><xsl:value-of select='bestelling/kenmerk[@key=1]'/></Name>
<StreetAndNumber><xsl:value-of select='bestelling/kenmerk[@key=3]'/></StreetAndNumber>
<PostalCode><xsl:value-of select='bestelling/kenmerk[@key=4]'/></PostalCode>
<City><xsl:value-of select='bestelling/kenmerk[@key=5]'/></City>
<PostalCode><xsl:value-of select='bestelling/kenmerk[@key=4]'/></PostalCode>
<LocationDescription><xsl:value-of select='bestelling/kenmerk[@key=1]'/></LocationDescription>
</DeliveryParty>
<xsl:for-each select="bestelopdrachtitem">

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:decimal-format name="european" decimal-separator="." grouping-separator=","/>
<xsl:param name="mode"/>
<xsl:template match="bestelopdracht">
<!--Facilitor custom XSL template for cXML bestelopdracht-->
<Order xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gs1.nl/order/insbou/004 Order_insbou004.xsd">
<OrderType>220</OrderType>
<OrderNumber><xsl:value-of select='bestelling/kenmerk[@key=6]'/></OrderNumber>
<OrderDate><xsl:value-of select="datum/jaar"/>-<xsl:value-of select="datum/maand"/>-<xsl:value-of select="datum/dag"/></OrderDate>
<OrderTime><xsl:value-of select="datum/tijd"/>:00</OrderTime>
<ScenarioTypeCode>X1</ScenarioTypeCode>
<EndCustomerOrderNumber><xsl:value-of select="id"/></EndCustomerOrderNumber>
<Buyer>
<GLN><xsl:value-of select='bestelling/voor/afdeling/bedrijf/leverancier_nr'/></GLN>
</Buyer>
<Supplier>
<GLN><xsl:value-of select='bedrijf/leverancier_nr'/></GLN>
</Supplier>
<DeliveryParty>
<Name><xsl:value-of select='bestelling/kenmerk[@key=1]'/></Name>
<StreetAndNumber><xsl:value-of select='bestelling/kenmerk[@key=3]'/></StreetAndNumber>
<City><xsl:value-of select='bestelling/kenmerk[@key=5]'/></City>
<PostalCode><xsl:value-of select='bestelling/kenmerk[@key=4]'/></PostalCode>
<LocationDescription><xsl:value-of select='bestelling/kenmerk[@key=1]'/></LocationDescription>
</DeliveryParty>
<xsl:for-each select="bestelopdrachtitem">
<xsl:sort select="bestelitem/kenmerk[@key='8']"/>
<OrderLine>
<LineNumber><xsl:value-of select="bestelitem/kenmerk[@key='8']"/></LineNumber>
<OrderedQuantity><xsl:value-of select="aantal"/></OrderedQuantity>
<OrderedQuantityUoM><xsl:value-of select="bestelitem/srtdeel/eenheid"/></OrderedQuantityUoM>
<LineIdentification><xsl:value-of select="bestelitem/kenmerk[@key='8']"/></LineIdentification>
<TradeItemIdentification>
<GTIN><xsl:value-of select="bestelitem/srtdeel/artikel_nummer"/></GTIN>
<SuppliersTradeItemId><xsl:value-of select="bestelitem/kenmerk[@key='9']"/></SuppliersTradeItemId>
</TradeItemIdentification>
<DeliveryDateTimeInformation>
<RequiredDeliveryDate><xsl:value-of select="../bestelling/leverdatum/jaar"/>-<xsl:value-of select="../bestelling/leverdatum/maand"/>-<xsl:value-of select="../bestelling/leverdatum/dag"/></RequiredDeliveryDate>
</DeliveryDateTimeInformation>
</OrderLine>
</xsl:for-each>
</Order>
</xsl:template>
<xsl:template match="facilitor">
<xsl:apply-templates select="bestelopdracht"/>
</xsl:template>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="$mode='getExtension'">
<xsl:element name="format">
<xsl:element name="extension">xml</xsl:element>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="facilitor"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

0
CUST/PLAT/export/NEN2767/.gitignore vendored Normal file
View File

View File

@@ -0,0 +1,17 @@
REM PLAT
REM
REM
REM Context : roep deze file aan indien nodig, of schedule deze
REM Verseist: de randvoorwaarde voor het gebruik van gen_export
REM
REM $Revision$
REM $Id$
REM
REM ==== Export NEN2767 conditiescore + prioriteitsscore ======
CALL ..\..\..\utils\gen_export\gen_export.bat NEN2767_COND_SCORE
REM ========================== END ============================

View File

@@ -0,0 +1,17 @@
REM PLAT
REM
REM
REM Context : roep deze file aan indien nodig, of schedule deze
REM Verseist: de randvoorwaarde voor het gebruik van gen_export
REM
REM $Revision$
REM $Id$
REM
REM == Export NEN2767 geaggregeerde conditiescore per locatie / gebouw ==
CALL ..\..\..\utils\gen_export\gen_export.bat NEN2767_AGGR_SCORE
REM ========================== END ======================================

View File

@@ -119,7 +119,7 @@
margin: 1px 0 6px 0;
}
h4, p {
h4 {
font-size: 12px;
font-weight: normal;
}
@@ -145,6 +145,13 @@
text-align: right !important;
}
.tdnw {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: block;
}
.tdtd { /* date */
white-space: nowrap;
}
@@ -318,11 +325,11 @@
<th>
<xsl:attribute name="colspan"><xsl:value-of select="$aantal_kolommen"/></xsl:attribute>
<table width="100%" border="0px" cellpadding="5" cellspacing="2" style="table-layout:fixed;">
<col width="60px"/>
<col width="200px"/>
<col width="100%"/>
<col width="60px"/>
<col width="99px"/>
<col style="width: 16mm"/>
<col style="width: 70mm"/>
<col style="max-width: 100%"/>
<col style="width: 16mm"/>
<col style="width: 30mm"/>
<tr>
<td class="tdhs" style="text-align:left;align:left;width:200px"></td>
<td class="tdhs" style="text-align:left;align:left"></td>
@@ -335,11 +342,11 @@
<td rowspan="3" colspan="2" style="text-align:left;padding-bottom:1px;padding-top:1px">
<xsl:element name="img">
<xsl:attribute name="src">../../cust/<xsl:value-of select="//header/custId"/>/tmpl_logo3.gif</xsl:attribute>
<xsl:attribute name="height">30px</xsl:attribute>
<xsl:attribute name="height">32px</xsl:attribute>
</xsl:element>
<xsl:element name="img">
<xsl:attribute name="src">../../cust/<xsl:value-of select="//header/custId"/>/tmpl_logo.gif</xsl:attribute>
<xsl:attribute name="height">30px</xsl:attribute>
<xsl:attribute name="height">32px</xsl:attribute>
</xsl:element>
</td>
<xsl:if test="$periode!=''">
@@ -1178,8 +1185,8 @@
</xsl:call-template>
<!-- Totaal contractwaarde per accountcode -->
<xsl:variable name="v_gecontracteerd_exc" select="sum(//data_row[ACCOUNTCODE=$v_accountcode]/MLD_OPDR_KOSTEN)"/>
<xsl:variable name="v_gecontracteerd_btw" select="sum(//data_row[ACCOUNTCODE=$v_accountcode]/MLD_OPDR_KOSTEN_BTW)"/>
<xsl:variable name="v_gecontracteerd_exc" select="sum(//data_row[ACCOUNTCODE=$v_accountcode and CONTRACTWAARDE=1]/MLD_OPDR_KOSTEN)"/>
<xsl:variable name="v_gecontracteerd_btw" select="sum(//data_row[ACCOUNTCODE=$v_accountcode and CONTRACTWAARDE=1]/MLD_OPDR_KOSTEN_BTW)"/>
<xsl:variable name="v_gecontracteerd_inc" select="$v_gecontracteerd_exc + $v_gecontracteerd_btw"/>
<tr class="subt2">
<td colspan="5"></td>
@@ -1207,8 +1214,8 @@
<xsl:with-param name="p_hight" select="2"/>
</xsl:call-template>
<xsl:variable name="v_contract_exc" select="sum(//data_row/MLD_OPDR_KOSTEN)"/>
<xsl:variable name="v_contract_btw" select="sum(//data_row/MLD_OPDR_KOSTEN_BTW)"/>
<xsl:variable name="v_contract_exc" select="sum(//data_row[CONTRACTWAARDE=1]/MLD_OPDR_KOSTEN)"/>
<xsl:variable name="v_contract_btw" select="sum(//data_row[CONTRACTWAARDE=1]/MLD_OPDR_KOSTEN_BTW)"/>
<xsl:variable name="v_contract_inc" select="$v_contract_exc + $v_contract_btw"/>
<xsl:variable name="v_factuur_exc" select="sum(//data_row/FIN_FACTUUR_TOTAAL)"/>
@@ -1785,25 +1792,25 @@
<xsl:variable name="v_ordernr" select="MLD_OPDR_ORDERNR"/>
<tr class="header">
<td class="tdtl tdb"><xsl:value-of select="SCODE"/></td>
<td class="tdtl tdb tdpr"><xsl:value-of select="MLD_OPDR_ORDERNR"/></td>
<td class="tdtl tdb"><xsl:value-of select="substring-after(KOSTENSOORT, SCODE)"/></td>
<td class="tdtl tdb" colspan="6"><xsl:value-of select="MLD_OPDR_ID"/></td>
<td class="tdtl tdb" ><xsl:value-of select="SCODE"/></td>
<td class="tdtl tdb tdpr" ><xsl:value-of select="MLD_OPDR_ORDERNR"/></td>
<td class="tdtl tdb" ><xsl:value-of select="substring-after(KOSTENSOORT, SCODE)"/></td>
<td class="tdtl tdb" colspan="6"><xsl:value-of select="MLD_OPDR_ID"/></td>
</tr>
<!-- alle opdrachten per kostensoort -->
<xsl:for-each select="//data_row[SCODE=$v_soortcode and PRS_BEDRIJF_KEY=$v_bedrijf_key and MLD_OPDR_ORDERNR=$v_ordernr]">
<xsl:sort select="MLD_OPDR_BEDRIJFOPDR_VOLGNR" data-type="number"/>
<tr class="trline">
<td></td>
<td class="tdtr tdpr"><xsl:value-of select="MLD_OPDR_BEDRIJFOPDR_VOLGNR"/></td>
<td class="tdtl"><xsl:value-of select="MLD_OPDR_OMSCHRIJVING"/></td>
<td class="tdtl"><xsl:value-of select="MLD_OPDR_ID"/></td>
<td class="tdtd"><xsl:value-of select="MLD_OPDR_DATUMBEGIN_P"/></td>
<td class="tdtr"><xsl:value-of select="format-number(RAMING, '#.##0,00', 'euro')"/></td>
<td class="tdtr"><xsl:value-of select="format-number(GECONTRACTEERD, '#.##0,00', 'euro')"/></td>
<td class="tdtr tdpr"><xsl:value-of select="format-number(FIN_FACTUUR_TOTAAL, '#.##0,00', 'euro')"/></td>
<td class="tdtl"><xsl:value-of select="MLD_STATUSOPDR_OMS"/></td>
<td class="tdtl"> <p style="width: 10mm;">&#xA0;</p></td>
<td class="tdtr tdpr"><p style="width: 10mm;"><xsl:value-of select="MLD_OPDR_BEDRIJFOPDR_VOLGNR"/></p></td>
<td class="tdtl"> <p class="tdnw" style="width: 75mm;"><xsl:value-of select="MLD_OPDR_OMSCHRIJVING"/></p></td>
<td class="tdtl"> <p class="tdnw" style="width: 25mm;"><xsl:value-of select="MLD_OPDR_ID"/></p></td>
<td class="tdtd"> <p style="width: 18mm;"><xsl:value-of select="MLD_OPDR_DATUMBEGIN_P"/></p></td>
<td class="tdtr"> <p style="width: 18mm;"><xsl:value-of select="format-number(RAMING, '#.##0,00', 'euro')"/></p></td>
<td class="tdtr"> <p style="width: 18mm;"><xsl:value-of select="format-number(GECONTRACTEERD, '#.##0,00', 'euro')"/></p></td>
<td class="tdtr tdpr"><p style="width: 18mm;"><xsl:value-of select="format-number(FIN_FACTUUR_TOTAAL, '#.##0,00', 'euro')"/></p></td>
<td class="tdtl"> <p style="width: 18mm;"><xsl:value-of select="MLD_STATUSOPDR_OMS"/></p></td>
</tr>
</xsl:for-each>
@@ -1921,7 +1928,7 @@
<tr class="trline">
<td class="tdtl tdb"><xsl:value-of select="SCODE"/></td>
<td class="tdtl tdb"><xsl:value-of select="MLD_OPDR_DATUMBEGIN_P"/></td>
<td class="tdtl tdb tdtd"><xsl:value-of select="MLD_OPDR_DATUMBEGIN_P"/></td>
<td class="tdtl tdb"><xsl:value-of select="MLD_OPDR_ORDERNR"/></td>
<td class="tdtl tdb"><xsl:value-of select="MLD_OPDR_OMSCHRIJVING"/></td>
<td class="tdtl tdb"><xsl:value-of select="MLD_OPDR_ID"/></td>
@@ -2533,8 +2540,8 @@
<tr class="thr">
<th class="th3">Code</th>
<th class="th3">Datum</th>
<th class="th3">Factuur<br/>nummer</th>
<th class="th3">Contractant</th>
<th class="th3">Factuur<br/>nummer</th>
<th class="th3">Omschrijving</th>
<th class="th3 tdtr">Bedrag<br/>excl. btw</th>
<th class="th3 tdtr">BTW</th>
@@ -2545,7 +2552,7 @@
<xsl:text disable-output-escaping="yes">&lt;tbody&gt;</xsl:text>
<tr><td class="tdtl" colspan="8">&#xA0;</td></tr>
<xsl:for-each select="//data_row">
<xsl:for-each select="//data_row[FACTUURSTATUS = 6]">
<xsl:sort select="FACTUURDATUM"/>
<xsl:variable name="v_bedrag_exc" select="BEDRAGEXCL"/>
<xsl:variable name="v_bedrag_btw" select="BEDRAGBTW"/>
@@ -2554,8 +2561,8 @@
<tr>
<td><xsl:value-of select="SCODE"/></td>
<td class="nowrap"><xsl:value-of select="FACTUURDATUM_P"/></td>
<td class="nowrap"><xsl:value-of select="FACTUURNR"/></td>
<td class="nowrap"><xsl:value-of select="CONTRACTANT"/></td>
<td class="nowrap"><xsl:value-of select="FACTUURNR"/></td>
<td class="nowrap"><xsl:value-of select="OPMERKING"/></td>
<td class="tdtr"><xsl:value-of select="format-number($v_bedrag_exc, '#.##0,00', 'euro')"/></td>
<td class="tdtr"><xsl:value-of select="format-number($v_bedrag_btw, '#.##0,00', 'euro')"/></td>
@@ -2564,8 +2571,8 @@
</xsl:for-each>
<tr><td class="tdtl" colspan="8">&#xA0;</td></tr>
<xsl:variable name="v_bedrag_totaal_exc" select="sum(//data_row/BEDRAGEXCL)"/>
<xsl:variable name="v_bedrag_totaal_btw" select="sum(//data_row/BEDRAGBTW)"/>
<xsl:variable name="v_bedrag_totaal_exc" select="sum(//data_row[FACTUURSTATUS = 6]/BEDRAGEXCL)"/>
<xsl:variable name="v_bedrag_totaal_btw" select="sum(//data_row[FACTUURSTATUS = 6]/BEDRAGBTW)"/>
<xsl:variable name="v_bedrag_totaal_inc" select="$v_bedrag_totaal_exc + $v_bedrag_totaal_btw"/>
<tr class="subt2 trblk">
<td colspan="4"></td>
@@ -2818,6 +2825,7 @@
<xsl:with-param name="p_prs_leverancier_nr" select="$p_prs_leverancier_nr"/>
<xsl:with-param name="p_soortcode" select="$p_soortcode"/>
<xsl:with-param name="p_mld_ordernr" select="$p_mld_ordernr"/>
<xsl:with-param name="p_opdr_meerwerk" select="MLD_OPDR_MEERWERK"/>
</xsl:call-template>
<xsl:variable name="v_facturen_exc" select="sum(//data_row[PRS_LEVERANCIER_NR=$p_prs_leverancier_nr and SCODE=$p_soortcode and MLD_OPDR_ORDERNR=$v_mld_ordernr]/FIN_FACTUUR_TOTAAL)"/>
@@ -2850,34 +2858,43 @@
<xsl:param name="p_prs_leverancier_nr"/>
<xsl:param name="p_soortcode"/>
<xsl:param name="p_mld_ordernr"/>
<xsl:param name="p_opdr_meerwerk"/>
<xsl:for-each select="//data_row[PRS_LEVERANCIER_NR = $p_prs_leverancier_nr and SCODE = $p_soortcode and MLD_OPDR_ORDERNR = $p_mld_ordernr and FIN_FACTUUR_NR != '']">
<xsl:sort select="FACTUURDATUM"/>
<xsl:sort select="FIN_FACTUUR_NR"/>
<xsl:if test="$p_opdr_meerwerk=1">
<xsl:variable name="v_fin_factuur_totaal" select="sum(//data_row[PRS_LEVERANCIER_NR = $p_prs_leverancier_nr and SCODE = $p_soortcode and MLD_OPDR_ORDERNR = $p_mld_ordernr and FIN_FACTUUR_NR != '']/FIN_FACTUUR_TOTAAL)"/>
<xsl:variable name="v_fin_factuur_totaal_btw" select="sum(//data_row[PRS_LEVERANCIER_NR = $p_prs_leverancier_nr and SCODE = $p_soortcode and MLD_OPDR_ORDERNR = $p_mld_ordernr and FIN_FACTUUR_NR != '']/FIN_FACTUUR_TOTAAL_BTW)"/>
<xsl:variable name="v_fin_factuur_totaal_tot" select="$v_fin_factuur_totaal + $v_fin_factuur_totaal_btw"/>
<!--MVH:tr>
<td class="tdt1"></td>
<td class="tdt"><p><xsl:value-of select="FACTUURDATUM_P"/></p></td>
<td class="tdt"><p><xsl:value-of select="FIN_FACTUUR_NR"/></p></td>
<td class="tdt tdte"><p><xsl:value-of select="FIN_FACTUUR_OPMERKING"/></p></td>
<td class="tdt"></td>
<td class="tdtr"><p><xsl:value-of select="format-number(FIN_FACTUUR_TOTAAL, '#.##0,00', 'euro')"/></p></td>
<td class="tdtr"><p><xsl:value-of select="format-number(FIN_FACTUUR_TOTAAL_BTW, '#.##0,00', 'euro')"/></p></td>
<td class="tdtr"><p><xsl:value-of select="format-number(FIN_FACTUUR_TOTAAL+FIN_FACTUUR_TOTAAL_BTW, '#.##0,00', 'euro')"/></p></td>
<td class="tdtr"><p><xsl:value-of select="ADVIESDATUM_P"/></p></td>
</tr-->
<tr>
<td class="h3"></td>
<td class="nowrap h3"><xsl:value-of select="FACTUURDATUM_P"/></td>
<td class="h3"><xsl:value-of select="FIN_FACTUUR_NR"/></td>
<td class="tdte h3"><xsl:value-of select="FIN_FACTUUR_OPMERKING"/></td>
<td class="h3"></td>
<td class="tdtr h3"><xsl:value-of select="format-number(FIN_FACTUUR_TOTAAL, '#.##0,00', 'euro')"/></td>
<td class="tdtr h3"><xsl:value-of select="format-number(FIN_FACTUUR_TOTAAL_BTW, '#.##0,00', 'euro')"/></td>
<td class="tdtr h3"><xsl:value-of select="format-number(FIN_FACTUUR_TOTAAL+FIN_FACTUUR_TOTAAL_BTW, '#.##0,00', 'euro')"/></td>
<td class="nowrap h3" style="text-align:center;"><xsl:value-of select="ADVIESDATUM_P"/></td>
<td class="nowrap h3">&#xA0;</td>
<td class="h3">&#xA0;</td>
<td class="tdte h3">* totaal gefactureerd</td>
<td class="h3">&#xA0;</td>
<td class="tdtr h3"><xsl:value-of select="format-number($v_fin_factuur_totaal, '#.##0,00', 'euro')"/></td>
<td class="tdtr h3"><xsl:value-of select="format-number($v_fin_factuur_totaal_btw, '#.##0,00', 'euro')"/></td>
<td class="tdtr h3"><xsl:value-of select="format-number($v_fin_factuur_totaal_tot, '#.##0,00', 'euro')"/></td>
<td class="nowrap h3" style="text-align:center;">&#xA0;</td>
</tr>
</xsl:for-each>
</xsl:if>
<xsl:if test="$p_opdr_meerwerk=0">
<xsl:for-each select="//data_row[PRS_LEVERANCIER_NR = $p_prs_leverancier_nr and SCODE = $p_soortcode and MLD_OPDR_ORDERNR = $p_mld_ordernr and FIN_FACTUUR_NR != '']">
<xsl:sort select="FACTUURDATUM"/>
<xsl:sort select="FIN_FACTUUR_NR"/>
<tr>
<td class="h3"></td>
<td class="nowrap h3"><xsl:value-of select="FACTUURDATUM_P"/></td>
<td class="h3"><xsl:value-of select="FIN_FACTUUR_NR"/></td>
<td class="tdte h3"><xsl:value-of select="FIN_FACTUUR_OPMERKING"/></td>
<td class="h3"></td>
<td class="tdtr h3"><xsl:value-of select="format-number(FIN_FACTUUR_TOTAAL, '#.##0,00', 'euro')"/></td>
<td class="tdtr h3"><xsl:value-of select="format-number(FIN_FACTUUR_TOTAAL_BTW, '#.##0,00', 'euro')"/></td>
<td class="tdtr h3"><xsl:value-of select="format-number(FIN_FACTUUR_TOTAAL+FIN_FACTUUR_TOTAAL_BTW, '#.##0,00', 'euro')"/></td>
<td class="nowrap h3" style="text-align:center;"><xsl:value-of select="ADVIESDATUM_P"/></td>
</tr>
</xsl:for-each>
</xsl:if>
</xsl:template>
<xsl:template name="DISPLAY_CONTRACTEN_ACC">
@@ -3007,8 +3024,8 @@
<xsl:template name="DISPLAY_FACTUREN_ACC_TOTAAL">
<xsl:param name="p_accountcode"/>
<xsl:variable name="v_gecontracteerd_exc" select="sum(//data_row[ACCOUNTCODE=$p_accountcode]/MLD_OPDR_KOSTEN)"/>
<xsl:variable name="v_gecontracteerd_btw" select="sum(//data_row[ACCOUNTCODE=$p_accountcode]/MLD_OPDR_KOSTEN_BTW)"/>
<xsl:variable name="v_gecontracteerd_exc" select="sum(//data_row[ACCOUNTCODE=$p_accountcode and CONTRACTWAARDE=1]/MLD_OPDR_KOSTEN)"/>
<xsl:variable name="v_gecontracteerd_btw" select="sum(//data_row[ACCOUNTCODE=$p_accountcode and CONTRACTWAARDE=1]/MLD_OPDR_KOSTEN_BTW)"/>
<xsl:variable name="v_gecontracteerd_inc" select="$v_gecontracteerd_exc + $v_gecontracteerd_btw"/>
<xsl:variable name="v_factuur_exc"><xsl:value-of select="sum(//data_row[ACCOUNTCODE = $p_accountcode]/FIN_FACTUUR_TOTAAL)"/></xsl:variable>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -29,6 +29,9 @@
<method name="bez_postsave">
<PARAMETER name="bezkeyArr"/>
</method>
<method name="fin_postsave">
<PARAMETER name="fin_key"/>
</method>
</public>
<script language="javascript">
@@ -64,6 +67,14 @@ bez_postsave = function (bezkeyArr, pResult)
return true;
}
fin_postsave = function (fin_key, pResult)
{
// Goedkeurder instellen
var sql_fin = "BEGIN ykpn.fin_set_approver(" + fin_key + "); END;";
Oracle.Execute(sql_fin);
return true;
}
]]>
</script>
</component>