|
|
@@ -1,3 +1,81 @@
|
|
|
+/**
|
|
|
+ * Created by CSL on 2020/07/13. 湖南计算程序、基数 等覆盖。
|
|
|
+ */
|
|
|
+
|
|
|
+let isHN2020 = true;
|
|
|
+
|
|
|
+// 一般计税取不含税市场价、不含税定额价。简易计税取含税市场价、含税定额价。打开项目时,4个价格根据计税类型只载入其二,所以这里可不作区分。
|
|
|
+function overwriteRationCalcBases (taxType){
|
|
|
+ if (typeof rationCalcBases == 'undefined') return;
|
|
|
+ for (let key in rationCalcBases) delete rationCalcBases[key];
|
|
|
+ // let isJY = taxType == '2';
|
|
|
+
|
|
|
+ rationCalcBases['人工费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptMarketPrice, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['材料费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptMarketPrice, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['施工机械使用费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptMarketPrice, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['施工机械人工费'] = function (node, isTender) {
|
|
|
+ return calcTools.machineDetailFee(node, node.data.gljList, [], gljType.MACHINE_LABOUR, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['设备购置费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['定额人工费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptBasePrice, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['定额材料费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptBasePrice, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['定额施工机械使用费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptBasePrice, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['定额商品砼费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.COMMERCIAL_CONCRETE, gljType.COMMERCIAL_MORTAR], priceTypes.ptBasePrice, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['定额设备费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptBasePrice, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['定额外购砼构件费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.PURCHASE_COMPONENT], priceTypes.ptBasePrice, isTender);
|
|
|
+ };
|
|
|
+ rationCalcBases['定额绿化苗木费'] = function (node, isTender) {
|
|
|
+ return calcTools.rationBaseFee(node, [gljType.GREEN_SEEDLING], priceTypes.ptBasePrice, isTender);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+(function overwriteFeeTypes() {
|
|
|
+ if (typeof cpFeeTypes == 'undefined') return;
|
|
|
+ cpFeeTypes = [
|
|
|
+ {type: 'marketLabour', name: '人工费'},
|
|
|
+ {type: 'marketMaterial', name: '材料费'},
|
|
|
+ {type: 'marketMachine', name: '施工机械使用费'},
|
|
|
+ {type: 'marketMachineLabour', name: '施工机械人工费'},
|
|
|
+ {type: 'marketEquipment', name: '设备购置费'},
|
|
|
+ {type: 'marketDirect', name: '直接费'},
|
|
|
+
|
|
|
+ {type: 'labour', name: '定额人工费'},
|
|
|
+ {type: 'material', name: '定额材料费'},
|
|
|
+ {type: 'machine', name: '定额施工机械使用费'},
|
|
|
+ {type: 'equipment', name: '定额设备费'},
|
|
|
+ {type: 'direct', name: '定额直接费'},
|
|
|
+
|
|
|
+ {type: 'measure', name: '措施费'},
|
|
|
+ {type: 'measure1', name: '措施费I'},
|
|
|
+ {type: 'measure2', name: '措施费II'},
|
|
|
+ {type: 'manage', name: '企业管理费'},
|
|
|
+ {type: 'force', name: '规费'},
|
|
|
+ {type: 'profit', name: '利润'},
|
|
|
+ {type: 'tax', name: '税金'},
|
|
|
+ {type: 'common', name: '建安费'},
|
|
|
+ {type: 'rationCommon', name: '定额建安费'}
|
|
|
+ ];
|
|
|
+})();
|
|
|
+
|
|
|
// 清单基数
|
|
|
const progression = ['施工场地建设费', '养护单位项目管理费', '养护单位项目管理费(未单独设置项目部)', '工程监理费', '工程监理费(未实行社会监理)', '设计文件审查费', '工程设计费'];
|
|
|
const deficiency = {};
|
|
|
@@ -159,9 +237,24 @@ if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
YHGCFBHSC(tender) {
|
|
|
return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.SAFE_COST], tender, 'common');
|
|
|
},
|
|
|
- // 养护工程费(不含设备费) 算法:取清单固定类别是“建筑安装工程费”的金额,扣除设备的金额。
|
|
|
+ // 养护工程费(不含设备费) 算法:取清单固定类别是“建筑安装工程费”的金额,扣除设备的金额(所有设备类型的人材机型定额)。
|
|
|
YHGCFBHSB(tender) {
|
|
|
- return cbTools.getFeeWithDeduction(fixedFlag.CONSTRUCTION_INSTALL_FEE, [fixedFlag.EQUIPMENT_ACQUISITION_FEE], tender, 'common');
|
|
|
+ let baseFee = this['YHGCF'](tender);
|
|
|
+ const fixedNode = projectObj.project.mainTree.roots.find(node => node.getFlag() === fixedFlag.CONSTRUCTION_INSTALL_FEE);
|
|
|
+ const allSubNodes = [];
|
|
|
+ projectObj.project.mainTree.getAllSubNode(fixedNode, allSubNodes);
|
|
|
+ const equipmentNodes = allSubNodes.filter(node => node.data.type === rationType.gljRation && node.data.subType === gljType.EQUIPMENT);
|
|
|
+ const feeField = 'common';
|
|
|
+ const subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
|
|
|
+ for (const node of equipmentNodes) {
|
|
|
+ const data = node.data;
|
|
|
+ if (cbTools.isUnDef(data.feesIndex) || _.isEmpty(data.feesIndex) ||
|
|
|
+ cbTools.isUnDef(data.feesIndex[feeField]) || cbTools.isUnDef(data.feesIndex[feeField][subFeeField])) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ baseFee -= data.feesIndex[feeField][subFeeField];
|
|
|
+ }
|
|
|
+ return baseFee.toDecimal(decimalObj.bills.totalPrice);
|
|
|
},
|
|
|
// 定额养护工程费 取清单固定类别是“建筑安装工程费”的定额建安费。
|
|
|
DEYHGCF(tender) {
|
|
|
@@ -243,7 +336,7 @@ if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
*/
|
|
|
JCYBF(tender) {
|
|
|
//建筑安装工程费作为基数
|
|
|
- const installFee = this['JZAZGCF'](tender);
|
|
|
+ const installFee = this['YHGCF'](tender);
|
|
|
//年造价增涨
|
|
|
const costGrowthRate = calcBase.project.property.costGrowthRate
|
|
|
? calcBase.project.property.costGrowthRate
|
|
|
@@ -311,10 +404,18 @@ if (typeof baseFigureTemplate !== 'undefined') {
|
|
|
};
|
|
|
}
|
|
|
|
|
|
+if (typeof projectObj !== 'undefined') {
|
|
|
+ projectObj.isInsertEquipmentVisable = function (selected) {
|
|
|
+ return true; //湖南不管是预算或者工程量清单,都显示
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// CommonJS module
|
|
|
if (typeof module !== 'undefined' && !module.nodeType) { // 防止module是前端的一个html标签
|
|
|
module.exports = {
|
|
|
progression,
|
|
|
deficiency
|
|
|
};
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+
|