Hi
when using (.) or (,)
 sum does not work on the fly
example 000.000.000.00 or 000.000.000,00
see my code
----------------------------------
var NameCustomerCtrl = Runner.getControl(pageid, 'NameCustomer');
var CostTotalCondominiumCtrl = Runner.getControl(pageid,'CostTotalCondominium');
var CondominiumCtrl = Runner.getControl(pageid,'Condominium');
var RentCtrl = Runner.getControl(pageid,'Rent');
var PenalityRentCtrl = Runner.getControl(pageid,'PenalityRent');
var PenalityCondominiumCtrl = Runner.getControl(pageid,'PenalityCondominium');
var OthersPenalityCtrl = Runner.getControl(pageid,'OthersPenality');
var TotalCtrl = Runner.getControl(pageid,'Total');
var RomsCtrl = Runner.getControl(pageid,'Roms');
var PerRentCtrl = Runner.getControl(pageid,'PerRent');
var PerCondCtrl = Runner.getControl(pageid,'PerCond');
var nr = new Array(); // number rom
var cb = new Array(); //calculation basis
var ar = new Array(); //amount rent
var cb_sum = 0;
var ar_sum = 0;
RentCtrl.getDispElem().attr('readonly','readonly');
RomsCtrl.getDispElem().attr('readonly','readonly');
CondominiumCtrl.getDispElem().attr('readonly','readonly');
PenalityRentCtrl.getDispElem().attr('readonly','readonly');
PenalityCondominiumCtrl.getDispElem().attr('readonly','readonly');
TotalCtrl.getDispElem().attr('readonly','readonly');
function checkNumber(num)
{
return (num == '' || isNaN(num)) ? 0 : parseFloat(num);
}
function setRentPenality()
{
PenalityRentCtrl.setValue(((checkNumber(PerRentCtrl.getValue()) / 100) ar_sum).toFixed(2));
}
function setCondPenality()
{
PenalityCondominiumCtrl.setValue(((checkNumber(PerCondCtrl.getValue()) / 100) cb_sum).toFixed(2));
}
function setCondominium()
{
cb_sum = 0;
for(var i = 0; i < cb.length; i++)
{
cb_sum += parseFloat(cb[i].replace(',','.')) * checkNumber(CostTotalCondominiumCtrl.getValue());
}
CondominiumCtrl.setValue(cb_sum.toFixed(2));
}
function resetFields()
{
RentCtrl.setValue('');
RomsCtrl.setValue('');
CondominiumCtrl.setValue('');
PenalityRentCtrl.setValue('');
PenalityCondominiumCtrl.setValue('');
TotalCtrl.setValue('');
}
function sum_all()
{
var total;
total = checkNumber(RentCtrl.getValue()) + checkNumber(CondominiumCtrl.getValue()) + checkNumber(PenalityRentCtrl.getValue()) + checkNumber(PenalityCondominiumCtrl.getValue()) + checkNumber(OthersPenalityCtrl.getValue());
TotalCtrl.setValue(total.toFixed(2));
}
NameCustomerCtrl.on('change',function(){
nr = [];
cb = [];
ar = [];
resetFields();
$.ajax({
url : 'receipt_payment_add.php',
type : 'POST',
data : 'customer='+NameCustomerCtrl.getValue(),
dataType : 'json',
success: function(msg){
for(var i = 0; i< msg.length; i++)
{
nr.push(msg[i].nr);
cb.push(msg[i].cb);
ar.push(msg[i].ar);
}
ar_sum = 0;
var rom_list = '';
for(var i = 0; i < ar.length; i++)
{
rom_list += nr[i] + ',';
ar_sum += parseFloat(ar[i].replace(',','.'));
}
rom_list = rom_list.substring(0,rom_list.lastIndexOf(','));
RomsCtrl.setValue(rom_list);
RentCtrl.setValue(ar_sum.toFixed(2));
setCondominium();
setRentPenality();
setCondPenality();
sum_all();
}
});
});
CostTotalCondominiumCtrl.on('keyup',function(){
if(cb.length > 0)
{
setCondominium();
setRentPenality();
sum_all();
}
else
{
alert('Please, select a customer');
}
});
OthersPenalityCtrl.on('keyup',function(){
if(cb.length > 0)
{
sum_all();
}
else
{
alert('Please, select a customer');
}
});
PerRentCtrl.on('keyup',function(){
if(cb.length > 0)
{
setRentPenality();
sum_all();
}
else
{
alert('Please, select a customer');
}
});
PerCondCtrl.on('keyup',function(){
if(cb.length > 0)
{
setCondPenality();
sum_all();
}
else
{
alert('Please, select a customer');
}
});