From 4e5f92fb75c4b6dc2222150c1f15402a34847de7 Mon Sep 17 00:00:00 2001 From: Erik Groener Date: Wed, 22 Jun 2016 14:10:33 +0000 Subject: [PATCH] NYBU#29712 Annuleringshorizon (variabele doorbelastingspercentages) svn path=/Website/trunk/; revision=29819 --- APPL/RES/res_delete.asp | 46 +++++++++++++++++++++++++++--------- APPL/RES/res_delete_save.asp | 16 +++++++++++++ 2 files changed, 51 insertions(+), 11 deletions(-) diff --git a/APPL/RES/res_delete.asp b/APPL/RES/res_delete.asp index 915e6d6aa1..9ea7978c0b 100644 --- a/APPL/RES/res_delete.asp +++ b/APPL/RES/res_delete.asp @@ -80,10 +80,24 @@ user.auth_required_or_abort(this_res.canDelete); // Maximale kostendoorberekening van de te verwijderen reservering ophalen var kosten = this_res.max_dbkosten; - var sql = "SELECT res.getruimteprijs (" + rsv_ruimte_key + ", 1) orgruimteprijs" - + " FROM DUAL"; + var sql = "SELECT res.getruimteprijs (" + rsv_ruimte_key + ", 1) org_ruimteprijs" + + " , res.getdeelresprijs (" + rsv_ruimte_key + ") deelresprijs" + + " , COALESCE(res_rsv_ruimte_totaal, res.getruimteprijs (" + rsv_ruimte_key + ", 1)) afspr_ruimteprijs" + + " , (SELECT SUM (res.getartikelprijs (res_rsv_artikel_key))" + + " FROM res_rsv_artikel" + + " WHERE res_rsv_artikel_dirtlevel = 0" + + " AND res_rsv_ruimte_key = " + rsv_ruimte_key + ") artikelprijs" + + " , (SELECT SUM (res.getdeelprijs (res_rsv_deel_key))" + + " FROM res_rsv_deel" + + " WHERE res_rsv_deel_dirtlevel = 0" + + " AND res_rsv_ruimte_key = " + rsv_ruimte_key + ") deelprijs" + + " FROM res_rsv_ruimte" + + " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key; var oRs = Oracle.Execute(sql); - var orgruimteprijs = oRs("orgruimteprijs").Value; + var afsprruimteprijs = oRs("afspr_ruimteprijs").Value; + var orgruimteprijs = oRs("org_ruimteprijs").Value; + var voorzieningenprijs = oRs("artikelprijs").Value + oRs("deelprijs").Value; + var deelresprijs = oRs("deelresprijs").Value; oRs.Close(); buttons = []; @@ -130,20 +144,26 @@ user.auth_required_or_abort(this_res.canDelete); { $(".div_perc_recharge").toggle(); $(".div_recharge").toggle(); + $(".div_voorzieningen").toggle(); + $(".div_totaalkosten").toggle(); FcltMgr.resized(); } function onChangePerc() { - var orgruimtekosten = <%=orgruimteprijs%>; - var perc = $("#perc_recharge").val() / 100; - $("#recharge").val(num2currEditable(parseFloat(perc * orgruimtekosten))); + var perc = parseFloat($("#perc_recharge").val()) / 100; + var org_ruimte_prijs = <%=safe.jsfloat(orgruimteprijs)%>; + var totaal = <%=safe.jsfloat(voorzieningenprijs)%> + (perc * org_ruimte_prijs); + $("#recharge").val(num2currEditable(perc * org_ruimte_prijs)); + $("#totaalkosten").text(num2currEditable(totaal)); } $(document).ready(function() { if (!$("#cost_recharge").is(":checked")) $(".div_perc_recharge").hide(); $(".div_recharge").hide() + $(".div_voorzieningen").hide(); + $(".div_totaalkosten").hide(); }); @@ -183,14 +203,13 @@ user.auth_required_or_abort(this_res.canDelete); <% - var perc_arr = S("res_delete_charge_perc").replace(/\[|\]/g,"").split(","); + var perc_arr = S("res_delete_charge_perc"); if (perc_arr.length > 0) { var sql_perc = ""; - for (var i=0; i0? " UNION " : "") + "SELECT " + perc + ", '" + perc + "%' FROM DUAL"; + sql_perc += (i>0? " UNION " : "") + "SELECT " + perc_arr[i] + ", '" + perc_arr[i] + "%' FROM DUAL"; } FCLTselector("perc_recharge", sql_perc, @@ -201,7 +220,12 @@ user.auth_required_or_abort(this_res.canDelete); ); } } - RWFIELDTR("recharge", "fldrecharge", L("lcl_res_charge_total"), safe.curreditable(orgruimteprijs), {required: true, datatype: "currency", trclass: "div_recharge" }); + if (aantalEerder > 0 && aantalLater > 0) + { + RWFIELDTR("recharge", "fldrecharge", L("lcl_res_charge_total"), safe.curreditable(afsprruimteprijs), {required: true, datatype: "currency", trclass: "div_recharge" }); + ROFIELDTR("fldvoorzkosten", L("lcl_res_voorzieningen_kosten"), safe.curr(voorzieningenprijs), {id: "voorzieningen", trclass: "div_voorzieningen", suppressEmpty: true} ); + ROFIELDTR("fldrvskosten", L("lcl_res_rsv_kosten"), safe.curr(deelresprijs), {id: "totaalkosten", trclass: "div_totaalkosten", suppressEmpty: true} ); + } // in alle andere gevallen is cost_recharge niet aanwezig, en krijgt daardoor in res_delete_save de waarde "off" } %> diff --git a/APPL/RES/res_delete_save.asp b/APPL/RES/res_delete_save.asp index 43143de214..36e9fd33b3 100644 --- a/APPL/RES/res_delete_save.asp +++ b/APPL/RES/res_delete_save.asp @@ -41,6 +41,7 @@ oRs.Close(); var cost_recharge = getFParam("cost_recharge", "off") == "on"; var deletefull = getFParamInt("deletefull", 0) == 1; var deletefuture = getFParamInt("deletefuture", 0) == 1; +var perc_recharge = getFParamFloat("perc_recharge", 100); // Alle niet-admin ruimtes die geen admin- voorzieningen hebben var to_do_rsv_ruimte_key = " res_rsv_ruimte_key IN (" @@ -94,8 +95,23 @@ while (!oRs2.eof) { dbs: "res_status_fo_key", typ: "key", val: (cost_recharge? 4 : 1) }, // status 1=optie, 4=vervallen { dbs: "res_rsv_ruimte_verwijder", typ: "sql", val: "SYSDATE" } ]; + if (cost_recharge) + { + if (!deletefull && !deletefuture && recharge) + { fields.push( {dbs: "res_rsv_ruimte_totaal", typ: "float", frm: "recharge"} ); + } + else + { + var sql = "SELECT res.getruimteprijs (" + one_rsv_ruimte_key + ", 1) org_ruimteprijs" + + " FROM DUAL"; + var oRs = Oracle.Execute(sql); + var ruimteprijs = safe.curreditable(oRs("org_ruimteprijs").Value * (perc_recharge / 100)); + oRs.Close(); + fields.push( {dbs: "res_rsv_ruimte_totaal", typ: "float", val: ruimteprijs} ); + } + } sql = buildUpdate("res_rsv_ruimte", fields) + " res_rsv_ruimte_key = " + one_rsv_ruimte_key;