'use strict'; /** * * * @author Zhong * @date 2019/8/15 * @version */ let isGD2018 = true; function overwriteRationCalcBases (){ if (typeof rationCalcBases == 'undefined') return; for (let key in rationCalcBases) delete rationCalcBases[key]; 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.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptMarketPrice, isTender); }; rationCalcBases['设备费'] = function (node, isTender) { return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender); }; // 广东建筑管理费特殊计算:管理费=ROUND(∑(人工费+施工机具费)*定额的管理费费率*0.01,精度)。与定额同级的量价、人材机则按管理费费率为0计算。 rationCalcBases['管理费'] = function (node, isTender) { let rst = 0; if (calcTools.isRationItem(node) && node.data.gljList && node.data.manageFeeRate) { rst = (rationCalcBases['人工费'](node, isTender) + rationCalcBases['机具费'](node, isTender)) * node.data.manageFeeRate * 0.01; rst = rst.toDecimal(decimalObj.ration.unitPrice); }; return rst; }; rationCalcBases['工日合计'] = function (node, isTender) { return calcTools.labourDays(node, isTender); }; rationCalcBases['甲供人工费'] = function (node, isTender) { return calcTools.partASupplyFee(node, '甲供人工费', isTender, false); }; rationCalcBases['甲供材料费'] = function (node, isTender) { return calcTools.partASupplyFee(node, '甲供材料费', isTender, false); }; rationCalcBases['甲供机具费'] = function (node, isTender) { return calcTools.partASupplyFee(node, '甲供机械费', isTender, false); }; rationCalcBases['甲供主材费'] = function (node, isTender) { return calcTools.partASupplyFee(node, '甲供主材费', isTender, false); }; rationCalcBases['甲供设备费'] = function (node, isTender) { return calcTools.partASupplyFee(node, '甲供设备费', isTender, false); }; rationCalcBases['甲定人工费'] = function (node, isTender) { return calcTools.partASupplyFee(node, '甲定人工费', isTender, false); }; rationCalcBases['甲定材料费'] = function (node, isTender) { return calcTools.partASupplyFee(node, '甲定材料费', isTender, false); }; rationCalcBases['甲定机具费'] = function (node, isTender) { return calcTools.partASupplyFee(node, '甲定机械费', isTender, false); }; rationCalcBases['甲定主材费'] = function (node, isTender) { return calcTools.partASupplyFee(node, '甲定主材费', isTender, false); }; rationCalcBases['甲定设备费'] = function (node, isTender) { return calcTools.partASupplyFee(node, '甲定设备费', isTender, false); }; rationCalcBases['暂估材料费'] = function (node, isTender) { return calcTools.estimateFee(node, true, isTender); }; }; (function overwriteFeeTypes() { if (typeof cpFeeTypes == 'undefined') return; cpFeeTypes = [ {type: 'labour', name: '人工费'}, {type: 'material', name: '材料费'}, {type: 'machine', name: '机具费'}, {type: 'mainMaterial', name: '主材费'}, {type: 'equipment', name: '设备费'}, {type: 'direct', name: '直接费'}, {type: 'measure', name: '措施项目费'}, {type: 'manage', name: '管理费'}, {type: 'profit', name: '利润'}, {type: 'tax', name: '税金'}, {type: 'common', name: '工程造价'} ]; })(); if (typeof module !== 'undefined') { } else { // 广东接口排版规则,添加内容默认项目特征 $(function () { $('#add-content').val('3'); }); //清单计算基数相关 if(typeof baseFigureMap !== 'undefined'){ baseFigureMap = { '分部分项工程费': {base: 'FBFXGCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'}, '分部分项人工费': {base: 'FBFXDEJJRGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'}, '分部分项材料费': {base: 'FBFXDEJJCLF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'}, '分部分项机具费': {base: 'FBFXDEJJJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'}, '分部分项主材费': {base: 'FBFXZCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'}, '分部分项设备费': {base: 'FBFXSBF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'}, '分部分项人工工日': {base: 'FBFXRGGR', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'}, '建筑面积': {base: 'JZMJ', class: 'FBFX'}, '措施项目费': {base: 'CSXMF', fixedFlag: fixedFlag.MEASURE, class: 'CSXM'}, '其他项目费': {base: 'QTXMF', fixedFlag: fixedFlag.OTHER, class: 'QTXM'}, '甲供人工费': {base: 'JGDEJJRGF', class: 'RCJ'}, '甲供材料费': {base: 'JGDEJJCLF', class: 'RCJ'}, '甲供机具费': {base: 'JGDEJJJXF', class: 'RCJ'}, '甲供主材费': {base: 'JGZCF', class: 'RCJ'}, '甲供设备费': {base: 'JGSBF', class: 'RCJ'}, '甲定人工费': {base: 'JDDEJJRGF', class: 'RCJ'}, '甲定材料费': {base: 'JDDEJJCLF', class: 'RCJ'}, '甲定机具费': {base: 'JDDEJJJXF', class: 'RCJ'}, '甲定主材费': {base: 'JDZCF', class: 'RCJ'}, '甲定设备费': {base: 'JDSBF', class: 'RCJ'}, '暂估材料费(从子目汇总)': {base: 'ZGCLFFZM', class: 'RCJ'}, '税金': {base: 'SJ', fixedFlag: fixedFlag.TAX, class: 'SJ'} }; } if(typeof baseFigureTemplate !== 'undefined'){ baseFigureTemplate['ZGCLFFZM'] = function (tender) { //暂估材料费(从子目汇总) const feeField = 'estimate'; const subFeeField = tender ? 'tenderTotalFee' : 'totalFee'; // 分部分项暂估合价 const subEngineeringFee = cbTools.getBillsFee(fixedFlag.SUB_ENGINERRING, feeField, subFeeField); // 措施项目暂估合价 let measureFee = cbTools.getBillsFee(fixedFlag.MEASURE, feeField, subFeeField); return (subEngineeringFee + measureFee).toDecimal(decimalObj.bills.totalPrice); }; } } if(typeof gljCol !== 'undefined'){ gljCol.showTaxRate = true; } // 人材机库追加的列头 if (typeof repositoryGljObj !== 'undefined') { repositoryGljObj.setting.header = [ {headerName:"税率",headerWidth:60,dataCode:"taxRate", dataType: "Number", hAlign: "center", vAlign: "center"}, { headerName: "机型", headerWidth: 60, dataCode: "model", dataType: "Number", hAlign: "center", vAlign: "center" }, { headerName: "是否新增", headerWidth: 60, dataCode: "isComplementary", hAlign: "center", vAlign: "center" } ] } // 定额人材机选择页面表头 if (typeof gljOprObj !== 'undefined') { gljOprObj.gljLibSheetSetting.header = [ {headerName: "选择", headerWidth: 40, dataCode: "select", hAlign: "center", vAlign: "center", cellType: "checkBox"}, {headerName: "编码", headerWidth: 80, dataCode: "code", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"}, {headerName: "名称", headerWidth: 160, dataCode: "name", dataType: "String", hAlign: "left", vAlign: "center"}, {headerName: "规格型号", headerWidth: 160, dataCode: "specs", dataType: "String", hAlign: "left", vAlign: "center"}, {headerName: "单位", headerWidth: 40, dataCode: "unit", dataType: "String", hAlign: "center", vAlign: "center"}, {headerName: "单价", headerWidth: 55, dataCode: "basePrice", dataType: "Number", formatter: "0.00", hAlign: "right", vAlign: "center"}, {headerName: "税率", headerWidth: 40, dataCode: "taxRate", dataType: "Number", formatter: "0.00", hAlign: "right", vAlign: "center"}, {headerName: "类型", headerWidth: 60, dataCode: "typeName", dataType: "String", hAlign: "center", vAlign: "center"}, {headerName: "新增", headerWidth: 40, dataCode: "isComplementary", dataType: "String", hAlign: "center", vAlign: "center", cellType: "checkBox", readOnly: true} ] } // 导入导出接口 // 需要用固定类别关联的费用字典,用固定类别来映射 // 数据节选自标准pdf文件《《建设工程政府投资项目造价数据标准》信息公开版》,附录C-费用名称与费用代号 // 若映射表中没有映射关系,则费用字典取名称首字母 let FlagFeeCodeMap = {}; let FormulaFeeCodeMap = {}; if (typeof commonConstants !== 'undefined') { FlagFeeCodeMap = { // 分部分项工程 [commonConstants.fixedFlag.SUB_ENGINERRING]: 'QDF', // 措施项目 [commonConstants.fixedFlag.MEASURE]: 'CSF', // 其他项目 [commonConstants.fixedFlag.OTHER]: 'QTF', // 措施项目的子项 [commonConstants.fixedFlag.SAFETY_CONSTRUCTION]: 'AQWMSGF', // 绿色施工安全防护措施费 [commonConstants.fixedFlag.OTHER_MEASURE_FEE]: 'QTCSF', // 其他措施费 // 其他项目的子项 [commonConstants.fixedFlag.PROVISIONAL]: 'ZLF', // 暂列金额 [commonConstants.fixedFlag.ESTIMATE]: 'ZGJ', // 暂估价 [commonConstants.fixedFlag.MATERIAL_PROVISIONAL]: 'ZGC', // 材料(工程设备)暂估价 [commonConstants.fixedFlag.ENGINEERING_ESITIMATE]: 'ZGGC', // 专业工程暂估价 [commonConstants.fixedFlag.DAYWORK]: 'LXF', // 计日工 [commonConstants.fixedFlag.TURN_KEY_CONTRACT]: 'ZCBFWF', // 总承包服务费 [commonConstants.fixedFlag.BUDGET_INCLUDE_WORK_FEE]: 'YSBGF', // 预算包干费 [commonConstants.fixedFlag.PROJECT_HIGH_QUALITY_FEE]: 'GCYZF', // 工程优质费 [commonConstants.fixedFlag.BUDGET_ESTIMATE_DIFF]: 'GSFDC', // 概算幅度差 [commonConstants.fixedFlag.CLAIM_VISA]: 'SPYXCQZ', // 索赔与现场签证 [commonConstants.fixedFlag.CLAIM]: 'SPFY', // 索赔费用 [commonConstants.fixedFlag.VISA]: 'XCQZFY', // 现场签证 [commonConstants.fixedFlag.OTHER_FEE]: 'QTFY', // 其他费用 // 税金 [commonConstants.fixedFlag.TAX]: 'SJ', // 工程造价 [commonConstants.fixedFlag.ENGINEERINGCOST]: 'ZZJ', }; // 需要用计算基数关联的费用字典 FormulaFeeCodeMap = { '{分部分项工程费}': 'QDF', '{分部分项人工费}': 'QRG', '{分部分项材料费}': 'QCL', '{分部分项机具费}': 'QJX', '{分部分项主材费}': 'QZCF', '{分部分项设备费}': 'QSBF', '{分部分项人工工日}': 'FBFXRGGR', // 标准没有,自增 '{建筑面积}': 'JZMZ', // 自增 '{措施项目费}': 'CSF', '{其他项目费}': 'QTF', '{甲供人工费}': 'JGRGF', // 自增 '{甲供材料费}': 'JGC', '{甲供机具费}': 'JGJJF', // 自增 '{甲供主材费}': 'JGZCF', // 自增 '{甲供设备费}': 'JGSBF', // 自增 '{甲定人工费}': 'JDRGF', // 自增 '{甲定材料费}': 'JDCLF', // 自增 '{甲定机具费}': 'JDJJF', // 自增 '{甲定主材费}': 'JDZCF', // 自增 '{甲定设备费}': 'JDSBF', // 自增 '{暂估材料费(从子目汇总)}': 'ZGCLFCZMHZ', // 自增 '{税金}': 'SJ', }; } if(typeof module !== 'undefined'){ module.exports = { getBillsCalcMode: getBillsCalcMode, getAreaName: getAreaName }; } function getBillsCalcMode() { return 1 } function getAreaName() { return 'guangdong_2018' }