ARAI#40623 Velden uren, materiaal, correctie en uurtarief toegevoegd aan edit_opdr mobile (/PDA/order.asp)

svn path=/Website/trunk/; revision=36386
This commit is contained in:
2017-12-14 16:28:08 +00:00
parent b2036287b4
commit f156ff2ce8
2 changed files with 133 additions and 12 deletions

View File

@@ -112,6 +112,72 @@ function calcTotal()
}
}
// Bereken het totaal bedrag van de opdracht.
function calcTotalMobile()
{
if (typeopdr_matchtype == 5) return;
if (mld_ord_show_cost && typeopdr_matchtype != 3 && typeopdr_matchtype != 4)
{
var valid_mat_kosten = false;
var valid_corr_kosten = false;
var valid_uren = false;
var valid_uurtarief = false;
var uren = parseFloat($("#uren").val().replace(',', '.'));
var uurtarief = parseFloat($("#uurtarief").val().replace(',', '.'));
var mat_kosten = parseFloat($("#mat_kosten").val().replace(',', '.'));
var corr_kosten = parseFloat($("#corr_kosten").val().replace(',', '.'));
var tot_kosten = (isNaN(uren)? 0 : uren) * (isNaN(uurtarief)? 0 : uurtarief)
+ (isNaN(mat_kosten)? 0 : mat_kosten) + (isNaN(corr_kosten)? 0 : corr_kosten);
if ($("#uren").val() != '' && !isNaN(uren))
{
valid_uren = true;
$("#uren").val(parseFloat($("#uren").val()).toFixed(2));
}
else
$("#uren").val(null)
if ($("#uurtarief").val() != '' && !isNaN(uurtarief))
{
valid_uurtarief = true;
$("#uurtarief").val(parseFloat($("#uurtarief").val()).toFixed(2));
}
else
$("#uurtarief").val(null)
if ($("#mat_kosten").val() != '' && !isNaN(mat_kosten))
{
valid_mat_kosten = true;
$("#mat_kosten").val(parseFloat($("#mat_kosten").val()).toFixed(2));
}
else
$("#mat_kosten").val(null)
if ($("#corr_kosten").val() != '' && !isNaN(corr_kosten))
{
valid_corr_kosten = true;
$("#corr_kosten").val(parseFloat($("#corr_kosten").val()).toFixed(2));
}
else
$("#corr_kosten").val(null)
if (!valid_mat_kosten && !valid_corr_kosten && (!valid_uren || !valid_uurtarief))
{
$("#tot_kosten").val(null);
}
else
{
$("#tot_kosten").val(num2currEditable(tot_kosten));
}
}
else
{
$("#tot_kosten").val(0);
}
}
function showCnt()
{
if ($('#contract').val() > 0)

View File

@@ -526,30 +526,85 @@ else
%> <input type="hidden" name="orgdate" value="<%=nu.getTime()%>"> <%
}
// TOTAAL KOSTEN
// Uit mld_edit_opdr; dit is hier nog niet zo compleet gerealiseerd TODO naar behoefte (1-4)
// de kostenvelden zijn nogal afhankelijk van mld_opdr.typeopdr_matchtype
// 1,2 --> alle kosten velden
// 3 --> alleen uren velden/uurtarief en wel kostenplaats (tarief vind ik dubieus mobiel -PF)
// 4 --> geen kosten of kostenplaats en wel uren
// 5 --> Alleen materialenlijst (mld_opdr_materiaal) invullen en kostenplaats
// 6,7 --> Via urenregistratie mld_opdr_uren
if (S("mld_ord_show_cost") == 1)
var readonly = (opdr_key > 0 && !this_opdr.canUrenMatChange);
if (S("mld_ord_show_cost") == 1 &&
// mld_opdr.typeopdr_matchtype != 4 && zonder kosten wil AADS nog steeds de uren
mld_opdr.typeopdr_matchtype != 5) // UREN
{
var flduren_label = L("lcl_mld_nrhours");
switch (mld_opdr.typeopdr_matchtype)
{
case 3: {flduren_label = L("lcl_mld_hoursperweek"); break;}
case 6: {flduren_label = L("lcl_mld_hours_to_spent"); break;}
case 7: {flduren_label = L("lcl_mlduren_max"); break;}
}
RWFIELD( "uren"
, flduren_label
, safe.displayfloat(mld_opdr.hours, 2, true).replace(',', '.')
, { pclass: "float" + (mld_opdr.typeopdr_matchtype == 3? " required" : "")
, datarole: "fieldcontain"
, datatype: "number"
, html: "onBlur='calcTotalMobile()' step='0.01'"
, readonly: readonly
}
)
}
if (mld_opdr.typeopdr_matchtype == 6 || mld_opdr.typeopdr_matchtype == 7)
ROFIELD("geboekt", L("lcl_mlduren_booked"), String(safe.curr(mld_opdr.booked)).replace(',', '.'), {suppressEmpty: true, datarole: "fieldcontain"}); // Geboekte uren
if (S("mld_ord_show_cost") == 1 &&
mld_opdr.typeopdr_matchtype != 3 &&
mld_opdr.typeopdr_matchtype != 4 &&
mld_opdr.typeopdr_matchtype != 5)
{ // UURTARIEF
RWFIELD("uurtarief", L("lcl_hour_rate") + "&nbsp;" + S("currency_pref"),
safe.curreditable(mld_opdr.h_rate).replace(',', '.'),
{ pclass: "currency"
, datarole: "fieldcontain"
, datatype: "number"
, html: "onBlur='calcTotalMobile()' step='0.01'"
, readonly: readonly
})
// MATERIAAL
RWFIELD("mat_kosten", L("lcl_mater_cost") + "&nbsp;" + S("currency_pref"),
safe.curreditable(mld_opdr.m_cost).replace(',', '.'),
{ pclass: "currency"
, datarole: "fieldcontain"
, datatype: "number"
, html: "onBlur='calcTotalMobile()' step='0.01''"
, readonly: readonly
})
// CORRECTIE
RWFIELD("corr_kosten", L("lcl_correct") + "&nbsp;" + S("currency_pref"),
safe.curreditable(mld_opdr.corr_cost).replace(',', '.'),
{ pclass: "currency"
, datarole: "fieldcontain"
, datatype: "number"
, html: "onBlur='calcTotalMobile()' step='0.01'"
, readonly: readonly
})
}
// TOTAAL
if (mld_opdr.typeopdr_matchtype != 4)
{ // 0 = niet verplicht, 1 = save + 2 = afmelden, 4 = afronden.
isRequired = (mld_opdr.typeopdr_kosten_verplicht & 1 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 1)) ||
((mld_opdr.typeopdr_kosten_verplicht & 2 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 2)) &&
(mld_opdr.opdr_status == 5 || mld_opdr.opdr_status == 8)) ||
((mld_opdr.typeopdr_kosten_verplicht & 4 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 4)) &&
mld_opdr.opdr_status == 6)
mld_opdr.opdr_status == 6);
RWFIELD( "tot_kosten"
, L("lcl_total_cost") + "&nbsp;" + S("currency_pref")
, safe.curreditable(mld_opdr.t_cost)
, { pclass: "currency" + (isRequired? " required" : "")
, datarole: "fieldcontain"
, datatype: "number"
, readonly: (opdr_key > 0 && !this_opdr.canUrenMatChange)
, html: (mld_opdr.typeopdr_matchtype != 5? "onBlur='calcTotalMobile()'" : null)
, readonly: true
}
);
)
}
CONTROLGROUP_START()