FCLT#57745: Factuurinvoer bij meerdere BTW-tabellen.

svn path=/Website/branches/v2019.1/; revision=42499
This commit is contained in:
Maykel Geerdink
2019-05-14 09:34:48 +00:00
parent dbca9ebdb1
commit cfcdde26c0

View File

@@ -235,7 +235,33 @@ function FcltGetRefInfoCallback(json)
if (json.ref_type)
{
// Hoeveel factuurregels zijn er?
var count = $("table#sel_items input[id^=sum]").length;
var count = $("table#sel_items input[id^=sumBTW]:visible").length;
// Als er door de referenties verschillende btw tabellen worden gebruikt terwijl er factuurregels zijn, dan wijziging niet accepteren en melding geven.
if (count > 0 && window.btwtabel_key != json.btwtabel_key)
{
// De niet ingevulde zichtbare factuurregels verwijderen.
$("table#sel_items tr[id^=trfin]:visible").not("[id$=inline]").each(function()
{ // Alleen de zichbare factuurregels.
var row = $(this).attr("id").substr(5);
var isLeeg = true;
$(this).find("input[id^=descript], input[id^=ref], input[id^=sum]").not("input[id^=sumBTW]").each(function()
{
var inputid = $(this).attr("id");
//debugger;
if ($(this).val() !== "")
isLeeg = false;
});
var inputid = $(this).attr("id");
// Als de regel niet ingevuld is dan verwijderen.
if (isLeeg)
DeleteOrderLine(row, true);
});
// Opnieuw tellen na vewijdering van lege de regels.
count = $("table#sel_items input[id^=sumBTW]:visible").length;
}
// Als er door de referenties verschillende btw tabellen worden gebruikt terwijl er factuurregels zijn, dan wijziging niet accepteren en melding geven.
if (count > 0 && window.btwtabel_key != json.btwtabel_key)
@@ -256,7 +282,9 @@ function FcltGetRefInfoCallback(json)
$("#defaultbtw").val(defaultbtw); // Het veld defaultbtw is nooit leeg (btw woco x leverancier of standaard default waarde).
$("#defaultbtw_verlegd").val(json.defaultbtw? json.defaultbtw_verlegd : fin_btw_default_verlegd);
if (json.refchanged)
// Alleen als de defaultbtw waarde bestaat mag deze ingevuld worden, anders wordt er niets getoond.
var valueExist = $("select[name^=BTW] option[value=" + defaultbtw + "]").length != 0;
if (json.refchanged && valueExist)
$("select[name^=BTW]").val(defaultbtw);
$("#fin_type").val(json.ref_type);
@@ -570,7 +598,7 @@ function setPrice(obj)
{
var $row = $(obj).closest("tr");
var btwkey = $row.find("[id^=BTW]").val();
var sum = $row.find("[id^=sum]").val();
var sum = $row.find("[id^=sum]").val(); // De functie val() pakt de waarde van het eerste input veld "sum1" en niet het input veld "sumBTW1".
if (sum == "")
sum = 0;
else
@@ -592,10 +620,11 @@ function setPrice(obj)
var totalEXC = 0;
$("table#sel_items input[id^=sum]").each(function()
{
var thisval = $(this).val() == ""? "0" : $(this).val();
if (this.id.substr(0,6) == "sumBTW")
totalBTW += myParseFloat($(this).val());
totalBTW += myParseFloat(thisval);
else
totalEXC += myParseFloat($(this).val());
totalEXC += myParseFloat(thisval);
});
$("#totalEXC_txt").html(currency_pref + num2curr(totalEXC) + currency_suff);
$("#totalBTW_txt").html(currency_pref + num2curr(totalBTW) + currency_suff);
@@ -725,29 +754,36 @@ function AddItem(nofocus) // als je hieronder iets aanpast controleer dan ook fi
// -1: het is een nieuwe regel die nog niet in de database is
// 0: het is een nieuwe regel die met het kruisje is weggehaald (hidden gemaakt)
// < -1: een bestaande factuurregel die met het kruisje is weggehaald (hidden gemaakt)
function DeleteOrderLine(row)
function DeleteOL(row)
{
FcltMgr.confirm(L("lcl_fin_cancelfac"), function() {
var regel_key = $("#regel_key" + row);
if (regel_key.val() == -1)
regel_key.val(0); // signal delete for new visitor
else
regel_key.val(-regel_key.val()); // signal delete
var tr = $("#trfin" + row);
tr.hide();
// Haal de required class overal af als deze erop zit.
$("#trfin" + row).find("*").removeClass("required"); // Required zit nu nog niet op deze regel.
tr = $("#trfin" + row + "inline");
tr.hide();
// Haal de required class overal af als deze erop zit.
$("#trfin" + row + "inline").find("*").removeClass("required"); // Required kan op flexkenmerken zitten.
var regel_key = $("#regel_key" + row);
if (regel_key.val() == -1)
regel_key.val(0); // signal delete for new visitor
else
regel_key.val(-regel_key.val()); // signal delete
var tr = $("#trfin" + row);
tr.hide();
// Haal de required class overal af als deze erop zit.
$("#trfin" + row).find("*").removeClass("required"); // Required zit nu nog niet op deze regel.
tr = $("#trfin" + row + "inline");
tr.hide();
// Haal de required class overal af als deze erop zit.
$("#trfin" + row + "inline").find("*").removeClass("required"); // Required kan op flexkenmerken zitten.
// Verwijder van de totalBTW
$("#sum" + row).val(0);
$("#sumBTW" + row).val(0);
setPrice(null);
});
// Verwijder van de totalBTW
$("#sum" + row).val(0);
$("#sumBTW" + row).val(0);
setPrice(null);
}
function DeleteOrderLine(row, pinstantDelete)
{
if (pinstantDelete)
// Direct de regel verwijderen zonder bevestiging van de gebruiker.
DeleteOL(row)
else
FcltMgr.confirm(L("lcl_fin_cancelfac"), function() {
DeleteOL(row)
});
}
function SumChanged(obj)