174 lines
5.3 KiB
JavaScript
174 lines
5.3 KiB
JavaScript
/*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: alg_ruimteafdeling.js
|
|
*/
|
|
|
|
var rowIndex = -1;
|
|
var multiRuimte = true;
|
|
|
|
function onClickItem(tr)
|
|
{
|
|
// Wordt aangeroepen na één klik op een item
|
|
$(tr).toggleClass("selected");
|
|
}
|
|
|
|
function onDblClickItem(tr) {
|
|
$(tr).closest("table").find("tr").removeClass("selected"); // Alle andere regels deselecteren
|
|
$(tr).addClass("selected");
|
|
window.parent.doSubmit();
|
|
}
|
|
|
|
function setMultiRuimte(aantal)
|
|
{
|
|
multiRuimte = (aantal != 1);
|
|
}
|
|
|
|
function CreateRow(afd_key, afd_name, bezetting, oppervlak, bruto)
|
|
{
|
|
rowIndex++;
|
|
var table = $("#afdbezettingtable>tbody")[0];
|
|
|
|
// Insert data rows
|
|
tr = table.insertRow(-1);
|
|
tr.myData = { afd_key: afd_key};
|
|
tr.value = rowIndex;
|
|
|
|
// Create drop button
|
|
cell = tr.insertCell(-1);
|
|
cell.className = "result";
|
|
cell.align = "center";
|
|
cell.innerHTML = "<span OnClick='delRow(this)' style='cursor:pointer'>" + I("fa-times") + "</span>";
|
|
|
|
// innerHTML opent een htmlparser die overbodige spaties en line breaks verwijderd in IE, daarom met innerText oplossen
|
|
// Input velden moeten wel met innerHTML of outerHTML anders wordt het text
|
|
|
|
// Afdeling omschrijving veld
|
|
cell = tr.insertCell(-1);
|
|
cell.className = "result";
|
|
cell.innerHTML = afd_name;
|
|
cell.align = "left";
|
|
cell.style.whiteSpace = "nowrap";
|
|
|
|
// Bezetting input veld
|
|
cell = tr.insertCell(-1);
|
|
cell.className = "result";
|
|
cell.innerHTML = "<input type='text' class='fldshort' id='bez" + rowIndex + "' name='bez" + rowIndex + "' value='" + bezetting + "' maxlength='6' onchange='changeBezetting("+rowIndex+")'>"
|
|
+ "<input type='hidden' id='afd" + rowIndex + "' name='afd" + rowIndex + "' value='" + afd_key + "'>";
|
|
cell.align = 'left';
|
|
|
|
if (!multiRuimte)
|
|
{
|
|
// Bezetting input veld m2
|
|
cell = tr.insertCell(-1);
|
|
cell.className = "result";
|
|
cell.innerHTML = "<input type='text' class='fldshort' id='bezopp" + rowIndex + "' name='bezopp" + rowIndex + "' value='" + oppervlak + "' maxlength='8' onchange='changeOppervlak("+rowIndex+")'>"
|
|
+ "<input type='hidden' id='totaalopp" + rowIndex + "' name='totaalopp" + rowIndex + "' value='" + bruto + "'>";
|
|
cell.align = 'left';
|
|
}
|
|
document.getElementById("nrRows").value = parseInt(rowIndex) + 1;
|
|
}
|
|
|
|
function delRow(img)
|
|
{
|
|
// Verwijder de aangeklikte afdeling uit de lijst (de regel)
|
|
FcltMgr.confirm(L("lcl_alg_cancelDepartment"), function() {
|
|
var tr = $(img).closest("tr")[0];
|
|
if (tr.myData.afd_key != null) {
|
|
document.getElementById("afdbezettingtable").deleteRow(tr.rowIndex);
|
|
}
|
|
});
|
|
}
|
|
|
|
function alg_submit()
|
|
{
|
|
if ($(document).has('span.bad').length)
|
|
{
|
|
FcltMgr.alert(L("lcl_shared_validator_invalid"));
|
|
return false;
|
|
}
|
|
var percValid = true;
|
|
var i=0;
|
|
while (percValid && (i<=rowIndex))
|
|
{
|
|
if ($("#bez"+i).length) // niet verwijderd
|
|
{
|
|
var oppPerc = parseFloat($("#bez"+i).val().replace(',', '.'));
|
|
if (oppPerc > 100)
|
|
{
|
|
percValid = false;
|
|
FcltMgr.alert(L("lcl_alg_bezetting_ongeldig"));
|
|
$("#bez"+i).select();
|
|
$("#bez"+i).focus();
|
|
}
|
|
}
|
|
i++;
|
|
}
|
|
if (percValid)
|
|
{
|
|
document.forms.u2.submit();
|
|
}
|
|
}
|
|
|
|
function alg_add(oppervlak)
|
|
{
|
|
if ($("#afdeling_key").val() > 0)
|
|
{
|
|
var exist = false;
|
|
$("#afdbezettingtable tr").each(function(i, value)
|
|
{
|
|
if (this.myData && $("#afdeling_key").val() == this.myData.afd_key)
|
|
exist = true;
|
|
});
|
|
if (!exist)
|
|
{
|
|
CreateRow($("#afdeling_key").val(),
|
|
$("#afdeling_key_show").val(),
|
|
100, oppervlak, oppervlak);
|
|
FcltMgr.resized(window);
|
|
}
|
|
}
|
|
}
|
|
|
|
function changeOppervlak(prowIndex)
|
|
{
|
|
var $thisObj = $("#bezopp"+prowIndex);
|
|
var valid = isGoodNumber($thisObj.val(), false,false,8,2);
|
|
validateField($thisObj, valid, L("lcl_alg_bezetting_ongeldig"))
|
|
|
|
if (valid)
|
|
{
|
|
if (!isGoodNumber($("#totaalopp"+prowIndex).val(), false,false,8,2))
|
|
$("#totaalopp"+prowIndex).val($thisObj.val());
|
|
var oppBezet = parseFloat($thisObj.val().replace(',', '.'));
|
|
var oppBruto = parseFloat($("#totaalopp"+prowIndex).val().replace(',', '.'));
|
|
if (oppBruto > 0)
|
|
{
|
|
var oppPercF = (oppBezet * 100) / oppBruto;
|
|
var oppPerc = num2currEditable(oppPercF);
|
|
$("#bez" + prowIndex).val(oppPerc);
|
|
}
|
|
}
|
|
}
|
|
|
|
function changeBezetting(prowIndex)
|
|
{
|
|
var $thisObj = $("#bez"+prowIndex);
|
|
var valid = isGoodNumber($thisObj.val(), false,false,8,2) &&
|
|
parseFloat($thisObj.val().replace(',', '.')) <= 100 &&
|
|
parseFloat($thisObj.val().replace(',', '.')) >= 0;
|
|
validateField($thisObj, valid, L("lcl_alg_bezetting_ongeldig"));
|
|
|
|
if (valid && !multiRuimte)
|
|
{
|
|
var oppPerc = parseFloat($thisObj.val().replace(',', '.'));
|
|
if (isGoodNumber($("#totaalopp"+prowIndex).val(), false,false,8,2))
|
|
{
|
|
var oppBruto = parseFloat($("#totaalopp"+prowIndex).val().replace(',', '.'));
|
|
var oppBezet = num2currEditable( ((oppPerc * oppBruto) / 100) );
|
|
$("#bezopp" + prowIndex).val(oppBezet);
|
|
}
|
|
}
|
|
}
|