|
@@ -5,7 +5,7 @@
|
|
|
* 用到费率的规则必须有feeRateID属性,当有该属性时,会自动显示费率值。
|
|
|
*/
|
|
|
|
|
|
-let billDefaultTemplate = [
|
|
|
+let defaultBillTemplate = [
|
|
|
{
|
|
|
ID: 1,
|
|
|
serialNo: '一',
|
|
@@ -14,7 +14,6 @@ let billDefaultTemplate = [
|
|
|
dispExpr: "A1+A2+A3",
|
|
|
statement: "人工费+材料费+机械费",
|
|
|
feeRate: null,
|
|
|
- type: 'RationDirect',
|
|
|
memo: ''
|
|
|
},
|
|
|
{
|
|
@@ -22,10 +21,10 @@ let billDefaultTemplate = [
|
|
|
serialNo: '1',
|
|
|
code: "A1",
|
|
|
name: "人工费",
|
|
|
- dispExpr: "H_J",
|
|
|
+ dispExpr: "HJ",
|
|
|
statement: "合计",
|
|
|
- feeRate: 0,
|
|
|
- type: 'labour',
|
|
|
+ feeRate: 50,
|
|
|
+ fieldName: 'labour',
|
|
|
memo: ''
|
|
|
},
|
|
|
{
|
|
@@ -33,10 +32,10 @@ let billDefaultTemplate = [
|
|
|
serialNo: '2',
|
|
|
code: "A2",
|
|
|
name: "材料费",
|
|
|
- dispExpr: "H_J",
|
|
|
+ dispExpr: "HJ",
|
|
|
statement: "合计",
|
|
|
- feeRate: 100,
|
|
|
- type: 'material',
|
|
|
+ feeRate: 30,
|
|
|
+ fieldName: 'material',
|
|
|
memo: ''
|
|
|
},
|
|
|
{
|
|
@@ -44,10 +43,10 @@ let billDefaultTemplate = [
|
|
|
serialNo: '3',
|
|
|
code: "A3",
|
|
|
name: "机械费",
|
|
|
- dispExpr: "H_J",
|
|
|
+ dispExpr: "HJ",
|
|
|
statement: "合计",
|
|
|
- feeRate: 0,
|
|
|
- type: 'machine',
|
|
|
+ feeRate: 20,
|
|
|
+ fieldName: 'machine',
|
|
|
memo: ''
|
|
|
},
|
|
|
{
|
|
@@ -57,8 +56,8 @@ let billDefaultTemplate = [
|
|
|
name: "管理费",
|
|
|
dispExpr: "A",
|
|
|
statement: "定额直接费",
|
|
|
- feeRate: 0,
|
|
|
- type: 'management',
|
|
|
+ feeRate: null,
|
|
|
+ fieldName: 'manage',
|
|
|
memo: ''
|
|
|
},
|
|
|
{
|
|
@@ -68,8 +67,8 @@ let billDefaultTemplate = [
|
|
|
name: "利润",
|
|
|
dispExpr: "A",
|
|
|
statement: "定额直接费",
|
|
|
- feeRate: 0,
|
|
|
- type: 'profit',
|
|
|
+ feeRate: null,
|
|
|
+ fieldName: 'profit',
|
|
|
memo: ''
|
|
|
},
|
|
|
{
|
|
@@ -80,7 +79,7 @@ let billDefaultTemplate = [
|
|
|
dispExpr: "",
|
|
|
statement: "",
|
|
|
feeRate: null,
|
|
|
- type: 'risk',
|
|
|
+ fieldName: 'risk',
|
|
|
memo: ''
|
|
|
},
|
|
|
{
|
|
@@ -90,8 +89,8 @@ let billDefaultTemplate = [
|
|
|
name: "综合单价",
|
|
|
dispExpr: "A+B",
|
|
|
statement: "定额直接费+利润",
|
|
|
- feeRate: NaN,
|
|
|
- type: 'common',
|
|
|
+ feeRate: null,
|
|
|
+ fieldName: 'common',
|
|
|
memo: ''
|
|
|
}
|
|
|
];
|
|
@@ -184,26 +183,26 @@ class CalcProgram {
|
|
|
};
|
|
|
|
|
|
checkFee(treeNode, ftObj){
|
|
|
- if (!treeNode.data.feesIndex[ftObj.type]){
|
|
|
+ if (!treeNode.data.feesIndex[ftObj.fieldName]){
|
|
|
let fee = {
|
|
|
- 'fieldName': ftObj.type,
|
|
|
+ 'fieldName': ftObj.fieldName,
|
|
|
'unitFee': ftObj.unitFee,
|
|
|
'totalFee': ftObj.totalFee,
|
|
|
'tenderUnitFee': 0,
|
|
|
'tenderTotalFee': 0
|
|
|
};
|
|
|
treeNode.data.fees.push(fee);
|
|
|
- treeNode.data.feesIndex[ftObj.type] = fee;
|
|
|
+ treeNode.data.feesIndex[ftObj.fieldName] = fee;
|
|
|
treeNode.changed = true;
|
|
|
}
|
|
|
else{
|
|
|
- if (treeNode.data.feesIndex[ftObj.type].unitFee != ftObj.unitFee){
|
|
|
- treeNode.data.feesIndex[ftObj.type].unitFee = ftObj.unitFee;
|
|
|
+ if (treeNode.data.feesIndex[ftObj.fieldName].unitFee != ftObj.unitFee){
|
|
|
+ treeNode.data.feesIndex[ftObj.fieldName].unitFee = ftObj.unitFee;
|
|
|
treeNode.changed = true;
|
|
|
};
|
|
|
|
|
|
- if (treeNode.data.feesIndex[ftObj.type].totalFee != ftObj.totalFee){
|
|
|
- treeNode.data.feesIndex[ftObj.type].totalFee = ftObj.totalFee;
|
|
|
+ if (treeNode.data.feesIndex[ftObj.fieldName].totalFee != ftObj.totalFee){
|
|
|
+ treeNode.data.feesIndex[ftObj.fieldName].totalFee = ftObj.totalFee;
|
|
|
treeNode.changed = true;
|
|
|
};
|
|
|
};
|
|
@@ -225,7 +224,7 @@ class CalcProgram {
|
|
|
|
|
|
for (let ft of feeType) {
|
|
|
let ftObj = {};
|
|
|
- ftObj.type = ft.type;
|
|
|
+ ftObj.fieldName = ft.type;
|
|
|
ftObj.name = ft.name;
|
|
|
let uf = 0, tf = 0, tuf = 0, ttf = 0;
|
|
|
for (let item of objsArr) {
|
|
@@ -261,6 +260,39 @@ class CalcProgram {
|
|
|
return rst;
|
|
|
};
|
|
|
|
|
|
+ calcDefaultBillTemp(treeNode, totalPrice){
|
|
|
+ let me = this;
|
|
|
+ let rst = [];
|
|
|
+ if (treeNode.sourceType != this.project.Bills.getSourceType()){return rst};
|
|
|
+ me.initFees(treeNode);
|
|
|
+ for (let item of defaultBillTemplate) {
|
|
|
+ let num = totalPrice;
|
|
|
+ item.dispExprUser = item.dispExpr;
|
|
|
+ item.displayFieldName = me.calc.compiledFeeTypes[item.fieldName];
|
|
|
+
|
|
|
+ if (item.feeRate)
|
|
|
+ item.unitFee = (totalPrice * item.feeRate * 0.01).toDecimal(me.digit)
|
|
|
+ else
|
|
|
+ item.unitFee = 0;
|
|
|
+
|
|
|
+ let quantity = treeNode.data.quantity;
|
|
|
+ if (!quantity) quantity = 0;
|
|
|
+ item.totalFee = (item.unitFee * quantity).toDecimal(me.digit);
|
|
|
+ item.tenderUnitFee = 0;
|
|
|
+ item.tenderTotalFee = 0;
|
|
|
+
|
|
|
+ me.checkFee(treeNode, item);
|
|
|
+ };
|
|
|
+
|
|
|
+ if (treeNode.changed) {
|
|
|
+ me.saveAndCalcParents(treeNode);
|
|
|
+ delete treeNode.changed;
|
|
|
+ };
|
|
|
+
|
|
|
+ rst = defaultBillTemplate;
|
|
|
+ return rst;
|
|
|
+ };
|
|
|
+
|
|
|
getCalcDatas(treeNode){
|
|
|
let me = this;
|
|
|
let rst = [];
|
|
@@ -294,10 +326,14 @@ class CalcProgram {
|
|
|
}else{ // 前三种计算模式下的叶子清单:汇总定额的计算程序的费用类别
|
|
|
rst = me.gatherFeeTypes(treeNode, CP_GatherType.rations);
|
|
|
};
|
|
|
- }else if (ct == childrenType.volumePrice){
|
|
|
- rst = [];
|
|
|
- }else if (ct == childrenType.formula){
|
|
|
- rst = [];
|
|
|
+ }
|
|
|
+ else if (ct == childrenType.volumePrice){
|
|
|
+ let totalPrice = 10000;
|
|
|
+ rst = me.calcDefaultBillTemp(treeNode, totalPrice);
|
|
|
+ }
|
|
|
+ else if (ct == childrenType.formula){
|
|
|
+ let totalPrice = 20000;
|
|
|
+ rst = me.calcDefaultBillTemp(treeNode, totalPrice);
|
|
|
};
|
|
|
}
|
|
|
else if (isBill){ // 父清单:汇总子清单的费用类别
|