|
@@ -326,7 +326,7 @@ class Rpt_Data_Extractor {
|
|
|
adjustData(srcData, preHandle);
|
|
|
break;
|
|
|
case JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE:
|
|
|
- //把显示在清单中的量材转移到工料机去
|
|
|
+ //把显示在清单中的量材转移到工料机去, 顺带把项目工料机的组成物工料机分解出来,分解的工料机作为定额工料机保存(02表用)
|
|
|
moveRationData(srcData, rawDataObj);
|
|
|
break;
|
|
|
case JV.PROP_HANDLE_TYPE_COMPONENT_REPLACEMENT:
|
|
@@ -857,16 +857,61 @@ function moveRationData(rationData, rawDataObj) {
|
|
|
copyItem.projectGLJID = dummyPRJID;
|
|
|
dummyPrjItem.id = dummyPRJID;
|
|
|
dummyPRJID++;
|
|
|
+ dummyPrjItem.name = rationItem.name;
|
|
|
dummyPrjItem.unit_price = {};
|
|
|
dummyPrjItem.unit_price.base_price = 0;
|
|
|
dummyPrjItem.unit_price.market_price = (rationItem["marketUnitFee"])?rationItem["marketUnitFee"]:0;
|
|
|
- dummyPrjItem.quantity = 0;
|
|
|
+ dummyPrjItem.quantity = 1; //这里设置为1只是为了不被误过滤
|
|
|
dummyPrjItem.is_evaluate = 0;
|
|
|
prjGljData.data.gljList.push(dummyPrjItem);
|
|
|
}
|
|
|
rationGljData.data.push(copyItem);
|
|
|
+ } else {
|
|
|
+ //无
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //这里考虑到项目工料机有组成物,那么这些组成物应该要归类到定额工料机下
|
|
|
+ let newComponentItem = [];
|
|
|
+ for (let rationGljItem of getActDataArr(rationGljData)) {
|
|
|
+ for (let prjGljItem of prjGljData.data.gljList) {
|
|
|
+ if (prjGljItem.id === rationGljItem.projectGLJID) {
|
|
|
+ if (prjGljItem.ratio_data && prjGljItem.ratio_data.length > 0) {
|
|
|
+ //有组成物
|
|
|
+ for (let comItem of prjGljItem.ratio_data) {
|
|
|
+ let copyItem = {};
|
|
|
+ copyItem.ID = comItem._id.toString();
|
|
|
+ copyItem.projectID = rationGljItem.projectID;
|
|
|
+ copyItem.rationID = rationGljItem.rationID;
|
|
|
+ // copyItem.rationItemQuantity = rationGljItem.quantity;
|
|
|
+ copyItem.quantity = prjGljItem.quantity * comItem.consumption;
|
|
|
+ copyItem.name = comItem.name;
|
|
|
+ copyItem.code = comItem.code;
|
|
|
+ copyItem.unit = comItem.unit;
|
|
|
+ copyItem.specs = comItem.specs;
|
|
|
+ // copyItem.shortName = comItem.shortName;
|
|
|
+ copyItem.billsItemID = rationGljItem.billsItemID;
|
|
|
+ copyItem.type = comItem.type;
|
|
|
+ //其他属性,要根据工料机ID来查找
|
|
|
+ for (let gljIdx = 0; gljIdx < prjGljData.data.gljList.length; gljIdx++) {
|
|
|
+ if (prjGljData.data.gljList[gljIdx].code === comItem.code) {
|
|
|
+ copyItem.projectGLJID = prjGljData.data.gljList[gljIdx].id;
|
|
|
+ copyItem.original_code = prjGljData.data.gljList[gljIdx].original_code;
|
|
|
+ copyItem.is_main_material = prjGljData.data.gljList[gljIdx].is_main_material;
|
|
|
+ copyItem.is_adjust_price = prjGljData.data.gljList[gljIdx].is_adjust_price;
|
|
|
+ copyItem.unit_price = {};
|
|
|
+ copyItem.unit_price.base_price = prjGljData.data.gljList[gljIdx].unit_price.base_price;
|
|
|
+ copyItem.unit_price.market_price = prjGljData.data.gljList[gljIdx].unit_price.market_price;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ newComponentItem.push(copyItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ rationGljData.data = rationGljData.data.concat(newComponentItem);
|
|
|
// fsUtil.writeObjToFile(rationGljData.data, "D:/GitHome/ConstructionCost/tmp/afterMoveGLJ.jsp");
|
|
|
}
|
|
|
}
|