|
|
@@ -1409,6 +1409,7 @@ INTERFACE_EXPORT = (() => {
|
|
|
function getBillsAnalyze(tenderProject) {
|
|
|
// 本函数是尽量复刻【5.5表】工程量清单单价分析表的‘综合’计算式脚本的相关逻辑,具体细节根据实际环境有所调整(前端环境已有不少现成的结构及数据,能少跑不少逻辑)
|
|
|
let djfxbNode = new emptyElement('ListUnitPriceAnalysis');
|
|
|
+ let decimalObj = tenderProject.property.decimal;
|
|
|
// 工程量清单单价分析(100~700章 清单下所有定额工料机的综合)
|
|
|
let topNode100To700;
|
|
|
let sno = 1;
|
|
|
@@ -1495,25 +1496,26 @@ INTERFACE_EXPORT = (() => {
|
|
|
}
|
|
|
let billMainMaterialTtl = cacheObj[billIdKey].mainMaterialFee/bQtn;
|
|
|
let billAuxiliaryMaterialTtl = cacheObj[billIdKey].auxiliaryMaterialFee/bQtn;
|
|
|
+ // scMathUtil.roundForObj(cacheObj[billIdKey].labourConsume / bQtn, decimalObj.glj.unitPrice)
|
|
|
let leafBillAttrs = [
|
|
|
{name: 'ItemNo', value: sno},
|
|
|
{name: 'Code', value: cacheObj[billIdKey].code},
|
|
|
{name: 'Name', value: cacheObj[billIdKey].name},
|
|
|
- {name: 'LaborWorkDays', value: cacheObj[billIdKey].labourConsume / bQtn},
|
|
|
- {name: 'LaborUnitPrice', value: cacheObj[billIdKey].labourUnitPrice},
|
|
|
- {name: 'LaborUnitTotal', value: cacheObj[billIdKey].labourTotalPrice / bQtn},
|
|
|
+ {name: 'LaborWorkDays', value: scMathUtil.roundForObj(cacheObj[billIdKey].labourConsume / bQtn, decimalObj.glj.quantity)},
|
|
|
+ {name: 'LaborUnitPrice', value: scMathUtil.roundForObj(cacheObj[billIdKey].labourUnitPrice, decimalObj.glj.unitPrice)},
|
|
|
+ {name: 'LaborUnitTotal', value: scMathUtil.roundForObj(cacheObj[billIdKey].labourTotalPrice / bQtn, decimalObj.glj.unitPrice)},
|
|
|
{name: 'MainMaterialConsume', value: 0},
|
|
|
{name: 'MainMaterialUnit', value: ''},
|
|
|
{name: 'MainMaterialUnitPrice', value: 0},
|
|
|
- {name: 'MainMaterialTotal', value: billMainMaterialTtl},
|
|
|
- {name: 'AuxiliaryMaterialFee', value: billAuxiliaryMaterialTtl},
|
|
|
- {name: 'MaterialSum', value: billMainMaterialTtl + billAuxiliaryMaterialTtl},
|
|
|
- {name: 'MachUsageFee', value: cacheObj[billIdKey].machineFee/bQtn},
|
|
|
- {name: 'OtherFee', value: cacheObj[billIdKey].otherFee/bQtn},
|
|
|
- {name: 'ManageFee', value: cacheObj[billIdKey].managementFee/bQtn},
|
|
|
- {name: 'Tax', value: cacheObj[billIdKey].taxFee/bQtn},
|
|
|
- {name: 'Profit', value: cacheObj[billIdKey].profitFee/bQtn},
|
|
|
- {name: 'Price', value: _getFee(bill)},
|
|
|
+ {name: 'MainMaterialTotal', value: scMathUtil.roundForObj(billMainMaterialTtl, decimalObj.glj.unitPrice)},
|
|
|
+ {name: 'AuxiliaryMaterialFee', value: scMathUtil.roundForObj(billAuxiliaryMaterialTtl, decimalObj.glj.unitPrice)},
|
|
|
+ {name: 'MaterialSum', value: scMathUtil.roundForObj(billMainMaterialTtl + billAuxiliaryMaterialTtl, decimalObj.glj.unitPrice)},
|
|
|
+ {name: 'MachUsageFee', value: scMathUtil.roundForObj(cacheObj[billIdKey].machineFee/bQtn, decimalObj.glj.unitPrice)},
|
|
|
+ {name: 'OtherFee', value: scMathUtil.roundForObj(cacheObj[billIdKey].otherFee/bQtn, decimalObj.glj.unitPrice)},
|
|
|
+ {name: 'ManageFee', value: scMathUtil.roundForObj(cacheObj[billIdKey].managementFee/bQtn, decimalObj.glj.unitPrice)},
|
|
|
+ {name: 'Tax', value: scMathUtil.roundForObj(cacheObj[billIdKey].taxFee/bQtn, decimalObj.glj.unitPrice)},
|
|
|
+ {name: 'Profit', value: scMathUtil.roundForObj(cacheObj[billIdKey].profitFee/bQtn, decimalObj.glj.unitPrice)},
|
|
|
+ {name: 'Price', value: scMathUtil.roundForObj(_getFee(bill), decimalObj.glj.unitPrice)},
|
|
|
];
|
|
|
sno++;
|
|
|
let leafItemNode = new emptyElement('Item');
|
|
|
@@ -1534,7 +1536,7 @@ INTERFACE_EXPORT = (() => {
|
|
|
{name: 'MainMaterialConsume', value: showQty},
|
|
|
{name: 'MainMaterialUnit', value: gljItem.mainMaterialUnit},
|
|
|
{name: 'MainMaterialUnitPrice', value: gljItem.mainMaterialUnitPrice},
|
|
|
- {name: 'MainMaterialTotal', value: showQty * gljItem.mainMaterialUnitPrice},
|
|
|
+ {name: 'MainMaterialTotal', value: scMathUtil.roundForObj(showQty * gljItem.mainMaterialUnitPrice, decimalObj.glj.unitPrice)},
|
|
|
{name: 'AuxiliaryMaterialFee', value: 0},
|
|
|
{name: 'MaterialSum', value: 0},
|
|
|
{name: 'MachUsageFee', value: 0},
|