Skip to content

Commit

Permalink
Fixed issue #12076: Array of texts set to "numbers only" doesn't allo…
Browse files Browse the repository at this point in the history
…w negative values
  • Loading branch information
lacrioque committed Mar 28, 2017
1 parent b3ef63e commit 9841a6d
Showing 1 changed file with 25 additions and 31 deletions.
56 changes: 25 additions & 31 deletions scripts/array-totalsum.js
Expand Up @@ -4,21 +4,20 @@
*
*/

$( document ).ready(function() {
$(document).ready(function () {
$('div.array-multi-flexi-text table.show-totals input:enabled').keyup(updatetotals);
$('div.array-multi-flexi-text table.show-totals input:enabled').each(updatetotals);
});

function updatetotals()
{
function updatetotals() {
var inputValue = $(this).val();
var sRadix=LSvar.sLEMradix;
var sTableID=$(this).closest('table').attr('id');
var sTable=$(this).closest('table');
var iGrandTotal=new Decimal(0);
var sRadix = LSvar.sLEMradix;
var sTableID = $(this).closest('table').attr('id');
var sTable = $(this).closest('table');
var iGrandTotal = new Decimal(0);

if(!normalizeValue(inputValue)){
$(this).val(inputValue.substring(0,(inputValue.length-1)));
if (!normalizeValue(inputValue)) {
$(this).val(inputValue.substring(0, (inputValue.length - 1)));
return;
}

Expand All @@ -38,49 +37,46 @@ function updatetotals()
});
// Sum all columns
// First get number of columns (only visible and enabled inputs)
var iColumnNum=$('#'+sTableID+' tbody tr:first-child input:enabled:visible').length;
var iColumnNum = $('#' + sTableID + ' tbody tr:first-child input:enabled:visible').length;
//Get An array of jQuery Objects
var $iRow = sTable.find('tr');
//Iterate through the columns
for (var i = 1; i <= iColumnNum; i++)
{
for (var i = 1; i <= iColumnNum; i++) {
var sum = new Decimal(0);
$iRow.each(function(){
var item = $($(this).find('td').get((i-1))).find('input:enabled:visible'),
val = normalizeValue($(item).val());
$iRow.each(function () {
var item = $($(this).find('td').get((i - 1))).find('input:enabled:visible'),
val = normalizeValue($(item).val());
//sum the values
sum = sum.plus(val);
sum = sum.plus(val);
});
$($iRow.last().find('td').get((i-1))).find('input:disabled').val(formatValue(sum)).trigger('change').trigger('keyup').trigger('keydown');
$($iRow.last().find('td').get((i - 1))).find('input:disabled').val(formatValue(sum)).trigger('change').trigger('keyup').trigger('keydown');
}

//$('#'+sTableID+' tr:last-child td.total:nth-of-type('+iColumns+') input:disabled').val(formatValue(iGrandTotal));
$iRow.last().find('td.grand.total').find('input:disabled').val(formatValue(iGrandTotal)).trigger('change').trigger('keyup').trigger('keydown');
// Grand total
}
function formatValue(sValue)
{

sValue=Number(sValue).toString();
var sRadix=LSvar.sLEMradix;
sValue=sValue.replace('.',sRadix);
function formatValue(sValue) {

sValue = Number(sValue).toString();
var sRadix = LSvar.sLEMradix;
sValue = sValue.replace('.', sRadix);
return sValue;
}

function normalizeValue(aValue)
{
var regexCheck = new RegExp(/^([0-9]*)((,|\.){1}([0-9]*)){0,1}$/);
if(!regexCheck.test(aValue) && bFixNumAuto){
function normalizeValue(aValue) {
var regexCheck = new RegExp(/^-?([0-9]*)((,|\.){1}([0-9]*)){0,1}$/);
if (!regexCheck.test(aValue) && bFixNumAuto) {
return 0;
}
aValue = aValue || 0;
var outNumber = false;
try {
outNumber = new Decimal(aValue);
} catch(e){}
} catch (e) {}

if(outNumber == false)
{
if (outNumber == false) {
var numReplaced = aValue.toString().replace(/,/g, ".");
outNumber = new Decimal(numReplaced);

Expand All @@ -89,5 +85,3 @@ function normalizeValue(aValue)
return outNumber;
}
}


0 comments on commit 9841a6d

Please sign in to comment.