|
|
@@ -397,8 +397,38 @@ INTERFACE_EXPORT = (() => {
|
|
|
const programText = curTender.calcProgram.compiledTemplateMaps[node.data.programID];
|
|
|
return programText === '费率为0' ? '4' : '3';
|
|
|
}
|
|
|
+
|
|
|
+ function billDEXXB(node) {
|
|
|
+ // 叶子清单生成定额信息表用
|
|
|
+ const { mainFee, assFee } = getMaterialFee(node);
|
|
|
+ const attrs = [
|
|
|
+ {name: '序号', value: '' },
|
|
|
+ {name: 'GUID', value: uuid.v1()},
|
|
|
+ {name: '定额编号', value: ''},
|
|
|
+ {name: '定额名称', value: node.data.name, minLen: 1 },
|
|
|
+ {name: '单位', value: node.data.unit, minLen: 1 },
|
|
|
+ {name: '数量', value: node.data.tenderQuantity, type: TYPE.DECIMAL},
|
|
|
+ {name: '单价', value: getFee(node.data.fees, 'common.tenderUnitFee', exportKind), type: TYPE.DECIMAL},
|
|
|
+ {name: '合价', value: getFee(node.data.fees, 'common.tenderTotalFee', exportKind), type: TYPE.DECIMAL},
|
|
|
+ {name: '备注', value: node.data.remark },
|
|
|
+ {name: '数据类型', value: (node.data.specialProvisional === '材料暂估') ? '1' : '2' },
|
|
|
+ {name: '人工费', value: getUnitFee(getFee(node.data.fees, 'marketLabour.tenderTotalFee', exportKind), node.data.tenderQuantity, 2), type: TYPE.DECIMAL},
|
|
|
+ {name: '主材费', value: mainFee, type: TYPE.DECIMAL},
|
|
|
+ {name: '辅材费', value: assFee, type: TYPE.DECIMAL},
|
|
|
+ {name: '设备费', value: getUnitFee(getFee(node.data.fees, 'equipment.tenderTotalFee', exportKind), node.data.tenderQuantity, fD), type: TYPE.DECIMAL},
|
|
|
+ {name: '机械使用费', value: getUnitFee(getFee(node.data.fees, 'machine.tenderTotalFee', exportKind), node.data.tenderQuantity, fD), type: TYPE.DECIMAL},
|
|
|
+ {name: '措施费1', value: getUnitFee(COMPILATION_NAME.includes('公路造价') ? getFee(node.data.fees, 'measure1.tenderTotalFee', exportKind) : getFee(node.data.fees, 'otherDirect.tenderTotalFee', exportKind), node.data.tenderQuantity, fD), type: TYPE.DECIMAL},
|
|
|
+ {name: '措施费2', value: getUnitFee(COMPILATION_NAME.includes('公路造价') ? getFee(node.data.fees, 'measure2.tenderTotalFee', exportKind) : getFee(node.data.fees, 'composite.tenderTotalFee', exportKind), node.data.tenderQuantity, fD), type: TYPE.DECIMAL},
|
|
|
+ {name: '企业管理费', value: getUnitFee(COMPILATION_NAME.includes('公路造价') ? getFee(node.data.fees, 'manage.tenderTotalFee', exportKind) : getFee(node.data.fees, 'local.tenderTotalFee', exportKind), node.data.tenderQuantity, fD), type: TYPE.DECIMAL},
|
|
|
+ {name: '规费', value: getUnitFee(COMPILATION_NAME.includes('公路造价') ? getFee(node.data.fees, 'force.tenderTotalFee', exportKind) : getFee(node.data.fees, 'indirect.tenderTotalFee', exportKind), node.data.tenderQuantity, fD), type: TYPE.DECIMAL},
|
|
|
+ {name: '利润', value: getUnitFee(getFee(node.data.fees, 'profit.tenderTotalFee', exportKind), node.data.tenderQuantity, fD), type: TYPE.DECIMAL},
|
|
|
+ {name: '税金', value: getUnitFee(getFee(node.data.fees, 'tax.tenderTotalFee', exportKind), node.data.tenderQuantity, fD), type: TYPE.DECIMAL},
|
|
|
+ ];
|
|
|
+ Element.call(this, '定额信息表', attrs);
|
|
|
+ }
|
|
|
+
|
|
|
function DEXXB(node) {
|
|
|
- if (node.data.code == '1-2-14-1') debugger;
|
|
|
+ // if (node.data.code == '1-2-14-1') debugger;
|
|
|
const { mainFee, assFee } = getMaterialFee(node);
|
|
|
const attrs = [
|
|
|
{name: '序号', value: rationSeq ++ },
|
|
|
@@ -557,11 +587,11 @@ INTERFACE_EXPORT = (() => {
|
|
|
});
|
|
|
return qdzcb.children.length ? qdzcb : null;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/* 生成定额信息表 */
|
|
|
function createDEXXB(node) {
|
|
|
const rst = [];
|
|
|
- // if(isBidInvitation) return rst; //招标工程量清单不导出定额数据
|
|
|
+ if(isBidInvitation) return rst; //招标工程量清单不导出定额数据
|
|
|
node.children.forEach(ration => {
|
|
|
const dexxb = new DEXXB(ration);
|
|
|
rst.push(dexxb);
|
|
|
@@ -590,19 +620,27 @@ INTERFACE_EXPORT = (() => {
|
|
|
function setupGCLQDMX(nodes) {
|
|
|
const rst = [];
|
|
|
nodes.forEach(node => {
|
|
|
- const glcqdmx = new GongCLQDMX(node);
|
|
|
- rst.push(glcqdmx);
|
|
|
- if (!node.source.children.length && node.children.length) {
|
|
|
- // 清单主材表
|
|
|
- const qdzcb = createQDZCB(node);
|
|
|
- if (qdzcb) {
|
|
|
- glcqdmx.children.push(qdzcb);
|
|
|
- }
|
|
|
- // 定额
|
|
|
- glcqdmx.children.push(...createDEXXB(node));
|
|
|
+ // if (node.data.name === '利用石方') debugger;
|
|
|
+ if (node.data.specialProvisional !== undefined && node.data.specialProvisional !== null && node.data.specialProvisional !== '' && node.children.length === 0) {
|
|
|
+ //象山的坑,叶子清单(专项暂定)要转成定额信息表
|
|
|
+ const dexxb = new billDEXXB(node);
|
|
|
+ rst.push(dexxb);
|
|
|
} else {
|
|
|
- // 子清单
|
|
|
- glcqdmx.children.push(...setupGCLQDMX(node.children));
|
|
|
+ // 原逻辑:
|
|
|
+ const glcqdmx = new GongCLQDMX(node);
|
|
|
+ rst.push(glcqdmx);
|
|
|
+ if (!node.source.children.length && node.children.length) {
|
|
|
+ // 清单主材表
|
|
|
+ const qdzcb = createQDZCB(node);
|
|
|
+ if (qdzcb) {
|
|
|
+ glcqdmx.children.push(qdzcb);
|
|
|
+ }
|
|
|
+ // 定额
|
|
|
+ glcqdmx.children.push(...createDEXXB(node));
|
|
|
+ } else {
|
|
|
+ // 子清单
|
|
|
+ glcqdmx.children.push(...setupGCLQDMX(node.children));
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
return rst;
|