|
@@ -289,7 +289,7 @@ class Rpt_Data_Extractor {
|
|
|
break;
|
|
|
case JV.PROP_HANDLE_TYPE_SUM:
|
|
|
// fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/ConstructionCost/tmp/insertedRawDataData10.jsp");
|
|
|
- summaryData(srcData, preHandle, rawDataObj.prjData);
|
|
|
+ summaryData(srcData, preHandle, rawDataObj.prjData, rawDataObj.prj);
|
|
|
// fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/ConstructionCost/tmp/insertedRawDataData11.jsp");
|
|
|
break;
|
|
|
case JV.PROP_HANDLE_TYPE_ADD_DUMMY:
|
|
@@ -371,9 +371,24 @@ function getModuleDataByKey(prjData, key) {
|
|
|
return rst;
|
|
|
}
|
|
|
|
|
|
-function summaryData(sourceData, handleCfg, prjData){
|
|
|
+function summaryData(sourceData, handleCfg, prjData, prjMain){
|
|
|
let rstArr = [], tempRstArr = [];
|
|
|
let curParentPrjData = {};
|
|
|
+ let precision = 6;
|
|
|
+ if (handleCfg[JV.PROP_HANDLE_TYPE_PRECISION]) {
|
|
|
+ if (isNaN(parseInt(handleCfg[JV.PROP_HANDLE_TYPE_PRECISION]))) {
|
|
|
+ let properties = handleCfg[JV.PROP_HANDLE_TYPE_PRECISION].split('.');
|
|
|
+ let currentProperty = prjMain[properties[0]];
|
|
|
+ for (let idx = 1; idx < properties.length; idx++) {
|
|
|
+ currentProperty = currentProperty[properties[idx]];
|
|
|
+ }
|
|
|
+ if (!isNaN(parseInt(currentProperty))) {
|
|
|
+ precision = parseInt(currentProperty);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ precision = parseInt(handleCfg[JV.PROP_HANDLE_TYPE_PRECISION]);
|
|
|
+ }
|
|
|
+ }
|
|
|
for (let item of getActDataArr(sourceData)) {
|
|
|
if (item._doc) {
|
|
|
tempRstArr.push(item._doc);
|
|
@@ -399,10 +414,10 @@ function summaryData(sourceData, handleCfg, prjData){
|
|
|
dtlItem[sumKey] = parseFloat(dtlItem[sumKey]) - parseFloat(data[calcAheadObj["calc_property"]]);
|
|
|
break;
|
|
|
case "*":
|
|
|
- dtlItem[sumKey] = dtlItem[sumKey] * parseFloat(data[calcAheadObj["calc_property"]]).toFixed(4);
|
|
|
+ dtlItem[sumKey] = dtlItem[sumKey] * parseFloat(data[calcAheadObj["calc_property"]]);
|
|
|
break;
|
|
|
case "/":
|
|
|
- dtlItem[sumKey] = dtlItem[sumKey] / parseFloat(data[calcAheadObj["calc_property"]]).toFixed(4);
|
|
|
+ dtlItem[sumKey] = dtlItem[sumKey] / parseFloat(data[calcAheadObj["calc_property"]]);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -445,7 +460,7 @@ function summaryData(sourceData, handleCfg, prjData){
|
|
|
for (let sumKey of handleCfg[JV.PROP_SUM_SUM_KEYS]) {
|
|
|
if (dtl[sumKey]) {
|
|
|
// sumObj[grpKey][sumKey] += dtl[sumKey];
|
|
|
- sumObj[grpKey][sumKey] = parseFloat(sumObj[grpKey][sumKey]) + parseFloat(dtl[sumKey]);
|
|
|
+ sumObj[grpKey][sumKey] = parseFloat(parseFloat(sumObj[grpKey][sumKey]).toFixed(precision)) + parseFloat(parseFloat(dtl[sumKey]).toFixed(precision));
|
|
|
}
|
|
|
}
|
|
|
}
|