This topic is locked

Sum On The Fly Using (.) Or (,)

1/20/2013 6:11:39 PM
PHPRunner General questions
O
onlline author

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');

}

});