NYBU#29712 Annuleringshorizon (variabele doorbelastingspercentages)

svn path=/Website/trunk/; revision=29819
This commit is contained in:
Erik Groener
2016-06-22 14:10:33 +00:00
parent 8db3eaa4ef
commit 4e5f92fb75
2 changed files with 51 additions and 11 deletions

View File

@@ -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();
});
</script>
@@ -183,14 +203,13 @@ user.auth_required_or_abort(this_res.canDelete);
</td>
</tr>
<%
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; i<perc_arr.length; i++)
for (var i in perc_arr)
{
var perc = perc_arr[i];
sql_perc += (i>0? " 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"
}
%>

View File

@@ -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;