577 lines
20 KiB
JavaScript
577 lines
20 KiB
JavaScript
/*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: fin_edit_factuur.js
|
|
*/
|
|
|
|
var dateInputs = new Object();
|
|
function checkFactuurExistCallback(json, textStatus)
|
|
{
|
|
if (json.aantal > 0)
|
|
if (confirm(L("lcl_fin_invoice_number") + " " + json.fac_nr + L("lcl_fin_is_al") + json.aantal + L("lcl_fin_register_total") + json.totaal + ". " + L("lcl_fin_toch_doorgaan")))
|
|
document.forms.u2.submit();
|
|
else
|
|
return false;
|
|
else
|
|
document.forms.u2.submit();
|
|
}
|
|
|
|
function checkInput()
|
|
{
|
|
var filled_lines = 0;
|
|
var blank_lines = 0;
|
|
|
|
$("table#sel_items input[id^=sum]").each(function()
|
|
{
|
|
if (myParseFloat($(this).val()) != 0)
|
|
filled_lines++;
|
|
else
|
|
blank_lines++;
|
|
});
|
|
|
|
if (!filled_lines)
|
|
{ // Er zijn geen volledig ingevulde factuurregels.
|
|
if (blank_lines == 0)
|
|
AddItem();
|
|
alert(L("lcl_fin_no_complete_invoice_rows"));
|
|
return false;
|
|
}
|
|
|
|
// Controle op het factuurnummer (van de leverancier) of dat dan van dezelfde leverancier(!) (debiteurnummer) al bestaat,
|
|
// Eigen factuurnummer meegeven zodat deze niet meegnomen wordt in de check
|
|
// Melding: "Factuurnr 1234 is al N keer geregistreerd met een totaalbedrag van 99999. Toch doorgaan?", bij Cancel keer je terug in het scherm
|
|
$.getJSON("check_factuur_exist.asp",
|
|
{ fac_nr: $("#finnr").val(),
|
|
deb_nr: $("#findebtor").val(),
|
|
fin_key: $("#fin_key").val() },
|
|
checkFactuurExistCallback);
|
|
}
|
|
|
|
function fin_submit()
|
|
{
|
|
document.activeElement.blur(); // trigger laatste onChanges
|
|
|
|
// Standaard checks op verplichte velden, datum formaat, numeriek en float formaat, currency formaat.
|
|
if (!validateForm("u2"))
|
|
return false;
|
|
|
|
// Formulier specifieke checks, met eventuele submit
|
|
checkInput();
|
|
}
|
|
|
|
function fin_cancel()
|
|
{
|
|
FcltMgr.closeDetail(window, { cancel: true } );
|
|
}
|
|
|
|
function devidePeriodChanged()
|
|
{
|
|
if (checkDP(false))
|
|
{
|
|
var finboekm = $("#finboekm").val();
|
|
finboekm_jaar = finboekm.substr(0,4);
|
|
// Text bij inputbox finboekm_jaar nog aanpassen
|
|
$('label[for="gefactureerd_jaar"]').html(L("lcl_fin_invoiced_year") + " " + finboekm_jaar + ": ");
|
|
referenceChanged();
|
|
}
|
|
else
|
|
{
|
|
// Text bij inputbox finboekm_jaar nog aanpassen
|
|
$('label[for="gefactureerd_jaar"]').html(L("lcl_fin_invoiced_year") + " " + L("lcl_fin_year") + ": ");
|
|
$("#gefactureerd_jaar").val(L("lcl_fin_unknown"));
|
|
}
|
|
}
|
|
|
|
function checkDP(show)
|
|
{
|
|
var valid = true;
|
|
var value = $("#finboekm").val();
|
|
var err = L("lcl_fin_invalid_kenmerk_format");
|
|
if (value != '')
|
|
{
|
|
valid = checkDividePeriod(value);
|
|
if (!valid)
|
|
err = L("lcl_fin_kenmerk_out_range");
|
|
}
|
|
if (show && !valid)
|
|
{
|
|
alert(err);
|
|
$("#finboekm").focus();
|
|
}
|
|
return valid;
|
|
}
|
|
|
|
function clearRefDetails()
|
|
{
|
|
$("#reflink").val("");
|
|
$('#reflink').unbind('click');
|
|
$("#lev_uit").val("");
|
|
$('#lev_uit').unbind('click');
|
|
|
|
$("#status").val("");
|
|
$("#kostenplaats_naam").val("");
|
|
$("#startdate").val("");
|
|
$("#enddate").val("");
|
|
$("#totbedrag").val("");
|
|
$("#termbedrag").val("");
|
|
$("#gefactureerd").val("");
|
|
$("#gefactureerd_jaar").val("");
|
|
$("#opdr_omschr").html("");
|
|
$("#tr_opdr_omschr").hide();
|
|
$("#loc_omschr").html("");
|
|
$("#tr_loc_omschr").css("display", "none");
|
|
$("#refopdrtype").val("");
|
|
$("#tr_refopdrtype").hide();
|
|
$("#fincnt").val("");
|
|
$("#finsom").val("");
|
|
FcltMgr.resized(window);
|
|
}
|
|
|
|
function clearExtInvDetails()
|
|
{
|
|
$("#fldfincnt").val("");
|
|
$("#fldfinsom").val("");
|
|
}
|
|
|
|
function FcltGetRefInfoCallback(json)
|
|
{
|
|
if (json.message)
|
|
{
|
|
alert(json.message);
|
|
$("#referentienr").val($("#referentienr_old").val());
|
|
referenceChanged(true); // Geef de juiste referentiegegevens weer goed weer. Oude waarde is zeker een goede waarde.
|
|
}
|
|
else if (fin_enable_kostensoort == 0 && fin_kostensoort_verplicht == 1 && !json.kostensoort_key)
|
|
{ // Kostensoort is hidden maar wel verplicht. Referentie heeft geen geldige kostensoort die dan verderop kan worden ingevuld
|
|
alert(L("lcl_fin_invalid_ref_ks"));
|
|
$("#referentienr").val($("#referentienr_old").val());
|
|
referenceChanged(true); // Geef de juiste referentiegegevens weer goed weer. Oude waarde is zeker een goede waarde.
|
|
}
|
|
else
|
|
{
|
|
if (json.ref_type)
|
|
{
|
|
// Hoeveel factuurregels zijn er?
|
|
var count = $("table#sel_items input[id^=sum]").length;
|
|
|
|
// Als er door de referenties verschillende btw tabellen wordt gebruikt terwijl er factuurregels zijn, dan wijziging niet accepteren en melding geven
|
|
if (count > 0 && window.btwtabel_key != json.btwtabel_key)
|
|
{
|
|
alert(L("lcl_fin_ref_btw_diff"));
|
|
$("#referentienr").val($("#referentienr_old").val());
|
|
}
|
|
else
|
|
{
|
|
// T.b.v. de mogelijkheid om oude waarde weer terug te zetten bij ongeldige referentie
|
|
$("#referentienr_old").val($("#referentienr").val().toUpperCase());
|
|
|
|
$("#fin_type").val(json.ref_type);
|
|
$("#lev_uit").val(json.lev_uit);
|
|
if (canReqRelDetails)
|
|
{
|
|
$('#lev_uit').click(function()
|
|
{
|
|
refurl = "appl/prs/prs_bedrijf.asp?bedrijf_key=" + json.lev_uit_key;
|
|
FcltMgr.openDetail(refurl);
|
|
}
|
|
);
|
|
}
|
|
$("#status").val(json.status);
|
|
$("#kostenplaats_naam").val(json.kostenplaats_naam);
|
|
$("#startdate").val(json.startdatum);
|
|
$("#enddate").val(json.einddatum);
|
|
if (fin_defaultboekmaand == 2 && json.refchanged)
|
|
{ // Boekmaand invullen adhv bestel/opdrachtdatum
|
|
$("#finboekm").val(json.periode); // Tonen opdrachtdatum
|
|
}
|
|
|
|
if (json.totbedrag == "" && json.levkosten == "" && json.korting == "")
|
|
$("#totbedrag").val("");
|
|
else
|
|
{
|
|
var totkosten = json.totbedrag;
|
|
if (json.ref_type == "B") // levkosten en korting bestaan alleen voor type B.
|
|
totkosten += json.levkosten - json.korting;
|
|
$("#totbedrag").val(currency_pref + num2currEditable(parseFloat(totkosten)) + currency_suff);
|
|
}
|
|
|
|
if (!json.termbedrag || json.termbedrag == "")
|
|
$("#termbedrag").val("");
|
|
else
|
|
$("#termbedrag").val(currency_pref + num2currEditable(parseFloat(json.termbedrag)) + currency_suff);
|
|
|
|
if (json.gefactureerd == "")
|
|
$("#gefactureerd").val("");
|
|
else
|
|
$("#gefactureerd").val(currency_pref + num2currEditable(parseFloat(json.gefactureerd)) + currency_suff);
|
|
|
|
if (json.gefactureerd_jaar == "")
|
|
$("#gefactureerd_jaar").val("");
|
|
else
|
|
$("#gefactureerd_jaar").val(currency_pref + num2currEditable(parseFloat(json.gefactureerd_jaar)) + currency_suff);
|
|
|
|
if (json.show_omschr)
|
|
{
|
|
$("#opdr_omschr").html(json.opdr_omschr);
|
|
$("#tr_opdr_omschr").show();
|
|
}
|
|
else
|
|
{
|
|
$("#opdr_omschr").val("");
|
|
$("#tr_opdr_omschr").hide();
|
|
}
|
|
|
|
if (json.show_loc)
|
|
{
|
|
var loc_geg_string = "";
|
|
for (i = 0; i < json.loc_geg.length; i++)
|
|
{
|
|
loc_geg_string += (i > 0? ",<br>" : "") + json.loc_geg[i].loc_desc;
|
|
}
|
|
$("#loc_omschr").html(loc_geg_string);
|
|
$("#tr_loc_omschr").show();
|
|
} else {
|
|
$("#loc_omschr").html("");
|
|
$("#tr_loc_omschr").hide();
|
|
}
|
|
|
|
if (json.refchanged)
|
|
if (fin_enable_kostensoort == 0)
|
|
$("#fincostsrt").val(json.kostensoort_key); // hidden veld zetten
|
|
else
|
|
// setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
|
|
// lastTry is true zodat suggestbox wordt leeggemaakt indien waarde niet voorkomt (en niet de laatst waarde wordt getoond)
|
|
sgCostCentre.setValue(json.kostensoort_key, json.kostensoort_oms, true, true, null, true); // Suggestbox zetten
|
|
|
|
$('#reflink').val(json.referentie)
|
|
if ($("#referentienr").val() != json.referentie)
|
|
$("#referentienr").val(json.referentie);
|
|
switch (json.ref_type)
|
|
{
|
|
case "O": // Opdracht (Melding)
|
|
$('label[for="reflink"]').html(L("lcl_shared_order"));
|
|
$("#refopdrtype").val(json.typeopdr_omschr);
|
|
$("#tr_refopdrtype").show();
|
|
//$('label[for="enddate"]').html(L("lcl_fin_end_date_plan") + ":");
|
|
$("#loc_code").val(json.loc_code);
|
|
// Als de default kostenplaats is geselecteerd of bij nieuwe facturen dan locatiecode invullen bij de factuurregels.
|
|
if (json.refchanged)
|
|
updateLocation();
|
|
if (canReqRefDetails)
|
|
{
|
|
$('#reflink').click(function()
|
|
{
|
|
refurl = "appl/mld/mld_opdr.asp?urole=fo&opdr_key=" + json.ref_key;
|
|
FcltMgr.openDetail(refurl);
|
|
}
|
|
);
|
|
}
|
|
break;
|
|
case "B": // Bestelling opdracht
|
|
$('label[for="reflink"]').html(L("lcl_fin_bestelopdracht"));
|
|
$("#tr_refopdrtype").hide();
|
|
//$('label[for="enddate"]').html(L("lcl_fin_delivery_date") + ":");
|
|
$("#loc_code").val(json.loc_code);
|
|
// Als de default kostenplaats is geselecteerd of bij nieuwe facturen dan locatiecode invullen bij de factuurregels.
|
|
if (json.refchanged)
|
|
updateLocation();
|
|
if (canReqRefDetails)
|
|
{
|
|
$('#reflink').click(function()
|
|
{
|
|
refurl = "appl/bes/bes_opdr.asp?urole=fo&ordernr=" + json.ref_key
|
|
FcltMgr.openDetail(refurl);
|
|
}
|
|
);
|
|
}
|
|
break;
|
|
case "C": // Contract
|
|
$('label[for="reflink"]').html(L("lcl_fin_contract"));
|
|
$("#tr_refopdrtype").hide();
|
|
//$('label[for="enddate"]').html(L("lcl_fin_end_date") + ":");
|
|
$("#loc_code").val("");
|
|
if (canReqRefDetails)
|
|
{
|
|
$('#reflink').click(function()
|
|
{
|
|
refurl = "appl/cnt/cnt_contract.asp?urole=fo&cnt_key=" + json.ref_key;
|
|
FcltMgr.openDetail(refurl);
|
|
}
|
|
);
|
|
}
|
|
break;
|
|
}
|
|
|
|
$("#fincnt").val(json.aantalfacturen);
|
|
$("#finsom").val(currency_pref + json.totaalbedrag + currency_suff);
|
|
|
|
window.btwtabel_key = json.btwtabel_key;
|
|
window.btwtabel = json.btwtabel;
|
|
|
|
if (count == 0 && json.refchanged && fin_key == -1)
|
|
{
|
|
AddItem(true);
|
|
$("#show_calendar").focus(); // Het eerstvolgende veld
|
|
}
|
|
|
|
FcltMgr.resized(window);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function referenceChanged(refchanged)
|
|
{
|
|
if ($("#referentienr").val() != "")
|
|
{
|
|
var returndata = FcltSyncgetJSON("get_ref_info_ajax.asp",
|
|
{ ref_nr: $("#referentienr").val(),
|
|
fin_boekm_jaar: $("#finboekm").val().substr(0, 4),
|
|
refchanged: (refchanged && ($("#referentienr_old").val() == "" || default_costsrt_selected || fin_key == -1)? 1: 0),
|
|
fin_factuur_nr: $("#finnr").val()
|
|
});
|
|
FcltGetRefInfoCallback(returndata)
|
|
}
|
|
else
|
|
// T.b.v. de mogelijkheid om oude waarde weer terug te zetten bij ongeldige referentie
|
|
$("#referentienr_old").val("");
|
|
}
|
|
|
|
function updateLocation()
|
|
{
|
|
$("table#sel_items input[id^=ref]").each(function()
|
|
{
|
|
$(this).val($("#loc_code").val());
|
|
});
|
|
}
|
|
|
|
function checkDividePeriod(value)
|
|
{
|
|
if (value == "") return true;
|
|
var valid = true;
|
|
var arr = /^(\d{4})[-](\d{1,2})$/.exec(value);
|
|
if (arr)
|
|
{
|
|
var dt = new Date( arr[1], arr[2] -1, 1 );
|
|
if ((arr[2] != dt.getMonth() + 1) ||
|
|
(arr[1] != dt.getYear() && arr[1] != dt.getFullYear()) ) {
|
|
valid = false;
|
|
}
|
|
}
|
|
else valid = false;
|
|
return(valid);
|
|
}
|
|
|
|
function kenmerkDividePeriodKey(evt)
|
|
{
|
|
var e = evt || event;
|
|
var kc = e.which || e.keyCode;
|
|
if (kc >= 48 && kc <= 57) return;
|
|
if (String.fromCharCode(kc) == '-') return;
|
|
e.returnValue = false;
|
|
}
|
|
|
|
function kenmerkDividePeriodChange(evt)
|
|
{
|
|
var e = evt || event;
|
|
if( e.propertyName != 'value' ) return;
|
|
|
|
var el = e.srcElement || e.target;
|
|
var newT = el.value;
|
|
var nm = el.name;
|
|
var oldT = dateInputs[nm]; if (oldT == null) oldT = '';
|
|
var valid = false;
|
|
|
|
if (newT == '') valid = true; else
|
|
if (/^\d{4}$/.test(newT))
|
|
{
|
|
el.value += '-';
|
|
valid = true;
|
|
}
|
|
else if (/^\d{1,4}(|[-](|\d{1,2}))$/.test(newT))
|
|
{
|
|
valid = true;
|
|
}
|
|
if (valid) dateInputs[nm] = el.value; else
|
|
if (el.value != oldT) el.value = oldT;
|
|
}
|
|
|
|
function myParseFloat(txt)
|
|
{
|
|
txt = txt.replace(currency_pref, "");
|
|
txt = txt.replace(currency_suff, "");
|
|
return parseFloat(txt.replace(',', '.'));
|
|
}
|
|
|
|
// Array selectedItems is vervallen 5.3.3; we houden alles in de HTML bij
|
|
|
|
// Werk het totaal van een regel en het totaal generaal bij
|
|
// obj is mogelijk een van de velden in regel, welke doet er niet zo toe
|
|
function setPrice(obj)
|
|
{
|
|
if (obj)
|
|
{
|
|
var $row = $(obj).closest("tr");
|
|
var btwkey = $row.find("[id^=BTW]").val();
|
|
var sum = myParseFloat($row.find("[id^=sum]").val());
|
|
|
|
for (var j = 0; j < window.btwtabel.length; j++)
|
|
{
|
|
if (btwkey == btwtabel[j].key)
|
|
btwdata = btwtabel[j];
|
|
}
|
|
|
|
var sumBTW = sum;
|
|
if (!btwdata.verlegd)
|
|
sumBTW = sumBTW * (1 + btwdata.perc / 100);
|
|
$row.find("[id^=sumBTW]").val(currency_pref + num2curr(sumBTW) + currency_suff);
|
|
}
|
|
// Nu totaal bijwerken
|
|
var totalBTW = 0;
|
|
$("table#sel_items input[id^=sumBTW]").each(function()
|
|
{
|
|
totalBTW += myParseFloat($(this).val());
|
|
});
|
|
|
|
$("#totalBTW_txt").html(currency_pref + num2curr(totalBTW) + currency_suff);
|
|
}
|
|
|
|
// Voeg een nieuwe regel toe na het plus-knopje
|
|
function AddItem(nofocus) // als je hieronder iets aanpast controleer dan ook fin.inc/CreateEditRow
|
|
{
|
|
var sum = 0;
|
|
var descr = "";
|
|
var BTW = -1; /*DUMMY*/
|
|
var sumBTW = 0;
|
|
var ref = $("#loc_code").val();
|
|
var ksrt_key = -1;
|
|
var ksrt_oms = "";
|
|
var verlegd = 0;
|
|
|
|
var rowIndex = parseInt($("#rowIndex").val());
|
|
rowIndex++;
|
|
$("#rowIndex").val(rowIndex);
|
|
|
|
var table = $("#sel_items")[0];
|
|
|
|
// Insert data rows
|
|
var tr = table.insertRow(-1);
|
|
tr.id = "trfin" + rowIndex;
|
|
tr.className = (rowIndex & 1? "O " : "E ");
|
|
tr.setAttribute("ROWKEY", -1);
|
|
|
|
// Create drop button
|
|
cell = tr.insertCell(-1);
|
|
cell.innerHTML = "<img src='../Pictures/order_cancel.gif' OnClick='DeleteOrderLine(" + rowIndex + ")' style='cursor:pointer'>";
|
|
cell.id = "tdfin" + rowIndex;
|
|
|
|
// Create description field
|
|
cell = tr.insertCell(-1);
|
|
cell.innerHTML = "<input type='text' class='fld'"
|
|
+ " id='descript" + rowIndex + "' name='descript" + rowIndex + "' maxlength='60' value='" + descr + "'>";
|
|
|
|
// Create reference field
|
|
cell = tr.insertCell(-1);
|
|
cell.innerHTML = "<input type='text' class='fldfinref'"
|
|
+ " id='ref" + rowIndex + "' name='ref" + rowIndex + "' maxlength='30' value='" + ref + "'>"; // TODO: escapen
|
|
|
|
if (fin_enable_kostensoort != 0)
|
|
{ // Create charge type field
|
|
cell = tr.insertCell(-1);
|
|
cell.innerHTML = "<input id='fincostsrt" + rowIndex + "_show' class='fldcontactpers' value='" + ksrt_oms + "'" + ">"
|
|
+ "<input type='hidden' id='fincostsrt" + rowIndex + "' name='fincostsrt" + rowIndex + "' value='" + ksrt_key + "'>";
|
|
|
|
var x = new Suggest({ objectName: "sgCostCentre" + rowIndex,
|
|
queryField: $("#fincostsrt" + rowIndex + "_show")[0],
|
|
queryUrl: "../shared/suggest/SuggestKostensoort.asp?a=1",
|
|
initKey: ksrt_key,
|
|
keyField: $("#fincostsrt" + rowIndex)[0],
|
|
highlightDescript: true
|
|
});
|
|
window["sgCostCentre" + rowIndex] = x;
|
|
}
|
|
|
|
// Create sum field
|
|
cell = tr.insertCell(-1);
|
|
cell.innerHTML = "<input type='text' class='fldfinbedrag'"
|
|
+ " id='sum" + rowIndex + "' name='sum" + rowIndex + "' maxlength='10' value='" + num2curr(sum) + "'>";
|
|
cell.align = 'right';
|
|
|
|
// Create BTW field
|
|
cell = tr.insertCell(-1);
|
|
|
|
var htmlText = "<select type='text' class='fldfinbtw' id='BTW" + rowIndex
|
|
+ "' name='BTW" + rowIndex + "'>"
|
|
for (var j = 0; j < btwtabel.length; j++)
|
|
{
|
|
htmlText += "<option value='" + btwtabel[j].key + "' "
|
|
+ (fin_btw_default == btwtabel[j].key? "selected" : "") + ">"
|
|
+ btwtabel[j].oms + "</option>"; // TODO: escapen
|
|
}
|
|
htmlText += "</select>";
|
|
cell.innerHTML = htmlText;
|
|
cell.align = 'right';
|
|
|
|
// Sum incl. tax + hidden regel_key input veld.
|
|
cell = tr.insertCell(-1);
|
|
cell.innerHTML = "<input type='text' class='fldfinbedrag' readonly='1' id='sumBTW" + rowIndex
|
|
+ "' value='" + currency_pref + num2curr(sumBTW) + "'>"
|
|
+ '<input type="hidden" id="regel_key' + rowIndex + '" name="regel_key' + rowIndex + '" value="-1">'
|
|
+ '<input type="hidden" id="regel_id' + rowIndex + '" name="regel_id' + rowIndex + '" value="' + tr.id + '">';
|
|
cell.align = 'right';
|
|
|
|
if (!nofocus)
|
|
$("#descript" + rowIndex).focus();
|
|
|
|
showInlineDetails($("#tdfin" + rowIndex)[0], "inlinePropertiesUrl", 2);
|
|
}
|
|
|
|
// Merk op dat regel_key multifunctioneel is
|
|
// >0: we zijn een bestaande factuurregel aan het bewerken
|
|
// -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)
|
|
{
|
|
if (!confirm(L("lcl_fin_cancelfac")))
|
|
return;
|
|
|
|
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);
|
|
}
|
|
|
|
function SumChanged(obj)
|
|
{
|
|
var sum = myParseFloat(obj.value);
|
|
var defaultamount = 0;
|
|
if (obj.value == '')
|
|
obj.value = sum = defaultamount;
|
|
if (obj.value == '' || isNaN(sum) ||
|
|
!isGoodNumber(obj.value + "", false,false,8,2))
|
|
{
|
|
alert(L("lcl_fin_invalidSum"));
|
|
obj.focus();
|
|
return;
|
|
}
|
|
obj.value = num2curr(sum);
|
|
|
|
setPrice(obj);
|
|
}
|