Merge pull request #19 from brayanpereyra/BUG-8860
Bug 8860 The bug was solved and review with correct code SOLVED
This commit is contained in:
@@ -7,6 +7,18 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
this.oGrid = document.getElementById(this.sGridName);
|
this.oGrid = document.getElementById(this.sGridName);
|
||||||
this.onaddrow = function(iRow){};
|
this.onaddrow = function(iRow){};
|
||||||
this.ondeleterow = function(){};
|
this.ondeleterow = function(){};
|
||||||
|
this.executeEvent = function (element,event) {
|
||||||
|
if ( document.createEventObject ) {
|
||||||
|
// IE
|
||||||
|
var evt = document.createEventObject();
|
||||||
|
return element.fireEvent('on'+event,evt)
|
||||||
|
} else {
|
||||||
|
// firefox + others
|
||||||
|
var evt = document.createEvent("HTMLEvents");
|
||||||
|
evt.initEvent(event, true, true ); // event type,bubbling,cancelable
|
||||||
|
return !element.dispatchEvent(evt);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
this.aFields = [];
|
this.aFields = [];
|
||||||
this.aElements = [];
|
this.aElements = [];
|
||||||
@@ -868,6 +880,7 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
this.evaluateFormula = function(oEvent, oDOM, oField) {
|
this.evaluateFormula = function(oEvent, oDOM, oField) {
|
||||||
oDOM = (oDOM ? oDOM : oEvent.target || window.event.srcElement);
|
oDOM = (oDOM ? oDOM : oEvent.target || window.event.srcElement);
|
||||||
var aAux, sAux, i, oAux;
|
var aAux, sAux, i, oAux;
|
||||||
|
var domId = oDOM.id;
|
||||||
var oContinue = true;
|
var oContinue = true;
|
||||||
aAux = oDOM.name.split('][');
|
aAux = oDOM.name.split('][');
|
||||||
sAux = oField.sFormula.replace(/\+|\-|\*|\/|\(|\)|\[|\]|\{|\}|\%|\$/g, ' ');
|
sAux = oField.sFormula.replace(/\+|\-|\*|\/|\(|\)|\[|\]|\{|\}|\%|\$/g, ' ');
|
||||||
@@ -889,6 +902,7 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
eval("if (!document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + "]')) { oContinue = false; }");
|
eval("if (!document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + "]')) { oContinue = false; }");
|
||||||
|
|
||||||
if (oContinue) {
|
if (oContinue) {
|
||||||
//we're selecting the mask to put in the field with the formula
|
//we're selecting the mask to put in the field with the formula
|
||||||
for (i = 0; i < this.aFields.length; i++) {
|
for (i = 0; i < this.aFields.length; i++) {
|
||||||
@@ -898,23 +912,51 @@ var G_Grid = function(oForm, sGridName){
|
|||||||
}
|
}
|
||||||
if(maskformula!=''){
|
if(maskformula!=''){
|
||||||
maskDecimal=maskformula.split(";");
|
maskDecimal=maskformula.split(";");
|
||||||
|
|
||||||
if(maskDecimal.length > 1) {
|
if(maskDecimal.length > 1) {
|
||||||
maskDecimal=maskDecimal[1].split(".");
|
maskDecimal=maskDecimal[1].split(".");
|
||||||
} else {
|
} else {
|
||||||
maskDecimal=maskformula.split(".");
|
maskDecimal=maskformula.split(".");
|
||||||
}
|
}
|
||||||
maskToPut=maskDecimal[1].length;
|
|
||||||
}else{
|
if(typeof maskDecimal[1] != 'undefined') {
|
||||||
|
maskToPut=maskDecimal[1].length;
|
||||||
|
} else {
|
||||||
|
maskToPut=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
maskToPut=0;
|
maskToPut=0;
|
||||||
}
|
}
|
||||||
var symbol = document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']').value.replace(/[0-9.\s]/g,'');
|
|
||||||
var bkp = document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value;
|
// clean the field and load mask execute event keypress
|
||||||
|
document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']').value = '';
|
||||||
|
this.executeEvent(document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']'), 'keypress');
|
||||||
|
|
||||||
|
// execute formula and set decimal
|
||||||
eval("document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + "]').value = (" + sAux + ').toFixed('+maskToPut+');');
|
eval("document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + "]').value = (" + sAux + ').toFixed('+maskToPut+');');
|
||||||
|
|
||||||
|
// trim value
|
||||||
|
document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value = document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value.replace(/^\s*|\s*$/g,"");
|
||||||
|
|
||||||
|
// set '' to field if response is NaN
|
||||||
if (document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value =='NaN')
|
if (document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value =='NaN')
|
||||||
document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value = '';
|
document.getElementById(aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + ']').value = '';
|
||||||
|
|
||||||
document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']').value = symbol+' '+document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']').value;
|
// save var symbol the response
|
||||||
|
var symbol = document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']').value.replace(/[0-9.\s]/g,'');
|
||||||
|
this.executeEvent(document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']'), 'keypress');
|
||||||
|
|
||||||
|
// replace symbol - for ''
|
||||||
|
document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']').value = document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']').value.replace('-','');
|
||||||
|
|
||||||
|
// set var symbol
|
||||||
|
document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']').value = symbol+''+document.getElementById(aAux[0]+']['+ aAux[1] + '][' + oField.sFieldName + ']').value;
|
||||||
|
|
||||||
|
// return focus the field typed
|
||||||
|
if (typeof document.getElementById(domId) != 'undefined') {
|
||||||
|
document.getElementById(domId).focus();
|
||||||
|
}
|
||||||
|
|
||||||
if (this.aFunctions.length > 0) {
|
if (this.aFunctions.length > 0) {
|
||||||
for (i = 0; i < this.aFunctions.length; i++) {
|
for (i = 0; i < this.aFunctions.length; i++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user