123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- '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: '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 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.GREEN_MEASURE_FEE]: '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',
- '{甲供施工机具费}': 'JGSGJJF', // 自增
- '{甲定人工费}': 'JDRGF', // 自增
- '{甲定材料费}': 'JDCLF', // 自增
- '{甲定施工机具费}': 'JDSGJJF', // 自增
- '{甲定主材费}': 'JDZCF', // 自增
- '{甲定设备费}': 'JDSBF', // 自增
- '{暂估材料费(从子目汇总)}': 'ZGCLFCZMHZ', // 自增
- '{税金}': 'SJ',
- };
- }
|